@weasel-js/ui 1.4.0-pre.1 → 1.4.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 (146) hide show
  1. package/dist/chunks/{BandEditor-D13ybQN_.js → BandEditor-CfLW44uR.js} +1 -1
  2. package/dist/chunks/{BandEditor-D13ybQN_.js.map → BandEditor-CfLW44uR.js.map} +1 -1
  3. package/dist/chunks/{Callout-DAFusbzz.js → Callout-wRyevt8I.js} +1 -1
  4. package/dist/chunks/{Callout-DAFusbzz.js.map → Callout-wRyevt8I.js.map} +1 -1
  5. package/dist/chunks/{Checkbox-BePa_djO.js → Checkbox-D_GCnoJ0.js} +1 -1
  6. package/dist/chunks/{Checkbox-BePa_djO.js.map → Checkbox-D_GCnoJ0.js.map} +1 -1
  7. package/dist/chunks/{ColorField-CKbnsEUN.js → ColorField-pEkaSppg.js} +7 -7
  8. package/dist/chunks/ColorField-pEkaSppg.js.map +1 -0
  9. package/dist/chunks/{ComboBox-B6QS8y3j.js → ComboBox-inno5gt1.js} +9 -9
  10. package/dist/chunks/ComboBox-inno5gt1.js.map +1 -0
  11. package/dist/chunks/{CurveEditor-COJ6WK9K.js → CurveEditor-Cpuvl_iN.js} +2 -2
  12. package/dist/chunks/{CurveEditor-COJ6WK9K.js.map → CurveEditor-Cpuvl_iN.js.map} +1 -1
  13. package/dist/chunks/{DetentSlider-CXIeTHaM.js → DetentSlider--tQdVQj_.js} +2 -2
  14. package/dist/chunks/{DetentSlider-CXIeTHaM.js.map → DetentSlider--tQdVQj_.js.map} +1 -1
  15. package/dist/chunks/{Dialog-CQAZ7hS7.js → Dialog-CX2B8PIp.js} +1 -1
  16. package/dist/chunks/{Dialog-CQAZ7hS7.js.map → Dialog-CX2B8PIp.js.map} +1 -1
  17. package/dist/chunks/{Field-BCcTt6Fd.js → Field-Bc6Nuc3p.js} +1 -1
  18. package/dist/chunks/{Field-BCcTt6Fd.js.map → Field-Bc6Nuc3p.js.map} +1 -1
  19. package/dist/chunks/{FontFamilySelect-DwkwRYrr.js → FontFamilySelect-CvrXKVwv.js} +2 -2
  20. package/dist/chunks/{FontFamilySelect-DwkwRYrr.js.map → FontFamilySelect-CvrXKVwv.js.map} +1 -1
  21. package/dist/chunks/{GradientEditor-FwNdxxf-.js → GradientEditor-C5pPbMa_.js} +3 -3
  22. package/dist/chunks/{GradientEditor-FwNdxxf-.js.map → GradientEditor-C5pPbMa_.js.map} +1 -1
  23. package/dist/chunks/{Icon-CxoJb_bw.js → Icon-DBXtBB1f.js} +8 -2
  24. package/dist/chunks/{Icon-CxoJb_bw.js.map → Icon-DBXtBB1f.js.map} +1 -1
  25. package/dist/chunks/InlineRange-CBt_SBsC.js +29 -0
  26. package/dist/chunks/InlineRange-CBt_SBsC.js.map +1 -0
  27. package/dist/chunks/{Input-DRUeowbz.js → Input-CSAECs_T.js} +5 -5
  28. package/dist/chunks/Input-CSAECs_T.js.map +1 -0
  29. package/dist/chunks/{ItemList-BUTk9E8-.js → ItemList-POiCvUDx.js} +7 -7
  30. package/dist/chunks/ItemList-POiCvUDx.js.map +1 -0
  31. package/dist/chunks/{NumberField-CQ7OJORF.js → NumberField-Byw1iaIJ.js} +12 -11
  32. package/dist/chunks/NumberField-Byw1iaIJ.js.map +1 -0
  33. package/dist/chunks/{PaintInput-CgZR3B0r.js → PaintInput-DtCSGda0.js} +5 -5
  34. package/dist/chunks/{PaintInput-CgZR3B0r.js.map → PaintInput-DtCSGda0.js.map} +1 -1
  35. package/dist/chunks/{PatternPicker-v9BFsaMM.js → PatternPicker-G9e0CU5H.js} +1 -1
  36. package/dist/chunks/{PatternPicker-v9BFsaMM.js.map → PatternPicker-G9e0CU5H.js.map} +1 -1
  37. package/dist/chunks/{Plot2D-B08SYGQV.js → Plot2D-D63D5w6c.js} +1 -1
  38. package/dist/chunks/{Plot2D-B08SYGQV.js.map → Plot2D-D63D5w6c.js.map} +1 -1
  39. package/dist/chunks/{PointPlotter-DEh7a3xB.js → PointPlotter-CR-QGCIf.js} +2 -2
  40. package/dist/chunks/{PointPlotter-DEh7a3xB.js.map → PointPlotter-CR-QGCIf.js.map} +1 -1
  41. package/dist/chunks/{Powerline-M1Q3Hx5E.js → Powerline--gx4j0Zr.js} +1 -1
  42. package/dist/chunks/{Powerline-M1Q3Hx5E.js.map → Powerline--gx4j0Zr.js.map} +1 -1
  43. package/dist/chunks/{Prefs-C2qhxnmt.js → Prefs-ByKG3ylD.js} +10 -10
  44. package/dist/chunks/{Prefs-C2qhxnmt.js.map → Prefs-ByKG3ylD.js.map} +1 -1
  45. package/dist/chunks/Properties-BEGlt0Z2.js +662 -0
  46. package/dist/chunks/Properties-BEGlt0Z2.js.map +1 -0
  47. package/dist/chunks/{RadioGroup-B8eMJ6lu.js → RadioGroup-XjbfUb7S.js} +2 -2
  48. package/dist/chunks/{RadioGroup-B8eMJ6lu.js.map → RadioGroup-XjbfUb7S.js.map} +1 -1
  49. package/dist/chunks/{RangeSlider-JczhglgA.js → RangeSlider-D0hFbx_Z.js} +1 -1
  50. package/dist/chunks/{RangeSlider-JczhglgA.js.map → RangeSlider-D0hFbx_Z.js.map} +1 -1
  51. package/dist/chunks/{ResizeHandle-CXBXV6Px.js → ResizeHandle-DjGZkPpx.js} +1 -1
  52. package/dist/chunks/{ResizeHandle-CXBXV6Px.js.map → ResizeHandle-DjGZkPpx.js.map} +1 -1
  53. package/dist/chunks/{Select-g8PhE010.js → Select-D1uP21db.js} +2 -2
  54. package/dist/chunks/{Select-g8PhE010.js.map → Select-D1uP21db.js.map} +1 -1
  55. package/dist/chunks/{SelectionPanel-Cl18SdD6.js → SelectionPanel-OfbtyDJH.js} +10 -10
  56. package/dist/chunks/{SelectionPanel-Cl18SdD6.js.map → SelectionPanel-OfbtyDJH.js.map} +1 -1
  57. package/dist/chunks/{Sidebar-mWGsndWw.js → Sidebar-Du0yp1S0.js} +1 -1
  58. package/dist/chunks/{Sidebar-mWGsndWw.js.map → Sidebar-Du0yp1S0.js.map} +1 -1
  59. package/dist/chunks/{SidebarPanel-B2d0erLv.js → SidebarPanel-Cuq__FIC.js} +2 -2
  60. package/dist/chunks/{SidebarPanel-B2d0erLv.js.map → SidebarPanel-Cuq__FIC.js.map} +1 -1
  61. package/dist/chunks/{Slider-BbbmHE0c.js → Slider-CSwL-Nj9.js} +71 -66
  62. package/dist/chunks/Slider-CSwL-Nj9.js.map +1 -0
  63. package/dist/chunks/{StatusBar-xxCcWsfq.js → StatusBar-DLYwh5sb.js} +1 -1
  64. package/dist/chunks/{StatusBar-xxCcWsfq.js.map → StatusBar-DLYwh5sb.js.map} +1 -1
  65. package/dist/chunks/{Switch-QviBb61l.js → Switch-B521iN3m.js} +1 -1
  66. package/dist/chunks/{Switch-QviBb61l.js.map → Switch-B521iN3m.js.map} +1 -1
  67. package/dist/chunks/{Tabs-DT-dIt6d.js → Tabs-BuifAv0p.js} +1 -1
  68. package/dist/chunks/{Tabs-DT-dIt6d.js.map → Tabs-BuifAv0p.js.map} +1 -1
  69. package/dist/chunks/{Timeline-DsLeV5I1.js → Timeline-BE7UWajy.js} +37 -37
  70. package/dist/chunks/Timeline-BE7UWajy.js.map +1 -0
  71. package/dist/chunks/{Toast-CfkiN0Nv.js → Toast-B75V2gqL.js} +1 -1
  72. package/dist/chunks/{Toast-CfkiN0Nv.js.map → Toast-B75V2gqL.js.map} +1 -1
  73. package/dist/chunks/{ToolButton-CLoR9Z4o.js → ToolButton-D5VwD47i.js} +1 -1
  74. package/dist/chunks/{ToolButton-CLoR9Z4o.js.map → ToolButton-D5VwD47i.js.map} +1 -1
  75. package/dist/chunks/{ToolGroup-BnE23mcA.js → ToolGroup-B2PlMKQ-.js} +1 -1
  76. package/dist/chunks/{ToolGroup-BnE23mcA.js.map → ToolGroup-B2PlMKQ-.js.map} +1 -1
  77. package/dist/chunks/{ToolPalette-W-rAsomq.js → ToolPalette-Bi5ezkO6.js} +3 -3
  78. package/dist/chunks/{ToolPalette-W-rAsomq.js.map → ToolPalette-Bi5ezkO6.js.map} +1 -1
  79. package/dist/chunks/{icons-CdLHgzV8.js → icons-BV27dhKB.js} +58 -40
  80. package/dist/chunks/icons-BV27dhKB.js.map +1 -0
  81. package/dist/chunks/range.module-CttzfN6a.js +8 -0
  82. package/dist/chunks/range.module-CttzfN6a.js.map +1 -0
  83. package/dist/components/BandEditor/index.js +1 -1
  84. package/dist/components/Callout/index.js +1 -1
  85. package/dist/components/Checkbox/index.js +1 -1
  86. package/dist/components/ColorField/index.js +1 -1
  87. package/dist/components/ComboBox/index.js +1 -1
  88. package/dist/components/CurveEditor/index.js +1 -1
  89. package/dist/components/DetentSlider/index.js +1 -1
  90. package/dist/components/Dialog/index.js +1 -1
  91. package/dist/components/Field/index.js +1 -1
  92. package/dist/components/FontFamilySelect/index.js +1 -1
  93. package/dist/components/GradientEditor/index.js +1 -1
  94. package/dist/components/InlineRange/InlineRange.d.ts.map +1 -1
  95. package/dist/components/InlineRange/index.js +1 -1
  96. package/dist/components/Input/index.js +1 -1
  97. package/dist/components/ItemList/index.js +1 -1
  98. package/dist/components/NumberField/NumberField.d.ts +6 -0
  99. package/dist/components/NumberField/NumberField.d.ts.map +1 -1
  100. package/dist/components/NumberField/index.js +1 -1
  101. package/dist/components/PaintInput/index.js +1 -1
  102. package/dist/components/PatternPicker/index.js +1 -1
  103. package/dist/components/Plot2D/index.js +1 -1
  104. package/dist/components/PointPlotter/index.js +1 -1
  105. package/dist/components/Powerline/index.js +1 -1
  106. package/dist/components/Prefs/index.js +1 -1
  107. package/dist/components/Properties/PropertyPanel.d.ts +7 -1
  108. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  109. package/dist/components/Properties/index.js +1 -1
  110. package/dist/components/RadioGroup/index.js +1 -1
  111. package/dist/components/RangeSlider/index.js +1 -1
  112. package/dist/components/ResizeHandle/index.js +1 -1
  113. package/dist/components/Select/index.js +1 -1
  114. package/dist/components/SelectionPanel/index.js +1 -1
  115. package/dist/components/Sidebar/index.js +1 -1
  116. package/dist/components/SidebarPanel/index.js +1 -1
  117. package/dist/components/Slider/Slider.d.ts +3 -0
  118. package/dist/components/Slider/Slider.d.ts.map +1 -1
  119. package/dist/components/Slider/index.js +1 -1
  120. package/dist/components/StatusBar/index.js +1 -1
  121. package/dist/components/Switch/index.js +1 -1
  122. package/dist/components/Tabs/index.js +1 -1
  123. package/dist/components/Timeline/index.js +1 -1
  124. package/dist/components/Toast/index.js +1 -1
  125. package/dist/components/ToolButton/index.js +1 -1
  126. package/dist/components/ToolGroup/index.js +1 -1
  127. package/dist/components/ToolPalette/index.js +1 -1
  128. package/dist/icons/index.d.ts +6 -0
  129. package/dist/icons/index.d.ts.map +1 -1
  130. package/dist/icons/paths.d.ts +6 -0
  131. package/dist/icons/paths.d.ts.map +1 -1
  132. package/dist/index.js +62 -62
  133. package/dist/style.css +1 -1
  134. package/package.json +8 -5
  135. package/dist/chunks/ColorField-CKbnsEUN.js.map +0 -1
  136. package/dist/chunks/ComboBox-B6QS8y3j.js.map +0 -1
  137. package/dist/chunks/InlineRange-mb19EGOI.js +0 -24
  138. package/dist/chunks/InlineRange-mb19EGOI.js.map +0 -1
  139. package/dist/chunks/Input-DRUeowbz.js.map +0 -1
  140. package/dist/chunks/ItemList-BUTk9E8-.js.map +0 -1
  141. package/dist/chunks/NumberField-CQ7OJORF.js.map +0 -1
  142. package/dist/chunks/Properties-CFRJ8mYH.js +0 -655
  143. package/dist/chunks/Properties-CFRJ8mYH.js.map +0 -1
  144. package/dist/chunks/Slider-BbbmHE0c.js.map +0 -1
  145. package/dist/chunks/Timeline-DsLeV5I1.js.map +0 -1
  146. package/dist/chunks/icons-CdLHgzV8.js.map +0 -1
@@ -0,0 +1,662 @@
1
+ import { t as e } from "./dlog-CMYiRF3Q.js";
2
+ import { n as t, t as n } from "./Tooltip-Bq8Hvj4r.js";
3
+ import { i as r, n as i } from "./number-D3TDawLC.js";
4
+ import { t as a } from "./range.module-CttzfN6a.js";
5
+ import { n as o } from "./CurveEditor-Cpuvl_iN.js";
6
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
+ import { useCallback as u, useMemo as d, useState as f } from "react";
8
+ import { Focusable as p } from "react-aria-components";
9
+ var m = {
10
+ field: "_field_17u88_1",
11
+ plot: "_plot_17u88_12",
12
+ marks: "_marks_17u88_17",
13
+ actions: "_actions_17u88_23",
14
+ action: "_action_17u88_23"
15
+ };
16
+ //#endregion
17
+ //#region src/components/Properties/CurveField.tsx
18
+ function h({ values: t, min: n, max: r, step: i, width: a, height: s = 110, defaults: f, onChange: p, marks: h }) {
19
+ let g = d(() => {
20
+ let e = [];
21
+ for (let n = 0; n + 1 < t.length; n += 2) e.push({
22
+ x: t[n],
23
+ y: t[n + 1]
24
+ });
25
+ return e;
26
+ }, [t]), _ = u((t) => {
27
+ let a = Array(t.length * 2);
28
+ for (let e = 0; e < t.length; e++) {
29
+ let o = Math.round(t[e].y / i) * i, s = Math.max(n, Math.min(r, o));
30
+ a[e * 2] = t[e].x, a[e * 2 + 1] = s;
31
+ }
32
+ e("curve-field", "handleChange", {
33
+ nLen: t.length,
34
+ flatLen: a.length,
35
+ sample: a.slice(0, 4)
36
+ }), p(a);
37
+ }, [
38
+ p,
39
+ n,
40
+ r,
41
+ i
42
+ ]), v = u(() => {
43
+ let e = [];
44
+ for (let n = 0; n + 1 < t.length; n += 2) e.push({
45
+ x: 1 - t[n],
46
+ y: t[n + 1]
47
+ });
48
+ e.sort((e, t) => e.x - t.x);
49
+ let n = [];
50
+ for (let t of e) n.push(t.x, t.y);
51
+ p(n);
52
+ }, [t, p]), y = u(() => {
53
+ let e = (n + r) / 2, i = Array(t.length);
54
+ for (let n = 0; n + 1 < t.length; n += 2) i[n] = t[n], i[n + 1] = 2 * e - t[n + 1];
55
+ p(i);
56
+ }, [
57
+ t,
58
+ n,
59
+ r,
60
+ p
61
+ ]);
62
+ return /* @__PURE__ */ l("div", {
63
+ className: m.field,
64
+ children: [/* @__PURE__ */ l("div", {
65
+ className: m.plot,
66
+ children: [/* @__PURE__ */ c(o, {
67
+ value: g,
68
+ onInput: _,
69
+ domain: "1d",
70
+ constrain: "function",
71
+ xRange: [0, 1],
72
+ yRange: [n, r],
73
+ width: a,
74
+ height: s,
75
+ endpoints: "pinned-x",
76
+ addPointMode: "click-curve",
77
+ minPoints: 2,
78
+ grid: {},
79
+ history: !1
80
+ }), h && h.length > 0 && /* @__PURE__ */ c("svg", {
81
+ className: m.marks,
82
+ width: a,
83
+ height: s,
84
+ viewBox: `0 0 ${a} ${s}`,
85
+ "aria-hidden": "true",
86
+ children: h.map((e) => {
87
+ let t = e.color ?? "#ffcc00";
88
+ if (e.kind === "band") {
89
+ let n = Math.max(0, Math.min(1, e.x[0])) * a, r = Math.max(0, Math.min(1, e.x[1])) * a, i = Math.min(n, r), o = Math.abs(r - n);
90
+ return /* @__PURE__ */ l("g", { children: [
91
+ /* @__PURE__ */ c("rect", {
92
+ x: i,
93
+ y: 0,
94
+ width: o,
95
+ height: s,
96
+ fill: t,
97
+ fillOpacity: .4
98
+ }),
99
+ /* @__PURE__ */ c("line", {
100
+ x1: i,
101
+ y1: 0,
102
+ x2: i,
103
+ y2: s,
104
+ stroke: t,
105
+ strokeOpacity: .85,
106
+ strokeWidth: 1
107
+ }),
108
+ /* @__PURE__ */ c("line", {
109
+ x1: i + o,
110
+ y1: 0,
111
+ x2: i + o,
112
+ y2: s,
113
+ stroke: t,
114
+ strokeOpacity: .85,
115
+ strokeWidth: 1
116
+ })
117
+ ] }, `band-${e.x[0]}-${e.x[1]}-${t}`);
118
+ }
119
+ let n = Math.max(0, Math.min(1, e.x)) * a;
120
+ return /* @__PURE__ */ c("line", {
121
+ x1: n,
122
+ y1: 0,
123
+ x2: n,
124
+ y2: s,
125
+ stroke: t,
126
+ strokeWidth: 1
127
+ }, `mark-${e.x}-${t}`);
128
+ })
129
+ })]
130
+ }), /* @__PURE__ */ l("div", {
131
+ className: m.actions,
132
+ children: [
133
+ /* @__PURE__ */ c("button", {
134
+ type: "button",
135
+ className: m.action,
136
+ onClick: v,
137
+ children: "Flip horizontally"
138
+ }),
139
+ /* @__PURE__ */ c("button", {
140
+ type: "button",
141
+ className: m.action,
142
+ onClick: y,
143
+ children: "Flip vertically"
144
+ }),
145
+ f && /* @__PURE__ */ c("button", {
146
+ type: "button",
147
+ className: m.action,
148
+ onClick: () => p([...f]),
149
+ children: "Reset"
150
+ })
151
+ ]
152
+ })]
153
+ });
154
+ }
155
+ var g = {
156
+ panel: "_panel_vxnqc_9",
157
+ list: "_list_vxnqc_3",
158
+ row: "_row_vxnqc_4",
159
+ group: "_group_vxnqc_4",
160
+ subpanel: "_subpanel_vxnqc_3",
161
+ card: "_card_vxnqc_14",
162
+ cardList: "_cardList_vxnqc_15",
163
+ panelTitle: "_panelTitle_vxnqc_35",
164
+ listPairs: "_listPairs_vxnqc_3",
165
+ rowColor: "_rowColor_vxnqc_4",
166
+ span: "_span_vxnqc_71",
167
+ rowLabel: "_rowLabel_vxnqc_99",
168
+ readout: "_readout_vxnqc_121",
169
+ help: "_help_vxnqc_133",
170
+ readoutInput: "_readoutInput_vxnqc_165",
171
+ readoutGroup: "_readoutGroup_vxnqc_203",
172
+ readoutUnit: "_readoutUnit_vxnqc_209",
173
+ fieldUnitGroup: "_fieldUnitGroup_vxnqc_216",
174
+ rowInline: "_rowInline_vxnqc_237",
175
+ toggle: "_toggle_vxnqc_255",
176
+ alpha: "_alpha_vxnqc_380",
177
+ rowCheckbox: "_rowCheckbox_vxnqc_389",
178
+ toggleButton: "_toggleButton_vxnqc_421",
179
+ toggleButtonSelected: "_toggleButtonSelected_vxnqc_447",
180
+ groupTitle: "_groupTitle_vxnqc_466",
181
+ groupBody: "_groupBody_vxnqc_4",
182
+ groupPairs: "_groupPairs_vxnqc_497",
183
+ subpanelTitle: "_subpanelTitle_vxnqc_529",
184
+ cardDragging: "_cardDragging_vxnqc_573",
185
+ cardExpanded: "_cardExpanded_vxnqc_577",
186
+ cardAccented: "_cardAccented_vxnqc_581",
187
+ cardHead: "_cardHead_vxnqc_596",
188
+ cardHandle: "_cardHandle_vxnqc_617",
189
+ cardIndexBadge: "_cardIndexBadge_vxnqc_630",
190
+ cardTitle: "_cardTitle_vxnqc_648",
191
+ cardPrimary: "_cardPrimary_vxnqc_658",
192
+ cardRemove: "_cardRemove_vxnqc_673",
193
+ cardBody: "_cardBody_vxnqc_702",
194
+ cardListWrap: "_cardListWrap_vxnqc_714",
195
+ cardDropHint: "_cardDropHint_vxnqc_718",
196
+ cardListEmpty: "_cardListEmpty_vxnqc_726"
197
+ };
198
+ //#endregion
199
+ //#region src/components/Properties/EffectCard.tsx
200
+ function _({ title: e, children: t, className: n }) {
201
+ return /* @__PURE__ */ l("div", {
202
+ className: n ? `${g.subpanel} ${n}` : g.subpanel,
203
+ children: [/* @__PURE__ */ l("h4", {
204
+ className: g.subpanelTitle,
205
+ children: [/* @__PURE__ */ c("span", { children: e }), /* @__PURE__ */ c("hr", {})]
206
+ }), t]
207
+ });
208
+ }
209
+ function v({ title: e, primary: t, accent: n, index: r, expanded: i = !0, onToggleExpanded: a, onRemove: o, draggable: s, onPressHandle: u, onReleaseHandle: d, onDragStart: f, onDragEnd: p, onDragOver: m, onDragLeave: h, onDrop: _, dragging: v, children: b, className: x }) {
210
+ let S = `${i ? ` ${g.cardExpanded}` : ""}${v ? ` ${g.cardDragging}` : ""}${n ? ` ${g.cardAccented}` : ""}`, C = `${g.card}${S}${x ? ` ${x}` : ""}`, w = n ? { "--wzl-effect-card-accent": n } : void 0, T = a ? {
211
+ role: "button",
212
+ tabIndex: 0,
213
+ onClick: a,
214
+ onKeyDown: (e) => {
215
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), a());
216
+ }
217
+ } : {};
218
+ return /* @__PURE__ */ l("div", {
219
+ className: C,
220
+ style: w,
221
+ draggable: s,
222
+ onDragStart: f,
223
+ onDragEnd: p,
224
+ onDragOver: m,
225
+ onDragLeave: h,
226
+ onDrop: _,
227
+ children: [/* @__PURE__ */ l("div", {
228
+ className: g.cardHead,
229
+ ...T,
230
+ children: [
231
+ r == null ? /* @__PURE__ */ c("span", {
232
+ className: g.cardHandle,
233
+ "aria-hidden": "true",
234
+ title: "Drag to reorder",
235
+ onMouseDown: u,
236
+ onMouseUp: d,
237
+ children: /* @__PURE__ */ c(y, {})
238
+ }) : /* @__PURE__ */ c("button", {
239
+ type: "button",
240
+ className: `${g.cardIndexBadge} ${g.cardHandle}`,
241
+ title: "Drag to reorder · click to toggle",
242
+ "aria-label": `Item ${r + 1} — drag to reorder, click to toggle`,
243
+ onMouseDown: u,
244
+ onMouseUp: d,
245
+ onClick: (e) => {
246
+ e.stopPropagation(), a?.();
247
+ },
248
+ children: r + 1
249
+ }),
250
+ /* @__PURE__ */ c("span", {
251
+ className: g.cardTitle,
252
+ children: e
253
+ }),
254
+ t != null && /* @__PURE__ */ c("span", {
255
+ className: g.cardPrimary,
256
+ children: t
257
+ }),
258
+ o && /* @__PURE__ */ c("button", {
259
+ type: "button",
260
+ className: g.cardRemove,
261
+ onClick: (e) => {
262
+ e.stopPropagation(), o();
263
+ },
264
+ title: "Remove",
265
+ "aria-label": "Remove",
266
+ children: "✕"
267
+ })
268
+ ]
269
+ }), i && /* @__PURE__ */ c("div", {
270
+ className: g.cardBody,
271
+ children: b
272
+ })]
273
+ });
274
+ }
275
+ function y() {
276
+ return /* @__PURE__ */ l("svg", {
277
+ width: "10",
278
+ height: "14",
279
+ viewBox: "0 0 10 14",
280
+ "aria-hidden": "true",
281
+ children: [
282
+ /* @__PURE__ */ c("circle", {
283
+ cx: "3",
284
+ cy: "3",
285
+ r: "1.3",
286
+ fill: "currentColor"
287
+ }),
288
+ /* @__PURE__ */ c("circle", {
289
+ cx: "7",
290
+ cy: "3",
291
+ r: "1.3",
292
+ fill: "currentColor"
293
+ }),
294
+ /* @__PURE__ */ c("circle", {
295
+ cx: "3",
296
+ cy: "7",
297
+ r: "1.3",
298
+ fill: "currentColor"
299
+ }),
300
+ /* @__PURE__ */ c("circle", {
301
+ cx: "7",
302
+ cy: "7",
303
+ r: "1.3",
304
+ fill: "currentColor"
305
+ }),
306
+ /* @__PURE__ */ c("circle", {
307
+ cx: "3",
308
+ cy: "11",
309
+ r: "1.3",
310
+ fill: "currentColor"
311
+ }),
312
+ /* @__PURE__ */ c("circle", {
313
+ cx: "7",
314
+ cy: "11",
315
+ r: "1.3",
316
+ fill: "currentColor"
317
+ })
318
+ ]
319
+ });
320
+ }
321
+ function b({ items: e, renderItem: t, onReorder: n, empty: r, defaultExpandedIds: i }) {
322
+ let [a, o] = f(() => new Set(i ?? [])), [u, d] = f(null), [p, m] = f(null), [h, _] = f(null);
323
+ return e.length === 0 ? /* @__PURE__ */ c(s, { children: r ?? /* @__PURE__ */ c("div", {
324
+ className: g.cardListEmpty,
325
+ children: "No items."
326
+ }) }) : /* @__PURE__ */ c("div", {
327
+ className: g.cardList,
328
+ children: e.map((e) => {
329
+ let r = a.has(e.id), i = u === e.id, s = p === e.id, f = h && h.id === e.id && h.position === "before", v = h && h.id === e.id && h.position === "after", y = () => o((t) => {
330
+ let n = new Set(t);
331
+ return n.has(e.id) ? n.delete(e.id) : n.add(e.id), n;
332
+ });
333
+ return /* @__PURE__ */ l("div", {
334
+ className: g.cardListWrap,
335
+ children: [
336
+ f && /* @__PURE__ */ c("div", { className: g.cardDropHint }),
337
+ t(e, {
338
+ isExpanded: r,
339
+ isDragging: i,
340
+ toggleExpanded: y,
341
+ cardProps: {
342
+ expanded: r,
343
+ dragging: i,
344
+ draggable: s,
345
+ onToggleExpanded: y,
346
+ onPressHandle: () => m(e.id),
347
+ onReleaseHandle: () => m(null),
348
+ onDragStart: (t) => {
349
+ t.dataTransfer.effectAllowed = "move", t.dataTransfer.setData("text/plain", String(e.id)), d(e.id);
350
+ },
351
+ onDragEnd: () => {
352
+ d(null), m(null), _(null);
353
+ },
354
+ onDragOver: (t) => {
355
+ if (u === null || u === e.id) return;
356
+ t.preventDefault(), t.dataTransfer.dropEffect = "move";
357
+ let n = t.currentTarget.getBoundingClientRect(), r = t.clientY < n.top + n.height / 2 ? "before" : "after";
358
+ _({
359
+ id: e.id,
360
+ position: r
361
+ });
362
+ },
363
+ onDragLeave: () => {
364
+ _((t) => t && t.id === e.id ? null : t);
365
+ },
366
+ onDrop: (t) => {
367
+ if (t.preventDefault(), u === null || u === e.id) {
368
+ _(null);
369
+ return;
370
+ }
371
+ let r = t.currentTarget.getBoundingClientRect(), i = t.clientY < r.top + r.height / 2 ? "before" : "after";
372
+ n(u, e.id, i), _(null);
373
+ }
374
+ }
375
+ }),
376
+ v && /* @__PURE__ */ c("div", { className: g.cardDropHint })
377
+ ]
378
+ }, String(e.id));
379
+ })
380
+ });
381
+ }
382
+ //#endregion
383
+ //#region src/components/Properties/PropertyGroup.tsx
384
+ function x({ title: e, hidden: t, children: n, className: r, pack: i = "auto-color" }) {
385
+ if (t) return null;
386
+ let a = i === "pairs" ? ` ${g.groupPairs}` : "";
387
+ return /* @__PURE__ */ l("div", {
388
+ className: `${g.group}${a}${r ? ` ${r}` : ""}`,
389
+ children: [/* @__PURE__ */ l("h3", {
390
+ className: g.groupTitle,
391
+ children: [
392
+ /* @__PURE__ */ c("hr", {}),
393
+ /* @__PURE__ */ c("span", { children: e }),
394
+ /* @__PURE__ */ c("hr", {})
395
+ ]
396
+ }), /* @__PURE__ */ c("div", {
397
+ className: g.groupBody,
398
+ children: n
399
+ })]
400
+ });
401
+ }
402
+ //#endregion
403
+ //#region src/components/Properties/PropertyPanel.tsx
404
+ function S({ title: e, children: t, className: n }) {
405
+ return /* @__PURE__ */ l("div", {
406
+ className: n ? `${g.panel} ${n}` : g.panel,
407
+ children: [e != null && /* @__PURE__ */ c("h2", {
408
+ className: g.panelTitle,
409
+ children: e
410
+ }), t]
411
+ });
412
+ }
413
+ function C({ children: e, className: t, pack: n = "auto-color" }) {
414
+ let r = n === "pairs" ? ` ${g.listPairs}` : "";
415
+ return /* @__PURE__ */ c("div", {
416
+ className: `${g.list}${r}${t ? ` ${t}` : ""}`,
417
+ children: e
418
+ });
419
+ }
420
+ function w({ children: e, className: t }) {
421
+ return /* @__PURE__ */ c("div", {
422
+ className: t ? `${g.span} ${t}` : g.span,
423
+ children: e
424
+ });
425
+ }
426
+ function T({ label: e, readout: t, description: n, variant: r = "default", layout: i = "block", span: a, children: o, htmlFor: s, className: u }) {
427
+ let d = r === "color" ? ` ${g.rowColor}` : r === "checkbox" ? ` ${g.rowCheckbox}` : "", f = r === "default" && i === "inline" ? ` ${g.rowInline}` : "", p = a ? ` ${g.span}` : "";
428
+ return /* @__PURE__ */ l("label", {
429
+ className: `${g.row}${d}${f}${p}${u ? ` ${u}` : ""}`,
430
+ htmlFor: s,
431
+ children: [/* @__PURE__ */ l("span", {
432
+ className: g.rowLabel,
433
+ children: [
434
+ e,
435
+ n ? /* @__PURE__ */ c(E, {
436
+ label: e,
437
+ description: n
438
+ }) : null,
439
+ t != null && /* @__PURE__ */ c("em", {
440
+ className: g.readout,
441
+ children: t
442
+ })
443
+ ]
444
+ }), o]
445
+ });
446
+ }
447
+ function E({ label: e, description: r }) {
448
+ let i = typeof e == "string" ? e : "this setting";
449
+ return /* @__PURE__ */ l(t, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("button", {
450
+ type: "button",
451
+ className: g.help,
452
+ "aria-label": `About ${i}`,
453
+ onClick: (e) => {
454
+ e.preventDefault(), e.stopPropagation();
455
+ },
456
+ onMouseDown: (e) => e.stopPropagation(),
457
+ children: "ⓘ"
458
+ }) }), /* @__PURE__ */ c(n, { children: r })] });
459
+ }
460
+ function D({ label: t, value: n, min: r, max: o, step: s = 1, onChange: l, format: u, unit: d, layout: f, description: p, span: m }) {
461
+ let h = s >= 1 ? 0 : Math.min(6, Math.max(0, Math.ceil(-Math.log10(s))));
462
+ return /* @__PURE__ */ c(T, {
463
+ span: m,
464
+ label: t,
465
+ readout: /* @__PURE__ */ c(O, {
466
+ value: n,
467
+ min: r,
468
+ max: o,
469
+ format: u ?? ((e) => i(e, {
470
+ useGrouping: !1,
471
+ minimumFractionDigits: h,
472
+ maximumFractionDigits: h
473
+ })),
474
+ unit: d,
475
+ onCommit: l
476
+ }),
477
+ layout: f,
478
+ description: p,
479
+ children: /* @__PURE__ */ c("input", {
480
+ type: "range",
481
+ className: a.range,
482
+ tabIndex: -1,
483
+ min: r,
484
+ max: o,
485
+ step: s,
486
+ value: n,
487
+ onChange: (n) => {
488
+ let r = Number(n.target.value);
489
+ e("property-panel", "slider", {
490
+ label: t,
491
+ value: r
492
+ }), l(r);
493
+ }
494
+ })
495
+ });
496
+ }
497
+ function O({ value: e, min: t, max: n, format: a, unit: o, onCommit: s }) {
498
+ let [u, d] = f(null), p = (e) => a ? a(e) : i(e, {
499
+ useGrouping: !1,
500
+ maximumFractionDigits: 20
501
+ }), m = u === null ? (() => {
502
+ let t = p(e);
503
+ return typeof t == "string" ? t : String(t);
504
+ })() : u, h = o == null ? null : typeof o == "string" ? /* @__PURE__ */ c("span", {
505
+ className: g.readoutUnit,
506
+ children: o
507
+ }) : o, _ = () => {
508
+ if (u !== null) {
509
+ let e = r(u);
510
+ Number.isFinite(e) && s(Math.min(n, Math.max(t, e)));
511
+ }
512
+ d(null);
513
+ };
514
+ return /* @__PURE__ */ l("span", {
515
+ className: g.readoutGroup,
516
+ children: [/* @__PURE__ */ c("input", {
517
+ type: "text",
518
+ inputMode: "decimal",
519
+ className: g.readoutInput,
520
+ value: m,
521
+ onFocus: (t) => {
522
+ let n = p(e);
523
+ d(typeof n == "string" ? n : String(n)), t.currentTarget.select();
524
+ },
525
+ onChange: (e) => d(e.target.value.replace(/-/g, "−")),
526
+ onBlur: _,
527
+ onClick: (e) => {
528
+ e.preventDefault(), e.stopPropagation(), e.currentTarget.focus();
529
+ },
530
+ onMouseDown: (e) => e.stopPropagation(),
531
+ onKeyDown: (e) => {
532
+ e.key === "Enter" ? (_(), e.currentTarget.blur()) : e.key === "Escape" && (d(null), e.currentTarget.blur());
533
+ }
534
+ }), h]
535
+ });
536
+ }
537
+ function k({ label: e, value: t, onChange: n, alpha: r, onAlphaChange: i, alphaDisabled: o, description: s, span: u }) {
538
+ return /* @__PURE__ */ l(T, {
539
+ span: u,
540
+ label: e,
541
+ variant: "color",
542
+ description: s,
543
+ children: [/* @__PURE__ */ c("input", {
544
+ type: "color",
545
+ value: t,
546
+ onChange: (e) => n(e.target.value)
547
+ }), r != null && /* @__PURE__ */ c("input", {
548
+ type: "range",
549
+ className: `${a.range} ${a.alpha} ${g.alpha}`,
550
+ min: 0,
551
+ max: 1,
552
+ step: .01,
553
+ value: r,
554
+ disabled: o,
555
+ onChange: (e) => i?.(Number(e.target.value))
556
+ })]
557
+ });
558
+ }
559
+ function A({ label: e, value: t, onChange: n, span: r, description: i }) {
560
+ return /* @__PURE__ */ c(T, {
561
+ span: r,
562
+ label: e,
563
+ variant: "checkbox",
564
+ description: i,
565
+ children: /* @__PURE__ */ c("input", {
566
+ type: "checkbox",
567
+ checked: t,
568
+ onChange: (e) => n(e.target.checked)
569
+ })
570
+ });
571
+ }
572
+ function j({ label: e, value: t, onChange: n, placeholder: r, maxLength: i, layout: a, description: o, span: s }) {
573
+ return /* @__PURE__ */ c(T, {
574
+ span: s,
575
+ label: e,
576
+ layout: a,
577
+ description: o,
578
+ children: /* @__PURE__ */ c("input", {
579
+ type: "text",
580
+ value: t,
581
+ placeholder: r,
582
+ maxLength: i,
583
+ onChange: (e) => n(e.target.value)
584
+ })
585
+ });
586
+ }
587
+ function M({ label: e, value: t, onChange: n, min: r, max: i, step: a, placeholder: o, unit: s, layout: u, description: d, span: f }) {
588
+ let p = /* @__PURE__ */ c("input", {
589
+ type: "number",
590
+ value: t,
591
+ min: r,
592
+ max: i,
593
+ step: a,
594
+ placeholder: o,
595
+ onChange: (e) => {
596
+ let t = e.target.value;
597
+ if (t === "") return;
598
+ let r = Number(t);
599
+ Number.isFinite(r) && n(r);
600
+ }
601
+ });
602
+ return /* @__PURE__ */ c(T, {
603
+ span: f,
604
+ label: e,
605
+ layout: u,
606
+ description: d,
607
+ children: s == null ? p : /* @__PURE__ */ l("span", {
608
+ className: g.fieldUnitGroup,
609
+ children: [p, typeof s == "string" ? /* @__PURE__ */ c("span", {
610
+ className: g.readoutUnit,
611
+ children: s
612
+ }) : s]
613
+ })
614
+ });
615
+ }
616
+ function N({ label: t, value: n, options: r, onChange: i, layout: a, description: o, span: s }) {
617
+ return /* @__PURE__ */ c(T, {
618
+ span: s,
619
+ label: t,
620
+ layout: a,
621
+ description: o,
622
+ children: /* @__PURE__ */ c("select", {
623
+ value: n,
624
+ onChange: (n) => {
625
+ let r = n.target.value;
626
+ e("property-panel", "select", {
627
+ label: t,
628
+ value: r
629
+ }), i(r);
630
+ },
631
+ children: r.map((e) => /* @__PURE__ */ c("option", {
632
+ value: e.value,
633
+ children: e.label
634
+ }, e.value))
635
+ })
636
+ });
637
+ }
638
+ function P({ label: e, value: t, options: n, onChange: r, layout: i, description: a, span: o }) {
639
+ return /* @__PURE__ */ c(T, {
640
+ span: o,
641
+ label: e,
642
+ layout: i,
643
+ description: a,
644
+ children: /* @__PURE__ */ c("div", {
645
+ className: g.toggle,
646
+ children: n.map((e) => {
647
+ let n = e.value === t;
648
+ return /* @__PURE__ */ c("button", {
649
+ type: "button",
650
+ "aria-pressed": n,
651
+ className: n ? `${g.toggleButton} ${g.toggleButtonSelected}` : g.toggleButton,
652
+ onClick: () => r(e.value),
653
+ children: e.label
654
+ }, e.value);
655
+ })
656
+ })
657
+ });
658
+ }
659
+ //#endregion
660
+ export { S as a, N as c, P as d, x as f, h as g, _ as h, C as i, D as l, b as m, k as n, T as o, v as p, M as r, w as s, A as t, j as u };
661
+
662
+ //# sourceMappingURL=Properties-BEGlt0Z2.js.map