Files
2026-07-01 10:30:32 +09:00

212 lines
7.0 KiB
JSON

{
"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"
}
}
]
}
]
}
]
}
}