@reforma/site 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +6 -14
- package/package.json +1 -1
package/dist/root.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErG,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC;AAEjE,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;CAC1B,CAAC;AAEF,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAAE,CAAC;AAe/E,8EAA8E;AAC9E,wBAAgB,OAAO,qBAEtB;AAMD,wBAAgB,QAAQ,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,WAAgC,EAChC,WAAkB,GACrB,EAAE;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,+
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErG,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC;AAEjE,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;CAC1B,CAAC;AAEF,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAAE,CAAC;AAe/E,8EAA8E;AAC9E,wBAAgB,OAAO,qBAEtB;AAMD,wBAAgB,QAAQ,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,WAAgC,EAChC,WAAkB,GACrB,EAAE;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,+BA6FA"}
|
package/dist/root.js
CHANGED
|
@@ -20,7 +20,7 @@ function modeNames(modes) {
|
|
|
20
20
|
}
|
|
21
21
|
export function SiteRoot({ children, modes, appearances = defaultAppearances, systemModes = null, }) {
|
|
22
22
|
const defaultMode = modes.default ?? '';
|
|
23
|
-
const [
|
|
23
|
+
const [modeState, setModeState] = useState({
|
|
24
24
|
mode: defaultMode,
|
|
25
25
|
siteMode: defaultMode,
|
|
26
26
|
preview: null,
|
|
@@ -29,19 +29,11 @@ export function SiteRoot({ children, modes, appearances = defaultAppearances, sy
|
|
|
29
29
|
});
|
|
30
30
|
const latestState = useRef(null);
|
|
31
31
|
const selectVisitorMode = useRef(null);
|
|
32
|
-
const modesRef = useRef(modes);
|
|
33
|
-
const appearancesRef = useRef(appearances);
|
|
34
|
-
const systemModesRef = useRef(systemModes);
|
|
35
|
-
modesRef.current = modes;
|
|
36
|
-
appearancesRef.current = appearances;
|
|
37
|
-
systemModesRef.current = systemModes;
|
|
38
32
|
// Hydrate the server default first, then apply visitor preferences without masking mismatches.
|
|
39
33
|
useLayoutEffect(() => {
|
|
40
34
|
const storageKey = 'project-mode';
|
|
41
|
-
const names = modeNames(
|
|
42
|
-
const defaultMode =
|
|
43
|
-
const appearances = appearancesRef.current;
|
|
44
|
-
const systemModes = systemModesRef.current;
|
|
35
|
+
const names = modeNames(modes);
|
|
36
|
+
const defaultMode = modes.default ?? '';
|
|
45
37
|
const valid = (mode) => mode !== null && names.includes(mode) ? mode : null;
|
|
46
38
|
const media = systemModes ? window.matchMedia('(prefers-color-scheme: dark)') : null;
|
|
47
39
|
let preference = latestState.current?.preference ?? null;
|
|
@@ -65,7 +57,7 @@ export function SiteRoot({ children, modes, appearances = defaultAppearances, sy
|
|
|
65
57
|
document.documentElement.setAttribute('data-appearance', appearance);
|
|
66
58
|
document.documentElement.style.colorScheme = appearance;
|
|
67
59
|
latestState.current = next;
|
|
68
|
-
|
|
60
|
+
setModeState(next);
|
|
69
61
|
window.dispatchEvent(new CustomEvent('project:mode-change', { detail: next }));
|
|
70
62
|
};
|
|
71
63
|
const onStorage = (event) => {
|
|
@@ -112,6 +104,6 @@ export function SiteRoot({ children, modes, appearances = defaultAppearances, sy
|
|
|
112
104
|
media?.removeEventListener('change', publishMode);
|
|
113
105
|
window.removeEventListener('reforma:token-mode', onPreview);
|
|
114
106
|
};
|
|
115
|
-
}, []);
|
|
116
|
-
return (_jsx(ModeContext, { value: { ...
|
|
107
|
+
}, [appearances, modes, systemModes]);
|
|
108
|
+
return (_jsx(ModeContext, { value: { ...modeState, setMode: mode => selectVisitorMode.current?.(mode) }, children: children }));
|
|
117
109
|
}
|