Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ichava Browser

Latest Version License PHP Version

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.

What's in browser

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.

Requirements

  • PHP 8.3+
  • Laravel 10, 12, or 13+
  • ichava/core ^1.0 (Composer pulls this automatically)

Install

composer require ichava/browser

Publish the browser config and the SPA assets:

php artisan vendor:publish --tag=ichava-browser-config
php artisan vendor:publish --tag=ichava-assets

Visit:

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).

Quick example

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();

Documentation

Full docs at ichava/documentation.

Per-topic shortcuts:

Cross-cutting:

Contributing

PHP tests run with vendor/bin/pest. Frontend dev server: npm install && npm run dev (port 5174). See CONTRIBUTING.md.

Security

Email security@simtabi.com privately for vulnerabilities. See SECURITY.md.

License

This project is licensed under the MIT License.

© Simtabi LLC