- What Laravel and Evolution CMS versions does evo-ui support?
- evo-ui is designed for Evolution CMS 3.5.7+ and requires Livewire 4.x. It leverages Laravel’s service container and Blade components, so it works seamlessly with Laravel 9+ or 10+ applications. Always check the package’s `composer.json` for the latest version constraints.
- How do I integrate evo-ui into an existing Evolution CMS module like sArticles?
- Start by requiring the package via Composer, then publish its assets with `php artisan vendor:publish --tag=evo-ui`. Use the `<x-evo::layout>` component as your module’s wrapper and wrap tables/forms with Livewire components like `<livewire:evo-ui.module-table>`. Follow the [module-integration docs](https://github.com/evolution-cms/evo-ui/blob/main/docs/module-integration.md) for provider registration and asset setup.
- Does evo-ui replace jQuery, Bootstrap, or Roboto in Evolution CMS modules?
- Yes. evo-ui provides a standalone Livewire 4 + DaisyUI runtime inside an iframe, eliminating dependencies on legacy manager CSS/JS, jQuery, Bootstrap, or CDN-hosted assets like Roboto. Modules using evo-ui render modern UI without pulling in outdated dependencies.
- How do I configure tables with filters, sorting, and pagination?
- Tables are config-driven via the `preset` attribute (e.g., `preset='vendor.module.items'`). Define table behavior in your module’s config file under `config/evo-ui.php`, specifying columns, filters, sorting, and pagination settings. The Livewire component handles the rest dynamically.
- Can I use custom Livewire components alongside evo-ui’s shared components?
- Absolutely. evo-ui provides a foundation but doesn’t lock you into its components. You can extend or replace shared components (e.g., tabs, modals) with custom Livewire classes while leveraging evo-ui’s theme sync and asset management. The Livewire 4 bridge ensures compatibility.
- What if my module relies on jQuery-based tables (e.g., DataTables)?
- evo-ui’s multi-select and clean state features may require updates to legacy jQuery tables. Start by migrating to evo-ui’s config-driven tables incrementally. Use the [module-table-contract docs](https://github.com/evolution-cms/evo-ui/blob/main/docs/module-table-contract.md) to align your module’s table logic with evo-ui’s patterns. Deprecation guidelines will be provided for breaking changes.
- How does theme sync work with evolight/evodark/evodarkness?
- evo-ui automatically syncs with Evolution CMS’s built-in themes (evolight, evolightness, evodark, evodarkness) via CSS variables and DaisyUI’s theming system. No manual overrides are needed for colors, typography, or spacing. The iframe shell ensures theme consistency even in nested modules like `dIssues`.
- Are there performance concerns with iframe scrolling or asset routing?
- The latest release fixes iframe scrolling quirks and optimizes asset routing to reduce memory overhead. For environments with many nested iframes (e.g., `dIssues` subpanels), test with your module’s specific workload. The Livewire testing shims help validate performance in CI/CD pipelines.
- How do I test evo-ui components in my module’s CI pipeline?
- Use evo-ui’s Livewire testing shims to validate UI behavior. These shims mock the iframe environment and asset routing, allowing you to test tables, forms, and shared components in isolation. Refer to the [testing docs](https://github.com/evolution-cms/evo-ui/blob/main/docs/README.md) for setup instructions and example test cases.
- What alternatives exist if evo-ui doesn’t fit my module’s needs?
- If evo-ui’s Livewire + DaisyUI approach isn’t suitable, consider building a custom Livewire runtime or using Laravel’s built-in Blade components with Tailwind CSS. For Evolution CMS modules, alternatives like `laravel-admin` or `backpack` may offer different feature sets but lack native theme integration. Evaluate your module’s needs for iframe isolation and theme sync.