{ "version": "1.0.0", "layout_name": "errors/503", "extends": "_admin_base", "meta": { "title": "$t:errors.503.title", "is_error_layout": true, "error_code": 503 }, "slots": { "content": [ { "id": "error_container", "type": "basic", "name": "Div", "props": { "className": "flex-center flex-col justify-center min-h-[60vh] text-center p-8" }, "children": [ { "id": "error_icon", "type": "basic", "name": "Icon", "props": { "name": "triangle-exclamation", "className": "w-24 h-24 text-orange-400 dark:text-orange-500 mb-6" } }, { "id": "error_code", "type": "basic", "name": "H1", "props": { "className": "text-primary text-6xl font-bold mb-4" }, "text": "503" }, { "id": "error_title", "type": "basic", "name": "H2", "props": { "className": "text-2xl font-semibold text-gray-700 dark:text-gray-300 mb-2" }, "text": "$t:errors.503.title" }, { "id": "error_message", "type": "basic", "name": "P", "props": { "className": "text-gray-500 dark:text-gray-400 mb-4 max-w-md" }, "text": "$t:errors.503.message" }, { "id": "dependency_info", "type": "basic", "name": "Div", "if": "{{_global.errorData && ((_global.errorData.modules && _global.errorData.modules.length > 0) || (_global.errorData.plugins && _global.errorData.plugins.length > 0))}}", "props": { "className": "alert-warning text-left max-w-md w-full" }, "children": [ { "type": "basic", "name": "P", "props": { "className": "text-sm font-medium text-orange-800 dark:text-orange-200 mb-3" }, "text": "$t:errors.503.unmet_dependencies" }, { "id": "modules_list", "type": "basic", "name": "Div", "if": "{{_global.errorData.modules && _global.errorData.modules.length > 0}}", "props": { "className": "mb-3" }, "children": [ { "type": "basic", "name": "P", "props": { "className": "text-secondary text-xs font-semibold mb-1" }, "text": "$t:errors.503.required_modules" }, { "type": "basic", "name": "Div", "props": { "className": "flex flex-wrap gap-2" }, "children": [ { "type": "basic", "name": "Span", "iteration": { "source": "_global.errorData.modules", "item_var": "mod" }, "props": { "className": "text-danger-soft inline-flex items-center gap-1 px-2 py-1 bg-red-100 dark:bg-red-900/30 rounded" }, "children": [ { "type": "basic", "name": "Icon", "props": { "name": "x-circle", "className": "w-3 h-3" } }, { "type": "basic", "name": "Span", "text": "{{mod.name || mod.identifier}} ({{mod.required_version}})" } ] } ] } ] }, { "id": "plugins_list", "type": "basic", "name": "Div", "if": "{{_global.errorData.plugins && _global.errorData.plugins.length > 0}}", "children": [ { "type": "basic", "name": "P", "props": { "className": "text-secondary text-xs font-semibold mb-1" }, "text": "$t:errors.503.required_plugins" }, { "type": "basic", "name": "Div", "props": { "className": "flex flex-wrap gap-2" }, "children": [ { "type": "basic", "name": "Span", "iteration": { "source": "_global.errorData.plugins", "item_var": "plug" }, "props": { "className": "text-danger-soft inline-flex items-center gap-1 px-2 py-1 bg-red-100 dark:bg-red-900/30 rounded" }, "children": [ { "type": "basic", "name": "Icon", "props": { "name": "x-circle", "className": "w-3 h-3" } }, { "type": "basic", "name": "Span", "text": "{{plug.name || plug.identifier}} ({{plug.required_version}})" } ] } ] } ] } ] }, { "id": "contact_message", "type": "basic", "name": "P", "props": { "className": "text-sm text-gray-400 dark:text-gray-500 mb-8" }, "text": "$t:errors.503.contact_admin" }, { "id": "back_button", "type": "basic", "name": "Button", "props": { "className": "px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors" }, "text": "$t:errors.back_home", "actions": [ { "type": "click", "handler": "navigate", "params": { "path": "/admin" } } ] } ] } ] } }