@delmaredigital/payload-puck 0.6.1 → 0.6.3
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/README.md +133 -19
- package/dist/editor/PuckEditor.d.ts +20 -1
- package/dist/editor/PuckEditor.d.ts.map +1 -1
- package/dist/editor/PuckEditor.js +4 -2
- package/dist/editor/PuckEditor.js.map +1 -1
- package/dist/editor/PuckEditorImpl.client.d.ts +20 -1
- package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
- package/dist/editor/PuckEditorImpl.client.js +17 -7
- package/dist/editor/PuckEditorImpl.client.js.map +1 -1
- package/dist/editor/components/DarkModeStyles.d.ts +30 -0
- package/dist/editor/components/DarkModeStyles.d.ts.map +1 -0
- package/dist/editor/components/DarkModeStyles.js +157 -0
- package/dist/editor/components/DarkModeStyles.js.map +1 -0
- package/dist/editor/components/HeaderActions.d.ts +13 -0
- package/dist/editor/components/HeaderActions.d.ts.map +1 -1
- package/dist/editor/components/HeaderActions.js +3 -2
- package/dist/editor/components/HeaderActions.js.map +1 -1
- package/dist/editor/components/IframeWrapper.d.ts +7 -0
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
- package/dist/editor/components/IframeWrapper.js +21 -8
- package/dist/editor/components/IframeWrapper.js.map +1 -1
- package/dist/editor/components/PreviewModeToggle.d.ts +32 -0
- package/dist/editor/components/PreviewModeToggle.d.ts.map +1 -0
- package/dist/editor/components/PreviewModeToggle.js +67 -0
- package/dist/editor/components/PreviewModeToggle.js.map +1 -0
- package/dist/editor/hooks/useDarkMode.d.ts +37 -0
- package/dist/editor/hooks/useDarkMode.d.ts.map +1 -0
- package/dist/editor/hooks/useDarkMode.js +80 -0
- package/dist/editor/hooks/useDarkMode.js.map +1 -0
- package/dist/editor/index.d.ts +3 -0
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +3 -0
- package/dist/editor/index.js.map +1 -1
- package/dist/endpoints/styles.d.ts +1 -0
- package/dist/endpoints/styles.d.ts.map +1 -1
- package/dist/endpoints/styles.js +33 -11
- package/dist/endpoints/styles.js.map +1 -1
- package/dist/fields/MediaField.d.ts.map +1 -1
- package/dist/fields/MediaField.js +4 -2
- package/dist/fields/MediaField.js.map +1 -1
- package/dist/layouts/index.d.ts +1 -1
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +1 -1
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/types.d.ts +14 -2
- package/dist/layouts/types.d.ts.map +1 -1
- package/dist/layouts/utils.d.ts +35 -0
- package/dist/layouts/utils.d.ts.map +1 -1
- package/dist/layouts/utils.js +37 -0
- package/dist/layouts/utils.js.map +1 -1
- package/dist/next/index.d.ts +65 -0
- package/dist/next/index.d.ts.map +1 -0
- package/dist/next/index.js +160 -0
- package/dist/next/index.js.map +1 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +10 -2
- package/dist/plugin/index.js.map +1 -1
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +2 -0
- package/dist/render/index.js.map +1 -1
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { useDarkMode } from '../hooks/useDarkMode';
|
|
4
|
+
/**
|
|
5
|
+
* Dark mode CSS to inject. This contains all Puck color variable overrides.
|
|
6
|
+
* We inline this rather than importing a CSS file to avoid build complexity.
|
|
7
|
+
*/
|
|
8
|
+
const DARK_MODE_CSS = `
|
|
9
|
+
/**
|
|
10
|
+
* Puck Editor Dark Mode CSS Overrides
|
|
11
|
+
*
|
|
12
|
+
* Puck's UI is always light-themed (no built-in dark mode).
|
|
13
|
+
* When Payload CMS is in dark mode, we need to ensure Puck's
|
|
14
|
+
* form inputs remain readable (dark text on light background).
|
|
15
|
+
*
|
|
16
|
+
* This CSS forces light-mode text colors in Puck UI elements
|
|
17
|
+
* to prevent white-on-white text when Payload is in dark mode.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/* Force dark text in all Puck form inputs and UI elements */
|
|
21
|
+
.dark [class*="Puck"],
|
|
22
|
+
.dark [class*="puck-"],
|
|
23
|
+
[data-theme="dark"] [class*="Puck"],
|
|
24
|
+
[data-theme="dark"] [class*="puck-"] {
|
|
25
|
+
/* Reset text color inheritance from Payload's dark mode */
|
|
26
|
+
color: #1f2937;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Ensure form inputs have dark text */
|
|
30
|
+
.dark [class*="Puck"] input,
|
|
31
|
+
.dark [class*="Puck"] textarea,
|
|
32
|
+
.dark [class*="Puck"] select,
|
|
33
|
+
.dark [class*="puck-"] input,
|
|
34
|
+
.dark [class*="puck-"] textarea,
|
|
35
|
+
.dark [class*="puck-"] select,
|
|
36
|
+
[data-theme="dark"] [class*="Puck"] input,
|
|
37
|
+
[data-theme="dark"] [class*="Puck"] textarea,
|
|
38
|
+
[data-theme="dark"] [class*="Puck"] select,
|
|
39
|
+
[data-theme="dark"] [class*="puck-"] input,
|
|
40
|
+
[data-theme="dark"] [class*="puck-"] textarea,
|
|
41
|
+
[data-theme="dark"] [class*="puck-"] select {
|
|
42
|
+
color: #1f2937 !important;
|
|
43
|
+
background-color: #ffffff !important;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Ensure labels and text in Puck panels are dark */
|
|
47
|
+
.dark [class*="Puck"] label,
|
|
48
|
+
.dark [class*="Puck"] span,
|
|
49
|
+
.dark [class*="Puck"] p,
|
|
50
|
+
.dark [class*="puck-"] label,
|
|
51
|
+
.dark [class*="puck-"] span,
|
|
52
|
+
.dark [class*="puck-"] p,
|
|
53
|
+
[data-theme="dark"] [class*="Puck"] label,
|
|
54
|
+
[data-theme="dark"] [class*="Puck"] span,
|
|
55
|
+
[data-theme="dark"] [class*="Puck"] p,
|
|
56
|
+
[data-theme="dark"] [class*="puck-"] label,
|
|
57
|
+
[data-theme="dark"] [class*="puck-"] span,
|
|
58
|
+
[data-theme="dark"] [class*="puck-"] p {
|
|
59
|
+
color: #1f2937;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Ensure buttons maintain proper styling */
|
|
63
|
+
.dark [class*="Puck"] button,
|
|
64
|
+
.dark [class*="puck-"] button,
|
|
65
|
+
[data-theme="dark"] [class*="Puck"] button,
|
|
66
|
+
[data-theme="dark"] [class*="puck-"] button {
|
|
67
|
+
color: inherit;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Fix placeholder text */
|
|
71
|
+
.dark [class*="Puck"] input::placeholder,
|
|
72
|
+
.dark [class*="Puck"] textarea::placeholder,
|
|
73
|
+
.dark [class*="puck-"] input::placeholder,
|
|
74
|
+
.dark [class*="puck-"] textarea::placeholder,
|
|
75
|
+
[data-theme="dark"] [class*="Puck"] input::placeholder,
|
|
76
|
+
[data-theme="dark"] [class*="Puck"] textarea::placeholder,
|
|
77
|
+
[data-theme="dark"] [class*="puck-"] input::placeholder,
|
|
78
|
+
[data-theme="dark"] [class*="puck-"] textarea::placeholder {
|
|
79
|
+
color: #9ca3af !important;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Ensure headings in Puck are visible */
|
|
83
|
+
.dark [class*="Puck"] h1,
|
|
84
|
+
.dark [class*="Puck"] h2,
|
|
85
|
+
.dark [class*="Puck"] h3,
|
|
86
|
+
.dark [class*="Puck"] h4,
|
|
87
|
+
.dark [class*="puck-"] h1,
|
|
88
|
+
.dark [class*="puck-"] h2,
|
|
89
|
+
.dark [class*="puck-"] h3,
|
|
90
|
+
.dark [class*="puck-"] h4,
|
|
91
|
+
[data-theme="dark"] [class*="Puck"] h1,
|
|
92
|
+
[data-theme="dark"] [class*="Puck"] h2,
|
|
93
|
+
[data-theme="dark"] [class*="Puck"] h3,
|
|
94
|
+
[data-theme="dark"] [class*="Puck"] h4,
|
|
95
|
+
[data-theme="dark"] [class*="puck-"] h1,
|
|
96
|
+
[data-theme="dark"] [class*="puck-"] h2,
|
|
97
|
+
[data-theme="dark"] [class*="puck-"] h3,
|
|
98
|
+
[data-theme="dark"] [class*="puck-"] h4 {
|
|
99
|
+
color: #1f2937;
|
|
100
|
+
}
|
|
101
|
+
`.trim();
|
|
102
|
+
const STYLE_ID = 'puck-dark-mode-styles';
|
|
103
|
+
/**
|
|
104
|
+
* Injects dark mode CSS overrides for Puck when dark mode is detected.
|
|
105
|
+
*
|
|
106
|
+
* This component uses the useDarkMode hook to detect when PayloadCMS admin
|
|
107
|
+
* is in dark mode (via .dark class) or when OS preference is dark mode.
|
|
108
|
+
* It then injects/removes the CSS overrides accordingly.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* function MyEditor() {
|
|
113
|
+
* return (
|
|
114
|
+
* <>
|
|
115
|
+
* <DarkModeStyles />
|
|
116
|
+
* <Puck ... />
|
|
117
|
+
* </>
|
|
118
|
+
* )
|
|
119
|
+
* }
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export function DarkModeStyles({ forceEnabled }) {
|
|
123
|
+
const { isDarkMode } = useDarkMode();
|
|
124
|
+
// Determine if we should inject styles
|
|
125
|
+
const shouldInject = forceEnabled ?? isDarkMode;
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
if (typeof document === 'undefined')
|
|
128
|
+
return;
|
|
129
|
+
// Check if style element already exists
|
|
130
|
+
let styleElement = document.getElementById(STYLE_ID);
|
|
131
|
+
if (shouldInject) {
|
|
132
|
+
// Inject styles if not already present
|
|
133
|
+
if (!styleElement) {
|
|
134
|
+
styleElement = document.createElement('style');
|
|
135
|
+
styleElement.id = STYLE_ID;
|
|
136
|
+
styleElement.textContent = DARK_MODE_CSS;
|
|
137
|
+
document.head.appendChild(styleElement);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Remove styles if present
|
|
142
|
+
if (styleElement) {
|
|
143
|
+
styleElement.remove();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Cleanup on unmount
|
|
147
|
+
return () => {
|
|
148
|
+
const el = document.getElementById(STYLE_ID);
|
|
149
|
+
if (el) {
|
|
150
|
+
el.remove();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}, [shouldInject]);
|
|
154
|
+
// This component doesn't render anything
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=DarkModeStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DarkModeStyles.js","sourceRoot":"","sources":["../../../src/editor/components/DarkModeStyles.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD;;;GAGG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FrB,CAAC,IAAI,EAAE,CAAA;AAER,MAAM,QAAQ,GAAG,uBAAuB,CAAA;AAYxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,YAAY,EAAuB;IAClE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAA;IAEpC,uCAAuC;IACvC,MAAM,YAAY,GAAG,YAAY,IAAI,UAAU,CAAA;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAM;QAE3C,wCAAwC;QACxC,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAA4B,CAAA;QAE/E,IAAI,YAAY,EAAE,CAAC;YACjB,uCAAuC;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC9C,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAA;gBAC1B,YAAY,CAAC,WAAW,GAAG,aAAa,CAAA;gBACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,MAAM,EAAE,CAAA;YACvB,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,MAAM,EAAE,CAAA;YACb,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,yCAAyC;IACzC,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -103,6 +103,19 @@ export interface HeaderActionsProps {
|
|
|
103
103
|
* Handler to dismiss the error message
|
|
104
104
|
*/
|
|
105
105
|
onDismissError?: () => void;
|
|
106
|
+
/**
|
|
107
|
+
* Whether to show the preview dark mode toggle
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
showPreviewDarkModeToggle?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Current state of preview dark mode
|
|
113
|
+
*/
|
|
114
|
+
previewDarkMode?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Handler for toggling preview dark mode
|
|
117
|
+
*/
|
|
118
|
+
onPreviewDarkModeChange?: (isDarkMode: boolean) => void;
|
|
106
119
|
}
|
|
107
120
|
/**
|
|
108
121
|
* Custom header actions component for the Puck editor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderActions.d.ts","sourceRoot":"","sources":["../../../src/editor/components/HeaderActions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAA;AAC7E,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"HeaderActions.d.ts","sourceRoot":"","sources":["../../../src/editor/components/HeaderActions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAA;AAC7E,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAqB3D,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAI3B;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;CACxD;AAkMD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,0DAsSxB,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { memo, useCallback } from 'react';
|
|
|
4
4
|
import { createUsePuck } from '@puckeditor/core';
|
|
5
5
|
import { ArrowLeft, Save, ExternalLink, Loader2, Check, MousePointerClick, MousePointer, Upload, AlertTriangle, Eye, } from 'lucide-react';
|
|
6
6
|
import { VersionHistory } from './VersionHistory.js';
|
|
7
|
+
import { PreviewModeToggle } from './PreviewModeToggle.js';
|
|
7
8
|
import { VERSION } from '../../version.js';
|
|
8
9
|
// Create usePuck hook for accessing editor state
|
|
9
10
|
const usePuck = createUsePuck();
|
|
@@ -204,7 +205,7 @@ const styles = {
|
|
|
204
205
|
* Provides standard actions: Back, Edit/Interactive toggle, View Page, Save Draft
|
|
205
206
|
* Also displays save status and last saved time.
|
|
206
207
|
*/
|
|
207
|
-
export const HeaderActions = memo(function HeaderActions({ children, onBack, onPreview, onSave, onPublish, onUnpublish, isSaving, hasUnsavedChanges, lastSaved, documentStatus, wasPublished, actionsStart, actionsEnd, showSaveDraft = true, showViewPage = true, showInteractiveToggle = false, showPreviewButton = true, onOpenPreview, showVersionHistory = true, pageId, apiEndpoint = '/api/puck/pages', saveError, onDismissError, }) {
|
|
208
|
+
export const HeaderActions = memo(function HeaderActions({ children, onBack, onPreview, onSave, onPublish, onUnpublish, isSaving, hasUnsavedChanges, lastSaved, documentStatus, wasPublished, actionsStart, actionsEnd, showSaveDraft = true, showViewPage = true, showInteractiveToggle = false, showPreviewButton = true, onOpenPreview, showVersionHistory = true, pageId, apiEndpoint = '/api/puck/pages', saveError, onDismissError, showPreviewDarkModeToggle = false, previewDarkMode = false, onPreviewDarkModeChange, }) {
|
|
208
209
|
const appState = usePuck((s) => s.appState);
|
|
209
210
|
const dispatch = usePuck((s) => s.dispatch);
|
|
210
211
|
const isInteractive = appState.ui.previewMode === 'interactive';
|
|
@@ -248,7 +249,7 @@ export const HeaderActions = memo(function HeaderActions({ children, onBack, onP
|
|
|
248
249
|
}, children: [_jsx(MousePointer, { style: styles.iconSmall }), "Edit"] }), _jsxs("button", { type: "button", onClick: () => !isInteractive && togglePreviewMode(), style: {
|
|
249
250
|
...styles.toggleButton,
|
|
250
251
|
...(isInteractive ? styles.toggleActive : styles.toggleInactive),
|
|
251
|
-
}, children: [_jsx(MousePointerClick, { style: styles.iconSmall }), "Interactive"] })] })), lastSaved && !saveError && (_jsxs("span", { style: styles.statusText, children: [_jsx(Check, { style: { width: '12px', height: '12px', flexShrink: 0 } }), "Saved ", lastSaved.toLocaleTimeString()] })), hasUnsavedChanges && !saveError && (_jsx("span", { style: styles.unsavedText, children: "Unsaved" })), saveError && (_jsxs("button", { type: "button", onClick: () => { }, style: styles.errorButton, children: [_jsx(AlertTriangle, { style: { width: '16px', height: '16px', color: 'var(--theme-error-500)', flexShrink: 0 } }), "Error"] })), saveError && (_jsx("div", { style: styles.modalOverlay, onClick: onDismissError, children: _jsxs("div", { style: styles.modalContainer, onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { style: styles.modalHeader, children: [_jsx("div", { style: styles.modalIconWrapper, children: _jsx(AlertTriangle, { style: { width: '20px', height: '20px', color: 'var(--theme-error-600)' } }) }), _jsxs("div", { children: [_jsx("h3", { style: styles.modalTitle, children: "Save Failed" }), _jsx("p", { style: styles.modalSubtitle, children: "Unable to save your changes" })] })] }), _jsx("div", { style: styles.modalBody, children: _jsx("p", { style: styles.modalBodyText, children: saveError }) }), _jsx("div", { style: styles.modalFooter, children: _jsx("button", { type: "button", onClick: onDismissError, style: { ...styles.buttonBase, ...styles.buttonPrimary }, children: "Close" }) })] }) })), showPreviewButton && onOpenPreview && (_jsxs("button", { type: "button", onClick: onOpenPreview, disabled: isSaving, style: {
|
|
252
|
+
}, children: [_jsx(MousePointerClick, { style: styles.iconSmall }), "Interactive"] })] })), showPreviewDarkModeToggle && onPreviewDarkModeChange && (_jsx(PreviewModeToggle, { isDarkMode: previewDarkMode, onToggle: onPreviewDarkModeChange, disabled: isSaving })), lastSaved && !saveError && (_jsxs("span", { style: styles.statusText, children: [_jsx(Check, { style: { width: '12px', height: '12px', flexShrink: 0 } }), "Saved ", lastSaved.toLocaleTimeString()] })), hasUnsavedChanges && !saveError && (_jsx("span", { style: styles.unsavedText, children: "Unsaved" })), saveError && (_jsxs("button", { type: "button", onClick: () => { }, style: styles.errorButton, children: [_jsx(AlertTriangle, { style: { width: '16px', height: '16px', color: 'var(--theme-error-500)', flexShrink: 0 } }), "Error"] })), saveError && (_jsx("div", { style: styles.modalOverlay, onClick: onDismissError, children: _jsxs("div", { style: styles.modalContainer, onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { style: styles.modalHeader, children: [_jsx("div", { style: styles.modalIconWrapper, children: _jsx(AlertTriangle, { style: { width: '20px', height: '20px', color: 'var(--theme-error-600)' } }) }), _jsxs("div", { children: [_jsx("h3", { style: styles.modalTitle, children: "Save Failed" }), _jsx("p", { style: styles.modalSubtitle, children: "Unable to save your changes" })] })] }), _jsx("div", { style: styles.modalBody, children: _jsx("p", { style: styles.modalBodyText, children: saveError }) }), _jsx("div", { style: styles.modalFooter, children: _jsx("button", { type: "button", onClick: onDismissError, style: { ...styles.buttonBase, ...styles.buttonPrimary }, children: "Close" }) })] }) })), showPreviewButton && onOpenPreview && (_jsxs("button", { type: "button", onClick: onOpenPreview, disabled: isSaving, style: {
|
|
252
253
|
...styles.buttonBase,
|
|
253
254
|
...styles.buttonPrimary,
|
|
254
255
|
...(isSaving ? styles.buttonDisabled : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderActions.js","sourceRoot":"","sources":["../../../src/editor/components/HeaderActions.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeaderActions.js","sourceRoot":"","sources":["../../../src/editor/components/HeaderActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,13 @@ export interface IframeWrapperProps {
|
|
|
61
61
|
* Useful for CSS variables or style overrides.
|
|
62
62
|
*/
|
|
63
63
|
editorCss?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Override the layout's dark mode setting for the preview.
|
|
66
|
+
* When true, forces dark mode in the preview iframe.
|
|
67
|
+
* When false, forces light mode in the preview iframe.
|
|
68
|
+
* When undefined, uses the layout's editorDarkMode setting.
|
|
69
|
+
*/
|
|
70
|
+
previewDarkModeOverride?: boolean;
|
|
64
71
|
}
|
|
65
72
|
/**
|
|
66
73
|
* Theme-aware iframe wrapper component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeWrapper.d.ts","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAMrD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"IframeWrapper.d.ts","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAMrD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAUD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,0DAqVxB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { memo, useEffect, useMemo, useState } from 'react';
|
|
4
4
|
import { createUsePuck } from '@puckeditor/core';
|
|
5
5
|
import { backgroundValueToCSS } from '../../fields/shared';
|
|
@@ -36,7 +36,7 @@ const DEFAULT_LAYOUT_CONFIG = {
|
|
|
36
36
|
* }
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
|
-
export const IframeWrapper = memo(function IframeWrapper({ children, document: iframeDoc, layouts, layoutStyles, layoutKey = 'pageLayout', defaultLayout = 'default', editorStylesheets, editorCss, }) {
|
|
39
|
+
export const IframeWrapper = memo(function IframeWrapper({ children, document: iframeDoc, layouts, layoutStyles, layoutKey = 'pageLayout', defaultLayout = 'default', editorStylesheets, editorCss, previewDarkModeOverride, }) {
|
|
40
40
|
const appState = usePuck((s) => s.appState);
|
|
41
41
|
// Track stylesheet loading state to force re-render when styles are ready
|
|
42
42
|
const [stylesLoaded, setStylesLoaded] = useState(false);
|
|
@@ -94,15 +94,20 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
|
|
|
94
94
|
}
|
|
95
95
|
body.style.backgroundAttachment = 'fixed';
|
|
96
96
|
body.style.minHeight = '100vh';
|
|
97
|
-
// Apply theme class for dark/light mode
|
|
98
|
-
|
|
97
|
+
// Apply theme class and data-theme attribute for dark/light mode
|
|
98
|
+
// Supports both patterns: CSS classes (.dark/.light) and data attributes ([data-theme='dark'])
|
|
99
|
+
// previewDarkModeOverride takes precedence over layoutConfig.isDark
|
|
100
|
+
const isDark = previewDarkModeOverride ?? layoutConfig.isDark;
|
|
101
|
+
if (isDark) {
|
|
99
102
|
html.classList.add('dark');
|
|
100
103
|
html.classList.remove('light');
|
|
104
|
+
html.setAttribute('data-theme', 'dark');
|
|
101
105
|
body.style.color = '#ffffff';
|
|
102
106
|
}
|
|
103
107
|
else {
|
|
104
108
|
html.classList.remove('dark');
|
|
105
109
|
html.classList.add('light');
|
|
110
|
+
html.setAttribute('data-theme', 'light');
|
|
106
111
|
body.style.color = '#1f2937'; // gray-800
|
|
107
112
|
}
|
|
108
113
|
// Inject external stylesheets (Tailwind CSS, CSS variables, etc.)
|
|
@@ -117,6 +122,10 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
|
|
|
117
122
|
setStylesLoaded(true);
|
|
118
123
|
}
|
|
119
124
|
};
|
|
125
|
+
// Get origin for resolving relative URLs
|
|
126
|
+
// Puck's iframe may use srcdoc which doesn't have a proper base URL,
|
|
127
|
+
// so relative paths like '/api/puck/styles' won't resolve correctly
|
|
128
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
120
129
|
editorStylesheets.forEach((href, index) => {
|
|
121
130
|
const linkId = `puck-editor-stylesheet-${index}`;
|
|
122
131
|
const existingLink = iframeDoc.getElementById(linkId);
|
|
@@ -125,7 +134,8 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
|
|
|
125
134
|
const link = iframeDoc.createElement('link');
|
|
126
135
|
link.id = linkId;
|
|
127
136
|
link.rel = 'stylesheet';
|
|
128
|
-
|
|
137
|
+
// Resolve relative URLs to absolute URLs for iframe compatibility
|
|
138
|
+
link.href = href.startsWith('/') ? `${origin}${href}` : href;
|
|
129
139
|
// Track when stylesheet loads
|
|
130
140
|
link.onload = checkAllLoaded;
|
|
131
141
|
link.onerror = checkAllLoaded; // Count errors too to avoid hanging
|
|
@@ -275,7 +285,7 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
|
|
|
275
285
|
`;
|
|
276
286
|
iframeDoc.head.appendChild(style);
|
|
277
287
|
}
|
|
278
|
-
}, [iframeDoc, layoutConfig, pageBackground, editorStylesheets, editorCss, stylesLoaded]);
|
|
288
|
+
}, [iframeDoc, layoutConfig, pageBackground, editorStylesheets, editorCss, stylesLoaded, previewDarkModeOverride]);
|
|
279
289
|
// Get header/footer components from layout config
|
|
280
290
|
const LayoutHeader = layoutConfig.header;
|
|
281
291
|
const LayoutFooter = layoutConfig.footer;
|
|
@@ -306,8 +316,11 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
|
|
|
306
316
|
const headerFooterStyle = isInteractive
|
|
307
317
|
? {}
|
|
308
318
|
: { pointerEvents: 'none' };
|
|
309
|
-
|
|
319
|
+
// Use key to force re-render when styles finish loading
|
|
320
|
+
// This ensures Tailwind classes are applied after the stylesheet loads
|
|
321
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', minHeight: '100vh' }, children: [shouldShowHeader && LayoutHeader && (_jsx("div", { style: headerFooterStyle, children: _jsx(LayoutHeader, {}) })), _jsx("div", { style: contentStyle, children: children }), shouldShowFooter && LayoutFooter && (_jsx("div", { style: headerFooterStyle, children: _jsx(LayoutFooter, {}) }))] }, stylesLoaded ? 'styles-loaded' : 'styles-loading'));
|
|
310
322
|
}
|
|
311
|
-
|
|
323
|
+
// Use key to force re-render when styles finish loading
|
|
324
|
+
return (_jsx("div", { children: children }, stylesLoaded ? 'styles-loaded' : 'styles-loading'));
|
|
312
325
|
});
|
|
313
326
|
//# sourceMappingURL=IframeWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeWrapper.js","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAsC,MAAM,OAAO,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qBAAqB,CAAA;AAEhF,iDAAiD;AACjD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"IframeWrapper.js","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface PreviewModeToggleProps {
|
|
2
|
+
/**
|
|
3
|
+
* Whether dark mode is currently enabled in the preview
|
|
4
|
+
*/
|
|
5
|
+
isDarkMode: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Callback when the mode is toggled
|
|
8
|
+
*/
|
|
9
|
+
onToggle: (isDarkMode: boolean) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the toggle is disabled
|
|
12
|
+
*/
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Toggle button for switching preview iframe between light/dark modes.
|
|
17
|
+
*
|
|
18
|
+
* This controls the preview content's dark mode independently from the
|
|
19
|
+
* editor UI dark mode. Useful for testing how the page looks in both modes.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const [previewDarkMode, setPreviewDarkMode] = useState(false)
|
|
24
|
+
*
|
|
25
|
+
* <PreviewModeToggle
|
|
26
|
+
* isDarkMode={previewDarkMode}
|
|
27
|
+
* onToggle={setPreviewDarkMode}
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const PreviewModeToggle: import("react").NamedExoticComponent<PreviewModeToggleProps>;
|
|
32
|
+
//# sourceMappingURL=PreviewModeToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewModeToggle.d.ts","sourceRoot":"","sources":["../../../src/editor/components/PreviewModeToggle.tsx"],"names":[],"mappings":"AAwCA,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,8DAuC5B,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { Sun, Moon } from 'lucide-react';
|
|
5
|
+
const styles = {
|
|
6
|
+
container: {
|
|
7
|
+
display: 'flex',
|
|
8
|
+
alignItems: 'center',
|
|
9
|
+
gap: '2px',
|
|
10
|
+
padding: '2px',
|
|
11
|
+
backgroundColor: 'var(--puck-color-grey-11, #e8e8e8)',
|
|
12
|
+
borderRadius: '6px',
|
|
13
|
+
},
|
|
14
|
+
button: {
|
|
15
|
+
display: 'flex',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
justifyContent: 'center',
|
|
18
|
+
width: '28px',
|
|
19
|
+
height: '28px',
|
|
20
|
+
border: 'none',
|
|
21
|
+
borderRadius: '4px',
|
|
22
|
+
cursor: 'pointer',
|
|
23
|
+
transition: 'background-color 0.15s, color 0.15s',
|
|
24
|
+
},
|
|
25
|
+
buttonActive: {
|
|
26
|
+
backgroundColor: 'var(--puck-color-white, #ffffff)',
|
|
27
|
+
color: 'var(--puck-color-grey-02, #3d3d3d)',
|
|
28
|
+
boxShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',
|
|
29
|
+
},
|
|
30
|
+
buttonInactive: {
|
|
31
|
+
backgroundColor: 'transparent',
|
|
32
|
+
color: 'var(--puck-color-grey-05, #8f8f8f)',
|
|
33
|
+
},
|
|
34
|
+
icon: {
|
|
35
|
+
width: '14px',
|
|
36
|
+
height: '14px',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Toggle button for switching preview iframe between light/dark modes.
|
|
41
|
+
*
|
|
42
|
+
* This controls the preview content's dark mode independently from the
|
|
43
|
+
* editor UI dark mode. Useful for testing how the page looks in both modes.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const [previewDarkMode, setPreviewDarkMode] = useState(false)
|
|
48
|
+
*
|
|
49
|
+
* <PreviewModeToggle
|
|
50
|
+
* isDarkMode={previewDarkMode}
|
|
51
|
+
* onToggle={setPreviewDarkMode}
|
|
52
|
+
* />
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export const PreviewModeToggle = memo(function PreviewModeToggle({ isDarkMode, onToggle, disabled = false, }) {
|
|
56
|
+
return (_jsxs("div", { style: {
|
|
57
|
+
...styles.container,
|
|
58
|
+
...(disabled ? { opacity: 0.5, pointerEvents: 'none' } : {}),
|
|
59
|
+
}, title: "Toggle preview dark/light mode", children: [_jsx("button", { type: "button", onClick: () => onToggle(false), style: {
|
|
60
|
+
...styles.button,
|
|
61
|
+
...(!isDarkMode ? styles.buttonActive : styles.buttonInactive),
|
|
62
|
+
}, "aria-label": "Light mode preview", "aria-pressed": !isDarkMode, children: _jsx(Sun, { style: styles.icon }) }), _jsx("button", { type: "button", onClick: () => onToggle(true), style: {
|
|
63
|
+
...styles.button,
|
|
64
|
+
...(isDarkMode ? styles.buttonActive : styles.buttonInactive),
|
|
65
|
+
}, "aria-label": "Dark mode preview", "aria-pressed": isDarkMode, children: _jsx(Moon, { style: styles.icon }) })] }));
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=PreviewModeToggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewModeToggle.js","sourceRoot":"","sources":["../../../src/editor/components/PreviewModeToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,EAAsB,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,MAAM,GAAG;IACb,SAAS,EAAE;QACT,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,oCAAoC;QACrD,YAAY,EAAE,KAAK;KACH;IAClB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,qCAAqC;KACjC;IAClB,YAAY,EAAE;QACZ,eAAe,EAAE,kCAAkC;QACnD,KAAK,EAAE,oCAAoC;QAC3C,SAAS,EAAE,+BAA+B;KAC1B;IAClB,cAAc,EAAE;QACd,eAAe,EAAE,aAAa;QAC9B,KAAK,EAAE,oCAAoC;KAC3B;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACE;CACnB,CAAA;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,EAC/D,UAAU,EACV,QAAQ,EACR,QAAQ,GAAG,KAAK,GACO;IACvB,OAAO,CACL,eACE,KAAK,EAAE;YACL,GAAG,MAAM,CAAC,SAAS;YACnB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,EACD,KAAK,EAAC,gCAAgC,aAEtC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,MAAM;oBAChB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;iBAC/D,gBACU,oBAAoB,kBACjB,CAAC,UAAU,YAEzB,KAAC,GAAG,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,GACpB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,MAAM;oBAChB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;iBAC9D,gBACU,mBAAmB,kBAChB,UAAU,YAExB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,GACrB,IACL,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source of dark mode detection
|
|
3
|
+
*/
|
|
4
|
+
export type DarkModeSource = 'class' | 'media-query' | 'none';
|
|
5
|
+
/**
|
|
6
|
+
* Return type for useDarkMode hook
|
|
7
|
+
*/
|
|
8
|
+
export interface UseDarkModeReturn {
|
|
9
|
+
/**
|
|
10
|
+
* Whether dark mode is currently active
|
|
11
|
+
*/
|
|
12
|
+
isDarkMode: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* How dark mode was detected
|
|
15
|
+
*/
|
|
16
|
+
source: DarkModeSource;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detects dark mode state from PayloadCMS admin or OS preferences.
|
|
20
|
+
*
|
|
21
|
+
* Detection priority:
|
|
22
|
+
* 1. `.dark` class on `document.documentElement` (PayloadCMS admin)
|
|
23
|
+
* 2. `prefers-color-scheme: dark` media query (OS preference)
|
|
24
|
+
*
|
|
25
|
+
* Uses MutationObserver to track class changes in real-time.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const { isDarkMode, source } = useDarkMode()
|
|
30
|
+
*
|
|
31
|
+
* if (isDarkMode) {
|
|
32
|
+
* // Apply dark mode styles
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function useDarkMode(): UseDarkModeReturn;
|
|
37
|
+
//# sourceMappingURL=useDarkMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDarkMode.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useDarkMode.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAqE/C"}
|