@takazudo/zdtp 0.4.7 → 0.4.9
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 +31 -0
- package/dist/astro/host-adapter.js +42 -42
- package/dist/astro/index.js +1 -1
- package/dist/autoload-state-CFmRjtD-.js +64 -0
- package/dist/config/panel-config.d.ts +21 -0
- package/dist/controls/actions-menu-popover.d.ts +3 -2
- package/dist/controls/help-icon.d.ts +5 -8
- package/dist/dom-tweaker/dom-tweaker-context.d.ts +21 -0
- package/dist/dom-tweaker/dom-tweaker-diff-action-link.d.ts +7 -0
- package/dist/dom-tweaker/dom-tweaker-orchestrator.d.ts +17 -0
- package/dist/dom-tweaker/dom-tweaker-state.d.ts +18 -0
- package/dist/dom-tweaker/dom-tweaker-toggle-button.d.ts +9 -0
- package/dist/dom-tweaker/lazy/class-editor-popup.d.ts +14 -0
- package/dist/dom-tweaker/lazy/diff-export-modal.d.ts +10 -0
- package/dist/dom-tweaker/lazy/edit-session.d.ts +19 -0
- package/dist/dom-tweaker/lazy/index.d.ts +24 -0
- package/dist/dom-tweaker/lazy/pinned-selection-overlay.d.ts +31 -0
- package/dist/dom-tweaker/lazy/style-injection.d.ts +2 -0
- package/dist/dom-tweaker/lazy/suggestions.d.ts +32 -0
- package/dist/dom-tweaker/lazy/tailwind-runtime.d.ts +20 -0
- package/dist/element-path/inspector-overlay.d.ts +10 -9
- package/dist/highlight/find-elements.d.ts +4 -3
- package/dist/index-CGev6ZiI.js +4141 -0
- package/dist/index-t74PT2zd.js +7542 -0
- package/dist/index.global-Cc-vinUf.js +5387 -0
- package/dist/index.global-DdZgM26F.js +4 -0
- package/dist/index.js +35 -7186
- package/dist/{panel-config-Bw7D-25C.js → panel-config-BNLlUc_r.js} +232 -212
- package/dist/picker/alt-click-picker.d.ts +51 -0
- package/dist/picker/arming-coordinator.d.ts +16 -0
- package/dist/picker/index.d.ts +4 -0
- package/dist/tabs/color-tab.d.ts +4 -1
- package/dist/testing.js +2 -2
- package/dist/{tweak-state-CD1y56zR.js → tweak-state-Dti6XMoQ.js} +1 -1
- package/dist/zdtp.css +1 -1
- package/package.json +4 -2
- package/dist/autoload-state-D26ML6sW.js +0 -46
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
class
|
|
1
|
+
class b extends Error {
|
|
2
2
|
constructor(t) {
|
|
3
|
-
super(t), this.name = "TierResolverError", Object.setPrototypeOf(this,
|
|
3
|
+
super(t), this.name = "TierResolverError", Object.setPrototypeOf(this, b.prototype);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
6
|
function A(e, t) {
|
|
@@ -9,55 +9,55 @@ function A(e, t) {
|
|
|
9
9
|
function $(e, t) {
|
|
10
10
|
return e.items.find((n) => n.id === t);
|
|
11
11
|
}
|
|
12
|
-
function Y(e, t, n,
|
|
12
|
+
function Y(e, t, n, i) {
|
|
13
13
|
const g = A(e, t);
|
|
14
14
|
if (!g)
|
|
15
|
-
throw new
|
|
15
|
+
throw new b(
|
|
16
16
|
`Tier "${t}" not found in tab "${e.id}". Available tiers: ${e.tiers.map((l) => l.id).join(", ")}.`
|
|
17
17
|
);
|
|
18
18
|
const c = $(g, n);
|
|
19
19
|
if (!c)
|
|
20
|
-
throw new
|
|
20
|
+
throw new b(
|
|
21
21
|
`Item "${n}" not found in tier "${t}" of tab "${e.id}".`
|
|
22
22
|
);
|
|
23
|
-
const
|
|
23
|
+
const a = i[t]?.[n];
|
|
24
24
|
if (g.referencesTier !== void 0) {
|
|
25
25
|
const l = g.referencesTier, f = A(e, l);
|
|
26
26
|
if (!f)
|
|
27
|
-
throw new
|
|
27
|
+
throw new b(
|
|
28
28
|
`Tier "${t}" declares referencesTier "${l}" but that tier does not exist in tab "${e.id}".`
|
|
29
29
|
);
|
|
30
|
-
const
|
|
31
|
-
if (!
|
|
32
|
-
const
|
|
33
|
-
if (!
|
|
34
|
-
throw new
|
|
30
|
+
const o = $(f, a ?? n);
|
|
31
|
+
if (!o) {
|
|
32
|
+
const d = $(f, c.default) ?? $(f, n) ?? f.items[0];
|
|
33
|
+
if (!d)
|
|
34
|
+
throw new b(
|
|
35
35
|
`Referenced tier "${l}" 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: d.cssVar };
|
|
38
38
|
}
|
|
39
|
-
return { kind: "ref", targetCssVar:
|
|
39
|
+
return { kind: "ref", targetCssVar: o.cssVar };
|
|
40
40
|
}
|
|
41
|
-
return
|
|
41
|
+
return a !== void 0 ? c.pill && a === c.pill.value ? { kind: "literal", value: c.pill.value } : { kind: "literal", value: a } : c.pill ? { kind: "literal", value: c.pill.customDefault } : { kind: "literal", value: c.default };
|
|
42
42
|
}
|
|
43
43
|
function Z(e) {
|
|
44
44
|
return e.kind === "literal" ? e.value : `var(${e.targetCssVar})`;
|
|
45
45
|
}
|
|
46
46
|
function M(e, t, n = [t]) {
|
|
47
|
-
const
|
|
48
|
-
if (!
|
|
49
|
-
throw new
|
|
50
|
-
`Cross-tab ref target tab "${e.tab}" not found. Available tabs: ${n.map((
|
|
47
|
+
const i = e.tab === void 0 || e.tab === t.id ? t : n.find((s) => s.id === e.tab);
|
|
48
|
+
if (!i)
|
|
49
|
+
throw new b(
|
|
50
|
+
`Cross-tab ref target tab "${e.tab}" not found. Available tabs: ${n.map((s) => s.id).join(", ")}.`
|
|
51
51
|
);
|
|
52
|
-
const g = A(
|
|
52
|
+
const g = A(i, e.tier);
|
|
53
53
|
if (!g)
|
|
54
|
-
throw new
|
|
55
|
-
`Cross-tab ref target tier "${e.tier}" not found in tab "${
|
|
54
|
+
throw new b(
|
|
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
57
|
const c = $(g, e.item);
|
|
58
58
|
if (!c)
|
|
59
|
-
throw new
|
|
60
|
-
`Cross-tab ref target item "${e.item}" not found in tier "${e.tier}" of tab "${
|
|
59
|
+
throw new b(
|
|
60
|
+
`Cross-tab ref target item "${e.item}" not found in tier "${e.tier}" of tab "${i.id}". Available items: ${g.items.map((s) => s.id).join(", ")}.`
|
|
61
61
|
);
|
|
62
62
|
return c.cssVar;
|
|
63
63
|
}
|
|
@@ -224,36 +224,36 @@ const N = /* @__PURE__ */ new Set([
|
|
|
224
224
|
function z(e) {
|
|
225
225
|
return e.startsWith("#") || e.includes("(") || N.has(e.toLowerCase());
|
|
226
226
|
}
|
|
227
|
-
function H(e, t, n,
|
|
227
|
+
function H(e, t, n, i) {
|
|
228
228
|
const g = [], c = e.indexOf(":");
|
|
229
229
|
if (c !== -1) {
|
|
230
|
-
const
|
|
230
|
+
const a = e.slice(0, c), l = e.slice(c + 1), f = t.find((r) => r.tier === a);
|
|
231
231
|
f && g.push({ tab: f.tab, tier: f.tier, item: l });
|
|
232
232
|
}
|
|
233
|
-
const [
|
|
234
|
-
g.push({ tab:
|
|
235
|
-
for (const
|
|
233
|
+
const [s] = t;
|
|
234
|
+
g.push({ tab: s.tab, tier: s.tier, item: e });
|
|
235
|
+
for (const a of g)
|
|
236
236
|
try {
|
|
237
|
-
return M(
|
|
237
|
+
return M(a, n, i), { ref: a };
|
|
238
238
|
} catch {
|
|
239
239
|
}
|
|
240
240
|
return { ref: g[0] };
|
|
241
241
|
}
|
|
242
|
-
function K(e, t, n,
|
|
243
|
-
const
|
|
244
|
-
return
|
|
242
|
+
function K(e, t, n, i, g, c) {
|
|
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 && !z(e.default) ? H(e.default, n, i, g) : c ? (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
248
|
function V(e, t = [e]) {
|
|
249
249
|
const n = e.colorExtras;
|
|
250
250
|
if (!n) return;
|
|
251
|
-
const
|
|
252
|
-
(
|
|
251
|
+
const i = e.tiers.find(
|
|
252
|
+
(o) => !o.referencesTier && !o.semantic && o.items.length > 0 && o.items[0].type.kind === "color"
|
|
253
253
|
), g = e.tiers.find(
|
|
254
|
-
(
|
|
254
|
+
(o) => i && o.referencesTier === i.id || o.semantic === !0
|
|
255
255
|
);
|
|
256
|
-
if (!
|
|
256
|
+
if (!i && !g)
|
|
257
257
|
return {
|
|
258
258
|
id: n.id,
|
|
259
259
|
label: n.label,
|
|
@@ -267,28 +267,28 @@ function V(e, t = [e]) {
|
|
|
267
267
|
colorSchemes: n.colorSchemes,
|
|
268
268
|
panelSettings: n.panelSettings
|
|
269
269
|
};
|
|
270
|
-
const c =
|
|
271
|
-
for (let
|
|
272
|
-
l.set(c[
|
|
270
|
+
const c = i?.items ?? [], s = c.length, a = c[0] ? c[0].cssVar.replace(/\d+$/, "{n}") : "--zudo-stub-p{n}", l = /* @__PURE__ */ new Map();
|
|
271
|
+
for (let o = 0; o < c.length; o++)
|
|
272
|
+
l.set(c[o].id, o);
|
|
273
273
|
const f = {}, r = {};
|
|
274
274
|
if (g) {
|
|
275
|
-
const
|
|
276
|
-
for (const
|
|
277
|
-
r[
|
|
278
|
-
|
|
275
|
+
const o = !g.semantic, d = n.semanticDefaults;
|
|
276
|
+
for (const u of g.items)
|
|
277
|
+
r[u.id] = u.cssVar, f[u.id] = d && u.id in d ? d[u.id] : K(
|
|
278
|
+
u,
|
|
279
279
|
l,
|
|
280
280
|
g.referencesRamps,
|
|
281
281
|
e,
|
|
282
282
|
t,
|
|
283
|
-
|
|
283
|
+
o
|
|
284
284
|
);
|
|
285
285
|
}
|
|
286
286
|
return {
|
|
287
287
|
id: n.id,
|
|
288
288
|
label: n.label,
|
|
289
|
-
paletteSize:
|
|
289
|
+
paletteSize: s,
|
|
290
290
|
baseRoles: n.baseRoles,
|
|
291
|
-
paletteCssVarTemplate:
|
|
291
|
+
paletteCssVarTemplate: a,
|
|
292
292
|
semanticDefaults: f,
|
|
293
293
|
semanticCssNames: r,
|
|
294
294
|
baseDefaults: n.baseDefaults,
|
|
@@ -316,9 +316,9 @@ function S(e, t) {
|
|
|
316
316
|
return !0;
|
|
317
317
|
}
|
|
318
318
|
if (Array.isArray(t)) return !1;
|
|
319
|
-
const n = Object.keys(e),
|
|
320
|
-
if (n.length !==
|
|
321
|
-
const g = new Set(
|
|
319
|
+
const n = Object.keys(e), i = Object.keys(t);
|
|
320
|
+
if (n.length !== i.length) return !1;
|
|
321
|
+
const g = new Set(i);
|
|
322
322
|
for (const c of n)
|
|
323
323
|
if (!g.has(c) || !S(e[c], t[c]))
|
|
324
324
|
return !1;
|
|
@@ -381,19 +381,19 @@ function I(e) {
|
|
|
381
381
|
};
|
|
382
382
|
}
|
|
383
383
|
function ee(e) {
|
|
384
|
-
const t = m(), n = e.storagePrefix,
|
|
385
|
-
if (
|
|
384
|
+
const t = m(), n = e.storagePrefix, i = t.instances.get(n);
|
|
385
|
+
if (i) {
|
|
386
386
|
const f = (r) => ({ ...r, applySink: void 0 });
|
|
387
|
-
if (S(f(
|
|
388
|
-
return t.defaultPrefix = n,
|
|
387
|
+
if (S(f(i.suppliedConfig), f(e)))
|
|
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
393
|
const g = t.pendingColorPresets, c = g ? { ...e, colorPresets: g } : { ...e };
|
|
394
394
|
t.pendingColorPresets = null;
|
|
395
|
-
const
|
|
396
|
-
|
|
395
|
+
const s = t.instances.size === 0, a = s ? [...t.pendingPostConfigureHooks] : [];
|
|
396
|
+
s && (t.pendingPostConfigureHooks.length = 0);
|
|
397
397
|
const l = {
|
|
398
398
|
config: c,
|
|
399
399
|
// Snapshot the as-supplied config before any runtime merges. Used by the
|
|
@@ -401,7 +401,7 @@ function ee(e) {
|
|
|
401
401
|
// config keep passing even after setPanelColorPresets mutates `config`.
|
|
402
402
|
suppliedConfig: { ...e },
|
|
403
403
|
pendingColorPresets: null,
|
|
404
|
-
postConfigureHooks:
|
|
404
|
+
postConfigureHooks: a,
|
|
405
405
|
handle: F(n)
|
|
406
406
|
};
|
|
407
407
|
t.instances.set(n, l), t.defaultPrefix = n;
|
|
@@ -432,7 +432,7 @@ function ne() {
|
|
|
432
432
|
function re(e) {
|
|
433
433
|
return m().instances.get(e)?.config ?? null;
|
|
434
434
|
}
|
|
435
|
-
function
|
|
435
|
+
function oe() {
|
|
436
436
|
const e = m();
|
|
437
437
|
e.instances.clear(), e.defaultPrefix = null, e.pendingColorPresets = null, e.pendingPostConfigureHooks.length = 0, v().clear();
|
|
438
438
|
}
|
|
@@ -440,7 +440,7 @@ function v() {
|
|
|
440
440
|
const e = m();
|
|
441
441
|
return e.colorSchemeOwners || (e.colorSchemeOwners = /* @__PURE__ */ new Set()), e.colorSchemeOwners;
|
|
442
442
|
}
|
|
443
|
-
function
|
|
443
|
+
function ie(e) {
|
|
444
444
|
v().add(e);
|
|
445
445
|
}
|
|
446
446
|
function se(e) {
|
|
@@ -461,10 +461,10 @@ function ce(e) {
|
|
|
461
461
|
function ge(e) {
|
|
462
462
|
return `${e.storagePrefix}-state-v4`;
|
|
463
463
|
}
|
|
464
|
-
function
|
|
464
|
+
function de(e) {
|
|
465
465
|
return `${e.storagePrefix}-state`;
|
|
466
466
|
}
|
|
467
|
-
function
|
|
467
|
+
function ue(e) {
|
|
468
468
|
return `${e.storagePrefix}-open`;
|
|
469
469
|
}
|
|
470
470
|
function pe(e) {
|
|
@@ -479,10 +479,10 @@ function me(e) {
|
|
|
479
479
|
function he(e) {
|
|
480
480
|
return `${e.storagePrefix}:visible`;
|
|
481
481
|
}
|
|
482
|
-
function
|
|
482
|
+
function we(e) {
|
|
483
483
|
return `${e.storagePrefix}:autoload`;
|
|
484
484
|
}
|
|
485
|
-
function
|
|
485
|
+
function be(e) {
|
|
486
486
|
return `${e.storagePrefix}-root`;
|
|
487
487
|
}
|
|
488
488
|
const J = _.storagePrefix, q = "toggle-design-token-panel";
|
|
@@ -493,10 +493,10 @@ const G = "__zdtp:open-state-changed";
|
|
|
493
493
|
function $e(e) {
|
|
494
494
|
return `${G}:${e.storagePrefix}`;
|
|
495
495
|
}
|
|
496
|
-
function
|
|
496
|
+
function Ce(e, t) {
|
|
497
497
|
return `${e.modalClassPrefix}${t}`;
|
|
498
498
|
}
|
|
499
|
-
function
|
|
499
|
+
function Pe(e) {
|
|
500
500
|
return `${e.exportFilenameBase}.json`;
|
|
501
501
|
}
|
|
502
502
|
const O = /* @__PURE__ */ Symbol.for("@takazudo/zdtp:global-alias-marker");
|
|
@@ -510,8 +510,8 @@ function Ee(e) {
|
|
|
510
510
|
);
|
|
511
511
|
return;
|
|
512
512
|
}
|
|
513
|
-
const
|
|
514
|
-
|
|
513
|
+
const i = { ...e };
|
|
514
|
+
i[O] = !0, t.zdtp = i;
|
|
515
515
|
}
|
|
516
516
|
function ve(e) {
|
|
517
517
|
if (e === null || typeof e != "object" || Array.isArray(e))
|
|
@@ -539,19 +539,39 @@ function ve(e) {
|
|
|
539
539
|
if (t.applyRouting !== void 0) {
|
|
540
540
|
if (t.applyRouting === null || typeof t.applyRouting != "object" || Array.isArray(t.applyRouting))
|
|
541
541
|
throw new Error("[design-token-panel] PanelConfig.applyRouting must be a plain object");
|
|
542
|
-
for (const [n,
|
|
543
|
-
if (typeof
|
|
542
|
+
for (const [n, i] of Object.entries(t.applyRouting))
|
|
543
|
+
if (typeof i != "string")
|
|
544
544
|
throw new Error(
|
|
545
545
|
`[design-token-panel] PanelConfig.applyRouting[${JSON.stringify(n)}] must be a string`
|
|
546
546
|
);
|
|
547
547
|
}
|
|
548
|
+
if (t.domTweaker !== void 0) {
|
|
549
|
+
if (t.domTweaker === null || typeof t.domTweaker != "object" || Array.isArray(t.domTweaker))
|
|
550
|
+
throw new Error("[design-token-panel] PanelConfig.domTweaker must be a plain object");
|
|
551
|
+
const n = t.domTweaker;
|
|
552
|
+
for (const i of Object.keys(n))
|
|
553
|
+
if (i !== "themeCss")
|
|
554
|
+
throw new Error(
|
|
555
|
+
`[design-token-panel] PanelConfig.domTweaker.${i} is not a supported field`
|
|
556
|
+
);
|
|
557
|
+
if (n.themeCss !== void 0) {
|
|
558
|
+
if (typeof n.themeCss != "string")
|
|
559
|
+
throw new Error(
|
|
560
|
+
`[design-token-panel] PanelConfig.domTweaker.themeCss must be a string when set (got ${typeof n.themeCss})`
|
|
561
|
+
);
|
|
562
|
+
if (/@import/i.test(n.themeCss))
|
|
563
|
+
throw new Error(
|
|
564
|
+
"[design-token-panel] PanelConfig.domTweaker.themeCss must not contain @import"
|
|
565
|
+
);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
548
568
|
if (t.legacyIdRenameMap !== void 0) {
|
|
549
569
|
if (t.legacyIdRenameMap === null || typeof t.legacyIdRenameMap != "object" || Array.isArray(t.legacyIdRenameMap))
|
|
550
570
|
throw new Error("[design-token-panel] PanelConfig.legacyIdRenameMap must be a plain object");
|
|
551
|
-
for (const [n,
|
|
552
|
-
if (
|
|
571
|
+
for (const [n, i] of Object.entries(t.legacyIdRenameMap))
|
|
572
|
+
if (i !== null && typeof i != "string")
|
|
553
573
|
throw new Error(
|
|
554
|
-
`[design-token-panel] PanelConfig.legacyIdRenameMap[${JSON.stringify(n)}] must be a string or null (got ${typeof
|
|
574
|
+
`[design-token-panel] PanelConfig.legacyIdRenameMap[${JSON.stringify(n)}] must be a string or null (got ${typeof i})`
|
|
555
575
|
);
|
|
556
576
|
}
|
|
557
577
|
}
|
|
@@ -562,14 +582,14 @@ function B(e) {
|
|
|
562
582
|
for (const n of e) {
|
|
563
583
|
if (n === null || typeof n != "object" || Array.isArray(n))
|
|
564
584
|
throw new Error("[design-token-panel] PanelConfig.tabs: each tab must be a non-null object");
|
|
565
|
-
const
|
|
566
|
-
if (typeof
|
|
585
|
+
const i = n;
|
|
586
|
+
if (typeof i.id != "string" || i.id.length === 0)
|
|
567
587
|
throw new Error("[design-token-panel] PanelConfig.tabs: each tab must have a non-empty string id");
|
|
568
|
-
if (t.has(
|
|
588
|
+
if (t.has(i.id))
|
|
569
589
|
throw new Error(
|
|
570
|
-
`[design-token-panel] PanelConfig.tabs: duplicate tab id "${
|
|
590
|
+
`[design-token-panel] PanelConfig.tabs: duplicate tab id "${i.id}"`
|
|
571
591
|
);
|
|
572
|
-
t.add(
|
|
592
|
+
t.add(i.id), W(i.id, i, e);
|
|
573
593
|
}
|
|
574
594
|
}
|
|
575
595
|
function U(e) {
|
|
@@ -580,14 +600,14 @@ function U(e) {
|
|
|
580
600
|
const n = t.literal;
|
|
581
601
|
if (typeof n == "string") return !0;
|
|
582
602
|
if (n === null || typeof n != "object" || Array.isArray(n)) return !1;
|
|
583
|
-
const
|
|
584
|
-
return typeof
|
|
603
|
+
const i = n;
|
|
604
|
+
return typeof i.light == "string" && typeof i.dark == "string";
|
|
585
605
|
}
|
|
586
606
|
if ("ref" in t) {
|
|
587
607
|
const n = t.ref;
|
|
588
608
|
if (n === null || typeof n != "object" || Array.isArray(n)) return !1;
|
|
589
|
-
const
|
|
590
|
-
return !(typeof
|
|
609
|
+
const i = n;
|
|
610
|
+
return !(typeof i.tier != "string" || typeof i.item != "string" || i.tab !== void 0 && typeof i.tab != "string");
|
|
591
611
|
}
|
|
592
612
|
return !1;
|
|
593
613
|
}
|
|
@@ -596,50 +616,50 @@ function W(e, t, n) {
|
|
|
596
616
|
throw new Error(
|
|
597
617
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers must be an array`
|
|
598
618
|
);
|
|
599
|
-
const
|
|
600
|
-
for (const
|
|
601
|
-
if (
|
|
619
|
+
const i = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Map();
|
|
620
|
+
for (const s of t.tiers) {
|
|
621
|
+
if (s === null || typeof s != "object" || Array.isArray(s))
|
|
602
622
|
throw new Error(
|
|
603
623
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers: each tier must be a non-null object`
|
|
604
624
|
);
|
|
605
|
-
const
|
|
606
|
-
if (typeof
|
|
625
|
+
const a = s;
|
|
626
|
+
if (typeof a.id != "string" || a.id.length === 0)
|
|
607
627
|
throw new Error(
|
|
608
628
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers: each tier must have a non-empty string id`
|
|
609
629
|
);
|
|
610
|
-
if (
|
|
630
|
+
if (i.has(a.id))
|
|
611
631
|
throw new Error(
|
|
612
|
-
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate tier id "${
|
|
632
|
+
`[design-token-panel] PanelConfig.tabs["${e}"]: duplicate tier id "${a.id}"`
|
|
613
633
|
);
|
|
614
|
-
if (
|
|
634
|
+
if (i.add(a.id), a.semantic !== void 0 && a.semantic !== !0)
|
|
615
635
|
throw new Error(
|
|
616
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
636
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a.id}"].semantic must be exactly \`true\` when present (got ${JSON.stringify(a.semantic)})`
|
|
617
637
|
);
|
|
618
|
-
if (!Array.isArray(
|
|
638
|
+
if (!Array.isArray(a.items))
|
|
619
639
|
throw new Error(
|
|
620
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
640
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a.id}"].items must be an array`
|
|
621
641
|
);
|
|
622
642
|
let l;
|
|
623
|
-
for (const f of
|
|
643
|
+
for (const f of a.items) {
|
|
624
644
|
if (f === null || typeof f != "object" || Array.isArray(f)) continue;
|
|
625
|
-
const
|
|
626
|
-
if (
|
|
627
|
-
const
|
|
628
|
-
if (typeof
|
|
645
|
+
const o = f.type;
|
|
646
|
+
if (o === null || typeof o != "object" || Array.isArray(o)) continue;
|
|
647
|
+
const d = o.kind;
|
|
648
|
+
if (typeof d == "string") {
|
|
629
649
|
if (l === void 0)
|
|
630
|
-
l =
|
|
631
|
-
else if (l !==
|
|
650
|
+
l = d;
|
|
651
|
+
else if (l !== d)
|
|
632
652
|
throw new Error(
|
|
633
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${
|
|
653
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${a.id}"]: mixed item kinds — found "${l}" and "${d}" in the same tier (all items must share the same kind)`
|
|
634
654
|
);
|
|
635
655
|
}
|
|
636
656
|
}
|
|
637
|
-
l !== void 0 && g.set(
|
|
657
|
+
l !== void 0 && g.set(a.id, l);
|
|
638
658
|
}
|
|
639
659
|
const c = /* @__PURE__ */ new Set();
|
|
640
|
-
for (const
|
|
641
|
-
const
|
|
642
|
-
for (const f of
|
|
660
|
+
for (const s of t.tiers) {
|
|
661
|
+
const a = s, l = a.id;
|
|
662
|
+
for (const f of a.items) {
|
|
643
663
|
if (f === null || typeof f != "object" || Array.isArray(f))
|
|
644
664
|
throw new Error(
|
|
645
665
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].items: each item must be a non-null object`
|
|
@@ -661,198 +681,198 @@ function W(e, t, n) {
|
|
|
661
681
|
throw new Error(
|
|
662
682
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].items["${r.id}"].cssVar must be non-empty after "--"`
|
|
663
683
|
);
|
|
664
|
-
const
|
|
665
|
-
if (
|
|
666
|
-
const
|
|
667
|
-
if (!Array.isArray(
|
|
684
|
+
const o = r.type;
|
|
685
|
+
if (o !== null && typeof o == "object" && !Array.isArray(o) && o.kind === "length" && o.units !== void 0) {
|
|
686
|
+
const d = o.units;
|
|
687
|
+
if (!Array.isArray(d))
|
|
668
688
|
throw new Error(
|
|
669
689
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].items["${r.id}"].type.units must be an array`
|
|
670
690
|
);
|
|
671
|
-
const
|
|
672
|
-
for (const p of
|
|
691
|
+
const u = /* @__PURE__ */ new Set();
|
|
692
|
+
for (const p of d) {
|
|
673
693
|
if (typeof p != "string" || p.length === 0)
|
|
674
694
|
throw new Error(
|
|
675
695
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].items["${r.id}"].type.units entries must be non-empty strings (got ${JSON.stringify(p)})`
|
|
676
696
|
);
|
|
677
|
-
if (
|
|
697
|
+
if (u.has(p))
|
|
678
698
|
throw new Error(
|
|
679
699
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].items["${r.id}"].type.units: duplicate unit ${JSON.stringify(p)}`
|
|
680
700
|
);
|
|
681
|
-
|
|
701
|
+
u.add(p);
|
|
682
702
|
}
|
|
683
703
|
}
|
|
684
704
|
}
|
|
685
705
|
}
|
|
686
|
-
for (const
|
|
687
|
-
const
|
|
688
|
-
if (
|
|
689
|
-
if (typeof
|
|
706
|
+
for (const s of t.tiers) {
|
|
707
|
+
const a = s, l = a.id;
|
|
708
|
+
if (a.referencesTier !== void 0) {
|
|
709
|
+
if (typeof a.referencesTier != "string")
|
|
690
710
|
throw new Error(
|
|
691
711
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesTier must be a string`
|
|
692
712
|
);
|
|
693
|
-
const f =
|
|
694
|
-
if (!
|
|
713
|
+
const f = a.referencesTier;
|
|
714
|
+
if (!i.has(f))
|
|
695
715
|
throw new Error(
|
|
696
716
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesTier: tier "${f}" does not exist in this tab`
|
|
697
717
|
);
|
|
698
|
-
const r = g.get(l),
|
|
699
|
-
if (r !== void 0 &&
|
|
718
|
+
const r = g.get(l), o = g.get(f);
|
|
719
|
+
if (r !== void 0 && o !== void 0 && r !== "text" && r !== o)
|
|
700
720
|
throw new Error(
|
|
701
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesTier: referencing tier has kind "${r}" but referenced tier "${f}" has kind "${
|
|
721
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesTier: referencing tier has kind "${r}" but referenced tier "${f}" has kind "${o}" (cross-kind reference is only allowed when the referencing tier has kind "text")`
|
|
702
722
|
);
|
|
703
723
|
}
|
|
704
724
|
}
|
|
705
|
-
for (const
|
|
706
|
-
const
|
|
707
|
-
if (
|
|
708
|
-
if (
|
|
725
|
+
for (const s of t.tiers) {
|
|
726
|
+
const a = s, l = a.id;
|
|
727
|
+
if (a.referencesRamps === void 0) continue;
|
|
728
|
+
if (a.semantic !== !0)
|
|
709
729
|
throw new Error(
|
|
710
730
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps is only valid on a tier with semantic: true`
|
|
711
731
|
);
|
|
712
|
-
if (!Array.isArray(
|
|
732
|
+
if (!Array.isArray(a.referencesRamps))
|
|
713
733
|
throw new Error(
|
|
714
734
|
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps must be an array`
|
|
715
735
|
);
|
|
716
|
-
const f = g.get(l), r =
|
|
717
|
-
for (let
|
|
718
|
-
const
|
|
719
|
-
if (
|
|
736
|
+
const f = g.get(l), r = a.referencesRamps;
|
|
737
|
+
for (let o = 0; o < r.length; o++) {
|
|
738
|
+
const d = r[o];
|
|
739
|
+
if (d === null || typeof d != "object" || Array.isArray(d))
|
|
720
740
|
throw new Error(
|
|
721
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
741
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}] must be a non-null object`
|
|
722
742
|
);
|
|
723
|
-
const
|
|
724
|
-
if (typeof
|
|
743
|
+
const u = d;
|
|
744
|
+
if (typeof u.tier != "string" || u.tier.length === 0)
|
|
725
745
|
throw new Error(
|
|
726
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
746
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}].tier must be a non-empty string`
|
|
727
747
|
);
|
|
728
|
-
if (
|
|
748
|
+
if (u.tab !== void 0 && (typeof u.tab != "string" || u.tab.length === 0))
|
|
729
749
|
throw new Error(
|
|
730
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
750
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}].tab must be a non-empty string when set`
|
|
731
751
|
);
|
|
732
|
-
const p =
|
|
752
|
+
const p = u.tab === void 0 ? e : u.tab;
|
|
733
753
|
let k;
|
|
734
754
|
if (p === e)
|
|
735
755
|
k = t;
|
|
736
756
|
else {
|
|
737
|
-
const
|
|
757
|
+
const w = n.find(
|
|
738
758
|
(y) => y !== null && typeof y == "object" && !Array.isArray(y) && y.id === p
|
|
739
759
|
);
|
|
740
|
-
if (!
|
|
760
|
+
if (!w) {
|
|
741
761
|
const y = n.filter((h) => h !== null && typeof h == "object" && !Array.isArray(h)).map((h) => h.id).join(", ");
|
|
742
762
|
throw new Error(
|
|
743
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
763
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}]: tab "${p}" does not exist. Available tabs: ${y}.`
|
|
744
764
|
);
|
|
745
765
|
}
|
|
746
|
-
k =
|
|
766
|
+
k = w;
|
|
747
767
|
}
|
|
748
|
-
const
|
|
749
|
-
let
|
|
750
|
-
for (const
|
|
751
|
-
if (
|
|
752
|
-
const y =
|
|
753
|
-
typeof y.id == "string" && (
|
|
768
|
+
const C = Array.isArray(k.tiers) ? k.tiers : [], T = [];
|
|
769
|
+
let P;
|
|
770
|
+
for (const w of C) {
|
|
771
|
+
if (w === null || typeof w != "object" || Array.isArray(w)) continue;
|
|
772
|
+
const y = w;
|
|
773
|
+
typeof y.id == "string" && (T.push(y.id), y.id === u.tier && (P = y));
|
|
754
774
|
}
|
|
755
|
-
if (!
|
|
775
|
+
if (!P)
|
|
756
776
|
throw new Error(
|
|
757
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
777
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}]: tier "${u.tier}" does not exist in tab "${p}". Available tiers: ${T.join(", ")}.`
|
|
758
778
|
);
|
|
759
779
|
if (f !== void 0) {
|
|
760
|
-
const
|
|
780
|
+
const w = Array.isArray(P.items) ? P.items : [];
|
|
761
781
|
let y;
|
|
762
|
-
for (const h of
|
|
782
|
+
for (const h of w) {
|
|
763
783
|
if (h === null || typeof h != "object" || Array.isArray(h)) continue;
|
|
764
784
|
const E = h.type;
|
|
765
785
|
if (E === null || typeof E != "object" || Array.isArray(E)) continue;
|
|
766
|
-
const
|
|
767
|
-
if (typeof
|
|
768
|
-
y =
|
|
786
|
+
const j = E.kind;
|
|
787
|
+
if (typeof j == "string") {
|
|
788
|
+
y = j;
|
|
769
789
|
break;
|
|
770
790
|
}
|
|
771
791
|
}
|
|
772
792
|
if (y !== void 0 && f !== y)
|
|
773
793
|
throw new Error(
|
|
774
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${
|
|
794
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${l}"].referencesRamps[${o}]: referencing semantic tier has kind "${f}" but target tier "${u.tier}" in tab "${p}" has kind "${y}" (cross-tab ramp sources must share the semantic tier's kind)`
|
|
775
795
|
);
|
|
776
796
|
}
|
|
777
797
|
}
|
|
778
798
|
}
|
|
779
799
|
if (t.colorExtras !== void 0) {
|
|
780
|
-
const
|
|
781
|
-
if (
|
|
800
|
+
const s = t.colorExtras;
|
|
801
|
+
if (s === null || typeof s != "object" || Array.isArray(s))
|
|
782
802
|
throw new Error(
|
|
783
803
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras must be a plain object`
|
|
784
804
|
);
|
|
785
805
|
for (const r of ["id", "defaultShikiTheme"])
|
|
786
|
-
if (typeof
|
|
806
|
+
if (typeof s[r] != "string" || s[r].length === 0)
|
|
787
807
|
throw new Error(
|
|
788
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${r} must be a non-empty string (got ${typeof
|
|
808
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${r} must be a non-empty string (got ${typeof s[r]})`
|
|
789
809
|
);
|
|
790
810
|
for (const r of ["colorSchemes", "baseRoles", "baseDefaults"])
|
|
791
|
-
if (
|
|
811
|
+
if (s[r] === void 0 || s[r] === null || typeof s[r] != "object" || Array.isArray(s[r]))
|
|
792
812
|
throw new Error(
|
|
793
813
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.${r} must be a plain object`
|
|
794
814
|
);
|
|
795
|
-
if (
|
|
815
|
+
if (s.panelSettings === void 0 || s.panelSettings === null || typeof s.panelSettings != "object" || Array.isArray(s.panelSettings))
|
|
796
816
|
throw new Error(
|
|
797
817
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings must be a plain object`
|
|
798
818
|
);
|
|
799
|
-
const
|
|
800
|
-
if (typeof
|
|
819
|
+
const a = s.panelSettings;
|
|
820
|
+
if (typeof a.colorScheme != "string" || a.colorScheme.length === 0)
|
|
801
821
|
throw new Error(
|
|
802
822
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorScheme must be a non-empty string`
|
|
803
823
|
);
|
|
804
|
-
if (
|
|
805
|
-
if (
|
|
824
|
+
if (a.colorMode !== !1) {
|
|
825
|
+
if (a.colorMode === null || typeof a.colorMode != "object" || Array.isArray(a.colorMode))
|
|
806
826
|
throw new Error(
|
|
807
827
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode must be false or a plain object`
|
|
808
828
|
);
|
|
809
|
-
const r =
|
|
810
|
-
for (const
|
|
811
|
-
if (typeof r[
|
|
829
|
+
const r = a.colorMode;
|
|
830
|
+
for (const o of ["lightScheme", "darkScheme"])
|
|
831
|
+
if (typeof r[o] != "string" || r[o].length === 0)
|
|
812
832
|
throw new Error(
|
|
813
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.${
|
|
833
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.${o} must be a non-empty string`
|
|
814
834
|
);
|
|
815
835
|
if (r.defaultMode !== "light" && r.defaultMode !== "dark")
|
|
816
836
|
throw new Error(
|
|
817
837
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.panelSettings.colorMode.defaultMode must be "light" or "dark" (got ${JSON.stringify(r.defaultMode)})`
|
|
818
838
|
);
|
|
819
839
|
}
|
|
820
|
-
if (
|
|
821
|
-
if (
|
|
840
|
+
if (s.semanticDefaults !== void 0) {
|
|
841
|
+
if (s.semanticDefaults === null || typeof s.semanticDefaults != "object" || Array.isArray(s.semanticDefaults))
|
|
822
842
|
throw new Error(
|
|
823
843
|
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults must be a plain object`
|
|
824
844
|
);
|
|
825
|
-
const r =
|
|
826
|
-
for (const [
|
|
827
|
-
if (!U(
|
|
845
|
+
const r = s.semanticDefaults;
|
|
846
|
+
for (const [o, d] of Object.entries(r))
|
|
847
|
+
if (!U(d))
|
|
828
848
|
throw new Error(
|
|
829
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults["${
|
|
849
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].colorExtras.semanticDefaults["${o}"] must be a valid SemanticValue (number | 'bg' | 'fg' | { literal: string } | { literal: { light, dark } } | { ref: { tier, item, tab? } }), got ${JSON.stringify(d)}`
|
|
830
850
|
);
|
|
831
851
|
}
|
|
832
852
|
const f = t.tiers.find((r) => {
|
|
833
853
|
if (r.referencesTier !== void 0 || r.semantic === !0) return !1;
|
|
834
|
-
const
|
|
835
|
-
if (!Array.isArray(
|
|
836
|
-
const
|
|
837
|
-
if (
|
|
838
|
-
const
|
|
839
|
-
return
|
|
854
|
+
const o = r.items;
|
|
855
|
+
if (!Array.isArray(o) || o.length === 0) return !1;
|
|
856
|
+
const d = o[0];
|
|
857
|
+
if (d === null || typeof d != "object" || Array.isArray(d)) return !1;
|
|
858
|
+
const u = d.type;
|
|
859
|
+
return u === null || typeof u != "object" || Array.isArray(u) ? !1 : u.kind === "color";
|
|
840
860
|
});
|
|
841
861
|
if (f) {
|
|
842
|
-
const r = f.id,
|
|
843
|
-
if (
|
|
844
|
-
const
|
|
845
|
-
if (
|
|
846
|
-
for (let p = 0; p <
|
|
847
|
-
const k =
|
|
848
|
-
if (k.cssVar !==
|
|
862
|
+
const r = f.id, o = f.items, d = o[0]?.cssVar;
|
|
863
|
+
if (d !== void 0) {
|
|
864
|
+
const u = d.replace(/\d+$/, "{n}");
|
|
865
|
+
if (u.includes("{n}"))
|
|
866
|
+
for (let p = 0; p < o.length; p++) {
|
|
867
|
+
const k = o[p], C = u.replace("{n}", String(p));
|
|
868
|
+
if (k.cssVar !== C)
|
|
849
869
|
throw new Error(
|
|
850
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r}"].items[${p}].cssVar is ${JSON.stringify(k.cssVar)} but expected ${JSON.stringify(
|
|
870
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r}"].items[${p}].cssVar is ${JSON.stringify(k.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(u)})`
|
|
851
871
|
);
|
|
852
872
|
}
|
|
853
|
-
else if (
|
|
873
|
+
else if (o.length > 1)
|
|
854
874
|
throw new Error(
|
|
855
|
-
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r}"].items[0].cssVar ${JSON.stringify(
|
|
875
|
+
`[design-token-panel] PanelConfig.tabs["${e}"].tiers["${r}"].items[0].cssVar ${JSON.stringify(d)} 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")`
|
|
856
876
|
);
|
|
857
877
|
}
|
|
858
878
|
}
|
|
@@ -870,11 +890,11 @@ function W(e, t, n) {
|
|
|
870
890
|
throw new Error(
|
|
871
891
|
'[design-token-panel] PanelConfig.tabs["notes"].notesExtras must be a plain object with { title, html }'
|
|
872
892
|
);
|
|
873
|
-
const
|
|
874
|
-
for (const
|
|
875
|
-
if (typeof
|
|
893
|
+
const s = t.notesExtras;
|
|
894
|
+
for (const a of ["title", "html"])
|
|
895
|
+
if (typeof s[a] != "string" || s[a].length === 0)
|
|
876
896
|
throw new Error(
|
|
877
|
-
`[design-token-panel] PanelConfig.tabs["notes"].notesExtras.${
|
|
897
|
+
`[design-token-panel] PanelConfig.tabs["notes"].notesExtras.${a} must be a non-empty string (got ${typeof s[a]})`
|
|
878
898
|
);
|
|
879
899
|
} else if (t.notesExtras !== void 0)
|
|
880
900
|
throw new Error(
|
|
@@ -903,8 +923,8 @@ export {
|
|
|
903
923
|
q as H,
|
|
904
924
|
ne as I,
|
|
905
925
|
re as J,
|
|
906
|
-
|
|
907
|
-
|
|
926
|
+
be as K,
|
|
927
|
+
oe as _,
|
|
908
928
|
he as a,
|
|
909
929
|
fe as b,
|
|
910
930
|
ee as c,
|
|
@@ -912,23 +932,23 @@ export {
|
|
|
912
932
|
ge as e,
|
|
913
933
|
ve as f,
|
|
914
934
|
D as g,
|
|
915
|
-
|
|
935
|
+
ue as h,
|
|
916
936
|
Ee as i,
|
|
917
937
|
pe as j,
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
938
|
+
de as k,
|
|
939
|
+
we as l,
|
|
940
|
+
Ce as m,
|
|
941
|
+
se as n,
|
|
942
|
+
le as o,
|
|
943
|
+
Y as p,
|
|
944
|
+
Z as q,
|
|
925
945
|
Q as r,
|
|
926
946
|
Se as s,
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
947
|
+
ye as t,
|
|
948
|
+
me as u,
|
|
949
|
+
X as v,
|
|
950
|
+
ie as w,
|
|
951
|
+
ae as x,
|
|
952
|
+
M as y,
|
|
953
|
+
S as z
|
|
934
954
|
};
|