@weasel-js/ui 1.5.2 → 1.6.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 (466) hide show
  1. package/dist/chunks/ActionBar-CYvfmEz0.js +57 -0
  2. package/dist/chunks/ActionBar-CYvfmEz0.js.map +1 -0
  3. package/dist/chunks/{Badge-CW9pBPFl.js → Badge-DZ0lFs14.js} +755 -738
  4. package/dist/chunks/Badge-DZ0lFs14.js.map +1 -0
  5. package/dist/chunks/{BandEditor-jY-PFKY6.js → BandEditor-D-nVrVO4.js} +34 -34
  6. package/dist/chunks/{BandEditor-jY-PFKY6.js.map → BandEditor-D-nVrVO4.js.map} +1 -1
  7. package/dist/chunks/Button-Dyp31jMt.js +111 -0
  8. package/dist/chunks/Button-Dyp31jMt.js.map +1 -0
  9. package/dist/chunks/ButtonBar-smZzFuEo.js +46 -0
  10. package/dist/chunks/ButtonBar-smZzFuEo.js.map +1 -0
  11. package/dist/chunks/Callout-xLjnx7Mp.js +119 -0
  12. package/dist/chunks/Callout-xLjnx7Mp.js.map +1 -0
  13. package/dist/chunks/{Checkbox-BOsDAY2F.js → Checkbox-ChZz30Ds.js} +1 -1
  14. package/dist/chunks/{Checkbox-BOsDAY2F.js.map → Checkbox-ChZz30Ds.js.map} +1 -1
  15. package/dist/chunks/Code-v4tDWuuN.js +24 -0
  16. package/dist/chunks/Code-v4tDWuuN.js.map +1 -0
  17. package/dist/chunks/{ColorField-BYzgZM9o.js → ColorField-DJSCuSJv.js} +15 -15
  18. package/dist/chunks/ColorField-DJSCuSJv.js.map +1 -0
  19. package/dist/chunks/ColorModeControl-JOEiqtE0.js +47 -0
  20. package/dist/chunks/ColorModeControl-JOEiqtE0.js.map +1 -0
  21. package/dist/chunks/{ComboBox-Cz3f0Y_8.js → ComboBox-C1JgIpML.js} +2 -2
  22. package/dist/chunks/{ComboBox-Cz3f0Y_8.js.map → ComboBox-C1JgIpML.js.map} +1 -1
  23. package/dist/chunks/{CurveEditor-DXwSP-iA.js → CurveEditor-f1R4kSbD.js} +2 -2
  24. package/dist/chunks/{CurveEditor-DXwSP-iA.js.map → CurveEditor-f1R4kSbD.js.map} +1 -1
  25. package/dist/chunks/DataGrid-CZPrB_3a.js +152 -0
  26. package/dist/chunks/DataGrid-CZPrB_3a.js.map +1 -0
  27. package/dist/chunks/DetailList-DHaXX4TG.js +43 -0
  28. package/dist/chunks/DetailList-DHaXX4TG.js.map +1 -0
  29. package/dist/chunks/{DetentSlider-CAubVX0J.js → DetentSlider-BYyaZha6.js} +2 -2
  30. package/dist/chunks/{DetentSlider-CAubVX0J.js.map → DetentSlider-BYyaZha6.js.map} +1 -1
  31. package/dist/chunks/Dialog-GIvjoDQj.js +66 -0
  32. package/dist/chunks/Dialog-GIvjoDQj.js.map +1 -0
  33. package/dist/chunks/Disclosure-D79jhmh2.js +58 -0
  34. package/dist/chunks/Disclosure-D79jhmh2.js.map +1 -0
  35. package/dist/chunks/DragGhost-DcU7cOwy.js +30 -0
  36. package/dist/chunks/DragGhost-DcU7cOwy.js.map +1 -0
  37. package/dist/chunks/{DragHandleGlyph-CppAz4_8.js → DragHandleGlyph-BtBxHjZS.js} +1 -1
  38. package/dist/chunks/{DragHandleGlyph-CppAz4_8.js.map → DragHandleGlyph-BtBxHjZS.js.map} +1 -1
  39. package/dist/chunks/{Field-DWnV8WZY.js → Field-xbqRmjsI.js} +1 -1
  40. package/dist/chunks/{Field-DWnV8WZY.js.map → Field-xbqRmjsI.js.map} +1 -1
  41. package/dist/chunks/FillStrokeSwatch-BViKXIPx.js +111 -0
  42. package/dist/chunks/FillStrokeSwatch-BViKXIPx.js.map +1 -0
  43. package/dist/chunks/{FontFamilySelect-DxfgTC3G.js → FontFamilySelect-r9TV_xIH.js} +2 -2
  44. package/dist/chunks/{FontFamilySelect-DxfgTC3G.js.map → FontFamilySelect-r9TV_xIH.js.map} +1 -1
  45. package/dist/chunks/GradientEditor-BRTxHG-W.js +333 -0
  46. package/dist/chunks/{GradientEditor-rRBmf3G0.js.map → GradientEditor-BRTxHG-W.js.map} +1 -1
  47. package/dist/chunks/{Icon-DT0x6HaQ.js → Icon-BW0qv_U7.js} +28 -20
  48. package/dist/chunks/Icon-BW0qv_U7.js.map +1 -0
  49. package/dist/chunks/InlineRange-BwGFDhpT.js +29 -0
  50. package/dist/chunks/InlineRange-BwGFDhpT.js.map +1 -0
  51. package/dist/chunks/{Input-DbMKpkXy.js → Input-Bx2cuUbS.js} +24 -19
  52. package/dist/chunks/Input-Bx2cuUbS.js.map +1 -0
  53. package/dist/chunks/ItemList-DzJ2lK0R.js +175 -0
  54. package/dist/chunks/ItemList-DzJ2lK0R.js.map +1 -0
  55. package/dist/chunks/ItemList.module-DDUXfuZL.js +14 -0
  56. package/dist/chunks/ItemList.module-DDUXfuZL.js.map +1 -0
  57. package/dist/chunks/{Jog-DkkTlL3_.js → Jog-LPoac9s4.js} +6 -6
  58. package/dist/chunks/{Jog-DkkTlL3_.js.map → Jog-LPoac9s4.js.map} +1 -1
  59. package/dist/chunks/{Keycaps-DunVpejA.js → Keycaps-CKiKOJnJ.js} +71 -65
  60. package/dist/chunks/Keycaps-CKiKOJnJ.js.map +1 -0
  61. package/dist/chunks/LayerList-BeGrkLb9.js +427 -0
  62. package/dist/chunks/LayerList-BeGrkLb9.js.map +1 -0
  63. package/dist/chunks/ListEditor-C6zLzCsJ.js +74 -0
  64. package/dist/chunks/ListEditor-C6zLzCsJ.js.map +1 -0
  65. package/dist/chunks/MenuButton-BcdhrNGh.js +70 -0
  66. package/dist/chunks/MenuButton-BcdhrNGh.js.map +1 -0
  67. package/dist/chunks/MeshEditor-BOOIFWnz.js +87 -0
  68. package/dist/chunks/MeshEditor-BOOIFWnz.js.map +1 -0
  69. package/dist/chunks/{NumberField-CCjEDZCg.js → NumberField-C1Y7zP-a.js} +27 -22
  70. package/dist/chunks/NumberField-C1Y7zP-a.js.map +1 -0
  71. package/dist/chunks/{OptionsBar-DeQ-vUeZ.js → OptionsBar-DlcagPYK.js} +3 -3
  72. package/dist/chunks/{OptionsBar-DeQ-vUeZ.js.map → OptionsBar-DlcagPYK.js.map} +1 -1
  73. package/dist/chunks/{PaintField-jBOJ32rL.js → PaintField-B2mLRZa4.js} +20 -20
  74. package/dist/chunks/PaintField-B2mLRZa4.js.map +1 -0
  75. package/dist/chunks/{PaintInput-Qs7Rul5R.js → PaintInput-BFKhd83I.js} +24 -24
  76. package/dist/chunks/{PaintInput-Qs7Rul5R.js.map → PaintInput-BFKhd83I.js.map} +1 -1
  77. package/dist/chunks/{PatternPicker-BMpXWboq.js → PatternPicker-DdfpxoQy.js} +2 -2
  78. package/dist/chunks/{PatternPicker-BMpXWboq.js.map → PatternPicker-DdfpxoQy.js.map} +1 -1
  79. package/dist/chunks/{Plot2D-CXf_f7QD.js → Plot2D-lyO7waPQ.js} +1 -1
  80. package/dist/chunks/{Plot2D-CXf_f7QD.js.map → Plot2D-lyO7waPQ.js.map} +1 -1
  81. package/dist/chunks/{PointPlotter-S_gz7VYt.js → PointPlotter-DGs9i5P-.js} +2 -2
  82. package/dist/chunks/{PointPlotter-S_gz7VYt.js.map → PointPlotter-DGs9i5P-.js.map} +1 -1
  83. package/dist/chunks/{Powerline-Ak5AWUlK.js → Powerline-DBEPceLE.js} +4 -2
  84. package/dist/chunks/Powerline-DBEPceLE.js.map +1 -0
  85. package/dist/chunks/Prefs-Ctu0H4-b.js +475 -0
  86. package/dist/chunks/Prefs-Ctu0H4-b.js.map +1 -0
  87. package/dist/chunks/Properties-Bbneh1ws.js +281 -0
  88. package/dist/chunks/Properties-Bbneh1ws.js.map +1 -0
  89. package/dist/chunks/PropertyField-CDb19d3F.js +756 -0
  90. package/dist/chunks/PropertyField-CDb19d3F.js.map +1 -0
  91. package/dist/chunks/{RadioGroup-CsVp3SEu.js → RadioGroup-BK2mD6Q0.js} +2 -2
  92. package/dist/chunks/{RadioGroup-CsVp3SEu.js.map → RadioGroup-BK2mD6Q0.js.map} +1 -1
  93. package/dist/chunks/{RangeSlider-DNr-pJpZ.js → RangeSlider-BiRAOsTh.js} +1 -1
  94. package/dist/chunks/{RangeSlider-DNr-pJpZ.js.map → RangeSlider-BiRAOsTh.js.map} +1 -1
  95. package/dist/chunks/{ResizeHandle-RXFf5fXr.js → ResizeHandle-Cc6EOehs.js} +9 -9
  96. package/dist/chunks/{ResizeHandle-RXFf5fXr.js.map → ResizeHandle-Cc6EOehs.js.map} +1 -1
  97. package/dist/chunks/Select-DVValBe1.js +225 -0
  98. package/dist/chunks/Select-DVValBe1.js.map +1 -0
  99. package/dist/chunks/{SelectionPanel-CEbLS-0D.js → SelectionPanel-C5LmZA7b.js} +21 -20
  100. package/dist/chunks/{SelectionPanel-CEbLS-0D.js.map → SelectionPanel-C5LmZA7b.js.map} +1 -1
  101. package/dist/chunks/{Sidebar-qn_oSCNX.js → Sidebar-DKKd4R-x.js} +1 -1
  102. package/dist/chunks/{Sidebar-qn_oSCNX.js.map → Sidebar-DKKd4R-x.js.map} +1 -1
  103. package/dist/chunks/{SidebarPanel-Bs6V21hg.js → SidebarPanel-u5NsuAZY.js} +15 -19
  104. package/dist/chunks/SidebarPanel-u5NsuAZY.js.map +1 -0
  105. package/dist/chunks/{Slider-CIIrqiFS.js → Slider-BwRrWHFW.js} +42 -42
  106. package/dist/chunks/{Slider-CIIrqiFS.js.map → Slider-BwRrWHFW.js.map} +1 -1
  107. package/dist/chunks/{StatusBar-B4L15DSm.js → StatusBar-CdPdmmda.js} +1 -1
  108. package/dist/chunks/{StatusBar-B4L15DSm.js.map → StatusBar-CdPdmmda.js.map} +1 -1
  109. package/dist/chunks/SwatchGrid-C-Zx2Exd.js +73 -0
  110. package/dist/chunks/SwatchGrid-C-Zx2Exd.js.map +1 -0
  111. package/dist/chunks/{Switch-DH5POG0T.js → Switch-DxF7TsEu.js} +1 -1
  112. package/dist/chunks/{Switch-DH5POG0T.js.map → Switch-DxF7TsEu.js.map} +1 -1
  113. package/dist/chunks/{Tabs-BFHikpml.js → Tabs-GXEfoe3o.js} +1 -1
  114. package/dist/chunks/{Tabs-BFHikpml.js.map → Tabs-GXEfoe3o.js.map} +1 -1
  115. package/dist/chunks/{Timeline-DNKY_yiK.js → Timeline-SgmpQtUV.js} +128 -132
  116. package/dist/chunks/Timeline-SgmpQtUV.js.map +1 -0
  117. package/dist/chunks/{Toast-CI1UDuK6.js → Toast-BfcljZz6.js} +1 -1
  118. package/dist/chunks/{Toast-CI1UDuK6.js.map → Toast-BfcljZz6.js.map} +1 -1
  119. package/dist/chunks/ToggleBar-Btnl5r7F.js +80 -0
  120. package/dist/chunks/{ToggleBar-CClus5Cd.js.map → ToggleBar-Btnl5r7F.js.map} +1 -1
  121. package/dist/chunks/{TokenPanel-BPHq24dc.js → TokenPanel-5ajHEHha.js} +40 -40
  122. package/dist/chunks/{TokenPanel-BPHq24dc.js.map → TokenPanel-5ajHEHha.js.map} +1 -1
  123. package/dist/chunks/{ToolButton-9QzJCmuM.js → ToolButton-rzqlFlAc.js} +4 -4
  124. package/dist/chunks/{ToolButton-9QzJCmuM.js.map → ToolButton-rzqlFlAc.js.map} +1 -1
  125. package/dist/chunks/{ToolGroup-BJiDrH_i.js → ToolGroup-4bUBV5k6.js} +1 -1
  126. package/dist/chunks/{ToolGroup-BJiDrH_i.js.map → ToolGroup-4bUBV5k6.js.map} +1 -1
  127. package/dist/chunks/{ToolOptionsBar-CAM6RcUH.js → ToolOptionsBar-BF3TNXA3.js} +2 -2
  128. package/dist/chunks/{ToolOptionsBar-CAM6RcUH.js.map → ToolOptionsBar-BF3TNXA3.js.map} +1 -1
  129. package/dist/chunks/ToolPalette-Uw4PvWwa.js +83 -0
  130. package/dist/chunks/ToolPalette-Uw4PvWwa.js.map +1 -0
  131. package/dist/chunks/{Tooltip-C4YBczLq.js → Tooltip-9XiJF937.js} +13 -13
  132. package/dist/chunks/Tooltip-9XiJF937.js.map +1 -0
  133. package/dist/chunks/Tree-BGt6P8tI.js +203 -0
  134. package/dist/chunks/Tree-BGt6P8tI.js.map +1 -0
  135. package/dist/chunks/{createKeyframeLayer-DKtO0Sw_.js → createKeyframeLayer-BzDRCrrh.js} +71 -71
  136. package/dist/chunks/{createKeyframeLayer-DKtO0Sw_.js.map → createKeyframeLayer-BzDRCrrh.js.map} +1 -1
  137. package/dist/chunks/formatShortcut-BoGqUoWi.js +15 -0
  138. package/dist/chunks/formatShortcut-BoGqUoWi.js.map +1 -0
  139. package/dist/chunks/icons-DbScMMqX.js +179 -0
  140. package/dist/chunks/icons-DbScMMqX.js.map +1 -0
  141. package/dist/chunks/interactiveTarget-C7QUBaJN.js +24 -0
  142. package/dist/chunks/interactiveTarget-C7QUBaJN.js.map +1 -0
  143. package/dist/chunks/{keyGlyph-Bp0wnLHn.js → keyGlyph-CLvUHU8c.js} +1 -1
  144. package/dist/chunks/{keyGlyph-Bp0wnLHn.js.map → keyGlyph-CLvUHU8c.js.map} +1 -1
  145. package/dist/chunks/model-BQMvTLnW.js +360 -0
  146. package/dist/chunks/model-BQMvTLnW.js.map +1 -0
  147. package/dist/chunks/{number-BHz66zQO.js → number-6S8IzXVt.js} +3 -3
  148. package/dist/chunks/number-6S8IzXVt.js.map +1 -0
  149. package/dist/chunks/paintPreview-DPtZS4yU.js +42 -0
  150. package/dist/chunks/paintPreview-DPtZS4yU.js.map +1 -0
  151. package/dist/chunks/paintValue-Bz6AVuh3.js +18 -0
  152. package/dist/chunks/paintValue-Bz6AVuh3.js.map +1 -0
  153. package/dist/chunks/prefField-CLkhrvYl.js +197 -0
  154. package/dist/chunks/prefField-CLkhrvYl.js.map +1 -0
  155. package/dist/chunks/segmentTooltip-CAkZlW-t.js +29 -0
  156. package/dist/chunks/segmentTooltip-CAkZlW-t.js.map +1 -0
  157. package/dist/chunks/segmentedControl.module-D2nw68Yo.js +11 -0
  158. package/dist/chunks/segmentedControl.module-D2nw68Yo.js.map +1 -0
  159. package/dist/chunks/{snap-CEjuWOhN.js → snap-DC4Km8xG.js} +1 -1
  160. package/dist/chunks/{snap-CEjuWOhN.js.map → snap-DC4Km8xG.js.map} +1 -1
  161. package/dist/chunks/stance-CarrcbbP.js +17 -0
  162. package/dist/chunks/stance-CarrcbbP.js.map +1 -0
  163. package/dist/chunks/useReorderDragList-Dcezzgix.js +131 -0
  164. package/dist/chunks/useReorderDragList-Dcezzgix.js.map +1 -0
  165. package/dist/chunks/{useRovingTabIndex-Dkpf_KhN.js → useRovingTabIndex-B4uJqiKP.js} +1 -1
  166. package/dist/chunks/useRovingTabIndex-B4uJqiKP.js.map +1 -0
  167. package/dist/color/ramp.d.ts +38 -0
  168. package/dist/color/ramp.d.ts.map +1 -0
  169. package/dist/components/ActionBar/ActionBar.d.ts +6 -4
  170. package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
  171. package/dist/components/ActionBar/index.js +1 -1
  172. package/dist/components/Badge/Badge.d.ts +21 -7
  173. package/dist/components/Badge/Badge.d.ts.map +1 -1
  174. package/dist/components/Badge/effects/Aqua.d.ts +1 -1
  175. package/dist/components/Badge/effects/Aqua.d.ts.map +1 -1
  176. package/dist/components/Badge/index.d.ts +1 -1
  177. package/dist/components/Badge/index.d.ts.map +1 -1
  178. package/dist/components/Badge/index.js +1 -1
  179. package/dist/components/Badge/types.d.ts +6 -5
  180. package/dist/components/Badge/types.d.ts.map +1 -1
  181. package/dist/components/BandEditor/index.js +1 -1
  182. package/dist/components/Button/Button.d.ts +17 -3
  183. package/dist/components/Button/Button.d.ts.map +1 -1
  184. package/dist/components/Button/index.d.ts +1 -1
  185. package/dist/components/Button/index.d.ts.map +1 -1
  186. package/dist/components/Button/index.js +1 -1
  187. package/dist/components/ButtonBar/ButtonBar.d.ts +36 -0
  188. package/dist/components/ButtonBar/ButtonBar.d.ts.map +1 -0
  189. package/dist/components/ButtonBar/index.d.ts +3 -0
  190. package/dist/components/ButtonBar/index.d.ts.map +1 -0
  191. package/dist/components/ButtonBar/index.js +2 -0
  192. package/dist/components/Callout/Callout.d.ts +2 -5
  193. package/dist/components/Callout/Callout.d.ts.map +1 -1
  194. package/dist/components/Callout/index.d.ts +1 -1
  195. package/dist/components/Callout/index.d.ts.map +1 -1
  196. package/dist/components/Callout/index.js +1 -1
  197. package/dist/components/Checkbox/index.js +1 -1
  198. package/dist/components/Code/Code.d.ts +28 -0
  199. package/dist/components/Code/Code.d.ts.map +1 -0
  200. package/dist/components/Code/index.d.ts +3 -0
  201. package/dist/components/Code/index.d.ts.map +1 -0
  202. package/dist/components/Code/index.js +2 -0
  203. package/dist/components/ColorField/index.js +1 -1
  204. package/dist/components/ColorModeControl/ColorModeControl.d.ts +21 -0
  205. package/dist/components/ColorModeControl/ColorModeControl.d.ts.map +1 -0
  206. package/dist/components/ColorModeControl/index.d.ts +3 -0
  207. package/dist/components/ColorModeControl/index.d.ts.map +1 -0
  208. package/dist/components/ColorModeControl/index.js +2 -0
  209. package/dist/components/ComboBox/index.js +1 -1
  210. package/dist/components/CurveEditor/index.js +3 -3
  211. package/dist/components/DataGrid/DataGrid.d.ts +22 -0
  212. package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
  213. package/dist/components/DataGrid/index.js +1 -1
  214. package/dist/components/DetailList/DetailList.d.ts +36 -0
  215. package/dist/components/DetailList/DetailList.d.ts.map +1 -0
  216. package/dist/components/DetailList/index.d.ts +3 -0
  217. package/dist/components/DetailList/index.d.ts.map +1 -0
  218. package/dist/components/DetailList/index.js +2 -0
  219. package/dist/components/DetentSlider/index.js +1 -1
  220. package/dist/components/Dialog/Dialog.d.ts +8 -2
  221. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  222. package/dist/components/Dialog/index.js +1 -1
  223. package/dist/components/Disclosure/Disclosure.d.ts +25 -17
  224. package/dist/components/Disclosure/Disclosure.d.ts.map +1 -1
  225. package/dist/components/Disclosure/index.d.ts +2 -2
  226. package/dist/components/Disclosure/index.d.ts.map +1 -1
  227. package/dist/components/Disclosure/index.js +2 -2
  228. package/dist/components/DragGhost/DragGhost.d.ts +21 -0
  229. package/dist/components/DragGhost/DragGhost.d.ts.map +1 -0
  230. package/dist/components/DragGhost/index.d.ts +3 -0
  231. package/dist/components/DragGhost/index.d.ts.map +1 -0
  232. package/dist/components/DragGhost/index.js +2 -0
  233. package/dist/components/DragHandleGlyph/index.js +1 -1
  234. package/dist/components/Field/index.js +1 -1
  235. package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts +45 -0
  236. package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts.map +1 -0
  237. package/dist/components/FillStrokeSwatch/index.d.ts +3 -0
  238. package/dist/components/FillStrokeSwatch/index.d.ts.map +1 -0
  239. package/dist/components/FillStrokeSwatch/index.js +2 -0
  240. package/dist/components/FontFamilySelect/index.js +1 -1
  241. package/dist/components/GradientEditor/SceneGradientHandles.d.ts.map +1 -1
  242. package/dist/components/GradientEditor/index.js +1 -1
  243. package/dist/components/InlineRange/InlineRange.d.ts +6 -2
  244. package/dist/components/InlineRange/InlineRange.d.ts.map +1 -1
  245. package/dist/components/InlineRange/index.js +1 -1
  246. package/dist/components/Input/Input.d.ts +13 -0
  247. package/dist/components/Input/Input.d.ts.map +1 -1
  248. package/dist/components/Input/index.js +1 -1
  249. package/dist/components/ItemList/ItemList.d.ts +70 -10
  250. package/dist/components/ItemList/ItemList.d.ts.map +1 -1
  251. package/dist/components/ItemList/index.js +1 -1
  252. package/dist/components/Jog/index.js +1 -1
  253. package/dist/components/Keycaps/index.d.ts +1 -0
  254. package/dist/components/Keycaps/index.d.ts.map +1 -1
  255. package/dist/components/Keycaps/index.js +3 -3
  256. package/dist/components/Keycaps/keySpecsFromMods.d.ts +2 -0
  257. package/dist/components/Keycaps/keySpecsFromMods.d.ts.map +1 -1
  258. package/dist/components/Keycaps/keySpecsFromShortcut.d.ts +16 -0
  259. package/dist/components/Keycaps/keySpecsFromShortcut.d.ts.map +1 -0
  260. package/dist/components/LayerList/LayerList.d.ts +79 -0
  261. package/dist/components/LayerList/LayerList.d.ts.map +1 -0
  262. package/dist/components/LayerList/index.d.ts +3 -0
  263. package/dist/components/LayerList/index.d.ts.map +1 -0
  264. package/dist/components/LayerList/index.js +2 -0
  265. package/dist/components/LayerList/useSceneLayerList.d.ts +20 -0
  266. package/dist/components/LayerList/useSceneLayerList.d.ts.map +1 -0
  267. package/dist/components/ListEditor/ListEditor.d.ts +23 -0
  268. package/dist/components/ListEditor/ListEditor.d.ts.map +1 -0
  269. package/dist/components/ListEditor/index.d.ts +3 -0
  270. package/dist/components/ListEditor/index.d.ts.map +1 -0
  271. package/dist/components/ListEditor/index.js +2 -0
  272. package/dist/components/MenuButton/MenuButton.d.ts +6 -2
  273. package/dist/components/MenuButton/MenuButton.d.ts.map +1 -1
  274. package/dist/components/MenuButton/index.js +1 -1
  275. package/dist/components/MeshEditor/index.js +1 -1
  276. package/dist/components/NumberField/NumberField.d.ts +13 -0
  277. package/dist/components/NumberField/NumberField.d.ts.map +1 -1
  278. package/dist/components/NumberField/index.js +1 -1
  279. package/dist/components/OptionsBar/index.js +1 -1
  280. package/dist/components/PaintField/index.js +1 -1
  281. package/dist/components/PaintInput/index.js +1 -1
  282. package/dist/components/PatternPicker/index.js +1 -1
  283. package/dist/components/Plot2D/index.js +1 -1
  284. package/dist/components/PointPlotter/index.js +1 -1
  285. package/dist/components/Powerline/Powerline.d.ts +4 -3
  286. package/dist/components/Powerline/Powerline.d.ts.map +1 -1
  287. package/dist/components/Powerline/index.js +2 -2
  288. package/dist/components/Prefs/PrefsDialog.d.ts +10 -2
  289. package/dist/components/Prefs/PrefsDialog.d.ts.map +1 -1
  290. package/dist/components/Prefs/PrefsForm.d.ts +26 -25
  291. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  292. package/dist/components/Prefs/PrefsPane.d.ts +24 -0
  293. package/dist/components/Prefs/PrefsPane.d.ts.map +1 -0
  294. package/dist/components/Prefs/PrefsRail.d.ts +32 -0
  295. package/dist/components/Prefs/PrefsRail.d.ts.map +1 -0
  296. package/dist/components/Prefs/PrefsRow.d.ts +32 -0
  297. package/dist/components/Prefs/PrefsRow.d.ts.map +1 -0
  298. package/dist/components/Prefs/index.d.ts +5 -2
  299. package/dist/components/Prefs/index.d.ts.map +1 -1
  300. package/dist/components/Prefs/index.js +3 -3
  301. package/dist/components/Prefs/prefField.d.ts +36 -0
  302. package/dist/components/Prefs/prefField.d.ts.map +1 -0
  303. package/dist/components/Prefs/schema.d.ts +30 -0
  304. package/dist/components/Prefs/schema.d.ts.map +1 -1
  305. package/dist/components/Properties/DialogRow.d.ts +33 -0
  306. package/dist/components/Properties/DialogRow.d.ts.map +1 -0
  307. package/dist/components/Properties/PropertyField.d.ts +238 -0
  308. package/dist/components/Properties/PropertyField.d.ts.map +1 -0
  309. package/dist/components/Properties/PropertyGroup.d.ts +12 -3
  310. package/dist/components/Properties/PropertyGroup.d.ts.map +1 -1
  311. package/dist/components/Properties/PropertyPanel.d.ts +32 -236
  312. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  313. package/dist/components/Properties/Subpanel.d.ts +14 -0
  314. package/dist/components/Properties/Subpanel.d.ts.map +1 -0
  315. package/dist/components/Properties/index.d.ts +8 -4
  316. package/dist/components/Properties/index.d.ts.map +1 -1
  317. package/dist/components/Properties/index.js +3 -2
  318. package/dist/components/Properties/storyLayouts.d.ts.map +1 -1
  319. package/dist/components/RadioGroup/index.js +1 -1
  320. package/dist/components/RangeSlider/index.js +1 -1
  321. package/dist/components/ResizeHandle/index.js +1 -1
  322. package/dist/components/Select/Select.d.ts +38 -5
  323. package/dist/components/Select/Select.d.ts.map +1 -1
  324. package/dist/components/Select/index.d.ts +2 -2
  325. package/dist/components/Select/index.d.ts.map +1 -1
  326. package/dist/components/Select/index.js +2 -2
  327. package/dist/components/SelectionPanel/index.js +2 -2
  328. package/dist/components/SelectionPanel/renderLeaf.d.ts +14 -8
  329. package/dist/components/SelectionPanel/renderLeaf.d.ts.map +1 -1
  330. package/dist/components/Sidebar/index.js +1 -1
  331. package/dist/components/SidebarPanel/SidebarPanel.d.ts +2 -2
  332. package/dist/components/SidebarPanel/SidebarPanel.d.ts.map +1 -1
  333. package/dist/components/SidebarPanel/index.js +1 -1
  334. package/dist/components/Slider/index.js +1 -1
  335. package/dist/components/StatusBar/index.js +1 -1
  336. package/dist/components/SwatchGrid/SwatchGrid.d.ts +34 -0
  337. package/dist/components/SwatchGrid/SwatchGrid.d.ts.map +1 -0
  338. package/dist/components/SwatchGrid/index.d.ts +3 -0
  339. package/dist/components/SwatchGrid/index.d.ts.map +1 -0
  340. package/dist/components/SwatchGrid/index.js +2 -0
  341. package/dist/components/Switch/index.js +1 -1
  342. package/dist/components/Tabs/index.js +1 -1
  343. package/dist/components/Timeline/Lane.d.ts.map +1 -1
  344. package/dist/components/Timeline/index.js +1 -1
  345. package/dist/components/Toast/index.js +1 -1
  346. package/dist/components/ToggleBar/ToggleBar.d.ts +2 -1
  347. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  348. package/dist/components/ToggleBar/index.js +1 -1
  349. package/dist/components/TokenPanel/index.js +1 -1
  350. package/dist/components/ToolButton/index.js +1 -1
  351. package/dist/components/ToolGroup/index.js +1 -1
  352. package/dist/components/ToolOptionsBar/index.js +1 -1
  353. package/dist/components/ToolPalette/index.d.ts +1 -0
  354. package/dist/components/ToolPalette/index.d.ts.map +1 -1
  355. package/dist/components/ToolPalette/index.js +3 -2
  356. package/dist/components/Tooltip/Tooltip.d.ts +6 -2
  357. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  358. package/dist/components/Tooltip/index.d.ts +1 -1
  359. package/dist/components/Tooltip/index.d.ts.map +1 -1
  360. package/dist/components/Tooltip/index.js +2 -2
  361. package/dist/components/Tree/Tree.d.ts +84 -0
  362. package/dist/components/Tree/Tree.d.ts.map +1 -0
  363. package/dist/components/Tree/index.d.ts +3 -0
  364. package/dist/components/Tree/index.d.ts.map +1 -0
  365. package/dist/components/Tree/index.js +2 -0
  366. package/dist/components/segmentTooltip.d.ts +30 -0
  367. package/dist/components/segmentTooltip.d.ts.map +1 -0
  368. package/dist/components/stance.d.ts +30 -0
  369. package/dist/components/stance.d.ts.map +1 -0
  370. package/dist/components/stanceCss.d.ts +31 -0
  371. package/dist/components/stanceCss.d.ts.map +1 -0
  372. package/dist/components/stanceSurfaces.d.ts +4 -0
  373. package/dist/components/stanceSurfaces.d.ts.map +1 -0
  374. package/dist/format/number.d.ts +3 -2
  375. package/dist/format/number.d.ts.map +1 -1
  376. package/dist/icons/Icon.d.ts.map +1 -1
  377. package/dist/icons/ShapeKindIcon.d.ts +10 -0
  378. package/dist/icons/ShapeKindIcon.d.ts.map +1 -0
  379. package/dist/icons/index.d.ts +5 -3
  380. package/dist/icons/index.d.ts.map +1 -1
  381. package/dist/icons/paths.d.ts +2 -0
  382. package/dist/icons/paths.d.ts.map +1 -1
  383. package/dist/index.d.ts +16 -3
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/index.js +110 -78
  386. package/dist/index.js.map +1 -1
  387. package/dist/interactiveTarget.d.ts +9 -0
  388. package/dist/interactiveTarget.d.ts.map +1 -0
  389. package/dist/style.css +1 -1
  390. package/dist/useReorderDragList.d.ts +36 -7
  391. package/dist/useReorderDragList.d.ts.map +1 -1
  392. package/dist/useRovingTabIndex.d.ts +1 -1
  393. package/dist/useScrollSpy.d.ts +48 -0
  394. package/dist/useScrollSpy.d.ts.map +1 -0
  395. package/package.json +8 -8
  396. package/dist/chunks/ActionBar-CLwiY3Jg.js +0 -62
  397. package/dist/chunks/ActionBar-CLwiY3Jg.js.map +0 -1
  398. package/dist/chunks/ActionsBar-D84a4eGy.js +0 -41
  399. package/dist/chunks/ActionsBar-D84a4eGy.js.map +0 -1
  400. package/dist/chunks/Badge-CW9pBPFl.js.map +0 -1
  401. package/dist/chunks/Button-DRSApvnK.js +0 -90
  402. package/dist/chunks/Button-DRSApvnK.js.map +0 -1
  403. package/dist/chunks/Callout-DrNu-9Qr.js +0 -122
  404. package/dist/chunks/Callout-DrNu-9Qr.js.map +0 -1
  405. package/dist/chunks/ColorField-BYzgZM9o.js.map +0 -1
  406. package/dist/chunks/DataGrid-C8KrYtw7.js +0 -104
  407. package/dist/chunks/DataGrid-C8KrYtw7.js.map +0 -1
  408. package/dist/chunks/Dialog-fGqqQ6o_.js +0 -61
  409. package/dist/chunks/Dialog-fGqqQ6o_.js.map +0 -1
  410. package/dist/chunks/Disclosure-CILDfWsU.js +0 -47
  411. package/dist/chunks/Disclosure-CILDfWsU.js.map +0 -1
  412. package/dist/chunks/GradientEditor-rRBmf3G0.js +0 -333
  413. package/dist/chunks/Icon-DT0x6HaQ.js.map +0 -1
  414. package/dist/chunks/InlineRange-DdIlfGqG.js +0 -29
  415. package/dist/chunks/InlineRange-DdIlfGqG.js.map +0 -1
  416. package/dist/chunks/Input-DbMKpkXy.js.map +0 -1
  417. package/dist/chunks/ItemList-B9zYb0GE.js +0 -42
  418. package/dist/chunks/ItemList-B9zYb0GE.js.map +0 -1
  419. package/dist/chunks/Keycaps-DunVpejA.js.map +0 -1
  420. package/dist/chunks/LayerStack-CfQ6GsRz.js +0 -142
  421. package/dist/chunks/LayerStack-CfQ6GsRz.js.map +0 -1
  422. package/dist/chunks/MenuButton-C_4nox39.js +0 -60
  423. package/dist/chunks/MenuButton-C_4nox39.js.map +0 -1
  424. package/dist/chunks/MeshEditor-Bipz-Ocl.js +0 -123
  425. package/dist/chunks/MeshEditor-Bipz-Ocl.js.map +0 -1
  426. package/dist/chunks/NumberField-CCjEDZCg.js.map +0 -1
  427. package/dist/chunks/PaintField-jBOJ32rL.js.map +0 -1
  428. package/dist/chunks/Powerline-Ak5AWUlK.js.map +0 -1
  429. package/dist/chunks/Prefs-CNC8tzyN.js +0 -308
  430. package/dist/chunks/Prefs-CNC8tzyN.js.map +0 -1
  431. package/dist/chunks/Properties-Rnb6TAbN.js +0 -891
  432. package/dist/chunks/Properties-Rnb6TAbN.js.map +0 -1
  433. package/dist/chunks/Select-BEope086.js +0 -190
  434. package/dist/chunks/Select-BEope086.js.map +0 -1
  435. package/dist/chunks/SidebarPanel-Bs6V21hg.js.map +0 -1
  436. package/dist/chunks/Timeline-DNKY_yiK.js.map +0 -1
  437. package/dist/chunks/ToggleBar-CClus5Cd.js +0 -75
  438. package/dist/chunks/ToolPalette-DGkKwE7D.js +0 -97
  439. package/dist/chunks/ToolPalette-DGkKwE7D.js.map +0 -1
  440. package/dist/chunks/Tooltip-C4YBczLq.js.map +0 -1
  441. package/dist/chunks/icons-DFLytcui.js +0 -165
  442. package/dist/chunks/icons-DFLytcui.js.map +0 -1
  443. package/dist/chunks/model-13kZ_-mE.js +0 -483
  444. package/dist/chunks/model-13kZ_-mE.js.map +0 -1
  445. package/dist/chunks/number-BHz66zQO.js.map +0 -1
  446. package/dist/chunks/range.module-DSsOIq1R.js +0 -8
  447. package/dist/chunks/range.module-DSsOIq1R.js.map +0 -1
  448. package/dist/chunks/schema-Dft4Cu2p.js +0 -47
  449. package/dist/chunks/schema-Dft4Cu2p.js.map +0 -1
  450. package/dist/chunks/segmentedControl.module-DS72X1ns.js +0 -11
  451. package/dist/chunks/segmentedControl.module-DS72X1ns.js.map +0 -1
  452. package/dist/chunks/useReorderDragList-CSQGd7zQ.js +0 -102
  453. package/dist/chunks/useReorderDragList-CSQGd7zQ.js.map +0 -1
  454. package/dist/chunks/useRovingTabIndex-Dkpf_KhN.js.map +0 -1
  455. package/dist/components/ActionsBar/ActionsBar.d.ts +0 -35
  456. package/dist/components/ActionsBar/ActionsBar.d.ts.map +0 -1
  457. package/dist/components/ActionsBar/index.d.ts +0 -3
  458. package/dist/components/ActionsBar/index.d.ts.map +0 -1
  459. package/dist/components/ActionsBar/index.js +0 -2
  460. package/dist/components/LayerStack/LayerStack.d.ts +0 -62
  461. package/dist/components/LayerStack/LayerStack.d.ts.map +0 -1
  462. package/dist/components/LayerStack/index.d.ts +0 -2
  463. package/dist/components/LayerStack/index.d.ts.map +0 -1
  464. package/dist/components/LayerStack/index.js +0 -2
  465. package/dist/components/Properties/EffectCard.d.ts +0 -69
  466. package/dist/components/Properties/EffectCard.d.ts.map +0 -1
@@ -1,47 +0,0 @@
1
- //#region src/components/Prefs/schema.ts
2
- function e(e) {
3
- if (!e.unit) return {
4
- min: e.min,
5
- max: e.max,
6
- step: e.step ?? 1
7
- };
8
- let { toDisplay: t } = e.unit, n = e.min === void 0 ? void 0 : t(e.min), r = e.max === void 0 ? void 0 : t(e.max), i = n !== void 0 && r !== void 0 && n > r, a = e.step === void 0 ? 1 : Math.abs(t(e.step) - t(0)) || e.step;
9
- return {
10
- min: i ? r : n,
11
- max: i ? n : r,
12
- step: a
13
- };
14
- }
15
- function t(e) {
16
- return e.suffix === void 0 ? { ...e.accepts } : {
17
- [e.suffix]: 1,
18
- ...e.accepts
19
- };
20
- }
21
- function n(e) {
22
- return "kind" in e;
23
- }
24
- function r(e, t) {
25
- let n = e;
26
- for (let e of t.split(".")) {
27
- if (typeof n != "object" || !n) return;
28
- n = n[e];
29
- }
30
- return n;
31
- }
32
- function i(e, t) {
33
- if (n(e)) return e.hidden && !t ? null : e;
34
- let r = e, a = {};
35
- for (let [e, n] of Object.entries(r.children)) {
36
- let r = i(n, t);
37
- r && (a[e] = r);
38
- }
39
- return Object.keys(a).length === 0 ? null : {
40
- ...e,
41
- children: a
42
- };
43
- }
44
- //#endregion
45
- export { i as a, r as i, e as n, t as r, n as t };
46
-
47
- //# sourceMappingURL=schema-Dft4Cu2p.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-Dft4Cu2p.js","names":[],"sources":["../../src/components/Prefs/schema.ts"],"sourcesContent":["// Preference-schema vocabulary for PrefsForm / PrefsDialog / SelectionPanel:\n// core's `ToolPref*` family under this package's names. Never re-declare them\n// here — this was a hand-kept structural copy until it drifted, and the\n// independence from `@weasel-js/core` it bought is long gone anyway.\n\nexport type {\n ToolPref as BuiltinPref,\n ToolPrefBoolean as PrefBoolean,\n ToolPrefBooleanControl as PrefBooleanControl,\n ToolPrefColor as PrefColor,\n ToolPrefCustom as PrefCustom,\n ToolPrefEnum as PrefEnum,\n ToolPrefEnumControl as PrefEnumControl,\n ToolPrefEnumEncoding as PrefEnumEncoding,\n ToolPrefGroup as PrefGroup,\n ToolPrefKind as PrefKind,\n ToolPrefLeaf as PrefLeaf,\n ToolPrefNumber as PrefNumber,\n ToolPrefNumberControl as PrefNumberControl,\n ToolPrefNumberFormat as PrefNumberFormat,\n ToolPrefNumberUnit as PrefNumberUnit,\n ToolPrefObject as PrefObject,\n ToolPrefPaint as PrefPaint,\n ToolPrefString as PrefString,\n ToolPrefStringControl as PrefStringControl,\n} from '@weasel-js/core';\n\nimport type { UnitTable } from '../../format/number';\nimport type { ToolPrefGroup, ToolPrefLeaf, ToolPrefNumber, ToolPrefNumberUnit as PrefNumberUnitType } from '@weasel-js/core';\n\n/**\n * A number leaf's bounds in the unit it is displayed in.\n *\n * Only what the leaf declares converts: an omitted bound has no stored\n * counterpart to put through the conversion, and its fallback — 0..100 for a\n * slider's track, a step of 1 — is a display-space number already. `min` and\n * `max` are points, so they convert the way the value does; `step` is a\n * distance, and a unit with an offset maps zero somewhere else, so converting\n * it as a point would scale it wrong. A decreasing conversion swaps which end\n * is the lower one.\n */\nexport function prefDisplayBounds(\n p: ToolPrefNumber,\n): { min?: number; max?: number; step: number } {\n if (!p.unit) return { min: p.min, max: p.max, step: p.step ?? 1 };\n const { toDisplay } = p.unit;\n const lo = p.min === undefined ? undefined : toDisplay(p.min);\n const hi = p.max === undefined ? undefined : toDisplay(p.max);\n const flipped = lo !== undefined && hi !== undefined && lo > hi;\n const step = p.step === undefined\n ? 1\n : Math.abs(toDisplay(p.step) - toDisplay(0)) || p.step;\n return { min: flipped ? hi : lo, max: flipped ? lo : hi, step };\n}\n\n/** What a unit leaf's field reads as typed text: its `accepts` table, and its\n * `suffix` as the display unit itself. */\nexport function prefUnitAccepts(unit: PrefNumberUnitType): Readonly<UnitTable> {\n return unit.suffix === undefined ? { ...unit.accepts } : { [unit.suffix]: 1, ...unit.accepts };\n}\n\n/** Distinguishes a leaf from a group while walking a schema tree. */\nexport function isPrefLeaf(node: ToolPrefLeaf | ToolPrefGroup): node is ToolPrefLeaf {\n return 'kind' in node;\n}\n\n/** Get the value at a dotted path inside a nested value tree. Returns\n * `undefined` when a segment is missing or hits a non-object. */\nexport function prefValueAtPath(values: unknown, path: string): unknown {\n let cur: unknown = values;\n for (const seg of path.split('.')) {\n if (cur == null || typeof cur !== 'object') return undefined;\n cur = (cur as Record<string, unknown>)[seg];\n }\n return cur;\n}\n\n/**\n * Recursively drop `hidden` leaves (unless `showHidden`), pruning groups\n * that end up empty. Returns null when the entire subtree is hidden.\n */\nexport function visiblePrefSubtree<T extends ToolPrefLeaf | ToolPrefGroup>(\n node: T,\n showHidden: boolean,\n): T | null {\n if (isPrefLeaf(node)) return node.hidden && !showHidden ? null : node;\n const group = node as ToolPrefGroup;\n const children: Record<string, ToolPrefLeaf | ToolPrefGroup> = {};\n for (const [key, child] of Object.entries(group.children)) {\n const kept = visiblePrefSubtree(child, showHidden);\n if (kept) children[key] = kept;\n }\n if (Object.keys(children).length === 0) return null;\n return { ...node, children };\n}\n"],"mappings":";AAyCA,SAAgB,EACd,GAC8C;AAC9C,KAAI,CAAC,EAAE,KAAM,QAAO;EAAE,KAAK,EAAE;EAAK,KAAK,EAAE;EAAK,MAAM,EAAE,QAAQ;EAAG;CACjE,IAAM,EAAE,iBAAc,EAAE,MAClB,IAAK,EAAE,QAAQ,KAAA,IAAY,KAAA,IAAY,EAAU,EAAE,IAAI,EACvD,IAAK,EAAE,QAAQ,KAAA,IAAY,KAAA,IAAY,EAAU,EAAE,IAAI,EACvD,IAAU,MAAO,KAAA,KAAa,MAAO,KAAA,KAAa,IAAK,GACvD,IAAO,EAAE,SAAS,KAAA,IACpB,IACA,KAAK,IAAI,EAAU,EAAE,KAAK,GAAG,EAAU,EAAE,CAAC,IAAI,EAAE;AACpD,QAAO;EAAE,KAAK,IAAU,IAAK;EAAI,KAAK,IAAU,IAAK;EAAI;EAAM;;AAKjE,SAAgB,EAAgB,GAA+C;AAC7E,QAAO,EAAK,WAAW,KAAA,IAAY,EAAE,GAAG,EAAK,SAAS,GAAG;GAAG,EAAK,SAAS;EAAG,GAAG,EAAK;EAAS;;AAIhG,SAAgB,EAAW,GAA0D;AACnF,QAAO,UAAU;;AAKnB,SAAgB,EAAgB,GAAiB,GAAuB;CACtE,IAAI,IAAe;AACnB,MAAK,IAAM,KAAO,EAAK,MAAM,IAAI,EAAE;AACjC,MAAmB,OAAO,KAAQ,aAA9B,EAAwC;AAC5C,MAAO,EAAgC;;AAEzC,QAAO;;AAOT,SAAgB,EACd,GACA,GACU;AACV,KAAI,EAAW,EAAK,CAAE,QAAO,EAAK,UAAU,CAAC,IAAa,OAAO;CACjE,IAAM,IAAQ,GACR,IAAyD,EAAE;AACjE,MAAK,IAAM,CAAC,GAAK,MAAU,OAAO,QAAQ,EAAM,SAAS,EAAE;EACzD,IAAM,IAAO,EAAmB,GAAO,EAAW;AAClD,EAAI,MAAM,EAAS,KAAO;;AAG5B,QADI,OAAO,KAAK,EAAS,CAAC,WAAW,IAAU,OACxC;EAAE,GAAG;EAAM;EAAU"}
@@ -1,11 +0,0 @@
1
- var e = {
2
- root: "_root_9a0rv_10",
3
- segment: "_segment_9a0rv_32",
4
- segmentSelected: "_segmentSelected_9a0rv_81",
5
- size_sm: "_size_sm_9a0rv_139",
6
- variant_minimal: "_variant_minimal_9a0rv_152"
7
- };
8
- //#endregion
9
- export { e as t };
10
-
11
- //# sourceMappingURL=segmentedControl.module-DS72X1ns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"segmentedControl.module-DS72X1ns.js","names":[],"sources":["../../src/components/segmentedControl.module.css"],"sourcesContent":["/* Shared by ActionsBar and OptionsBar, which look identical and differ only\n in what a segment does. Lives here rather than in either component so\n neither owns the other's styling.\n\n Aqua-glass segmented control. The track is a pill-shaped well; the\n selected segment becomes a tinted glass cylinder that reads as the same\n \"lozenge\" family as the standalone Button. Visual params come from the\n `--btn-*` custom properties (see Button.module.css) so the Button Lab\n can tune both surfaces with one set of sliders. */\n.root {\n display: inline-flex;\n height: var(--tb-h, var(--wzl-control-h, 24px));\n padding: var(--wzl-space-1);\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.18) 0%,\n rgba(0, 0, 0, 0.05) 100%\n );\n border-radius: var(--wzl-radius-pill);\n /* Clip segments to the track outline so interior corners read crisp and\n the selected segment's glass treatment doesn't paint over the rounded\n outer pixels. */\n overflow: hidden;\n box-shadow:\n inset 0 1px 2px rgba(0, 0, 0, 0.4),\n 0 1px 0 rgba(255, 255, 255, 0.06);\n user-select: none;\n -webkit-user-select: none;\n touch-action: none;\n}\n\n.segment {\n position: relative;\n flex: 1 1 0;\n min-width: 0;\n /* The track's stretch sizes a segment; without this, labkit's :where(button) height wins and overflows a small bar. */\n height: auto;\n padding: 0 var(--wzl-space-6);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n margin: 0;\n font-family: var(--wzl-font-ui);\n font-weight: var(--wzl-font-weight-normal);\n font-size: var(--btn-fontsize, var(--wzl-font-size));\n line-height: 1;\n color: var(--wzl-fg-muted);\n cursor: pointer;\n /* Only round the outer corners of the bar — middle segments stay square\n so the seams between them don't render as facing parentheses. */\n border-radius: 0;\n isolation: isolate;\n overflow: hidden;\n transition: color var(--wzl-motion-fast);\n}\n\n.segment:first-child {\n border-radius: var(--wzl-radius-pill) 0 0 var(--wzl-radius-pill);\n}\n\n.segment:last-child {\n border-radius: 0 var(--wzl-radius-pill) var(--wzl-radius-pill) 0;\n}\n\n.segment:only-child {\n border-radius: var(--wzl-radius-pill);\n}\n\n.segment:focus-visible {\n outline: 2px solid var(--wzl-accent);\n outline-offset: -2px;\n}\n\n.segment:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n}\n\n/* Selected segment — full Aqua glass cylinder. Mirrors Button.variant_primary. */\n.segmentSelected {\n background: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha, 45%), transparent) 0%,\n color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha, 70%), transparent) calc(var(--btn-equator, 52%) - var(--btn-equator-spread, 12%)),\n color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint, 95%), white) var(--btn-equator, 52%),\n var(--wzl-accent) calc(var(--btn-equator, 52%) + var(--btn-equator-spread, 12%) * 1.6),\n color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint, 70%), black) 100%\n );\n backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n -webkit-backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n color: var(--wzl-fg-on-accent);\n text-shadow:\n 0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow, 0.35)),\n var(--btn-text-inset-x, 0px) var(--btn-text-inset-y, 1px) 0 rgba(0, 0, 0, var(--btn-text-inset, 0.55)),\n 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow, 0.35) * 0.5));\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi, 0.42)),\n inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo, 0.3)),\n 0 0 0 1px rgba(0, 0, 0, var(--btn-rim, 0.22)),\n 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near, 0.3)),\n 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far, 0.18) * 0.8));\n}\n\n/* Specular gloss on the selected segment. Top corners inherit the\n segment's radius so they hug the upper edge cleanly; bottom corners\n are flattened so the gloss ends in a straight line at the equator\n instead of two little curves that read as `)(` brackets. */\n.segmentSelected::before {\n content: '';\n position: absolute;\n inset: 1px 1px var(--btn-gloss-bottom, 50%) 1px;\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, var(--btn-gloss-top, 0.42)) 0%,\n rgba(255, 255, 255, var(--btn-gloss-mid, 0.12)) 60%,\n rgba(255, 255, 255, 0) 100%\n );\n pointer-events: none;\n z-index: 1;\n}\n\n.segmentSelected > * {\n position: relative;\n z-index: 2;\n}\n\n/* Small variant — ~60% of the default height, with proportionally reduced\n padding and font. Sized for dense surfaces (lab control panels, inline\n filters, etc.). */\n.size_sm {\n height: 17px;\n padding: 1px;\n}\n\n.size_sm .segment {\n padding: 0 var(--wzl-space-4);\n font-size: var(--wzl-font-size-sm);\n}\n\n/* Minimal variant — strips the pill track, glass selected state, inset\n shadows, and outer padding. Used in dense diagnostic surfaces (dispatch\n trace, lab inspectors) where the bar must read as plain text controls. */\n.variant_minimal {\n height: auto;\n padding: 0;\n background: none;\n border-radius: 0;\n box-shadow: none;\n gap: var(--wzl-space-1);\n}\n\n.variant_minimal .segment {\n padding: 0 var(--wzl-space-2);\n font-size: var(--wzl-font-size-sm);\n font-weight: var(--wzl-font-weight-medium);\n line-height: 1.4;\n border-radius: var(--wzl-radius-sm);\n color: var(--wzl-fg-muted);\n transition: none;\n}\n\n.variant_minimal .segment:first-child,\n.variant_minimal .segment:last-child,\n.variant_minimal .segment:only-child {\n border-radius: var(--wzl-radius-sm);\n}\n\n.variant_minimal .segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n background: var(--wzl-surface-hover);\n}\n\n.variant_minimal .segmentSelected {\n background: none;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n color: var(--wzl-accent-fg, var(--wzl-accent));\n text-shadow: none;\n box-shadow: none;\n font-weight: var(--wzl-font-weight-medium);\n}\n\n.variant_minimal .segmentSelected::before {\n content: none;\n}\n"],"mappings":""}
@@ -1,102 +0,0 @@
1
- import { startThresholdDrag as e } from "@weasel-js/core";
2
- import { useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
3
- //#region src/useReorderDragList.ts
4
- function a(e, t) {
5
- let n = 0;
6
- for (let r = t - 1; r >= 0; r--) if (e[r]?.locked) {
7
- n = r + 1;
8
- break;
9
- }
10
- let r = e.length;
11
- for (let n = t + 1; n < e.length; n++) if (e[n]?.locked) {
12
- r = n;
13
- break;
14
- }
15
- return [n, r];
16
- }
17
- function o(e, t, n) {
18
- let r = t.map((t) => e.findIndex((e) => e.id === t)).filter((e) => e >= 0).sort((e, t) => e - t), i = r.length > 0 && r.every((e, t) => {
19
- if (t === 0) return !0;
20
- let n = r[t - 1];
21
- return n !== void 0 && e === n + 1;
22
- }), a = r[0], o = r[r.length - 1];
23
- return i && a !== void 0 && o !== void 0 && n >= a && n <= o + 1;
24
- }
25
- function s(s) {
26
- let c = r(s);
27
- c.current = s;
28
- let l = r(null), u = r(null), [d, f] = i({
29
- draggedIds: null,
30
- targetIndex: null
31
- });
32
- n(() => () => {
33
- u.current?.cancel();
34
- }, []);
35
- let p = t((e, t) => {
36
- let [n, r] = a(c.current.items, t), i = l.current;
37
- if (!i) return n;
38
- let o = Array.from(i.children), s = o.length;
39
- for (let t = 0; t < o.length; t++) {
40
- let n = o[t];
41
- if (n && e < n.getBoundingClientRect().bottom) {
42
- s = t;
43
- break;
44
- }
45
- }
46
- return Math.max(n, Math.min(s, r));
47
- }, []), m = t((e) => {
48
- l.current = e;
49
- }, []), h = t(() => {
50
- u.current = null, f({
51
- draggedIds: null,
52
- targetIndex: null
53
- });
54
- }, []), g = t((t, n, r) => {
55
- let i = l.current;
56
- if (!i || u.current) return;
57
- let s = {
58
- shiftKey: r.shiftKey,
59
- ctrlKey: r.ctrlKey,
60
- metaKey: r.metaKey,
61
- altKey: r.altKey
62
- }, d = [], m = 0;
63
- u.current = e(r, {
64
- origin: i,
65
- threshold: c.current.items[n]?.locked ? Infinity : c.current.threshold ?? 4,
66
- onActivate: (e) => {
67
- let r = c.current.selectedIds, [i, o] = a(c.current.items, n);
68
- d = (r.includes(t) ? [...r] : [t]).filter((e) => {
69
- let t = c.current.items.findIndex((t) => t.id === e);
70
- return t >= i && t < o;
71
- }), m = p(e.clientY, n), f({
72
- draggedIds: d,
73
- targetIndex: m
74
- });
75
- },
76
- onMove: (e) => {
77
- let t = p(e.clientY, n);
78
- t !== m && (m = t, f({
79
- draggedIds: d,
80
- targetIndex: m
81
- }));
82
- },
83
- onCommit: (e) => {
84
- let t = p(e.clientY, n);
85
- o(c.current.items, d, t) || c.current.onReorder(d, t), h();
86
- },
87
- onClick: () => {
88
- c.current.onPress?.(t, s), h();
89
- },
90
- onCancel: h
91
- });
92
- }, [p, h]);
93
- return {
94
- rowProps: (e, t) => ({ onPointerDown: (n) => g(e, t, n) }),
95
- containerProps: { ref: m },
96
- state: d
97
- };
98
- }
99
- //#endregion
100
- export { s as t };
101
-
102
- //# sourceMappingURL=useReorderDragList-CSQGd7zQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReorderDragList-CSQGd7zQ.js","names":[],"sources":["../../src/useReorderDragList.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { ReactNode, PointerEvent as ReactPointerEvent, RefCallback } from 'react';\nimport { startThresholdDrag, type ThresholdDragHandle } from '@weasel-js/core';\n\n/** One row in a reorderable list. */\nexport interface LayerListItem {\n id: string;\n label: ReactNode;\n /** Locked rows cannot be dragged, cannot be crossed by drops, and\n * never combine with other rows in a multi-selection. */\n locked?: boolean;\n /** Optional color swatch rendered before the label. Any CSS color string. */\n swatch?: string;\n}\n\n/**\n * Options for {@link useReorderDragList}. `onReorder` receives the dragged ids\n * and the index they were dropped at, measured against the pre-drag `items`.\n */\nexport interface UseReorderDragListOptions {\n items: LayerListItem[];\n selectedIds: string[];\n onReorder(ids: string[], targetIndex: number): void;\n /** A press that was released without ever engaging a drag — the click a\n * list row means by it. Fires for locked rows too, which can be selected\n * but not dragged. Modifiers are read at press, not at release. */\n onPress?(id: string, mods: PressModifiers): void;\n /** Pointer-move distance (px) before pending drag engages. Default 4. */\n threshold?: number;\n}\n\n/** Modifier keys held when a press began. */\nexport interface PressModifiers {\n shiftKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n}\n\n/**\n * Live drag state for rendering feedback: which ids are being dragged and the\n * insertion index the drop would use. Both `null` when no drag is engaged.\n */\nexport interface ReorderDragState {\n draggedIds: string[] | null;\n targetIndex: number | null;\n}\n\n/**\n * A `ref` for the list container, an `onPointerDown` for each row, and the\n * live {@link ReorderDragState}. The container ref is required, not optional\n * decoration: it is what the drop index is measured against and what the\n * pointer session is opened on.\n */\nexport interface ReorderDragHandlers {\n rowProps(id: string, index: number): { onPointerDown(e: ReactPointerEvent): void };\n containerProps: {\n ref: RefCallback<HTMLElement>;\n };\n state: ReorderDragState;\n}\n\n/**\n * The half-open run of indices a row at `sourceIndex` may be dropped into:\n * bounded by the nearest locked row above and below it, so a locked row is a\n * wall in both directions rather than a global ceiling.\n */\nfunction unlockedSegment(items: readonly LayerListItem[], sourceIndex: number): [number, number] {\n let lo = 0;\n for (let i = sourceIndex - 1; i >= 0; i--) {\n if (items[i]?.locked) { lo = i + 1; break; }\n }\n let hi = items.length;\n for (let i = sourceIndex + 1; i < items.length; i++) {\n if (items[i]?.locked) { hi = i; break; }\n }\n return [lo, hi];\n}\n\n/** Would dropping `draggedIds` at `targetIndex` leave a contiguous block where it already is? */\nfunction isNoopDrop(items: readonly LayerListItem[], draggedIds: readonly string[], targetIndex: number): boolean {\n const indices = draggedIds\n .map((id) => items.findIndex((it) => it.id === id))\n .filter((i) => i >= 0)\n .sort((a, b) => a - b);\n const contiguous =\n indices.length > 0 &&\n indices.every((v, i) => {\n if (i === 0) return true;\n const prev = indices[i - 1];\n return prev !== undefined && v === prev + 1;\n });\n const first = indices[0];\n const last = indices[indices.length - 1];\n return contiguous\n && first !== undefined\n && last !== undefined\n && targetIndex >= first\n && targetIndex <= last + 1;\n}\n\n/**\n * Drag-to-reorder for a vertical list of rows. Dragging a row that is part of\n * the current selection drags the whole selection; dragging any other row\n * drags just that row. Locked rows can neither be dragged nor crossed by a\n * drop. A drop that would leave a contiguous block where it already is does\n * not call `onReorder`.\n *\n * A press opens a `startThresholdDrag` on the *container*, which owns the\n * rest of the gesture: a drag that leaves the list still tracks, a release\n * anywhere still drops, and a release the window never delivered still ends\n * the drag. The container is the origin rather than the row because rows come\n * and go as the list re-renders, and a drag must outlive the row it grabbed.\n */\nexport function useReorderDragList(opts: UseReorderDragListOptions): ReorderDragHandlers {\n const optsRef = useRef(opts);\n optsRef.current = opts;\n const containerRef = useRef<HTMLElement | null>(null);\n const dragRef = useRef<ThresholdDragHandle | null>(null);\n const [state, setState] = useState<ReorderDragState>({ draggedIds: null, targetIndex: null });\n\n useEffect(() => () => { dragRef.current?.cancel(); }, []);\n\n const computeTargetIndex = useCallback((clientY: number, sourceIndex: number): number => {\n const [lo, hi] = unlockedSegment(optsRef.current.items, sourceIndex);\n const c = containerRef.current;\n if (!c) return lo;\n const rows = Array.from(c.children) as HTMLElement[];\n let raw = rows.length;\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n if (!row) continue;\n const r = row.getBoundingClientRect();\n if (clientY < r.bottom) { raw = i; break; }\n }\n return Math.max(lo, Math.min(raw, hi));\n }, []);\n\n const refCb = useCallback<RefCallback<HTMLElement>>((el) => {\n containerRef.current = el;\n }, []);\n\n const reset = useCallback(() => {\n dragRef.current = null;\n setState({ draggedIds: null, targetIndex: null });\n }, []);\n\n const onPointerDownRow = useCallback((id: string, index: number, e: ReactPointerEvent) => {\n const container = containerRef.current;\n if (!container || dragRef.current) return;\n\n const mods: PressModifiers = {\n shiftKey: e.shiftKey, ctrlKey: e.ctrlKey, metaKey: e.metaKey, altKey: e.altKey,\n };\n let draggedIds: string[] = [];\n let targetIndex = 0;\n\n dragRef.current = startThresholdDrag(e, {\n origin: container,\n // A locked row still opens a drag so its release reaches `onPress`, and\n // a threshold nothing can cross is what keeps it from ever engaging.\n threshold: optsRef.current.items[index]?.locked\n ? Number.POSITIVE_INFINITY\n : (optsRef.current.threshold ?? 4),\n onActivate: (ev) => {\n const selected = optsRef.current.selectedIds;\n const [lo, hi] = unlockedSegment(optsRef.current.items, index);\n draggedIds = (selected.includes(id) ? [...selected] : [id]).filter((x) => {\n const i = optsRef.current.items.findIndex((it) => it.id === x);\n return i >= lo && i < hi;\n });\n targetIndex = computeTargetIndex(ev.clientY, index);\n setState({ draggedIds, targetIndex });\n },\n onMove: (ev) => {\n const next = computeTargetIndex(ev.clientY, index);\n if (next === targetIndex) return;\n targetIndex = next;\n setState({ draggedIds, targetIndex });\n },\n onCommit: (ev) => {\n const drop = computeTargetIndex(ev.clientY, index);\n if (!isNoopDrop(optsRef.current.items, draggedIds, drop)) {\n optsRef.current.onReorder(draggedIds, drop);\n }\n reset();\n },\n onClick: () => {\n optsRef.current.onPress?.(id, mods);\n reset();\n },\n // Every cancel reason — the browser's, a lost capture, an unmount —\n // says the gesture was interrupted rather than aimed, so the rows stay\n // where they were.\n onCancel: reset,\n });\n }, [computeTargetIndex, reset]);\n\n return {\n rowProps: (id, index) => ({\n onPointerDown: (e) => onPointerDownRow(id, index, e),\n }),\n containerProps: {\n ref: refCb,\n },\n state,\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRovingTabIndex-Dkpf_KhN.js","names":[],"sources":["../../src/useRovingTabIndex.ts"],"sourcesContent":["import { useRef, type KeyboardEvent as ReactKeyboardEvent, type RefObject } from 'react';\n\n/** The only thing the hook needs to know about a bar's items: which are\n * skipped by arrow navigation. */\nexport type RovingItem = { disabled?: boolean };\n\n/** Options for {@link useRovingTabIndex}. */\nexport type UseRovingTabIndexOptions = {\n /** In the same order as the elements carrying `itemClassName`. */\n items: readonly RovingItem[];\n /** Class on the focusable element of each item, inside the container the\n * returned `rootRef` is attached to. Their DOM order must match `items`. */\n itemClassName: string;\n /** Index that carries `tabIndex=0`. Defaults to the first enabled item; a\n * radiogroup-style bar passes its selected index so Tab lands on the\n * current value. */\n tabStopIndex?: number;\n /** Called with the new index as arrow/Home/End focus moves, before focus\n * moves. This is where a selection-follows-focus bar commits the value. */\n onNavigate?: (index: number) => void;\n /** Space/Enter on the item at `index`. When omitted the keypress is left\n * alone, which on a native `<button>` produces an ordinary click. */\n onActivate?: (index: number) => void;\n};\n\n/**\n * What {@link useRovingTabIndex} returns: a container ref plus the per-item\n * `tabIndex` and `onKeyDown` values to spread onto each item.\n */\nexport type RovingTabIndex<T extends HTMLElement = HTMLDivElement> = {\n /** Attach to the container element that holds the items. */\n rootRef: RefObject<T | null>;\n /** `tabIndex` value for the item at `index`. */\n tabIndexFor: (index: number) => 0 | -1;\n /** `onKeyDown` for the item at `index`. */\n onKeyDown: (index: number) => (e: ReactKeyboardEvent<HTMLElement>) => void;\n};\n\nfunction firstEnabledIndex(items: readonly RovingItem[]): number {\n for (let i = 0; i < items.length; i++) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction lastEnabledIndex(items: readonly RovingItem[]): number {\n for (let i = items.length - 1; i >= 0; i--) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction nextEnabledIndex(items: readonly RovingItem[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from + k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\nfunction prevEnabledIndex(items: readonly RovingItem[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from - k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\n/**\n * Roving tabindex for a bar of items: one item is in the tab order, and the\n * arrow keys move focus among the rest, skipping disabled ones and wrapping\n * at both ends. Home and End go to the first and last enabled item. Both axes\n * navigate, so the same bar works laid out either way.\n *\n * Backs `ActionsBar`, `OptionsBar`, and `ToggleBar`.\n *\n * **When a bar should not use this.** What decides it is the items, not who\n * owns them. A container of compound controls — a number field, a select, a\n * color field — must leave the arrow keys alone, because those controls edit\n * their own value with them; taking the arrows over would break the control\n * to navigate between controls. `ToolOptionsBar` is that case: it draws its\n * own controls from a tool's schema now rather than taking arbitrary\n * children, and a schema-drawn number field eats arrows exactly as a\n * hand-placed one did, so it keeps plain DOM tab order. A bar whose items are\n * all simple buttons is the case this hook is for.\n *\n * With every item disabled there is no tab stop and the bar drops out of the\n * tab order entirely.\n */\nexport function useRovingTabIndex<T extends HTMLElement = HTMLDivElement>(\n options: UseRovingTabIndexOptions,\n): RovingTabIndex<T> {\n const { items, itemClassName, onNavigate, onActivate } = options;\n const rootRef = useRef<T | null>(null);\n\n const tabStopIndex = options.tabStopIndex ?? firstEnabledIndex(items);\n\n const focusItem = (index: number): void => {\n const root = rootRef.current;\n if (!root) return;\n const elements = root.querySelectorAll<HTMLElement>(`.${itemClassName}`);\n elements[index]?.focus();\n };\n\n const onKeyDown = (index: number) => (e: ReactKeyboardEvent<HTMLElement>): void => {\n let nextIndex = -1;\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextIndex = prevEnabledIndex(items, index);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextIndex = nextEnabledIndex(items, index);\n break;\n case 'Home':\n nextIndex = firstEnabledIndex(items);\n break;\n case 'End':\n nextIndex = lastEnabledIndex(items);\n break;\n case ' ':\n case 'Enter':\n if (onActivate) {\n e.preventDefault();\n onActivate(index);\n }\n return;\n default:\n return;\n }\n if (nextIndex < 0 || nextIndex === index) return;\n e.preventDefault();\n onNavigate?.(nextIndex);\n focusItem(nextIndex);\n };\n\n return {\n rootRef,\n tabIndexFor: (index: number) => (index === tabStopIndex ? 0 : -1),\n onKeyDown,\n };\n}\n"],"mappings":";;AAsCA,SAAS,EAAkB,GAAsC;AAC/D,MAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AACtE,QAAO;;AAGT,SAAS,EAAiB,GAAsC;AAC9D,MAAK,IAAI,IAAI,EAAM,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AAC3E,QAAO;;AAGT,SAAS,EAAiB,GAA8B,GAAsB;CAC5E,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAGT,SAAS,EAAiB,GAA8B,GAAsB;CAC5E,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAwBT,SAAgB,EACd,GACmB;CACnB,IAAM,EAAE,UAAO,kBAAe,eAAY,kBAAe,GACnD,IAAU,EAAiB,KAAK,EAEhC,IAAe,EAAQ,gBAAgB,EAAkB,EAAM,EAE/D,KAAa,MAAwB;EACzC,IAAM,IAAO,EAAQ;AAChB,OACY,EAAK,iBAA8B,IAAI,IACxD,CAAS,IAAQ,OAAO;;AAoC1B,QAAO;EACL;EACA,cAAc,MAAmB,MAAU,IAAe,IAAI;EAC9D,YApCiB,OAAmB,MAA6C;GACjF,IAAI,IAAY;AAChB,WAAQ,EAAE,KAAV;IACE,KAAK;IACL,KAAK;AACH,SAAY,EAAiB,GAAO,EAAM;AAC1C;IACF,KAAK;IACL,KAAK;AACH,SAAY,EAAiB,GAAO,EAAM;AAC1C;IACF,KAAK;AACH,SAAY,EAAkB,EAAM;AACpC;IACF,KAAK;AACH,SAAY,EAAiB,EAAM;AACnC;IACF,KAAK;IACL,KAAK;AACH,KAAI,MACF,EAAE,gBAAgB,EAClB,EAAW,EAAM;AAEnB;IACF,QACE;;AAEA,OAAY,KAAK,MAAc,MACnC,EAAE,gBAAgB,EAClB,IAAa,EAAU,EACvB,EAAU,EAAU;;EAOrB"}
@@ -1,35 +0,0 @@
1
- import { type ReactElement, type ReactNode } from 'react';
2
- /**
3
- * One button in an {@link ActionsBar}. `value` is only a React key; the item
4
- * carries no selected state.
5
- */
6
- export type ActionsBarItem<V extends string | number = string> = {
7
- value: V;
8
- label?: ReactNode;
9
- ariaLabel?: string;
10
- disabled?: boolean;
11
- onAction: () => void;
12
- };
13
- /** Segment height and type scale for an {@link ActionsBar}. */
14
- export type ActionsBarSize = 'sm' | 'md';
15
- /** Visual treatment of an {@link ActionsBar}. */
16
- export type ActionsBarVariant = 'default' | 'minimal';
17
- /** Props for {@link ActionsBar}. */
18
- export type ActionsBarProps<V extends string | number = string> = {
19
- items: readonly ActionsBarItem<V>[];
20
- ariaLabel?: string;
21
- className?: string;
22
- height?: number;
23
- size?: ActionsBarSize;
24
- variant?: ActionsBarVariant;
25
- };
26
- /**
27
- * Segmented strip of momentary buttons — each press fires and nothing stays
28
- * selected. Shares the look and the arrow-key navigation of `ToggleBar` and
29
- * `OptionsBar`.
30
- *
31
- * This is a plain callback bar. For buttons driven by the kit's actions
32
- * registry, use `ActionBar` instead.
33
- */
34
- export declare function ActionsBar<V extends string | number = string>(props: ActionsBarProps<V>): ReactElement;
35
- //# sourceMappingURL=ActionsBar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionsBar.d.ts","sourceRoot":"","sources":["../../../src/components/ActionsBar/ActionsBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9E;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IAC/D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,iDAAiD;AACjD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,oCAAoC;AACpC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IAChE,KAAK,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,YAAY,CA8CtG"}
@@ -1,3 +0,0 @@
1
- export { ActionsBar } from './ActionsBar';
2
- export type { ActionsBarItem, ActionsBarProps, ActionsBarSize, ActionsBarVariant } from './ActionsBar';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ActionsBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- import { t as e } from "../../chunks/ActionsBar-D84a4eGy.js";
2
- export { e as ActionsBar };
@@ -1,62 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- /** One card in a layer stack: its identity, the label shown when collapsed,
3
- * and the optional select hoisted into its header. */
4
- export interface LayerStackItem {
5
- /** Stable id used for keys, onRemove, onReorder. Numeric to match
6
- * common id-from-nextId conventions; string ids also work. */
7
- id: number | string;
8
- /** Short kind label rendered in the header when no primary select
9
- * is hoisted (e.g. "shadow", "stroke"). Omit it for items that have no
10
- * kind; `label` then names the card. */
11
- kind?: string;
12
- /** Header text, when the item's name is not its kind. Falls back to
13
- * `kind`. */
14
- label?: string;
15
- /** When present, hoist this select into the card header so the user
16
- * can switch mode/shape without expanding. */
17
- primaryValue?: string;
18
- primaryOptions?: string[];
19
- /** Accent CSS color used as the left border / index-badge fill. Sets
20
- * --wzl-layer-stack-accent on the card, which re-binds --wzl-accent
21
- * for everything inside it. */
22
- accent?: string;
23
- /** Optional badge text rendered before the primary control
24
- * (e.g. tail index "1", "2", "3"). When omitted a drag handle
25
- * glyph renders in its place. */
26
- badge?: string;
27
- /** Initial expanded state. Defaults to true for newly-added items. */
28
- defaultExpanded?: boolean;
29
- }
30
- /** Props for `<LayerStack>`. */
31
- export interface LayerStackProps {
32
- /** Heading above the list. Omit it, along with the palette, for a stack
33
- * whose surroundings already name it. */
34
- title?: string;
35
- items: LayerStackItem[];
36
- /** Kinds the user can add via the header palette. Omit both this and
37
- * `onAdd` for a stack the user cannot add to. */
38
- paletteKinds?: string[];
39
- onAdd?: (kind: string) => void;
40
- /** Omit for items the user cannot remove; the card then has no ✕. */
41
- onRemove?: (id: number | string) => void;
42
- onReorder: (orderedIds: Array<number | string>) => void;
43
- /** Required for `primaryValue` to render as a select — without a handler
44
- * the control could not be changed. */
45
- onPrimaryChange?: (id: number | string, nextValue: string) => void;
46
- /** Render the body controls for each item. */
47
- renderBody: (item: LayerStackItem) => ReactNode;
48
- /** Shown in place of the list when `items` is empty. Defaults to a line
49
- * that points at the palette, or a bare one when there is no palette. */
50
- emptyLabel?: ReactNode;
51
- /** Hide the title + palette row (used when an outer wrap renders its
52
- * own head — see speech-balloons Tails panel). */
53
- hideHead?: boolean;
54
- /** Appended to the root element's class list. The module's own class names
55
- * are hashed, so this is the supported way to reach the stack from a
56
- * consumer stylesheet. */
57
- className?: string;
58
- }
59
- /** A drag-reorderable stack of expandable cards, with a palette in the header
60
- * for adding more. The body of each card is the caller's to render. */
61
- export declare function LayerStack({ className, title, items, paletteKinds, onAdd, onRemove, onReorder, onPrimaryChange, renderBody, emptyLabel, hideHead, }: LayerStackProps): import("react/jsx-runtime").JSX.Element;
62
- //# sourceMappingURL=LayerStack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayerStack.d.ts","sourceRoot":"","sources":["../../../src/components/LayerStack/LayerStack.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;AAMlG;uDACuD;AACvD,MAAM,WAAW,cAAc;IAC7B;mEAC+D;IAC/D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB;;6CAEyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;kBACc;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mDAC+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;oCAEgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;sCAEkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B;8CAC0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;sDACkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACxD;4CACwC;IACxC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,8CAA8C;IAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,SAAS,CAAC;IAChD;8EAC0E;IAC1E,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;uDACmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;+BAE2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;wEACwE;AACxE,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,2CA6JjB"}
@@ -1,2 +0,0 @@
1
- export { LayerStack, type LayerStackItem, type LayerStackProps } from './LayerStack';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LayerStack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- import { t as e } from "../../chunks/LayerStack-CfQ6GsRz.js";
2
- export { e as LayerStack };
@@ -1,69 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- import { type PropertyMetricProps } from './PropertyPanel';
3
- /** Props for `<Subpanel>`. */
4
- export interface SubpanelProps extends PropertyMetricProps {
5
- title: ReactNode;
6
- children: ReactNode;
7
- className?: string;
8
- }
9
- /** A typographic divider inside a property list: a small title flanked by a
10
- * rule. Purely a heading — use `<PropertyGroup>` for a bordered section. */
11
- export declare function Subpanel({ title, children, className, density, align }: SubpanelProps): import("react/jsx-runtime").JSX.Element;
12
- /** Props for `<EffectCard>`. */
13
- export interface EffectCardProps {
14
- /** Card title rendered in the title bar (e.g. effect kind label or a select). */
15
- title: ReactNode;
16
- /** Optional badge/chip displayed before the remove button (e.g. primary value summary). */
17
- primary?: ReactNode;
18
- /** Optional accent color in any CSS color form. Sets --wzl-effect-card-accent on the card. */
19
- accent?: string;
20
- /** Optional ordinal badge that doubles as the drag handle (used by tail cards in SB). */
21
- index?: number;
22
- expanded?: boolean;
23
- onToggleExpanded?: () => void;
24
- onRemove?: () => void;
25
- /**
26
- * Drag-handle wiring. When provided, an inline handle (⋮⋮ icon or `index`)
27
- * activates HTML5 drag on press. Consumer owns the drag/drop coordination —
28
- * see EffectCardList for the batteries-included wrapper.
29
- */
30
- draggable?: boolean;
31
- onPressHandle?: () => void;
32
- onReleaseHandle?: () => void;
33
- onDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;
34
- onDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;
35
- onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
36
- onDragLeave?: (e: React.DragEvent<HTMLDivElement>) => void;
37
- onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;
38
- dragging?: boolean;
39
- children?: ReactNode;
40
- className?: string;
41
- }
42
- /** An accented, collapsible card for one item in a list of like things —
43
- * effects, layers, tails. The accent color rebinds the theme accent token
44
- * within the card, so its controls pick it up too. */
45
- 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;
46
- /** The minimum an item must carry to appear in an `<EffectCardList>`. */
47
- export interface EffectCardListItem {
48
- id: string | number;
49
- }
50
- /** Props for `<EffectCardList>`. */
51
- export interface EffectCardListProps<T extends EffectCardListItem> {
52
- items: ReadonlyArray<T>;
53
- renderItem: (item: T, helpers: {
54
- isExpanded: boolean;
55
- isDragging: boolean;
56
- toggleExpanded: () => void;
57
- cardProps: Pick<EffectCardProps, 'expanded' | 'dragging' | 'draggable' | 'onToggleExpanded' | 'onPressHandle' | 'onReleaseHandle' | 'onDragStart' | 'onDragEnd' | 'onDragOver' | 'onDragLeave' | 'onDrop'>;
58
- }) => ReactNode;
59
- onReorder: (sourceId: T['id'], targetId: T['id'], position: 'before' | 'after') => void;
60
- /** Optional rendered when the list is empty. */
61
- empty?: ReactNode;
62
- /** IDs to render expanded on first mount. Defaults to all collapsed. */
63
- defaultExpandedIds?: ReadonlyArray<T['id']>;
64
- }
65
- /** A drag-reorderable list of `<EffectCard>`s. Owns the expanded and dragging
66
- * state and hands it back to `renderItem`, so the caller only supplies each
67
- * card's contents. */
68
- export declare function EffectCardList<T extends EffectCardListItem>({ items, renderItem, onReorder, empty, defaultExpandedIds, }: EffectCardListProps<T>): import("react/jsx-runtime").JSX.Element;
69
- //# sourceMappingURL=EffectCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EffectCard.d.ts","sourceRoot":"","sources":["../../../src/components/Properties/EffectCard.tsx"],"names":[],"mappings":"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"}