@weasel-js/ui 1.4.4 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/chunks/{BandEditor-CUlbOlJi.js → BandEditor-BeWO56_w.js} +1 -1
  2. package/dist/chunks/{BandEditor-CUlbOlJi.js.map → BandEditor-BeWO56_w.js.map} +1 -1
  3. package/dist/chunks/{Callout-Dvt6lqVn.js → Callout-BPIA2is-.js} +1 -1
  4. package/dist/chunks/{Callout-Dvt6lqVn.js.map → Callout-BPIA2is-.js.map} +1 -1
  5. package/dist/chunks/ComboBox-CPES6Y1i.js +138 -0
  6. package/dist/chunks/ComboBox-CPES6Y1i.js.map +1 -0
  7. package/dist/chunks/CurveEditor-Cj0lLiyR.js +533 -0
  8. package/dist/chunks/CurveEditor-Cj0lLiyR.js.map +1 -0
  9. package/dist/chunks/{DetentSlider-BpD7bgjN.js → DetentSlider-CYicfnKr.js} +2 -2
  10. package/dist/chunks/{DetentSlider-BpD7bgjN.js.map → DetentSlider-CYicfnKr.js.map} +1 -1
  11. package/dist/chunks/{GradientEditor-BLpAtMDK.js → GradientEditor-dBprHbS0.js} +2 -2
  12. package/dist/chunks/{GradientEditor-BLpAtMDK.js.map → GradientEditor-dBprHbS0.js.map} +1 -1
  13. package/dist/chunks/MenuButton-Do8fFUx1.js +60 -0
  14. package/dist/chunks/MenuButton-Do8fFUx1.js.map +1 -0
  15. package/dist/chunks/NumberField-BWzhqS19.js +112 -0
  16. package/dist/chunks/NumberField-BWzhqS19.js.map +1 -0
  17. package/dist/chunks/{PaintInput-B7AScmHN.js → PaintInput-DAevU7fd.js} +2 -2
  18. package/dist/chunks/{PaintInput-B7AScmHN.js.map → PaintInput-DAevU7fd.js.map} +1 -1
  19. package/dist/chunks/Plot2D-CVZwQpWJ.js +292 -0
  20. package/dist/chunks/Plot2D-CVZwQpWJ.js.map +1 -0
  21. package/dist/chunks/{PointPlotter-CbDKVggs.js → PointPlotter-anTHwz8f.js} +2 -2
  22. package/dist/chunks/PointPlotter-anTHwz8f.js.map +1 -0
  23. package/dist/chunks/Prefs-CzIn-hlq.js +302 -0
  24. package/dist/chunks/Prefs-CzIn-hlq.js.map +1 -0
  25. package/dist/chunks/Properties-DJaDEJkT.js +765 -0
  26. package/dist/chunks/Properties-DJaDEJkT.js.map +1 -0
  27. package/dist/chunks/{ResizeHandle-BrCO0JrH.js → ResizeHandle-CiExUWP-.js} +1 -1
  28. package/dist/chunks/{ResizeHandle-BrCO0JrH.js.map → ResizeHandle-CiExUWP-.js.map} +1 -1
  29. package/dist/chunks/{SelectionPanel-C59wavdA.js → SelectionPanel-CbyUT3Dh.js} +204 -194
  30. package/dist/chunks/SelectionPanel-CbyUT3Dh.js.map +1 -0
  31. package/dist/chunks/{Sidebar-BvwjZiFm.js → Sidebar-Cqcfx3_s.js} +1 -1
  32. package/dist/chunks/{Sidebar-BvwjZiFm.js.map → Sidebar-Cqcfx3_s.js.map} +1 -1
  33. package/dist/chunks/{SidebarPanel-D5Ua2vyP.js → SidebarPanel-BLzBo0S2.js} +1 -1
  34. package/dist/chunks/{SidebarPanel-D5Ua2vyP.js.map → SidebarPanel-BLzBo0S2.js.map} +1 -1
  35. package/dist/chunks/{Slider-Bs-KSYgQ.js → Slider--DFRC_hc.js} +2 -2
  36. package/dist/chunks/{Slider-Bs-KSYgQ.js.map → Slider--DFRC_hc.js.map} +1 -1
  37. package/dist/chunks/{StatusBar-Bqv4D0dW.js → StatusBar-B9NQ8atD.js} +1 -1
  38. package/dist/chunks/{StatusBar-Bqv4D0dW.js.map → StatusBar-B9NQ8atD.js.map} +1 -1
  39. package/dist/chunks/{Tabs-BT3CDkoQ.js → Tabs-9sODd2Ut.js} +1 -1
  40. package/dist/chunks/{Tabs-BT3CDkoQ.js.map → Tabs-9sODd2Ut.js.map} +1 -1
  41. package/dist/chunks/Timeline-DOZgb1CG.js +915 -0
  42. package/dist/chunks/Timeline-DOZgb1CG.js.map +1 -0
  43. package/dist/chunks/{Toast-B7ylq7fz.js → Toast-LpN1WK8E.js} +1 -1
  44. package/dist/chunks/{Toast-B7ylq7fz.js.map → Toast-LpN1WK8E.js.map} +1 -1
  45. package/dist/chunks/{ToolButton-CtDkqUIc.js → ToolButton-B81YjdwO.js} +1 -1
  46. package/dist/chunks/{ToolButton-CtDkqUIc.js.map → ToolButton-B81YjdwO.js.map} +1 -1
  47. package/dist/chunks/{ToolGroup-zDtqt0QJ.js → ToolGroup-D7juDOC_.js} +1 -1
  48. package/dist/chunks/{ToolGroup-zDtqt0QJ.js.map → ToolGroup-D7juDOC_.js.map} +1 -1
  49. package/dist/chunks/{ToolPalette-BbrMHfQ9.js → ToolPalette-BSzmRJS7.js} +3 -3
  50. package/dist/chunks/{ToolPalette-BbrMHfQ9.js.map → ToolPalette-BSzmRJS7.js.map} +1 -1
  51. package/dist/chunks/createKeyframeLayer-AL4jP0EX.js +694 -0
  52. package/dist/chunks/createKeyframeLayer-AL4jP0EX.js.map +1 -0
  53. package/dist/chunks/number-f6PydOZK.js +52 -0
  54. package/dist/chunks/number-f6PydOZK.js.map +1 -0
  55. package/dist/chunks/{schema-CtWwGbqJ.js → schema-CPdFNeP6.js} +15 -9
  56. package/dist/chunks/schema-CPdFNeP6.js.map +1 -0
  57. package/dist/components/BandEditor/index.js +1 -1
  58. package/dist/components/Callout/index.js +1 -1
  59. package/dist/components/ComboBox/ComboBox.d.ts +36 -0
  60. package/dist/components/ComboBox/ComboBox.d.ts.map +1 -1
  61. package/dist/components/ComboBox/index.d.ts +1 -1
  62. package/dist/components/ComboBox/index.d.ts.map +1 -1
  63. package/dist/components/ComboBox/index.js +1 -1
  64. package/dist/components/CurveEditor/CurveEditor.d.ts +4 -2
  65. package/dist/components/CurveEditor/CurveEditor.d.ts.map +1 -1
  66. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts +8 -1
  67. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts.map +1 -1
  68. package/dist/components/CurveEditor/createFunctionLayer.d.ts +2 -0
  69. package/dist/components/CurveEditor/createFunctionLayer.d.ts.map +1 -1
  70. package/dist/components/CurveEditor/createKeyframeLayer.d.ts +70 -0
  71. package/dist/components/CurveEditor/createKeyframeLayer.d.ts.map +1 -0
  72. package/dist/components/CurveEditor/index.d.ts +3 -1
  73. package/dist/components/CurveEditor/index.d.ts.map +1 -1
  74. package/dist/components/CurveEditor/index.js +3 -2
  75. package/dist/components/CurveEditor/layerTypes.d.ts +8 -3
  76. package/dist/components/CurveEditor/layerTypes.d.ts.map +1 -1
  77. package/dist/components/CurveEditor/snap.d.ts +3 -0
  78. package/dist/components/CurveEditor/snap.d.ts.map +1 -0
  79. package/dist/components/DetentSlider/index.js +1 -1
  80. package/dist/components/GradientEditor/index.js +1 -1
  81. package/dist/components/MenuButton/MenuButton.d.ts +29 -0
  82. package/dist/components/MenuButton/MenuButton.d.ts.map +1 -0
  83. package/dist/components/MenuButton/index.d.ts +3 -0
  84. package/dist/components/MenuButton/index.d.ts.map +1 -0
  85. package/dist/components/MenuButton/index.js +2 -0
  86. package/dist/components/NumberField/UnitField.d.ts +30 -0
  87. package/dist/components/NumberField/UnitField.d.ts.map +1 -0
  88. package/dist/components/NumberField/index.d.ts +2 -0
  89. package/dist/components/NumberField/index.d.ts.map +1 -1
  90. package/dist/components/NumberField/index.js +2 -2
  91. package/dist/components/PaintInput/index.js +1 -1
  92. package/dist/components/Plot2D/Plot2D.d.ts +38 -2
  93. package/dist/components/Plot2D/Plot2D.d.ts.map +1 -1
  94. package/dist/components/Plot2D/index.d.ts +2 -1
  95. package/dist/components/Plot2D/index.d.ts.map +1 -1
  96. package/dist/components/Plot2D/index.js +2 -2
  97. package/dist/components/Plot2D/ticks.d.ts +43 -0
  98. package/dist/components/Plot2D/ticks.d.ts.map +1 -0
  99. package/dist/components/PointPlotter/PointPlotter.d.ts +3 -1
  100. package/dist/components/PointPlotter/PointPlotter.d.ts.map +1 -1
  101. package/dist/components/PointPlotter/index.js +1 -1
  102. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  103. package/dist/components/Prefs/index.d.ts +1 -1
  104. package/dist/components/Prefs/index.d.ts.map +1 -1
  105. package/dist/components/Prefs/index.js +3 -3
  106. package/dist/components/Prefs/schema.d.ts +5 -2
  107. package/dist/components/Prefs/schema.d.ts.map +1 -1
  108. package/dist/components/Properties/PropertyPanel.d.ts +15 -6
  109. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  110. package/dist/components/Properties/index.js +1 -1
  111. package/dist/components/ResizeHandle/index.js +1 -1
  112. package/dist/components/SelectionPanel/index.js +1 -1
  113. package/dist/components/Sidebar/index.js +1 -1
  114. package/dist/components/SidebarPanel/index.js +1 -1
  115. package/dist/components/Slider/index.js +1 -1
  116. package/dist/components/StatusBar/index.js +1 -1
  117. package/dist/components/Tabs/index.js +1 -1
  118. package/dist/components/Timeline/Lane.d.ts +9 -7
  119. package/dist/components/Timeline/Lane.d.ts.map +1 -1
  120. package/dist/components/Timeline/LaneGraph.d.ts +24 -0
  121. package/dist/components/Timeline/LaneGraph.d.ts.map +1 -0
  122. package/dist/components/Timeline/Ruler.d.ts.map +1 -1
  123. package/dist/components/Timeline/Timeline.d.ts.map +1 -1
  124. package/dist/components/Timeline/index.js +1 -1
  125. package/dist/components/Timeline/keys.d.ts +4 -3
  126. package/dist/components/Timeline/keys.d.ts.map +1 -1
  127. package/dist/components/Timeline/timeScale.d.ts +2 -0
  128. package/dist/components/Timeline/timeScale.d.ts.map +1 -1
  129. package/dist/components/Toast/index.js +1 -1
  130. package/dist/components/ToolButton/index.js +1 -1
  131. package/dist/components/ToolGroup/index.js +1 -1
  132. package/dist/components/ToolPalette/index.js +1 -1
  133. package/dist/format/number.d.ts +16 -0
  134. package/dist/format/number.d.ts.map +1 -1
  135. package/dist/index.d.ts +4 -1
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +99 -64
  138. package/dist/index.js.map +1 -1
  139. package/dist/style.css +1 -1
  140. package/dist/useAsyncOptions.d.ts +38 -0
  141. package/dist/useAsyncOptions.d.ts.map +1 -0
  142. package/package.json +7 -6
  143. package/dist/chunks/ComboBox-BBRRWvdc.js +0 -107
  144. package/dist/chunks/ComboBox-BBRRWvdc.js.map +0 -1
  145. package/dist/chunks/CurveEditor-DtjdpJVB.js +0 -784
  146. package/dist/chunks/CurveEditor-DtjdpJVB.js.map +0 -1
  147. package/dist/chunks/NumberField-DBowmOfe.js +0 -62
  148. package/dist/chunks/NumberField-DBowmOfe.js.map +0 -1
  149. package/dist/chunks/Plot2D-C97pO13t.js +0 -134
  150. package/dist/chunks/Plot2D-C97pO13t.js.map +0 -1
  151. package/dist/chunks/PointPlotter-CbDKVggs.js.map +0 -1
  152. package/dist/chunks/Prefs-4JSEtuU-.js +0 -294
  153. package/dist/chunks/Prefs-4JSEtuU-.js.map +0 -1
  154. package/dist/chunks/Properties-BpUYKi7-.js +0 -758
  155. package/dist/chunks/Properties-BpUYKi7-.js.map +0 -1
  156. package/dist/chunks/SelectionPanel-C59wavdA.js.map +0 -1
  157. package/dist/chunks/Timeline-Bz806JbE.js +0 -908
  158. package/dist/chunks/Timeline-Bz806JbE.js.map +0 -1
  159. package/dist/chunks/number-Bv1nbhOJ.js +0 -18
  160. package/dist/chunks/number-Bv1nbhOJ.js.map +0 -1
  161. package/dist/chunks/schema-CtWwGbqJ.js.map +0 -1
@@ -2,38 +2,38 @@ import { n as e, t } from "./Icon-DBXtBB1f.js";
2
2
  import { t as n } from "./ToggleBar-Bxwv6xvj.js";
3
3
  import { t as r } from "./InlineRange-CcfzY80y.js";
4
4
  import { t as i } from "./ColorField-C20aRvCg.js";
5
- import { t as a } from "./PaintInput-B7AScmHN.js";
5
+ import { t as a } from "./PaintInput-DAevU7fd.js";
6
6
  import { t as o } from "./Select-CacMfs4v.js";
7
7
  import { t as s } from "./FontFamilySelect-DIJ4phXz.js";
8
8
  import { t as c } from "./Input-CoKOtyD0.js";
9
- import { t as l } from "./NumberField-DBowmOfe.js";
10
- import { t as u } from "./Switch-C4NU-me1.js";
11
- import { n as d } from "./schema-CtWwGbqJ.js";
12
- import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
13
- import { MIXED as h, asNodeId as g, isBuiltinToolPref as _ } from "@weasel-js/core";
14
- import { Fragment as v, useState as y, useSyncExternalStore as b } from "react";
9
+ import { n as l, t as u } from "./NumberField-BWzhqS19.js";
10
+ import { t as d } from "./Switch-C4NU-me1.js";
11
+ import { n as f, r as p } from "./schema-CPdFNeP6.js";
12
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
13
+ import { MIXED as _, asNodeId as v, isBuiltinToolPref as y } from "@weasel-js/core";
14
+ import { Fragment as b, useState as x, useSyncExternalStore as S } from "react";
15
15
  //#region src/components/SelectionPanel/model.ts
16
- function x(e, t) {
16
+ function C(e, t) {
17
17
  if (e.kind === "container") return "group";
18
18
  for (let n of t) if (n.matches(e.data)) return n.name;
19
19
  return "unknown";
20
20
  }
21
- function S(e) {
21
+ function w(e) {
22
22
  return !("kind" in e);
23
23
  }
24
- function C(e) {
24
+ function T(e) {
25
25
  let t = [], n = [], r = (e, t) => {
26
- for (let [n, i] of Object.entries(e.children)) S(i) ? r(i, t) : t.push({
26
+ for (let [n, i] of Object.entries(e.children)) w(i) ? r(i, t) : t.push({
27
27
  path: n,
28
28
  leaf: i
29
29
  });
30
30
  };
31
- for (let [i, a] of Object.entries(e.children)) if (S(a)) {
31
+ for (let [i, a] of Object.entries(e.children)) if (w(a)) {
32
32
  let e = [];
33
33
  r(a, e), t.push({
34
34
  key: i,
35
35
  name: a.name,
36
- rows: w(e)
36
+ rows: E(e)
37
37
  });
38
38
  } else n.push({
39
39
  path: i,
@@ -42,10 +42,10 @@ function C(e) {
42
42
  return n.length > 0 && t.unshift({
43
43
  key: "",
44
44
  name: "",
45
- rows: w(n)
45
+ rows: E(n)
46
46
  }), t;
47
47
  }
48
- function w(e) {
48
+ function E(e) {
49
49
  let t = [];
50
50
  for (let n of e) {
51
51
  let e = n.leaf.pair, r = t[t.length - 1];
@@ -56,14 +56,14 @@ function w(e) {
56
56
  }
57
57
  return t;
58
58
  }
59
- function T(e, t) {
59
+ function D(e, t) {
60
60
  let n = [...new Set(e)];
61
61
  if (n.length === 0) return [];
62
62
  let r = new Map(t.map((e) => [e.name, e])), i = n.map((e) => r.get(e)?.schema);
63
63
  if (i.some((e) => e === void 0)) return [];
64
- let [a, ...o] = i, s = C(a);
64
+ let [a, ...o] = i, s = T(a);
65
65
  if (o.length === 0) return s;
66
- let c = (e) => `${e.path}\0${e.leaf.kind}`, l = o.map((e) => new Set(C(e).flatMap((e) => e.rows).flatMap((e) => e.leaves).map(c))), u = (e) => l.every((t) => t.has(c(e)));
66
+ let c = (e) => `${e.path}\0${e.leaf.kind}`, l = o.map((e) => new Set(T(e).flatMap((e) => e.rows).flatMap((e) => e.leaves).map(c))), u = (e) => l.every((t) => t.has(c(e)));
67
67
  return s.map((e) => ({
68
68
  ...e,
69
69
  rows: e.rows.map((e) => ({
@@ -72,7 +72,7 @@ function T(e, t) {
72
72
  })).filter((e) => e.leaves.length > 0)
73
73
  })).filter((e) => e.rows.length > 0);
74
74
  }
75
- function E(e, t) {
75
+ function O(e, t) {
76
76
  let n = t.split(".");
77
77
  if (n.length < 2) return;
78
78
  let r = n[0], i = r === "pose" ? e.pose : r === "data" ? e.data : void 0;
@@ -82,33 +82,33 @@ function E(e, t) {
82
82
  }
83
83
  return i;
84
84
  }
85
- function D(e, t, n) {
85
+ function k(e, t, n) {
86
86
  let [r, ...i] = t;
87
87
  if (i.length === 0) return Array.isArray(e) ? Object.assign([...e], { [r]: n }) : {
88
88
  ...e,
89
89
  [r]: n
90
90
  };
91
- let a = e[r], o = D(Array.isArray(a) ? [...a] : typeof a == "object" && a ? { ...a } : {}, i, n);
91
+ let a = e[r], o = k(Array.isArray(a) ? [...a] : typeof a == "object" && a ? { ...a } : {}, i, n);
92
92
  return Array.isArray(e) ? Object.assign([...e], { [r]: o }) : {
93
93
  ...e,
94
94
  [r]: o
95
95
  };
96
96
  }
97
- function O(e, t) {
97
+ function A(e, t) {
98
98
  let n, r = !0;
99
99
  for (let i of e) {
100
- let e = E(i, t);
100
+ let e = O(i, t);
101
101
  if (r) n = e, r = !1;
102
- else if (!Object.is(e, n)) return h;
102
+ else if (!Object.is(e, n)) return _;
103
103
  }
104
104
  return n;
105
105
  }
106
- function k(e) {
106
+ function j(e) {
107
107
  let t = /* @__PURE__ */ new Map();
108
108
  for (let n of e) t.set(n, (t.get(n) ?? 0) + 1);
109
109
  return [...t.entries()].map(([e, t]) => t > 1 ? `${e} ×${t}` : e).join(" · ");
110
110
  }
111
- var A = {
111
+ var M = {
112
112
  root: "_root_q9h3j_1",
113
113
  header: "_header_q9h3j_8",
114
114
  kind: "_kind_q9h3j_16",
@@ -131,71 +131,71 @@ var A = {
131
131
  objectGroup: "_objectGroup_q9h3j_146",
132
132
  slider: "_slider_q9h3j_153",
133
133
  sliderReadout: "_sliderReadout_q9h3j_157"
134
- }, j = (e) => e.length === 0 ? e : e[0].toUpperCase() + e.slice(1);
135
- function M(e) {
136
- let { scene: t, selection: n, properties: r, routing: i, renderers: a, kindLabel: o = j, emptyState: s = null, className: c } = e;
137
- b(t.subscribe, t.getVersion, t.getVersion);
138
- let l = n.current.map((e) => t.get(g(e))).filter((e) => e != null), u = l.map((e) => x(e, i)), d = l.map((e) => e.id).join(","), h = T(u, r);
139
- if (l.length === 0) return /* @__PURE__ */ p("div", {
140
- className: [A.root, c].filter(Boolean).join(" "),
134
+ }, N = (e) => e.length === 0 ? e : e[0].toUpperCase() + e.slice(1);
135
+ function P(e) {
136
+ let { scene: t, selection: n, properties: r, routing: i, renderers: a, kindLabel: o = N, emptyState: s = null, className: c } = e;
137
+ S(t.subscribe, t.getVersion, t.getVersion);
138
+ let l = n.current.map((e) => t.get(v(e))).filter((e) => e != null), u = l.map((e) => C(e, i)), d = l.map((e) => e.id).join(","), f = D(u, r);
139
+ if (l.length === 0) return /* @__PURE__ */ h("div", {
140
+ className: [M.root, c].filter(Boolean).join(" "),
141
141
  children: s
142
142
  });
143
- let _ = (e, r) => {
143
+ let p = (e, r) => {
144
144
  let [i, ...a] = e.path.split(".");
145
145
  if (a.length === 0) return;
146
- let o = n.current.map(g);
146
+ let o = n.current.map(v);
147
147
  t.batch(`Edit ${e.leaf.name}`, () => {
148
148
  for (let e of o) {
149
149
  let n = t.get(e);
150
- n && (i === "pose" ? t.setPose(e, D(n.pose, a, r)) : i === "data" && t.update(e, { data: D(n.data, a, r) }));
150
+ n && (i === "pose" ? t.setPose(e, k(n.pose, a, r)) : i === "data" && t.update(e, { data: k(n.data, a, r) }));
151
151
  }
152
152
  });
153
153
  };
154
- return /* @__PURE__ */ m("div", {
155
- className: [A.root, c].filter(Boolean).join(" "),
156
- children: [/* @__PURE__ */ p("header", {
157
- className: A.header,
158
- children: l.length === 1 ? /* @__PURE__ */ p("span", {
159
- className: A.kind,
154
+ return /* @__PURE__ */ g("div", {
155
+ className: [M.root, c].filter(Boolean).join(" "),
156
+ children: [/* @__PURE__ */ h("header", {
157
+ className: M.header,
158
+ children: l.length === 1 ? /* @__PURE__ */ h("span", {
159
+ className: M.kind,
160
160
  children: o(u[0])
161
- }) : /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("span", {
162
- className: A.kind,
161
+ }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ g("span", {
162
+ className: M.kind,
163
163
  children: [l.length, " selected"]
164
- }), /* @__PURE__ */ p("span", {
165
- className: A.breakdown,
166
- children: k(u)
164
+ }), /* @__PURE__ */ h("span", {
165
+ className: M.breakdown,
166
+ children: j(u)
167
167
  })] })
168
- }), h.map((e) => {
168
+ }), f.map((e) => {
169
169
  let t = e.rows.map((e) => ({
170
170
  row: e,
171
- controls: F(e.leaves.map((t) => N(t, e.leaves.length > 1 ? `${e.label} ${t.leaf.name}` : t.leaf.name, l, a, _, d)), a)
171
+ controls: L(e.leaves.map((t) => F(t, e.leaves.length > 1 ? `${e.label} ${t.leaf.name}` : t.leaf.name, l, a, p, d)), a)
172
172
  })).filter(({ controls: e }) => e.length > 0);
173
- return t.length === 0 ? null : /* @__PURE__ */ m("section", {
174
- className: A.section,
175
- children: [e.name !== "" && /* @__PURE__ */ p("h3", {
176
- className: A.sectionTitle,
173
+ return t.length === 0 ? null : /* @__PURE__ */ g("section", {
174
+ className: M.section,
175
+ children: [e.name !== "" && /* @__PURE__ */ h("h3", {
176
+ className: M.sectionTitle,
177
177
  children: e.name
178
- }), t.map(({ row: t, controls: n }) => t.leaves.length === 1 && t.leaves[0].leaf.block ? /* @__PURE__ */ m("div", { children: [e.name === "" && t.leaves[0].leaf.kind !== "object" && /* @__PURE__ */ p("h4", {
179
- className: A.sectionTitle,
178
+ }), t.map(({ row: t, controls: n }) => t.leaves.length === 1 && t.leaves[0].leaf.block ? /* @__PURE__ */ g("div", { children: [e.name === "" && t.leaves[0].leaf.kind !== "object" && /* @__PURE__ */ h("h4", {
179
+ className: M.sectionTitle,
180
180
  title: t.leaves[0].leaf.description,
181
181
  children: t.leaves[0].leaf.name
182
- }), n[0].content] }, t.leaves[0].path) : /* @__PURE__ */ m("div", {
183
- className: A.row,
184
- children: [/* @__PURE__ */ p("span", {
185
- className: A.rowLabel,
182
+ }), n[0].content] }, t.leaves[0].path) : /* @__PURE__ */ g("div", {
183
+ className: M.row,
184
+ children: [/* @__PURE__ */ h("span", {
185
+ className: M.rowLabel,
186
186
  title: t.leaves[0].leaf.description,
187
187
  children: t.label
188
- }), /* @__PURE__ */ p("span", {
189
- className: A.rowControls,
190
- children: n.map(({ key: e, content: t }) => /* @__PURE__ */ p(v, { children: t }, e))
188
+ }), /* @__PURE__ */ h("span", {
189
+ className: M.rowControls,
190
+ children: n.map(({ key: e, content: t }) => /* @__PURE__ */ h(b, { children: t }, e))
191
191
  })]
192
192
  }, t.leaves[0].path))]
193
193
  }, e.key);
194
194
  })]
195
195
  });
196
196
  }
197
- function N(e, t, n, r, i, a) {
198
- let { path: o, leaf: s } = e, c = O(n, o), l = c === h, u = {
197
+ function F(e, t, n, r, i, a) {
198
+ let { path: o, leaf: s } = e, c = A(n, o), l = c === _, u = {
199
199
  path: o,
200
200
  pref: s,
201
201
  value: l ? void 0 : c,
@@ -203,8 +203,8 @@ function N(e, t, n, r, i, a) {
203
203
  unset: !l && c === void 0,
204
204
  setValue: (t) => i(e, t),
205
205
  valueAt: (e) => {
206
- let t = O(n, e);
207
- return t === h ? {
206
+ let t = A(n, e);
207
+ return t === _ ? {
208
208
  value: void 0,
209
209
  mixed: !0
210
210
  } : {
@@ -220,19 +220,19 @@ function N(e, t, n, r, i, a) {
220
220
  ariaLabel: t,
221
221
  render: () => {
222
222
  let e = r?.[o] ?? r?.[s.kind];
223
- return e ? e(u) : L(u, t, r, a);
223
+ return e ? e(u) : z(u, t, r, a);
224
224
  }
225
225
  };
226
226
  }
227
- function P(e, t) {
227
+ function I(e, t) {
228
228
  let { leaf: n } = e;
229
229
  return n.kind === "boolean" && n.control === "toggle" && n.pair !== void 0 && t?.[e.ctx.path] === void 0 && t?.[n.kind] === void 0;
230
230
  }
231
- function F(e, t) {
231
+ function L(e, t) {
232
232
  let n = [];
233
233
  for (let r = 0; r < e.length;) {
234
234
  let i = e[r];
235
- if (!P(i, t)) {
235
+ if (!I(i, t)) {
236
236
  let e = i.render();
237
237
  e != null && n.push({
238
238
  key: i.key,
@@ -243,13 +243,13 @@ function F(e, t) {
243
243
  continue;
244
244
  }
245
245
  let a = r + 1;
246
- for (; a < e.length && P(e[a], t) && e[a].leaf.pair === i.leaf.pair;) a += 1;
246
+ for (; a < e.length && I(e[a], t) && e[a].leaf.pair === i.leaf.pair;) a += 1;
247
247
  let o = e.slice(r, a);
248
248
  n.push({
249
249
  key: i.key,
250
250
  leaf: i.leaf,
251
251
  block: o.every((e) => e.leaf.block === !0),
252
- content: /* @__PURE__ */ p(I, {
252
+ content: /* @__PURE__ */ h(R, {
253
253
  run: o,
254
254
  ariaLabel: i.leaf.pair
255
255
  })
@@ -257,19 +257,19 @@ function F(e, t) {
257
257
  }
258
258
  return n;
259
259
  }
260
- function I({ run: r, ariaLabel: i }) {
260
+ function R({ run: r, ariaLabel: i }) {
261
261
  let a = r.filter((e) => e.ctx.value === !0).map((e) => e.key);
262
- return /* @__PURE__ */ p(n, {
262
+ return /* @__PURE__ */ h(n, {
263
263
  mode: "multiple",
264
264
  size: "sm",
265
265
  variant: "flat",
266
- className: A.flagToggle,
266
+ className: M.flagToggle,
267
267
  ariaLabel: i,
268
268
  items: r.map((n) => {
269
269
  let r = n.leaf;
270
270
  return {
271
271
  value: n.key,
272
- label: r.icon && r.icon in e ? /* @__PURE__ */ p(t, {
272
+ label: r.icon && r.icon in e ? /* @__PURE__ */ h(t, {
273
273
  name: r.icon,
274
274
  size: 14
275
275
  }) : r.short ?? r.name.slice(0, 1),
@@ -286,117 +286,127 @@ function I({ run: r, ariaLabel: i }) {
286
286
  }
287
287
  });
288
288
  }
289
- function L(c, h, g, v = "", y = !1) {
290
- let { pref: b, value: x, mixed: S, unset: C, setValue: w } = c;
291
- if (b.kind === "font-family") {
289
+ function z(c, _, v, b = "", x = !1) {
290
+ let { pref: S, value: C, mixed: w, unset: T, setValue: E } = c;
291
+ if (S.kind === "font-family") {
292
292
  let e = c.valueAt("data.style.fontWeight"), t = c.valueAt("data.style.fontStyle");
293
- return /* @__PURE__ */ p(s, {
294
- className: A.select,
295
- value: S || typeof x != "string" ? void 0 : x,
296
- mixed: S,
297
- onChange: w,
293
+ return /* @__PURE__ */ h(s, {
294
+ className: M.select,
295
+ value: w || typeof C != "string" ? void 0 : C,
296
+ mixed: w,
297
+ onChange: E,
298
298
  weight: typeof e.value == "number" ? e.value : void 0,
299
299
  fontStyle: t.value === "italic" ? "italic" : void 0,
300
- "aria-label": h
300
+ "aria-label": _
301
301
  });
302
302
  }
303
- if (!_(b)) return /* @__PURE__ */ m("span", {
304
- className: A.unrenderable,
303
+ if (!y(S)) return /* @__PURE__ */ g("span", {
304
+ className: M.unrenderable,
305
305
  children: [
306
306
  "(",
307
- b.kind,
307
+ S.kind,
308
308
  ": no renderer)"
309
309
  ]
310
310
  });
311
- switch (b.kind) {
311
+ switch (S.kind) {
312
312
  case "number": {
313
- let e = b, t = typeof x == "number" && Number.isFinite(x) ? x : void 0, n = t === void 0 ? NaN : e.unit ? e.unit.toDisplay(t) : t, i = d(e);
313
+ let e = S, t = typeof C == "number" && Number.isFinite(C) ? C : void 0, n = t === void 0 ? NaN : e.unit ? e.unit.toDisplay(t) : t, i = f(e);
314
314
  if (e.control === "slider") {
315
- let a = i.min ?? 0, o = i.max ?? 100, s = !S && t !== void 0;
316
- return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(r, {
315
+ let a = i.min ?? 0, o = i.max ?? 100, s = !w && t !== void 0;
316
+ return /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(r, {
317
317
  min: a,
318
318
  max: o,
319
319
  step: i.step,
320
320
  value: s ? Math.min(Math.max(n, a), o) : a,
321
- disabled: S,
322
- className: A.slider,
323
- "aria-label": h,
321
+ disabled: w,
322
+ className: M.slider,
323
+ "aria-label": _,
324
324
  onChange: (t) => {
325
325
  let n = Number(t.target.value);
326
- w(e.unit ? e.unit.fromDisplay(n) : n);
326
+ E(e.unit ? e.unit.fromDisplay(n) : n);
327
327
  }
328
- }), /* @__PURE__ */ p("span", {
329
- className: A.sliderReadout,
328
+ }), /* @__PURE__ */ h("span", {
329
+ className: M.sliderReadout,
330
330
  "aria-hidden": "true",
331
331
  children: s ? `${n}${e.unit?.suffix ?? ""}` : "—"
332
332
  })] });
333
333
  }
334
- let a = /* @__PURE__ */ p(l, {
335
- className: A.number,
336
- value: S || t === void 0 ? NaN : n,
337
- placeholder: S ? "Mixed" : void 0,
334
+ let a = e.unit, o = a ? /* @__PURE__ */ h(u, {
335
+ className: M.number,
336
+ value: w || t === void 0 ? NaN : n,
337
+ placeholder: w ? "Mixed" : void 0,
338
+ minValue: i.min,
339
+ maxValue: i.max,
340
+ step: i.step,
341
+ accepts: p(a),
342
+ "aria-label": _,
343
+ onChange: (e) => E(a.fromDisplay(e))
344
+ }) : /* @__PURE__ */ h(l, {
345
+ className: M.number,
346
+ value: w || t === void 0 ? NaN : n,
347
+ placeholder: w ? "Mixed" : void 0,
338
348
  minValue: i.min,
339
349
  maxValue: i.max,
340
350
  step: i.step,
341
351
  hideSteppers: !0,
342
- "aria-label": h,
343
- onChange: (t) => {
344
- Number.isNaN(t) || w(e.unit ? e.unit.fromDisplay(t) : t);
352
+ "aria-label": _,
353
+ onChange: (e) => {
354
+ Number.isNaN(e) || E(e);
345
355
  }
346
356
  });
347
- return e.unit?.suffix === void 0 ? a : /* @__PURE__ */ m(f, { children: [a, /* @__PURE__ */ p("span", {
348
- className: A.unitSuffix,
357
+ return a?.suffix === void 0 ? o : /* @__PURE__ */ g(m, { children: [o, /* @__PURE__ */ h("span", {
358
+ className: M.unitSuffix,
349
359
  "aria-hidden": "true",
350
- children: e.unit.suffix
360
+ children: a.suffix
351
361
  })] });
352
362
  }
353
- case "string": return /* @__PURE__ */ p(z, {
354
- text: S ? void 0 : typeof x == "string" ? x : "",
355
- placeholder: S ? "Mixed" : void 0,
356
- ariaLabel: h,
357
- onCommit: w
363
+ case "string": return /* @__PURE__ */ h(V, {
364
+ text: w ? void 0 : typeof C == "string" ? C : "",
365
+ placeholder: w ? "Mixed" : void 0,
366
+ ariaLabel: _,
367
+ onCommit: E
358
368
  });
359
369
  case "boolean": {
360
- let r = b;
361
- if (r.control === "toggle") return /* @__PURE__ */ p(n, {
370
+ let r = S;
371
+ if (r.control === "toggle") return /* @__PURE__ */ h(n, {
362
372
  mode: "multiple",
363
373
  size: "sm",
364
374
  variant: "flat",
365
- className: A.flagToggle,
366
- ariaLabel: h,
375
+ className: M.flagToggle,
376
+ ariaLabel: _,
367
377
  items: [{
368
378
  value: c.path,
369
- label: r.icon && r.icon in e ? /* @__PURE__ */ p(t, {
379
+ label: r.icon && r.icon in e ? /* @__PURE__ */ h(t, {
370
380
  name: r.icon,
371
381
  size: 14
372
382
  }) : r.short ?? r.name.slice(0, 1),
373
- ariaLabel: h
383
+ ariaLabel: _
374
384
  }],
375
- value: x === !0 ? [c.path] : [],
376
- mixedValues: S ? [c.path] : [],
377
- onChange: (e) => w(e.includes(c.path))
385
+ value: C === !0 ? [c.path] : [],
386
+ mixedValues: w ? [c.path] : [],
387
+ onChange: (e) => E(e.includes(c.path))
378
388
  });
379
- let i = /* @__PURE__ */ p(u, {
380
- isSelected: !!x,
381
- onChange: w,
382
- "aria-label": h
389
+ let i = /* @__PURE__ */ h(d, {
390
+ isSelected: !!C,
391
+ onChange: E,
392
+ "aria-label": _
383
393
  });
384
- return !S && !C ? i : /* @__PURE__ */ p("span", {
385
- className: A.mixedSwitch,
386
- title: S ? "Mixed" : "Not set",
394
+ return !w && !T ? i : /* @__PURE__ */ h("span", {
395
+ className: M.mixedSwitch,
396
+ title: w ? "Mixed" : "Not set",
387
397
  children: i
388
398
  });
389
399
  }
390
400
  case "enum": {
391
- let r = b, i = r.encoding ? S ? void 0 : r.encoding.read(x, c.siblings) : S || C ? void 0 : typeof x == "string" ? x : r.default, a = (e) => w(r.encoding ? r.encoding.write(e, c.siblings) : e);
392
- return r.control === "toggle" ? /* @__PURE__ */ p(n, {
401
+ let r = S, i = r.encoding ? w ? void 0 : r.encoding.read(C, c.siblings) : w || T ? void 0 : typeof C == "string" ? C : r.default, a = (e) => E(r.encoding ? r.encoding.write(e, c.siblings) : e);
402
+ return r.control === "toggle" ? /* @__PURE__ */ h(n, {
393
403
  size: "sm",
394
404
  variant: "flat",
395
- className: A.toggle,
396
- ariaLabel: h,
405
+ className: M.toggle,
406
+ ariaLabel: _,
397
407
  items: r.options.map((n) => ({
398
408
  value: n.value,
399
- label: n.icon && n.icon in e ? /* @__PURE__ */ p(t, {
409
+ label: n.icon && n.icon in e ? /* @__PURE__ */ h(t, {
400
410
  name: n.icon,
401
411
  size: 14
402
412
  }) : n.short ?? n.label,
@@ -407,52 +417,52 @@ function L(c, h, g, v = "", y = !1) {
407
417
  onChange: (e) => {
408
418
  e !== null && a(e);
409
419
  }
410
- }) : /* @__PURE__ */ p(o, {
411
- className: A.select,
420
+ }) : /* @__PURE__ */ h(o, {
421
+ className: M.select,
412
422
  options: r.options.map((e) => ({
413
423
  value: e.value,
414
424
  label: e.label,
415
425
  isDisabled: e.disabled
416
426
  })),
417
427
  selectedKey: i ?? null,
418
- placeholder: S ? "Mixed" : C ? "—" : void 0,
428
+ placeholder: w ? "Mixed" : T ? "—" : void 0,
419
429
  onSelectionChange: a,
420
- "aria-label": h
430
+ "aria-label": _
421
431
  });
422
432
  }
423
433
  case "color": {
424
- let e = b;
425
- return /* @__PURE__ */ p(i, {
426
- value: S ? void 0 : typeof x == "string" ? x : e.default,
427
- mixed: S,
434
+ let e = S;
435
+ return /* @__PURE__ */ h(i, {
436
+ value: w ? void 0 : typeof C == "string" ? C : e.default,
437
+ mixed: w,
428
438
  alpha: e.alpha,
429
- onChange: w,
430
- "aria-label": h
439
+ onChange: E,
440
+ "aria-label": _
431
441
  });
432
442
  }
433
- case "paint": return /* @__PURE__ */ p(a, {
434
- value: x === null ? null : x ?? (S ? void 0 : b.default),
435
- mixed: S,
436
- unset: C,
437
- allowNone: !y,
438
- onChange: w,
439
- "aria-label": h
440
- }, v);
441
- case "object": return /* @__PURE__ */ p(R, {
443
+ case "paint": return /* @__PURE__ */ h(a, {
444
+ value: C === null ? null : C ?? (w ? void 0 : S.default),
445
+ mixed: w,
446
+ unset: T,
447
+ allowNone: !x,
448
+ onChange: E,
449
+ "aria-label": _
450
+ }, b);
451
+ case "object": return /* @__PURE__ */ h(B, {
442
452
  ctx: c,
443
- renderers: g,
444
- selectionKey: v
453
+ renderers: v,
454
+ selectionKey: b
445
455
  });
446
- default: throw Error(`SelectionPanel: no control for built-in pref kind "${b.kind}"`);
456
+ default: throw Error(`SelectionPanel: no control for built-in pref kind "${S.kind}"`);
447
457
  }
448
458
  }
449
- function R({ ctx: n, renderers: r, selectionKey: i = "" }) {
459
+ function B({ ctx: n, renderers: r, selectionKey: i = "" }) {
450
460
  let a = n.pref, o = typeof n.value == "object" && n.value !== null ? n.value : void 0, s = Object.values(a.children).every((e) => !("kind" in e)), c = (s, l) => {
451
- let u = [], d = (e) => typeof e == "object" && !!e && "controls" in e, f = [], h = () => {
452
- for (let { key: e, leaf: t, block: n, content: i } of F(f, r)) {
461
+ let u = [], d = (e) => typeof e == "object" && !!e && "controls" in e, f = [], p = () => {
462
+ for (let { key: e, leaf: t, block: n, content: i } of L(f, r)) {
453
463
  let r = u[u.length - 1];
454
464
  if (t.pair !== void 0 && d(r) && r.pair === t.pair) {
455
- r.controls.push(/* @__PURE__ */ p(v, { children: i }, e)), r.block &&= n;
465
+ r.controls.push(/* @__PURE__ */ h(b, { children: i }, e)), r.block &&= n;
456
466
  continue;
457
467
  }
458
468
  u.push({
@@ -461,27 +471,27 @@ function R({ ctx: n, renderers: r, selectionKey: i = "" }) {
461
471
  label: t.pair ?? t.name,
462
472
  title: t.description,
463
473
  block: n,
464
- controls: [/* @__PURE__ */ p(v, { children: i }, e)]
474
+ controls: [/* @__PURE__ */ h(b, { children: i }, e)]
465
475
  });
466
476
  }
467
477
  f = [];
468
478
  };
469
- for (let [d, g] of Object.entries(s)) {
470
- if (!("kind" in g)) {
471
- let e = g.name !== "", t = c(g.children, e);
479
+ for (let [d, m] of Object.entries(s)) {
480
+ if (!("kind" in m)) {
481
+ let e = m.name !== "", t = c(m.children, e);
472
482
  if (t.length === 0) continue;
473
- h(), u.push(/* @__PURE__ */ m("div", {
474
- className: e && l ? A.objectGroup : void 0,
475
- children: [e && /* @__PURE__ */ p("h5", {
476
- className: A.sectionTitle,
477
- children: g.name
483
+ p(), u.push(/* @__PURE__ */ g("div", {
484
+ className: e && l ? M.objectGroup : void 0,
485
+ children: [e && /* @__PURE__ */ h("h5", {
486
+ className: M.sectionTitle,
487
+ children: m.name
478
488
  }), t]
479
489
  }, `group:${d}`));
480
490
  continue;
481
491
  }
482
492
  let s = `${n.path}.${d}`, _ = {
483
493
  path: s,
484
- pref: g,
494
+ pref: m,
485
495
  value: o?.[d],
486
496
  mixed: n.mixed,
487
497
  unset: !n.mixed && o?.[d] === void 0,
@@ -502,48 +512,48 @@ function R({ ctx: n, renderers: r, selectionKey: i = "" }) {
502
512
  };
503
513
  f.push({
504
514
  key: s,
505
- leaf: g,
515
+ leaf: m,
506
516
  ctx: _,
507
- ariaLabel: g.name,
517
+ ariaLabel: m.name,
508
518
  render: () => {
509
- let n = r?.[s] ?? r?.[g.kind], a = n ? n(_) : L(_, g.name, r, i, !0);
510
- return a == null ? null : (g.pair !== void 0 || g.block === !0) && g.icon && g.icon in e ? /* @__PURE__ */ m("span", {
511
- className: A.namedField,
512
- children: [/* @__PURE__ */ p(t, {
513
- name: g.icon,
519
+ let n = r?.[s] ?? r?.[m.kind], a = n ? n(_) : z(_, m.name, r, i, !0);
520
+ return a == null ? null : (m.pair !== void 0 || m.block === !0) && m.icon && m.icon in e ? /* @__PURE__ */ g("span", {
521
+ className: M.namedField,
522
+ children: [/* @__PURE__ */ h(t, {
523
+ name: m.icon,
514
524
  size: 14
515
525
  }), a]
516
526
  }) : a;
517
527
  }
518
528
  });
519
529
  }
520
- return h(), u.map((e) => typeof e == "object" && e && "controls" in e ? e.block ? /* @__PURE__ */ p("div", {
521
- className: `${A.rowControls} ${A.blockRow}`,
530
+ return p(), u.map((e) => typeof e == "object" && e && "controls" in e ? e.block ? /* @__PURE__ */ h("div", {
531
+ className: `${M.rowControls} ${M.blockRow}`,
522
532
  title: e.title,
523
533
  children: e.controls
524
- }, e.key) : /* @__PURE__ */ m("div", {
525
- className: A.row,
526
- children: [/* @__PURE__ */ p("span", {
527
- className: A.rowLabel,
534
+ }, e.key) : /* @__PURE__ */ g("div", {
535
+ className: M.row,
536
+ children: [/* @__PURE__ */ h("span", {
537
+ className: M.rowLabel,
528
538
  title: e.title,
529
539
  children: e.label
530
- }), /* @__PURE__ */ p("span", {
531
- className: A.rowControls,
540
+ }), /* @__PURE__ */ h("span", {
541
+ className: M.rowControls,
532
542
  children: e.controls
533
543
  })]
534
544
  }, e.key) : e);
535
545
  }, l = c(a.children, !s);
536
- return l.length === 0 ? null : /* @__PURE__ */ m("div", {
537
- className: A.objectLeaf,
538
- children: [!s && /* @__PURE__ */ p("h4", {
539
- className: A.sectionTitle,
546
+ return l.length === 0 ? null : /* @__PURE__ */ g("div", {
547
+ className: M.objectLeaf,
548
+ children: [!s && /* @__PURE__ */ h("h4", {
549
+ className: M.sectionTitle,
540
550
  children: a.name
541
551
  }), l]
542
552
  });
543
553
  }
544
- function z({ text: e, placeholder: t, ariaLabel: n, onCommit: r }) {
545
- let [i, a] = y(null);
546
- return /* @__PURE__ */ p(c, {
554
+ function V({ text: e, placeholder: t, ariaLabel: n, onCommit: r }) {
555
+ let [i, a] = x(null);
556
+ return /* @__PURE__ */ h(c, {
547
557
  value: i ?? e ?? "",
548
558
  placeholder: t,
549
559
  "aria-label": n,
@@ -557,6 +567,6 @@ function z({ text: e, placeholder: t, ariaLabel: n, onCommit: r }) {
557
567
  });
558
568
  }
559
569
  //#endregion
560
- export { T as a, D as c, x as i, h as n, k as o, O as r, E as s, M as t };
570
+ export { D as a, k as c, C as i, _ as n, j as o, A as r, O as s, P as t };
561
571
 
562
- //# sourceMappingURL=SelectionPanel-C59wavdA.js.map
572
+ //# sourceMappingURL=SelectionPanel-CbyUT3Dh.js.map