@oktis-works/cms 0.11.2 → 0.12.1
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.
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
export const APP_VERSIONS = {
|
|
6
6
|
'@oktis-works/api': '0.14.4',
|
|
7
7
|
'@oktis-works/admin': '0.19.1',
|
|
8
|
-
'@oktis-works/web': '0.11.
|
|
8
|
+
'@oktis-works/web': '0.11.1',
|
|
9
9
|
'@oktis-works/worker': '0.8.7',
|
|
10
10
|
'@oktis-works/core': '0.11.4',
|
|
11
11
|
'@oktis-works/plugin-runtime': '0.7.0',
|
|
12
|
-
'@oktis-works/cms': '0.
|
|
12
|
+
'@oktis-works/cms': '0.12.1',
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=app-versions.js.map
|
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[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/* ---------- 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,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"}
|
package/dist/theme-assets.js
CHANGED
|
@@ -20,7 +20,7 @@ export const DEFAULT_THEME_MANIFEST = `${JSON.stringify({
|
|
|
20
20
|
// Preview card on the admin Themes screen (served from /themes/default/).
|
|
21
21
|
screenshots: ['screenshot.png'],
|
|
22
22
|
provides: {
|
|
23
|
-
layouts: ['front-page', 'home', 'index', 'single', 'page', 'archive', '404'],
|
|
23
|
+
layouts: ['front-page', 'home', 'posts', 'index', 'single', 'page', 'archive', '404'],
|
|
24
24
|
assets: ['dist/theme.css'],
|
|
25
25
|
},
|
|
26
26
|
stylesConfig: {
|
|
@@ -55,6 +55,12 @@ export const DEFAULT_THEME_CSS = `/* OkCMS default theme — design system (serv
|
|
|
55
55
|
|
|
56
56
|
[data-theme="default"] *,[data-theme="default"] *::before,[data-theme="default"] *::after{ box-sizing: border-box; }
|
|
57
57
|
|
|
58
|
+
/* Page-level reset: the UA default body margin (8px) would frame the whole
|
|
59
|
+
site in white on every side (top/left/right/bottom). Scoped with :has so
|
|
60
|
+
this stylesheet — also the last fallback of the project chain — never
|
|
61
|
+
changes the page box of another theme. */
|
|
62
|
+
body:has([data-theme="default"]){ margin: 0; padding: 0; }
|
|
63
|
+
|
|
58
64
|
[data-theme="default"]{
|
|
59
65
|
margin: 0;
|
|
60
66
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
@@ -321,7 +327,7 @@ const FOOTER = `<footer class="site-footer">
|
|
|
321
327
|
</div>
|
|
322
328
|
</footer>
|
|
323
329
|
`;
|
|
324
|
-
/** Latest posts grid — fed by `items` (fetched for home/front-page/
|
|
330
|
+
/** Latest posts grid — fed by `items` (fetched for home/front-page/posts page). */
|
|
325
331
|
const POSTS_SECTION = `{{#if items}}
|
|
326
332
|
<section class="section" id="posts">
|
|
327
333
|
<div class="section__head">
|
|
@@ -447,7 +453,36 @@ ${HEADER}
|
|
|
447
453
|
</main>
|
|
448
454
|
${FOOTER}</div>
|
|
449
455
|
`,
|
|
450
|
-
//
|
|
456
|
+
// Posts page (Reading Settings → posts page, WP `home.php`): title + intro
|
|
457
|
+
// from the page body, then the latest posts grid fed by `items`.
|
|
458
|
+
'posts.astro': `<div class="site" data-theme="{{site.theme}}" data-template="posts">
|
|
459
|
+
${HEADER}
|
|
460
|
+
<main class="site-main">
|
|
461
|
+
<header class="archive-header">
|
|
462
|
+
<h1 class="archive-header__title">{{page.title}}</h1>
|
|
463
|
+
{{#if content.html}}
|
|
464
|
+
<div class="archive-header__description">{{{content.html}}}</div>
|
|
465
|
+
{{/if}}
|
|
466
|
+
</header>
|
|
467
|
+
|
|
468
|
+
<section class="section section--tight">
|
|
469
|
+
{{#if items}}
|
|
470
|
+
<div class="cards">
|
|
471
|
+
{{#each items}}
|
|
472
|
+
<article class="card">
|
|
473
|
+
{{#if published_at}}<time class="card__date" datetime="{{published_at}}">{{published_at}}</time>{{/if}}
|
|
474
|
+
<h2 class="card__title"><a href="/{{slug}}">{{title}}</a></h2>
|
|
475
|
+
{{#if excerpt}}<p class="card__excerpt">{{excerpt}}</p>{{/if}}
|
|
476
|
+
<a class="card__more" href="/{{slug}}">Read more →</a>
|
|
477
|
+
</article>
|
|
478
|
+
{{/each}}
|
|
479
|
+
</div>
|
|
480
|
+
{{/if}}
|
|
481
|
+
</section>
|
|
482
|
+
</main>
|
|
483
|
+
${FOOTER}</div>
|
|
484
|
+
`,
|
|
485
|
+
// Archive (post type listing — e.g. /post when the type has an archive).
|
|
451
486
|
'archive.astro': `<div class="site" data-theme="{{site.theme}}" data-template="archive" data-type="{{page.type}}">
|
|
452
487
|
${HEADER}
|
|
453
488
|
<main class="site-main">
|
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,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"theme-assets.js","sourceRoot":"","sources":["../src/theme-assets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oktis-works/cms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@oktis-works/core": "^0.11.4",
|
|
26
26
|
"@oktis-works/database": "^0.13.1",
|
|
27
27
|
"@oktis-works/validation": "^0.7.0",
|
|
28
|
-
"@oktis-works/theme-runtime": "^0.
|
|
28
|
+
"@oktis-works/theme-runtime": "^0.10.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "5.7.3"
|