@multiplatform.one/storybook 6.0.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/LICENSE +194 -0
- package/README.md +128 -0
- package/dist/cjs/CreatePreview.cjs +561 -0
- package/dist/cjs/CreatePreview.native.js +781 -0
- package/dist/cjs/CreatePreview.native.js.map +1 -0
- package/dist/cjs/index.cjs +32 -0
- package/dist/cjs/index.native.js +40 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/CreatePreview.mjs +517 -0
- package/dist/esm/CreatePreview.mjs.map +1 -0
- package/dist/esm/CreatePreview.native.js +734 -0
- package/dist/esm/CreatePreview.native.js.map +1 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +12 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/jsx/CreatePreview.mjs +517 -0
- package/dist/jsx/CreatePreview.mjs.map +1 -0
- package/dist/jsx/CreatePreview.native.js +781 -0
- package/dist/jsx/CreatePreview.native.js.map +1 -0
- package/dist/jsx/index.js +4 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +4 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +40 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/package.json +104 -0
- package/src/CreatePreview.tsx +750 -0
- package/src/index.native.ts +12 -0
- package/src/index.ts +7 -0
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
import { BodyFont, BorderRadius, BorderWidth, Elevation, FillStyle, FontWeight, HeadingFont, animationNames, Space, Size, TextAccent, getPreset, getPresetNames, useTheme, PresetContext, defaultPreset, defaultKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import { config } from "@multiplatform.one/platform";
|
|
4
|
+
import { CookiesProvider } from "react-cookie";
|
|
5
|
+
import { Theme, YStack, useTheme as useTamaguiTheme } from "tamagui";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
const themeColorsChannelEvent = "theme-addon/theme-colors";
|
|
8
|
+
const themeColorsOppositeChannelEvent = "theme-addon/theme-colors-opposite";
|
|
9
|
+
const baseThemeColorsChannelEvent = "theme-addon/base-theme-colors";
|
|
10
|
+
const baseOppositeChannelEvent = "theme-addon/base-colors-opposite";
|
|
11
|
+
const accentColorsChannelEvent = "theme-addon/accent-colors";
|
|
12
|
+
const accentOppositeChannelEvent = "theme-addon/accent-colors-opposite";
|
|
13
|
+
const animationNamesChannelEvent = "theme-addon/animation-names";
|
|
14
|
+
const frappeDebugChannelEvent = "frappe-addon/debug-state";
|
|
15
|
+
const knobOptions = {
|
|
16
|
+
fillStyle: Object.values(FillStyle),
|
|
17
|
+
borderRadius: Object.values(BorderRadius),
|
|
18
|
+
borderWidth: Object.values(BorderWidth),
|
|
19
|
+
elevation: Object.values(Elevation),
|
|
20
|
+
space: Object.values(Space),
|
|
21
|
+
size: Object.values(Size),
|
|
22
|
+
textAccent: Object.values(TextAccent),
|
|
23
|
+
headingFont: Object.values(HeadingFont),
|
|
24
|
+
bodyFont: Object.values(BodyFont),
|
|
25
|
+
fontWeight: Object.values(FontWeight),
|
|
26
|
+
animation: ["none", ...animationNames]
|
|
27
|
+
};
|
|
28
|
+
const stateKnobFields = ["fillStyle", "borderRadius", "borderWidth", "elevation", "space", "size", "textAccent", "headingFont", "bodyFont", "fontWeight"];
|
|
29
|
+
function parseValue(value) {
|
|
30
|
+
if (typeof value !== "string") return value;
|
|
31
|
+
try {
|
|
32
|
+
return JSON.parse(value);
|
|
33
|
+
} catch {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const toTitleCase = str => str.replace(/([A-Z])/g, " $1").replace(/^./, s => s.toUpperCase());
|
|
38
|
+
function createControl(key) {
|
|
39
|
+
const name = toTitleCase(key);
|
|
40
|
+
const values = knobOptions[key] ?? [];
|
|
41
|
+
const serialized = values.map(value => value);
|
|
42
|
+
const labels = Object.fromEntries(serialized.map(v => [v, v.replace("$", "")]));
|
|
43
|
+
const fallback = defaultKnobs[key];
|
|
44
|
+
return {
|
|
45
|
+
name,
|
|
46
|
+
description: name.toLowerCase(),
|
|
47
|
+
options: serialized,
|
|
48
|
+
control: {
|
|
49
|
+
type: "select",
|
|
50
|
+
labels
|
|
51
|
+
},
|
|
52
|
+
...(fallback !== void 0 && {
|
|
53
|
+
defaultValue: fallback
|
|
54
|
+
})
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function CanvasBackground({
|
|
58
|
+
children
|
|
59
|
+
}) {
|
|
60
|
+
const tamaguiTheme = useTamaguiTheme();
|
|
61
|
+
const bg = tamaguiTheme.background?.val;
|
|
62
|
+
useLayoutEffect(() => {
|
|
63
|
+
if (bg) {
|
|
64
|
+
document.body.style.backgroundColor = bg;
|
|
65
|
+
document.documentElement.style.backgroundColor = bg;
|
|
66
|
+
}
|
|
67
|
+
}, [bg]);
|
|
68
|
+
return /* @__PURE__ */jsx(YStack, {
|
|
69
|
+
flex: 1,
|
|
70
|
+
minHeight: "100vh",
|
|
71
|
+
backgroundColor: "$background",
|
|
72
|
+
children
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
let _channelEmit = null;
|
|
76
|
+
function getChannelEmit() {
|
|
77
|
+
if (_channelEmit) return _channelEmit;
|
|
78
|
+
try {
|
|
79
|
+
const mod = require("storybook/preview-api");
|
|
80
|
+
const channel = mod.addons.getChannel();
|
|
81
|
+
_channelEmit = (event, data) => channel.emit(event, data);
|
|
82
|
+
return _channelEmit;
|
|
83
|
+
} catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function AnimationNamesEmitter() {
|
|
88
|
+
const emittedRef = useRef(false);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (emittedRef.current) return;
|
|
91
|
+
emittedRef.current = true;
|
|
92
|
+
getChannelEmit()?.(animationNamesChannelEvent, animationNames);
|
|
93
|
+
}, []);
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
function FrappeDebugEmitter() {
|
|
97
|
+
const prevRef = useRef("");
|
|
98
|
+
const syncRef = useRef(null);
|
|
99
|
+
const [tick, setTick] = useState(0);
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
let cancelled = false;
|
|
102
|
+
async function resolve() {
|
|
103
|
+
try {
|
|
104
|
+
const {
|
|
105
|
+
__getActiveSyncModule
|
|
106
|
+
} = await import("@multiplatform.one/frappe");
|
|
107
|
+
const sync = __getActiveSyncModule();
|
|
108
|
+
if (sync && !cancelled) {
|
|
109
|
+
syncRef.current = sync;
|
|
110
|
+
setTick(t => t + 1);
|
|
111
|
+
return sync.subscribeStore(() => {
|
|
112
|
+
if (!cancelled) setTick(t => t + 1);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
} catch {}
|
|
116
|
+
}
|
|
117
|
+
const cleanupPromise = resolve();
|
|
118
|
+
let attempts = 0;
|
|
119
|
+
const interval = setInterval(async () => {
|
|
120
|
+
attempts++;
|
|
121
|
+
if (syncRef.current || cancelled || attempts >= 10) {
|
|
122
|
+
clearInterval(interval);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
await resolve();
|
|
126
|
+
}, 2e3);
|
|
127
|
+
return () => {
|
|
128
|
+
cancelled = true;
|
|
129
|
+
clearInterval(interval);
|
|
130
|
+
cleanupPromise.then(unsub => unsub?.());
|
|
131
|
+
};
|
|
132
|
+
}, []);
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
if (!syncRef.current) return;
|
|
135
|
+
const emit = getChannelEmit();
|
|
136
|
+
if (!emit) return;
|
|
137
|
+
try {
|
|
138
|
+
const state = syncRef.current.__debug();
|
|
139
|
+
const key = JSON.stringify(state);
|
|
140
|
+
if (key === prevRef.current) return;
|
|
141
|
+
prevRef.current = key;
|
|
142
|
+
emit(frappeDebugChannelEvent, state);
|
|
143
|
+
} catch {}
|
|
144
|
+
}, [tick]);
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
function ThemeColorEmitter() {
|
|
148
|
+
const tamaguiTheme = useTamaguiTheme();
|
|
149
|
+
const prevRef = useRef("");
|
|
150
|
+
useEffect(() => {
|
|
151
|
+
const colors = [];
|
|
152
|
+
for (let i = 1; i <= 12; i++) {
|
|
153
|
+
const token = tamaguiTheme[`color${i}`];
|
|
154
|
+
colors.push(token?.val ?? "");
|
|
155
|
+
}
|
|
156
|
+
const key = colors.join("|");
|
|
157
|
+
if (key === prevRef.current) return;
|
|
158
|
+
prevRef.current = key;
|
|
159
|
+
getChannelEmit()?.(themeColorsChannelEvent, colors);
|
|
160
|
+
}, [tamaguiTheme]);
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
function BaseThemeColorEmitter() {
|
|
164
|
+
const tamaguiTheme = useTamaguiTheme();
|
|
165
|
+
const prevRef = useRef("");
|
|
166
|
+
useEffect(() => {
|
|
167
|
+
const colors = [];
|
|
168
|
+
for (let i = 1; i <= 12; i++) {
|
|
169
|
+
const token = tamaguiTheme[`color${i}`];
|
|
170
|
+
colors.push(token?.val ?? "");
|
|
171
|
+
}
|
|
172
|
+
const key = colors.join("|");
|
|
173
|
+
if (key === prevRef.current) return;
|
|
174
|
+
prevRef.current = key;
|
|
175
|
+
getChannelEmit()?.(baseThemeColorsChannelEvent, colors);
|
|
176
|
+
}, [tamaguiTheme]);
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
function OppositeThemeColorEmitter() {
|
|
180
|
+
const tamaguiTheme = useTamaguiTheme();
|
|
181
|
+
const prevRef = useRef("");
|
|
182
|
+
useEffect(() => {
|
|
183
|
+
const colors = [];
|
|
184
|
+
for (let i = 1; i <= 12; i++) {
|
|
185
|
+
const token = tamaguiTheme[`color${i}`];
|
|
186
|
+
colors.push(token?.val ?? "");
|
|
187
|
+
}
|
|
188
|
+
const key = colors.join("|");
|
|
189
|
+
if (key === prevRef.current) return;
|
|
190
|
+
prevRef.current = key;
|
|
191
|
+
getChannelEmit()?.(themeColorsOppositeChannelEvent, colors);
|
|
192
|
+
}, [tamaguiTheme]);
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
function ColorChannelEmitter({
|
|
196
|
+
event,
|
|
197
|
+
prefix = "color"
|
|
198
|
+
}) {
|
|
199
|
+
const tamaguiTheme = useTamaguiTheme();
|
|
200
|
+
const prevRef = useRef("");
|
|
201
|
+
useEffect(() => {
|
|
202
|
+
const colors = [];
|
|
203
|
+
let found = false;
|
|
204
|
+
for (let i = 1; i <= 12; i++) {
|
|
205
|
+
const token = tamaguiTheme[`${prefix}${i}`];
|
|
206
|
+
const val = token?.val ?? "";
|
|
207
|
+
colors.push(val);
|
|
208
|
+
if (val) found = true;
|
|
209
|
+
}
|
|
210
|
+
if (!found) return;
|
|
211
|
+
const key = colors.join("|");
|
|
212
|
+
if (key === prevRef.current) return;
|
|
213
|
+
prevRef.current = key;
|
|
214
|
+
getChannelEmit()?.(event, colors);
|
|
215
|
+
}, [tamaguiTheme, event, prefix]);
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
const tamaguiPropLeakPatterns = ["pressTheme", "scaleIcon", "borderTopRightRadius", "borderBottomRightRadius", "borderTopLeftRadius", "borderBottomLeftRadius"];
|
|
219
|
+
function suppressTamaguiDomWarnings() {
|
|
220
|
+
if (typeof window === "undefined") return;
|
|
221
|
+
const origError = console.error;
|
|
222
|
+
console.error = (...args) => {
|
|
223
|
+
const msg = args.map(a => typeof a === "string" ? a : "").join(" ");
|
|
224
|
+
if (msg.includes("React does not recognize the") && tamaguiPropLeakPatterns.some(p => msg.includes(p))) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
origError(...args);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
suppressTamaguiDomWarnings();
|
|
231
|
+
function createPreview(options) {
|
|
232
|
+
const {
|
|
233
|
+
themeConfig,
|
|
234
|
+
i18n,
|
|
235
|
+
AppProvider,
|
|
236
|
+
decorators: extraDecorators = [],
|
|
237
|
+
parameters: extraParameters = {},
|
|
238
|
+
globalTypes: extraGlobalTypes = {}
|
|
239
|
+
} = options;
|
|
240
|
+
const enumKeys = Object.keys(knobOptions);
|
|
241
|
+
const generatedGlobalTypes = {};
|
|
242
|
+
for (const key of enumKeys) {
|
|
243
|
+
generatedGlobalTypes[key] = createControl(key);
|
|
244
|
+
}
|
|
245
|
+
for (const state of ["hover", "press", "focus", "focusVisible"]) {
|
|
246
|
+
for (const field of stateKnobFields) {
|
|
247
|
+
const stateKey = `${state}.${field}`;
|
|
248
|
+
const values = knobOptions[field] ?? [];
|
|
249
|
+
const serialized = values.map(value => value);
|
|
250
|
+
const labels = Object.fromEntries(serialized.map(v => [v, v.replace("$", "")]));
|
|
251
|
+
generatedGlobalTypes[stateKey] = {
|
|
252
|
+
name: `${toTitleCase(state)} ${toTitleCase(field)}`,
|
|
253
|
+
description: `${state} override for ${field}`,
|
|
254
|
+
options: serialized,
|
|
255
|
+
control: {
|
|
256
|
+
type: "select",
|
|
257
|
+
labels
|
|
258
|
+
},
|
|
259
|
+
defaultValue: ""
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const themeColorNames = ["", ...themeConfig.themeColors];
|
|
264
|
+
const themeSwatches = {};
|
|
265
|
+
const allThemes = themeConfig.tamagui.themes;
|
|
266
|
+
if (allThemes) {
|
|
267
|
+
for (const name of themeConfig.themeColors) {
|
|
268
|
+
const theme = allThemes[`light_${name}`] ?? allThemes[name];
|
|
269
|
+
if (!theme) continue;
|
|
270
|
+
const token = theme.color7;
|
|
271
|
+
if (typeof token === "string") {
|
|
272
|
+
themeSwatches[name] = token;
|
|
273
|
+
} else if (token && typeof token === "object" && "val" in token) {
|
|
274
|
+
themeSwatches[name] = String(token.val);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
generatedGlobalTypes.color = {
|
|
279
|
+
name: "Theme",
|
|
280
|
+
description: "Theme color palette",
|
|
281
|
+
options: themeColorNames,
|
|
282
|
+
control: {
|
|
283
|
+
type: "select",
|
|
284
|
+
labels: Object.fromEntries(themeColorNames.map(v => [v, v || "(none)"]))
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
generatedGlobalTypes.scheme = {
|
|
288
|
+
name: "Scheme",
|
|
289
|
+
description: "Color scheme (light/dark/system)",
|
|
290
|
+
options: ["system", "light", "dark"],
|
|
291
|
+
control: {
|
|
292
|
+
type: "select"
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
generatedGlobalTypes.locale = {
|
|
296
|
+
name: "Locale",
|
|
297
|
+
description: "Controls internationalization language",
|
|
298
|
+
options: [...i18n.languages],
|
|
299
|
+
control: {
|
|
300
|
+
type: "select"
|
|
301
|
+
},
|
|
302
|
+
toolbar: {
|
|
303
|
+
title: "Locale",
|
|
304
|
+
items: [...i18n.languages],
|
|
305
|
+
dynamicTitle: true
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
const globalTypes = {
|
|
309
|
+
...generatedGlobalTypes,
|
|
310
|
+
...extraGlobalTypes
|
|
311
|
+
};
|
|
312
|
+
const initialGlobals = {
|
|
313
|
+
locale: config.get("I18N_DEFAULT_LANGUAGE", i18n.defaultLanguage),
|
|
314
|
+
color: "",
|
|
315
|
+
scheme: "system",
|
|
316
|
+
// Publish registered preset names so the manager-side ThemePanel can
|
|
317
|
+
// render a preset selector without importing the theme package.
|
|
318
|
+
__presetNames: getPresetNames(),
|
|
319
|
+
// Publish available theme color names so the ThemePanel can show only
|
|
320
|
+
// colors that actually have registered Tamagui sub-themes.
|
|
321
|
+
__themeColors: themeColorNames,
|
|
322
|
+
__themeSwatches: themeSwatches,
|
|
323
|
+
preset: themeConfig.defaultPreset ?? ""
|
|
324
|
+
};
|
|
325
|
+
for (const key of enumKeys) {
|
|
326
|
+
if (!(key in initialGlobals)) {
|
|
327
|
+
initialGlobals[key] = "";
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
for (const state of ["hover", "press", "focus", "focusVisible"]) {
|
|
331
|
+
for (const field of stateKnobFields) {
|
|
332
|
+
initialGlobals[`${state}.${field}`] = "";
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const defaultParameters = {
|
|
336
|
+
actions: {
|
|
337
|
+
argTypesRegex: "^on[A-Z].*"
|
|
338
|
+
},
|
|
339
|
+
layout: "padded",
|
|
340
|
+
viewMode: "story",
|
|
341
|
+
controls: {
|
|
342
|
+
expanded: true,
|
|
343
|
+
hideNoControlsWarning: true,
|
|
344
|
+
matchers: {
|
|
345
|
+
color: /(background|color)$/i,
|
|
346
|
+
date: /Date$/
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
// Disable the built-in backgrounds addon — the CanvasBackground component
|
|
350
|
+
// manages the preview background via the Tamagui $background token so it
|
|
351
|
+
// stays in sync with the active color scheme.
|
|
352
|
+
backgrounds: {
|
|
353
|
+
disable: true
|
|
354
|
+
},
|
|
355
|
+
previewTabs: {
|
|
356
|
+
"storybook/docs/panel": {
|
|
357
|
+
hidden: true
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
a11y: {
|
|
361
|
+
test: false
|
|
362
|
+
},
|
|
363
|
+
docs: {
|
|
364
|
+
codePanel: true
|
|
365
|
+
},
|
|
366
|
+
darkMode: {
|
|
367
|
+
stylePreview: true
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
function FrameworkDecoratorInner({
|
|
371
|
+
Story,
|
|
372
|
+
context
|
|
373
|
+
}) {
|
|
374
|
+
const [knobs, setKnobs] = useTheme();
|
|
375
|
+
const schemeGlobal = context.globals.scheme || "system";
|
|
376
|
+
const [resolvedScheme, setResolvedScheme] = useState(() => {
|
|
377
|
+
if (schemeGlobal === "light" || schemeGlobal === "dark") return schemeGlobal;
|
|
378
|
+
if (typeof window !== "undefined" && window.matchMedia) {
|
|
379
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
380
|
+
}
|
|
381
|
+
return "light";
|
|
382
|
+
});
|
|
383
|
+
useEffect(() => {
|
|
384
|
+
if (schemeGlobal === "light" || schemeGlobal === "dark") {
|
|
385
|
+
setResolvedScheme(schemeGlobal);
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
if (typeof window === "undefined" || !window.matchMedia) {
|
|
389
|
+
setResolvedScheme("light");
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
393
|
+
const handler = () => setResolvedScheme(mq.matches ? "dark" : "light");
|
|
394
|
+
handler();
|
|
395
|
+
mq.addEventListener("change", handler);
|
|
396
|
+
return () => mq.removeEventListener("change", handler);
|
|
397
|
+
}, [schemeGlobal]);
|
|
398
|
+
const colorGlobal = context.globals.color || "";
|
|
399
|
+
const storyThemeParams = context.parameters?.theme;
|
|
400
|
+
const activePresetName = context.globals.preset;
|
|
401
|
+
const activePreset = activePresetName ? getPreset(activePresetName) : void 0;
|
|
402
|
+
const knobUpdate = useMemo(() => {
|
|
403
|
+
const result = {};
|
|
404
|
+
const stateKeys = /* @__PURE__ */new Set(["hover", "press", "focus", "focusVisible"]);
|
|
405
|
+
for (const key of Object.keys(knobs)) {
|
|
406
|
+
if (stateKeys.has(key)) continue;
|
|
407
|
+
if (storyThemeParams && key in storyThemeParams) {
|
|
408
|
+
result[key] = storyThemeParams[key];
|
|
409
|
+
} else if (key in context.globals && context.globals[key] !== void 0 && context.globals[key] !== "") {
|
|
410
|
+
result[key] = parseValue(context.globals[key]);
|
|
411
|
+
} else if (activePreset && key in activePreset.knobs) {
|
|
412
|
+
result[key] = activePreset.knobs[key];
|
|
413
|
+
} else {
|
|
414
|
+
result[key] = defaultKnobs[key];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
for (const state of stateKeys) {
|
|
418
|
+
const stateObj = {};
|
|
419
|
+
let hasValues = false;
|
|
420
|
+
for (const field of stateKnobFields) {
|
|
421
|
+
const globalKey = `${state}.${field}`;
|
|
422
|
+
const val = context.globals[globalKey];
|
|
423
|
+
if (val) {
|
|
424
|
+
stateObj[field] = val;
|
|
425
|
+
hasValues = true;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
if (hasValues) {
|
|
429
|
+
result[state] = stateObj;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return result;
|
|
433
|
+
}, [knobs, context.globals, storyThemeParams, activePreset]);
|
|
434
|
+
useEffect(() => {
|
|
435
|
+
setKnobs(knobUpdate);
|
|
436
|
+
}, [knobUpdate, setKnobs]);
|
|
437
|
+
useEffect(() => {
|
|
438
|
+
i18n.instance.changeLanguage(context.globals.locale);
|
|
439
|
+
}, [context.globals.locale]);
|
|
440
|
+
const presetCtxValue = useMemo(() => ({
|
|
441
|
+
preset: {
|
|
442
|
+
...defaultPreset,
|
|
443
|
+
theme: colorGlobal || defaultPreset.theme,
|
|
444
|
+
knobs: {
|
|
445
|
+
...defaultKnobs,
|
|
446
|
+
...knobUpdate
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
overrides: void 0
|
|
450
|
+
}), [knobUpdate, colorGlobal]);
|
|
451
|
+
const animationValue = presetCtxValue.preset.knobs.animation;
|
|
452
|
+
useEffect(() => {
|
|
453
|
+
const ms = animationValue === "none" ? "0ms" : animationValue === "quick" ? "100ms" : animationValue === "medium" ? "200ms" : animationValue === "slow" || animationValue === "lazy" ? "350ms" : animationValue === "bouncy" ? "300ms" : "200ms";
|
|
454
|
+
document.documentElement.style.setProperty("--mp-transition", ms);
|
|
455
|
+
}, [animationValue]);
|
|
456
|
+
const storyContent = /* @__PURE__ */jsx(CanvasBackground, {
|
|
457
|
+
children: /* @__PURE__ */jsx(Story, {
|
|
458
|
+
...context
|
|
459
|
+
})
|
|
460
|
+
});
|
|
461
|
+
const oppositeScheme = resolvedScheme === "dark" ? "light" : "dark";
|
|
462
|
+
return /* @__PURE__ */jsx(PresetContext.Provider, {
|
|
463
|
+
value: presetCtxValue,
|
|
464
|
+
children: /* @__PURE__ */jsxs(AppProvider, {
|
|
465
|
+
themeConfig,
|
|
466
|
+
systemTheme: resolvedScheme,
|
|
467
|
+
children: [/* @__PURE__ */jsx(AnimationNamesEmitter, {}), /* @__PURE__ */jsx(FrappeDebugEmitter, {}), /* @__PURE__ */jsx(BaseThemeColorEmitter, {}), colorGlobal ? /* @__PURE__ */jsxs(Theme, {
|
|
468
|
+
name: colorGlobal,
|
|
469
|
+
children: [/* @__PURE__ */jsx(ThemeColorEmitter, {}), /* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
470
|
+
event: accentColorsChannelEvent,
|
|
471
|
+
prefix: "accent"
|
|
472
|
+
}), storyContent]
|
|
473
|
+
}) : /* @__PURE__ */jsxs(Fragment, {
|
|
474
|
+
children: [/* @__PURE__ */jsx(ThemeColorEmitter, {}), /* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
475
|
+
event: accentColorsChannelEvent,
|
|
476
|
+
prefix: "accent"
|
|
477
|
+
}), storyContent]
|
|
478
|
+
}), /* @__PURE__ */jsxs(Theme, {
|
|
479
|
+
name: oppositeScheme,
|
|
480
|
+
children: [/* @__PURE__ */jsx(OppositeThemeColorEmitter, {}), colorGlobal ? /* @__PURE__ */jsxs(Theme, {
|
|
481
|
+
name: colorGlobal,
|
|
482
|
+
children: [/* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
483
|
+
event: baseOppositeChannelEvent
|
|
484
|
+
}), /* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
485
|
+
event: accentOppositeChannelEvent,
|
|
486
|
+
prefix: "accent"
|
|
487
|
+
})]
|
|
488
|
+
}) : /* @__PURE__ */jsxs(Fragment, {
|
|
489
|
+
children: [/* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
490
|
+
event: baseOppositeChannelEvent
|
|
491
|
+
}), /* @__PURE__ */jsx(ColorChannelEmitter, {
|
|
492
|
+
event: accentOppositeChannelEvent,
|
|
493
|
+
prefix: "accent"
|
|
494
|
+
})]
|
|
495
|
+
})]
|
|
496
|
+
})]
|
|
497
|
+
})
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
const frameworkDecorator = (Story, context) => /* @__PURE__ */jsx(CookiesProvider, {
|
|
501
|
+
children: /* @__PURE__ */jsx(FrameworkDecoratorInner, {
|
|
502
|
+
Story,
|
|
503
|
+
context
|
|
504
|
+
})
|
|
505
|
+
});
|
|
506
|
+
return {
|
|
507
|
+
globalTypes,
|
|
508
|
+
initialGlobals,
|
|
509
|
+
parameters: {
|
|
510
|
+
...defaultParameters,
|
|
511
|
+
...extraParameters
|
|
512
|
+
},
|
|
513
|
+
decorators: [frameworkDecorator, ...extraDecorators]
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
export { accentColorsChannelEvent, accentOppositeChannelEvent, animationNamesChannelEvent, baseOppositeChannelEvent, baseThemeColorsChannelEvent, createPreview, frappeDebugChannelEvent, themeColorsChannelEvent, themeColorsOppositeChannelEvent };
|
|
517
|
+
//# sourceMappingURL=CreatePreview.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useLayoutEffect","useMemo","useRef","useState","BodyFont","BorderRadius","BorderWidth","Elevation","FillStyle","FontWeight","HeadingFont","animationNames","Space","Size","TextAccent","getPreset","getPresetNames","useTheme","PresetContext","defaultPreset","defaultKnobs","config","CookiesProvider","Theme","YStack","useTamaguiTheme","Fragment","jsx","jsxs","themeColorsChannelEvent","themeColorsOppositeChannelEvent","baseThemeColorsChannelEvent","baseOppositeChannelEvent","accentColorsChannelEvent","accentOppositeChannelEvent","animationNamesChannelEvent","frappeDebugChannelEvent","knobOptions","fillStyle","Object","values","borderRadius","borderWidth","elevation","space","size","textAccent","headingFont","bodyFont","fontWeight","animation","stateKnobFields","parseValue","value","JSON","parse","toTitleCase","str","replace","s","toUpperCase","createControl","key","name","serialized","map","labels","fromEntries","v","fallback","description","toLowerCase","options","control","type","defaultValue","CanvasBackground","children","tamaguiTheme","bg","background","val","document","body","style","backgroundColor","documentElement","flex","minHeight","_channelEmit","getChannelEmit","mod","require","channel","addons","getChannel","event","data","emit","AnimationNamesEmitter","emittedRef","current","FrappeDebugEmitter","prevRef","syncRef","tick","setTick","cancelled","resolve","__getActiveSyncModule","sync","t","subscribeStore","cleanupPromise","attempts","interval","setInterval","clearInterval","then","unsub","state","__debug","stringify","ThemeColorEmitter","colors","i","token","push","join","BaseThemeColorEmitter","OppositeThemeColorEmitter","ColorChannelEmitter","prefix","found","tamaguiPropLeakPatterns","suppressTamaguiDomWarnings","window","origError","console","error","args","msg","a","includes","some","p","createPreview","themeConfig","i18n","AppProvider","decorators","extraDecorators","parameters","extraParameters","globalTypes","extraGlobalTypes","enumKeys","keys","generatedGlobalTypes","field","stateKey","themeColorNames","themeColors","themeSwatches","allThemes","tamagui","themes","theme","color7","String","color","scheme","locale","languages","toolbar","title","items","dynamicTitle","initialGlobals","get","defaultLanguage","__presetNames","__themeColors","__themeSwatches","preset","defaultParameters","actions","argTypesRegex","layout","viewMode","controls","expanded","hideNoControlsWarning","matchers","date","backgrounds","disable","previewTabs","hidden","a11y","test","docs","codePanel","darkMode","stylePreview","FrameworkDecoratorInner","Story","context","knobs","setKnobs","schemeGlobal","globals","resolvedScheme","setResolvedScheme","matchMedia","matches","mq","handler","addEventListener","removeEventListener","colorGlobal","storyThemeParams","activePresetName","activePreset","knobUpdate","result","stateKeys","Set","has","stateObj","hasValues","globalKey","instance","changeLanguage","presetCtxValue","overrides","animationValue","ms","setProperty","storyContent","oppositeScheme","Provider","systemTheme","frameworkDecorator"],"sources":["../../src/CreatePreview.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|