@prenta/admin 1.9.2 → 1.10.0
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/CHANGELOG.md +6 -0
- package/dist/AdminRoot.d.ts +10 -0
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +2 -1
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/lib/theme-chrome.test.d.ts +2 -0
- package/dist/__tests__/lib/theme-chrome.test.d.ts.map +1 -0
- package/dist/__tests__/lib/theme-chrome.test.js +104 -0
- package/dist/__tests__/lib/theme-chrome.test.js.map +1 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js +11 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/theme-chrome-frame.render.test.d.ts +2 -0
- package/dist/__tests__/views/theme-chrome-frame.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/theme-chrome-frame.render.test.js +236 -0
- package/dist/__tests__/views/theme-chrome-frame.render.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/theme-chrome.d.ts +87 -0
- package/dist/lib/theme-chrome.d.ts.map +1 -0
- package/dist/lib/theme-chrome.js +117 -0
- package/dist/lib/theme-chrome.js.map +1 -0
- package/dist/prenta-admin.css +1 -1
- package/dist/views/page-editor/CanvasSurface.d.ts +14 -2
- package/dist/views/page-editor/CanvasSurface.d.ts.map +1 -1
- package/dist/views/page-editor/CanvasSurface.js +30 -14
- package/dist/views/page-editor/CanvasSurface.js.map +1 -1
- package/dist/views/page-editor/EditorCanvas.d.ts +12 -1
- package/dist/views/page-editor/EditorCanvas.d.ts.map +1 -1
- package/dist/views/page-editor/EditorCanvas.js +22 -5
- package/dist/views/page-editor/EditorCanvas.js.map +1 -1
- package/dist/views/page-editor/EditorTopBar.d.ts +5 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +3 -2
- package/dist/views/page-editor/EditorTopBar.js.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +30 -2
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/page-editor/theme-chrome/ThemeChromeFrame.d.ts +21 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeFrame.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeFrame.js +34 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeFrame.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeHealth.d.ts +12 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeHealth.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeHealth.js +12 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeHealth.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeModeToggle.d.ts +11 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeModeToggle.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeModeToggle.js +15 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeModeToggle.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeProvider.d.ts +18 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeProvider.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeProvider.js +23 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeProvider.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeSlot.d.ts +11 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeSlot.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeSlot.js +82 -0
- package/dist/views/page-editor/theme-chrome/ThemeChromeSlot.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/index.d.ts +9 -0
- package/dist/views/page-editor/theme-chrome/index.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/index.js +6 -0
- package/dist/views/page-editor/theme-chrome/index.js.map +1 -0
- package/dist/views/page-editor/theme-chrome/useThemeChromeMode.d.ts +3 -0
- package/dist/views/page-editor/theme-chrome/useThemeChromeMode.d.ts.map +1 -0
- package/dist/views/page-editor/theme-chrome/useThemeChromeMode.js +17 -0
- package/dist/views/page-editor/theme-chrome/useThemeChromeMode.js.map +1 -0
- package/package.json +4 -4
- package/src/AdminRoot.tsx +14 -1
- package/src/__tests__/lib/theme-chrome.test.ts +132 -0
- package/src/__tests__/views/editor-top-bar.render.test.tsx +13 -0
- package/src/__tests__/views/theme-chrome-frame.render.test.tsx +304 -0
- package/src/index.ts +17 -0
- package/src/lib/theme-chrome.ts +172 -0
- package/src/views/page-editor/CanvasSurface.tsx +70 -24
- package/src/views/page-editor/EditorCanvas.tsx +89 -15
- package/src/views/page-editor/EditorTopBar.tsx +10 -0
- package/src/views/page-editor/PageSectionEditor.tsx +42 -0
- package/src/views/page-editor/theme-chrome/ThemeChromeFrame.tsx +119 -0
- package/src/views/page-editor/theme-chrome/ThemeChromeHealth.tsx +66 -0
- package/src/views/page-editor/theme-chrome/ThemeChromeModeToggle.tsx +63 -0
- package/src/views/page-editor/theme-chrome/ThemeChromeProvider.tsx +43 -0
- package/src/views/page-editor/theme-chrome/ThemeChromeSlot.tsx +235 -0
- package/src/views/page-editor/theme-chrome/index.ts +12 -0
- package/src/views/page-editor/theme-chrome/useThemeChromeMode.ts +24 -0
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export type { AdminRootProps } from './AdminRoot.js';
|
|
|
3
3
|
export { LoginRoot } from './LoginRoot.js';
|
|
4
4
|
export type { LoginRootProps } from './LoginRoot.js';
|
|
5
5
|
export type { AdminSectionRenderer, AdminSectionRendererMap, AdminSectionRendererProps, AdminSectionPostContext, AdminRenderImageProps, } from './views/page-editor/sections/index.js';
|
|
6
|
+
export type { AdminThemeChrome, AdminThemeChromeProps, AdminThemeChromeRenderer, ThemeChromeDocument, ThemeChromeEditTarget, ThemeChromeMode, ThemeChromeSurface, } from './lib/theme-chrome.js';
|
|
7
|
+
export { isThemeChromeEnabled, isSameOriginPreviewSrc, themeChromeEditPath, THEME_CHROME_MAIN_ID, } from './lib/theme-chrome.js';
|
|
8
|
+
export { useThemeChromeContext } from './views/page-editor/theme-chrome/index.js';
|
|
6
9
|
export { Layout } from './layout/Layout.js';
|
|
7
10
|
export type { LayoutProps } from './layout/Layout.js';
|
|
8
11
|
export { Sidebar } from './layout/Sidebar.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { AdminRoot } from './AdminRoot.js';
|
|
2
2
|
export { LoginRoot } from './LoginRoot.js';
|
|
3
|
+
export { isThemeChromeEnabled, isSameOriginPreviewSrc, themeChromeEditPath, THEME_CHROME_MAIN_ID, } from './lib/theme-chrome.js';
|
|
4
|
+
export { useThemeChromeContext } from './views/page-editor/theme-chrome/index.js';
|
|
3
5
|
export { Layout } from './layout/Layout.js';
|
|
4
6
|
export { Sidebar } from './layout/Sidebar.js';
|
|
5
7
|
export { Header } from './layout/Header.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme chrome — site header/footer in the page editor canvas.
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers and the public contract. React lives in
|
|
5
|
+
* `views/page-editor/theme-chrome/`. Do not put renderers on
|
|
6
|
+
* `prenta.config.ts` — this file is imported from the admin bundle only.
|
|
7
|
+
*/
|
|
8
|
+
import type { ReactNode } from 'react';
|
|
9
|
+
import type { BreakpointId } from './breakpoints.js';
|
|
10
|
+
export type ThemeChromeMode = 'flow' | 'frame';
|
|
11
|
+
export type ThemeChromeSurface = 'pages' | 'posts';
|
|
12
|
+
export type ThemeChromeEditTarget = 'navigations' | 'appearance' | 'settings';
|
|
13
|
+
export type ThemeChromeSlotStatus = 'ok' | 'preview' | 'fallback' | 'placeholder';
|
|
14
|
+
export interface ThemeChromeDocument {
|
|
15
|
+
id: string | null;
|
|
16
|
+
title: string;
|
|
17
|
+
path: string;
|
|
18
|
+
collection: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AdminThemeChromeProps {
|
|
21
|
+
region: 'header' | 'footer';
|
|
22
|
+
breakpoint: BreakpointId;
|
|
23
|
+
mode: ThemeChromeMode;
|
|
24
|
+
preview: true;
|
|
25
|
+
locale: string;
|
|
26
|
+
dir: 'ltr' | 'rtl';
|
|
27
|
+
document: ThemeChromeDocument;
|
|
28
|
+
onEditChrome: (target: ThemeChromeEditTarget) => void;
|
|
29
|
+
}
|
|
30
|
+
export type AdminThemeChromeRenderer = (props: AdminThemeChromeProps) => ReactNode;
|
|
31
|
+
export interface AdminThemeChrome {
|
|
32
|
+
header?: AdminThemeChromeRenderer;
|
|
33
|
+
footer?: AdminThemeChromeRenderer;
|
|
34
|
+
/** Shown when header/footer throw or are omitted but chrome is enabled. */
|
|
35
|
+
fallback?: AdminThemeChromeRenderer;
|
|
36
|
+
/**
|
|
37
|
+
* Same-origin URL for hosts whose real chrome is server-only.
|
|
38
|
+
* Rendered in a sandboxed iframe inside the chrome slot; never the whole page.
|
|
39
|
+
*/
|
|
40
|
+
previewSrc?: {
|
|
41
|
+
header?: string;
|
|
42
|
+
footer?: string;
|
|
43
|
+
};
|
|
44
|
+
/** Surfaces that mount chrome. Default: pages only. */
|
|
45
|
+
surfaces?: ThemeChromeSurface[];
|
|
46
|
+
/** Default canvas mode. Default: flow (real document scroll). */
|
|
47
|
+
defaultMode?: ThemeChromeMode;
|
|
48
|
+
/**
|
|
49
|
+
* Optional health-strip extras. Hosts that already know nav/brand state
|
|
50
|
+
* can pass them; the canvas will not fetch on their behalf.
|
|
51
|
+
*/
|
|
52
|
+
diagnostics?: {
|
|
53
|
+
navLinkCount?: number;
|
|
54
|
+
brandPresent?: boolean;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare const THEME_CHROME_MODE_KEY = "prenta-theme-chrome-mode";
|
|
58
|
+
export declare const THEME_CHROME_MAIN_ID = "prenta-canvas-main";
|
|
59
|
+
export declare function isThemeChromeEnabled(spec: AdminThemeChrome | null | undefined, killSwitch: boolean | {
|
|
60
|
+
pages?: boolean;
|
|
61
|
+
posts?: boolean;
|
|
62
|
+
} | undefined, surface: ThemeChromeSurface): boolean;
|
|
63
|
+
export declare function readStoredChromeMode(): ThemeChromeMode | null;
|
|
64
|
+
export declare function writeStoredChromeMode(mode: ThemeChromeMode): void;
|
|
65
|
+
export declare function resolveThemeChromeLocale(opts: {
|
|
66
|
+
documentLocale?: string | null;
|
|
67
|
+
activeLocale?: string | null;
|
|
68
|
+
defaultLocale?: string | null;
|
|
69
|
+
}): string;
|
|
70
|
+
export declare function resolveThemeChromeDir(locale: string, locales: Array<{
|
|
71
|
+
code: string;
|
|
72
|
+
dir?: 'ltr' | 'rtl';
|
|
73
|
+
}>): 'ltr' | 'rtl';
|
|
74
|
+
/**
|
|
75
|
+
* Public path for chrome context. Serving-path first; never an admin route.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveThemeChromePath(path: string | null | undefined, slug?: string): string;
|
|
78
|
+
export declare function themeChromeEditPath(target: ThemeChromeEditTarget): string;
|
|
79
|
+
/**
|
|
80
|
+
* Same-origin chrome-only preview URLs. Relative paths starting with `/`
|
|
81
|
+
* (not `//`) are allowed. Absolute URLs must match `origin`. Protocol-relative,
|
|
82
|
+
* data:, javascript:, and off-origin URLs are rejected.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isSameOriginPreviewSrc(src: string, origin?: string): boolean;
|
|
85
|
+
export declare function chromeContainsH1(root: ParentNode | null): boolean;
|
|
86
|
+
export declare function closestAnchor(target: EventTarget | null): HTMLAnchorElement | null;
|
|
87
|
+
//# sourceMappingURL=theme-chrome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-chrome.d.ts","sourceRoot":"","sources":["../../src/lib/theme-chrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme chrome — site header/footer in the page editor canvas.
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers and the public contract. React lives in
|
|
5
|
+
* `views/page-editor/theme-chrome/`. Do not put renderers on
|
|
6
|
+
* `prenta.config.ts` — this file is imported from the admin bundle only.
|
|
7
|
+
*/
|
|
8
|
+
export const THEME_CHROME_MODE_KEY = 'prenta-theme-chrome-mode';
|
|
9
|
+
export const THEME_CHROME_MAIN_ID = 'prenta-canvas-main';
|
|
10
|
+
export function isThemeChromeEnabled(spec, killSwitch, surface) {
|
|
11
|
+
if (!spec)
|
|
12
|
+
return false;
|
|
13
|
+
const surfaces = spec.surfaces ?? ['pages'];
|
|
14
|
+
if (!surfaces.includes(surface))
|
|
15
|
+
return false;
|
|
16
|
+
if (killSwitch === false)
|
|
17
|
+
return false;
|
|
18
|
+
if (killSwitch && typeof killSwitch === 'object' && killSwitch[surface] === false) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
export function readStoredChromeMode() {
|
|
24
|
+
if (typeof window === 'undefined')
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
const value = window.localStorage.getItem(THEME_CHROME_MODE_KEY);
|
|
28
|
+
return value === 'flow' || value === 'frame' ? value : null;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function writeStoredChromeMode(mode) {
|
|
35
|
+
if (typeof window === 'undefined')
|
|
36
|
+
return;
|
|
37
|
+
try {
|
|
38
|
+
window.localStorage.setItem(THEME_CHROME_MODE_KEY, mode);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Private mode / quota — mode still works for this session.
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function resolveThemeChromeLocale(opts) {
|
|
45
|
+
const picked = opts.documentLocale || opts.activeLocale || opts.defaultLocale || 'en';
|
|
46
|
+
return picked.trim() || 'en';
|
|
47
|
+
}
|
|
48
|
+
export function resolveThemeChromeDir(locale, locales) {
|
|
49
|
+
return locales.find((entry) => entry.code === locale)?.dir === 'rtl' ? 'rtl' : 'ltr';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Public path for chrome context. Serving-path first; never an admin route.
|
|
53
|
+
*/
|
|
54
|
+
export function resolveThemeChromePath(path, slug) {
|
|
55
|
+
const trimmed = (path ?? '').trim();
|
|
56
|
+
if (trimmed)
|
|
57
|
+
return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
|
|
58
|
+
const s = (slug ?? '').trim().replace(/^\/+/, '');
|
|
59
|
+
if (!s || s === 'home' || s === 'index')
|
|
60
|
+
return '/';
|
|
61
|
+
return `/${s}`;
|
|
62
|
+
}
|
|
63
|
+
export function themeChromeEditPath(target) {
|
|
64
|
+
switch (target) {
|
|
65
|
+
case 'navigations':
|
|
66
|
+
return '/navigations';
|
|
67
|
+
case 'appearance':
|
|
68
|
+
return '/settings?tab=appearance';
|
|
69
|
+
case 'settings':
|
|
70
|
+
return '/settings?tab=general';
|
|
71
|
+
default: {
|
|
72
|
+
const _exhaustive = target;
|
|
73
|
+
return _exhaustive;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Same-origin chrome-only preview URLs. Relative paths starting with `/`
|
|
79
|
+
* (not `//`) are allowed. Absolute URLs must match `origin`. Protocol-relative,
|
|
80
|
+
* data:, javascript:, and off-origin URLs are rejected.
|
|
81
|
+
*/
|
|
82
|
+
export function isSameOriginPreviewSrc(src, origin) {
|
|
83
|
+
const trimmed = src.trim();
|
|
84
|
+
if (!trimmed)
|
|
85
|
+
return false;
|
|
86
|
+
if (trimmed.startsWith('/') && !trimmed.startsWith('//')) {
|
|
87
|
+
return !trimmed.toLowerCase().startsWith('/\\') && !/^[a-z][a-z0-9+.-]*:/i.test(trimmed);
|
|
88
|
+
}
|
|
89
|
+
let parsed;
|
|
90
|
+
try {
|
|
91
|
+
parsed = new URL(trimmed);
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
|
|
97
|
+
return false;
|
|
98
|
+
const expected = origin ?? (typeof window !== 'undefined' ? window.location.origin : '');
|
|
99
|
+
if (!expected)
|
|
100
|
+
return false;
|
|
101
|
+
try {
|
|
102
|
+
return parsed.origin === new URL(expected).origin;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export function chromeContainsH1(root) {
|
|
109
|
+
return Boolean(root?.querySelector('h1'));
|
|
110
|
+
}
|
|
111
|
+
export function closestAnchor(target) {
|
|
112
|
+
if (!(target instanceof Element))
|
|
113
|
+
return null;
|
|
114
|
+
const found = target.closest('a[href]');
|
|
115
|
+
return found instanceof HTMLAnchorElement ? found : null;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=theme-chrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-chrome.js","sourceRoot":"","sources":["../../src/lib/theme-chrome.ts"],"names":[],"mappings":"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"}
|