Implemented the dynamic theme manager and merged the supplied themes.
Included
* Standardised all six theme.json files to manifest version 2:
* admin
* common
* corporate
* saasland
* swiss
* welcome
* Every manifest now uses the same fields and structure.
* Separate active frontend and backend themes.
* One-click theme activation.
* Theme preview in a new browser tab without activating it.
* Theme cards showing:
* Preview
* Name
* Version
* Author
* Description
* Theme type
* Active status
* Dynamic theme-specific settings.
* Support for:
* Text
* URL
* Colour
* Textarea
* Checkbox fields
* Variants
* Appearance
* Accent palettes
* Theme ZIP installation.
* Theme ZIP export.
* Asset optimisation.
* Accessibility validation.
* Safe ZIP path validation.
* Theme inheritance.
* Active themes cannot be uninstalled.
* Parent themes cannot be uninstalled while child themes depend on them.
* Stylist administration routes now require an authenticated, verified user.
* Manifest validation now restricts theme types to:
* frontend
* backend
* common
* Added activation tests for independent frontend and backend theme selection.
The supplied corporate theme was incomplete, so I added the required backend entry view and placeholder asset files while preserving its supplied layout.
This commit is contained in:
@@ -1,19 +1,23 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Dashboard",
|
||||
"slug": "admin",
|
||||
"extends": "common",
|
||||
"version": "1.0.0",
|
||||
"author": "ABSDEV",
|
||||
"description": "Backend-only Laravel Livewire and Flux dashboard theme.",
|
||||
"type": "backend",
|
||||
"extends": "common",
|
||||
"entry_view": "dashboard",
|
||||
"stylesheet": "css/theme.css",
|
||||
"script": "js/app.js",
|
||||
"type": "backend",
|
||||
"preview": "images/preview.webp",
|
||||
"views": true,
|
||||
"livewire_views": true,
|
||||
"supports": {
|
||||
"dark_mode": true,
|
||||
"animations": false,
|
||||
"privacy": false,
|
||||
"terms": false,
|
||||
"auth": false,
|
||||
"preview": true,
|
||||
"variants": true,
|
||||
@@ -23,7 +27,6 @@
|
||||
"accessibility_validation": true
|
||||
},
|
||||
"variables": {},
|
||||
"preview": "images/preview.webp",
|
||||
"variants": {
|
||||
"light": {
|
||||
"label": "Light",
|
||||
@@ -38,6 +41,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearances": {},
|
||||
"accents": {},
|
||||
"default_appearance": null,
|
||||
"default_accent": null,
|
||||
"settings": {
|
||||
"site_title": {
|
||||
"type": "text",
|
||||
@@ -54,5 +61,6 @@
|
||||
"label": "Primary colour",
|
||||
"default": "#2563eb"
|
||||
}
|
||||
}
|
||||
},
|
||||
"seo": {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user