The HTTP layer for the Ichava ecosystem. REST API, Vue + Vite SPA, Blade browser views, middleware. Optional. Install on top of ichava/core when you want a visual icon browser or programmatic REST access.
| Visual SPA | Vue 3 + Vite + Tailwind icon browser at /{prefix}/icons. Search, filter by pack/variant/category, copy-to-clipboard, theme toggle. |
| REST API | Endpoints for icons, packages, terms, preferences, command history, cache, statistics. |
| Middleware | ichava.api and ichava.web groups, plus per-middleware aliases (ichava.guard, ichava.security, ichava.json, ichava.log, ichava.session, ichava.validate). |
| Hybrid auth | HostCapabilities detects Sanctum + sessions and adapts the stack. Works in any Laravel app. |
| Blade views | <x-ichava::layouts.app>, <x-ichava::layouts.browser>, plus <x-ichava::ichava-test-icons> and <x-ichava::ichava-ui-icons> demo components. |
ui-icons pack |
Bundled icon set used by the SPA. |
| Asset publish | vendor:publish --tag=ichava-assets copies the pre-built Vite output into public/vendor/ichava/. |
ichava:inject-npm-scripts |
Adds ichava:dev, ichava:build, ichava:watch scripts to your host app's package.json. |
- PHP 8.3+
- Laravel 10, 12, or 13+
ichava/core^1.0(Composer pulls this automatically)
composer require ichava/browserPublish the browser config and the SPA assets:
php artisan vendor:publish --tag=ichava-browser-config
php artisan vendor:publish --tag=ichava-assetsVisit:
http://example.com/ichava/icons
The ichava prefix comes from ICHAVA_BROWSER_PREFIX in core's config (the prefix is shared between core's API and the browser SPA).
After installing an icon pack, every installed pack is searchable in the SPA. To call the REST API instead:
curl "https://example.com/ichava/api/icons?search=home&package=ichava/tabler-icons"// PHP equivalent
use Illuminate\Support\Facades\Http;
$icons = Http::get('https://example.com/ichava/api/icons', [
'search' => 'home',
'package' => 'ichava/tabler-icons',
])->json();Full docs at ichava/documentation.
Per-topic shortcuts:
Cross-cutting:
PHP tests run with vendor/bin/pest. Frontend dev server: npm install && npm run dev (port 5174). See CONTRIBUTING.md.
Email security@simtabi.com privately for vulnerabilities. See SECURITY.md.
This project is licensed under the MIT License.
© Simtabi LLC