@takazudo/zdtp 0.4.14 → 0.4.15
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/CHANGELOG.md +132 -0
- package/PORTABLE-CONTRACT.md +360 -89
- package/README.md +217 -95
- package/dist/apply/build-apply-overrides.d.ts +2 -2
- package/dist/apply/compute-hunks.d.ts +23 -0
- package/dist/apply/last-applied.d.ts +5 -0
- package/dist/apply/reconcile-applied.d.ts +19 -0
- package/dist/apply-modal.d.ts +2 -48
- package/dist/astro/host-adapter.js +3 -3
- package/dist/astro/index.js +2 -2
- package/dist/{autoload-state-IlkEci88.js → autoload-state-7BQYXI7Y.js} +1 -1
- package/dist/bin/server.js +52 -50
- package/dist/bulk/bulk-actions.d.ts +45 -0
- package/dist/bulk/index.d.ts +2 -0
- package/dist/chain/index.d.ts +2 -0
- package/dist/chain/token-chain-context.d.ts +19 -0
- package/dist/chain/token-chain-popover.d.ts +22 -0
- package/dist/changed/contribution.d.ts +32 -0
- package/dist/changed/footer-content.d.ts +16 -0
- package/dist/changed/index.d.ts +4 -0
- package/dist/changed/tab-badge.d.ts +8 -0
- package/dist/changed/tab-filter.d.ts +8 -0
- package/dist/config/panel-config.d.ts +22 -0
- package/dist/controls/actions-menu-popover.d.ts +2 -0
- package/dist/controls/role-button.d.ts +5 -2
- package/dist/controls/tooltip.d.ts +8 -4
- package/dist/element-inspect/element-inspect-context.d.ts +22 -0
- package/dist/element-inspect/element-inspect-orchestrator.d.ts +17 -0
- package/dist/element-inspect/element-inspect-overlay.d.ts +16 -0
- package/dist/element-inspect/element-inspect-toggle-button.d.ts +3 -0
- package/dist/element-inspect/element-inspect-view.d.ts +6 -0
- package/dist/element-inspect/find-tokens-for-element.d.ts +23 -0
- package/dist/element-inspect/index.d.ts +8 -0
- package/dist/highlight/find-elements.d.ts +14 -3
- package/dist/highlight/highlight-orchestrator.d.ts +7 -3
- package/dist/highlight/highlight-state.d.ts +3 -2
- package/dist/highlight/highlight-toggle-button.d.ts +3 -0
- package/dist/highlight/walk-css-rules.d.ts +2 -0
- package/dist/history/buttons.d.ts +28 -0
- package/dist/history/index.d.ts +3 -0
- package/dist/history/rail.d.ts +13 -0
- package/dist/history/snapshots.d.ts +57 -0
- package/dist/host/host-mutations.d.ts +23 -0
- package/dist/index-BOOmFtJh.js +12165 -0
- package/dist/{index-EdhZv8Ru.js → index-C2DIYD0d.js} +2 -2
- package/dist/index.js +14 -14
- package/dist/load-routing-BtCE1hGI.js +547 -0
- package/dist/{manifest-DCReQE0k.js → manifest-DvuKi7I4.js} +11 -7
- package/dist/{panel-config-SgA84Uqe.js → panel-config-CRf-ONSV.js} +396 -321
- package/dist/picker/alt-click-picker.d.ts +10 -2
- package/dist/picker/arming-coordinator.d.ts +2 -0
- package/dist/picker/index.d.ts +2 -2
- package/dist/search/command-palette.d.ts +21 -0
- package/dist/search/contribution.d.ts +7 -0
- package/dist/search/fuzzy.d.ts +10 -0
- package/dist/search/index.d.ts +4 -0
- package/dist/search/match-bar.d.ts +14 -0
- package/dist/search/search-header.d.ts +7 -0
- package/dist/search/token-search.d.ts +36 -0
- package/dist/server/create-apply-handler.d.ts +33 -0
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.js +1 -1
- package/dist/shell/dock-mode-switch.d.ts +6 -0
- package/dist/shell/footer.d.ts +1 -0
- package/dist/shell/ghost-idle.d.ts +24 -0
- package/dist/shell/header.d.ts +5 -0
- package/dist/shell/layer-activity.d.ts +6 -0
- package/dist/shell/mini-pill.d.ts +21 -0
- package/dist/shell/regions.d.ts +26 -0
- package/dist/shell/shortcut-dispatcher.d.ts +17 -0
- package/dist/shell/tab-bar.d.ts +17 -0
- package/dist/shell/tab-overflow-popover.d.ts +13 -0
- package/dist/specimen/on-page-specimen.d.ts +19 -0
- package/dist/specimen/preview-glyphs.d.ts +2 -0
- package/dist/specimen/specimen-state.d.ts +12 -0
- package/dist/specimen/specimen-tab-body.d.ts +18 -0
- package/dist/specimen/specimen-toolbar.d.ts +10 -0
- package/dist/specimen/specimen-values.d.ts +9 -0
- package/dist/state/history.d.ts +64 -0
- package/dist/state/persist.d.ts +10 -14
- package/dist/state/transaction.d.ts +24 -0
- package/dist/state/tweak-state.d.ts +16 -0
- package/dist/styles/z-index-tokens.d.ts +2 -0
- package/dist/tabs/color-tab.d.ts +10 -1
- package/dist/tabs/flat/flat-tab.d.ts +27 -0
- package/dist/tabs/flat/index.d.ts +8 -0
- package/dist/tabs/flat/scroll-to-token-row.d.ts +3 -0
- package/dist/tabs/flat/tier-section.d.ts +17 -0
- package/dist/tabs/flat/token-controller.d.ts +23 -0
- package/dist/tabs/flat/token-row.d.ts +12 -0
- package/dist/tabs/flat/types.d.ts +25 -0
- package/dist/tabs/font-tab.d.ts +13 -12
- package/dist/tabs/generic-tab.d.ts +8 -38
- package/dist/tabs/palette/palette-check-view.d.ts +5 -1
- package/dist/tabs/palette/palette-edit-view.d.ts +9 -1
- package/dist/tabs/palette/palette-tab.d.ts +12 -1
- package/dist/tabs/size-tab.d.ts +7 -10
- package/dist/tabs/spacing-tab.d.ts +7 -13
- package/dist/testing.js +3 -3
- package/dist/tokens/tier-model.d.ts +6 -0
- package/dist/{tweak-state-DGLrzIwq.js → tweak-state-BGp_7Tfh.js} +473 -423
- package/dist/utils/numeric-transform.d.ts +32 -0
- package/dist/utils/token-diff.d.ts +25 -0
- package/dist/utils/token-graph.d.ts +23 -0
- package/dist/utils/token-index.d.ts +30 -0
- package/dist/zdtp.css +1 -1
- package/package.json +3 -1
- package/dist/controls/pill-slider-row.d.ts +0 -36
- package/dist/controls/select-row.d.ts +0 -25
- package/dist/controls/slider-row.d.ts +0 -29
- package/dist/controls/text-row.d.ts +0 -27
- package/dist/index-Ds4bCeiC.js +0 -7591
- package/dist/load-routing-D4H2VOl5.js +0 -426
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
class
|
|
1
|
+
class k extends Error {
|
|
2
2
|
constructor(t) {
|
|
3
|
-
super(t), this.name = "TierResolverError", Object.setPrototypeOf(this,
|
|
3
|
+
super(t), this.name = "TierResolverError", Object.setPrototypeOf(this, k.prototype);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function A(e, t) {
|
|
7
7
|
return e.tiers.find((n) => n.id === t);
|
|
8
8
|
}
|
|
9
9
|
function $(e, t) {
|
|
10
10
|
return e.items.find((n) => n.id === t);
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
15
|
-
throw new
|
|
16
|
-
`Tier "${t}" not found in tab "${e.id}". Available tiers: ${e.tiers.map((
|
|
12
|
+
function I(e, t, n, i) {
|
|
13
|
+
const u = A(e, t);
|
|
14
|
+
if (!u)
|
|
15
|
+
throw new k(
|
|
16
|
+
`Tier "${t}" not found in tab "${e.id}". Available tiers: ${e.tiers.map((f) => f.id).join(", ")}.`
|
|
17
17
|
);
|
|
18
|
-
const
|
|
19
|
-
if (!
|
|
20
|
-
throw new
|
|
18
|
+
const d = $(u, n);
|
|
19
|
+
if (!d)
|
|
20
|
+
throw new k(
|
|
21
21
|
`Item "${n}" not found in tier "${t}" of tab "${e.id}".`
|
|
22
22
|
);
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
const
|
|
26
|
-
if (!
|
|
27
|
-
throw new
|
|
28
|
-
`Tier "${t}" declares referencesTier "${
|
|
23
|
+
const r = i[t]?.[n];
|
|
24
|
+
if (u.referencesTier !== void 0) {
|
|
25
|
+
const f = u.referencesTier, l = A(e, f);
|
|
26
|
+
if (!l)
|
|
27
|
+
throw new k(
|
|
28
|
+
`Tier "${t}" declares referencesTier "${f}" but that tier does not exist in tab "${e.id}".`
|
|
29
29
|
);
|
|
30
|
-
const
|
|
31
|
-
if (!
|
|
32
|
-
const
|
|
33
|
-
if (!
|
|
34
|
-
throw new
|
|
35
|
-
`Referenced tier "${
|
|
30
|
+
const a = $(l, r ?? n);
|
|
31
|
+
if (!a) {
|
|
32
|
+
const g = $(l, d.default) ?? $(l, n) ?? l.items[0];
|
|
33
|
+
if (!g)
|
|
34
|
+
throw new k(
|
|
35
|
+
`Referenced tier "${f}" has no items; cannot resolve fallback for item "${n}" in tier "${t}" of tab "${e.id}".`
|
|
36
36
|
);
|
|
37
|
-
return { kind: "ref", targetCssVar:
|
|
37
|
+
return { kind: "ref", targetCssVar: g.cssVar };
|
|
38
38
|
}
|
|
39
|
-
return { kind: "ref", targetCssVar:
|
|
39
|
+
return { kind: "ref", targetCssVar: a.cssVar };
|
|
40
40
|
}
|
|
41
|
-
return
|
|
41
|
+
return r !== void 0 ? d.pill && r === d.pill.value ? { kind: "literal", value: d.pill.value } : { kind: "literal", value: r } : d.pill ? { kind: "literal", value: d.pill.customDefault } : { kind: "literal", value: d.default };
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function ee(e) {
|
|
44
44
|
return e.kind === "literal" ? e.value : `var(${e.targetCssVar})`;
|
|
45
45
|
}
|
|
46
46
|
function N(e, t, n = [t]) {
|
|
47
47
|
const i = e.tab === void 0 || e.tab === t.id ? t : n.find((s) => s.id === e.tab);
|
|
48
48
|
if (!i)
|
|
49
|
-
throw new
|
|
49
|
+
throw new k(
|
|
50
50
|
`Cross-tab ref target tab "${e.tab}" not found. Available tabs: ${n.map((s) => s.id).join(", ")}.`
|
|
51
51
|
);
|
|
52
|
-
const
|
|
53
|
-
if (!
|
|
54
|
-
throw new
|
|
52
|
+
const u = A(i, e.tier);
|
|
53
|
+
if (!u)
|
|
54
|
+
throw new k(
|
|
55
55
|
`Cross-tab ref target tier "${e.tier}" not found in tab "${i.id}". Available tiers: ${i.tiers.map((s) => s.id).join(", ")}.`
|
|
56
56
|
);
|
|
57
|
-
const
|
|
58
|
-
if (!
|
|
59
|
-
throw new
|
|
60
|
-
`Cross-tab ref target item "${e.item}" not found in tier "${e.tier}" of tab "${i.id}". Available items: ${
|
|
57
|
+
const d = $(u, e.item);
|
|
58
|
+
if (!d)
|
|
59
|
+
throw new k(
|
|
60
|
+
`Cross-tab ref target item "${e.item}" not found in tier "${e.tier}" of tab "${i.id}". Available items: ${u.items.map((s) => s.id).join(", ")}.`
|
|
61
61
|
);
|
|
62
|
-
return
|
|
62
|
+
return d.cssVar;
|
|
63
63
|
}
|
|
64
|
-
function
|
|
64
|
+
function te(e, t) {
|
|
65
65
|
return e.paletteCssVarTemplate.replace("{n}", String(t));
|
|
66
66
|
}
|
|
67
|
-
const
|
|
67
|
+
const M = /* @__PURE__ */ new Set([
|
|
68
68
|
"aliceblue",
|
|
69
69
|
"antiquewhite",
|
|
70
70
|
"aqua",
|
|
@@ -221,39 +221,39 @@ const z = /* @__PURE__ */ new Set([
|
|
|
221
221
|
"revert",
|
|
222
222
|
"revert-layer"
|
|
223
223
|
]);
|
|
224
|
-
function
|
|
225
|
-
return e.startsWith("#") || e.includes("(") ||
|
|
226
|
-
}
|
|
227
|
-
function
|
|
228
|
-
const
|
|
229
|
-
if (
|
|
230
|
-
const
|
|
231
|
-
|
|
224
|
+
function D(e) {
|
|
225
|
+
return e.startsWith("#") || e.includes("(") || M.has(e.toLowerCase());
|
|
226
|
+
}
|
|
227
|
+
function H(e, t, n, i) {
|
|
228
|
+
const u = [], d = e.indexOf(":");
|
|
229
|
+
if (d !== -1) {
|
|
230
|
+
const r = e.slice(0, d), f = e.slice(d + 1), l = t.find((o) => o.tier === r);
|
|
231
|
+
l && u.push({ tab: l.tab, tier: l.tier, item: f });
|
|
232
232
|
}
|
|
233
233
|
const [s] = t;
|
|
234
|
-
|
|
235
|
-
for (const
|
|
234
|
+
u.push({ tab: s.tab, tier: s.tier, item: e });
|
|
235
|
+
for (const r of u)
|
|
236
236
|
try {
|
|
237
|
-
return N(
|
|
237
|
+
return N(r, n, i), { ref: r };
|
|
238
238
|
} catch {
|
|
239
239
|
}
|
|
240
|
-
return { ref:
|
|
240
|
+
return { ref: u[0] };
|
|
241
241
|
}
|
|
242
|
-
function L(e, t, n, i,
|
|
242
|
+
function L(e, t, n, i, u, d) {
|
|
243
243
|
const s = t.get(e.default);
|
|
244
|
-
return s !== void 0 ? s : e.default === "bg" || e.default === "fg" ? e.default : n && n.length > 0 && !
|
|
244
|
+
return s !== void 0 ? s : e.default === "bg" || e.default === "fg" ? e.default : n && n.length > 0 && !D(e.default) ? H(e.default, n, i, u) : d ? (console.warn(
|
|
245
245
|
`[design-token-panel] semantic item "${e.id}" default "${e.default}" names no palette item; falling back to palette index 0`
|
|
246
246
|
), 0) : { literal: e.default };
|
|
247
247
|
}
|
|
248
|
-
function
|
|
248
|
+
function V(e, t = [e]) {
|
|
249
249
|
const n = e.colorExtras;
|
|
250
250
|
if (!n) return;
|
|
251
251
|
const i = e.tiers.find(
|
|
252
|
-
(
|
|
253
|
-
),
|
|
254
|
-
(
|
|
252
|
+
(a) => !a.referencesTier && !a.semantic && a.items.length > 0 && a.items[0].type.kind === "color"
|
|
253
|
+
), u = e.tiers.find(
|
|
254
|
+
(a) => i && a.referencesTier === i.id || a.semantic === !0
|
|
255
255
|
);
|
|
256
|
-
if (!i && !
|
|
256
|
+
if (!i && !u)
|
|
257
257
|
return {
|
|
258
258
|
id: n.id,
|
|
259
259
|
label: n.label,
|
|
@@ -267,20 +267,20 @@ function O(e, t = [e]) {
|
|
|
267
267
|
colorSchemes: n.colorSchemes,
|
|
268
268
|
panelSettings: n.panelSettings
|
|
269
269
|
};
|
|
270
|
-
const
|
|
271
|
-
for (let
|
|
272
|
-
|
|
273
|
-
const
|
|
274
|
-
if (
|
|
275
|
-
const
|
|
276
|
-
for (const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
270
|
+
const d = i?.items ?? [], s = d.length, r = d[0] ? d[0].cssVar.replace(/\d+$/, "{n}") : "--zudo-stub-p{n}", f = /* @__PURE__ */ new Map();
|
|
271
|
+
for (let a = 0; a < d.length; a++)
|
|
272
|
+
f.set(d[a].id, a);
|
|
273
|
+
const l = {}, o = {};
|
|
274
|
+
if (u) {
|
|
275
|
+
const a = !u.semantic, g = n.semanticDefaults;
|
|
276
|
+
for (const c of u.items)
|
|
277
|
+
o[c.id] = c.cssVar, l[c.id] = g && c.id in g ? g[c.id] : L(
|
|
278
|
+
c,
|
|
279
|
+
f,
|
|
280
|
+
u.referencesRamps,
|
|
281
281
|
e,
|
|
282
282
|
t,
|
|
283
|
-
|
|
283
|
+
a
|
|
284
284
|
);
|
|
285
285
|
}
|
|
286
286
|
return {
|
|
@@ -288,43 +288,43 @@ function O(e, t = [e]) {
|
|
|
288
288
|
label: n.label,
|
|
289
289
|
paletteSize: s,
|
|
290
290
|
baseRoles: n.baseRoles,
|
|
291
|
-
paletteCssVarTemplate:
|
|
292
|
-
semanticDefaults:
|
|
293
|
-
semanticCssNames:
|
|
291
|
+
paletteCssVarTemplate: r,
|
|
292
|
+
semanticDefaults: l,
|
|
293
|
+
semanticCssNames: o,
|
|
294
294
|
baseDefaults: n.baseDefaults,
|
|
295
295
|
defaultShikiTheme: n.defaultShikiTheme,
|
|
296
296
|
colorSchemes: n.colorSchemes,
|
|
297
297
|
panelSettings: n.panelSettings
|
|
298
298
|
};
|
|
299
299
|
}
|
|
300
|
-
function
|
|
300
|
+
function ne(e) {
|
|
301
301
|
const t = e.find((n) => n.id === "color");
|
|
302
302
|
if (t)
|
|
303
|
-
return
|
|
303
|
+
return V(t, e);
|
|
304
304
|
}
|
|
305
|
-
function
|
|
305
|
+
function B(e) {
|
|
306
306
|
const t = e.find((n) => n.id === "color-secondary");
|
|
307
|
-
return t ?
|
|
307
|
+
return t ? V(t, e) ?? null : null;
|
|
308
308
|
}
|
|
309
|
-
function
|
|
309
|
+
function x(e, t) {
|
|
310
310
|
if (Object.is(e, t)) return !0;
|
|
311
311
|
if (e === null || t === null || typeof e != typeof t || typeof e != "object") return !1;
|
|
312
312
|
if (Array.isArray(e)) {
|
|
313
313
|
if (!Array.isArray(t) || e.length !== t.length) return !1;
|
|
314
|
-
for (let
|
|
315
|
-
if (!
|
|
314
|
+
for (let d = 0; d < e.length; d++)
|
|
315
|
+
if (!x(e[d], t[d])) return !1;
|
|
316
316
|
return !0;
|
|
317
317
|
}
|
|
318
318
|
if (Array.isArray(t)) return !1;
|
|
319
319
|
const n = Object.keys(e), i = Object.keys(t);
|
|
320
320
|
if (n.length !== i.length) return !1;
|
|
321
|
-
const
|
|
322
|
-
for (const
|
|
323
|
-
if (!
|
|
321
|
+
const u = new Set(i);
|
|
322
|
+
for (const d of n)
|
|
323
|
+
if (!u.has(d) || !x(e[d], t[d]))
|
|
324
324
|
return !1;
|
|
325
325
|
return !0;
|
|
326
326
|
}
|
|
327
|
-
const
|
|
327
|
+
const _ = {
|
|
328
328
|
storagePrefix: "zudo-design-token-panel",
|
|
329
329
|
consoleNamespace: "zudo",
|
|
330
330
|
modalClassPrefix: "zudo-design-token-panel-modal",
|
|
@@ -349,7 +349,7 @@ function m() {
|
|
|
349
349
|
colorSchemeOwners: /* @__PURE__ */ new Set()
|
|
350
350
|
}, e[R] = t), t;
|
|
351
351
|
}
|
|
352
|
-
function
|
|
352
|
+
function F(e) {
|
|
353
353
|
return {
|
|
354
354
|
instanceId: e,
|
|
355
355
|
open() {
|
|
@@ -371,7 +371,7 @@ function J(e) {
|
|
|
371
371
|
}
|
|
372
372
|
};
|
|
373
373
|
}
|
|
374
|
-
function
|
|
374
|
+
function re(e) {
|
|
375
375
|
m().lifecycleHooks = {
|
|
376
376
|
configured: e.configured,
|
|
377
377
|
open: e.open,
|
|
@@ -380,41 +380,41 @@ function ne(e) {
|
|
|
380
380
|
destroy: e.destroy
|
|
381
381
|
};
|
|
382
382
|
}
|
|
383
|
-
function
|
|
383
|
+
function oe(e) {
|
|
384
384
|
const t = m(), n = e.storagePrefix, i = t.instances.get(n);
|
|
385
385
|
if (i) {
|
|
386
|
-
const
|
|
387
|
-
if (
|
|
386
|
+
const l = (o) => ({ ...o, applySink: void 0 });
|
|
387
|
+
if (x(l(i.suppliedConfig), l(e)))
|
|
388
388
|
return t.defaultPrefix = n, i.handle;
|
|
389
389
|
throw new Error(
|
|
390
390
|
`[design-token-panel] configurePanel() was already called with different values for storagePrefix "${n}". 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.)`
|
|
391
391
|
);
|
|
392
392
|
}
|
|
393
|
-
const
|
|
393
|
+
const u = t.pendingColorPresets, d = u ? { ...e, colorPresets: u } : { ...e };
|
|
394
394
|
t.pendingColorPresets = null;
|
|
395
|
-
const s = t.instances.size === 0,
|
|
395
|
+
const s = t.instances.size === 0, r = s ? [...t.pendingPostConfigureHooks] : [];
|
|
396
396
|
s && (t.pendingPostConfigureHooks.length = 0);
|
|
397
|
-
const
|
|
398
|
-
config:
|
|
397
|
+
const f = {
|
|
398
|
+
config: d,
|
|
399
399
|
// Snapshot the as-supplied config before any runtime merges. Used by the
|
|
400
400
|
// idempotency guard so view-transition re-calls with the original inline
|
|
401
401
|
// config keep passing even after setPanelColorPresets mutates `config`.
|
|
402
402
|
suppliedConfig: { ...e },
|
|
403
403
|
pendingColorPresets: null,
|
|
404
|
-
postConfigureHooks:
|
|
405
|
-
handle:
|
|
404
|
+
postConfigureHooks: r,
|
|
405
|
+
handle: F(n)
|
|
406
406
|
};
|
|
407
|
-
t.instances.set(n,
|
|
408
|
-
for (const
|
|
409
|
-
|
|
410
|
-
return t.lifecycleHooks.configured?.(n),
|
|
407
|
+
t.instances.set(n, f), t.defaultPrefix = n;
|
|
408
|
+
for (const l of f.postConfigureHooks)
|
|
409
|
+
l();
|
|
410
|
+
return t.lifecycleHooks.configured?.(n), f.handle;
|
|
411
411
|
}
|
|
412
|
-
function
|
|
412
|
+
function S() {
|
|
413
413
|
const e = m();
|
|
414
414
|
return e.defaultPrefix === null ? null : e.instances.get(e.defaultPrefix) ?? null;
|
|
415
415
|
}
|
|
416
|
-
function
|
|
417
|
-
const t =
|
|
416
|
+
function ie(e) {
|
|
417
|
+
const t = S();
|
|
418
418
|
if (t === null) {
|
|
419
419
|
const n = m();
|
|
420
420
|
if (n.pendingPostConfigureHooks.includes(e)) return;
|
|
@@ -423,96 +423,111 @@ function oe(e) {
|
|
|
423
423
|
}
|
|
424
424
|
t.postConfigureHooks.includes(e) || (t.postConfigureHooks.push(e), e());
|
|
425
425
|
}
|
|
426
|
-
function
|
|
427
|
-
return
|
|
426
|
+
function j() {
|
|
427
|
+
return S()?.config ?? _;
|
|
428
428
|
}
|
|
429
|
-
function
|
|
429
|
+
function se() {
|
|
430
430
|
return [...m().instances.values()].map((e) => e.config);
|
|
431
431
|
}
|
|
432
|
-
function
|
|
432
|
+
function ae(e) {
|
|
433
433
|
return m().instances.get(e)?.config ?? null;
|
|
434
434
|
}
|
|
435
|
-
function
|
|
435
|
+
function le() {
|
|
436
436
|
const e = m();
|
|
437
|
-
e.instances.clear(), e.defaultPrefix = null, e.pendingColorPresets = null, e.pendingPostConfigureHooks.length = 0,
|
|
437
|
+
e.instances.clear(), e.defaultPrefix = null, e.pendingColorPresets = null, e.pendingPostConfigureHooks.length = 0, v().clear();
|
|
438
438
|
}
|
|
439
|
-
function
|
|
439
|
+
function v() {
|
|
440
440
|
const e = m();
|
|
441
441
|
return e.colorSchemeOwners || (e.colorSchemeOwners = /* @__PURE__ */ new Set()), e.colorSchemeOwners;
|
|
442
442
|
}
|
|
443
|
-
function le(e) {
|
|
444
|
-
A().add(e);
|
|
445
|
-
}
|
|
446
443
|
function fe(e) {
|
|
447
|
-
|
|
444
|
+
v().add(e);
|
|
448
445
|
}
|
|
449
446
|
function ce(e) {
|
|
450
|
-
|
|
447
|
+
v().delete(e);
|
|
451
448
|
}
|
|
452
|
-
function ge(e
|
|
453
|
-
return
|
|
449
|
+
function ge(e) {
|
|
450
|
+
return v().has(e);
|
|
454
451
|
}
|
|
455
|
-
function de(e) {
|
|
456
|
-
return
|
|
452
|
+
function de(e = j()) {
|
|
453
|
+
return B(e.tabs);
|
|
457
454
|
}
|
|
458
455
|
function ue(e) {
|
|
459
|
-
return `${e.storagePrefix}-state-
|
|
456
|
+
return `${e.storagePrefix}-state-v2`;
|
|
460
457
|
}
|
|
461
458
|
function pe(e) {
|
|
462
|
-
return `${e.storagePrefix}-state-
|
|
459
|
+
return `${e.storagePrefix}-state-v3`;
|
|
463
460
|
}
|
|
464
461
|
function ye(e) {
|
|
465
|
-
return `${e.storagePrefix}-state`;
|
|
462
|
+
return `${e.storagePrefix}-state-v4`;
|
|
466
463
|
}
|
|
467
464
|
function me(e) {
|
|
468
|
-
return `${e.storagePrefix}-
|
|
465
|
+
return `${e.storagePrefix}-state`;
|
|
469
466
|
}
|
|
470
467
|
function he(e) {
|
|
471
|
-
return `${e.storagePrefix}-
|
|
468
|
+
return `${e.storagePrefix}-open`;
|
|
472
469
|
}
|
|
473
470
|
function we(e) {
|
|
474
|
-
return `${e.storagePrefix}-
|
|
471
|
+
return `${e.storagePrefix}-position`;
|
|
475
472
|
}
|
|
476
473
|
function be(e) {
|
|
477
|
-
return `${e.storagePrefix}-
|
|
474
|
+
return `${e.storagePrefix}-size`;
|
|
478
475
|
}
|
|
479
476
|
function ke(e) {
|
|
480
|
-
return `${e.storagePrefix}
|
|
477
|
+
return `${e.storagePrefix}-dock`;
|
|
481
478
|
}
|
|
482
479
|
function $e(e) {
|
|
483
|
-
return `${e.storagePrefix}
|
|
480
|
+
return `${e.storagePrefix}-dock-size`;
|
|
484
481
|
}
|
|
485
482
|
function Ce(e) {
|
|
486
|
-
return `${e.storagePrefix}-
|
|
483
|
+
return `${e.storagePrefix}-density`;
|
|
487
484
|
}
|
|
488
|
-
const q = V.storagePrefix, G = "toggle-design-token-panel";
|
|
489
485
|
function Pe(e) {
|
|
490
|
-
return
|
|
486
|
+
return `${e.storagePrefix}-specimen`;
|
|
487
|
+
}
|
|
488
|
+
function Ee(e, t) {
|
|
489
|
+
return `${e.storagePrefix}-snapshot-${t}`;
|
|
490
|
+
}
|
|
491
|
+
function ve(e) {
|
|
492
|
+
return `${e.storagePrefix}-last-applied`;
|
|
493
|
+
}
|
|
494
|
+
function Ae(e) {
|
|
495
|
+
return `${e.storagePrefix}:visible`;
|
|
496
|
+
}
|
|
497
|
+
function xe(e) {
|
|
498
|
+
return `${e.storagePrefix}:autoload`;
|
|
499
|
+
}
|
|
500
|
+
function Se(e) {
|
|
501
|
+
return `${e.storagePrefix}-root`;
|
|
502
|
+
}
|
|
503
|
+
const J = _.storagePrefix, q = "toggle-design-token-panel";
|
|
504
|
+
function je(e) {
|
|
505
|
+
return e.storagePrefix === J ? q : e.toggleEvent ?? `toggle-${e.storagePrefix}`;
|
|
491
506
|
}
|
|
492
|
-
const
|
|
493
|
-
function
|
|
494
|
-
return `${
|
|
507
|
+
const G = "__zdtp:open-state-changed";
|
|
508
|
+
function Te(e) {
|
|
509
|
+
return `${G}:${e.storagePrefix}`;
|
|
495
510
|
}
|
|
496
|
-
function
|
|
511
|
+
function Oe(e, t) {
|
|
497
512
|
return `${e.modalClassPrefix}${t}`;
|
|
498
513
|
}
|
|
499
|
-
function
|
|
514
|
+
function Re(e) {
|
|
500
515
|
return `${e.exportFilenameBase}.json`;
|
|
501
516
|
}
|
|
502
|
-
const
|
|
503
|
-
function
|
|
517
|
+
const z = /* @__PURE__ */ Symbol.for("@takazudo/zdtp:global-alias-marker");
|
|
518
|
+
function K(e) {
|
|
504
519
|
return typeof e == "object" && e !== null || typeof e == "function";
|
|
505
520
|
}
|
|
506
521
|
function U(e) {
|
|
507
|
-
if (!
|
|
522
|
+
if (!K(e)) return !1;
|
|
508
523
|
try {
|
|
509
|
-
return e[
|
|
524
|
+
return e[z] === !0;
|
|
510
525
|
} catch {
|
|
511
526
|
return !1;
|
|
512
527
|
}
|
|
513
528
|
}
|
|
514
529
|
function W(e) {
|
|
515
|
-
if (!
|
|
530
|
+
if (!K(e)) return !1;
|
|
516
531
|
try {
|
|
517
532
|
const t = e;
|
|
518
533
|
return typeof t.show == "function" && typeof t.hide == "function" && typeof t.toggle == "function";
|
|
@@ -520,7 +535,7 @@ function W(e) {
|
|
|
520
535
|
return !1;
|
|
521
536
|
}
|
|
522
537
|
}
|
|
523
|
-
function
|
|
538
|
+
function Ve(e) {
|
|
524
539
|
if (typeof window > "u") return;
|
|
525
540
|
const t = window, n = t.zdtp;
|
|
526
541
|
if (n !== void 0) {
|
|
@@ -532,9 +547,9 @@ function Se(e) {
|
|
|
532
547
|
return;
|
|
533
548
|
}
|
|
534
549
|
const i = { ...e };
|
|
535
|
-
i[
|
|
550
|
+
i[z] = !0, t.zdtp = i;
|
|
536
551
|
}
|
|
537
|
-
function
|
|
552
|
+
function _e(e) {
|
|
538
553
|
if (e === null || typeof e != "object" || Array.isArray(e))
|
|
539
554
|
throw new Error("[design-token-panel] PanelConfig must be a non-null object");
|
|
540
555
|
const t = e;
|
|
@@ -586,6 +601,18 @@ function xe(e) {
|
|
|
586
601
|
);
|
|
587
602
|
}
|
|
588
603
|
}
|
|
604
|
+
if (t.dock !== void 0) {
|
|
605
|
+
if (t.dock === null || typeof t.dock != "object" || Array.isArray(t.dock))
|
|
606
|
+
throw new Error("[design-token-panel] PanelConfig.dock must be a plain object");
|
|
607
|
+
const n = t.dock;
|
|
608
|
+
for (const i of Object.keys(n))
|
|
609
|
+
if (i !== "reflow")
|
|
610
|
+
throw new Error(`[design-token-panel] PanelConfig.dock.${i} is not a supported field`);
|
|
611
|
+
if (n.reflow !== void 0 && n.reflow !== "body-margin" && n.reflow !== "none")
|
|
612
|
+
throw new Error(
|
|
613
|
+
'[design-token-panel] PanelConfig.dock.reflow must be "body-margin" or "none" when set'
|
|
614
|
+
);
|
|
615
|
+
}
|
|
589
616
|
if (t.autoRememberOnOpen !== void 0 && typeof t.autoRememberOnOpen != "boolean")
|
|
590
617
|
throw new Error(
|
|
591
618
|
`[design-token-panel] PanelConfig.autoRememberOnOpen must be a boolean when set (got ${typeof t.autoRememberOnOpen})`
|
|
@@ -614,7 +641,7 @@ function Z(e) {
|
|
|
614
641
|
throw new Error(
|
|
615
642
|
`[design-token-panel] PanelConfig.tabs: duplicate tab id "${i.id}"`
|
|
616
643
|
);
|
|
617
|
-
t.add(i.id),
|
|
644
|
+
t.add(i.id), Q(i.id, i, e);
|
|
618
645
|
}
|
|
619
646
|
}
|
|
620
647
|
function Y(e) {
|
|
@@ -636,191 +663,230 @@ function Y(e) {
|
|
|
636
663
|
}
|
|
637
664
|
return !1;
|
|
638
665
|
}
|
|
639
|
-
function
|
|
666
|
+
function Q(e, t, n) {
|
|
640
667
|
if (!Array.isArray(t.tiers))
|
|
641
668
|
throw new Error(
|
|
642
669
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers must be an array`
|
|
643
670
|
);
|
|
644
|
-
const i = /* @__PURE__ */ new Set(),
|
|
671
|
+
const i = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
|
|
645
672
|
for (const s of t.tiers) {
|
|
646
673
|
if (s === null || typeof s != "object" || Array.isArray(s))
|
|
647
674
|
throw new Error(
|
|
648
675
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers: each tier must be a non-null object`
|
|
649
676
|
);
|
|
650
|
-
const
|
|
651
|
-
if (typeof
|
|
677
|
+
const r = s;
|
|
678
|
+
if (typeof r.id != "string" || r.id.length === 0)
|
|
652
679
|
throw new Error(
|
|
653
680
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers: each tier must have a non-empty string id`
|
|
654
681
|
);
|
|
655
|
-
if (i.has(
|
|
682
|
+
if (i.has(r.id))
|
|
656
683
|
throw new Error(
|
|
657
|
-
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate tier id "${
|
|
684
|
+
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate tier id "${r.id}"`
|
|
658
685
|
);
|
|
659
|
-
if (i.add(
|
|
686
|
+
if (i.add(r.id), r.semantic !== void 0 && r.semantic !== !0)
|
|
660
687
|
throw new Error(
|
|
661
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
688
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"].semantic must be exactly \`true\` when present (got ${JSON.stringify(r.semantic)})`
|
|
662
689
|
);
|
|
663
|
-
|
|
690
|
+
const f = /* @__PURE__ */ new Set([
|
|
691
|
+
"size",
|
|
692
|
+
"line-height",
|
|
693
|
+
"family",
|
|
694
|
+
"weight",
|
|
695
|
+
"bar",
|
|
696
|
+
"radius",
|
|
697
|
+
"duration"
|
|
698
|
+
]);
|
|
699
|
+
if (r.preview !== void 0 && !f.has(r.preview))
|
|
664
700
|
throw new Error(
|
|
665
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
701
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"].preview has unsupported value ${JSON.stringify(r.preview)}`
|
|
702
|
+
);
|
|
703
|
+
if (r.previewBase !== void 0 && (typeof r.previewBase != "string" || !r.previewBase.startsWith("--") || r.previewBase.length <= 2))
|
|
704
|
+
throw new Error(
|
|
705
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"].previewBase must be a CSS custom property name`
|
|
706
|
+
);
|
|
707
|
+
if (r.previewBase !== void 0 && r.preview !== "line-height")
|
|
708
|
+
throw new Error(
|
|
709
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"].previewBase is only valid with preview "line-height"`
|
|
710
|
+
);
|
|
711
|
+
if (!Array.isArray(r.items))
|
|
712
|
+
throw new Error(
|
|
713
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"].items must be an array`
|
|
666
714
|
);
|
|
667
715
|
let l;
|
|
668
|
-
for (const
|
|
669
|
-
if (f === null || typeof f != "object" || Array.isArray(f)) continue;
|
|
670
|
-
const o = f.type;
|
|
716
|
+
for (const o of r.items) {
|
|
671
717
|
if (o === null || typeof o != "object" || Array.isArray(o)) continue;
|
|
672
|
-
const
|
|
673
|
-
if (typeof
|
|
718
|
+
const g = o.type;
|
|
719
|
+
if (g === null || typeof g != "object" || Array.isArray(g)) continue;
|
|
720
|
+
const c = g.kind;
|
|
721
|
+
if (typeof c == "string") {
|
|
674
722
|
if (l === void 0)
|
|
675
|
-
l =
|
|
676
|
-
else if (l !==
|
|
723
|
+
l = c;
|
|
724
|
+
else if (l !== c)
|
|
677
725
|
throw new Error(
|
|
678
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
726
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r.id}"]: mixed item kinds — found "${l}" and "${c}" in the same tier (all items must share the same kind)`
|
|
679
727
|
);
|
|
680
728
|
}
|
|
681
729
|
}
|
|
682
|
-
l !== void 0 &&
|
|
730
|
+
l !== void 0 && u.set(r.id, l);
|
|
683
731
|
}
|
|
684
|
-
const
|
|
732
|
+
const d = /* @__PURE__ */ new Set();
|
|
685
733
|
for (const s of t.tiers) {
|
|
686
|
-
const
|
|
687
|
-
for (const
|
|
688
|
-
if (
|
|
734
|
+
const r = s, f = r.id;
|
|
735
|
+
for (const l of r.items) {
|
|
736
|
+
if (l === null || typeof l != "object" || Array.isArray(l))
|
|
689
737
|
throw new Error(
|
|
690
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
738
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items: each item must be a non-null object`
|
|
691
739
|
);
|
|
692
|
-
const
|
|
693
|
-
if (typeof
|
|
740
|
+
const o = l;
|
|
741
|
+
if (typeof o.id != "string" || o.id.length === 0)
|
|
694
742
|
throw new Error(
|
|
695
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
743
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items: each item must have a non-empty string id`
|
|
696
744
|
);
|
|
697
|
-
if (
|
|
745
|
+
if (d.has(o.id))
|
|
698
746
|
throw new Error(
|
|
699
|
-
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate item id "${
|
|
747
|
+
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate item id "${o.id}" (item ids must be unique across all tiers within a tab)`
|
|
700
748
|
);
|
|
701
|
-
if (
|
|
749
|
+
if (d.add(o.id), typeof o.cssVar != "string" || !o.cssVar.startsWith("--"))
|
|
702
750
|
throw new Error(
|
|
703
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
751
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items["${o.id}"].cssVar must start with "--" (got ${JSON.stringify(o.cssVar)})`
|
|
704
752
|
);
|
|
705
|
-
if (
|
|
753
|
+
if (o.cssVar.length <= 2)
|
|
706
754
|
throw new Error(
|
|
707
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
755
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items["${o.id}"].cssVar must be non-empty after "--"`
|
|
708
756
|
);
|
|
709
|
-
const
|
|
710
|
-
if (
|
|
711
|
-
const
|
|
712
|
-
if (!Array.isArray(
|
|
757
|
+
const a = o.type;
|
|
758
|
+
if (a !== null && typeof a == "object" && !Array.isArray(a) && a.kind === "length" && a.units !== void 0) {
|
|
759
|
+
const g = a.units;
|
|
760
|
+
if (!Array.isArray(g))
|
|
713
761
|
throw new Error(
|
|
714
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
762
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items["${o.id}"].type.units must be an array`
|
|
715
763
|
);
|
|
716
|
-
const
|
|
717
|
-
for (const p of
|
|
764
|
+
const c = /* @__PURE__ */ new Set();
|
|
765
|
+
for (const p of g) {
|
|
718
766
|
if (typeof p != "string" || p.length === 0)
|
|
719
767
|
throw new Error(
|
|
720
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
768
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items["${o.id}"].type.units entries must be non-empty strings (got ${JSON.stringify(p)})`
|
|
721
769
|
);
|
|
722
|
-
if (
|
|
770
|
+
if (c.has(p))
|
|
723
771
|
throw new Error(
|
|
724
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
772
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].items["${o.id}"].type.units: duplicate unit ${JSON.stringify(p)}`
|
|
725
773
|
);
|
|
726
|
-
|
|
774
|
+
c.add(p);
|
|
727
775
|
}
|
|
728
776
|
}
|
|
729
777
|
}
|
|
730
778
|
}
|
|
731
779
|
for (const s of t.tiers) {
|
|
732
|
-
const
|
|
733
|
-
if (
|
|
734
|
-
if (typeof
|
|
780
|
+
const r = s, f = r.id;
|
|
781
|
+
if (r.referencesTier !== void 0) {
|
|
782
|
+
if (typeof r.referencesTier != "string")
|
|
735
783
|
throw new Error(
|
|
736
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
784
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesTier must be a string`
|
|
737
785
|
);
|
|
738
|
-
const
|
|
739
|
-
if (!i.has(
|
|
786
|
+
const l = r.referencesTier;
|
|
787
|
+
if (!i.has(l))
|
|
740
788
|
throw new Error(
|
|
741
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
789
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesTier: tier "${l}" does not exist in this tab`
|
|
742
790
|
);
|
|
743
|
-
const
|
|
744
|
-
if (
|
|
791
|
+
const o = u.get(f), a = u.get(l);
|
|
792
|
+
if (o !== void 0 && a !== void 0 && o !== "text" && o !== a)
|
|
745
793
|
throw new Error(
|
|
746
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
794
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesTier: referencing tier has kind "${o}" but referenced tier "${l}" has kind "${a}" (cross-kind reference is only allowed when the referencing tier has kind "text")`
|
|
747
795
|
);
|
|
748
796
|
}
|
|
749
797
|
}
|
|
750
798
|
for (const s of t.tiers) {
|
|
751
|
-
const
|
|
752
|
-
if (
|
|
753
|
-
|
|
799
|
+
const r = s, f = r.id, l = r.preview;
|
|
800
|
+
if (l === void 0) continue;
|
|
801
|
+
const o = u.get(f), a = typeof r.referencesTier == "string" ? u.get(r.referencesTier) : void 0, g = (c) => {
|
|
802
|
+
throw new Error(
|
|
803
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].preview "${l}" requires ${c}`
|
|
804
|
+
);
|
|
805
|
+
};
|
|
806
|
+
if (l === "size" && (r.referencesTier === void 0 ? o !== "length" : a !== "length") && g("a length tier or a reference tier resolving to length"), l === "line-height" && o !== "number" && g("a number tier"), l === "family" && o !== "text" && g("a text tier"), l === "weight" && o !== "select" && o !== "number" && g("a select or number tier"), (l === "bar" || l === "radius") && o !== "length" && g("a length tier"), l === "duration") {
|
|
807
|
+
o !== "length" && o !== "number" && g('a length or number tier with unit "ms" or "s"');
|
|
808
|
+
for (const c of r.items) {
|
|
809
|
+
if (c === null || typeof c != "object" || Array.isArray(c))
|
|
810
|
+
continue;
|
|
811
|
+
const p = c.type, h = p !== null && typeof p == "object" && !Array.isArray(p) ? p.unit : void 0;
|
|
812
|
+
h !== "ms" && h !== "s" && g('a length or number tier with unit "ms" or "s"');
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
for (const s of t.tiers) {
|
|
817
|
+
const r = s, f = r.id;
|
|
818
|
+
if (r.referencesRamps === void 0) continue;
|
|
819
|
+
if (r.semantic !== !0)
|
|
754
820
|
throw new Error(
|
|
755
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
821
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps is only valid on a tier with semantic: true`
|
|
756
822
|
);
|
|
757
|
-
if (!Array.isArray(
|
|
823
|
+
if (!Array.isArray(r.referencesRamps))
|
|
758
824
|
throw new Error(
|
|
759
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
825
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps must be an array`
|
|
760
826
|
);
|
|
761
827
|
if (e !== "color" && e !== "color-secondary")
|
|
762
828
|
throw new Error(
|
|
763
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
829
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps is only supported on tabs with id "color" or "color-secondary" (got "${e}")`
|
|
764
830
|
);
|
|
765
|
-
const
|
|
766
|
-
for (let
|
|
767
|
-
const
|
|
768
|
-
if (
|
|
831
|
+
const l = u.get(f), o = r.referencesRamps;
|
|
832
|
+
for (let a = 0; a < o.length; a++) {
|
|
833
|
+
const g = o[a];
|
|
834
|
+
if (g === null || typeof g != "object" || Array.isArray(g))
|
|
769
835
|
throw new Error(
|
|
770
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
836
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}] must be a non-null object`
|
|
771
837
|
);
|
|
772
|
-
const
|
|
773
|
-
if (typeof
|
|
838
|
+
const c = g;
|
|
839
|
+
if (typeof c.tier != "string" || c.tier.length === 0)
|
|
774
840
|
throw new Error(
|
|
775
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
841
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}].tier must be a non-empty string`
|
|
776
842
|
);
|
|
777
|
-
if (
|
|
843
|
+
if (c.tab !== void 0 && (typeof c.tab != "string" || c.tab.length === 0))
|
|
778
844
|
throw new Error(
|
|
779
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
845
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}].tab must be a non-empty string when set`
|
|
780
846
|
);
|
|
781
|
-
const p =
|
|
782
|
-
let
|
|
847
|
+
const p = c.tab === void 0 ? e : c.tab;
|
|
848
|
+
let h;
|
|
783
849
|
if (p === e)
|
|
784
|
-
|
|
850
|
+
h = t;
|
|
785
851
|
else {
|
|
786
|
-
const
|
|
852
|
+
const b = n.find(
|
|
787
853
|
(y) => y !== null && typeof y == "object" && !Array.isArray(y) && y.id === p
|
|
788
854
|
);
|
|
789
|
-
if (!
|
|
790
|
-
const y = n.filter((
|
|
855
|
+
if (!b) {
|
|
856
|
+
const y = n.filter((w) => w !== null && typeof w == "object" && !Array.isArray(w)).map((w) => w.id).join(", ");
|
|
791
857
|
throw new Error(
|
|
792
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
858
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}]: tab "${p}" does not exist. Available tabs: ${y}.`
|
|
793
859
|
);
|
|
794
860
|
}
|
|
795
|
-
|
|
861
|
+
h = b;
|
|
796
862
|
}
|
|
797
|
-
const C = Array.isArray(
|
|
863
|
+
const C = Array.isArray(h.tiers) ? h.tiers : [], T = [];
|
|
798
864
|
let P;
|
|
799
|
-
for (const
|
|
800
|
-
if (
|
|
801
|
-
const y =
|
|
802
|
-
typeof y.id == "string" && (T.push(y.id), y.id ===
|
|
865
|
+
for (const b of C) {
|
|
866
|
+
if (b === null || typeof b != "object" || Array.isArray(b)) continue;
|
|
867
|
+
const y = b;
|
|
868
|
+
typeof y.id == "string" && (T.push(y.id), y.id === c.tier && (P = y));
|
|
803
869
|
}
|
|
804
870
|
if (!P)
|
|
805
871
|
throw new Error(
|
|
806
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
872
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}]: tier "${c.tier}" does not exist in tab "${p}". Available tiers: ${T.join(", ")}.`
|
|
807
873
|
);
|
|
808
|
-
if (
|
|
809
|
-
const
|
|
874
|
+
if (l !== void 0) {
|
|
875
|
+
const b = Array.isArray(P.items) ? P.items : [];
|
|
810
876
|
let y;
|
|
811
|
-
for (const
|
|
812
|
-
if (
|
|
813
|
-
const E =
|
|
877
|
+
for (const w of b) {
|
|
878
|
+
if (w === null || typeof w != "object" || Array.isArray(w)) continue;
|
|
879
|
+
const E = w.type;
|
|
814
880
|
if (E === null || typeof E != "object" || Array.isArray(E)) continue;
|
|
815
|
-
const
|
|
816
|
-
if (typeof
|
|
817
|
-
y =
|
|
881
|
+
const O = E.kind;
|
|
882
|
+
if (typeof O == "string") {
|
|
883
|
+
y = O;
|
|
818
884
|
break;
|
|
819
885
|
}
|
|
820
886
|
}
|
|
821
|
-
if (y !== void 0 &&
|
|
887
|
+
if (y !== void 0 && l !== y)
|
|
822
888
|
throw new Error(
|
|
823
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
889
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${f}"].referencesRamps[${a}]: referencing semantic tier has kind "${l}" but target tier "${c.tier}" in tab "${p}" has kind "${y}" (cross-tab ramp sources must share the semantic tier's kind)`
|
|
824
890
|
);
|
|
825
891
|
}
|
|
826
892
|
}
|
|
@@ -831,39 +897,39 @@ function X(e, t, n) {
|
|
|
831
897
|
throw new Error(
|
|
832
898
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras must be a plain object`
|
|
833
899
|
);
|
|
834
|
-
for (const
|
|
835
|
-
if (typeof s[
|
|
900
|
+
for (const o of ["id", "defaultShikiTheme"])
|
|
901
|
+
if (typeof s[o] != "string" || s[o].length === 0)
|
|
836
902
|
throw new Error(
|
|
837
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${
|
|
903
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${o} must be a non-empty string (got ${typeof s[o]})`
|
|
838
904
|
);
|
|
839
|
-
for (const
|
|
840
|
-
if (s[
|
|
905
|
+
for (const o of ["colorSchemes", "baseRoles", "baseDefaults"])
|
|
906
|
+
if (s[o] === void 0 || s[o] === null || typeof s[o] != "object" || Array.isArray(s[o]))
|
|
841
907
|
throw new Error(
|
|
842
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${
|
|
908
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${o} must be a plain object`
|
|
843
909
|
);
|
|
844
910
|
if (s.panelSettings === void 0 || s.panelSettings === null || typeof s.panelSettings != "object" || Array.isArray(s.panelSettings))
|
|
845
911
|
throw new Error(
|
|
846
912
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings must be a plain object`
|
|
847
913
|
);
|
|
848
|
-
const
|
|
849
|
-
if (typeof
|
|
914
|
+
const r = s.panelSettings;
|
|
915
|
+
if (typeof r.colorScheme != "string" || r.colorScheme.length === 0)
|
|
850
916
|
throw new Error(
|
|
851
917
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorScheme must be a non-empty string`
|
|
852
918
|
);
|
|
853
|
-
if (
|
|
854
|
-
if (
|
|
919
|
+
if (r.colorMode !== !1) {
|
|
920
|
+
if (r.colorMode === null || typeof r.colorMode != "object" || Array.isArray(r.colorMode))
|
|
855
921
|
throw new Error(
|
|
856
922
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode must be false or a plain object`
|
|
857
923
|
);
|
|
858
|
-
const
|
|
859
|
-
for (const
|
|
860
|
-
if (typeof
|
|
924
|
+
const o = r.colorMode;
|
|
925
|
+
for (const a of ["lightScheme", "darkScheme"])
|
|
926
|
+
if (typeof o[a] != "string" || o[a].length === 0)
|
|
861
927
|
throw new Error(
|
|
862
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.${
|
|
928
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.${a} must be a non-empty string`
|
|
863
929
|
);
|
|
864
|
-
if (
|
|
930
|
+
if (o.defaultMode !== "light" && o.defaultMode !== "dark")
|
|
865
931
|
throw new Error(
|
|
866
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.defaultMode must be "light" or "dark" (got ${JSON.stringify(
|
|
932
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.defaultMode must be "light" or "dark" (got ${JSON.stringify(o.defaultMode)})`
|
|
867
933
|
);
|
|
868
934
|
}
|
|
869
935
|
if (s.semanticDefaults !== void 0) {
|
|
@@ -871,37 +937,37 @@ function X(e, t, n) {
|
|
|
871
937
|
throw new Error(
|
|
872
938
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults must be a plain object`
|
|
873
939
|
);
|
|
874
|
-
const
|
|
875
|
-
for (const [
|
|
876
|
-
if (!Y(
|
|
940
|
+
const o = s.semanticDefaults;
|
|
941
|
+
for (const [a, g] of Object.entries(o))
|
|
942
|
+
if (!Y(g))
|
|
877
943
|
throw new Error(
|
|
878
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults["${
|
|
944
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults["${a}"] must be a valid SemanticValue (number | 'bg' | 'fg' | { literal: string } | { literal: { light, dark } } | { ref: { tier, item, tab? } }), got ${JSON.stringify(g)}`
|
|
879
945
|
);
|
|
880
946
|
}
|
|
881
|
-
const
|
|
882
|
-
if (
|
|
883
|
-
const
|
|
884
|
-
if (!Array.isArray(
|
|
885
|
-
const
|
|
886
|
-
if (
|
|
887
|
-
const
|
|
888
|
-
return
|
|
947
|
+
const l = t.tiers.find((o) => {
|
|
948
|
+
if (o.referencesTier !== void 0 || o.semantic === !0) return !1;
|
|
949
|
+
const a = o.items;
|
|
950
|
+
if (!Array.isArray(a) || a.length === 0) return !1;
|
|
951
|
+
const g = a[0];
|
|
952
|
+
if (g === null || typeof g != "object" || Array.isArray(g)) return !1;
|
|
953
|
+
const c = g.type;
|
|
954
|
+
return c === null || typeof c != "object" || Array.isArray(c) ? !1 : c.kind === "color";
|
|
889
955
|
});
|
|
890
|
-
if (
|
|
891
|
-
const
|
|
892
|
-
if (
|
|
893
|
-
const
|
|
894
|
-
if (
|
|
895
|
-
for (let p = 0; p <
|
|
896
|
-
const
|
|
897
|
-
if (
|
|
956
|
+
if (l) {
|
|
957
|
+
const o = l.id, a = l.items, g = a[0]?.cssVar;
|
|
958
|
+
if (g !== void 0) {
|
|
959
|
+
const c = g.replace(/\d+$/, "{n}");
|
|
960
|
+
if (c.includes("{n}"))
|
|
961
|
+
for (let p = 0; p < a.length; p++) {
|
|
962
|
+
const h = a[p], C = c.replace("{n}", String(p));
|
|
963
|
+
if (h.cssVar !== C)
|
|
898
964
|
throw new Error(
|
|
899
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
965
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${o}"].items[${p}].cssVar is ${JSON.stringify(h.cssVar)} but expected ${JSON.stringify(C)} — palette item cssVars must share one prefix and be numbered 0..n-1 in tier order (template derived from first item: ${JSON.stringify(c)})`
|
|
900
966
|
);
|
|
901
967
|
}
|
|
902
|
-
else if (
|
|
968
|
+
else if (a.length > 1)
|
|
903
969
|
throw new Error(
|
|
904
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
970
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${o}"].items[0].cssVar ${JSON.stringify(g)} has no trailing digit — palette item cssVars must share one prefix and be numbered 0..n-1 in tier order (e.g. "--pal-0" … "--pal-15")`
|
|
905
971
|
);
|
|
906
972
|
}
|
|
907
973
|
}
|
|
@@ -920,21 +986,24 @@ function X(e, t, n) {
|
|
|
920
986
|
'[design-token-panel] PanelConfig.tabs["notes"].notesExtras must be a plain object with { title, html }'
|
|
921
987
|
);
|
|
922
988
|
const s = t.notesExtras;
|
|
923
|
-
for (const
|
|
924
|
-
if (typeof s[
|
|
989
|
+
for (const r of ["title", "html"])
|
|
990
|
+
if (typeof s[r] != "string" || s[r].length === 0)
|
|
925
991
|
throw new Error(
|
|
926
|
-
`[design-token-panel] PanelConfig.tabs["notes"].notesExtras.${
|
|
992
|
+
`[design-token-panel] PanelConfig.tabs["notes"].notesExtras.${r} must be a non-empty string (got ${typeof s[r]})`
|
|
927
993
|
);
|
|
928
994
|
} else if (t.notesExtras !== void 0)
|
|
929
995
|
throw new Error(
|
|
930
996
|
`[design-token-panel] PanelConfig.tabs["${e}"].notesExtras must only be set on a tab with id "notes"`
|
|
931
997
|
);
|
|
932
998
|
}
|
|
933
|
-
function
|
|
999
|
+
function X(e = j()) {
|
|
934
1000
|
return e.applyRouting ?? {};
|
|
935
1001
|
}
|
|
936
|
-
function
|
|
937
|
-
|
|
1002
|
+
function ze(e = j()) {
|
|
1003
|
+
return !!e.applyEndpoint && Object.keys(X(e)).length > 0;
|
|
1004
|
+
}
|
|
1005
|
+
function Ke(e) {
|
|
1006
|
+
const t = S();
|
|
938
1007
|
if (t === null) {
|
|
939
1008
|
m().pendingColorPresets = e;
|
|
940
1009
|
return;
|
|
@@ -942,42 +1011,48 @@ function je(e) {
|
|
|
942
1011
|
t.config = { ...t.config, colorPresets: e };
|
|
943
1012
|
}
|
|
944
1013
|
export {
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1014
|
+
N as A,
|
|
1015
|
+
V as B,
|
|
1016
|
+
x as C,
|
|
1017
|
+
Re as D,
|
|
1018
|
+
X as E,
|
|
1019
|
+
ze as F,
|
|
1020
|
+
ve as G,
|
|
1021
|
+
Ee as H,
|
|
1022
|
+
Pe as I,
|
|
1023
|
+
Te as J,
|
|
1024
|
+
re as K,
|
|
1025
|
+
ie as L,
|
|
1026
|
+
je as M,
|
|
1027
|
+
q as N,
|
|
1028
|
+
se as O,
|
|
1029
|
+
ae as P,
|
|
1030
|
+
Se as Q,
|
|
1031
|
+
le as _,
|
|
1032
|
+
Ae as a,
|
|
1033
|
+
_e as b,
|
|
1034
|
+
oe as c,
|
|
1035
|
+
he as d,
|
|
1036
|
+
we as e,
|
|
1037
|
+
me as f,
|
|
1038
|
+
j as g,
|
|
1039
|
+
ue as h,
|
|
1040
|
+
Ve as i,
|
|
1041
|
+
xe as j,
|
|
1042
|
+
ye as k,
|
|
1043
|
+
pe as l,
|
|
1044
|
+
Oe as m,
|
|
1045
|
+
ce as n,
|
|
1046
|
+
de as o,
|
|
1047
|
+
I as p,
|
|
1048
|
+
ee as q,
|
|
1049
|
+
ne as r,
|
|
1050
|
+
Ke as s,
|
|
1051
|
+
be as t,
|
|
1052
|
+
Ce as u,
|
|
1053
|
+
$e as v,
|
|
1054
|
+
ke as w,
|
|
1055
|
+
te as x,
|
|
1056
|
+
fe as y,
|
|
1057
|
+
ge as z
|
|
983
1058
|
};
|