@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.
@@ -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,CA4ExH"}
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":"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"}
@@ -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.14.5',
7
- '@oktis-works/admin': '0.20.0',
8
- '@oktis-works/web': '0.11.2',
9
- '@oktis-works/worker': '0.8.8',
10
- '@oktis-works/core': '0.11.5',
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.1',
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,OAAO;IAC9B,mBAAmB,EAAE,QAAQ;IAC7B,6BAA6B,EAAE,OAAO;IACtC,kBAAkB,EAAE,QAAQ;CAC7B,CAAC"}
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"}
@@ -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,wjaA6P7B,CAAC;AAkEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4KvD,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"}
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"}
@@ -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>
@@ -1 +1 @@
1
- {"version":3,"file":"theme-assets.js","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-assets.js","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"theme-build.js","sourceRoot":"","sources":["../src/theme-build.ts"],"names":[],"mappings":"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"}
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.1",
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.7.9",
23
+ "@oktis-works/auth": "^0.8.1",
24
24
  "@oktis-works/config": "^0.6.4",
25
- "@oktis-works/core": "^0.11.5",
26
- "@oktis-works/database": "^0.14.0",
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.0"
28
+ "@oktis-works/theme-runtime": "^0.10.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "5.7.3"