@weasel-js/ui 1.2.0 → 1.3.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 (267) 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-CBi_dV4B.js} +4 -4
  4. package/dist/chunks/{ActionsBar-9aR5N3lU.js.map → ActionsBar-CBi_dV4B.js.map} +1 -1
  5. package/dist/chunks/{Badge-dQzbkk-C.js → Badge-9dPfvYOk.js} +672 -670
  6. package/dist/chunks/Badge-9dPfvYOk.js.map +1 -0
  7. package/dist/chunks/{BandEditor-D3i6l299.js → BandEditor-DeE-Nhyh.js} +46 -46
  8. package/dist/chunks/BandEditor-DeE-Nhyh.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-cJHJ4kIN.js → Callout-CxDNb9iE.js} +35 -35
  12. package/dist/chunks/Callout-CxDNb9iE.js.map +1 -0
  13. package/dist/chunks/Checkbox-Chtrlh19.js +47 -0
  14. package/dist/chunks/Checkbox-Chtrlh19.js.map +1 -0
  15. package/dist/chunks/ColorField-CSSRv3jG.js +60 -0
  16. package/dist/chunks/ColorField-CSSRv3jG.js.map +1 -0
  17. package/dist/chunks/{ComboBox-ONQISwtI.js → ComboBox-BIQ8KP4h.js} +28 -28
  18. package/dist/chunks/ComboBox-BIQ8KP4h.js.map +1 -0
  19. package/dist/chunks/{CurveEditor-SmwwvrsA.js → CurveEditor-DiJk0NhK.js} +117 -116
  20. package/dist/chunks/{CurveEditor-SmwwvrsA.js.map → CurveEditor-DiJk0NhK.js.map} +1 -1
  21. package/dist/chunks/DataGrid-BgiEYBLo.js +107 -0
  22. package/dist/chunks/DataGrid-BgiEYBLo.js.map +1 -0
  23. package/dist/chunks/Dialog-RzrboT4Q.js +59 -0
  24. package/dist/chunks/Dialog-RzrboT4Q.js.map +1 -0
  25. package/dist/chunks/DragHandleGlyph-CJbzRigu.js +47 -0
  26. package/dist/chunks/DragHandleGlyph-CJbzRigu.js.map +1 -0
  27. package/dist/chunks/{Field-VQwmrIna.js → Field-DrRby9vo.js} +6 -6
  28. package/dist/chunks/Field-DrRby9vo.js.map +1 -0
  29. package/dist/chunks/GradientEditor-BuVR6pt-.js +308 -0
  30. package/dist/chunks/GradientEditor-BuVR6pt-.js.map +1 -0
  31. package/dist/chunks/InlineRange-B-Jkv8AA.js +24 -0
  32. package/dist/chunks/InlineRange-B-Jkv8AA.js.map +1 -0
  33. package/dist/chunks/Input-BnxOPY4N.js +55 -0
  34. package/dist/chunks/Input-BnxOPY4N.js.map +1 -0
  35. package/dist/chunks/{Keycaps-CFX7UAj8.js → Keycaps-Dk33JOiH.js} +15 -15
  36. package/dist/chunks/Keycaps-Dk33JOiH.js.map +1 -0
  37. package/dist/chunks/LayerStack-DQYvGNPA.js +145 -0
  38. package/dist/chunks/LayerStack-DQYvGNPA.js.map +1 -0
  39. package/dist/chunks/NumberField-BQ-KaK7T.js +59 -0
  40. package/dist/chunks/NumberField-BQ-KaK7T.js.map +1 -0
  41. package/dist/chunks/{OptionsBar-CHvH4n4u.js → OptionsBar-BecAPCID.js} +4 -4
  42. package/dist/chunks/{OptionsBar-CHvH4n4u.js.map → OptionsBar-BecAPCID.js.map} +1 -1
  43. package/dist/chunks/PaintInput-K5W4Uho3.js +205 -0
  44. package/dist/chunks/PaintInput-K5W4Uho3.js.map +1 -0
  45. package/dist/chunks/PatternPicker-BdLSj_f_.js +93 -0
  46. package/dist/chunks/PatternPicker-BdLSj_f_.js.map +1 -0
  47. package/dist/chunks/Plot2D-BEjpJhk-.js +134 -0
  48. package/dist/chunks/Plot2D-BEjpJhk-.js.map +1 -0
  49. package/dist/chunks/{PointPlotter-BUIse9c4.js → PointPlotter-C_tZb122.js} +2 -2
  50. package/dist/chunks/{PointPlotter-BUIse9c4.js.map → PointPlotter-C_tZb122.js.map} +1 -1
  51. package/dist/chunks/{Powerline-BYWdK8QH.js → Powerline-Cc-Av8Pc.js} +2 -2
  52. package/dist/chunks/{Powerline-BYWdK8QH.js.map → Powerline-Cc-Av8Pc.js.map} +1 -1
  53. package/dist/chunks/Prefs-CRTRAud6.js +300 -0
  54. package/dist/chunks/Prefs-CRTRAud6.js.map +1 -0
  55. package/dist/chunks/Properties-BRrWSBHM.js +648 -0
  56. package/dist/chunks/Properties-BRrWSBHM.js.map +1 -0
  57. package/dist/chunks/RadioGroup-BrtV1Clm.js +49 -0
  58. package/dist/chunks/RadioGroup-BrtV1Clm.js.map +1 -0
  59. package/dist/chunks/RangeSlider-CJfhxDn6.js +52 -0
  60. package/dist/chunks/RangeSlider-CJfhxDn6.js.map +1 -0
  61. package/dist/chunks/{ResizeHandle-BOpmtOOj.js → ResizeHandle-Csz3DPew.js} +8 -8
  62. package/dist/chunks/{ResizeHandle-BOpmtOOj.js.map → ResizeHandle-Csz3DPew.js.map} +1 -1
  63. package/dist/chunks/{Select-CHsuQCp0.js → Select-BYhHGmMl.js} +32 -32
  64. package/dist/chunks/Select-BYhHGmMl.js.map +1 -0
  65. package/dist/chunks/SelectionPanel-D2IYlj_K.js +446 -0
  66. package/dist/chunks/SelectionPanel-D2IYlj_K.js.map +1 -0
  67. package/dist/chunks/{Sidebar-DP_nyJze.js → Sidebar-DrBQZ9nP.js} +1 -1
  68. package/dist/chunks/{Sidebar-DP_nyJze.js.map → Sidebar-DrBQZ9nP.js.map} +1 -1
  69. package/dist/chunks/SidebarPanel-Dbqb79Kx.js +59 -0
  70. package/dist/chunks/SidebarPanel-Dbqb79Kx.js.map +1 -0
  71. package/dist/chunks/Slider-DbOt9Dji.js +257 -0
  72. package/dist/chunks/Slider-DbOt9Dji.js.map +1 -0
  73. package/dist/chunks/{StatusBar-DBO0E0Yd.js → StatusBar-B6lPbvrF.js} +6 -6
  74. package/dist/chunks/StatusBar-B6lPbvrF.js.map +1 -0
  75. package/dist/chunks/Switch-BSr-vaAC.js +27 -0
  76. package/dist/chunks/Switch-BSr-vaAC.js.map +1 -0
  77. package/dist/chunks/Tabs-CIa-Idzu.js +41 -0
  78. package/dist/chunks/Tabs-CIa-Idzu.js.map +1 -0
  79. package/dist/chunks/{Toast-DFw4IrD_.js → Toast-C0UnBqQu.js} +31 -31
  80. package/dist/chunks/{Toast-DFw4IrD_.js.map → Toast-C0UnBqQu.js.map} +1 -1
  81. package/dist/chunks/{ToggleBar-BP1zFcvg.js → ToggleBar-1wDRwSGN.js} +11 -10
  82. package/dist/chunks/ToggleBar-1wDRwSGN.js.map +1 -0
  83. package/dist/chunks/{ToolButton-ClPz5L6j.js → ToolButton-Bd9l_I8f.js} +16 -16
  84. package/dist/chunks/ToolButton-Bd9l_I8f.js.map +1 -0
  85. package/dist/chunks/{ToolGroup-BTIwd4U4.js → ToolGroup-gizXwttA.js} +1 -1
  86. package/dist/chunks/{ToolGroup-BTIwd4U4.js.map → ToolGroup-gizXwttA.js.map} +1 -1
  87. package/dist/chunks/{ToolOptionsBar-JvmY7iNe.js → ToolOptionsBar-CXjeTE1d.js} +4 -4
  88. package/dist/chunks/ToolOptionsBar-CXjeTE1d.js.map +1 -0
  89. package/dist/chunks/{ToolPalette-DAiVhdtV.js → ToolPalette-3YpkSNfj.js} +24 -24
  90. package/dist/chunks/ToolPalette-3YpkSNfj.js.map +1 -0
  91. package/dist/chunks/Tooltip-Di7vxbFa.js +40 -0
  92. package/dist/chunks/Tooltip-Di7vxbFa.js.map +1 -0
  93. package/dist/chunks/dlog-CMYiRF3Q.js +38 -0
  94. package/dist/chunks/dlog-CMYiRF3Q.js.map +1 -0
  95. package/dist/chunks/{keyGlyph-BDH5fqkO.js → keyGlyph-D3X08tSp.js} +1 -1
  96. package/dist/chunks/{keyGlyph-BDH5fqkO.js.map → keyGlyph-D3X08tSp.js.map} +1 -1
  97. package/dist/chunks/number-llMRJPJW.js +18 -0
  98. package/dist/chunks/number-llMRJPJW.js.map +1 -0
  99. package/dist/chunks/segmentedControl.module-YXqIjnmu.js +11 -0
  100. package/dist/chunks/segmentedControl.module-YXqIjnmu.js.map +1 -0
  101. package/dist/chunks/useReorderDragList-RSJqj18B.js +109 -0
  102. package/dist/chunks/useReorderDragList-RSJqj18B.js.map +1 -0
  103. package/dist/chunks/{useRovingTabIndex-DBZtq4IH.js → useRovingTabIndex-CuUl6DLF.js} +1 -1
  104. package/dist/chunks/{useRovingTabIndex-DBZtq4IH.js.map → useRovingTabIndex-CuUl6DLF.js.map} +1 -1
  105. package/dist/components/ActionBar/index.js +1 -1
  106. package/dist/components/ActionsBar/index.js +1 -1
  107. package/dist/components/Badge/Badge.d.ts.map +1 -1
  108. package/dist/components/Badge/index.js +1 -1
  109. package/dist/components/BandEditor/index.js +1 -1
  110. package/dist/components/Button/index.js +1 -1
  111. package/dist/components/Callout/index.js +1 -1
  112. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  113. package/dist/components/Checkbox/index.js +1 -1
  114. package/dist/components/ColorField/ColorField.d.ts.map +1 -1
  115. package/dist/components/ColorField/index.js +1 -1
  116. package/dist/components/ComboBox/index.js +1 -1
  117. package/dist/components/CurveEditor/index.js +1 -1
  118. package/dist/components/DataGrid/index.js +1 -1
  119. package/dist/components/Dialog/index.js +1 -1
  120. package/dist/components/DragHandleGlyph/DragHandleGlyph.d.ts +12 -0
  121. package/dist/components/DragHandleGlyph/DragHandleGlyph.d.ts.map +1 -0
  122. package/dist/components/DragHandleGlyph/index.d.ts +3 -0
  123. package/dist/components/DragHandleGlyph/index.d.ts.map +1 -0
  124. package/dist/components/DragHandleGlyph/index.js +2 -0
  125. package/dist/components/Field/index.js +1 -1
  126. package/dist/components/GradientEditor/SceneGradientHandles.d.ts +41 -0
  127. package/dist/components/GradientEditor/SceneGradientHandles.d.ts.map +1 -0
  128. package/dist/components/GradientEditor/index.d.ts +1 -0
  129. package/dist/components/GradientEditor/index.d.ts.map +1 -1
  130. package/dist/components/GradientEditor/index.js +2 -2
  131. package/dist/components/InlineRange/InlineRange.d.ts +17 -0
  132. package/dist/components/InlineRange/InlineRange.d.ts.map +1 -0
  133. package/dist/components/InlineRange/index.d.ts +2 -0
  134. package/dist/components/InlineRange/index.d.ts.map +1 -0
  135. package/dist/components/InlineRange/index.js +2 -0
  136. package/dist/components/Input/Input.d.ts +1 -1
  137. package/dist/components/Input/index.js +1 -1
  138. package/dist/components/Keycaps/index.js +2 -2
  139. package/dist/components/LayerStack/LayerStack.d.ts +49 -0
  140. package/dist/components/LayerStack/LayerStack.d.ts.map +1 -0
  141. package/dist/components/LayerStack/index.d.ts +2 -0
  142. package/dist/components/LayerStack/index.d.ts.map +1 -0
  143. package/dist/components/LayerStack/index.js +2 -0
  144. package/dist/components/NumberField/NumberField.d.ts +1 -1
  145. package/dist/components/NumberField/index.js +1 -1
  146. package/dist/components/OptionsBar/index.js +1 -1
  147. package/dist/components/PaintInput/PaintInput.d.ts +40 -0
  148. package/dist/components/PaintInput/PaintInput.d.ts.map +1 -0
  149. package/dist/components/PaintInput/index.d.ts +2 -0
  150. package/dist/components/PaintInput/index.d.ts.map +1 -0
  151. package/dist/components/PaintInput/index.js +2 -0
  152. package/dist/components/PatternPicker/PatternPicker.d.ts +31 -0
  153. package/dist/components/PatternPicker/PatternPicker.d.ts.map +1 -0
  154. package/dist/components/PatternPicker/index.d.ts +2 -0
  155. package/dist/components/PatternPicker/index.d.ts.map +1 -0
  156. package/dist/components/PatternPicker/index.js +2 -0
  157. package/dist/components/Plot2D/index.js +1 -1
  158. package/dist/components/PointPlotter/index.js +1 -1
  159. package/dist/components/Powerline/index.js +2 -2
  160. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  161. package/dist/components/Prefs/index.d.ts +1 -1
  162. package/dist/components/Prefs/index.d.ts.map +1 -1
  163. package/dist/components/Prefs/index.js +1 -1
  164. package/dist/components/Prefs/schema.d.ts +4 -92
  165. package/dist/components/Prefs/schema.d.ts.map +1 -1
  166. package/dist/components/Properties/CurveField.d.ts +37 -0
  167. package/dist/components/Properties/CurveField.d.ts.map +1 -0
  168. package/dist/components/Properties/EffectCard.d.ts +68 -0
  169. package/dist/components/Properties/EffectCard.d.ts.map +1 -0
  170. package/dist/components/Properties/PropertyGroup.d.ts +24 -0
  171. package/dist/components/Properties/PropertyGroup.d.ts.map +1 -0
  172. package/dist/components/Properties/PropertyPanel.d.ts +181 -0
  173. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -0
  174. package/dist/components/Properties/index.d.ts +9 -0
  175. package/dist/components/Properties/index.d.ts.map +1 -0
  176. package/dist/components/Properties/index.js +2 -0
  177. package/dist/components/Properties/storyLayouts.d.ts +11 -0
  178. package/dist/components/Properties/storyLayouts.d.ts.map +1 -0
  179. package/dist/components/RadioGroup/index.js +1 -1
  180. package/dist/components/RangeSlider/index.js +1 -1
  181. package/dist/components/ResizeHandle/index.js +1 -1
  182. package/dist/components/Select/index.js +1 -1
  183. package/dist/components/SelectionPanel/SelectionPanel.d.ts +32 -1
  184. package/dist/components/SelectionPanel/SelectionPanel.d.ts.map +1 -1
  185. package/dist/components/SelectionPanel/index.js +1 -1
  186. package/dist/components/Sidebar/index.js +1 -1
  187. package/dist/components/SidebarPanel/index.js +1 -1
  188. package/dist/components/Slider/index.js +1 -1
  189. package/dist/components/StatusBar/index.js +1 -1
  190. package/dist/components/Switch/Switch.d.ts +1 -1
  191. package/dist/components/Switch/index.js +1 -1
  192. package/dist/components/Tabs/index.js +1 -1
  193. package/dist/components/Toast/index.js +1 -1
  194. package/dist/components/ToggleBar/ToggleBar.d.ts +1 -1
  195. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  196. package/dist/components/ToggleBar/index.js +1 -1
  197. package/dist/components/ToolButton/index.js +1 -1
  198. package/dist/components/ToolGroup/index.js +1 -1
  199. package/dist/components/ToolOptionsBar/index.js +1 -1
  200. package/dist/components/ToolPalette/index.js +1 -1
  201. package/dist/components/Tooltip/index.js +1 -1
  202. package/dist/components/paintValue.d.ts +8 -0
  203. package/dist/components/paintValue.d.ts.map +1 -0
  204. package/dist/format/number.d.ts +13 -0
  205. package/dist/format/number.d.ts.map +1 -1
  206. package/dist/icons/Icon.d.ts +17 -0
  207. package/dist/icons/Icon.d.ts.map +1 -0
  208. package/dist/icons/index.d.ts +50 -0
  209. package/dist/icons/index.d.ts.map +1 -0
  210. package/dist/icons/paths.d.ts +71 -0
  211. package/dist/icons/paths.d.ts.map +1 -0
  212. package/dist/index.d.ts +9 -1
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js +190 -48
  215. package/dist/index.js.map +1 -1
  216. package/dist/style.css +1 -1
  217. package/package.json +4 -3
  218. package/dist/chunks/ActionBar-BvPEd_GW.js.map +0 -1
  219. package/dist/chunks/Badge-dQzbkk-C.js.map +0 -1
  220. package/dist/chunks/BandEditor-D3i6l299.js.map +0 -1
  221. package/dist/chunks/Button-9QNIYugK.js.map +0 -1
  222. package/dist/chunks/Callout-cJHJ4kIN.js.map +0 -1
  223. package/dist/chunks/Checkbox-KQ5L8APP.js +0 -47
  224. package/dist/chunks/Checkbox-KQ5L8APP.js.map +0 -1
  225. package/dist/chunks/ColorField-ykpiD3XU.js +0 -60
  226. package/dist/chunks/ColorField-ykpiD3XU.js.map +0 -1
  227. package/dist/chunks/ComboBox-ONQISwtI.js.map +0 -1
  228. package/dist/chunks/DataGrid-DZQ4Chbd.js +0 -210
  229. package/dist/chunks/DataGrid-DZQ4Chbd.js.map +0 -1
  230. package/dist/chunks/Dialog-CqwdJv_t.js +0 -59
  231. package/dist/chunks/Dialog-CqwdJv_t.js.map +0 -1
  232. package/dist/chunks/Field-VQwmrIna.js.map +0 -1
  233. package/dist/chunks/GradientEditor-Bg6SX64V.js +0 -280
  234. package/dist/chunks/GradientEditor-Bg6SX64V.js.map +0 -1
  235. package/dist/chunks/Input-DpkwYtUY.js +0 -55
  236. package/dist/chunks/Input-DpkwYtUY.js.map +0 -1
  237. package/dist/chunks/Keycaps-CFX7UAj8.js.map +0 -1
  238. package/dist/chunks/NumberField-BbzI0GtU.js +0 -59
  239. package/dist/chunks/NumberField-BbzI0GtU.js.map +0 -1
  240. package/dist/chunks/Plot2D-CEnhzodm.js +0 -168
  241. package/dist/chunks/Plot2D-CEnhzodm.js.map +0 -1
  242. package/dist/chunks/Prefs-BMR9wMiZ.js +0 -238
  243. package/dist/chunks/Prefs-BMR9wMiZ.js.map +0 -1
  244. package/dist/chunks/RadioGroup-CIpHr3g6.js +0 -49
  245. package/dist/chunks/RadioGroup-CIpHr3g6.js.map +0 -1
  246. package/dist/chunks/RangeSlider-CaDogGTj.js +0 -52
  247. package/dist/chunks/RangeSlider-CaDogGTj.js.map +0 -1
  248. package/dist/chunks/Select-CHsuQCp0.js.map +0 -1
  249. package/dist/chunks/SelectionPanel-D_wk_8ZN.js +0 -303
  250. package/dist/chunks/SelectionPanel-D_wk_8ZN.js.map +0 -1
  251. package/dist/chunks/SidebarPanel-BVTQ1ZyM.js +0 -59
  252. package/dist/chunks/SidebarPanel-BVTQ1ZyM.js.map +0 -1
  253. package/dist/chunks/Slider-tGbqoAZH.js +0 -259
  254. package/dist/chunks/Slider-tGbqoAZH.js.map +0 -1
  255. package/dist/chunks/StatusBar-DBO0E0Yd.js.map +0 -1
  256. package/dist/chunks/Switch-JyVSSAzC.js +0 -27
  257. package/dist/chunks/Switch-JyVSSAzC.js.map +0 -1
  258. package/dist/chunks/Tabs-Df0sDomx.js +0 -41
  259. package/dist/chunks/Tabs-Df0sDomx.js.map +0 -1
  260. package/dist/chunks/ToggleBar-BP1zFcvg.js.map +0 -1
  261. package/dist/chunks/ToolButton-ClPz5L6j.js.map +0 -1
  262. package/dist/chunks/ToolOptionsBar-JvmY7iNe.js.map +0 -1
  263. package/dist/chunks/ToolPalette-DAiVhdtV.js.map +0 -1
  264. package/dist/chunks/Tooltip-DXJbdR5B.js +0 -40
  265. package/dist/chunks/Tooltip-DXJbdR5B.js.map +0 -1
  266. package/dist/chunks/segmentedControl.module-DCyuDbj1.js +0 -11
  267. package/dist/chunks/segmentedControl.module-DCyuDbj1.js.map +0 -1
@@ -1,94 +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 type PrefCustom = PrefBase<string, unknown>;
79
- /**
80
- * Any leaf in a preference schema — a built-in kind, or an app-defined one
81
- * rendered through `PrefsFormProps.renderers`.
82
- */
83
- export type PrefLeaf = BuiltinPref | PrefCustom;
84
- /** Nestable group: branch nodes in the schema tree. */
85
- export interface PrefGroup {
86
- name: string;
87
- description?: string;
88
- children: Record<string, PrefLeaf | PrefGroup>;
89
- }
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';
90
3
  /** Distinguishes a leaf from a group while walking a schema tree. */
91
- export declare function isPrefLeaf(node: PrefLeaf | PrefGroup): node is PrefLeaf;
4
+ export declare function isPrefLeaf(node: ToolPrefLeaf | ToolPrefGroup): node is ToolPrefLeaf;
92
5
  /** Get the value at a dotted path inside a nested value tree. Returns
93
6
  * `undefined` when a segment is missing or hits a non-object. */
94
7
  export declare function prefValueAtPath(values: unknown, path: string): unknown;
@@ -96,6 +9,5 @@ export declare function prefValueAtPath(values: unknown, path: string): unknown;
96
9
  * Recursively drop `hidden` leaves (unless `showHidden`), pruning groups
97
10
  * that end up empty. Returns null when the entire subtree is hidden.
98
11
  */
99
- export declare function visiblePrefSubtree<T extends PrefLeaf | PrefGroup>(node: T, showHidden: boolean): T | null;
100
- export {};
12
+ export declare function visiblePrefSubtree<T extends ToolPrefLeaf | ToolPrefGroup>(node: T, showHidden: boolean): T | null;
101
13
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Prefs/schema.ts"],"names":[],"mappings":"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"}
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"}
@@ -0,0 +1,37 @@
1
+ /** An annotation drawn over a curve plot: a shaded band across a range of x,
2
+ * or a vertical line at one x. */
3
+ export type CurveMark = {
4
+ kind: 'band';
5
+ x: [number, number];
6
+ color?: string;
7
+ } | {
8
+ kind: 'line';
9
+ x: number;
10
+ color?: string;
11
+ };
12
+ /** Props for `<CurveField>`. */
13
+ export interface CurveFieldProps {
14
+ /** Flat [x0, y0, x1, y1, …] — matches how curve-as-array configs
15
+ * serialize in JSON snapshots. */
16
+ values: number[];
17
+ min: number;
18
+ max: number;
19
+ step: number;
20
+ /** Plot width in CSS px. Caller sizes (typically uses a ResizeObserver). */
21
+ width: number;
22
+ /** Plot height in CSS px. Default 110. */
23
+ height?: number;
24
+ /** Flat default curve. When provided, a Reset button restores it. */
25
+ defaults?: readonly number[];
26
+ onChange: (next: number[]) => void;
27
+ /** Optional vertical marks overlaid on the plot (e.g. landmarks). */
28
+ marks?: readonly CurveMark[];
29
+ }
30
+ /**
31
+ * A function-domain (y = f(x), x ∈ [0,1]) curve editor with per-stop
32
+ * numeric readouts and flip buttons. Wraps weasel-ui's
33
+ * `CurveEditor`; consumers wanting the raw editor (2D paths,
34
+ * custom anchors) should import that instead.
35
+ */
36
+ export declare function CurveField({ values, min, max, step, width, height, defaults, onChange, marks, }: CurveFieldProps): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=CurveField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurveField.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/CurveField.tsx"],"names":[],"mappings":"AAKA;mCACmC;AACnC,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B;uCACmC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,GACN,EAAE,eAAe,2CA2IjB"}
@@ -0,0 +1,68 @@
1
+ import { type ReactNode } from 'react';
2
+ /** Props for `<Subpanel>`. */
3
+ export interface SubpanelProps {
4
+ title: ReactNode;
5
+ children: ReactNode;
6
+ className?: string;
7
+ }
8
+ /** A typographic divider inside a property list: a small title flanked by a
9
+ * rule. Purely a heading — use `<PropertyGroup>` for a bordered section. */
10
+ export declare function Subpanel({ title, children, className }: SubpanelProps): import("react/jsx-runtime").JSX.Element;
11
+ /** Props for `<EffectCard>`. */
12
+ export interface EffectCardProps {
13
+ /** Card title rendered in the title bar (e.g. effect kind label or a select). */
14
+ title: ReactNode;
15
+ /** Optional badge/chip displayed before the remove button (e.g. primary value summary). */
16
+ primary?: ReactNode;
17
+ /** Optional accent color in any CSS color form. Sets --wzl-effect-card-accent on the card. */
18
+ accent?: string;
19
+ /** Optional ordinal badge that doubles as the drag handle (used by tail cards in SB). */
20
+ index?: number;
21
+ expanded?: boolean;
22
+ onToggleExpanded?: () => void;
23
+ onRemove?: () => void;
24
+ /**
25
+ * Drag-handle wiring. When provided, an inline handle (⋮⋮ icon or `index`)
26
+ * activates HTML5 drag on press. Consumer owns the drag/drop coordination —
27
+ * see EffectCardList for the batteries-included wrapper.
28
+ */
29
+ draggable?: boolean;
30
+ onPressHandle?: () => void;
31
+ onReleaseHandle?: () => void;
32
+ onDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;
33
+ onDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;
34
+ onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
35
+ onDragLeave?: (e: React.DragEvent<HTMLDivElement>) => void;
36
+ onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;
37
+ dragging?: boolean;
38
+ children?: ReactNode;
39
+ className?: string;
40
+ }
41
+ /** An accented, collapsible card for one item in a list of like things —
42
+ * effects, layers, tails. The accent color rebinds the theme accent token
43
+ * within the card, so its controls pick it up too. */
44
+ export declare function EffectCard({ title, primary, accent, index, expanded, onToggleExpanded, onRemove, draggable, onPressHandle, onReleaseHandle, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, dragging, children, className, }: EffectCardProps): import("react/jsx-runtime").JSX.Element;
45
+ /** The minimum an item must carry to appear in an `<EffectCardList>`. */
46
+ export interface EffectCardListItem {
47
+ id: string | number;
48
+ }
49
+ /** Props for `<EffectCardList>`. */
50
+ export interface EffectCardListProps<T extends EffectCardListItem> {
51
+ items: ReadonlyArray<T>;
52
+ renderItem: (item: T, helpers: {
53
+ isExpanded: boolean;
54
+ isDragging: boolean;
55
+ toggleExpanded: () => void;
56
+ cardProps: Pick<EffectCardProps, 'expanded' | 'dragging' | 'draggable' | 'onToggleExpanded' | 'onPressHandle' | 'onReleaseHandle' | 'onDragStart' | 'onDragEnd' | 'onDragOver' | 'onDragLeave' | 'onDrop'>;
57
+ }) => ReactNode;
58
+ onReorder: (sourceId: T['id'], targetId: T['id'], position: 'before' | 'after') => void;
59
+ /** Optional rendered when the list is empty. */
60
+ empty?: ReactNode;
61
+ /** IDs to render expanded on first mount. Defaults to all collapsed. */
62
+ defaultExpandedIds?: ReadonlyArray<T['id']>;
63
+ }
64
+ /** A drag-reorderable list of `<EffectCard>`s. Owns the expanded and dragging
65
+ * state and hands it back to `renderItem`, so the caller only supplies each
66
+ * card's contents. */
67
+ export declare function EffectCardList<T extends EffectCardListItem>({ items, renderItem, onReorder, empty, defaultExpandedIds, }: EffectCardListProps<T>): import("react/jsx-runtime").JSX.Element;
68
+ //# sourceMappingURL=EffectCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectCard.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/EffectCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Props for `<PropertyGroup>`. */
3
+ export interface PropertyGroupProps {
4
+ /** Title rendered between two rules at the top of the group. */
5
+ title: ReactNode;
6
+ /** When true the group renders nothing — useful for conditional sections. */
7
+ hidden?: boolean;
8
+ children: ReactNode;
9
+ className?: string;
10
+ /**
11
+ * How rows pack into the 2-column grid.
12
+ * - `'auto-color'` (default): only color rows pair side-by-side; everything
13
+ * else spans the full width.
14
+ * - `'pairs'`: every row auto-places into the 2-column grid two-per-row.
15
+ */
16
+ pack?: 'auto-color' | 'pairs';
17
+ }
18
+ /**
19
+ * Visually-bordered group inside a PropertyList. Use to scope a set of
20
+ * related rows under a heading (e.g. "Aqua", "Bevel", "Dome" sections
21
+ * inside a fill effect's controls).
22
+ */
23
+ export declare function PropertyGroup({ title, hidden, children, className, pack, }: PropertyGroupProps): import("react/jsx-runtime").JSX.Element | null;
24
+ //# sourceMappingURL=PropertyGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/PropertyGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,KAAK,EAAE,SAAS,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAmB,GACpB,EAAE,kBAAkB,kDAcpB"}
@@ -0,0 +1,181 @@
1
+ import { type ReactNode } from 'react';
2
+ /** Props for `<PropertyPanel>`. */
3
+ export interface PropertyPanelProps {
4
+ title?: ReactNode;
5
+ children: ReactNode;
6
+ className?: string;
7
+ }
8
+ /** A titled panel holding property rows — the sidebar container the rest of
9
+ * this module's components fill. */
10
+ export declare function PropertyPanel({ title, children, className }: PropertyPanelProps): import("react/jsx-runtime").JSX.Element;
11
+ /** How a property list packs its rows into two columns. */
12
+ export type PropertyListPack = 'auto-color' | 'pairs';
13
+ /** Props for `<PropertyList>`. */
14
+ export interface PropertyListProps {
15
+ children: ReactNode;
16
+ className?: string;
17
+ /**
18
+ * How rows pack into the 2-column grid.
19
+ * - `'auto-color'` (default): only color rows pair side-by-side; everything
20
+ * else spans the full width. Right for sparse top-level panels.
21
+ * - `'pairs'`: every row auto-places into the 2-column grid two-per-row.
22
+ * Headers and subpanels still span the full width; wrap any other
23
+ * full-width child in `<PropertySpan>`. Right for dense effect bodies.
24
+ */
25
+ pack?: PropertyListPack;
26
+ }
27
+ /**
28
+ * Grid container for PropertyRows. Use standalone for chrome-less layouts, or
29
+ * nest inside <PropertyPanel/> for the standard glass card.
30
+ */
31
+ export declare function PropertyList({ children, className, pack }: PropertyListProps): import("react/jsx-runtime").JSX.Element;
32
+ /** Props for `<PropertySpan>`. */
33
+ export interface PropertySpanProps {
34
+ children: ReactNode;
35
+ className?: string;
36
+ }
37
+ /**
38
+ * Wrapper that makes an arbitrary child span both columns of a
39
+ * `<PropertyList pack="pairs">`, a `<PropertyGroup pack="pairs">` body, or a
40
+ * `<Subpanel>`. `<PropertyRow span>` covers the row case; this covers
41
+ * everything else a consumer puts in the grid.
42
+ */
43
+ export declare function PropertySpan({ children, className }: PropertySpanProps): import("react/jsx-runtime").JSX.Element;
44
+ /** Which control shape a row holds, which decides its intrinsic layout. */
45
+ export type PropertyRowVariant = 'default' | 'color' | 'checkbox';
46
+ /** Whether a row's label sits above its control or beside it. */
47
+ export type PropertyRowLayout = 'block' | 'inline';
48
+ /** Props for `<PropertyRow>`. */
49
+ export interface PropertyRowProps {
50
+ label: ReactNode;
51
+ /** Right-aligned readout shown next to the label (e.g. current value). */
52
+ readout?: ReactNode;
53
+ /**
54
+ * Help text for the row, shown in a tooltip off an ⓘ affordance beside the
55
+ * label. Empty or absent renders no affordance.
56
+ */
57
+ description?: string;
58
+ variant?: PropertyRowVariant;
59
+ /**
60
+ * Label position relative to the control. "block" (default) stacks
61
+ * label above control; "inline" places the label to the left.
62
+ * Color and checkbox variants are always inline by their own nature.
63
+ */
64
+ layout?: PropertyRowLayout;
65
+ /**
66
+ * Take the full width of the enclosing grid. Only has an effect inside a
67
+ * `<PropertyList pack="pairs">` or a `<Subpanel>`; elsewhere rows are already
68
+ * full width.
69
+ */
70
+ span?: boolean;
71
+ children: ReactNode;
72
+ htmlFor?: string;
73
+ className?: string;
74
+ }
75
+ /** The label-plus-control frame every typed row below is built from. Use it
76
+ * directly for a control this module does not cover. */
77
+ export declare function PropertyRow({ label, readout, description, variant, layout, span, children, htmlFor, className, }: PropertyRowProps): import("react/jsx-runtime").JSX.Element;
78
+ /** Props for `<SliderRow>`. */
79
+ export interface SliderRowProps {
80
+ label: ReactNode;
81
+ value: number;
82
+ min: number;
83
+ max: number;
84
+ step?: number;
85
+ onChange: (next: number) => void;
86
+ /** Override how the value is rendered next to the label. Defaults to `value.toString()`. */
87
+ format?: (value: number) => ReactNode;
88
+ /**
89
+ * Optional suffix rendered next to the readout. A string becomes a
90
+ * baseline-aligned dim "word" unit (e.g. "px"); pass JSX like `<sup>°</sup>`
91
+ * to get the browser's native super positioning for symbol units.
92
+ */
93
+ unit?: ReactNode;
94
+ layout?: PropertyRowLayout;
95
+ description?: string;
96
+ }
97
+ /** A bounded number edited by dragging, with a live readout whose precision
98
+ * follows `step`. */
99
+ export declare function SliderRow({ label, value, min, max, step, onChange, format, unit, layout, description, }: SliderRowProps): import("react/jsx-runtime").JSX.Element;
100
+ /** Props for `<ColorRow>`. */
101
+ export interface ColorRowProps {
102
+ label: ReactNode;
103
+ value: string;
104
+ onChange: (next: string) => void;
105
+ /** 0..1 alpha. When provided, a translucent slider renders beneath the swatch. */
106
+ alpha?: number;
107
+ onAlphaChange?: (next: number) => void;
108
+ /**
109
+ * Render the alpha track as inert (dimmed, no thumb, not-allowed cursor).
110
+ * Use when the color's consumer drops alpha so the affordance reads dead.
111
+ */
112
+ alphaDisabled?: boolean;
113
+ description?: string;
114
+ }
115
+ /** A color swatch, optionally with an alpha slider beneath it. */
116
+ export declare function ColorRow({ label, value, onChange, alpha, onAlphaChange, alphaDisabled, description, }: ColorRowProps): import("react/jsx-runtime").JSX.Element;
117
+ /** Props for `<CheckboxRow>`. */
118
+ export interface CheckboxRowProps {
119
+ label: ReactNode;
120
+ value: boolean;
121
+ onChange: (next: boolean) => void;
122
+ description?: string;
123
+ }
124
+ /** A boolean checkbox. */
125
+ export declare function CheckboxRow({ label, value, onChange, description }: CheckboxRowProps): import("react/jsx-runtime").JSX.Element;
126
+ /** Props for `<TextRow>`. */
127
+ export interface TextRowProps {
128
+ label: ReactNode;
129
+ value: string;
130
+ onChange: (next: string) => void;
131
+ placeholder?: string;
132
+ maxLength?: number;
133
+ layout?: PropertyRowLayout;
134
+ description?: string;
135
+ }
136
+ /** A single-line text input. */
137
+ export declare function TextRow({ label, value, onChange, placeholder, maxLength, layout, description, }: TextRowProps): import("react/jsx-runtime").JSX.Element;
138
+ /** Props for `<NumberRow>`. */
139
+ export interface NumberRowProps {
140
+ label: ReactNode;
141
+ value: number;
142
+ onChange: (next: number) => void;
143
+ min?: number;
144
+ max?: number;
145
+ step?: number;
146
+ placeholder?: string;
147
+ layout?: PropertyRowLayout;
148
+ description?: string;
149
+ }
150
+ /** A number typed directly. Reach for `<SliderRow>` when the range matters
151
+ * more than the exact value. */
152
+ export declare function NumberRow({ label, value, onChange, min, max, step, placeholder, layout, description, }: NumberRowProps): import("react/jsx-runtime").JSX.Element;
153
+ export interface PropertyOption<T extends string> {
154
+ value: T;
155
+ label: ReactNode;
156
+ }
157
+ /** Props for `<SelectRow>`. */
158
+ export interface SelectRowProps<T extends string> {
159
+ label: ReactNode;
160
+ value: T;
161
+ options: ReadonlyArray<PropertyOption<T>>;
162
+ onChange: (next: T) => void;
163
+ layout?: PropertyRowLayout;
164
+ description?: string;
165
+ }
166
+ /** A dropdown over a fixed set of choices. Prefer `<ToggleRow>` when there
167
+ * are only two or three and they should all stay visible. */
168
+ export declare function SelectRow<T extends string>({ label, value, options, onChange, layout, description, }: SelectRowProps<T>): import("react/jsx-runtime").JSX.Element;
169
+ /** Props for `<ToggleRow>`. */
170
+ export interface ToggleRowProps<T extends string> {
171
+ label: ReactNode;
172
+ value: T;
173
+ options: ReadonlyArray<PropertyOption<T>>;
174
+ onChange: (next: T) => void;
175
+ layout?: PropertyRowLayout;
176
+ description?: string;
177
+ }
178
+ /** A segmented control: the same choice as a select, with every option
179
+ * visible at once. */
180
+ export declare function ToggleRow<T extends string>({ label, value, options, onChange, layout, description, }: ToggleRowProps<T>): import("react/jsx-runtime").JSX.Element;
181
+ //# sourceMappingURL=PropertyPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyPanel.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/PropertyPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type { CurveFieldProps, CurveMark } from './CurveField';
2
+ export { CurveField } from './CurveField';
3
+ export type { EffectCardListItem, EffectCardListProps, EffectCardProps, SubpanelProps, } from './EffectCard';
4
+ export { EffectCard, EffectCardList, Subpanel } from './EffectCard';
5
+ export type { PropertyGroupProps } from './PropertyGroup';
6
+ export { PropertyGroup } from './PropertyGroup';
7
+ export type { CheckboxRowProps, ColorRowProps, NumberRowProps, PropertyListPack, PropertyListProps, PropertyOption, PropertyPanelProps, PropertyRowLayout, PropertyRowProps, PropertyRowVariant, PropertySpanProps, SelectRowProps, SliderRowProps, TextRowProps, ToggleRowProps, } from './PropertyPanel';
8
+ export { CheckboxRow, ColorRow, NumberRow, PropertyList, PropertyPanel, PropertyRow, PropertySpan, SelectRow, SliderRow, TextRow, ToggleRow, } from './PropertyPanel';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,GACV,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { a as e, c as t, d as n, f as r, g as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "../../chunks/Properties-BRrWSBHM.js";
2
+ export { m as CheckboxRow, l as ColorRow, i as CurveField, d as EffectCard, c as EffectCardList, f as NumberRow, r as PropertyGroup, o as PropertyList, e as PropertyPanel, u as PropertyRow, p as PropertySpan, t as SelectRow, s as SliderRow, a as Subpanel, h as TextRow, n as ToggleRow };
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Side-by-side comparison used by row stories to show block + inline layouts
4
+ * at the same time. Not a stories file — name has no .stories. suffix so
5
+ * Storybook's glob skips it.
6
+ */
7
+ export declare function SideBySide({ block, inline }: {
8
+ block: ReactNode;
9
+ inline: ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=storyLayouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storyLayouts.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/storyLayouts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,2CA4BpF"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/RadioGroup-CIpHr3g6.js";
1
+ import { n as e, t } from "../../chunks/RadioGroup-BrtV1Clm.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-CJfhxDn6.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-Csz3DPew.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-BYhHGmMl.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-D2IYlj_K.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-DrBQZ9nP.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-Dbqb79Kx.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-DbOt9Dji.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-B6lPbvrF.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-BSr-vaAC.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-CIa-Idzu.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-C0UnBqQu.js";
2
2
  export { n as ToastQueue, i as ToastRegion, r as createToastQueue, t as defaultToastQueue, e as toast };