component-previewer 0.1.0 → 0.2.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/README.md +67 -12
- package/lib/module/PreviewControls.js +159 -14
- package/lib/module/PreviewControls.js.map +1 -1
- package/lib/module/PreviewList.js +3 -0
- package/lib/module/PreviewList.js.map +1 -1
- package/lib/module/PreviewStage.js +47 -12
- package/lib/module/PreviewStage.js.map +1 -1
- package/lib/module/Previewer.js +22 -3
- package/lib/module/Previewer.js.map +1 -1
- package/lib/module/controls.js +32 -6
- package/lib/module/controls.js.map +1 -1
- package/lib/module/csf.js +5 -2
- package/lib/module/csf.js.map +1 -1
- package/lib/module/globals.js +14 -0
- package/lib/module/globals.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/persistence.js +45 -0
- package/lib/module/persistence.js.map +1 -0
- package/lib/module/shell.js +13 -3
- package/lib/module/shell.js.map +1 -1
- package/lib/typescript/src/PreviewControls.d.ts +6 -1
- package/lib/typescript/src/PreviewControls.d.ts.map +1 -1
- package/lib/typescript/src/PreviewList.d.ts.map +1 -1
- package/lib/typescript/src/PreviewStage.d.ts +8 -2
- package/lib/typescript/src/PreviewStage.d.ts.map +1 -1
- package/lib/typescript/src/Previewer.d.ts +6 -2
- package/lib/typescript/src/Previewer.d.ts.map +1 -1
- package/lib/typescript/src/controls.d.ts +8 -0
- package/lib/typescript/src/controls.d.ts.map +1 -1
- package/lib/typescript/src/csf.d.ts.map +1 -1
- package/lib/typescript/src/globals.d.ts +3 -0
- package/lib/typescript/src/globals.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/persistence.d.ts +11 -0
- package/lib/typescript/src/persistence.d.ts.map +1 -0
- package/lib/typescript/src/shell.d.ts +3 -2
- package/lib/typescript/src/shell.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +9 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/PreviewControls.tsx +109 -6
- package/src/PreviewList.tsx +7 -1
- package/src/PreviewStage.tsx +54 -9
- package/src/Previewer.tsx +30 -3
- package/src/controls.ts +24 -4
- package/src/csf.ts +6 -1
- package/src/globals.ts +13 -0
- package/src/index.ts +6 -0
- package/src/persistence.ts +49 -0
- package/src/shell.tsx +15 -5
- package/src/types.ts +19 -1
package/README.md
CHANGED
|
@@ -49,26 +49,81 @@ Peer dependencies: `react`, `react-native`.
|
|
|
49
49
|
|
|
50
50
|
Open any story and tap **Controls** to edit its `args` on-device and re-render live (the Storybook-controls equivalent). Control kinds are inferred from the arg **values** with zero config:
|
|
51
51
|
|
|
52
|
-
| value type
|
|
53
|
-
|
|
|
54
|
-
| `string`
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
52
|
+
| value type | control |
|
|
53
|
+
| ---------------------- | -------------------------------- |
|
|
54
|
+
| `string` | text field |
|
|
55
|
+
| `string` like `#rrggbb`| color swatch + hex field |
|
|
56
|
+
| `number` | numeric field |
|
|
57
|
+
| `boolean` | switch |
|
|
57
58
|
|
|
58
|
-
Functions, objects, arrays, `null`/`undefined` are skipped (passed through untouched).
|
|
59
|
+
Functions, plain objects, arrays, `null`/`undefined` are skipped by inference (passed through untouched). Declare optional **CSF `argTypes`** to force a control — a dropdown, a range, an explicit color, or an editable object/array:
|
|
59
60
|
|
|
60
61
|
```tsx
|
|
61
62
|
export default {
|
|
62
63
|
title: 'Badge',
|
|
63
64
|
component: Badge,
|
|
64
|
-
args: { tone: 'neutral' },
|
|
65
|
-
argTypes: {
|
|
65
|
+
args: { tone: 'neutral', accent: '#3366ff', data: { rows: 3 } },
|
|
66
|
+
argTypes: {
|
|
67
|
+
tone: { control: 'select', options: ['neutral', 'success', 'danger'] },
|
|
68
|
+
size: { control: 'range', min: 16, max: 256, step: 8 }, // clamped number field
|
|
69
|
+
accent: { control: 'color' }, // swatch + hex (also auto-inferred for #hex values)
|
|
70
|
+
data: { control: 'object' }, // JSON editor (objects + arrays), commits on valid JSON
|
|
71
|
+
},
|
|
66
72
|
};
|
|
67
|
-
// 'range' is supported too and renders as a clamped number field:
|
|
68
|
-
// argTypes: { size: { control: 'range', min: 16, max: 256, step: 8 } }
|
|
69
73
|
```
|
|
70
74
|
|
|
71
|
-
A **Reset** button restores the story's declared args. Edits never leak between stories.
|
|
75
|
+
A **Reset** button restores the story's declared args; **Copy** logs the current args as JSON (pass `onCopyArgs` to wire a real clipboard). Edits never leak between stories.
|
|
76
|
+
|
|
77
|
+
### Args persistence
|
|
78
|
+
|
|
79
|
+
Edited args persist **per story id** across list ↔ stage navigation and Fast Refresh, with zero dependencies (an in-memory session store). To also survive a **cold reload**, pass a `persistence` adapter — the package never imports a storage lib itself:
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import { Previewer, type ArgsPersistence } from 'component-previewer';
|
|
83
|
+
|
|
84
|
+
// any synchronous get/set/remove around AsyncStorage, MMKV, a file, etc.
|
|
85
|
+
const persistence: ArgsPersistence = { get, set, remove };
|
|
86
|
+
|
|
87
|
+
<Previewer stories={…} shell={Shell} persistence={persistence} />
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Globals — parameterize the one shell (theme, locale, …)
|
|
91
|
+
|
|
92
|
+
Args are per-component props. **Globals** are toolbar-level params that vary the
|
|
93
|
+
**shell** across every story — the canonical case is light/dark. Declare them on
|
|
94
|
+
`<Previewer globalTypes>` and read them in your shell:
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
const Shell: ShellComponent = ({ children, globals }) => (
|
|
98
|
+
<AppProviders mode={globals?.theme === 'light' ? 'light' : 'dark'}>{children}</AppProviders>
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
<Previewer
|
|
102
|
+
stories={…}
|
|
103
|
+
shell={Shell}
|
|
104
|
+
globalTypes={{ theme: { options: ['dark', 'light'], default: 'dark' } }}
|
|
105
|
+
/>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
A **Globals** section appears at the top of the Controls panel; switching `theme`
|
|
109
|
+
re-renders the current story through the same shell. This is what removes the two
|
|
110
|
+
classic sources of duplication:
|
|
111
|
+
|
|
112
|
+
- **No forked light/dark stories.** One story, toggled — not `export const Light` +
|
|
113
|
+
`export const Dark` with a hand-written `dark` decorator.
|
|
114
|
+
- **No separate "lab" component with its own switchers.** Variant axes (a card's
|
|
115
|
+
`state`, a chart's `data`) belong in `args`/`argTypes` and drive the Controls
|
|
116
|
+
panel; theme/locale belong in `globalTypes`. There's nothing left for a bespoke
|
|
117
|
+
lab harness to do.
|
|
118
|
+
|
|
119
|
+
## Single source of truth (no shell drift)
|
|
120
|
+
|
|
121
|
+
The differentiator is that your **real** `AppProviders` is the `shell`, so the
|
|
122
|
+
preview can't drift from the app. Globals exist specifically so you never have to
|
|
123
|
+
fork that shell into a lighter "preview-only" copy to vary the theme — vary it
|
|
124
|
+
with a global instead. The package deliberately can't *auto-detect* a forked
|
|
125
|
+
shell (it can't see your app root), so the contract is the guard: **import your
|
|
126
|
+
real providers as `shell`; parameterize with `globalTypes`; never re-author.**
|
|
72
127
|
|
|
73
128
|
## Run the example
|
|
74
129
|
|
|
@@ -118,7 +173,7 @@ Build/packaging: `react-native-builder-bob` (ESM `module` + `typescript` targets
|
|
|
118
173
|
- **Core:** CSF parsing, zero-codegen discovery (`require.context` / `import.meta.glob`), registry, real-shell compose. Pure and unit-tested.
|
|
119
174
|
- **Native backend:** boot-flag entry swap + in-app picker + real-shell render + deep-link, verified on the iOS simulator (including a native `expo-blur` story).
|
|
120
175
|
- **Web backend:** renders the same CSF stories via react-native-web (native-module cap documented).
|
|
121
|
-
- **Live props controls:** value-inferred text/number/boolean + CSF `argTypes` select/range, on-device, live.
|
|
176
|
+
- **Live props controls:** value-inferred text/number/boolean/color + CSF `argTypes` select/range/color/object, on-device, live. Edits persist per story (session + optional cold-reload adapter); Copy/Reset.
|
|
122
177
|
- **Roadmap:** TS-type-driven prop controls (auto-infer from prop types), VS Code extension, more CSF decorator edge cases.
|
|
123
178
|
|
|
124
179
|
## License
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React from 'react';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
4
|
import { Pressable, ScrollView, StyleSheet, Switch, Text, TextInput, View } from 'react-native';
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
// Dependency-free controls panel (bottom sheet). Neutral chrome — the host theme
|
|
7
|
-
// applies to the previewed story, not here.
|
|
7
|
+
// applies to the previewed story, not here. A top "Globals" section switches the
|
|
8
|
+
// shell (theme/locale, …); below it, each control edits one arg live.
|
|
8
9
|
export function PreviewControls({
|
|
9
10
|
controls,
|
|
10
11
|
onChange,
|
|
11
|
-
onReset
|
|
12
|
+
onReset,
|
|
13
|
+
onCopy,
|
|
14
|
+
globalTypes,
|
|
15
|
+
globals,
|
|
16
|
+
onGlobalChange
|
|
12
17
|
}) {
|
|
18
|
+
const globalKeys = globalTypes ? Object.keys(globalTypes) : [];
|
|
13
19
|
return /*#__PURE__*/_jsxs(View, {
|
|
14
20
|
style: styles.sheet,
|
|
15
21
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -17,17 +23,62 @@ export function PreviewControls({
|
|
|
17
23
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
18
24
|
style: styles.title,
|
|
19
25
|
children: "Props"
|
|
20
|
-
}), /*#__PURE__*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
27
|
+
style: styles.headerActions,
|
|
28
|
+
children: [onCopy && /*#__PURE__*/_jsx(Pressable, {
|
|
29
|
+
onPress: onCopy,
|
|
30
|
+
accessibilityRole: "button",
|
|
31
|
+
accessibilityLabel: "Copy props",
|
|
32
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
33
|
+
style: styles.action,
|
|
34
|
+
children: "Copy"
|
|
35
|
+
})
|
|
36
|
+
}), /*#__PURE__*/_jsx(Pressable, {
|
|
37
|
+
onPress: onReset,
|
|
38
|
+
accessibilityRole: "button",
|
|
39
|
+
accessibilityLabel: "Reset props",
|
|
40
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
41
|
+
style: styles.action,
|
|
42
|
+
children: "Reset"
|
|
43
|
+
})
|
|
44
|
+
})]
|
|
27
45
|
})]
|
|
28
|
-
}), /*#__PURE__*/
|
|
46
|
+
}), /*#__PURE__*/_jsxs(ScrollView, {
|
|
29
47
|
keyboardShouldPersistTaps: "handled",
|
|
30
|
-
children:
|
|
48
|
+
children: [globalKeys.length > 0 && globalTypes && globals && onGlobalChange && /*#__PURE__*/_jsxs(View, {
|
|
49
|
+
style: styles.globals,
|
|
50
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
51
|
+
style: styles.sectionLabel,
|
|
52
|
+
children: "Globals"
|
|
53
|
+
}), globalKeys.map(key => {
|
|
54
|
+
const gt = globalTypes[key];
|
|
55
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
56
|
+
style: styles.row,
|
|
57
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
58
|
+
style: styles.label,
|
|
59
|
+
children: gt.label ?? key
|
|
60
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
61
|
+
style: styles.control,
|
|
62
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
63
|
+
style: styles.options,
|
|
64
|
+
children: gt.options.map(opt => {
|
|
65
|
+
const selected = opt === globals[key];
|
|
66
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
67
|
+
style: [styles.pill, selected && styles.pillSelected],
|
|
68
|
+
onPress: () => onGlobalChange(key, opt),
|
|
69
|
+
accessibilityRole: "button",
|
|
70
|
+
accessibilityLabel: `${gt.label ?? key}: ${String(opt)}`,
|
|
71
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
72
|
+
style: [styles.pillText, selected && styles.pillTextSelected],
|
|
73
|
+
children: String(opt)
|
|
74
|
+
})
|
|
75
|
+
}, String(opt));
|
|
76
|
+
})
|
|
77
|
+
})
|
|
78
|
+
})]
|
|
79
|
+
}, key);
|
|
80
|
+
})]
|
|
81
|
+
}), controls.map(c => /*#__PURE__*/_jsxs(View, {
|
|
31
82
|
style: styles.row,
|
|
32
83
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
33
84
|
style: styles.label,
|
|
@@ -39,7 +90,7 @@ export function PreviewControls({
|
|
|
39
90
|
onChange: v => onChange(c.name, v)
|
|
40
91
|
})
|
|
41
92
|
})]
|
|
42
|
-
}, c.name))
|
|
93
|
+
}, c.name))]
|
|
43
94
|
})]
|
|
44
95
|
});
|
|
45
96
|
}
|
|
@@ -82,6 +133,28 @@ function ControlInput({
|
|
|
82
133
|
}, String(opt));
|
|
83
134
|
})
|
|
84
135
|
});
|
|
136
|
+
case 'color':
|
|
137
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
138
|
+
style: styles.colorRow,
|
|
139
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
140
|
+
style: [styles.swatch, {
|
|
141
|
+
backgroundColor: control.value || 'transparent'
|
|
142
|
+
}]
|
|
143
|
+
}), /*#__PURE__*/_jsx(TextInput, {
|
|
144
|
+
style: [styles.input, styles.colorInput],
|
|
145
|
+
value: control.value,
|
|
146
|
+
autoCapitalize: "none",
|
|
147
|
+
autoCorrect: false,
|
|
148
|
+
placeholder: "#rrggbb",
|
|
149
|
+
placeholderTextColor: "#666",
|
|
150
|
+
onChangeText: onChange
|
|
151
|
+
})]
|
|
152
|
+
});
|
|
153
|
+
case 'object':
|
|
154
|
+
return /*#__PURE__*/_jsx(ObjectInput, {
|
|
155
|
+
value: control.value,
|
|
156
|
+
onChange: onChange
|
|
157
|
+
});
|
|
85
158
|
default:
|
|
86
159
|
// 'text'
|
|
87
160
|
return /*#__PURE__*/_jsx(TextInput, {
|
|
@@ -93,6 +166,34 @@ function ControlInput({
|
|
|
93
166
|
});
|
|
94
167
|
}
|
|
95
168
|
}
|
|
169
|
+
|
|
170
|
+
// Object/array editor. Holds the raw text locally so a transiently-invalid edit
|
|
171
|
+
// (mid-typing) isn't reverted keystroke-by-keystroke; commits only on valid JSON.
|
|
172
|
+
// Reset reseeds it because the panel is keyed by a reset nonce in PreviewStage.
|
|
173
|
+
function ObjectInput({
|
|
174
|
+
value,
|
|
175
|
+
onChange
|
|
176
|
+
}) {
|
|
177
|
+
const [text, setText] = useState(() => JSON.stringify(value, null, 2));
|
|
178
|
+
const [valid, setValid] = useState(true);
|
|
179
|
+
return /*#__PURE__*/_jsx(TextInput, {
|
|
180
|
+
style: [styles.input, styles.objectInput, !valid && styles.objectInvalid],
|
|
181
|
+
value: text,
|
|
182
|
+
multiline: true,
|
|
183
|
+
autoCapitalize: "none",
|
|
184
|
+
autoCorrect: false,
|
|
185
|
+
onChangeText: t => {
|
|
186
|
+
setText(t);
|
|
187
|
+
try {
|
|
188
|
+
const parsed = JSON.parse(t);
|
|
189
|
+
setValid(true);
|
|
190
|
+
onChange(parsed);
|
|
191
|
+
} catch {
|
|
192
|
+
setValid(false); // keep the text; don't commit until it parses
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
96
197
|
const styles = StyleSheet.create({
|
|
97
198
|
sheet: {
|
|
98
199
|
position: 'absolute',
|
|
@@ -120,11 +221,28 @@ const styles = StyleSheet.create({
|
|
|
120
221
|
fontSize: 16,
|
|
121
222
|
fontWeight: '700'
|
|
122
223
|
},
|
|
123
|
-
|
|
224
|
+
headerActions: {
|
|
225
|
+
flexDirection: 'row',
|
|
226
|
+
gap: 16
|
|
227
|
+
},
|
|
228
|
+
action: {
|
|
124
229
|
color: '#7aa2ff',
|
|
125
230
|
fontSize: 14,
|
|
126
231
|
fontWeight: '600'
|
|
127
232
|
},
|
|
233
|
+
globals: {
|
|
234
|
+
marginBottom: 8,
|
|
235
|
+
paddingBottom: 8,
|
|
236
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
237
|
+
borderBottomColor: '#333'
|
|
238
|
+
},
|
|
239
|
+
sectionLabel: {
|
|
240
|
+
color: '#7f7f88',
|
|
241
|
+
fontSize: 11,
|
|
242
|
+
fontWeight: '700',
|
|
243
|
+
textTransform: 'uppercase',
|
|
244
|
+
letterSpacing: 0.6
|
|
245
|
+
},
|
|
128
246
|
row: {
|
|
129
247
|
flexDirection: 'row',
|
|
130
248
|
alignItems: 'center',
|
|
@@ -150,6 +268,33 @@ const styles = StyleSheet.create({
|
|
|
150
268
|
width: '100%',
|
|
151
269
|
textAlign: 'right'
|
|
152
270
|
},
|
|
271
|
+
colorRow: {
|
|
272
|
+
flexDirection: 'row',
|
|
273
|
+
alignItems: 'center',
|
|
274
|
+
gap: 8,
|
|
275
|
+
width: '100%'
|
|
276
|
+
},
|
|
277
|
+
swatch: {
|
|
278
|
+
width: 26,
|
|
279
|
+
height: 26,
|
|
280
|
+
borderRadius: 6,
|
|
281
|
+
borderWidth: StyleSheet.hairlineWidth,
|
|
282
|
+
borderColor: '#555'
|
|
283
|
+
},
|
|
284
|
+
colorInput: {
|
|
285
|
+
flex: 1,
|
|
286
|
+
minWidth: 0
|
|
287
|
+
},
|
|
288
|
+
objectInput: {
|
|
289
|
+
textAlign: 'left',
|
|
290
|
+
minHeight: 88,
|
|
291
|
+
fontFamily: 'Courier',
|
|
292
|
+
fontSize: 12
|
|
293
|
+
},
|
|
294
|
+
objectInvalid: {
|
|
295
|
+
borderWidth: 1,
|
|
296
|
+
borderColor: '#e0566f'
|
|
297
|
+
},
|
|
153
298
|
options: {
|
|
154
299
|
flexDirection: 'row',
|
|
155
300
|
flexWrap: 'wrap',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","ScrollView","StyleSheet","Switch","Text","TextInput","View","jsx","_jsx","jsxs","_jsxs","PreviewControls","controls","onChange","onReset","style","styles","sheet","children","header","title","onPress","accessibilityLabel","
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","ScrollView","StyleSheet","Switch","Text","TextInput","View","jsx","_jsx","jsxs","_jsxs","PreviewControls","controls","onChange","onReset","onCopy","globalTypes","globals","onGlobalChange","globalKeys","Object","keys","style","styles","sheet","children","header","title","headerActions","onPress","accessibilityRole","accessibilityLabel","action","keyboardShouldPersistTaps","length","sectionLabel","map","key","gt","row","label","control","options","opt","selected","pill","pillSelected","String","pillText","pillTextSelected","c","name","ControlInput","v","kind","value","onValueChange","input","keyboardType","onChangeText","text","n","Number","trim","isNaN","next","min","Math","max","colorRow","swatch","backgroundColor","colorInput","autoCapitalize","autoCorrect","placeholder","placeholderTextColor","ObjectInput","setText","JSON","stringify","valid","setValid","objectInput","objectInvalid","multiline","t","parsed","parse","create","position","left","right","bottom","maxHeight","borderTopLeftRadius","borderTopRightRadius","paddingHorizontal","paddingTop","paddingBottom","borderTopWidth","hairlineWidth","borderTopColor","flexDirection","justifyContent","alignItems","marginBottom","color","fontSize","fontWeight","gap","borderBottomWidth","borderBottomColor","textTransform","letterSpacing","paddingVertical","width","flex","borderRadius","minWidth","textAlign","height","borderWidth","borderColor","minHeight","fontFamily","flexWrap"],"sourceRoot":"../../src","sources":["PreviewControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,6 +39,9 @@ export function PreviewList({
|
|
|
39
39
|
}) => /*#__PURE__*/_jsxs(Pressable, {
|
|
40
40
|
style: styles.row,
|
|
41
41
|
onPress: () => onSelect(item),
|
|
42
|
+
accessibilityRole: "button",
|
|
43
|
+
accessibilityLabel: `${item.title} / ${item.name}`,
|
|
44
|
+
testID: `story-row-${item.id}`,
|
|
42
45
|
children: [/*#__PURE__*/_jsxs(Text, {
|
|
43
46
|
style: styles.rowTitle,
|
|
44
47
|
children: [item.title, " ", /*#__PURE__*/_jsxs(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useState","FlatList","Pressable","StyleSheet","Text","TextInput","View","jsxs","_jsxs","jsx","_jsx","PreviewList","entries","onSelect","query","setQuery","filtered","q","trim","toLowerCase","filter","e","title","name","includes","style","styles","root","children","heading","length","search","placeholder","placeholderTextColor","autoCapitalize","autoCorrect","value","onChangeText","empty","data","keyExtractor","id","renderItem","item","row","onPress","rowTitle","rowName","rowId","create","flex","paddingTop","paddingHorizontal","backgroundColor","color","fontSize","fontWeight","marginBottom","borderRadius","paddingVertical","marginTop","borderBottomWidth","hairlineWidth","borderBottomColor"],"sourceRoot":"../../src","sources":["PreviewList.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAChD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAGtF;AACA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,OAAO;EACPC;AAIF,CAAC,EAAE;EACD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGf,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAMgB,QAAQ,GAAGjB,OAAO,CAAC,MAAM;IAC7B,MAAMkB,CAAC,GAAGH,KAAK,CAACI,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACpC,IAAI,CAACF,CAAC,EAAE,OAAOL,OAAO;IACtB,OAAOA,OAAO,CAACQ,MAAM,CAAEC,CAAC,IAAK,GAAGA,CAAC,CAACC,KAAK,IAAID,CAAC,CAACE,IAAI,EAAE,CAACJ,WAAW,CAAC,CAAC,CAACK,QAAQ,CAACP,CAAC,CAAC,CAAC;EAChF,CAAC,EAAE,CAACL,OAAO,EAAEE,KAAK,CAAC,CAAC;EAEpB,oBACEN,KAAA,CAACF,IAAI;IAACmB,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,gBACvBpB,KAAA,CAACJ,IAAI;MAACqB,KAAK,EAAEC,MAAM,CAACG,OAAQ;MAAAD,QAAA,GAAC,WAAS,EAAChB,OAAO,CAACkB,MAAM,EAAC,GAAC;IAAA,CAAM,CAAC,eAC9DpB,IAAA,CAACL,SAAS;MACRoB,KAAK,EAAEC,MAAM,CAACK,MAAO;MACrBC,WAAW,EAAC,cAAS;MACrBC,oBAAoB,EAAC,MAAM;MAC3BC,cAAc,EAAC,MAAM;MACrBC,WAAW,EAAE,KAAM;MACnBC,KAAK,EAAEtB,KAAM;MACbuB,YAAY,EAAEtB;IAAS,CACxB,CAAC,EACDC,QAAQ,CAACc,MAAM,KAAK,CAAC,gBACpBpB,IAAA,CAACN,IAAI;MAACqB,KAAK,EAAEC,MAAM,CAACY,KAAM;MAAAV,QAAA,EACvBhB,OAAO,CAACkB,MAAM,KAAK,CAAC,GAAG,yBAAyB,GAAG;IAAa,CAC7D,CAAC,gBAEPpB,IAAA,CAACT,QAAQ;MACPsC,IAAI,EAAEvB,QAAS;MACfwB,YAAY,EAAGnB,CAAC,IAAKA,CAAC,CAACoB,EAAG;MAC1BC,UAAU,EAAEA,CAAC;QAAEC;MAAK,CAAC,kBACnBnC,KAAA,CAACN,SAAS;
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","FlatList","Pressable","StyleSheet","Text","TextInput","View","jsxs","_jsxs","jsx","_jsx","PreviewList","entries","onSelect","query","setQuery","filtered","q","trim","toLowerCase","filter","e","title","name","includes","style","styles","root","children","heading","length","search","placeholder","placeholderTextColor","autoCapitalize","autoCorrect","value","onChangeText","empty","data","keyExtractor","id","renderItem","item","row","onPress","accessibilityRole","accessibilityLabel","testID","rowTitle","rowName","rowId","create","flex","paddingTop","paddingHorizontal","backgroundColor","color","fontSize","fontWeight","marginBottom","borderRadius","paddingVertical","marginTop","borderBottomWidth","hairlineWidth","borderBottomColor"],"sourceRoot":"../../src","sources":["PreviewList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,48 +4,83 @@ import React, { useMemo, useState } from 'react';
|
|
|
4
4
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
5
5
|
import { inferControls } from "./controls.js";
|
|
6
6
|
import { PreviewControls } from "./PreviewControls.js";
|
|
7
|
+
import { loadArgs, resetArgs, saveArgs } from "./persistence.js";
|
|
7
8
|
import { composeStory } from "./shell.js";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
// Renders the selected story full-bleed, composed with the real shell (outer)
|
|
10
11
|
// and the story's decorators (inner). The picker chrome stays outside the shell.
|
|
11
|
-
// Live props controls edit `args` and re-render the story in place.
|
|
12
|
+
// Live props controls edit `args` and re-render the story in place. Edits persist
|
|
13
|
+
// per story id (session by default; cross-reload if a `persistence` adapter is
|
|
14
|
+
// passed), so navigating away and back keeps your tweaks. `globals` parameterize
|
|
15
|
+
// the shell (theme/locale) from the same panel.
|
|
12
16
|
export function PreviewStage({
|
|
13
17
|
entry,
|
|
14
18
|
shell,
|
|
15
|
-
onBack
|
|
19
|
+
onBack,
|
|
20
|
+
persistence,
|
|
21
|
+
onCopyArgs,
|
|
22
|
+
globalTypes,
|
|
23
|
+
globals,
|
|
24
|
+
onGlobalChange
|
|
16
25
|
}) {
|
|
17
|
-
const [args, setArgs] = useState(entry.args);
|
|
26
|
+
const [args, setArgs] = useState(() => loadArgs(entry.id, entry.args, persistence));
|
|
18
27
|
const [controlsOpen, setControlsOpen] = useState(false);
|
|
28
|
+
// Bumped on Reset to remount the controls panel so the JSON object editor
|
|
29
|
+
// reseeds its local text from the restored args.
|
|
30
|
+
const [resetNonce, setResetNonce] = useState(0);
|
|
19
31
|
const controls = useMemo(() => inferControls(args, entry.argTypes), [args, entry.argTypes]);
|
|
32
|
+
const change = (name, value) => setArgs(a => {
|
|
33
|
+
const next = {
|
|
34
|
+
...a,
|
|
35
|
+
[name]: value
|
|
36
|
+
};
|
|
37
|
+
saveArgs(entry.id, next, persistence);
|
|
38
|
+
return next;
|
|
39
|
+
});
|
|
40
|
+
const reset = () => {
|
|
41
|
+
resetArgs(entry.id, persistence);
|
|
42
|
+
setArgs(entry.args);
|
|
43
|
+
setResetNonce(n => n + 1);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Default copy logs the args JSON (zero-dep); a host can wire a real clipboard.
|
|
47
|
+
const copy = () => {
|
|
48
|
+
if (onCopyArgs) onCopyArgs(args, entry);else console.log(`[previewer] ${entry.id} args:\n${JSON.stringify(args, null, 2)}`);
|
|
49
|
+
};
|
|
50
|
+
const hasGlobals = !!globalTypes && Object.keys(globalTypes).length > 0;
|
|
51
|
+
const hasPanel = controls.length > 0 || hasGlobals;
|
|
20
52
|
return /*#__PURE__*/_jsxs(View, {
|
|
21
53
|
style: styles.root,
|
|
22
54
|
children: [/*#__PURE__*/_jsx(View, {
|
|
23
55
|
style: styles.content,
|
|
24
|
-
children: composeStory(entry, shell, args)
|
|
56
|
+
children: composeStory(entry, shell, args, globals)
|
|
25
57
|
}), /*#__PURE__*/_jsx(Pressable, {
|
|
26
58
|
style: styles.back,
|
|
27
59
|
onPress: onBack,
|
|
60
|
+
accessibilityRole: "button",
|
|
28
61
|
accessibilityLabel: "Back to stories",
|
|
29
62
|
children: /*#__PURE__*/_jsxs(Text, {
|
|
30
63
|
style: styles.backText,
|
|
31
64
|
children: ["\u2039 ", entry.title, " / ", entry.name]
|
|
32
65
|
})
|
|
33
|
-
}),
|
|
66
|
+
}), hasPanel && /*#__PURE__*/_jsx(Pressable, {
|
|
34
67
|
style: styles.toggle,
|
|
35
68
|
onPress: () => setControlsOpen(v => !v),
|
|
69
|
+
accessibilityRole: "button",
|
|
36
70
|
accessibilityLabel: "Toggle props controls",
|
|
37
71
|
children: /*#__PURE__*/_jsx(Text, {
|
|
38
72
|
style: styles.backText,
|
|
39
73
|
children: controlsOpen ? 'Controls ▾' : 'Controls ▴'
|
|
40
74
|
})
|
|
41
|
-
}), controlsOpen &&
|
|
75
|
+
}), controlsOpen && hasPanel && /*#__PURE__*/_jsx(PreviewControls, {
|
|
42
76
|
controls: controls,
|
|
43
|
-
onChange:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
77
|
+
onChange: change,
|
|
78
|
+
onReset: reset,
|
|
79
|
+
onCopy: copy,
|
|
80
|
+
globalTypes: globalTypes,
|
|
81
|
+
globals: globals,
|
|
82
|
+
onGlobalChange: onGlobalChange
|
|
83
|
+
}, resetNonce)]
|
|
49
84
|
});
|
|
50
85
|
}
|
|
51
86
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useState","Pressable","StyleSheet","Text","View","inferControls","PreviewControls","composeStory","jsx","_jsx","jsxs","_jsxs","PreviewStage","entry","shell","onBack","args","setArgs","controlsOpen","setControlsOpen","controls","argTypes","style","styles","root","children","content","back","onPress","accessibilityLabel","backText","title","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","Pressable","StyleSheet","Text","View","inferControls","PreviewControls","loadArgs","resetArgs","saveArgs","composeStory","jsx","_jsx","jsxs","_jsxs","PreviewStage","entry","shell","onBack","persistence","onCopyArgs","globalTypes","globals","onGlobalChange","args","setArgs","id","controlsOpen","setControlsOpen","resetNonce","setResetNonce","controls","argTypes","change","name","value","a","next","reset","n","copy","console","log","JSON","stringify","hasGlobals","Object","keys","length","hasPanel","style","styles","root","children","content","back","onPress","accessibilityRole","accessibilityLabel","backText","title","toggle","v","onChange","onReset","onCopy","create","flex","position","top","left","backgroundColor","borderRadius","paddingHorizontal","paddingVertical","right","color","fontSize","fontWeight"],"sourceRoot":"../../src","sources":["PreviewStage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAChD,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAChE,SAASC,aAAa,QAAQ,eAAY;AAC1C,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAA8B,kBAAe;AACnF,SAASC,YAAY,QAA6B,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG5D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAC;EAC3BC,KAAK;EACLC,KAAK;EACLC,MAAM;EACNC,WAAW;EACXC,UAAU;EACVC,WAAW;EACXC,OAAO;EACPC;AAUF,CAAC,EAAE;EACD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGzB,QAAQ,CAAO,MAAMO,QAAQ,CAACS,KAAK,CAACU,EAAE,EAAEV,KAAK,CAACQ,IAAI,EAAEL,WAAW,CAAC,CAAC;EACzF,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAG5B,QAAQ,CAAC,KAAK,CAAC;EACvD;EACA;EACA,MAAM,CAAC6B,UAAU,EAAEC,aAAa,CAAC,GAAG9B,QAAQ,CAAC,CAAC,CAAC;EAC/C,MAAM+B,QAAQ,GAAGhC,OAAO,CAAC,MAAMM,aAAa,CAACmB,IAAI,EAAER,KAAK,CAACgB,QAAQ,CAAC,EAAE,CAACR,IAAI,EAAER,KAAK,CAACgB,QAAQ,CAAC,CAAC;EAE3F,MAAMC,MAAM,GAAGA,CAACC,IAAY,EAAEC,KAAc,KAC1CV,OAAO,CAAEW,CAAC,IAAK;IACb,MAAMC,IAAI,GAAG;MAAE,GAAGD,CAAC;MAAE,CAACF,IAAI,GAAGC;IAAM,CAAC;IACpC1B,QAAQ,CAACO,KAAK,CAACU,EAAE,EAAEW,IAAI,EAAElB,WAAW,CAAC;IACrC,OAAOkB,IAAI;EACb,CAAC,CAAC;EAEJ,MAAMC,KAAK,GAAGA,CAAA,KAAM;IAClB9B,SAAS,CAACQ,KAAK,CAACU,EAAE,EAAEP,WAAW,CAAC;IAChCM,OAAO,CAACT,KAAK,CAACQ,IAAI,CAAC;IACnBM,aAAa,CAAES,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EAC7B,CAAC;;EAED;EACA,MAAMC,IAAI,GAAGA,CAAA,KAAM;IACjB,IAAIpB,UAAU,EAAEA,UAAU,CAACI,IAAI,EAAER,KAAK,CAAC,CAAC,KACnCyB,OAAO,CAACC,GAAG,CAAC,eAAe1B,KAAK,CAACU,EAAE,WAAWiB,IAAI,CAACC,SAAS,CAACpB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;EACrF,CAAC;EAED,MAAMqB,UAAU,GAAG,CAAC,CAACxB,WAAW,IAAIyB,MAAM,CAACC,IAAI,CAAC1B,WAAW,CAAC,CAAC2B,MAAM,GAAG,CAAC;EACvE,MAAMC,QAAQ,GAAGlB,QAAQ,CAACiB,MAAM,GAAG,CAAC,IAAIH,UAAU;EAElD,oBACE/B,KAAA,CAACV,IAAI;IAAC8C,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,gBACvBzC,IAAA,CAACR,IAAI;MAAC8C,KAAK,EAAEC,MAAM,CAACG,OAAQ;MAAAD,QAAA,EAAE3C,YAAY,CAACM,KAAK,EAAEC,KAAK,EAAEO,IAAI,EAAEF,OAAO;IAAC,CAAO,CAAC,eAC/EV,IAAA,CAACX,SAAS;MAACiD,KAAK,EAAEC,MAAM,CAACI,IAAK;MAACC,OAAO,EAAEtC,MAAO;MAACuC,iBAAiB,EAAC,QAAQ;MAACC,kBAAkB,EAAC,iBAAiB;MAAAL,QAAA,eAC7GvC,KAAA,CAACX,IAAI;QAAC+C,KAAK,EAAEC,MAAM,CAACQ,QAAS;QAAAN,QAAA,GAAC,SAAE,EAACrC,KAAK,CAAC4C,KAAK,EAAC,KAAG,EAAC5C,KAAK,CAACkB,IAAI;MAAA,CAAO;IAAC,CAC1D,CAAC,EACXe,QAAQ,iBACPrC,IAAA,CAACX,SAAS;MACRiD,KAAK,EAAEC,MAAM,CAACU,MAAO;MACrBL,OAAO,EAAEA,CAAA,KAAM5B,eAAe,CAAEkC,CAAC,IAAK,CAACA,CAAC,CAAE;MAC1CL,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAC,uBAAuB;MAAAL,QAAA,eAE1CzC,IAAA,CAACT,IAAI;QAAC+C,KAAK,EAAEC,MAAM,CAACQ,QAAS;QAAAN,QAAA,EAAE1B,YAAY,GAAG,YAAY,GAAG;MAAY,CAAO;IAAC,CACxE,CACZ,EACAA,YAAY,IAAIsB,QAAQ,iBACvBrC,IAAA,CAACN,eAAe;MAEdyB,QAAQ,EAAEA,QAAS;MACnBgC,QAAQ,EAAE9B,MAAO;MACjB+B,OAAO,EAAE1B,KAAM;MACf2B,MAAM,EAAEzB,IAAK;MACbnB,WAAW,EAAEA,WAAY;MACzBC,OAAO,EAAEA,OAAQ;MACjBC,cAAc,EAAEA;IAAe,GAP1BM,UAQN,CACF;EAAA,CACG,CAAC;AAEX;AAEA,MAAMsB,MAAM,GAAGjD,UAAU,CAACgE,MAAM,CAAC;EAC/Bd,IAAI,EAAE;IAAEe,IAAI,EAAE;EAAE,CAAC;EACjBb,OAAO,EAAE;IAAEa,IAAI,EAAE;EAAE,CAAC;EACpBZ,IAAI,EAAE;IACJa,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,EAAE;IACPC,IAAI,EAAE,EAAE;IACRC,eAAe,EAAE,iBAAiB;IAClCC,YAAY,EAAE,GAAG;IACjBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDb,MAAM,EAAE;IACNO,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,EAAE;IACPM,KAAK,EAAE,EAAE;IACTJ,eAAe,EAAE,iBAAiB;IAClCC,YAAY,EAAE,GAAG;IACjBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDf,QAAQ,EAAE;IAAEiB,KAAK,EAAE,MAAM;IAAEC,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM;AAC7D,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/Previewer.js
CHANGED
|
@@ -1,26 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useState } from 'react';
|
|
4
|
+
import { initGlobals } from "./globals.js";
|
|
4
5
|
import { PreviewList } from "./PreviewList.js";
|
|
5
6
|
import { PreviewStage } from "./PreviewStage.js";
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
8
|
// The reusable picker + stage UI. The host builds `stories` via
|
|
8
9
|
// fromRequireContext/fromGlob and passes its real `shell` (AppProviders).
|
|
9
10
|
// `initialStoryId` boots straight into one story (useful for deep links /
|
|
10
|
-
// screenshots / "jump to the thing I'm editing").
|
|
11
|
+
// screenshots / "jump to the thing I'm editing"). `persistence` (optional) makes
|
|
12
|
+
// edited args survive a cold reload; `onCopyArgs` (optional) wires a real
|
|
13
|
+
// clipboard for the Copy button (defaults to console.log). `globalTypes`
|
|
14
|
+
// (optional) declares toolbar params (theme/locale) that the shell reads — one
|
|
15
|
+
// real shell parameterized, instead of forked light/dark copies.
|
|
11
16
|
export function Previewer({
|
|
12
17
|
stories,
|
|
13
18
|
shell,
|
|
14
|
-
initialStoryId
|
|
19
|
+
initialStoryId,
|
|
20
|
+
persistence,
|
|
21
|
+
onCopyArgs,
|
|
22
|
+
globalTypes
|
|
15
23
|
}) {
|
|
16
24
|
const initial = initialStoryId ? stories.find(s => s.id === initialStoryId) ?? null : null;
|
|
17
25
|
const [selected, setSelected] = useState(initial);
|
|
26
|
+
// Globals live above the selected story so they survive list <-> stage nav.
|
|
27
|
+
const [globals, setGlobals] = useState(() => initGlobals(globalTypes));
|
|
28
|
+
const changeGlobal = (key, value) => setGlobals(g => ({
|
|
29
|
+
...g,
|
|
30
|
+
[key]: value
|
|
31
|
+
}));
|
|
18
32
|
if (selected) {
|
|
19
33
|
// key by story id so live-edited arg state resets cleanly per story.
|
|
20
34
|
return /*#__PURE__*/_jsx(PreviewStage, {
|
|
21
35
|
entry: selected,
|
|
22
36
|
shell: shell,
|
|
23
|
-
onBack: () => setSelected(null)
|
|
37
|
+
onBack: () => setSelected(null),
|
|
38
|
+
persistence: persistence,
|
|
39
|
+
onCopyArgs: onCopyArgs,
|
|
40
|
+
globalTypes: globalTypes,
|
|
41
|
+
globals: globals,
|
|
42
|
+
onGlobalChange: changeGlobal
|
|
24
43
|
}, selected.id);
|
|
25
44
|
}
|
|
26
45
|
return /*#__PURE__*/_jsx(PreviewList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","PreviewList","PreviewStage","jsx","_jsx","Previewer","stories","shell","initialStoryId","initial","find","s","id","selected","setSelected","entry","onBack","entries","onSelect"],"sourceRoot":"../../src","sources":["Previewer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","useState","initGlobals","PreviewList","PreviewStage","jsx","_jsx","Previewer","stories","shell","initialStoryId","persistence","onCopyArgs","globalTypes","initial","find","s","id","selected","setSelected","globals","setGlobals","changeGlobal","key","value","g","entry","onBack","onGlobalChange","entries","onSelect"],"sourceRoot":"../../src","sources":["Previewer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,WAAW,QAAQ,cAAW;AACvC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAK9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,OAAO;EACPC,KAAK;EACLC,cAAc;EACdC,WAAW;EACXC,UAAU;EACVC;AAQF,CAAC,EAAE;EACD,MAAMC,OAAO,GAAGJ,cAAc,GAAIF,OAAO,CAACO,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKP,cAAc,CAAC,IAAI,IAAI,GAAI,IAAI;EAC9F,MAAM,CAACQ,QAAQ,EAAEC,WAAW,CAAC,GAAGlB,QAAQ,CAAoBa,OAAO,CAAC;EACpE;EACA,MAAM,CAACM,OAAO,EAAEC,UAAU,CAAC,GAAGpB,QAAQ,CAAC,MAAMC,WAAW,CAACW,WAAW,CAAC,CAAC;EACtE,MAAMS,YAAY,GAAGA,CAACC,GAAW,EAAEC,KAAc,KAAKH,UAAU,CAAEI,CAAC,KAAM;IAAE,GAAGA,CAAC;IAAE,CAACF,GAAG,GAAGC;EAAM,CAAC,CAAC,CAAC;EAEjG,IAAIN,QAAQ,EAAE;IACZ;IACA,oBACEZ,IAAA,CAACF,YAAY;MAEXsB,KAAK,EAAER,QAAS;MAChBT,KAAK,EAAEA,KAAM;MACbkB,MAAM,EAAEA,CAAA,KAAMR,WAAW,CAAC,IAAI,CAAE;MAChCR,WAAW,EAAEA,WAAY;MACzBC,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEA,WAAY;MACzBO,OAAO,EAAEA,OAAQ;MACjBQ,cAAc,EAAEN;IAAa,GARxBJ,QAAQ,CAACD,EASf,CAAC;EAEN;EACA,oBAAOX,IAAA,CAACH,WAAW;IAAC0B,OAAO,EAAErB,OAAQ;IAACsB,QAAQ,EAAEX;EAAY,CAAE,CAAC;AACjE","ignoreList":[]}
|