@weasel-js/ui 1.1.0 → 1.3.0-pre.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 (237) hide show
  1. package/dist/chunks/{ActionBar-BvPEd_GW.js → ActionBar-BTev_ZZl.js} +21 -21
  2. package/dist/chunks/ActionBar-BTev_ZZl.js.map +1 -0
  3. package/dist/chunks/{ActionsBar-9aR5N3lU.js → ActionsBar-gTuCtkv8.js} +4 -4
  4. package/dist/chunks/{ActionsBar-9aR5N3lU.js.map → ActionsBar-gTuCtkv8.js.map} +1 -1
  5. package/dist/chunks/{Badge-DZQqAV4d.js → Badge-9dPfvYOk.js} +715 -707
  6. package/dist/chunks/Badge-9dPfvYOk.js.map +1 -0
  7. package/dist/chunks/{BandEditor-D3i6l299.js → BandEditor-DKbcHG2_.js} +46 -46
  8. package/dist/chunks/BandEditor-DKbcHG2_.js.map +1 -0
  9. package/dist/chunks/{Button-9QNIYugK.js → Button-CIu40Epu.js} +28 -28
  10. package/dist/chunks/Button-CIu40Epu.js.map +1 -0
  11. package/dist/chunks/{Callout-NSOjza6G.js → Callout-CHs98djt.js} +40 -39
  12. package/dist/chunks/Callout-CHs98djt.js.map +1 -0
  13. package/dist/chunks/Checkbox-BLEw-wEb.js +47 -0
  14. package/dist/chunks/Checkbox-BLEw-wEb.js.map +1 -0
  15. package/dist/chunks/ColorField-D1t-BdSa.js +60 -0
  16. package/dist/chunks/ColorField-D1t-BdSa.js.map +1 -0
  17. package/dist/chunks/{ComboBox-ONQISwtI.js → ComboBox-cvdKolWv.js} +28 -28
  18. package/dist/chunks/ComboBox-cvdKolWv.js.map +1 -0
  19. package/dist/chunks/{CurveEditor-SmwwvrsA.js → CurveEditor-BaA-PabB.js} +116 -116
  20. package/dist/chunks/CurveEditor-BaA-PabB.js.map +1 -0
  21. package/dist/chunks/DataGrid-D15I779H.js +210 -0
  22. package/dist/chunks/DataGrid-D15I779H.js.map +1 -0
  23. package/dist/chunks/Dialog-DC1x46Sq.js +59 -0
  24. package/dist/chunks/Dialog-DC1x46Sq.js.map +1 -0
  25. package/dist/chunks/{Field-VQwmrIna.js → Field-BjFl_yng.js} +6 -6
  26. package/dist/chunks/Field-BjFl_yng.js.map +1 -0
  27. package/dist/chunks/GradientEditor-BJRD0n1g.js +308 -0
  28. package/dist/chunks/GradientEditor-BJRD0n1g.js.map +1 -0
  29. package/dist/chunks/InlineRange-C6UYKxLD.js +24 -0
  30. package/dist/chunks/InlineRange-C6UYKxLD.js.map +1 -0
  31. package/dist/chunks/Input-DhWBgpRx.js +55 -0
  32. package/dist/chunks/Input-DhWBgpRx.js.map +1 -0
  33. package/dist/chunks/{Keycaps-CFX7UAj8.js → Keycaps-BhCKdyws.js} +15 -15
  34. package/dist/chunks/Keycaps-BhCKdyws.js.map +1 -0
  35. package/dist/chunks/NumberField-ZdVa4bpJ.js +59 -0
  36. package/dist/chunks/NumberField-ZdVa4bpJ.js.map +1 -0
  37. package/dist/chunks/{OptionsBar-CHvH4n4u.js → OptionsBar-DahCI4Aq.js} +4 -4
  38. package/dist/chunks/{OptionsBar-CHvH4n4u.js.map → OptionsBar-DahCI4Aq.js.map} +1 -1
  39. package/dist/chunks/PaintInput-Cggm9OIl.js +205 -0
  40. package/dist/chunks/PaintInput-Cggm9OIl.js.map +1 -0
  41. package/dist/chunks/PatternPicker-B63SlDoF.js +93 -0
  42. package/dist/chunks/PatternPicker-B63SlDoF.js.map +1 -0
  43. package/dist/chunks/{Plot2D-CEnhzodm.js → Plot2D-sPXTw_-l.js} +27 -27
  44. package/dist/chunks/{Plot2D-CEnhzodm.js.map → Plot2D-sPXTw_-l.js.map} +1 -1
  45. package/dist/chunks/{PointPlotter-BUIse9c4.js → PointPlotter-CLd9u5Bq.js} +2 -2
  46. package/dist/chunks/{PointPlotter-BUIse9c4.js.map → PointPlotter-CLd9u5Bq.js.map} +1 -1
  47. package/dist/chunks/{Powerline-Dd9Ukhcl.js → Powerline-DhQJYaUg.js} +2 -2
  48. package/dist/chunks/{Powerline-Dd9Ukhcl.js.map → Powerline-DhQJYaUg.js.map} +1 -1
  49. package/dist/chunks/Prefs-BSJ0lMmJ.js +300 -0
  50. package/dist/chunks/Prefs-BSJ0lMmJ.js.map +1 -0
  51. package/dist/chunks/RadioGroup-vtwjRiUm.js +49 -0
  52. package/dist/chunks/RadioGroup-vtwjRiUm.js.map +1 -0
  53. package/dist/chunks/RangeSlider-B-n_7AgJ.js +52 -0
  54. package/dist/chunks/RangeSlider-B-n_7AgJ.js.map +1 -0
  55. package/dist/chunks/{ResizeHandle-BOpmtOOj.js → ResizeHandle--ZExnMfa.js} +8 -8
  56. package/dist/chunks/{ResizeHandle-BOpmtOOj.js.map → ResizeHandle--ZExnMfa.js.map} +1 -1
  57. package/dist/chunks/{Select-CHsuQCp0.js → Select--BVTi-j0.js} +32 -32
  58. package/dist/chunks/Select--BVTi-j0.js.map +1 -0
  59. package/dist/chunks/SelectionPanel-C7kygTFE.js +446 -0
  60. package/dist/chunks/SelectionPanel-C7kygTFE.js.map +1 -0
  61. package/dist/chunks/{Sidebar-DP_nyJze.js → Sidebar-CtwBdr4n.js} +1 -1
  62. package/dist/chunks/{Sidebar-DP_nyJze.js.map → Sidebar-CtwBdr4n.js.map} +1 -1
  63. package/dist/chunks/SidebarPanel-AeSc7wNR.js +59 -0
  64. package/dist/chunks/SidebarPanel-AeSc7wNR.js.map +1 -0
  65. package/dist/chunks/{Slider-tGbqoAZH.js → Slider-cxWR47gi.js} +39 -39
  66. package/dist/chunks/Slider-cxWR47gi.js.map +1 -0
  67. package/dist/chunks/{StatusBar-DBO0E0Yd.js → StatusBar-D_wu-SZh.js} +6 -6
  68. package/dist/chunks/StatusBar-D_wu-SZh.js.map +1 -0
  69. package/dist/chunks/Switch-CtZwp5zm.js +27 -0
  70. package/dist/chunks/Switch-CtZwp5zm.js.map +1 -0
  71. package/dist/chunks/Tabs-lB0IB4TX.js +41 -0
  72. package/dist/chunks/Tabs-lB0IB4TX.js.map +1 -0
  73. package/dist/chunks/{Toast-DFw4IrD_.js → Toast-hr9BYsho.js} +31 -31
  74. package/dist/chunks/{Toast-DFw4IrD_.js.map → Toast-hr9BYsho.js.map} +1 -1
  75. package/dist/chunks/{ToggleBar-BP1zFcvg.js → ToggleBar-BxgWq-wO.js} +11 -10
  76. package/dist/chunks/ToggleBar-BxgWq-wO.js.map +1 -0
  77. package/dist/chunks/{ToolButton-ClPz5L6j.js → ToolButton-CJrPjbsj.js} +16 -16
  78. package/dist/chunks/ToolButton-CJrPjbsj.js.map +1 -0
  79. package/dist/chunks/{ToolGroup-BTIwd4U4.js → ToolGroup-D_lDzkvU.js} +1 -1
  80. package/dist/chunks/{ToolGroup-BTIwd4U4.js.map → ToolGroup-D_lDzkvU.js.map} +1 -1
  81. package/dist/chunks/{ToolOptionsBar-JvmY7iNe.js → ToolOptionsBar-BA6Sb3U2.js} +4 -4
  82. package/dist/chunks/ToolOptionsBar-BA6Sb3U2.js.map +1 -0
  83. package/dist/chunks/{ToolPalette-DAiVhdtV.js → ToolPalette-TMvkaJwr.js} +24 -24
  84. package/dist/chunks/ToolPalette-TMvkaJwr.js.map +1 -0
  85. package/dist/chunks/Tooltip-Di7vxbFa.js +40 -0
  86. package/dist/chunks/Tooltip-Di7vxbFa.js.map +1 -0
  87. package/dist/chunks/{keyGlyph-BDH5fqkO.js → keyGlyph-DNpLxF8u.js} +1 -1
  88. package/dist/chunks/{keyGlyph-BDH5fqkO.js.map → keyGlyph-DNpLxF8u.js.map} +1 -1
  89. package/dist/chunks/segmentedControl.module-D4b7x19O.js +11 -0
  90. package/dist/chunks/segmentedControl.module-D4b7x19O.js.map +1 -0
  91. package/dist/chunks/{useRovingTabIndex-DBZtq4IH.js → useRovingTabIndex-CQz8EiKh.js} +1 -1
  92. package/dist/chunks/{useRovingTabIndex-DBZtq4IH.js.map → useRovingTabIndex-CQz8EiKh.js.map} +1 -1
  93. package/dist/components/ActionBar/index.js +1 -1
  94. package/dist/components/ActionsBar/index.js +1 -1
  95. package/dist/components/Badge/Badge.d.ts.map +1 -1
  96. package/dist/components/Badge/bases/index.d.ts.map +1 -1
  97. package/dist/components/Badge/effects/index.d.ts.map +1 -1
  98. package/dist/components/Badge/index.js +1 -1
  99. package/dist/components/Badge/shapes/index.d.ts.map +1 -1
  100. package/dist/components/BandEditor/index.js +1 -1
  101. package/dist/components/Button/index.js +1 -1
  102. package/dist/components/Callout/Callout.d.ts.map +1 -1
  103. package/dist/components/Callout/index.js +1 -1
  104. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  105. package/dist/components/Checkbox/index.js +1 -1
  106. package/dist/components/ColorField/ColorField.d.ts.map +1 -1
  107. package/dist/components/ColorField/index.js +1 -1
  108. package/dist/components/ComboBox/index.js +1 -1
  109. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts +1 -1
  110. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts.map +1 -1
  111. package/dist/components/CurveEditor/createFunctionLayer.d.ts +1 -2
  112. package/dist/components/CurveEditor/createFunctionLayer.d.ts.map +1 -1
  113. package/dist/components/CurveEditor/index.js +1 -1
  114. package/dist/components/DataGrid/index.js +1 -1
  115. package/dist/components/Dialog/index.js +1 -1
  116. package/dist/components/Field/index.js +1 -1
  117. package/dist/components/GradientEditor/SceneGradientHandles.d.ts +41 -0
  118. package/dist/components/GradientEditor/SceneGradientHandles.d.ts.map +1 -0
  119. package/dist/components/GradientEditor/index.d.ts +1 -0
  120. package/dist/components/GradientEditor/index.d.ts.map +1 -1
  121. package/dist/components/GradientEditor/index.js +2 -2
  122. package/dist/components/InlineRange/InlineRange.d.ts +17 -0
  123. package/dist/components/InlineRange/InlineRange.d.ts.map +1 -0
  124. package/dist/components/InlineRange/index.d.ts +2 -0
  125. package/dist/components/InlineRange/index.d.ts.map +1 -0
  126. package/dist/components/InlineRange/index.js +2 -0
  127. package/dist/components/Input/Input.d.ts +1 -1
  128. package/dist/components/Input/index.js +1 -1
  129. package/dist/components/Keycaps/index.js +2 -2
  130. package/dist/components/NumberField/NumberField.d.ts +1 -1
  131. package/dist/components/NumberField/index.js +1 -1
  132. package/dist/components/OptionsBar/index.js +1 -1
  133. package/dist/components/PaintInput/PaintInput.d.ts +40 -0
  134. package/dist/components/PaintInput/PaintInput.d.ts.map +1 -0
  135. package/dist/components/PaintInput/index.d.ts +2 -0
  136. package/dist/components/PaintInput/index.d.ts.map +1 -0
  137. package/dist/components/PaintInput/index.js +2 -0
  138. package/dist/components/PatternPicker/PatternPicker.d.ts +31 -0
  139. package/dist/components/PatternPicker/PatternPicker.d.ts.map +1 -0
  140. package/dist/components/PatternPicker/index.d.ts +2 -0
  141. package/dist/components/PatternPicker/index.d.ts.map +1 -0
  142. package/dist/components/PatternPicker/index.js +2 -0
  143. package/dist/components/Plot2D/Plot2D.d.ts.map +1 -1
  144. package/dist/components/Plot2D/index.js +1 -1
  145. package/dist/components/PointPlotter/index.js +1 -1
  146. package/dist/components/Powerline/index.js +2 -2
  147. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  148. package/dist/components/Prefs/index.d.ts +1 -1
  149. package/dist/components/Prefs/index.d.ts.map +1 -1
  150. package/dist/components/Prefs/index.js +1 -1
  151. package/dist/components/Prefs/schema.d.ts +4 -93
  152. package/dist/components/Prefs/schema.d.ts.map +1 -1
  153. package/dist/components/RadioGroup/index.js +1 -1
  154. package/dist/components/RangeSlider/index.js +1 -1
  155. package/dist/components/ResizeHandle/index.js +1 -1
  156. package/dist/components/Select/index.js +1 -1
  157. package/dist/components/SelectionPanel/SelectionPanel.d.ts +32 -1
  158. package/dist/components/SelectionPanel/SelectionPanel.d.ts.map +1 -1
  159. package/dist/components/SelectionPanel/index.js +1 -1
  160. package/dist/components/Sidebar/index.js +1 -1
  161. package/dist/components/SidebarPanel/index.js +1 -1
  162. package/dist/components/Slider/index.js +1 -1
  163. package/dist/components/StatusBar/index.js +1 -1
  164. package/dist/components/Switch/Switch.d.ts +1 -1
  165. package/dist/components/Switch/index.js +1 -1
  166. package/dist/components/Tabs/index.js +1 -1
  167. package/dist/components/Toast/index.js +1 -1
  168. package/dist/components/ToggleBar/ToggleBar.d.ts +1 -1
  169. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  170. package/dist/components/ToggleBar/index.js +1 -1
  171. package/dist/components/ToolButton/index.js +1 -1
  172. package/dist/components/ToolGroup/index.js +1 -1
  173. package/dist/components/ToolOptionsBar/index.js +1 -1
  174. package/dist/components/ToolPalette/index.js +1 -1
  175. package/dist/components/Tooltip/index.js +1 -1
  176. package/dist/components/paintValue.d.ts +8 -0
  177. package/dist/components/paintValue.d.ts.map +1 -0
  178. package/dist/icons/Icon.d.ts +17 -0
  179. package/dist/icons/Icon.d.ts.map +1 -0
  180. package/dist/icons/index.d.ts +50 -0
  181. package/dist/icons/index.d.ts.map +1 -0
  182. package/dist/icons/paths.d.ts +71 -0
  183. package/dist/icons/paths.d.ts.map +1 -0
  184. package/dist/index.d.ts +5 -0
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +184 -48
  187. package/dist/index.js.map +1 -1
  188. package/dist/style.css +1 -1
  189. package/package.json +4 -3
  190. package/dist/chunks/ActionBar-BvPEd_GW.js.map +0 -1
  191. package/dist/chunks/Badge-DZQqAV4d.js.map +0 -1
  192. package/dist/chunks/BandEditor-D3i6l299.js.map +0 -1
  193. package/dist/chunks/Button-9QNIYugK.js.map +0 -1
  194. package/dist/chunks/Callout-NSOjza6G.js.map +0 -1
  195. package/dist/chunks/Checkbox-KQ5L8APP.js +0 -47
  196. package/dist/chunks/Checkbox-KQ5L8APP.js.map +0 -1
  197. package/dist/chunks/ColorField-ykpiD3XU.js +0 -60
  198. package/dist/chunks/ColorField-ykpiD3XU.js.map +0 -1
  199. package/dist/chunks/ComboBox-ONQISwtI.js.map +0 -1
  200. package/dist/chunks/CurveEditor-SmwwvrsA.js.map +0 -1
  201. package/dist/chunks/DataGrid-DZQ4Chbd.js +0 -210
  202. package/dist/chunks/DataGrid-DZQ4Chbd.js.map +0 -1
  203. package/dist/chunks/Dialog-CqwdJv_t.js +0 -59
  204. package/dist/chunks/Dialog-CqwdJv_t.js.map +0 -1
  205. package/dist/chunks/Field-VQwmrIna.js.map +0 -1
  206. package/dist/chunks/GradientEditor-Bg6SX64V.js +0 -280
  207. package/dist/chunks/GradientEditor-Bg6SX64V.js.map +0 -1
  208. package/dist/chunks/Input-DpkwYtUY.js +0 -55
  209. package/dist/chunks/Input-DpkwYtUY.js.map +0 -1
  210. package/dist/chunks/Keycaps-CFX7UAj8.js.map +0 -1
  211. package/dist/chunks/NumberField-BbzI0GtU.js +0 -59
  212. package/dist/chunks/NumberField-BbzI0GtU.js.map +0 -1
  213. package/dist/chunks/Prefs-BMR9wMiZ.js +0 -238
  214. package/dist/chunks/Prefs-BMR9wMiZ.js.map +0 -1
  215. package/dist/chunks/RadioGroup-CIpHr3g6.js +0 -49
  216. package/dist/chunks/RadioGroup-CIpHr3g6.js.map +0 -1
  217. package/dist/chunks/RangeSlider-CaDogGTj.js +0 -52
  218. package/dist/chunks/RangeSlider-CaDogGTj.js.map +0 -1
  219. package/dist/chunks/Select-CHsuQCp0.js.map +0 -1
  220. package/dist/chunks/SelectionPanel-D_wk_8ZN.js +0 -303
  221. package/dist/chunks/SelectionPanel-D_wk_8ZN.js.map +0 -1
  222. package/dist/chunks/SidebarPanel-BVTQ1ZyM.js +0 -59
  223. package/dist/chunks/SidebarPanel-BVTQ1ZyM.js.map +0 -1
  224. package/dist/chunks/Slider-tGbqoAZH.js.map +0 -1
  225. package/dist/chunks/StatusBar-DBO0E0Yd.js.map +0 -1
  226. package/dist/chunks/Switch-JyVSSAzC.js +0 -27
  227. package/dist/chunks/Switch-JyVSSAzC.js.map +0 -1
  228. package/dist/chunks/Tabs-Df0sDomx.js +0 -41
  229. package/dist/chunks/Tabs-Df0sDomx.js.map +0 -1
  230. package/dist/chunks/ToggleBar-BP1zFcvg.js.map +0 -1
  231. package/dist/chunks/ToolButton-ClPz5L6j.js.map +0 -1
  232. package/dist/chunks/ToolOptionsBar-JvmY7iNe.js.map +0 -1
  233. package/dist/chunks/ToolPalette-DAiVhdtV.js.map +0 -1
  234. package/dist/chunks/Tooltip-DXJbdR5B.js +0 -40
  235. package/dist/chunks/Tooltip-DXJbdR5B.js.map +0 -1
  236. package/dist/chunks/segmentedControl.module-DCyuDbj1.js +0 -11
  237. package/dist/chunks/segmentedControl.module-DCyuDbj1.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { type ReactElement, type RefObject } from 'react';
2
+ import { type FillStyle, type RectPose, type Scene, type Stroke, type View } from '@weasel-js/core';
3
+ /** The paint slots a node carries. Either may hold a gradient, and each has
4
+ * its own action, so the overlay is told which one it is editing. */
5
+ export type PaintSlot = 'fill' | 'stroke';
6
+ /** What `SceneGradientHandles` reads off a node. Every field is optional, so
7
+ * any richer app data shape satisfies it. */
8
+ export interface PaintedNodeData {
9
+ fill?: FillStyle | null;
10
+ stroke?: Stroke | null;
11
+ }
12
+ export interface SceneGradientHandlesProps<TData extends PaintedNodeData, TLayer extends string, TPose extends RectPose> {
13
+ scene: Scene<TData, TLayer, TPose>;
14
+ /** The element the overlay is positioned in. Must be the canvas's own box,
15
+ * or the handles land somewhere other than the paint. */
16
+ containerRef: RefObject<HTMLElement | null>;
17
+ /** The node whose paint is being edited — usually the lone selected id. */
18
+ nodeId: string | null | undefined;
19
+ /** Which of the node's two paints these handles move. */
20
+ slot: PaintSlot;
21
+ /** Current viewport; a thunk is re-read per projection. See
22
+ * `useNodeOverlayFrame`. */
23
+ view?: View | (() => View);
24
+ className?: string;
25
+ }
26
+ /**
27
+ * Scene-aware `GradientHandles`: on-canvas geometry handles for the gradient
28
+ * in one node's `fill` or `stroke`, committed through the `setFill` /
29
+ * `setStroke` actions as a single undo entry per drag.
30
+ *
31
+ * Renders nothing unless the targeted slot holds a gradient. The node stores
32
+ * its gradient in `units: 'bounds'` — fractions of its own box, so the paint
33
+ * survives pan, zoom and resize — which is not a frame polar math can work
34
+ * in; the handles get it resolved onto the box and every edit is normalized
35
+ * back on the way out.
36
+ *
37
+ * `slot` is a prop rather than state the kit keeps: an app that edits fill
38
+ * and stroke separately already knows which one has focus.
39
+ */
40
+ export declare function SceneGradientHandles<TData extends PaintedNodeData, TLayer extends string, TPose extends RectPose>(props: SceneGradientHandlesProps<TData, TLayer, TPose>): ReactElement | null;
41
+ //# sourceMappingURL=SceneGradientHandles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneGradientHandles.d.ts","sourceRoot":"","sources":["../../../src/components/GradientEditor/SceneGradientHandles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAML,KAAK,SAAS,EAEd,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,IAAI,EACV,MAAM,iBAAiB,CAAC;AAGzB;sEACsE;AACtE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1C;8CAC8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB,CACxC,KAAK,SAAS,eAAe,EAC7B,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,QAAQ;IAEtB,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC;8DAC0D;IAC1D,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,yDAAyD;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB;iCAC6B;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,QAAQ,EACtB,KAAK,EAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,YAAY,GAAG,IAAI,CAgC7E"}
@@ -1,3 +1,4 @@
1
1
  export { GradientEditor, type GradientEditorProps } from './GradientEditor';
2
2
  export { GradientHandles, type GradientHandlesProps } from './GradientHandles';
3
+ export { SceneGradientHandles, type SceneGradientHandlesProps, type PaintSlot, type PaintedNodeData, } from './SceneGradientHandles';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GradientEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GradientEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/GradientEditor-Bg6SX64V.js";
2
- export { e as GradientEditor, t as GradientHandles };
1
+ import { n as e, r as t, t as n } from "../../chunks/GradientEditor-BJRD0n1g.js";
2
+ export { t as GradientEditor, e as GradientHandles, n as SceneGradientHandles };
@@ -0,0 +1,17 @@
1
+ import { type InputHTMLAttributes, type ReactElement } from 'react';
2
+ /** Props for {@link InlineRange} — a range input's, with `value` required. */
3
+ export type InlineRangeProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'min' | 'max'> & {
4
+ value: number;
5
+ min?: number;
6
+ max?: number;
7
+ };
8
+ /**
9
+ * Compact range input for a property row: one track, no label, no output.
10
+ *
11
+ * Distinct from the kit's other two — `Slider` is shaped for canvas scrubbing,
12
+ * and `RangeSlider` is a full-width labelled form control on React Aria. This
13
+ * one exists to sit inline beside a swatch or a readout, and to own the track
14
+ * painting both of those surfaces need.
15
+ */
16
+ export declare function InlineRange(props: InlineRangeProps): ReactElement;
17
+ //# sourceMappingURL=InlineRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineRange.d.ts","sourceRoot":"","sources":["../../../src/components/InlineRange/InlineRange.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGxF,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CACjC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAejE"}
@@ -0,0 +1,2 @@
1
+ export { InlineRange, type InlineRangeProps } from './InlineRange';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InlineRange/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../chunks/InlineRange-C6UYKxLD.js";
2
+ export { e as InlineRange };
@@ -17,7 +17,7 @@ export type InputProps = Omit<RACTextFieldProps, 'children' | 'className'> & {
17
17
  *
18
18
  * `ref` forwards to the underlying `<input>`.
19
19
  */
20
- export declare const Input: import("react").ForwardRefExoticComponent<Omit<RACTextFieldProps, "children" | "className"> & {
20
+ export declare const Input: import("react").ForwardRefExoticComponent<Omit<RACTextFieldProps, "className" | "children"> & {
21
21
  label?: ReactNode;
22
22
  description?: ReactNode;
23
23
  errorMessage?: ReactNode | ((v: ValidationResult) => ReactNode);
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Input-DpkwYtUY.js";
1
+ import { t as e } from "../../chunks/Input-DhWBgpRx.js";
2
2
  export { e as Input };
@@ -1,3 +1,3 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../../chunks/Keycaps-CFX7UAj8.js";
2
- import { t as o } from "../../chunks/keyGlyph-BDH5fqkO.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../../chunks/Keycaps-BhCKdyws.js";
2
+ import { t as o } from "../../chunks/keyGlyph-DNpLxF8u.js";
3
3
  export { e as KeyCap, t as KeySequence, a as detectPlatform, r as inferKeycapKind, o as keyGlyph, n as keySpecFromKey, i as keySpecsFromMods };
@@ -20,7 +20,7 @@ export type NumberFieldProps = Omit<RACNumberFieldProps, 'children' | 'className
20
20
  *
21
21
  * `ref` forwards to the underlying `<input>`.
22
22
  */
23
- export declare const NumberField: import("react").ForwardRefExoticComponent<Omit<RACNumberFieldProps, "children" | "className"> & {
23
+ export declare const NumberField: import("react").ForwardRefExoticComponent<Omit<RACNumberFieldProps, "className" | "children"> & {
24
24
  label?: ReactNode;
25
25
  description?: ReactNode;
26
26
  errorMessage?: ReactNode | ((v: ValidationResult) => ReactNode);
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/NumberField-BbzI0GtU.js";
1
+ import { t as e } from "../../chunks/NumberField-ZdVa4bpJ.js";
2
2
  export { e as NumberField };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/OptionsBar-CHvH4n4u.js";
1
+ import { t as e } from "../../chunks/OptionsBar-DahCI4Aq.js";
2
2
  export { e as OptionsBar };
@@ -0,0 +1,40 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type FillStyle, type PaintKind } from '@weasel-js/core';
3
+ /** Props for {@link PaintInput}. `onInput` fires throughout a gesture and
4
+ * `onChange` once at its end. */
5
+ export interface PaintInputProps {
6
+ /** The paint being edited. `null` is an explicit "no paint"; `undefined`
7
+ * is no value to show. */
8
+ value: FillStyle | null | undefined;
9
+ /** Indeterminate presentation: no kind lit, and the body withheld because
10
+ * there is no single paint to show. */
11
+ mixed?: boolean;
12
+ /** Dim the control — a value is in effect but was never chosen. */
13
+ unset?: boolean;
14
+ /** Restrict the kind bar. Default: every registered kind. */
15
+ kinds?: readonly PaintKind[];
16
+ /** Offer "None". Default `true` — the bar answers "what kind of paint is
17
+ * this?" and no-paint is one of the answers. Turn it off where the slot
18
+ * cannot express absence. */
19
+ allowNone?: boolean;
20
+ onInput?: (next: FillStyle | null) => void;
21
+ onChange: (next: FillStyle | null) => void;
22
+ /** Names the paint this control edits — `Fill`, `Color`. Carried by the
23
+ * solid body's swatch, which is the part with a value to announce. */
24
+ 'aria-label'?: string;
25
+ className?: string;
26
+ }
27
+ /**
28
+ * Editor for a whole `FillStyle` — a kind bar over whichever body that kind
29
+ * wants.
30
+ *
31
+ * The bar is driven by the paint-kind registry rather than a fixed list, so a
32
+ * consumer's registered kind appears in it and renders that entry's `Editor`.
33
+ * The five built-in kinds keep their branch here: their editors live in this
34
+ * package and `@weasel-js/core`, which owns the registry, cannot import it.
35
+ *
36
+ * Geometry is deliberately absent — on a canvas it belongs on the artwork,
37
+ * via `<SceneGradientHandles>`.
38
+ */
39
+ export declare function PaintInput(props: PaintInputProps): ReactElement;
40
+ //# sourceMappingURL=PaintInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaintInput.d.ts","sourceRoot":"","sources":["../../../src/components/PaintInput/PaintInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAIL,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAuCzB;kCACkC;AAClC,MAAM,WAAW,eAAe;IAC9B;+BAC2B;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC;4CACwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B;;kCAE8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;2EACuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAoH/D"}
@@ -0,0 +1,2 @@
1
+ export { PaintInput, type PaintInputProps } from './PaintInput';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PaintInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../chunks/PaintInput-Cggm9OIl.js";
2
+ export { e as PaintInput };
@@ -0,0 +1,31 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { FillStyle, TilePatternSpec } from '@weasel-js/core';
3
+ /** The `pattern` member of the paint union. */
4
+ export type PatternFill = Extract<FillStyle, {
5
+ fill: 'pattern';
6
+ }>;
7
+ /**
8
+ * A pattern seeded from a color. `units: 'bounds'` anchors the tile to the
9
+ * node's box, so the texture travels with the shape.
10
+ */
11
+ export declare function seedPattern(tile: TilePatternSpec['tile'], from: string, size?: number): PatternFill;
12
+ /** Props for {@link PatternPicker}. */
13
+ export interface PatternPickerProps {
14
+ /** The pattern paint being edited. */
15
+ value: PatternFill;
16
+ /** The color new tiles are seeded with — the paint's own, normally. */
17
+ color: string;
18
+ /** Committed value: one call per click. A tile pick and a size change are
19
+ * each a complete gesture, so there is no `onInput`. */
20
+ onChange: (next: PatternFill) => void;
21
+ className?: string;
22
+ }
23
+ /**
24
+ * Grid of tile swatches over a size switch, each swatch previewing the real
25
+ * tile at the current color.
26
+ *
27
+ * The preview shares its shape mapper with what the renderer paints, so a
28
+ * swatch cannot drift from the texture it selects.
29
+ */
30
+ export declare function PatternPicker(props: PatternPickerProps): ReactElement;
31
+ //# sourceMappingURL=PatternPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternPicker.d.ts","sourceRoot":"","sources":["../../../src/components/PatternPicker/PatternPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKlE,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAyBlE;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAA0B,GAC/B,WAAW,CAMb;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd;6DACyD;IACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CA4CrE"}
@@ -0,0 +1,2 @@
1
+ export { PatternPicker, seedPattern, type PatternPickerProps, type PatternFill } from './PatternPicker';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PatternPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../../chunks/PatternPicker-B63SlDoF.js";
2
+ export { t as PatternPicker, e as seedPattern };
@@ -1 +1 @@
1
- {"version":3,"file":"Plot2D.d.ts","sourceRoot":"","sources":["../../../src/components/Plot2D/Plot2D.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,IAAI,kBAAkB,EACxC,KAAK,YAAY,IAAI,iBAAiB,EACtC,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAEY,KAAK,KAAK,EAC5B,MAAM,YAAY,CAAC;AAIpB,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B;0DACsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;wEACoE;IACpE,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC;qDACiD;IACjD,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;2EACuE;IACvE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACpF,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,WAAW,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B;kDAC8C;IAC9C,YAAY,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC7D,+CAA+C;IAC/C,aAAa,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,sGA2HjB,CAAC"}
1
+ {"version":3,"file":"Plot2D.d.ts","sourceRoot":"","sources":["../../../src/components/Plot2D/Plot2D.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,IAAI,kBAAkB,EACxC,KAAK,YAAY,IAAI,iBAAiB,EACtC,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAEY,KAAK,KAAK,EAC5B,MAAM,YAAY,CAAC;AAIpB,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B;0DACsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;wEACoE;IACpE,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC;qDACiD;IACjD,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;2EACuE;IACvE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACpF,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,WAAW,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B;kDAC8C;IAC9C,YAAY,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC7D,+CAA+C;IAC/C,aAAa,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,sGA6HjB,CAAC"}
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../../chunks/Plot2D-CEnhzodm.js";
1
+ import { n as e, r as t, t as n } from "../../chunks/Plot2D-sPXTw_-l.js";
2
2
  export { n as Plot2D, e as modelToPlot, t as plotToModel };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/PointPlotter-BUIse9c4.js";
1
+ import { t as e } from "../../chunks/PointPlotter-CLd9u5Bq.js";
2
2
  export { e as PointPlotter };
@@ -1,3 +1,3 @@
1
- import { n as e } from "../../chunks/Badge-DZQqAV4d.js";
2
- import { t } from "../../chunks/Powerline-Dd9Ukhcl.js";
1
+ import { n as e } from "../../chunks/Badge-9dPfvYOk.js";
2
+ import { t } from "../../chunks/Powerline-DhQJYaUg.js";
3
3
  export { e as EDGE_PROFILES, t as Powerline };
@@ -1 +1 @@
1
- {"version":3,"file":"PrefsForm.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/PrefsForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWhD,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,QAAQ,EAGd,MAAM,UAAU,CAAC;AAGlB,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,EAAE,QAAQ,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;AAEjE,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;IAClB;8DAC0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;0CACsC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAsB9C"}
1
+ {"version":3,"file":"PrefsForm.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/PrefsForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAahD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,UAAU,CAAC;AAGlB,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,EAAE,QAAQ,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;AAEjE,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;IAClB;8DAC0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;0CACsC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAsB9C"}
@@ -1,4 +1,4 @@
1
1
  export { PrefsForm, type PrefsFormProps, type PrefRenderer, type PrefRenderContext } from './PrefsForm';
2
2
  export { PrefsDialog, type PrefsDialogProps } from './PrefsDialog';
3
- export { isPrefLeaf, prefValueAtPath, visiblePrefSubtree, type BuiltinPref, type PrefBoolean, type PrefBooleanControl, type PrefColor, type PrefCustom, type PrefEnum, type PrefEnumControl, type PrefGroup, type PrefLeaf, type PrefNumber, type PrefNumberControl, type PrefNumberUnit, type PrefString, type PrefStringControl, } from './schema';
3
+ export { isPrefLeaf, prefValueAtPath, visiblePrefSubtree, type BuiltinPref, type PrefBoolean, type PrefBooleanControl, type PrefColor, type PrefCustom, type PrefEnum, type PrefEnumControl, type PrefEnumEncoding, type PrefGroup, type PrefKind, type PrefLeaf, type PrefNumber, type PrefNumberControl, type PrefNumberUnit, type PrefPaint, type PrefObject, type PrefString, type PrefStringControl, } from './schema';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC"}
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, r, t as i } from "../../chunks/Prefs-BMR9wMiZ.js";
1
+ import { a as e, i as t, n, r, t as i } from "../../chunks/Prefs-BSJ0lMmJ.js";
2
2
  export { i as PrefsDialog, n as PrefsForm, r as isPrefLeaf, t as prefValueAtPath, e as visiblePrefSubtree };
@@ -1,95 +1,7 @@
1
- /** Control-presentation hints per kind visually-equivalent renderings
2
- * of the same value type. The persisted value is unchanged either way. */
3
- export type PrefNumberControl = 'input' | 'slider';
4
- /** Which control renders a {@link PrefBoolean}. */
5
- export type PrefBooleanControl = 'checkbox' | 'switch';
6
- /** Which control renders a {@link PrefString}. */
7
- export type PrefStringControl = 'input' | 'textarea';
8
- /** Which control renders a {@link PrefEnum}. */
9
- export type PrefEnumControl = 'select' | 'radio';
10
- interface PrefBase<K extends string, Value> {
11
- kind: K;
12
- /** Human-readable label, e.g. "Show grid". */
13
- name: string;
14
- /** Longer help text — surfaces as a tooltip on the row label. */
15
- description: string;
16
- /** Fallback when `values` holds nothing at this leaf's path. */
17
- default: Value;
18
- /** Omitted from the form unless `showHidden` is set. */
19
- hidden?: boolean;
20
- /** Render the control full-width with no label/tooltip row — for
21
- * controls that supply their own chrome (embedded sub-panel editors).
22
- * The `description` still applies wherever the renderer surfaces it. */
23
- block?: boolean;
24
- /** Row-pairing hint for compact property UIs (`SelectionPanel`):
25
- * leaves sharing a `pair` id render side-by-side on one row labeled
26
- * with the `pair` string. Purely presentational. */
27
- pair?: string;
28
- }
29
- /** Display-unit conversion for number leaves whose stored value uses a
30
- * canonical unit the user shouldn't see (radians → degrees). Mirrors
31
- * core's `ToolPrefNumberUnit`. */
32
- export interface PrefNumberUnit {
33
- toDisplay: (stored: number) => number;
34
- fromDisplay: (display: number) => number;
35
- suffix?: string;
36
- }
37
- /**
38
- * A numeric preference. `unit` lets the stored value stay in a canonical unit
39
- * while the user edits a converted one.
40
- */
41
- export interface PrefNumber extends PrefBase<'number', number> {
42
- min?: number;
43
- max?: number;
44
- step?: number;
45
- control?: PrefNumberControl;
46
- unit?: PrefNumberUnit;
47
- }
48
- /** A boolean preference. */
49
- export interface PrefBoolean extends PrefBase<'boolean', boolean> {
50
- control?: PrefBooleanControl;
51
- }
52
- /** A free-text preference. */
53
- export interface PrefString extends PrefBase<'string', string> {
54
- control?: PrefStringControl;
55
- }
56
- /** A preference chosen from a fixed set of options. */
57
- export interface PrefEnum<T extends string = string> extends PrefBase<'enum', T> {
58
- options: readonly {
59
- value: T;
60
- label: string;
61
- }[];
62
- control?: PrefEnumControl;
63
- }
64
- /** A color preference, stored as a hex string. */
65
- export interface PrefColor extends PrefBase<'color', string> {
66
- /** Value is `#rrggbb`, or `#rrggbbaa` when `alpha` is set. */
67
- alpha?: boolean;
68
- }
69
- /** The leaf kinds `PrefsForm` renders without a custom renderer. */
70
- export type BuiltinPref = PrefNumber | PrefBoolean | PrefString | PrefEnum | PrefColor;
71
- /**
72
- * Open leaf: any node with a `kind` the form doesn't know renders via the
73
- * `renderers` map (`renderers[kind]`). App schemas keep their extra fields
74
- * (e.g. a registry-enum's `source`/`filter`) — renderers receive the node
75
- * and narrow it themselves. Deliberately NOT index-signatured so concrete
76
- * app interfaces stay assignable.
77
- */
78
- export interface PrefCustom extends PrefBase<string, unknown> {
79
- }
80
- /**
81
- * Any leaf in a preference schema — a built-in kind, or an app-defined one
82
- * rendered through `PrefsFormProps.renderers`.
83
- */
84
- export type PrefLeaf = BuiltinPref | PrefCustom;
85
- /** Nestable group: branch nodes in the schema tree. */
86
- export interface PrefGroup {
87
- name: string;
88
- description?: string;
89
- children: Record<string, PrefLeaf | PrefGroup>;
90
- }
1
+ export type { ToolPref as BuiltinPref, ToolPrefBoolean as PrefBoolean, ToolPrefBooleanControl as PrefBooleanControl, ToolPrefColor as PrefColor, ToolPrefCustom as PrefCustom, ToolPrefEnum as PrefEnum, ToolPrefEnumControl as PrefEnumControl, ToolPrefEnumEncoding as PrefEnumEncoding, ToolPrefGroup as PrefGroup, ToolPrefKind as PrefKind, ToolPrefLeaf as PrefLeaf, ToolPrefNumber as PrefNumber, ToolPrefNumberControl as PrefNumberControl, ToolPrefNumberUnit as PrefNumberUnit, ToolPrefObject as PrefObject, ToolPrefPaint as PrefPaint, ToolPrefString as PrefString, ToolPrefStringControl as PrefStringControl, } from '@weasel-js/core';
2
+ import type { ToolPrefGroup, ToolPrefLeaf } from '@weasel-js/core';
91
3
  /** Distinguishes a leaf from a group while walking a schema tree. */
92
- export declare function isPrefLeaf(node: PrefLeaf | PrefGroup): node is PrefLeaf;
4
+ export declare function isPrefLeaf(node: ToolPrefLeaf | ToolPrefGroup): node is ToolPrefLeaf;
93
5
  /** Get the value at a dotted path inside a nested value tree. Returns
94
6
  * `undefined` when a segment is missing or hits a non-object. */
95
7
  export declare function prefValueAtPath(values: unknown, path: string): unknown;
@@ -97,6 +9,5 @@ export declare function prefValueAtPath(values: unknown, path: string): unknown;
97
9
  * Recursively drop `hidden` leaves (unless `showHidden`), pruning groups
98
10
  * that end up empty. Returns null when the entire subtree is hidden.
99
11
  */
100
- export declare function visiblePrefSubtree<T extends PrefLeaf | PrefGroup>(node: T, showHidden: boolean): T | null;
101
- export {};
12
+ export declare function visiblePrefSubtree<T extends ToolPrefLeaf | ToolPrefGroup>(node: T, showHidden: boolean): T | null;
102
13
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/schema.ts"],"names":[],"mappings":"AASA;2EAC2E;AAC3E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnD,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;AACvD,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AACrD,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjD,UAAU,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK;IACxC,IAAI,EAAE,CAAC,CAAC;IACR,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,EAAE,KAAK,CAAC;IACf,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;6EAEyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;yDAEqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;mCAEmC;AACnC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AACD,4BAA4B;AAC5B,MAAM,WAAW,WAAY,SAAQ,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC/D,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AACD,8BAA8B;AAC9B,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC5D,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AACD,uDAAuD;AACvD,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,kDAAkD;AAClD,MAAM,WAAW,SAAU,SAAQ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1D,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEhE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhD,uDAAuD;AACvD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;CAChD;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAEvE;AAED;kEACkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EAC/D,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,OAAO,GAClB,CAAC,GAAG,IAAI,CAUV"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/schema.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,QAAQ,IAAI,WAAW,EACvB,eAAe,IAAI,WAAW,EAC9B,sBAAsB,IAAI,kBAAkB,EAC5C,aAAa,IAAI,SAAS,EAC1B,cAAc,IAAI,UAAU,EAC5B,YAAY,IAAI,QAAQ,EACxB,mBAAmB,IAAI,eAAe,EACtC,oBAAoB,IAAI,gBAAgB,EACxC,aAAa,IAAI,SAAS,EAC1B,YAAY,IAAI,QAAQ,EACxB,YAAY,IAAI,QAAQ,EACxB,cAAc,IAAI,UAAU,EAC5B,qBAAqB,IAAI,iBAAiB,EAC1C,kBAAkB,IAAI,cAAc,EACpC,cAAc,IAAI,UAAU,EAC5B,aAAa,IAAI,SAAS,EAC1B,cAAc,IAAI,UAAU,EAC5B,qBAAqB,IAAI,iBAAiB,GAC3C,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI,IAAI,YAAY,CAEnF;AAED;kEACkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,GAAG,aAAa,EACvE,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,OAAO,GAClB,CAAC,GAAG,IAAI,CAUV"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/RadioGroup-CIpHr3g6.js";
1
+ import { n as e, t } from "../../chunks/RadioGroup-vtwjRiUm.js";
2
2
  export { t as Radio, e as RadioGroup };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/RangeSlider-CaDogGTj.js";
1
+ import { t as e } from "../../chunks/RangeSlider-B-n_7AgJ.js";
2
2
  export { e as RangeSlider };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/ResizeHandle-BOpmtOOj.js";
1
+ import { t as e } from "../../chunks/ResizeHandle--ZExnMfa.js";
2
2
  export { e as ResizeHandle };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/Select-CHsuQCp0.js";
1
+ import { n as e, t } from "../../chunks/Select--BVTi-j0.js";
2
2
  export { t as Select, e as SelectItem };
@@ -6,12 +6,43 @@ export interface PropertyRenderContext {
6
6
  path: string;
7
7
  /** The schema leaf. App renderers narrow it to their own kind shape. */
8
8
  pref: ToolPrefLeaf;
9
- /** Aggregated value across the selection; `undefined` when mixed. */
9
+ /** Aggregated value across the selection; `undefined` when mixed or unset. */
10
10
  value: unknown;
11
11
  /** True when selected nodes disagree at this path. */
12
12
  mixed: boolean;
13
+ /**
14
+ * True when the nodes agree and what they agree on is nothing — the field
15
+ * is absent, and whatever paints comes from a fallback further down.
16
+ *
17
+ * Distinct from `mixed`, and both leave `value` undefined. A control must
18
+ * not substitute its schema default here: doing so shows a value the node
19
+ * does not hold, and the next edit writes that invention back.
20
+ */
21
+ unset: boolean;
22
+ /**
23
+ * The fields of the object this leaf is a field of — `undefined` for a
24
+ * top-level leaf, and for a field of an object the node does not hold.
25
+ *
26
+ * What a control needs when its own field doesn't carry the whole answer:
27
+ * a stroke's dash lengths are multiples of the stroke's width, so reading
28
+ * the array as a style takes both.
29
+ */
30
+ siblings?: Record<string, unknown>;
13
31
  /** Commit a value — fans out to every selected node in one undo step. */
14
32
  setValue: (value: unknown) => void;
33
+ /**
34
+ * The aggregated value at another node path — what `value` and `mixed` are
35
+ * for this leaf's own path, for any path.
36
+ *
37
+ * A control whose subject spans more than one field needs it: a font picker
38
+ * reporting which variant will actually paint has to read the node's weight
39
+ * and style. Reading it off `value` is impossible — a leaf is handed one
40
+ * field.
41
+ */
42
+ valueAt: (path: string) => {
43
+ value: unknown;
44
+ mixed: boolean;
45
+ };
15
46
  }
16
47
  /**
17
48
  * Renders the control for one property across the whole selection.
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SelectionPanel/SelectionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,KAAK,EACV,KAAK,YAAY,EAGjB,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAkBzB,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,EAAE,YAAY,CAAC;IACnB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,qBAAqB,KAAK,SAAS,CAAC;AAEzE,wCAAwC;AACxC,MAAM,WAAW,mBAAmB,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,EAAE,KAAK;IACtE;sEACkE;IAClE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,iEAAiE;IACjE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzC;0EACsE;IACtE,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC3C;2DACuD;IACvD,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC;;;uCAGmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,EAAE,KAAK,EAChE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,2CAuGjD"}
1
+ {"version":3,"file":"SelectionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SelectionPanel/SelectionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,KAAK,EACV,KAAK,YAAY,EAGjB,KAAK,YAAY,EAKlB,MAAM,iBAAiB,CAAC;AAuBzB,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,EAAE,YAAY,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,yEAAyE;IACzE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;;;;;;OAQG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,qBAAqB,KAAK,SAAS,CAAC;AAEzE,wCAAwC;AACxC,MAAM,WAAW,mBAAmB,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,EAAE,KAAK;IACtE;sEACkE;IAClE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,iEAAiE;IACjE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzC;0EACsE;IACtE,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC3C;2DACuD;IACvD,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC;;;uCAGmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,SAAS,MAAM,EAAE,KAAK,EAChE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,2CAwHjD"}
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../../chunks/SelectionPanel-D_wk_8ZN.js";
1
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../../chunks/SelectionPanel-C7kygTFE.js";
2
2
  export { r as MIXED, s as SelectionPanel, a as aggregateValue, n as classifyKind, e as effectiveSections, i as kindBreakdown, o as nodeValueAt, t as setAtPath };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Sidebar-DP_nyJze.js";
1
+ import { t as e } from "../../chunks/Sidebar-CtwBdr4n.js";
2
2
  export { e as Sidebar };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/SidebarPanel-BVTQ1ZyM.js";
1
+ import { t as e } from "../../chunks/SidebarPanel-AeSc7wNR.js";
2
2
  export { e as SidebarPanel };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Slider-tGbqoAZH.js";
1
+ import { t as e } from "../../chunks/Slider-cxWR47gi.js";
2
2
  export { e as Slider };
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../../chunks/StatusBar-DBO0E0Yd.js";
1
+ import { n as e, r as t, t as n } from "../../chunks/StatusBar-D_wu-SZh.js";
2
2
  export { n as StatusBar, e as StatusBarItem, t as StatusBarSpacer };
@@ -15,7 +15,7 @@ export type SwitchProps = Omit<RACSwitchProps, 'children' | 'className'> & {
15
15
  *
16
16
  * `ref` forwards to the underlying label element.
17
17
  */
18
- export declare const Switch: import("react").ForwardRefExoticComponent<Omit<RACSwitchProps, "children" | "className"> & {
18
+ export declare const Switch: import("react").ForwardRefExoticComponent<Omit<RACSwitchProps, "className" | "children"> & {
19
19
  children?: ReactNode;
20
20
  className?: string;
21
21
  } & import("react").RefAttributes<HTMLLabelElement>>;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Switch-JyVSSAzC.js";
1
+ import { t as e } from "../../chunks/Switch-CtZwp5zm.js";
2
2
  export { e as Switch };
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "../../chunks/Tabs-Df0sDomx.js";
1
+ import { i as e, n as t, r as n, t as r } from "../../chunks/Tabs-lB0IB4TX.js";
2
2
  export { r as Tab, t as TabList, n as TabPanel, e as Tabs };
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, r, t as i } from "../../chunks/Toast-DFw4IrD_.js";
1
+ import { a as e, i as t, n, r, t as i } from "../../chunks/Toast-hr9BYsho.js";
2
2
  export { n as ToastQueue, i as ToastRegion, r as createToastQueue, t as defaultToastQueue, e as toast };
@@ -9,7 +9,7 @@ export type ToggleBarItem<V extends string | number = string> = {
9
9
  /** Segment height and type scale for a {@link ToggleBar}. */
10
10
  export type ToggleBarSize = 'sm' | 'md';
11
11
  /** Visual treatment of a {@link ToggleBar}. */
12
- export type ToggleBarVariant = 'default' | 'minimal';
12
+ export type ToggleBarVariant = 'default' | 'minimal' | 'flat';
13
13
  type CommonProps = {
14
14
  ariaLabel?: string;
15
15
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleBar.d.ts","sourceRoot":"","sources":["../../../src/components/ToggleBar/ToggleBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9E,qEAAqE;AACrE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IAC9D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;AAErD,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;4EACwE;IACxE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;0EACsE;IACtE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IACzD,CAAC,WAAW,GAAG;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,GACF,CAAC,WAAW,GAAG;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAqGpG"}
1
+ {"version":3,"file":"ToggleBar.d.ts","sourceRoot":"","sources":["../../../src/components/ToggleBar/ToggleBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9E,qEAAqE;AACrE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IAC9D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;4EACwE;IACxE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;0EACsE;IACtE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IACzD,CAAC,WAAW,GAAG;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,GACF,CAAC,WAAW,GAAG;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAqGpG"}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/ToggleBar-BP1zFcvg.js";
1
+ import { t as e } from "../../chunks/ToggleBar-BxgWq-wO.js";
2
2
  export { e as ToggleBar };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/ToolButton-ClPz5L6j.js";
1
+ import { t as e } from "../../chunks/ToolButton-CJrPjbsj.js";
2
2
  export { e as ToolButton };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/ToolGroup-BTIwd4U4.js";
1
+ import { t as e } from "../../chunks/ToolGroup-D_lDzkvU.js";
2
2
  export { e as ToolGroup };