@takazudo/zdtp 0.2.3 → 0.3.1

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.
@@ -1,11 +1,11 @@
1
- function k(e, n) {
1
+ function A(e, n) {
2
2
  return e.paletteCssVarTemplate.replace("{n}", String(n));
3
3
  }
4
- function y(e) {
4
+ function m(e) {
5
5
  const n = e.colorExtras;
6
6
  if (!n) return;
7
7
  const t = e.tiers.find(
8
- (i) => !i.referencesTier && i.items.length > 0 && i.items[0].type.kind === "color"
8
+ (f) => !f.referencesTier && f.items.length > 0 && f.items[0].type.kind === "color"
9
9
  );
10
10
  if (!t)
11
11
  return {
@@ -21,40 +21,40 @@ function y(e) {
21
21
  colorSchemes: n.colorSchemes,
22
22
  panelSettings: n.panelSettings
23
23
  };
24
- const r = t.items, g = r.length, o = (r[0]?.cssVar ?? "--palette-{n}").replace(/\d+$/, "{n}"), a = /* @__PURE__ */ new Map();
25
- for (let i = 0; i < r.length; i++)
26
- a.set(r[i].id, i);
27
- const f = e.tiers.find(
28
- (i) => i.referencesTier === t.id
29
- ), s = {}, c = {};
30
- if (f)
31
- for (const i of f.items) {
32
- c[i.id] = i.cssVar;
33
- const h = a.get(i.default);
34
- s[i.id] = h ?? 0;
24
+ const r = t.items, u = r.length, o = (r[0]?.cssVar ?? "--palette-{n}").replace(/\d+$/, "{n}"), i = /* @__PURE__ */ new Map();
25
+ for (let f = 0; f < r.length; f++)
26
+ i.set(r[f].id, f);
27
+ const a = e.tiers.find(
28
+ (f) => f.referencesTier === t.id
29
+ ), s = {}, g = {};
30
+ if (a)
31
+ for (const f of a.items) {
32
+ g[f.id] = f.cssVar;
33
+ const w = i.get(f.default);
34
+ s[f.id] = w ?? 0;
35
35
  }
36
36
  return {
37
37
  id: n.id,
38
38
  label: n.label,
39
- paletteSize: g,
39
+ paletteSize: u,
40
40
  baseRoles: n.baseRoles,
41
41
  paletteCssVarTemplate: o,
42
42
  semanticDefaults: s,
43
- semanticCssNames: c,
43
+ semanticCssNames: g,
44
44
  baseDefaults: n.baseDefaults,
45
45
  defaultShikiTheme: n.defaultShikiTheme,
46
46
  colorSchemes: n.colorSchemes,
47
47
  panelSettings: n.panelSettings
48
48
  };
49
49
  }
50
- function $(e) {
50
+ function T(e) {
51
51
  const n = e.find((t) => t.id === "color");
52
52
  if (n)
53
- return y(n);
53
+ return m(n);
54
54
  }
55
55
  function C(e) {
56
56
  const n = e.find((t) => t.id === "color-secondary");
57
- return n ? y(n) ?? null : null;
57
+ return n ? m(n) ?? null : null;
58
58
  }
59
59
  function d(e, n) {
60
60
  if (Object.is(e, n)) return !0;
@@ -68,13 +68,13 @@ function d(e, n) {
68
68
  if (Array.isArray(n)) return !1;
69
69
  const t = Object.keys(e), r = Object.keys(n);
70
70
  if (t.length !== r.length) return !1;
71
- const g = new Set(r);
71
+ const u = new Set(r);
72
72
  for (const l of t)
73
- if (!g.has(l) || !d(e[l], n[l]))
73
+ if (!u.has(l) || !d(e[l], n[l]))
74
74
  return !1;
75
75
  return !0;
76
76
  }
77
- const w = {
77
+ const h = {
78
78
  storagePrefix: "zudo-design-token-panel",
79
79
  consoleNamespace: "zudo",
80
80
  modalClassPrefix: "zudo-design-token-panel-modal",
@@ -86,72 +86,142 @@ const w = {
86
86
  // No bundled apply endpoint / routing — hosts wire their own.
87
87
  applyEndpoint: void 0,
88
88
  applyRouting: void 0
89
- }, p = /* @__PURE__ */ Symbol.for("@takazudo/zdtp:singleton");
90
- function u() {
89
+ }, y = /* @__PURE__ */ Symbol.for("@takazudo/zdtp:singleton");
90
+ function c() {
91
91
  const e = globalThis;
92
- let n = e[p];
93
- return n || (n = { configuredConfig: null, pendingColorPresets: null, postConfigureHooks: [] }, e[p] = n), n;
92
+ let n = e[y];
93
+ return n || (n = {
94
+ instances: /* @__PURE__ */ new Map(),
95
+ defaultPrefix: null,
96
+ pendingColorPresets: null,
97
+ pendingPostConfigureHooks: [],
98
+ lifecycleHooks: {}
99
+ }, e[y] = n), n;
100
+ }
101
+ function b(e) {
102
+ return {
103
+ instanceId: e,
104
+ open() {
105
+ c().lifecycleHooks.open?.(e);
106
+ },
107
+ close() {
108
+ c().lifecycleHooks.close?.(e);
109
+ },
110
+ toggle() {
111
+ c().lifecycleHooks.toggle?.(e);
112
+ },
113
+ destroy() {
114
+ c().lifecycleHooks.destroy?.(e);
115
+ const n = c();
116
+ if (n.instances.delete(e), n.defaultPrefix === e) {
117
+ const t = [...n.instances.keys()];
118
+ n.defaultPrefix = t.length > 0 ? t[t.length - 1] : null;
119
+ }
120
+ }
121
+ };
94
122
  }
95
- function E(e) {
96
- const n = u();
97
- if (n.configuredConfig !== null) {
98
- if (d(n.configuredConfig, e)) return;
123
+ function S(e) {
124
+ c().lifecycleHooks = {
125
+ configured: e.configured,
126
+ open: e.open,
127
+ close: e.close,
128
+ toggle: e.toggle,
129
+ destroy: e.destroy
130
+ };
131
+ }
132
+ function R(e) {
133
+ const n = c(), t = e.storagePrefix, r = n.instances.get(t);
134
+ if (r) {
135
+ if (d(r.config, e))
136
+ return n.defaultPrefix = t, r.handle;
99
137
  throw new Error(
100
- "[design-token-panel] configurePanel() was already called with different values. Configuration is one-shot per page lifecycle."
138
+ `[design-token-panel] configurePanel() was already called with different values for storagePrefix "${t}". Configuration is one-shot per prefix per page lifecycle. To re-configure this prefix, call handle.destroy() first, then configurePanel() again. (Use a distinct storagePrefix for a second panel instance.)`
101
139
  );
102
140
  }
103
- n.configuredConfig = n.pendingColorPresets ? { ...e, colorPresets: n.pendingColorPresets } : { ...e }, n.pendingColorPresets = null;
104
- for (const t of n.postConfigureHooks)
105
- t();
141
+ const u = n.pendingColorPresets, l = u ? { ...e, colorPresets: u } : { ...e };
142
+ n.pendingColorPresets = null;
143
+ const o = n.instances.size === 0, i = o ? [...n.pendingPostConfigureHooks] : [];
144
+ o && (n.pendingPostConfigureHooks.length = 0);
145
+ const a = {
146
+ config: l,
147
+ pendingColorPresets: null,
148
+ postConfigureHooks: i,
149
+ handle: b(t)
150
+ };
151
+ n.instances.set(t, a), n.defaultPrefix = t;
152
+ for (const s of a.postConfigureHooks)
153
+ s();
154
+ return n.lifecycleHooks.configured?.(t), a.handle;
155
+ }
156
+ function p() {
157
+ const e = c();
158
+ return e.defaultPrefix === null ? null : e.instances.get(e.defaultPrefix) ?? null;
159
+ }
160
+ function _(e) {
161
+ const n = p();
162
+ if (n === null) {
163
+ const t = c();
164
+ if (t.pendingPostConfigureHooks.includes(e)) return;
165
+ t.pendingPostConfigureHooks.push(e);
166
+ return;
167
+ }
168
+ n.postConfigureHooks.includes(e) || (n.postConfigureHooks.push(e), e());
106
169
  }
107
- function A(e) {
108
- const n = u();
109
- n.postConfigureHooks.includes(e) || (n.postConfigureHooks.push(e), n.configuredConfig !== null && e());
170
+ function P() {
171
+ return p()?.config ?? h;
110
172
  }
111
- function m() {
112
- return u().configuredConfig ?? w;
173
+ function j(e) {
174
+ return c().instances.get(e)?.config ?? null;
113
175
  }
114
- function S() {
115
- const e = u();
116
- e.configuredConfig = null, e.pendingColorPresets = null, e.postConfigureHooks = [];
176
+ function H() {
177
+ const e = c();
178
+ e.instances.clear(), e.defaultPrefix = null, e.pendingColorPresets = null, e.pendingPostConfigureHooks.length = 0;
117
179
  }
118
- function v(e = m()) {
180
+ function V(e = P()) {
119
181
  return C(e.tabs);
120
182
  }
121
- function T(e) {
183
+ function O(e) {
122
184
  return `${e.storagePrefix}-state-v2`;
123
185
  }
124
- function x(e) {
186
+ function z(e) {
125
187
  return `${e.storagePrefix}-state-v3`;
126
188
  }
127
- function j(e) {
189
+ function K(e) {
128
190
  return `${e.storagePrefix}-state`;
129
191
  }
130
- function R(e) {
192
+ function N(e) {
131
193
  return `${e.storagePrefix}-open`;
132
194
  }
133
- function V(e) {
195
+ function I(e) {
134
196
  return `${e.storagePrefix}-position`;
135
197
  }
136
- function K(e) {
198
+ function F(e) {
137
199
  return `${e.storagePrefix}-size`;
138
200
  }
139
- function O(e) {
201
+ function D(e) {
140
202
  return `${e.storagePrefix}-density`;
141
203
  }
142
- function _(e) {
204
+ function M(e) {
143
205
  return `${e.storagePrefix}:visible`;
144
206
  }
145
- function z(e) {
207
+ function L(e) {
146
208
  return `${e.storagePrefix}-root`;
147
209
  }
148
- function I(e, n) {
210
+ const k = h.storagePrefix, $ = "toggle-design-token-panel";
211
+ function B(e) {
212
+ return e.storagePrefix === k ? $ : e.toggleEvent ?? `toggle-${e.storagePrefix}`;
213
+ }
214
+ const E = "__zdtp:open-state-changed";
215
+ function G(e) {
216
+ return `${E}:${e.storagePrefix}`;
217
+ }
218
+ function U(e, n) {
149
219
  return `${e.modalClassPrefix}${n}`;
150
220
  }
151
- function M(e) {
221
+ function q(e) {
152
222
  return `${e.exportFilenameBase}.json`;
153
223
  }
154
- function F(e) {
224
+ function J(e) {
155
225
  if (e === null || typeof e != "object" || Array.isArray(e))
156
226
  throw new Error("[design-token-panel] PanelConfig must be a non-null object");
157
227
  const n = e;
@@ -166,7 +236,11 @@ function F(e) {
166
236
  throw new Error(
167
237
  `[design-token-panel] PanelConfig.${t} must be a non-empty string (got ${typeof n[t]})`
168
238
  );
169
- if (b(n.tabs), n.applyEndpoint !== void 0 && typeof n.applyEndpoint != "string")
239
+ if (x(n.tabs), n.toggleEvent !== void 0 && (typeof n.toggleEvent != "string" || n.toggleEvent.length === 0))
240
+ throw new Error(
241
+ `[design-token-panel] PanelConfig.toggleEvent must be a non-empty string when set (got ${typeof n.toggleEvent})`
242
+ );
243
+ if (n.applyEndpoint !== void 0 && typeof n.applyEndpoint != "string")
170
244
  throw new Error(
171
245
  `[design-token-panel] PanelConfig.applyEndpoint must be a string when set (got ${typeof n.applyEndpoint})`
172
246
  );
@@ -189,7 +263,7 @@ function F(e) {
189
263
  );
190
264
  }
191
265
  }
192
- function b(e) {
266
+ function x(e) {
193
267
  if (!Array.isArray(e))
194
268
  throw new Error("[design-token-panel] PanelConfig.tabs must be an array");
195
269
  const n = /* @__PURE__ */ new Set();
@@ -203,10 +277,10 @@ function b(e) {
203
277
  throw new Error(
204
278
  `[design-token-panel] PanelConfig.tabs: duplicate tab id "${r.id}"`
205
279
  );
206
- n.add(r.id), P(r.id, r);
280
+ n.add(r.id), v(r.id, r);
207
281
  }
208
282
  }
209
- function P(e, n) {
283
+ function v(e, n) {
210
284
  if (!Array.isArray(n.tiers))
211
285
  throw new Error(
212
286
  `[design-token-panel] PanelConfig.tabs["${e}"].tiers must be an array`
@@ -230,103 +304,108 @@ function P(e, n) {
230
304
  throw new Error(
231
305
  `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${o.id}"].items must be an array`
232
306
  );
233
- let a;
234
- for (const f of o.items) {
235
- if (f === null || typeof f != "object" || Array.isArray(f)) continue;
236
- const c = f.type;
237
- if (c === null || typeof c != "object" || Array.isArray(c)) continue;
238
- const i = c.kind;
239
- if (typeof i == "string") {
240
- if (a === void 0)
241
- a = i;
242
- else if (a !== i)
307
+ let i;
308
+ for (const a of o.items) {
309
+ if (a === null || typeof a != "object" || Array.isArray(a)) continue;
310
+ const g = a.type;
311
+ if (g === null || typeof g != "object" || Array.isArray(g)) continue;
312
+ const f = g.kind;
313
+ if (typeof f == "string") {
314
+ if (i === void 0)
315
+ i = f;
316
+ else if (i !== f)
243
317
  throw new Error(
244
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${o.id}"]: mixed item kinds — found "${a}" and "${i}" in the same tier (all items must share the same kind)`
318
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${o.id}"]: mixed item kinds — found "${i}" and "${f}" in the same tier (all items must share the same kind)`
245
319
  );
246
320
  }
247
321
  }
248
- a !== void 0 && r.set(o.id, a);
322
+ i !== void 0 && r.set(o.id, i);
249
323
  }
250
- const g = /* @__PURE__ */ new Set();
324
+ const u = /* @__PURE__ */ new Set();
251
325
  for (const l of n.tiers) {
252
- const o = l, a = o.id;
253
- for (const f of o.items) {
254
- if (f === null || typeof f != "object" || Array.isArray(f))
326
+ const o = l, i = o.id;
327
+ for (const a of o.items) {
328
+ if (a === null || typeof a != "object" || Array.isArray(a))
255
329
  throw new Error(
256
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].items: each item must be a non-null object`
330
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].items: each item must be a non-null object`
257
331
  );
258
- const s = f;
332
+ const s = a;
259
333
  if (typeof s.id != "string" || s.id.length === 0)
260
334
  throw new Error(
261
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].items: each item must have a non-empty string id`
335
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].items: each item must have a non-empty string id`
262
336
  );
263
- if (g.has(s.id))
337
+ if (u.has(s.id))
264
338
  throw new Error(
265
339
  `[design-token-panel] PanelConfig.tabs["${e}"]: duplicate item id "${s.id}" (item ids must be unique across all tiers within a tab)`
266
340
  );
267
- if (g.add(s.id), typeof s.cssVar != "string" || !s.cssVar.startsWith("--"))
341
+ if (u.add(s.id), typeof s.cssVar != "string" || !s.cssVar.startsWith("--"))
268
342
  throw new Error(
269
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].items["${s.id}"].cssVar must start with "--" (got ${JSON.stringify(s.cssVar)})`
343
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].items["${s.id}"].cssVar must start with "--" (got ${JSON.stringify(s.cssVar)})`
270
344
  );
271
345
  if (s.cssVar.length <= 2)
272
346
  throw new Error(
273
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].items["${s.id}"].cssVar must be non-empty after "--"`
347
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].items["${s.id}"].cssVar must be non-empty after "--"`
274
348
  );
275
349
  }
276
350
  }
277
351
  for (const l of n.tiers) {
278
- const o = l, a = o.id;
352
+ const o = l, i = o.id;
279
353
  if (o.referencesTier !== void 0) {
280
354
  if (typeof o.referencesTier != "string")
281
355
  throw new Error(
282
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].referencesTier must be a string`
356
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].referencesTier must be a string`
283
357
  );
284
- const f = o.referencesTier;
285
- if (!t.has(f))
358
+ const a = o.referencesTier;
359
+ if (!t.has(a))
286
360
  throw new Error(
287
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].referencesTier: tier "${f}" does not exist in this tab`
361
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].referencesTier: tier "${a}" does not exist in this tab`
288
362
  );
289
- const s = r.get(a), c = r.get(f);
290
- if (s !== void 0 && c !== void 0 && s !== "text" && s !== c)
363
+ const s = r.get(i), g = r.get(a);
364
+ if (s !== void 0 && g !== void 0 && s !== "text" && s !== g)
291
365
  throw new Error(
292
- `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a}"].referencesTier: referencing tier has kind "${s}" but referenced tier "${f}" has kind "${c}" (cross-kind reference is only allowed when the referencing tier has kind "text")`
366
+ `[design-token-panel] PanelConfig.tabs["${e}"].tiers["${i}"].referencesTier: referencing tier has kind "${s}" but referenced tier "${a}" has kind "${g}" (cross-kind reference is only allowed when the referencing tier has kind "text")`
293
367
  );
294
368
  }
295
369
  }
296
370
  }
297
- function N(e = m()) {
371
+ function Y(e = P()) {
298
372
  return e.applyRouting ?? {};
299
373
  }
300
- function D(e) {
301
- const n = u();
302
- if (n.configuredConfig === null) {
303
- n.pendingColorPresets = e;
374
+ function W(e) {
375
+ const n = p();
376
+ if (n === null) {
377
+ c().pendingColorPresets = e;
304
378
  return;
305
379
  }
306
- n.configuredConfig = { ...n.configuredConfig, colorPresets: e };
380
+ n.config = { ...n.config, colorPresets: e };
307
381
  }
308
382
  export {
309
- S as _,
310
- _ as a,
311
- T as b,
312
- E as c,
313
- x as d,
314
- F as e,
315
- R as f,
316
- m as g,
317
- V as h,
318
- j as i,
319
- k as j,
320
- K as k,
321
- O as l,
322
- $ as m,
323
- M as n,
324
- I as o,
383
+ $ as D,
384
+ H as _,
385
+ M as a,
386
+ O as b,
387
+ R as c,
388
+ z as d,
389
+ J as e,
390
+ N as f,
391
+ P as g,
392
+ I as h,
393
+ K as i,
394
+ T as j,
395
+ A as k,
396
+ F as l,
397
+ D as m,
398
+ q as n,
399
+ U as o,
325
400
  d as p,
326
- N as q,
327
- v as r,
328
- D as s,
329
- y as t,
330
- A as u,
331
- z as v
401
+ Y as q,
402
+ V as r,
403
+ W as s,
404
+ m as t,
405
+ G as u,
406
+ S as v,
407
+ _ as w,
408
+ B as x,
409
+ L as y,
410
+ j as z
332
411
  };
package/dist/panel.d.ts CHANGED
@@ -1,3 +1,19 @@
1
- export default function DesignTokenTweakPanel(): import("preact").JSX.Element;
1
+ import { type PanelConfig } from './config/panel-config';
2
+ /**
3
+ * Props for the panel shell.
4
+ *
5
+ * `instanceConfig` is the FULL registered config of the instance this mounted
6
+ * tree belongs to (issue #354). The adapter (`index.tsx`) passes it at
7
+ * `render(...)` time. The panel reads its OWN open key, visible key,
8
+ * per-instance open-state sync-event name, AND its OWN tabs from this config —
9
+ * so two panels on one page read/write distinct storage keys, listen on
10
+ * distinct sync events, and render distinct manifests, never cross-talking.
11
+ * Omitted (e.g. a direct test render) → the active/default instance, preserving
12
+ * the historical single-panel behaviour.
13
+ */
14
+ interface DesignTokenTweakPanelProps {
15
+ instanceConfig?: PanelConfig;
16
+ }
17
+ export default function DesignTokenTweakPanel({ instanceConfig: instanceConfigProp, }?: DesignTokenTweakPanelProps): import("preact").JSX.Element;
2
18
  export type { TweakState } from './state/tweak-state';
3
19
  //# sourceMappingURL=panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.tsx"],"names":[],"mappings":"AA2GA,MAAM,CAAC,OAAO,UAAU,qBAAqB,iCA6qB5C;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.tsx"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAkG/B;;;;;;;;;;;GAWG;AACH,UAAU,0BAA0B;IAClC,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,cAAc,EAAE,kBAAkB,GACnC,GAAE,0BAA+B,gCAguBjC;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -13,8 +13,19 @@
13
13
  * In practice the panel passes Preact's `setState` from `useState`.
14
14
  */
15
15
  import { type ColorTweakState, type TabOverrides, type TokenOverrides, type TweakState } from './tweak-state';
16
+ import type { PanelConfig } from '../config/panel-config';
16
17
  type SetState<T> = (updater: (prev: T | null) => T | null) => void;
17
- export declare function usePersist(setState: SetState<TweakState>): {
18
+ /**
19
+ * `usePersist` hook.
20
+ *
21
+ * Accepts an optional `cfg` — the panel instance config. When supplied its
22
+ * `applySink` (if any) routes every CSS-var write through the sink instead
23
+ * of `document.documentElement`, AND its `storagePrefix` scopes the persisted
24
+ * envelope to THIS instance's storage key (multi-instance, #357). Omitting
25
+ * `cfg` resolves the default instance via `getPanelConfig()` inside both
26
+ * `applyFullState` and `savePersistedState`, preserving the single-panel path.
27
+ */
28
+ export declare function usePersist(setState: SetState<TweakState>, cfg?: PanelConfig): {
18
29
  persist: (updater: (prev: TweakState) => TweakState) => void;
19
30
  persistTab: (tabId: string, updater: (prev: TabOverrides) => TabOverrides) => void;
20
31
  persistColor: (updater: (prev: ColorTweakState) => ColorTweakState) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../src/state/persist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAEvB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAEnE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;uBAE3C,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU;wBAqBlC,MAAM,WAAW,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY;4BAiBnD,CAAC,IAAI,EAAE,eAAe,KAAK,eAAe;8BAO1C,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;iCAOxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;2BAAxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;2BAOxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;oCAOxC,CAAC,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,eAAe,CAAC;gCAYlE,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,KAAK,eAAe,GAAG,SAAS;EA6B/E;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACnF,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACzF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../src/state/persist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAEnE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW;uBAE9D,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU;wBAuBlC,MAAM,WAAW,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY;4BAiBnD,CAAC,IAAI,EAAE,eAAe,KAAK,eAAe;8BAO1C,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;iCAOxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;2BAAxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;2BAOxC,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc;oCAOxC,CAAC,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC,eAAe,CAAC;gCAYlE,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,KAAK,eAAe,GAAG,SAAS;EA6B/E;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACnF,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACzF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC"}