@oktis-works/cms 0.13.1 → 0.13.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extension-scaffold.d.ts.map +1 -1
- package/dist/extension-scaffold.js +27 -0
- package/dist/extension-scaffold.js.map +1 -1
- package/dist/generated/app-versions.js +6 -6
- package/dist/generated/app-versions.js.map +1 -1
- package/dist/theme-assets.d.ts +1 -1
- package/dist/theme-assets.d.ts.map +1 -1
- package/dist/theme-assets.js +14 -0
- package/dist/theme-assets.js.map +1 -1
- package/dist/theme-build.js +1 -1
- package/dist/theme-build.js.map +1 -1
- package/migrations/V022__core__theme_config_history.sql +33 -0
- package/migrations/V023__core__fix_theme_config_history_scope.sql +30 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-scaffold.d.ts","sourceRoot":"","sources":["../src/extension-scaffold.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAQD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,CA2CtF;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,kBAA0B,GAAG,uBAAuB,
|
|
1
|
+
{"version":3,"file":"extension-scaffold.d.ts","sourceRoot":"","sources":["../src/extension-scaffold.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAQD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,CA2CtF;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,kBAA0B,GAAG,uBAAuB,CAuGxH"}
|
|
@@ -68,6 +68,33 @@ export function scaffoldTheme(name, baseDir, style = 'css') {
|
|
|
68
68
|
...(style === 'css' ? { assets: ['dist/theme.css'] } : {}),
|
|
69
69
|
},
|
|
70
70
|
...(styleConfig ? { stylesConfig: styleConfig } : {}),
|
|
71
|
+
// Example settings for the customizer (demonstrates text, color, select)
|
|
72
|
+
settings: [
|
|
73
|
+
{
|
|
74
|
+
name: 'siteTitle',
|
|
75
|
+
type: 'text',
|
|
76
|
+
label: 'Site Title',
|
|
77
|
+
default: name.charAt(0).toUpperCase() + name.slice(1),
|
|
78
|
+
required: true,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'primaryColor',
|
|
82
|
+
type: 'color',
|
|
83
|
+
label: 'Primary Color',
|
|
84
|
+
default: '#6366f1',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'headerLayout',
|
|
88
|
+
type: 'select',
|
|
89
|
+
label: 'Header Layout',
|
|
90
|
+
default: 'centered',
|
|
91
|
+
options: [
|
|
92
|
+
{ value: 'centered', label: 'Centered' },
|
|
93
|
+
{ value: 'left', label: 'Left Aligned' },
|
|
94
|
+
{ value: 'split', label: 'Split' },
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
],
|
|
71
98
|
};
|
|
72
99
|
const selfCheck = { ...manifest };
|
|
73
100
|
assertCompatible('theme', selfCheck, CMS_VERSION);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-scaffold.js","sourceRoot":"","sources":["../src/extension-scaffold.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extension-scaffold.js","sourceRoot":"","sources":["../src/extension-scaffold.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAO5E,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,oBAAoB,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAgB;IAC3D,cAAc,CAAC,IAAI,CAAC,CAAC;IAErB,MAAM,QAAQ,GAAG;QACf,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,UAAU,IAAI,YAAY;QACvC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,EAAE;KAC5C,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EACrB;QACE,eAAe;QACf,EAAE;QACF,KAAK;QACL,aAAa,IAAI,GAAG;QACpB,uDAAuD;QACvD,KAAK;QACL,yDAAyD;QACzD,6DAA6D;QAC7D,IAAI;QACJ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EACtB,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxG,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAID;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAgB,EAAE,QAA4B,KAAK;IAC7F,cAAc,CAAC,IAAI,CAAC,CAAC;IAErB,MAAM,WAAW,GACf,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAExO,MAAM,QAAQ,GAA4B;QACxC,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,SAAS,IAAI,YAAY;QACtC,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,EAAE;QAC3C,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;YAC9D,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D;QACD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,SAAS;aACnB;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE;oBACxC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBACnC;aACF;SACF;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAElD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,wEAAwE;IACxE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACnE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,+FAA+F,CAAC,CAAC;QACjJ,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACjF,CAAC;SAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,EAC7B,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,EAAE,EAAE,0CAA0C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChI,CAAC;QACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAC/B;YACE,6CAA6C;YAC7C,oBAAoB;YACpB,8BAA8B;YAC9B,sCAAsC;YACtC,wGAAwG,IAAI,KAAK;YACjH,IAAI;YACJ,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC;IACD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EACtB;QACE,KAAK,IAAI,EAAE;QACX,EAAE;QACF,aAAa;QACb,EAAE;QACF,wBAAwB;QACxB,wEAAwE;QACxE,2EAA2E;QAC3E,aAAa,KAAK,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,uCAAuC,EAAE;QACrH,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
// by `bun run build`. Used as the offline fallback for `okcms init` ranges
|
|
4
4
|
// when the npm registry cannot be reached.
|
|
5
5
|
export const APP_VERSIONS = {
|
|
6
|
-
'@oktis-works/api': '0.
|
|
7
|
-
'@oktis-works/admin': '0.
|
|
8
|
-
'@oktis-works/web': '0.
|
|
9
|
-
'@oktis-works/worker': '0.8.
|
|
10
|
-
'@oktis-works/core': '0.
|
|
6
|
+
'@oktis-works/api': '0.16.1',
|
|
7
|
+
'@oktis-works/admin': '0.23.2',
|
|
8
|
+
'@oktis-works/web': '0.12.4',
|
|
9
|
+
'@oktis-works/worker': '0.8.11',
|
|
10
|
+
'@oktis-works/core': '0.14.1',
|
|
11
11
|
'@oktis-works/plugin-runtime': '0.7.0',
|
|
12
|
-
'@oktis-works/cms': '0.13.
|
|
12
|
+
'@oktis-works/cms': '0.13.6',
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=app-versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-versions.js","sourceRoot":"","sources":["../../src/generated/app-versions.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,4EAA4E;AAC5E,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,kBAAkB,EAAE,QAAQ;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,kBAAkB,EAAE,QAAQ;IAC5B,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"app-versions.js","sourceRoot":"","sources":["../../src/generated/app-versions.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,4EAA4E;AAC5E,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,kBAAkB,EAAE,QAAQ;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,kBAAkB,EAAE,QAAQ;IAC5B,qBAAqB,EAAE,QAAQ;IAC/B,mBAAmB,EAAE,QAAQ;IAC7B,6BAA6B,EAAE,OAAO;IACtC,kBAAkB,EAAE,QAAQ;CAC7B,CAAC"}
|
package/dist/theme-assets.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Default theme manifest (`theme.json` = canonical name read by runtime, service and CLI). */
|
|
2
2
|
export declare const DEFAULT_THEME_MANIFEST: string;
|
|
3
3
|
/** Default theme design system — served straight from dist/theme.css (no build). */
|
|
4
|
-
export declare const DEFAULT_THEME_CSS = "/* OkCMS default theme \u2014 design system (served straight from dist/theme.css) */\n[data-theme=\"default\"]{\n --brand: #4f46e5;\n --brand-strong: #4338ca;\n --brand-soft: #eef2ff;\n --text: #111827;\n --muted: #6b7280;\n --surface: #ffffff;\n --bg: #f9fafb;\n --border: #e5e7eb;\n --border-strong: #d1d5db;\n --radius: 12px;\n --radius-sm: 8px;\n --shadow-sm: 0 1px 2px rgba(17,24,39,.06);\n --shadow-md: 0 6px 20px rgba(17,24,39,.08);\n --shadow-lg: 0 16px 40px rgba(17,24,39,.14);\n}\n\n[data-theme=\"default\"] *,[data-theme=\"default\"] *::before,[data-theme=\"default\"] *::after{ box-sizing: border-box; }\n\n/* Page-level reset: the UA default body margin (8px) would frame the whole\n site in white on every side (top/left/right/bottom). Scoped with :has so\n this stylesheet \u2014 also the last fallback of the project chain \u2014 never\n changes the page box of another theme. */\nbody:has([data-theme=\"default\"]){ margin: 0; padding: 0; }\n\n[data-theme=\"default\"]{\n margin: 0;\n font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n color: var(--text);\n background: var(--bg);\n line-height: 1.65;\n -webkit-font-smoothing: antialiased;\n}\n\n[data-theme=\"default\"] a{ color: var(--brand); text-decoration: none; }\n[data-theme=\"default\"] a:hover{ color: var(--brand-strong); }\n[data-theme=\"default\"] img{ max-width: 100%; border-radius: var(--radius-sm); }\n\n[data-theme=\"default\"] .container{ max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; }\n\n/* ---------- Header ---------- */\n[data-theme=\"default\"] .site-header{\n position: sticky; top: 0; z-index: 20;\n background: rgba(255,255,255,.86);\n backdrop-filter: blur(10px);\n border-bottom: 1px solid var(--border);\n}\n[data-theme=\"default\"] .site-header__inner{\n display: flex; align-items: center; justify-content: space-between;\n gap: 1rem; min-height: 3.75rem; flex-wrap: wrap; padding-top: .5rem; padding-bottom: .5rem;\n}\n[data-theme=\"default\"] .site-brand{\n font-weight: 800; font-size: 1.15rem; letter-spacing: -.02em; color: var(--text);\n display: inline-flex; align-items: center; gap: .5rem;\n}\n[data-theme=\"default\"] .site-brand::before{\n content: \"\"; width: .65rem; height: .65rem; border-radius: 999px;\n background: linear-gradient(135deg, var(--brand), #8b5cf6);\n}\n[data-theme=\"default\"] .site-brand:hover{ color: var(--text); }\n[data-theme=\"default\"] .site-nav{ display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }\n[data-theme=\"default\"] .site-nav__link{\n padding: .45rem .85rem; border-radius: 999px; color: var(--muted); font-weight: 500; font-size: .95rem;\n}\n[data-theme=\"default\"] .site-nav__link:hover{ color: var(--brand); background: var(--brand-soft); }\n\n/* ---------- Hero ---------- */\n[data-theme=\"default\"] .hero{\n position: relative; overflow: hidden;\n background: linear-gradient(135deg, #4f46e5 0%, #6d28d9 55%, #7c3aed 100%);\n color: #fff; text-align: center;\n padding: 5rem 1.5rem 5.5rem;\n}\n[data-theme=\"default\"] .hero::after{\n content: \"\"; position: absolute; inset: auto -10% -60% -10%; height: 70%;\n background: var(--bg); border-radius: 50% 50% 0 0;\n}\n[data-theme=\"default\"] .hero > *{ position: relative; z-index: 1; }\n[data-theme=\"default\"] .hero__kicker{\n margin: 0 0 .75rem; text-transform: uppercase; letter-spacing: .18em;\n font-size: .78rem; font-weight: 700; color: rgba(255,255,255,.75);\n}\n[data-theme=\"default\"] .hero__title{\n margin: 0 0 1rem; font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.12; letter-spacing: -.03em; font-weight: 800;\n}\n[data-theme=\"default\"] .hero__description{\n margin: 0 auto 1.75rem; max-width: 42rem; font-size: 1.1rem; color: rgba(255,255,255,.85);\n}\n[data-theme=\"default\"] .hero__actions{ display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }\n[data-theme=\"default\"] .hero--compact{ padding: 3.25rem 1.5rem 4rem; }\n\n/* ---------- Buttons ---------- */\n[data-theme=\"default\"] .btn{\n display: inline-flex; align-items: center; gap: .5rem;\n padding: .7rem 1.4rem; border-radius: 999px; font-weight: 600; font-size: .98rem;\n border: 1px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;\n}\n[data-theme=\"default\"] .btn:hover{ transform: translateY(-1px); }\n[data-theme=\"default\"] .btn--primary{ background: #fff; color: var(--brand-strong); box-shadow: var(--shadow-md); }\n[data-theme=\"default\"] .btn--primary:hover{ background: var(--brand-soft); color: var(--brand-strong); }\n[data-theme=\"default\"] .btn--ghost{ background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.45); }\n[data-theme=\"default\"] .btn--ghost:hover{ background: rgba(255,255,255,.22); color: #fff; }\n[data-theme=\"default\"] .btn--outline{ background: transparent; color: var(--brand); border-color: var(--border-strong); }\n[data-theme=\"default\"] .btn--outline:hover{ background: var(--brand-soft); border-color: var(--brand); }\n\n/* ---------- Sections ---------- */\n[data-theme=\"default\"] .site-main{ min-height: 60vh; }\n[data-theme=\"default\"] .section{ max-width: 72rem; margin: 0 auto; padding: 3.5rem 1.25rem; }\n[data-theme=\"default\"] .section__kicker{\n margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .16em;\n font-size: .74rem; font-weight: 700; color: var(--brand);\n}\n[data-theme=\"default\"] .section__title{\n margin: 0 0 .75rem; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.02em; font-weight: 800;\n}\n[data-theme=\"default\"] .section__lead{ margin: 0 0 1rem; color: var(--muted); font-size: 1.05rem; max-width: 46rem; }\n[data-theme=\"default\"] .section__more{ font-weight: 600; }\n[data-theme=\"default\"] .section--tight{ padding: 2.25rem 1.25rem; }\n[data-theme=\"default\"] .section__head{\n display: flex; align-items: baseline; justify-content: space-between;\n gap: 1rem; flex-wrap: wrap; margin-bottom: 1.75rem;\n}\n\n/* ---------- Cards / listings ---------- */\n[data-theme=\"default\"] .cards{\n display: grid; gap: 1.25rem;\n grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));\n}\n[data-theme=\"default\"] .card{\n display: flex; flex-direction: column; gap: .5rem;\n background: var(--surface); border: 1px solid var(--border);\n border-radius: var(--radius); padding: 1.4rem 1.4rem 1.2rem; box-shadow: var(--shadow-sm);\n transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\n}\n[data-theme=\"default\"] .card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }\n[data-theme=\"default\"] .card__date{ font-size: .8rem; color: var(--muted); }\n[data-theme=\"default\"] .card__title{ margin: 0; font-size: 1.12rem; line-height: 1.35; }\n[data-theme=\"default\"] .card__title a{ color: var(--text); }\n[data-theme=\"default\"] .card__title a:hover{ color: var(--brand); }\n[data-theme=\"default\"] .card__excerpt{ margin: 0; color: var(--muted); font-size: .95rem; }\n[data-theme=\"default\"] .card__more{\n margin-top: auto; padding-top: .4rem; font-weight: 600; font-size: .92rem; color: var(--brand);\n}\n[data-theme=\"default\"] .listing{ display: grid; gap: 1rem; }\n\n/* ---------- Entries (single / page) ---------- */\n[data-theme=\"default\"] .entry{\n max-width: 46rem; margin: 0 auto; padding: 3rem 1.25rem 4rem;\n}\n[data-theme=\"default\"] .entry__header{ margin-bottom: 1.75rem; }\n[data-theme=\"default\"] .entry__kicker{\n margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .16em;\n font-size: .74rem; font-weight: 700; color: var(--brand);\n}\n[data-theme=\"default\"] .entry__title{\n margin: 0 0 .5rem; font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: -.025em; line-height: 1.15; font-weight: 800;\n}\n[data-theme=\"default\"] .entry__meta{ display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; color: var(--muted); font-size: .9rem; }\n[data-theme=\"default\"] .entry__cover{ width: 100%; border-radius: var(--radius); margin: 1rem 0; box-shadow: var(--shadow-sm); }\n[data-theme=\"default\"] .entry__body{ font-size: 1.06rem; }\n[data-theme=\"default\"] .entry__body h2{ font-size: 1.5rem; letter-spacing: -.01em; margin: 2rem 0 .75rem; }\n[data-theme=\"default\"] .entry__body h3{ font-size: 1.2rem; margin: 1.5rem 0 .5rem; }\n[data-theme=\"default\"] .entry__body p{ margin: 0 0 1rem; color: #374151; }\n[data-theme=\"default\"] .entry__body a{ text-decoration: underline; text-underline-offset: 3px; }\n[data-theme=\"default\"] .entry__body blockquote{\n margin: 1.5rem 0; padding: .75rem 1.25rem; border-left: 3px solid var(--brand);\n background: var(--brand-soft); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: #374151;\n}\n[data-theme=\"default\"] .entry__body pre{\n background: #0f172a; color: #e2e8f0; padding: 1rem 1.25rem; border-radius: var(--radius-sm);\n overflow: auto; font-size: .9rem;\n}\n[data-theme=\"default\"] .entry__body code{ background: var(--brand-soft); border-radius: 4px; padding: .1rem .35rem; }\n[data-theme=\"default\"] .entry__body pre code{ background: transparent; padding: 0; }\n[data-theme=\"default\"] .entry__terms{ display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }\n[data-theme=\"default\"] .badge{\n display: inline-block; padding: .25rem .7rem; border-radius: 999px;\n background: var(--brand-soft); color: var(--brand-strong); font-size: .8rem; font-weight: 600;\n}\n[data-theme=\"default\"] .entry__footer{\n margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border);\n display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;\n color: var(--muted); font-size: .92rem;\n}\n[data-theme=\"default\"] .entry__back{ font-weight: 600; }\n\n/* ---------- Home body sections (seeded content) ---------- */\n[data-theme=\"default\"] .about-preview{\n display: grid; gap: 1.5rem; grid-template-columns: 1.2fr .8fr; align-items: start;\n}\n[data-theme=\"default\"] .about-preview .section__more{ display: inline-block; }\n[data-theme=\"default\"] .contact{\n background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);\n box-shadow: var(--shadow-sm);\n}\n[data-theme=\"default\"] .contact .section__lead a{ font-weight: 600; }\n\n/* ---------- Archive ---------- */\n[data-theme=\"default\"] .archive-header{\n background: linear-gradient(135deg, #4f46e5 0%, #6d28d9 60%, #7c3aed 100%);\n color: #fff; text-align: center; padding: 3.25rem 1.5rem 4rem;\n}\n[data-theme=\"default\"] .archive-header__title{ margin: 0 0 .4rem; font-size: clamp(1.7rem, 4vw, 2.4rem); letter-spacing: -.02em; font-weight: 800; }\n[data-theme=\"default\"] .archive-header__description{ margin: 0; color: rgba(255,255,255,.85); }\n[data-theme=\"default\"] .archive-header + .section{ margin-top: -1.5rem; }\n[data-theme=\"default\"] .archive-header + .section .card{ background: var(--surface); }\n\n/* ---------- Empty state ---------- */\n[data-theme=\"default\"] .empty{\n text-align: center; color: var(--muted); padding: 2.5rem 1rem;\n border: 1px dashed var(--border-strong); border-radius: var(--radius); background: var(--surface);\n}\n\n/* ---------- 404 ---------- */\n[data-theme=\"default\"] .not-found{ text-align: center; padding: 5rem 1.5rem; }\n[data-theme=\"default\"] .not-found__code{\n margin: 0 0 .5rem; font-size: 5rem; font-weight: 800; letter-spacing: -.04em;\n background: linear-gradient(135deg, var(--brand), #8b5cf6);\n -webkit-background-clip: text; background-clip: text; color: transparent;\n}\n[data-theme=\"default\"] .not-found__message{ margin: 0 0 1.5rem; color: var(--muted); font-size: 1.1rem; }\n\n/* ---------- Footer ---------- */\n[data-theme=\"default\"] .site-footer{\n background: #111827; color: #d1d5db; margin-top: 4rem;\n}\n[data-theme=\"default\"] .site-footer__inner{\n display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap;\n padding-top: 2.75rem; padding-bottom: 1.5rem;\n}\n[data-theme=\"default\"] .site-footer__title{ margin: 0 0 .35rem; color: #fff; font-weight: 700; font-size: 1.05rem; }\n[data-theme=\"default\"] .site-footer__description{ margin: 0; max-width: 24rem; color: #9ca3af; font-size: .93rem; }\n[data-theme=\"default\"] .site-footer__nav{ display: flex; flex-direction: column; gap: .45rem; }\n[data-theme=\"default\"] .site-footer__link{ color: #d1d5db; font-size: .95rem; }\n[data-theme=\"default\"] .site-footer__link:hover{ color: #fff; }\n[data-theme=\"default\"] .site-footer__bottom{ border-top: 1px solid rgba(255,255,255,.1); }\n[data-theme=\"default\"] .site-footer__copyright{\n margin: 0; padding: 1.1rem 0; text-align: center; color: #9ca3af; font-size: .85rem;\n}\n\n/* ---------- Responsive ---------- */\n@media (max-width: 860px){\n [data-theme=\"default\"] .about-preview{ grid-template-columns: 1fr; }\n [data-theme=\"default\"] .hero{ padding: 4rem 1.25rem 4.5rem; }\n}\n@media (max-width: 560px){\n [data-theme=\"default\"] .site-header__inner{ justify-content: center; }\n [data-theme=\"default\"] .site-nav{ justify-content: center; }\n [data-theme=\"default\"] .hero{ padding: 3.25rem 1rem 3.75rem; }\n [data-theme=\"default\"] .section{ padding: 2.5rem 1rem; }\n [data-theme=\"default\"] .cards{ grid-template-columns: 1fr; }\n}\n";
|
|
4
|
+
export declare const DEFAULT_THEME_CSS = "/* OkCMS default theme \u2014 design system (served straight from dist/theme.css) */\n[data-theme=\"default\"]{\n --brand: #4f46e5;\n --brand-strong: #4338ca;\n --brand-soft: #eef2ff;\n --text: #111827;\n --muted: #6b7280;\n --surface: #ffffff;\n --bg: #f9fafb;\n --border: #e5e7eb;\n --border-strong: #d1d5db;\n --radius: 12px;\n --radius-sm: 8px;\n --shadow-sm: 0 1px 2px rgba(17,24,39,.06);\n --shadow-md: 0 6px 20px rgba(17,24,39,.08);\n --shadow-lg: 0 16px 40px rgba(17,24,39,.14);\n}\n\n[data-theme=\"default\"] *,[data-theme=\"default\"] *::before,[data-theme=\"default\"] *::after{ box-sizing: border-box; }\n\n/* Page-level reset: the UA default body margin (8px) would frame the whole\n site in white on every side (top/left/right/bottom). Scoped with :has so\n this stylesheet \u2014 also the last fallback of the project chain \u2014 never\n changes the page box of another theme. */\nbody:has([data-theme=\"default\"]){ margin: 0; padding: 0; }\n\n[data-theme=\"default\"]{\n margin: 0;\n font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n color: var(--text);\n background: var(--bg);\n line-height: 1.65;\n -webkit-font-smoothing: antialiased;\n}\n\n[data-theme=\"default\"] a{ color: var(--brand); text-decoration: none; }\n[data-theme=\"default\"] a:hover{ color: var(--brand-strong); }\n[data-theme=\"default\"] img{ max-width: 100%; border-radius: var(--radius-sm); }\n\n[data-theme=\"default\"] .container{ max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; }\n\n/* ---------- Header ---------- */\n[data-theme=\"default\"] .site-header{\n position: sticky; top: 0; z-index: 20;\n background: rgba(255,255,255,.86);\n backdrop-filter: blur(10px);\n border-bottom: 1px solid var(--border);\n}\n[data-theme=\"default\"] .site-header__inner{\n display: flex; align-items: center; justify-content: space-between;\n gap: 1rem; min-height: 3.75rem; flex-wrap: wrap; padding-top: .5rem; padding-bottom: .5rem;\n}\n[data-theme=\"default\"] .site-brand{\n font-weight: 800; font-size: 1.15rem; letter-spacing: -.02em; color: var(--text);\n display: inline-flex; align-items: center; gap: .5rem;\n}\n[data-theme=\"default\"] .site-brand::before{\n content: \"\"; width: .65rem; height: .65rem; border-radius: 999px;\n background: linear-gradient(135deg, var(--brand), #8b5cf6);\n}\n[data-theme=\"default\"] .site-brand:hover{ color: var(--text); }\n[data-theme=\"default\"] .site-nav{ display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }\n[data-theme=\"default\"] .site-nav__link{\n padding: .45rem .85rem; border-radius: 999px; color: var(--muted); font-weight: 500; font-size: .95rem;\n}\n[data-theme=\"default\"] .site-nav__link:hover{ color: var(--brand); background: var(--brand-soft); }\n\n/* ---------- Hero ---------- */\n[data-theme=\"default\"] .hero{\n position: relative; overflow: hidden;\n background: linear-gradient(135deg, #4f46e5 0%, #6d28d9 55%, #7c3aed 100%);\n color: #fff; text-align: center;\n padding: 5rem 1.5rem 5.5rem;\n}\n[data-theme=\"default\"] .hero::after{\n content: \"\"; position: absolute; inset: auto -10% -60% -10%; height: 70%;\n background: var(--bg); border-radius: 50% 50% 0 0;\n}\n[data-theme=\"default\"] .hero > *{ position: relative; z-index: 1; }\n[data-theme=\"default\"] .hero__kicker{\n margin: 0 0 .75rem; text-transform: uppercase; letter-spacing: .18em;\n font-size: .78rem; font-weight: 700; color: rgba(255,255,255,.75);\n}\n[data-theme=\"default\"] .hero__title{\n margin: 0 0 1rem; font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.12; letter-spacing: -.03em; font-weight: 800;\n}\n[data-theme=\"default\"] .hero__description{\n margin: 0 auto 1.75rem; max-width: 42rem; font-size: 1.1rem; color: rgba(255,255,255,.85);\n}\n[data-theme=\"default\"] .hero__actions{ display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }\n[data-theme=\"default\"] .hero--compact{ padding: 3.25rem 1.5rem 4rem; }\n\n/* ---------- Buttons ---------- */\n[data-theme=\"default\"] .btn{\n display: inline-flex; align-items: center; gap: .5rem;\n padding: .7rem 1.4rem; border-radius: 999px; font-weight: 600; font-size: .98rem;\n border: 1px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;\n}\n[data-theme=\"default\"] .btn:hover{ transform: translateY(-1px); }\n[data-theme=\"default\"] .btn--primary{ background: #fff; color: var(--brand-strong); box-shadow: var(--shadow-md); }\n[data-theme=\"default\"] .btn--primary:hover{ background: var(--brand-soft); color: var(--brand-strong); }\n[data-theme=\"default\"] .btn--ghost{ background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.45); }\n[data-theme=\"default\"] .btn--ghost:hover{ background: rgba(255,255,255,.22); color: #fff; }\n[data-theme=\"default\"] .btn--outline{ background: transparent; color: var(--brand); border-color: var(--border-strong); }\n[data-theme=\"default\"] .btn--outline:hover{ background: var(--brand-soft); border-color: var(--brand); }\n\n/* ---------- Sections ---------- */\n[data-theme=\"default\"] .site-main{ min-height: 60vh; }\n[data-theme=\"default\"] .section{ max-width: 72rem; margin: 0 auto; padding: 3.5rem 1.25rem; }\n[data-theme=\"default\"] .section__kicker{\n margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .16em;\n font-size: .74rem; font-weight: 700; color: var(--brand);\n}\n[data-theme=\"default\"] .section__title{\n margin: 0 0 .75rem; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.02em; font-weight: 800;\n}\n[data-theme=\"default\"] .section__lead{ margin: 0 0 1rem; color: var(--muted); font-size: 1.05rem; max-width: 46rem; }\n[data-theme=\"default\"] .section__more{ font-weight: 600; }\n[data-theme=\"default\"] .section--tight{ padding: 2.25rem 1.25rem; }\n[data-theme=\"default\"] .section__head{\n display: flex; align-items: baseline; justify-content: space-between;\n gap: 1rem; flex-wrap: wrap; margin-bottom: 1.75rem;\n}\n\n/* ---------- Cards / listings ---------- */\n[data-theme=\"default\"] .cards{\n display: grid; gap: 1.25rem;\n grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));\n}\n[data-theme=\"default\"] .card{\n display: flex; flex-direction: column; gap: .5rem;\n background: var(--surface); border: 1px solid var(--border);\n border-radius: var(--radius); padding: 1.4rem 1.4rem 1.2rem; box-shadow: var(--shadow-sm);\n transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\n}\n[data-theme=\"default\"] .card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }\n[data-theme=\"default\"] .card__date{ font-size: .8rem; color: var(--muted); }\n[data-theme=\"default\"] .card__title{ margin: 0; font-size: 1.12rem; line-height: 1.35; }\n[data-theme=\"default\"] .card__title a{ color: var(--text); }\n[data-theme=\"default\"] .card__title a:hover{ color: var(--brand); }\n[data-theme=\"default\"] .card__excerpt{ margin: 0; color: var(--muted); font-size: .95rem; }\n[data-theme=\"default\"] .card__more{\n margin-top: auto; padding-top: .4rem; font-weight: 600; font-size: .92rem; color: var(--brand);\n}\n[data-theme=\"default\"] .listing{ display: grid; gap: 1rem; }\n\n/* ---------- Entries (single / page) ---------- */\n[data-theme=\"default\"] .entry{\n max-width: 46rem; margin: 0 auto; padding: 3rem 1.25rem 4rem;\n}\n[data-theme=\"default\"] .entry__header{ margin-bottom: 1.75rem; }\n[data-theme=\"default\"] .entry__kicker{\n margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .16em;\n font-size: .74rem; font-weight: 700; color: var(--brand);\n}\n[data-theme=\"default\"] .entry__title{\n margin: 0 0 .5rem; font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: -.025em; line-height: 1.15; font-weight: 800;\n}\n[data-theme=\"default\"] .entry__meta{ display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; color: var(--muted); font-size: .9rem; }\n[data-theme=\"default\"] .entry__cover{ width: 100%; border-radius: var(--radius); margin: 1rem 0; box-shadow: var(--shadow-sm); }\n[data-theme=\"default\"] .entry__body{ font-size: 1.06rem; }\n[data-theme=\"default\"] .entry__body h2{ font-size: 1.5rem; letter-spacing: -.01em; margin: 2rem 0 .75rem; }\n[data-theme=\"default\"] .entry__body h3{ font-size: 1.2rem; margin: 1.5rem 0 .5rem; }\n[data-theme=\"default\"] .entry__body p{ margin: 0 0 1rem; color: #374151; }\n[data-theme=\"default\"] .entry__body a{ text-decoration: underline; text-underline-offset: 3px; }\n[data-theme=\"default\"] .entry__body blockquote{\n margin: 1.5rem 0; padding: .75rem 1.25rem; border-left: 3px solid var(--brand);\n background: var(--brand-soft); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: #374151;\n}\n[data-theme=\"default\"] .entry__body pre{\n background: #0f172a; color: #e2e8f0; padding: 1rem 1.25rem; border-radius: var(--radius-sm);\n overflow: auto; font-size: .9rem;\n}\n[data-theme=\"default\"] .entry__body code{ background: var(--brand-soft); border-radius: 4px; padding: .1rem .35rem; }\n[data-theme=\"default\"] .entry__body pre code{ background: transparent; padding: 0; }\n[data-theme=\"default\"] .entry__terms{ display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }\n[data-theme=\"default\"] .badge{\n display: inline-block; padding: .25rem .7rem; border-radius: 999px;\n background: var(--brand-soft); color: var(--brand-strong); font-size: .8rem; font-weight: 600;\n}\n[data-theme=\"default\"] .entry__footer{\n margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border);\n display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;\n color: var(--muted); font-size: .92rem;\n}\n[data-theme=\"default\"] .entry__back{ font-weight: 600; }\n\n/* ---------- Home body sections (seeded content) ---------- */\n[data-theme=\"default\"] .about-preview{\n display: grid; gap: 1.5rem; grid-template-columns: 1.2fr .8fr; align-items: start;\n}\n[data-theme=\"default\"] .about-preview .section__more{ display: inline-block; }\n[data-theme=\"default\"] .contact{\n background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);\n box-shadow: var(--shadow-sm);\n}\n[data-theme=\"default\"] .contact .section__lead a{ font-weight: 600; }\n\n/* ---------- Archive ---------- */\n[data-theme=\"default\"] .archive-header{\n background: linear-gradient(135deg, #4f46e5 0%, #6d28d9 60%, #7c3aed 100%);\n color: #fff; text-align: center; padding: 3.25rem 1.5rem 4rem;\n}\n[data-theme=\"default\"] .archive-header__title{ margin: 0 0 .4rem; font-size: clamp(1.7rem, 4vw, 2.4rem); letter-spacing: -.02em; font-weight: 800; }\n[data-theme=\"default\"] .archive-header__description{ margin: 0; color: rgba(255,255,255,.85); }\n[data-theme=\"default\"] .archive-header + .section{ margin-top: -1.5rem; }\n[data-theme=\"default\"] .archive-header + .section .card{ background: var(--surface); }\n\n/* ---------- Empty state ---------- */\n[data-theme=\"default\"] .empty{\n text-align: center; color: var(--muted); padding: 2.5rem 1rem;\n border: 1px dashed var(--border-strong); border-radius: var(--radius); background: var(--surface);\n}\n\n/* ---------- 404 ---------- */\n[data-theme=\"default\"] .not-found{ text-align: center; padding: 5rem 1.5rem; }\n[data-theme=\"default\"] .not-found__code{\n margin: 0 0 .5rem; font-size: 5rem; font-weight: 800; letter-spacing: -.04em;\n background: linear-gradient(135deg, var(--brand), #8b5cf6);\n -webkit-background-clip: text; background-clip: text; color: transparent;\n}\n[data-theme=\"default\"] .not-found__message{ margin: 0 0 1.5rem; color: var(--muted); font-size: 1.1rem; }\n\n/* ---------- Footer ---------- */\n[data-theme=\"default\"] .site-footer{\n background: #111827; color: #d1d5db; margin-top: 4rem;\n}\n[data-theme=\"default\"] .site-footer__inner{\n display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap;\n padding-top: 2.75rem; padding-bottom: 1.5rem;\n}\n[data-theme=\"default\"] .site-footer__title{ margin: 0 0 .35rem; color: #fff; font-weight: 700; font-size: 1.05rem; }\n[data-theme=\"default\"] .site-footer__description{ margin: 0; max-width: 24rem; color: #9ca3af; font-size: .93rem; }\n[data-theme=\"default\"] .site-footer__nav{ display: flex; flex-direction: column; gap: .45rem; }\n[data-theme=\"default\"] .site-footer__link{ color: #d1d5db; font-size: .95rem; }\n[data-theme=\"default\"] .site-footer__link:hover{ color: #fff; }\n[data-theme=\"default\"] .site-footer__bottom{ border-top: 1px solid rgba(255,255,255,.1); }\n[data-theme=\"default\"] .site-footer__copyright{\n margin: 0; padding: 1.1rem 0; text-align: center; color: #9ca3af; font-size: .85rem;\n}\n\n/* ---------- Pagination ---------- */\n[data-theme=\"default\"] .pagination{ display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }\n[data-theme=\"default\"] .pagination a{ color: var(--brand); font-weight: 600; }\n\n/* ---------- Responsive ---------- */\n@media (max-width: 860px){\n [data-theme=\"default\"] .about-preview{ grid-template-columns: 1fr; }\n [data-theme=\"default\"] .hero{ padding: 4rem 1.25rem 4.5rem; }\n}\n@media (max-width: 560px){\n [data-theme=\"default\"] .site-header__inner{ justify-content: center; }\n [data-theme=\"default\"] .site-nav{ justify-content: center; }\n [data-theme=\"default\"] .hero{ padding: 3.25rem 1rem 3.75rem; }\n [data-theme=\"default\"] .section{ padding: 2.5rem 1rem; }\n [data-theme=\"default\"] .cards{ grid-template-columns: 1fr; }\n}\n";
|
|
5
5
|
export declare const THEME_TEMPLATE_FILES: Record<string, string>;
|
|
6
6
|
/** Complete default theme written by `okcms init` (paths relative to themes/default/). */
|
|
7
7
|
export declare const DEFAULT_THEME_FILES: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-assets.d.ts","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"AAUA,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,QA8BlC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"theme-assets.d.ts","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"AAUA,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,QA8BlC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,uzaAiQ7B,CAAC;AA2EF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8KvD,CAAC;AA8BF,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE7D,CAAC"}
|
package/dist/theme-assets.js
CHANGED
|
@@ -276,6 +276,10 @@ body:has([data-theme="default"]){ margin: 0; padding: 0; }
|
|
|
276
276
|
margin: 0; padding: 1.1rem 0; text-align: center; color: #9ca3af; font-size: .85rem;
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
+
/* ---------- Pagination ---------- */
|
|
280
|
+
[data-theme="default"] .pagination{ display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }
|
|
281
|
+
[data-theme="default"] .pagination a{ color: var(--brand); font-weight: 600; }
|
|
282
|
+
|
|
279
283
|
/* ---------- Responsive ---------- */
|
|
280
284
|
@media (max-width: 860px){
|
|
281
285
|
[data-theme="default"] .about-preview{ grid-template-columns: 1fr; }
|
|
@@ -349,6 +353,14 @@ const POSTS_SECTION = `{{#if items}}
|
|
|
349
353
|
</section>
|
|
350
354
|
{{/if}}
|
|
351
355
|
`;
|
|
356
|
+
const PAGINATION = `{{#if pagination.pages}}
|
|
357
|
+
<nav class="pagination" aria-label="Pagination">
|
|
358
|
+
{{#if pagination.hasPrevious}}<a href="?page={{pagination.previousPage}}">Previous</a>{{/if}}
|
|
359
|
+
<span>Page {{pagination.page}} of {{pagination.pages}}</span>
|
|
360
|
+
{{#if pagination.hasNext}}<a href="?page={{pagination.nextPage}}">Next</a>{{/if}}
|
|
361
|
+
</nav>
|
|
362
|
+
{{/if}}
|
|
363
|
+
`;
|
|
352
364
|
export const THEME_TEMPLATE_FILES = {
|
|
353
365
|
// Static front page (Reading Settings → homepage): renders the page body
|
|
354
366
|
// (seeded hero/about/contact sections) plus the latest posts grid.
|
|
@@ -478,6 +490,7 @@ ${HEADER}
|
|
|
478
490
|
{{/each}}
|
|
479
491
|
</div>
|
|
480
492
|
{{/if}}
|
|
493
|
+
${PAGINATION}
|
|
481
494
|
</section>
|
|
482
495
|
</main>
|
|
483
496
|
${FOOTER}</div>
|
|
@@ -506,6 +519,7 @@ ${HEADER}
|
|
|
506
519
|
{{/each}}
|
|
507
520
|
</div>
|
|
508
521
|
{{/if}}
|
|
522
|
+
${PAGINATION}
|
|
509
523
|
</section>
|
|
510
524
|
</main>
|
|
511
525
|
${FOOTER}</div>
|
package/dist/theme-assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-assets.js","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,4EAA4E;AAC5E,0EAA0E;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,IAAI,CAAC,SAAS,CACrD;IACE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,yFAAyF;IACtG,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,aAAa;IACrB,4EAA4E;IAC5E,yEAAyE;IACzE,sDAAsD;IACtD,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,EAAE;IAC3C,0EAA0E;IAC1E,WAAW,EAAE,CAAC,gBAAgB,CAAC;IAC/B,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;QACrF,MAAM,EAAE,CAAC,gBAAgB,CAAC;KAC3B;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,yEAAyE;QACzE,SAAS,EAAE,QAAQ;KACpB;IACD,QAAQ,EAAE;QACR,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;QAC1E,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE;KAClF;CACF,EACD,IAAI,EACJ,CAAC,CACF;CACA,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"theme-assets.js","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"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"}
|
package/dist/theme-build.js
CHANGED
|
@@ -63,7 +63,7 @@ export async function buildThemeStylesOnDisk(themesDir, themeName) {
|
|
|
63
63
|
}
|
|
64
64
|
const { css, report } = await buildThemeStyles({ themesRoot: themesDir, themeName, manifest });
|
|
65
65
|
// `output` vem do manifesto: nunca escrever fora do diretório do tema.
|
|
66
|
-
if (report.output.includes('..') || isAbsolute(report.output)) {
|
|
66
|
+
if (report.output.includes('..') || report.output.includes('\\') || isAbsolute(report.output)) {
|
|
67
67
|
throw new Error(`Invalid stylesConfig.output in ${manifestPath}: ${report.output}`);
|
|
68
68
|
}
|
|
69
69
|
// Sem entrada não existe o que compilar. Gravar `""` APAGARIA o
|
package/dist/theme-build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-build.js","sourceRoot":"","sources":["../src/theme-build.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,sDAAsD;AAEtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAElF,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,KAAa;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,KAAa;IAChE,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,MAAM,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAClF,CAAC;AACJ,CAAC;AAeD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,SAAiB;IAEjB,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,eAAe,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/F,uEAAuE;IACvE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"theme-build.js","sourceRoot":"","sources":["../src/theme-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-- +migrate Up
|
|
2
|
+
-- Theme config version history (audit trail + restore capability)
|
|
3
|
+
CREATE TABLE IF NOT EXISTS theme_config_versions (
|
|
4
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
5
|
+
theme_id UUID NOT NULL REFERENCES themes(id) ON DELETE CASCADE,
|
|
6
|
+
config JSONB NOT NULL,
|
|
7
|
+
user_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
8
|
+
change_summary TEXT,
|
|
9
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_theme_config_versions_theme ON theme_config_versions(theme_id);
|
|
13
|
+
CREATE INDEX IF NOT EXISTS idx_theme_config_versions_created ON theme_config_versions(created_at DESC);
|
|
14
|
+
|
|
15
|
+
-- Enable RLS
|
|
16
|
+
ALTER TABLE theme_config_versions ENABLE ROW LEVEL SECURITY;
|
|
17
|
+
|
|
18
|
+
DO $$
|
|
19
|
+
BEGIN
|
|
20
|
+
IF NOT EXISTS (
|
|
21
|
+
SELECT 1 FROM pg_policies
|
|
22
|
+
WHERE policyname = 'tenant_isolation_theme_config_versions' AND tablename = 'theme_config_versions'
|
|
23
|
+
) THEN
|
|
24
|
+
CREATE POLICY tenant_isolation_theme_config_versions ON theme_config_versions USING (
|
|
25
|
+
theme_id IN (
|
|
26
|
+
SELECT id FROM themes WHERE tenant_id = current_setting('app.current_tenant_id', true)::uuid
|
|
27
|
+
)
|
|
28
|
+
);
|
|
29
|
+
END IF;
|
|
30
|
+
END $$;
|
|
31
|
+
|
|
32
|
+
-- +migrate Down
|
|
33
|
+
DROP TABLE IF EXISTS theme_config_versions;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-- +migrate Up
|
|
2
|
+
-- Allow configuration history for both global and tenant-scoped themes.
|
|
3
|
+
DROP POLICY IF EXISTS tenant_isolation_theme_config_versions ON theme_config_versions;
|
|
4
|
+
CREATE POLICY tenant_isolation_theme_config_versions ON theme_config_versions
|
|
5
|
+
USING (
|
|
6
|
+
theme_id IN (
|
|
7
|
+
SELECT id
|
|
8
|
+
FROM themes
|
|
9
|
+
WHERE tenant_id = current_setting('app.current_tenant_id', true)::uuid
|
|
10
|
+
OR tenant_id IS NULL
|
|
11
|
+
)
|
|
12
|
+
)
|
|
13
|
+
WITH CHECK (
|
|
14
|
+
theme_id IN (
|
|
15
|
+
SELECT id
|
|
16
|
+
FROM themes
|
|
17
|
+
WHERE tenant_id = current_setting('app.current_tenant_id', true)::uuid
|
|
18
|
+
OR tenant_id IS NULL
|
|
19
|
+
)
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
ALTER TABLE theme_config_versions FORCE ROW LEVEL SECURITY;
|
|
23
|
+
|
|
24
|
+
-- +migrate Down
|
|
25
|
+
DROP POLICY IF EXISTS tenant_isolation_theme_config_versions ON theme_config_versions;
|
|
26
|
+
CREATE POLICY tenant_isolation_theme_config_versions ON theme_config_versions USING (
|
|
27
|
+
theme_id IN (
|
|
28
|
+
SELECT id FROM themes WHERE tenant_id = current_setting('app.current_tenant_id', true)::uuid
|
|
29
|
+
)
|
|
30
|
+
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oktis-works/cms",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"clean": "rm -rf dist migrations tsconfig.tsbuildinfo"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@oktis-works/auth": "^0.
|
|
23
|
+
"@oktis-works/auth": "^0.8.1",
|
|
24
24
|
"@oktis-works/config": "^0.6.4",
|
|
25
|
-
"@oktis-works/core": "^0.
|
|
26
|
-
"@oktis-works/database": "^0.14.
|
|
25
|
+
"@oktis-works/core": "^0.14.1",
|
|
26
|
+
"@oktis-works/database": "^0.14.1",
|
|
27
27
|
"@oktis-works/validation": "^0.7.0",
|
|
28
|
-
"@oktis-works/theme-runtime": "^0.10.
|
|
28
|
+
"@oktis-works/theme-runtime": "^0.10.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "5.7.3"
|