evolution-cms / evo-ui
A Livewire and DaisyUI powered UI foundation for modern Evolution CMS manager modules.
Requires
- php: ^8.3
- evolution-cms/evolution: ^3.5.7
- livewire/livewire: ^4.0
README
evo-ui is the Livewire + DaisyUI foundation for modern Evolution CMS manager modules. It is a technical package, not a standalone manager module.
The package lets modules such as sArticles and dIssues render modern manager
screens without pulling legacy manager CSS, jQuery, Bootstrap, main.js,
tabpane.js, Roboto, or CDN assets into the iframe.
What It Provides
x-evo::layoutmanager iframe shell with local CSS/JS assets.- Evolution manager theme sync for
evolight,evolightness,evodark, andevodarkness. - Livewire 4 bridge for Evolution manager routes, sessions, CSRF, assets, and minimal Laravel-style services.
- Config-driven module tables with table/list views, filters, sorting, pagination, inline edit, modal edit, row actions, drag reorder, and session state persistence.
- Config-driven forms for manager settings and resource-like forms.
- Provider-backed issue/workspace surface used by
dIssues. - Shared Blade components for buttons, icons, tabs, modals, cards, badges, choices, image fields, rich editors, and table cells.
Consumers
sArticles: publications, dictionaries, settings, article editor, sSeo and sLang integration surfaces.dIssues: issue tables, settings forms, kanban/list issue workspace and conversation preview.- Planned next consumers:
sLang,sSeo, and other manager modules that need the same Livewire runtime.
Install In A Module
{
"require": {
"evolution-cms/evo-ui": "^1.0"
}
}
Render an evo-ui-owned manager document:
<x-evo::layout :title="$pageTitle"> <x-evo::module-tabs :items="$tabs" :active="$activeTab" /> <livewire:evo-ui.module-table preset="vendor.module.items" :context="['moduleUrl' => $moduleUrl]" /> </x-evo::layout>
Publish EvoUI assets after install or update:
php artisan vendor:publish --tag=evo-ui --force
Evolution CMS 3.5.7+ understands EvoUI asset declarations as symlink
publishables. The public files under assets/modules/evo-ui are linked to the
package runtime when possible, so modules do not keep stale copied CSS or JS
after an EvoUI update. On hosting where symlinks are unavailable, vendor:publish
falls back to copying the files.
Documentation
Start from docs/.
docs/module-integration.md: module shell, assets, provider registration and examples.docs/module-table-contract.md: table, list, filters, modal and provider contracts.docs/components.md: component catalogue and usage.docs/consumers.md: howsArticlesanddIssuescurrently consume evo-ui.docs/release-checklist.md: first-release readiness checklist.docs/roadmap.md: useful base components to add before migratingsLangandsSeo.
Localized entrypoints:
Tests
Run the package smoke/contract suite from the package root:
composer test
Run a PHP syntax pass before release:
find src config lang tests -name '*.php' -print0 | xargs -0 -n1 php -l
Release Notes
This package is release-ready when:
- all consumer modules use evo-ui-owned iframe documents;
- no new screen mixes evo-ui with legacy manager UI bundles;
- session state persistence works for table/workspace filters and views;
- docs, translations, assets and smoke tests are updated together.