Skip to content

Repository files navigation

Ichava Core

Latest Version License PHP Version

The engine for the Ichava Laravel icon ecosystem. Services, registry, seeder, scaffolder, helpers, base Blade component. No HTTP surface. Works without a JS toolchain.

What's in core

Security DOM-based SVG sanitiser with a strict allow-list. XXE-safe (LIBXML_NONET, resolveExternals=false). Blocks javascript:, vbscript:, file:, all on* handlers.
Performance Icon-level cache, SVG optimisation, indexed DB lookup, pre-built manifest for production.
Blade The base <x-ichava::icon> component every icon pack extends.
Fluent API ichava('vendor/pkg::category/name')->color('...')->class('...').
Seeder Queue-backed pipeline with multi-level dedup, change detection, Horizon-aware.
Scaffolder php artisan make:icon-package <Name> bootstraps a new icon pack from a stub tree.
Logging Three dedicated channels: ichava, ichava-icons, ichava-queue.
Search PostgreSQL full-text search (recommended) or MySQL 8+.

Zero HTTP surface. No REST endpoints, no middleware, no routes. The HTTP layer (REST API + Vue/Vite SPA) lives in the optional ichava/browser package.

Requirements

  • PHP 8.3+
  • Laravel 13+
  • PostgreSQL (recommended) or MySQL 8+

Install

composer require ichava/core

Publish the config and run migrations:

php artisan vendor:publish --tag=ichava-config
php artisan migrate

Install at least one icon pack (core ships with no icons):

composer require ichava/tabler-icons
php artisan ichava:database seed --package=ichava/tabler-icons

Add ichava/browser if you want the visual icon browser plus REST API:

composer require ichava/browser

A convenience metapackage (ichava/ichava) that pulls core + browser + a default pack is planned for a future release.

Quick example

{{-- Generic Blade component, works with any installed pack --}}
<x-ichava::icon name="ichava/tabler-icons::home" class="w-6 h-6" />

{{-- Fluent helper --}}
{{ ichava('ichava/tabler-icons::home')->color('#FFD700')->class('w-5 h-5') }}

Documentation

Full documentation lives in a dedicated repo: ichava/documentation.

Per-topic shortcuts:

Cross-cutting:

Contributing

See CONTRIBUTING.md. Full ecosystem development workflow lives in the documentation repo.

Security

Email security@simtabi.com privately. Do not open public issues for security problems. See SECURITY.md.

License

This project is licensed under the MIT License.

© Simtabi LLC