@weasel-js/ui 1.5.1 → 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 (511) 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-Bf8Rd1R6.js → Badge-DZ0lFs14.js} +755 -738
  4. package/dist/chunks/Badge-DZ0lFs14.js.map +1 -0
  5. package/dist/chunks/{BandEditor-D8I5Uun-.js → BandEditor-D-nVrVO4.js} +44 -44
  6. package/dist/chunks/BandEditor-D-nVrVO4.js.map +1 -0
  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-BZZsPaVF.js → Checkbox-ChZz30Ds.js} +5 -5
  14. package/dist/chunks/Checkbox-ChZz30Ds.js.map +1 -0
  15. package/dist/chunks/Code-v4tDWuuN.js +24 -0
  16. package/dist/chunks/Code-v4tDWuuN.js.map +1 -0
  17. package/dist/chunks/{ColorField-YVf8irfr.js → ColorField-DJSCuSJv.js} +15 -15
  18. package/dist/chunks/{ColorField-YVf8irfr.js.map → ColorField-DJSCuSJv.js.map} +1 -1
  19. package/dist/chunks/ColorModeControl-JOEiqtE0.js +47 -0
  20. package/dist/chunks/ColorModeControl-JOEiqtE0.js.map +1 -0
  21. package/dist/chunks/{ComboBox-D57tNYDD.js → ComboBox-C1JgIpML.js} +13 -13
  22. package/dist/chunks/ComboBox-C1JgIpML.js.map +1 -0
  23. package/dist/chunks/{CurveEditor-BXiMoN9d.js → CurveEditor-f1R4kSbD.js} +2 -2
  24. package/dist/chunks/{CurveEditor-BXiMoN9d.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-BWNSv07Z.js → DetentSlider-BYyaZha6.js} +2 -2
  30. package/dist/chunks/{DetentSlider-BWNSv07Z.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-BNqvUJfg.js → Field-xbqRmjsI.js} +6 -6
  40. package/dist/chunks/Field-xbqRmjsI.js.map +1 -0
  41. package/dist/chunks/FillStrokeSwatch-BViKXIPx.js +111 -0
  42. package/dist/chunks/FillStrokeSwatch-BViKXIPx.js.map +1 -0
  43. package/dist/chunks/{FontFamilySelect-CO19kyOO.js → FontFamilySelect-r9TV_xIH.js} +2 -2
  44. package/dist/chunks/{FontFamilySelect-CO19kyOO.js.map → FontFamilySelect-r9TV_xIH.js.map} +1 -1
  45. package/dist/chunks/GradientEditor-BRTxHG-W.js +333 -0
  46. package/dist/chunks/GradientEditor-BRTxHG-W.js.map +1 -0
  47. package/dist/chunks/{Icon-QhLhaGFe.js → Icon-BW0qv_U7.js} +50 -21
  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-B9Vh7ASP.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-BYrxbAQU.js → Jog-LPoac9s4.js} +10 -10
  58. package/dist/chunks/Jog-LPoac9s4.js.map +1 -0
  59. package/dist/chunks/{Keycaps-CGNQV2Pz.js → Keycaps-CKiKOJnJ.js} +75 -69
  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-CQzS6TjF.js → NumberField-C1Y7zP-a.js} +27 -22
  70. package/dist/chunks/NumberField-C1Y7zP-a.js.map +1 -0
  71. package/dist/chunks/{OptionsBar-BWaYG_OH.js → OptionsBar-DlcagPYK.js} +3 -3
  72. package/dist/chunks/{OptionsBar-BWaYG_OH.js.map → OptionsBar-DlcagPYK.js.map} +1 -1
  73. package/dist/chunks/{PaintField-BVYMu3OI.js → PaintField-B2mLRZa4.js} +20 -20
  74. package/dist/chunks/PaintField-B2mLRZa4.js.map +1 -0
  75. package/dist/chunks/{PaintInput-BzAHCKro.js → PaintInput-BFKhd83I.js} +27 -27
  76. package/dist/chunks/PaintInput-BFKhd83I.js.map +1 -0
  77. package/dist/chunks/{PatternPicker-C4OryrYi.js → PatternPicker-DdfpxoQy.js} +6 -6
  78. package/dist/chunks/PatternPicker-DdfpxoQy.js.map +1 -0
  79. package/dist/chunks/{Plot2D-Czvyt_vG.js → Plot2D-lyO7waPQ.js} +1 -1
  80. package/dist/chunks/{Plot2D-Czvyt_vG.js.map → Plot2D-lyO7waPQ.js.map} +1 -1
  81. package/dist/chunks/{PointPlotter-Xvb98GwB.js → PointPlotter-DGs9i5P-.js} +2 -2
  82. package/dist/chunks/{PointPlotter-Xvb98GwB.js.map → PointPlotter-DGs9i5P-.js.map} +1 -1
  83. package/dist/chunks/{Powerline-B_EH-7Z-.js → Powerline-DBEPceLE.js} +7 -5
  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-C6xpdQNg.js → RadioGroup-BK2mD6Q0.js} +6 -6
  92. package/dist/chunks/RadioGroup-BK2mD6Q0.js.map +1 -0
  93. package/dist/chunks/{RangeSlider-CzgeGLVS.js → RangeSlider-BiRAOsTh.js} +8 -8
  94. package/dist/chunks/RangeSlider-BiRAOsTh.js.map +1 -0
  95. package/dist/chunks/{ResizeHandle-1Ey8AOij.js → ResizeHandle-Cc6EOehs.js} +9 -9
  96. package/dist/chunks/{ResizeHandle-1Ey8AOij.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-C5LmZA7b.js +103 -0
  100. package/dist/chunks/SelectionPanel-C5LmZA7b.js.map +1 -0
  101. package/dist/chunks/{Sidebar-BlUjn8lD.js → Sidebar-DKKd4R-x.js} +4 -4
  102. package/dist/chunks/Sidebar-DKKd4R-x.js.map +1 -0
  103. package/dist/chunks/{SidebarPanel-BqHfz6VK.js → SidebarPanel-u5NsuAZY.js} +15 -19
  104. package/dist/chunks/SidebarPanel-u5NsuAZY.js.map +1 -0
  105. package/dist/chunks/{Slider-B2ywUZH6.js → Slider-BwRrWHFW.js} +58 -58
  106. package/dist/chunks/Slider-BwRrWHFW.js.map +1 -0
  107. package/dist/chunks/{StatusBar-BFt7Yw5O.js → StatusBar-CdPdmmda.js} +6 -6
  108. package/dist/chunks/StatusBar-CdPdmmda.js.map +1 -0
  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-Om3t3ASc.js → Switch-DxF7TsEu.js} +5 -5
  112. package/dist/chunks/Switch-DxF7TsEu.js.map +1 -0
  113. package/dist/chunks/{Tabs-EAvYywil.js → Tabs-GXEfoe3o.js} +5 -5
  114. package/dist/chunks/Tabs-GXEfoe3o.js.map +1 -0
  115. package/dist/chunks/{Timeline-BEyKaBXl.js → Timeline-SgmpQtUV.js} +128 -132
  116. package/dist/chunks/Timeline-SgmpQtUV.js.map +1 -0
  117. package/dist/chunks/{Toast-iqLDD_XZ.js → Toast-BfcljZz6.js} +15 -15
  118. package/dist/chunks/Toast-BfcljZz6.js.map +1 -0
  119. package/dist/chunks/ToggleBar-Btnl5r7F.js +80 -0
  120. package/dist/chunks/ToggleBar-Btnl5r7F.js.map +1 -0
  121. package/dist/chunks/TokenPanel-5ajHEHha.js +634 -0
  122. package/dist/chunks/TokenPanel-5ajHEHha.js.map +1 -0
  123. package/dist/chunks/{ToolButton-Dd-1T5aX.js → ToolButton-rzqlFlAc.js} +9 -9
  124. package/dist/chunks/ToolButton-rzqlFlAc.js.map +1 -0
  125. package/dist/chunks/{ToolGroup-BBI-W-Gm.js → ToolGroup-4bUBV5k6.js} +3 -3
  126. package/dist/chunks/ToolGroup-4bUBV5k6.js.map +1 -0
  127. package/dist/chunks/ToolOptionsBar-BF3TNXA3.js +85 -0
  128. package/dist/chunks/ToolOptionsBar-BF3TNXA3.js.map +1 -0
  129. package/dist/chunks/ToolPalette-Uw4PvWwa.js +83 -0
  130. package/dist/chunks/ToolPalette-Uw4PvWwa.js.map +1 -0
  131. package/dist/chunks/Tooltip-9XiJF937.js +42 -0
  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-7j7ukrSx.js → createKeyframeLayer-BzDRCrrh.js} +71 -71
  136. package/dist/chunks/{createKeyframeLayer-7j7ukrSx.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-6S8IzXVt.js +89 -0
  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-B0WQwetQ.js → snap-DC4Km8xG.js} +1 -1
  160. package/dist/chunks/{snap-B0WQwetQ.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/oklch.d.ts +2 -1
  168. package/dist/color/oklch.d.ts.map +1 -1
  169. package/dist/color/ramp.d.ts +38 -0
  170. package/dist/color/ramp.d.ts.map +1 -0
  171. package/dist/components/ActionBar/ActionBar.d.ts +6 -4
  172. package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
  173. package/dist/components/ActionBar/index.js +1 -1
  174. package/dist/components/Badge/Badge.d.ts +21 -7
  175. package/dist/components/Badge/Badge.d.ts.map +1 -1
  176. package/dist/components/Badge/effects/Aqua.d.ts +1 -1
  177. package/dist/components/Badge/effects/Aqua.d.ts.map +1 -1
  178. package/dist/components/Badge/index.d.ts +1 -1
  179. package/dist/components/Badge/index.d.ts.map +1 -1
  180. package/dist/components/Badge/index.js +1 -1
  181. package/dist/components/Badge/types.d.ts +6 -5
  182. package/dist/components/Badge/types.d.ts.map +1 -1
  183. package/dist/components/BandEditor/index.js +1 -1
  184. package/dist/components/Button/Button.d.ts +17 -3
  185. package/dist/components/Button/Button.d.ts.map +1 -1
  186. package/dist/components/Button/index.d.ts +1 -1
  187. package/dist/components/Button/index.d.ts.map +1 -1
  188. package/dist/components/Button/index.js +1 -1
  189. package/dist/components/ButtonBar/ButtonBar.d.ts +36 -0
  190. package/dist/components/ButtonBar/ButtonBar.d.ts.map +1 -0
  191. package/dist/components/ButtonBar/index.d.ts +3 -0
  192. package/dist/components/ButtonBar/index.d.ts.map +1 -0
  193. package/dist/components/ButtonBar/index.js +2 -0
  194. package/dist/components/Callout/Callout.d.ts +2 -5
  195. package/dist/components/Callout/Callout.d.ts.map +1 -1
  196. package/dist/components/Callout/index.d.ts +1 -1
  197. package/dist/components/Callout/index.d.ts.map +1 -1
  198. package/dist/components/Callout/index.js +1 -1
  199. package/dist/components/Checkbox/index.js +1 -1
  200. package/dist/components/Code/Code.d.ts +28 -0
  201. package/dist/components/Code/Code.d.ts.map +1 -0
  202. package/dist/components/Code/index.d.ts +3 -0
  203. package/dist/components/Code/index.d.ts.map +1 -0
  204. package/dist/components/Code/index.js +2 -0
  205. package/dist/components/ColorField/index.js +1 -1
  206. package/dist/components/ColorModeControl/ColorModeControl.d.ts +21 -0
  207. package/dist/components/ColorModeControl/ColorModeControl.d.ts.map +1 -0
  208. package/dist/components/ColorModeControl/index.d.ts +3 -0
  209. package/dist/components/ColorModeControl/index.d.ts.map +1 -0
  210. package/dist/components/ColorModeControl/index.js +2 -0
  211. package/dist/components/ComboBox/index.js +1 -1
  212. package/dist/components/CurveEditor/index.js +3 -3
  213. package/dist/components/DataGrid/DataGrid.d.ts +22 -0
  214. package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
  215. package/dist/components/DataGrid/index.js +1 -1
  216. package/dist/components/DetailList/DetailList.d.ts +36 -0
  217. package/dist/components/DetailList/DetailList.d.ts.map +1 -0
  218. package/dist/components/DetailList/index.d.ts +3 -0
  219. package/dist/components/DetailList/index.d.ts.map +1 -0
  220. package/dist/components/DetailList/index.js +2 -0
  221. package/dist/components/DetentSlider/index.js +1 -1
  222. package/dist/components/Dialog/Dialog.d.ts +8 -2
  223. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  224. package/dist/components/Dialog/index.js +1 -1
  225. package/dist/components/Disclosure/Disclosure.d.ts +25 -17
  226. package/dist/components/Disclosure/Disclosure.d.ts.map +1 -1
  227. package/dist/components/Disclosure/index.d.ts +2 -2
  228. package/dist/components/Disclosure/index.d.ts.map +1 -1
  229. package/dist/components/Disclosure/index.js +2 -2
  230. package/dist/components/DragGhost/DragGhost.d.ts +21 -0
  231. package/dist/components/DragGhost/DragGhost.d.ts.map +1 -0
  232. package/dist/components/DragGhost/index.d.ts +3 -0
  233. package/dist/components/DragGhost/index.d.ts.map +1 -0
  234. package/dist/components/DragGhost/index.js +2 -0
  235. package/dist/components/DragHandleGlyph/index.js +1 -1
  236. package/dist/components/Field/index.js +1 -1
  237. package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts +45 -0
  238. package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts.map +1 -0
  239. package/dist/components/FillStrokeSwatch/index.d.ts +3 -0
  240. package/dist/components/FillStrokeSwatch/index.d.ts.map +1 -0
  241. package/dist/components/FillStrokeSwatch/index.js +2 -0
  242. package/dist/components/FontFamilySelect/index.js +1 -1
  243. package/dist/components/GradientEditor/SceneGradientHandles.d.ts.map +1 -1
  244. package/dist/components/GradientEditor/index.js +1 -1
  245. package/dist/components/InlineRange/InlineRange.d.ts +6 -2
  246. package/dist/components/InlineRange/InlineRange.d.ts.map +1 -1
  247. package/dist/components/InlineRange/index.js +1 -1
  248. package/dist/components/Input/Input.d.ts +13 -0
  249. package/dist/components/Input/Input.d.ts.map +1 -1
  250. package/dist/components/Input/index.js +1 -1
  251. package/dist/components/ItemList/ItemList.d.ts +70 -10
  252. package/dist/components/ItemList/ItemList.d.ts.map +1 -1
  253. package/dist/components/ItemList/index.js +1 -1
  254. package/dist/components/Jog/index.js +1 -1
  255. package/dist/components/Keycaps/index.d.ts +1 -0
  256. package/dist/components/Keycaps/index.d.ts.map +1 -1
  257. package/dist/components/Keycaps/index.js +3 -3
  258. package/dist/components/Keycaps/keySpecsFromMods.d.ts +2 -0
  259. package/dist/components/Keycaps/keySpecsFromMods.d.ts.map +1 -1
  260. package/dist/components/Keycaps/keySpecsFromShortcut.d.ts +16 -0
  261. package/dist/components/Keycaps/keySpecsFromShortcut.d.ts.map +1 -0
  262. package/dist/components/LayerList/LayerList.d.ts +79 -0
  263. package/dist/components/LayerList/LayerList.d.ts.map +1 -0
  264. package/dist/components/LayerList/index.d.ts +3 -0
  265. package/dist/components/LayerList/index.d.ts.map +1 -0
  266. package/dist/components/LayerList/index.js +2 -0
  267. package/dist/components/LayerList/useSceneLayerList.d.ts +20 -0
  268. package/dist/components/LayerList/useSceneLayerList.d.ts.map +1 -0
  269. package/dist/components/ListEditor/ListEditor.d.ts +23 -0
  270. package/dist/components/ListEditor/ListEditor.d.ts.map +1 -0
  271. package/dist/components/ListEditor/index.d.ts +3 -0
  272. package/dist/components/ListEditor/index.d.ts.map +1 -0
  273. package/dist/components/ListEditor/index.js +2 -0
  274. package/dist/components/MenuButton/MenuButton.d.ts +6 -2
  275. package/dist/components/MenuButton/MenuButton.d.ts.map +1 -1
  276. package/dist/components/MenuButton/index.js +1 -1
  277. package/dist/components/MeshEditor/index.js +1 -1
  278. package/dist/components/NumberField/NumberField.d.ts +13 -0
  279. package/dist/components/NumberField/NumberField.d.ts.map +1 -1
  280. package/dist/components/NumberField/UnitField.d.ts +2 -1
  281. package/dist/components/NumberField/UnitField.d.ts.map +1 -1
  282. package/dist/components/NumberField/index.js +1 -1
  283. package/dist/components/OptionsBar/index.js +1 -1
  284. package/dist/components/PaintField/index.js +1 -1
  285. package/dist/components/PaintInput/index.js +1 -1
  286. package/dist/components/PatternPicker/index.js +1 -1
  287. package/dist/components/Plot2D/index.js +1 -1
  288. package/dist/components/PointPlotter/index.js +1 -1
  289. package/dist/components/Powerline/Powerline.d.ts +4 -3
  290. package/dist/components/Powerline/Powerline.d.ts.map +1 -1
  291. package/dist/components/Powerline/index.js +2 -2
  292. package/dist/components/Prefs/PrefsDialog.d.ts +10 -2
  293. package/dist/components/Prefs/PrefsDialog.d.ts.map +1 -1
  294. package/dist/components/Prefs/PrefsForm.d.ts +26 -25
  295. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  296. package/dist/components/Prefs/PrefsPane.d.ts +24 -0
  297. package/dist/components/Prefs/PrefsPane.d.ts.map +1 -0
  298. package/dist/components/Prefs/PrefsRail.d.ts +32 -0
  299. package/dist/components/Prefs/PrefsRail.d.ts.map +1 -0
  300. package/dist/components/Prefs/PrefsRow.d.ts +32 -0
  301. package/dist/components/Prefs/PrefsRow.d.ts.map +1 -0
  302. package/dist/components/Prefs/index.d.ts +5 -2
  303. package/dist/components/Prefs/index.d.ts.map +1 -1
  304. package/dist/components/Prefs/index.js +3 -3
  305. package/dist/components/Prefs/prefField.d.ts +36 -0
  306. package/dist/components/Prefs/prefField.d.ts.map +1 -0
  307. package/dist/components/Prefs/schema.d.ts +32 -1
  308. package/dist/components/Prefs/schema.d.ts.map +1 -1
  309. package/dist/components/Properties/DialogRow.d.ts +33 -0
  310. package/dist/components/Properties/DialogRow.d.ts.map +1 -0
  311. package/dist/components/Properties/PropertyField.d.ts +238 -0
  312. package/dist/components/Properties/PropertyField.d.ts.map +1 -0
  313. package/dist/components/Properties/PropertyGroup.d.ts +18 -3
  314. package/dist/components/Properties/PropertyGroup.d.ts.map +1 -1
  315. package/dist/components/Properties/PropertyPanel.d.ts +50 -256
  316. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  317. package/dist/components/Properties/Subpanel.d.ts +14 -0
  318. package/dist/components/Properties/Subpanel.d.ts.map +1 -0
  319. package/dist/components/Properties/index.d.ts +8 -6
  320. package/dist/components/Properties/index.d.ts.map +1 -1
  321. package/dist/components/Properties/index.js +3 -2
  322. package/dist/components/Properties/storyLayouts.d.ts.map +1 -1
  323. package/dist/components/RadioGroup/index.js +1 -1
  324. package/dist/components/RangeSlider/index.js +1 -1
  325. package/dist/components/ResizeHandle/index.js +1 -1
  326. package/dist/components/Select/Select.d.ts +56 -5
  327. package/dist/components/Select/Select.d.ts.map +1 -1
  328. package/dist/components/Select/index.d.ts +2 -2
  329. package/dist/components/Select/index.d.ts.map +1 -1
  330. package/dist/components/Select/index.js +2 -2
  331. package/dist/components/SelectionPanel/SelectionPanel.d.ts +3 -50
  332. package/dist/components/SelectionPanel/SelectionPanel.d.ts.map +1 -1
  333. package/dist/components/SelectionPanel/index.js +3 -2
  334. package/dist/components/SelectionPanel/model.d.ts +4 -1
  335. package/dist/components/SelectionPanel/model.d.ts.map +1 -1
  336. package/dist/components/SelectionPanel/renderLeaf.d.ts +112 -0
  337. package/dist/components/SelectionPanel/renderLeaf.d.ts.map +1 -0
  338. package/dist/components/Sidebar/index.js +1 -1
  339. package/dist/components/SidebarPanel/SidebarPanel.d.ts +2 -2
  340. package/dist/components/SidebarPanel/SidebarPanel.d.ts.map +1 -1
  341. package/dist/components/SidebarPanel/index.js +1 -1
  342. package/dist/components/Slider/index.js +1 -1
  343. package/dist/components/StatusBar/index.js +1 -1
  344. package/dist/components/SwatchGrid/SwatchGrid.d.ts +34 -0
  345. package/dist/components/SwatchGrid/SwatchGrid.d.ts.map +1 -0
  346. package/dist/components/SwatchGrid/index.d.ts +3 -0
  347. package/dist/components/SwatchGrid/index.d.ts.map +1 -0
  348. package/dist/components/SwatchGrid/index.js +2 -0
  349. package/dist/components/Switch/index.js +1 -1
  350. package/dist/components/Tabs/index.js +1 -1
  351. package/dist/components/Timeline/Lane.d.ts.map +1 -1
  352. package/dist/components/Timeline/index.js +1 -1
  353. package/dist/components/Toast/index.js +1 -1
  354. package/dist/components/ToggleBar/ToggleBar.d.ts +2 -1
  355. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  356. package/dist/components/ToggleBar/index.js +1 -1
  357. package/dist/components/TokenPanel/TokenPanel.d.ts +10 -4
  358. package/dist/components/TokenPanel/TokenPanel.d.ts.map +1 -1
  359. package/dist/components/TokenPanel/index.d.ts +2 -2
  360. package/dist/components/TokenPanel/index.d.ts.map +1 -1
  361. package/dist/components/TokenPanel/index.js +2 -2
  362. package/dist/components/TokenPanel/tokenTypes.d.ts +24 -0
  363. package/dist/components/TokenPanel/tokenTypes.d.ts.map +1 -1
  364. package/dist/components/ToolButton/index.js +1 -1
  365. package/dist/components/ToolGroup/index.js +1 -1
  366. package/dist/components/ToolOptionsBar/ToolOptionsBar.d.ts +29 -18
  367. package/dist/components/ToolOptionsBar/ToolOptionsBar.d.ts.map +1 -1
  368. package/dist/components/ToolOptionsBar/index.js +1 -1
  369. package/dist/components/ToolPalette/ToolPalette.d.ts +5 -4
  370. package/dist/components/ToolPalette/ToolPalette.d.ts.map +1 -1
  371. package/dist/components/ToolPalette/index.d.ts +1 -0
  372. package/dist/components/ToolPalette/index.d.ts.map +1 -1
  373. package/dist/components/ToolPalette/index.js +3 -2
  374. package/dist/components/Tooltip/Tooltip.d.ts +6 -2
  375. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  376. package/dist/components/Tooltip/index.d.ts +1 -1
  377. package/dist/components/Tooltip/index.d.ts.map +1 -1
  378. package/dist/components/Tooltip/index.js +2 -2
  379. package/dist/components/Tree/Tree.d.ts +84 -0
  380. package/dist/components/Tree/Tree.d.ts.map +1 -0
  381. package/dist/components/Tree/index.d.ts +3 -0
  382. package/dist/components/Tree/index.d.ts.map +1 -0
  383. package/dist/components/Tree/index.js +2 -0
  384. package/dist/components/segmentTooltip.d.ts +30 -0
  385. package/dist/components/segmentTooltip.d.ts.map +1 -0
  386. package/dist/components/stance.d.ts +30 -0
  387. package/dist/components/stance.d.ts.map +1 -0
  388. package/dist/components/stanceCss.d.ts +31 -0
  389. package/dist/components/stanceCss.d.ts.map +1 -0
  390. package/dist/components/stanceSurfaces.d.ts +4 -0
  391. package/dist/components/stanceSurfaces.d.ts.map +1 -0
  392. package/dist/format/number.d.ts +13 -3
  393. package/dist/format/number.d.ts.map +1 -1
  394. package/dist/icons/Icon.d.ts.map +1 -1
  395. package/dist/icons/ShapeKindIcon.d.ts +10 -0
  396. package/dist/icons/ShapeKindIcon.d.ts.map +1 -0
  397. package/dist/icons/index.d.ts +5 -3
  398. package/dist/icons/index.d.ts.map +1 -1
  399. package/dist/icons/paths.d.ts +11 -1
  400. package/dist/icons/paths.d.ts.map +1 -1
  401. package/dist/index.d.ts +16 -3
  402. package/dist/index.d.ts.map +1 -1
  403. package/dist/index.js +110 -84
  404. package/dist/index.js.map +1 -1
  405. package/dist/interactiveTarget.d.ts +9 -0
  406. package/dist/interactiveTarget.d.ts.map +1 -0
  407. package/dist/style.css +1 -1
  408. package/dist/useReorderDragList.d.ts +36 -7
  409. package/dist/useReorderDragList.d.ts.map +1 -1
  410. package/dist/useRovingTabIndex.d.ts +8 -6
  411. package/dist/useRovingTabIndex.d.ts.map +1 -1
  412. package/dist/useScrollSpy.d.ts +48 -0
  413. package/dist/useScrollSpy.d.ts.map +1 -0
  414. package/package.json +8 -8
  415. package/dist/chunks/ActionBar-GZdcfdQL.js +0 -62
  416. package/dist/chunks/ActionBar-GZdcfdQL.js.map +0 -1
  417. package/dist/chunks/ActionsBar-Fhx_40iP.js +0 -41
  418. package/dist/chunks/ActionsBar-Fhx_40iP.js.map +0 -1
  419. package/dist/chunks/Badge-Bf8Rd1R6.js.map +0 -1
  420. package/dist/chunks/BandEditor-D8I5Uun-.js.map +0 -1
  421. package/dist/chunks/Button-CExdkQcU.js +0 -90
  422. package/dist/chunks/Button-CExdkQcU.js.map +0 -1
  423. package/dist/chunks/Callout-cx5_CWcW.js +0 -122
  424. package/dist/chunks/Callout-cx5_CWcW.js.map +0 -1
  425. package/dist/chunks/Checkbox-BZZsPaVF.js.map +0 -1
  426. package/dist/chunks/ComboBox-D57tNYDD.js.map +0 -1
  427. package/dist/chunks/DataGrid-BVdDMZkQ.js +0 -104
  428. package/dist/chunks/DataGrid-BVdDMZkQ.js.map +0 -1
  429. package/dist/chunks/Dialog-DuOzsR2g.js +0 -61
  430. package/dist/chunks/Dialog-DuOzsR2g.js.map +0 -1
  431. package/dist/chunks/Disclosure-9UgDzc7Z.js +0 -47
  432. package/dist/chunks/Disclosure-9UgDzc7Z.js.map +0 -1
  433. package/dist/chunks/Field-BNqvUJfg.js.map +0 -1
  434. package/dist/chunks/GradientEditor-B_ymIr4Q.js +0 -333
  435. package/dist/chunks/GradientEditor-B_ymIr4Q.js.map +0 -1
  436. package/dist/chunks/Icon-QhLhaGFe.js.map +0 -1
  437. package/dist/chunks/InlineRange-DdIlfGqG.js +0 -29
  438. package/dist/chunks/InlineRange-DdIlfGqG.js.map +0 -1
  439. package/dist/chunks/Input-B9Vh7ASP.js.map +0 -1
  440. package/dist/chunks/ItemList-BZJQReXD.js +0 -42
  441. package/dist/chunks/ItemList-BZJQReXD.js.map +0 -1
  442. package/dist/chunks/Jog-BYrxbAQU.js.map +0 -1
  443. package/dist/chunks/Keycaps-CGNQV2Pz.js.map +0 -1
  444. package/dist/chunks/LayerStack-DOylrQcm.js +0 -142
  445. package/dist/chunks/LayerStack-DOylrQcm.js.map +0 -1
  446. package/dist/chunks/MenuButton-DGE-0DP0.js +0 -60
  447. package/dist/chunks/MenuButton-DGE-0DP0.js.map +0 -1
  448. package/dist/chunks/MeshEditor-CHoGQ9K8.js +0 -123
  449. package/dist/chunks/MeshEditor-CHoGQ9K8.js.map +0 -1
  450. package/dist/chunks/NumberField-CQzS6TjF.js.map +0 -1
  451. package/dist/chunks/PaintField-BVYMu3OI.js.map +0 -1
  452. package/dist/chunks/PaintInput-BzAHCKro.js.map +0 -1
  453. package/dist/chunks/PatternPicker-C4OryrYi.js.map +0 -1
  454. package/dist/chunks/Powerline-B_EH-7Z-.js.map +0 -1
  455. package/dist/chunks/Prefs-FuaJBs3t.js +0 -308
  456. package/dist/chunks/Prefs-FuaJBs3t.js.map +0 -1
  457. package/dist/chunks/Properties-B3KU69NI.js +0 -874
  458. package/dist/chunks/Properties-B3KU69NI.js.map +0 -1
  459. package/dist/chunks/RadioGroup-C6xpdQNg.js.map +0 -1
  460. package/dist/chunks/RangeSlider-CzgeGLVS.js.map +0 -1
  461. package/dist/chunks/Select-BMYVh10x.js +0 -127
  462. package/dist/chunks/Select-BMYVh10x.js.map +0 -1
  463. package/dist/chunks/SelectionPanel-DTpcQidl.js +0 -572
  464. package/dist/chunks/SelectionPanel-DTpcQidl.js.map +0 -1
  465. package/dist/chunks/Sidebar-BlUjn8lD.js.map +0 -1
  466. package/dist/chunks/SidebarPanel-BqHfz6VK.js.map +0 -1
  467. package/dist/chunks/Slider-B2ywUZH6.js.map +0 -1
  468. package/dist/chunks/StatusBar-BFt7Yw5O.js.map +0 -1
  469. package/dist/chunks/Switch-Om3t3ASc.js.map +0 -1
  470. package/dist/chunks/Tabs-EAvYywil.js.map +0 -1
  471. package/dist/chunks/Timeline-BEyKaBXl.js.map +0 -1
  472. package/dist/chunks/Toast-iqLDD_XZ.js.map +0 -1
  473. package/dist/chunks/ToggleBar--9As2PWG.js +0 -75
  474. package/dist/chunks/ToggleBar--9As2PWG.js.map +0 -1
  475. package/dist/chunks/TokenPanel-BL9hlq7x.js +0 -374
  476. package/dist/chunks/TokenPanel-BL9hlq7x.js.map +0 -1
  477. package/dist/chunks/ToolButton-Dd-1T5aX.js.map +0 -1
  478. package/dist/chunks/ToolGroup-BBI-W-Gm.js.map +0 -1
  479. package/dist/chunks/ToolOptionsBar-B2xPWzJf.js +0 -27
  480. package/dist/chunks/ToolOptionsBar-B2xPWzJf.js.map +0 -1
  481. package/dist/chunks/ToolPalette-BmTDDpmz.js +0 -97
  482. package/dist/chunks/ToolPalette-BmTDDpmz.js.map +0 -1
  483. package/dist/chunks/Tooltip-BHre_vbI.js +0 -42
  484. package/dist/chunks/Tooltip-BHre_vbI.js.map +0 -1
  485. package/dist/chunks/icons-Btrs-JD7.js +0 -165
  486. package/dist/chunks/icons-Btrs-JD7.js.map +0 -1
  487. package/dist/chunks/number-f6PydOZK.js +0 -52
  488. package/dist/chunks/number-f6PydOZK.js.map +0 -1
  489. package/dist/chunks/range.module-DSsOIq1R.js +0 -8
  490. package/dist/chunks/range.module-DSsOIq1R.js.map +0 -1
  491. package/dist/chunks/schema-MCVT1MLv.js +0 -47
  492. package/dist/chunks/schema-MCVT1MLv.js.map +0 -1
  493. package/dist/chunks/segmentedControl.module-DmeUMYe3.js +0 -11
  494. package/dist/chunks/segmentedControl.module-DmeUMYe3.js.map +0 -1
  495. package/dist/chunks/useReorderDragList-CSQGd7zQ.js +0 -102
  496. package/dist/chunks/useReorderDragList-CSQGd7zQ.js.map +0 -1
  497. package/dist/chunks/useRovingTabIndex-Dkpf_KhN.js.map +0 -1
  498. package/dist/components/ActionsBar/ActionsBar.d.ts +0 -35
  499. package/dist/components/ActionsBar/ActionsBar.d.ts.map +0 -1
  500. package/dist/components/ActionsBar/index.d.ts +0 -3
  501. package/dist/components/ActionsBar/index.d.ts.map +0 -1
  502. package/dist/components/ActionsBar/index.js +0 -2
  503. package/dist/components/LayerStack/LayerStack.d.ts +0 -62
  504. package/dist/components/LayerStack/LayerStack.d.ts.map +0 -1
  505. package/dist/components/LayerStack/index.d.ts +0 -2
  506. package/dist/components/LayerStack/index.d.ts.map +0 -1
  507. package/dist/components/LayerStack/index.js +0 -2
  508. package/dist/components/Properties/EffectCard.d.ts +0 -69
  509. package/dist/components/Properties/EffectCard.d.ts.map +0 -1
  510. package/dist/components/Properties/PinDot.d.ts +0 -18
  511. package/dist/components/Properties/PinDot.d.ts.map +0 -1
@@ -0,0 +1,203 @@
1
+ import { n as e } from "./Disclosure-D79jhmh2.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ import { forwardRef as r, useId as i, useMemo as a, useRef as o, useState as s } from "react";
4
+ var c = {
5
+ tree: "_tree_10k4o_1",
6
+ group: "_group_10k4o_2",
7
+ item: "_item_10k4o_19",
8
+ row: "_row_10k4o_23",
9
+ twisty: "_twisty_10k4o_61",
10
+ leading: "_leading_10k4o_75",
11
+ label: "_label_10k4o_81",
12
+ trailing: "_trailing_10k4o_88",
13
+ empty: "_empty_10k4o_95"
14
+ }, l = 500, u = r(function({ nodes: r, empty: u, className: d, "aria-label": f, "aria-labelledby": g, expandedIds: _, defaultExpandedIds: v, onExpandedChange: y, selectionMode: b = "none", selectedIds: x, defaultSelectedIds: S, onSelectionChange: C, onAction: w }, T) {
15
+ let [E, D] = h(_, v, y), [O, k] = h(x, S, C), A = b !== "none", j = i(), M = a(() => {
16
+ let e = [], t = (n, r, i) => {
17
+ for (let a of n) e.push({
18
+ node: a,
19
+ parentId: r,
20
+ level: i
21
+ }), a.children && E.has(a.id) && t(a.children, a.id, i + 1);
22
+ };
23
+ return t(r, null, 1), e;
24
+ }, [r, E]), N = a(() => new Map(M.map((e, t) => [e.node.id, t])), [M]), P = o(/* @__PURE__ */ new Map()), [F, I] = s(null), L = o(null), R = o({
25
+ text: "",
26
+ at: 0
27
+ }), z = F != null && N.has(F) ? F : (M.find((e) => A && O.has(e.node.id)) ?? M[0])?.node.id;
28
+ if (r.length === 0) return /* @__PURE__ */ t("div", {
29
+ className: [c.empty, d].filter(Boolean).join(" "),
30
+ children: u ?? "—"
31
+ });
32
+ let B = (e) => {
33
+ e != null && P.current.get(e)?.focus();
34
+ }, V = (e) => {
35
+ if (!e.children || e.disabled) return;
36
+ let t = new Set(E);
37
+ t.has(e.id) ? t.delete(e.id) : t.add(e.id), D(t);
38
+ }, H = (e, t) => {
39
+ let n;
40
+ if (b === "multiple" && t.shiftKey && L.current != null && N.has(L.current)) {
41
+ let t = N.get(L.current), r = N.get(e);
42
+ n = new Set(M.slice(Math.min(t, r), Math.max(t, r) + 1).filter((e) => !e.node.disabled).map((e) => e.node.id));
43
+ } else b === "multiple" && (t.metaKey || t.ctrlKey) ? (n = new Set(O), n.has(e) ? n.delete(e) : n.add(e), L.current = e) : (n = new Set([e]), L.current = e);
44
+ (n.size !== O.size || [...n].some((e) => !O.has(e))) && k(n);
45
+ }, U = (e, t) => {
46
+ e.disabled || (V(e), A && H(e.id, t), w?.(e.id, t));
47
+ }, W = (e) => (t) => {
48
+ if (t.target !== t.currentTarget) return;
49
+ let n = N.get(e.node.id), { node: r } = e, i = !!r.children && E.has(r.id);
50
+ switch (t.key) {
51
+ case "ArrowDown":
52
+ t.preventDefault(), B(M[Math.min(n + 1, M.length - 1)].node.id);
53
+ return;
54
+ case "ArrowUp":
55
+ t.preventDefault(), B(M[Math.max(n - 1, 0)].node.id);
56
+ return;
57
+ case "Home":
58
+ t.preventDefault(), B(M[0].node.id);
59
+ return;
60
+ case "End":
61
+ t.preventDefault(), B(M[M.length - 1].node.id);
62
+ return;
63
+ case "ArrowRight":
64
+ if (!r.children) return;
65
+ t.preventDefault(), i ? B(r.children[0]?.id) : V(r);
66
+ return;
67
+ case "ArrowLeft":
68
+ t.preventDefault(), i ? V(r) : B(e.parentId ?? void 0);
69
+ return;
70
+ case "Enter":
71
+ case " ":
72
+ t.preventDefault(), U(r, m(t));
73
+ return;
74
+ default:
75
+ if (t.key.length !== 1 || t.ctrlKey || t.metaKey || t.altKey) return;
76
+ G(t, n);
77
+ }
78
+ }, G = (e, t) => {
79
+ let n = Date.now(), r = R.current;
80
+ r.text = n - r.at > l ? e.key : r.text + e.key, r.at = n;
81
+ let i = r.text.toLowerCase(), a = r.text.length === 1 ? t + 1 : t;
82
+ for (let t = 0; t < M.length; t++) {
83
+ let n = M[(a + t) % M.length];
84
+ if (p(n.node).toLowerCase().startsWith(i)) {
85
+ e.preventDefault(), B(n.node.id);
86
+ return;
87
+ }
88
+ }
89
+ }, K = (e) => (t) => U(e, m(t)), q = (e) => (t) => {
90
+ t.stopPropagation(), V(e);
91
+ }, J = (e) => (t) => {
92
+ t ? P.current.set(e, t) : P.current.delete(e);
93
+ }, Y = 0, X = (r, i, a) => r.map((o, s) => {
94
+ let l = Y++, u = !!o.children, d = u && E.has(o.id), f = `${j}-${l}`, p = o.trailing == null ? void 0 : `${j}-${l}-t`;
95
+ return /* @__PURE__ */ n("li", {
96
+ ref: J(o.id),
97
+ role: "treeitem",
98
+ className: [c.item, o.className].filter(Boolean).join(" "),
99
+ "aria-level": a,
100
+ "aria-setsize": r.length,
101
+ "aria-posinset": s + 1,
102
+ "aria-expanded": u ? d : void 0,
103
+ "aria-selected": A ? O.has(o.id) : void 0,
104
+ "aria-disabled": o.disabled || void 0,
105
+ "aria-labelledby": p ? `${f} ${p}` : f,
106
+ "data-muted": o.muted ? "true" : void 0,
107
+ tabIndex: o.id === z ? 0 : -1,
108
+ onKeyDown: W({
109
+ node: o,
110
+ parentId: i,
111
+ level: a
112
+ }),
113
+ onFocus: (e) => {
114
+ e.target === e.currentTarget && I(o.id);
115
+ },
116
+ children: [/* @__PURE__ */ n("div", {
117
+ className: c.row,
118
+ onClick: K(o),
119
+ children: [
120
+ /* @__PURE__ */ t("span", {
121
+ className: c.twisty,
122
+ "aria-hidden": "true",
123
+ onClick: u ? q(o) : void 0,
124
+ children: u && /* @__PURE__ */ t(e, { open: d })
125
+ }),
126
+ o.leading != null && /* @__PURE__ */ t("span", {
127
+ className: c.leading,
128
+ children: o.leading
129
+ }),
130
+ /* @__PURE__ */ t("span", {
131
+ id: f,
132
+ className: c.label,
133
+ children: o.label
134
+ }),
135
+ p && /* @__PURE__ */ t("span", {
136
+ id: p,
137
+ className: c.trailing,
138
+ children: o.trailing
139
+ })
140
+ ]
141
+ }), d && o.children.length > 0 && /* @__PURE__ */ t("ul", {
142
+ role: "group",
143
+ className: c.group,
144
+ children: X(o.children, o.id, a + 1)
145
+ })]
146
+ }, o.id);
147
+ });
148
+ return /* @__PURE__ */ t("ul", {
149
+ ref: T,
150
+ role: "tree",
151
+ className: [c.tree, d].filter(Boolean).join(" "),
152
+ "aria-label": f,
153
+ "aria-labelledby": g,
154
+ "aria-multiselectable": b === "multiple" || void 0,
155
+ children: X(r, null, 1)
156
+ });
157
+ });
158
+ function d(e, t) {
159
+ let n = !1, r = [];
160
+ for (let i of e) {
161
+ if (t(i)) {
162
+ r.push(i);
163
+ continue;
164
+ }
165
+ let e = i.children ? d(i.children, t) : [];
166
+ if (e.length === 0) {
167
+ n = !0;
168
+ continue;
169
+ }
170
+ e !== i.children && (n = !0), r.push(e === i.children ? i : {
171
+ ...i,
172
+ children: e
173
+ });
174
+ }
175
+ return n ? r : e;
176
+ }
177
+ function f(e) {
178
+ let t = [], n = (e) => {
179
+ for (let r of e) r.children && (t.push(r.id), n(r.children));
180
+ };
181
+ return n(e), t;
182
+ }
183
+ function p(e) {
184
+ return e.textValue ?? (typeof e.label == "string" ? e.label : "");
185
+ }
186
+ function m(e) {
187
+ return {
188
+ shiftKey: e.shiftKey,
189
+ ctrlKey: e.ctrlKey,
190
+ metaKey: e.metaKey,
191
+ altKey: e.altKey
192
+ };
193
+ }
194
+ function h(e, t, n) {
195
+ let [r, i] = s(() => new Set(t));
196
+ return [a(() => e === void 0 ? void 0 : new Set(e), [e]) ?? r, (t) => {
197
+ e === void 0 && i(t), n?.(t);
198
+ }];
199
+ }
200
+ //#endregion
201
+ export { d as n, f as r, u as t };
202
+
203
+ //# sourceMappingURL=Tree-BGt6P8tI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tree-BGt6P8tI.js","names":[],"sources":["../../src/components/Tree/Tree.module.css","../../src/components/Tree/Tree.tsx"],"sourcesContent":[".tree,\n.group {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.tree {\n user-select: none;\n -webkit-user-select: none;\n width: 100%;\n}\n\n/* One twisty and one gap, so a child's twisty sits under its parent's label. */\n.group {\n padding-inline-start: var(--wzl-tree-indent, calc(var(--wzl-control-h-xs) + var(--wzl-space-2)));\n}\n\n.item {\n outline: none;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--wzl-space-2);\n padding: 0 var(--wzl-space-2) 0 0;\n height: var(--wzl-control-h);\n font-size: var(--wzl-font-size-sm);\n color: var(--wzl-fg);\n border-radius: var(--wzl-radius-sm);\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.row:hover {\n background: var(--wzl-surface);\n}\n\n.item:focus-visible > .row {\n outline: 2px solid var(--wzl-focus-ring);\n outline-offset: -2px;\n}\n\n.item[aria-selected='true'] > .row {\n background: var(--wzl-border);\n}\n\n.item[data-muted] > .row {\n color: var(--wzl-fg-subtle);\n}\n\n.item[aria-disabled='true'] > .row {\n color: var(--wzl-fg-subtle);\n cursor: not-allowed;\n}\n\n/* A leaf keeps the empty box, so labels at one level line up whether or not\n their rows are branches. */\n.twisty {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wzl-control-h-xs);\n align-self: stretch;\n color: var(--wzl-fg-muted);\n}\n\n.row:hover > .twisty {\n color: var(--wzl-fg);\n}\n\n.leading {\n flex: none;\n display: inline-flex;\n align-items: center;\n}\n\n.label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.trailing {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wzl-space-2);\n}\n\n.empty {\n padding: var(--wzl-space-6) var(--wzl-space-4);\n font-size: var(--wzl-font-size-sm);\n color: var(--wzl-fg-subtle);\n font-style: italic;\n}\n","/**\n * A hierarchy of rows that expand and collapse: a file tree, a registry\n * browser, an outline.\n *\n * **Semantics.** WAI-ARIA `tree`: each node is a `treeitem` carrying\n * `aria-level`, `aria-setsize` and `aria-posinset`; a branch carries\n * `aria-expanded` and nests its children in a `group`, which is rendered only\n * while the branch is open. `aria-selected` appears only when `selectionMode`\n * is set. A treeitem may not contain interactive content, so `leading` and\n * `trailing` are decoration — an icon, a count — and the twisty is a drawn\n * `DisclosureMark`, not a button.\n *\n * **Keyboard.** One treeitem is in the tab order: the one last focused, else\n * the first selected, else the first. Up/Down move between visible rows,\n * Home/End go to the first and last. Right opens a closed branch, then moves\n * into it; Left closes an open branch, else moves to the parent. Enter and\n * Space activate, as a click does. Typing moves to the next row whose text\n * starts with what was typed.\n *\n * **Activating** a row — click, Enter, Space — toggles it if it is a branch,\n * selects it under `selectionMode`, and calls `onAction`. Clicking the twisty\n * only toggles.\n *\n * **Filtering** is the consumer's: narrow `nodes` with `filterTree`, and pass\n * `treeBranchIds` of the result as `expandedIds` so every match shows.\n */\nimport {\n forwardRef,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport type { PressModifiers } from '../../useReorderDragList';\nimport { DisclosureMark } from '../Disclosure';\nimport s from './Tree.module.css';\n\n/** One node. A node with `children` is a branch, even when the array is empty. */\nexport interface TreeNode {\n /** Unique across the whole tree. */\n id: string;\n label: ReactNode;\n /** What type-ahead matches against. Defaults to `label` when that is a string. */\n textValue?: string;\n /** Decoration before the label — an icon. Not a control. */\n leading?: ReactNode;\n /** Decoration after the label — a count badge. Not a control. Read as part\n * of the row's accessible name. */\n trailing?: ReactNode;\n children?: readonly TreeNode[];\n /** Present but not in effect. */\n muted?: boolean;\n /** Focusable and announced, but cannot be activated, expanded or selected. */\n disabled?: boolean;\n className?: string;\n}\n\n/** Whether and how rows are selectable. */\nexport type TreeSelectionMode = 'none' | 'single' | 'multiple';\n\nexport interface TreeProps {\n nodes: readonly TreeNode[];\n /** Shown in place of the tree when `nodes` is empty. */\n empty?: ReactNode;\n className?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n\n /** Open branches, controlled. */\n expandedIds?: Iterable<string>;\n /** Open branches on first render, when uncontrolled. */\n defaultExpandedIds?: Iterable<string>;\n /** The whole set a toggle would produce. Called whether or not controlled. */\n onExpandedChange?(ids: Set<string>): void;\n\n /** Default `'none'`. `'multiple'` adds to the selection with Cmd/Ctrl and\n * extends it over visible rows with Shift. */\n selectionMode?: TreeSelectionMode;\n /** Selected rows, controlled. */\n selectedIds?: Iterable<string>;\n /** Selected rows on first render, when uncontrolled. */\n defaultSelectedIds?: Iterable<string>;\n /** The whole set an activation would produce, when it differs. */\n onSelectionChange?(ids: Set<string>): void;\n\n /** A row was activated — click, Enter or Space — with the modifiers held. */\n onAction?(id: string, mods: PressModifiers): void;\n}\n\ninterface Visible {\n node: TreeNode;\n parentId: string | null;\n level: number;\n}\n\nconst TYPEAHEAD_MS = 500;\n\nexport const Tree = forwardRef(function Tree(\n {\n nodes, empty, className,\n 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy,\n expandedIds, defaultExpandedIds, onExpandedChange,\n selectionMode = 'none', selectedIds, defaultSelectedIds, onSelectionChange,\n onAction,\n }: TreeProps,\n ref: Ref<HTMLUListElement>,\n) {\n const [expanded, setExpanded] = useControlledSet(expandedIds, defaultExpandedIds, onExpandedChange);\n const [selected, setSelected] = useControlledSet(selectedIds, defaultSelectedIds, onSelectionChange);\n const selectable = selectionMode !== 'none';\n const baseId = useId();\n\n const visible = useMemo(() => {\n const out: Visible[] = [];\n const walk = (list: readonly TreeNode[], parentId: string | null, level: number) => {\n for (const node of list) {\n out.push({ node, parentId, level });\n if (node.children && expanded.has(node.id)) walk(node.children, node.id, level + 1);\n }\n };\n walk(nodes, null, 1);\n return out;\n }, [nodes, expanded]);\n const indexOf = useMemo(() => new Map(visible.map((v, i) => [v.node.id, i])), [visible]);\n\n const items = useRef(new Map<string, HTMLLIElement>());\n const [focusId, setFocusId] = useState<string | null>(null);\n const anchor = useRef<string | null>(null);\n const typed = useRef({ text: '', at: 0 });\n\n const stopId = focusId != null && indexOf.has(focusId)\n ? focusId\n : (visible.find((v) => selectable && selected.has(v.node.id)) ?? visible[0])?.node.id;\n\n if (nodes.length === 0) {\n return <div className={[s.empty, className].filter(Boolean).join(' ')}>{empty ?? '—'}</div>;\n }\n\n const focus = (id: string | undefined) => { if (id != null) items.current.get(id)?.focus(); };\n\n const toggle = (node: TreeNode) => {\n if (!node.children || node.disabled) return;\n const next = new Set(expanded);\n if (next.has(node.id)) next.delete(node.id);\n else next.add(node.id);\n setExpanded(next);\n };\n\n const select = (id: string, mods: PressModifiers) => {\n let next: Set<string>;\n if (selectionMode === 'multiple' && mods.shiftKey && anchor.current != null && indexOf.has(anchor.current)) {\n const a = indexOf.get(anchor.current)!;\n const b = indexOf.get(id)!;\n next = new Set(visible.slice(Math.min(a, b), Math.max(a, b) + 1)\n .filter((v) => !v.node.disabled).map((v) => v.node.id));\n } else if (selectionMode === 'multiple' && (mods.metaKey || mods.ctrlKey)) {\n next = new Set(selected);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n anchor.current = id;\n } else {\n next = new Set([id]);\n anchor.current = id;\n }\n if (next.size !== selected.size || [...next].some((x) => !selected.has(x))) setSelected(next);\n };\n\n const activate = (node: TreeNode, mods: PressModifiers) => {\n if (node.disabled) return;\n toggle(node);\n if (selectable) select(node.id, mods);\n onAction?.(node.id, mods);\n };\n\n const onKeyDown = (v: Visible) => (e: KeyboardEvent<HTMLLIElement>) => {\n if (e.target !== e.currentTarget) return;\n const i = indexOf.get(v.node.id)!;\n const { node } = v;\n const open = !!node.children && expanded.has(node.id);\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n focus(visible[Math.min(i + 1, visible.length - 1)].node.id);\n return;\n case 'ArrowUp':\n e.preventDefault();\n focus(visible[Math.max(i - 1, 0)].node.id);\n return;\n case 'Home':\n e.preventDefault();\n focus(visible[0].node.id);\n return;\n case 'End':\n e.preventDefault();\n focus(visible[visible.length - 1].node.id);\n return;\n case 'ArrowRight':\n if (!node.children) return;\n e.preventDefault();\n if (!open) toggle(node);\n else focus(node.children[0]?.id);\n return;\n case 'ArrowLeft':\n e.preventDefault();\n if (open) toggle(node);\n else focus(v.parentId ?? undefined);\n return;\n case 'Enter':\n case ' ':\n e.preventDefault();\n activate(node, modsOf(e));\n return;\n default:\n if (e.key.length !== 1 || e.ctrlKey || e.metaKey || e.altKey) return;\n typeAhead(e, i);\n }\n };\n\n const typeAhead = (e: KeyboardEvent, from: number) => {\n const now = Date.now();\n const t = typed.current;\n t.text = now - t.at > TYPEAHEAD_MS ? e.key : t.text + e.key;\n t.at = now;\n const want = t.text.toLowerCase();\n // A fresh first letter looks past the current row; a longer prefix may still match it.\n const start = t.text.length === 1 ? from + 1 : from;\n for (let k = 0; k < visible.length; k++) {\n const v = visible[(start + k) % visible.length];\n if (textOf(v.node).toLowerCase().startsWith(want)) {\n e.preventDefault();\n focus(v.node.id);\n return;\n }\n }\n };\n\n const onRowClick = (node: TreeNode) => (e: MouseEvent<HTMLDivElement>) => activate(node, modsOf(e));\n\n const onTwistyClick = (node: TreeNode) => (e: MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation();\n toggle(node);\n };\n\n const itemRef = (id: string) => (el: HTMLLIElement | null) => {\n if (el) items.current.set(id, el);\n else items.current.delete(id);\n };\n\n let seq = 0;\n const renderLevel = (list: readonly TreeNode[], parentId: string | null, level: number): ReactNode =>\n list.map((node, pos) => {\n const n = seq++;\n const branch = !!node.children;\n const open = branch && expanded.has(node.id);\n const labelId = `${baseId}-${n}`;\n const trailingId = node.trailing != null ? `${baseId}-${n}-t` : undefined;\n return (\n <li\n key={node.id}\n ref={itemRef(node.id)}\n role=\"treeitem\"\n className={[s.item, node.className].filter(Boolean).join(' ')}\n aria-level={level}\n aria-setsize={list.length}\n aria-posinset={pos + 1}\n aria-expanded={branch ? open : undefined}\n aria-selected={selectable ? selected.has(node.id) : undefined}\n aria-disabled={node.disabled || undefined}\n aria-labelledby={trailingId ? `${labelId} ${trailingId}` : labelId}\n data-muted={node.muted ? 'true' : undefined}\n tabIndex={node.id === stopId ? 0 : -1}\n onKeyDown={onKeyDown({ node, parentId, level })}\n onFocus={(e) => { if (e.target === e.currentTarget) setFocusId(node.id); }}\n >\n <div className={s.row} onClick={onRowClick(node)}>\n <span className={s.twisty} aria-hidden=\"true\" onClick={branch ? onTwistyClick(node) : undefined}>\n {branch && <DisclosureMark open={open} />}\n </span>\n {node.leading != null && <span className={s.leading}>{node.leading}</span>}\n <span id={labelId} className={s.label}>{node.label}</span>\n {trailingId && <span id={trailingId} className={s.trailing}>{node.trailing}</span>}\n </div>\n {open && node.children!.length > 0 && (\n <ul role=\"group\" className={s.group}>\n {renderLevel(node.children!, node.id, level + 1)}\n </ul>\n )}\n </li>\n );\n });\n\n return (\n <ul\n ref={ref}\n role=\"tree\"\n className={[s.tree, className].filter(Boolean).join(' ')}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-multiselectable={selectionMode === 'multiple' || undefined}\n >\n {renderLevel(nodes, null, 1)}\n </ul>\n );\n});\n\n/**\n * `nodes` narrowed to those `match` accepts, plus their ancestors. A matching\n * node keeps its whole subtree; a branch with no match inside it is dropped.\n * Returns `nodes` itself when nothing is dropped.\n */\nexport function filterTree(\n nodes: readonly TreeNode[],\n match: (node: TreeNode) => boolean,\n): readonly TreeNode[] {\n let changed = false;\n const out: TreeNode[] = [];\n for (const node of nodes) {\n if (match(node)) {\n out.push(node);\n continue;\n }\n const kids = node.children ? filterTree(node.children, match) : [];\n if (kids.length === 0) {\n changed = true;\n continue;\n }\n if (kids !== node.children) changed = true;\n out.push(kids === node.children ? node : { ...node, children: kids });\n }\n return changed ? out : nodes;\n}\n\n/** Every branch id in `nodes`, depth first — `expandedIds` for a tree with everything open. */\nexport function treeBranchIds(nodes: readonly TreeNode[]): string[] {\n const out: string[] = [];\n const walk = (list: readonly TreeNode[]) => {\n for (const node of list) {\n if (!node.children) continue;\n out.push(node.id);\n walk(node.children);\n }\n };\n walk(nodes);\n return out;\n}\n\nfunction textOf(node: TreeNode): string {\n return node.textValue ?? (typeof node.label === 'string' ? node.label : '');\n}\n\nfunction modsOf(e: { shiftKey: boolean; ctrlKey: boolean; metaKey: boolean; altKey: boolean }): PressModifiers {\n return { shiftKey: e.shiftKey, ctrlKey: e.ctrlKey, metaKey: e.metaKey, altKey: e.altKey };\n}\n\nfunction useControlledSet(\n value: Iterable<string> | undefined,\n initial: Iterable<string> | undefined,\n onChange: ((ids: Set<string>) => void) | undefined,\n): [ReadonlySet<string>, (next: Set<string>) => void] {\n const [own, setOwn] = useState<ReadonlySet<string>>(() => new Set(initial));\n const controlled = useMemo(() => (value === undefined ? undefined : new Set(value)), [value]);\n const set = (next: Set<string>) => {\n if (value === undefined) setOwn(next);\n onChange?.(next);\n };\n return [controlled ?? own, set];\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./dlog-CMYiRF3Q.js";
2
- import { c as t, s as n, t as r } from "./Plot2D-Czvyt_vG.js";
3
- import { t as i } from "./snap-B0WQwetQ.js";
4
- import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { cubicBezierEasing as c, openPointerSession as l, resolveEasing as u } from "@weasel-js/core";
2
+ import { c as t, s as n, t as r } from "./Plot2D-lyO7waPQ.js";
3
+ import { t as i } from "./snap-DC4Km8xG.js";
4
+ import { cubicBezierEasing as a, openPointerSession as o, resolveEasing as s } from "@weasel-js/core";
5
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
6
6
  import { useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
7
7
  import { tokenPx as g } from "@weasel-js/theme";
8
8
  //#region src/components/CurveEditor/hitTest.ts
@@ -85,7 +85,7 @@ function w(e) {
85
85
  };
86
86
  }
87
87
  function T(i) {
88
- let { layers: a, onLayerChange: c, onLayerCommit: u, width: g, height: _, xRange: v = [0, 1], yRange: y = [0, 1], grid: b, axes: x, xTicks: T, yTicks: E, className: D, style: O, children: k } = i, A = i.history !== !1, j = p(() => ({
88
+ let { layers: a, onLayerChange: s, onLayerCommit: c, width: g, height: _, xRange: v = [0, 1], yRange: y = [0, 1], grid: b, axes: x, xTicks: T, yTicks: E, className: D, style: O, children: k } = i, A = i.history !== !1, j = p(() => ({
89
89
  xMin: v[0],
90
90
  xMax: v[1],
91
91
  yMin: y[0],
@@ -116,9 +116,9 @@ function T(i) {
116
116
  let t = N.current;
117
117
  for (let n of t) {
118
118
  let t = e.get(n.layer.id);
119
- t !== void 0 && t !== n.state && c(n.layer.id, t);
119
+ t !== void 0 && t !== n.state && s(n.layer.id, t);
120
120
  }
121
- }, [c]), G = d(() => {
121
+ }, [s]), G = d(() => {
122
122
  if (!A) return;
123
123
  let e = V.current;
124
124
  if (e.length === 0) return;
@@ -151,7 +151,7 @@ function T(i) {
151
151
  let r = n.clientToModel(e), i = Q(t.layerId);
152
152
  if (i === void 0) return;
153
153
  let a = L(w(e)), o = t.gesture.onMove(i, r, e, a);
154
- o !== i && c(t.layerId, o);
154
+ o !== i && s(t.layerId, o);
155
155
  }, J.current = (e) => {
156
156
  let t = R.current;
157
157
  if (!t) return;
@@ -161,7 +161,7 @@ function T(i) {
161
161
  return;
162
162
  }
163
163
  let r = L(w(e)), i = t.gesture.onCommit ? t.gesture.onCommit(n, r) : n;
164
- i !== n && c(t.layerId, i), A && (V.current.push(t.startStates), H.current = []), u && u(t.layerId, i, t.startSelfState), Z();
164
+ i !== n && s(t.layerId, i), A && (V.current.push(t.startStates), H.current = []), c && c(t.layerId, i, t.startSelfState), Z();
165
165
  }, Y.current = () => {
166
166
  let e = R.current;
167
167
  if (!e) return;
@@ -171,7 +171,7 @@ function T(i) {
171
171
  return;
172
172
  }
173
173
  let n = L(C), r = e.gesture.onCancel ? e.gesture.onCancel(t, n) : e.startSelfState;
174
- r !== t && c(e.layerId, r), Z();
174
+ r !== t && s(e.layerId, r), Z();
175
175
  };
176
176
  let $ = d((e, t, n) => {
177
177
  let r = U();
@@ -180,7 +180,7 @@ function T(i) {
180
180
  gesture: n,
181
181
  startStates: r,
182
182
  startSelfState: r.get(e)
183
- }, B(e), X.current = l(t.currentTarget, t, {
183
+ }, B(e), X.current = o(t.currentTarget, t, {
184
184
  onMove: (e) => q.current(e),
185
185
  onEnd: (e) => J.current(e),
186
186
  onCancel: () => Y.current()
@@ -195,52 +195,52 @@ function T(i) {
195
195
  });
196
196
  let o = U();
197
197
  for (let e = i.length - 1; e >= 0; e--) {
198
- let s = i[e], l = s.layer.hitTest?.(s.state, n.plot, r);
199
- if (!l) continue;
200
- let d = s.state, f, p = s.layer.onPointerDown?.(d, l, a, r, {
198
+ let l = i[e], u = l.layer.hitTest?.(l.state, n.plot, r);
199
+ if (!u) continue;
200
+ let d = l.state, f, p = l.layer.onPointerDown?.(d, u, a, r, {
201
201
  plot: n.plot,
202
202
  model: n.model,
203
203
  commit(e) {
204
- f = e, c(s.layer.id, e);
204
+ f = e, s(l.layer.id, e);
205
205
  }
206
206
  });
207
207
  if (t.stopPropagation(), p) {
208
- $(s.layer.id, t, p);
208
+ $(l.layer.id, t, p);
209
209
  return;
210
210
  }
211
- f !== void 0 && (A && (V.current.push(o), H.current = []), u?.(s.layer.id, f, d));
211
+ f !== void 0 && (A && (V.current.push(o), H.current = []), c?.(l.layer.id, f, d));
212
212
  return;
213
213
  }
214
- let s = null;
214
+ let l = null;
215
215
  for (let e = i.length - 1; e >= 0; e--) {
216
- let l = i[e];
217
- if (!l.layer.onEmptyPointerDown) continue;
218
- let u = l.state, d, f = l.layer.onEmptyPointerDown(u, n.model, a, r, {
216
+ let c = i[e];
217
+ if (!c.layer.onEmptyPointerDown) continue;
218
+ let u = c.state, d, f = c.layer.onEmptyPointerDown(u, n.model, a, r, {
219
219
  plot: n.plot,
220
220
  model: n.model,
221
221
  commit(e) {
222
- d = e, c(l.layer.id, e);
222
+ d = e, s(c.layer.id, e);
223
223
  }
224
224
  });
225
225
  if (f) {
226
- $(l.layer.id, t, f), d !== void 0 && R.current !== null && (R.current.startStates = o, R.current.startSelfState = o.get(l.layer.id));
226
+ $(c.layer.id, t, f), d !== void 0 && R.current !== null && (R.current.startStates = o, R.current.startSelfState = o.get(c.layer.id));
227
227
  return;
228
228
  }
229
229
  if (d !== void 0) {
230
- s = {
231
- id: l.layer.id,
230
+ l = {
231
+ id: c.layer.id,
232
232
  next: d,
233
233
  prev: u
234
234
  };
235
235
  break;
236
236
  }
237
237
  }
238
- s && (A && (V.current.push(o), H.current = []), u?.(s.id, s.next, s.prev));
238
+ l && (A && (V.current.push(o), H.current = []), c?.(l.id, l.next, l.prev));
239
239
  }, [
240
240
  L,
241
241
  $,
242
+ s,
242
243
  c,
243
- u,
244
244
  A,
245
245
  U
246
246
  ]), te = d((e) => {
@@ -261,8 +261,8 @@ function T(i) {
261
261
  if (!i.layer.onKeyDown) continue;
262
262
  let a = U(), o;
263
263
  if (i.layer.onKeyDown(i.state, e.nativeEvent, t, { commit(e) {
264
- o = e, c(i.layer.id, e);
265
- } }), o !== void 0 && (A && (V.current.push(a), H.current = []), u?.(i.layer.id, o, i.state)), e.nativeEvent.defaultPrevented) return;
264
+ o = e, s(i.layer.id, e);
265
+ } }), o !== void 0 && (A && (V.current.push(a), H.current = []), c?.(i.layer.id, o, i.state)), e.nativeEvent.defaultPrevented) return;
266
266
  }
267
267
  }, [
268
268
  A,
@@ -270,8 +270,8 @@ function T(i) {
270
270
  K,
271
271
  L,
272
272
  U,
273
- c,
274
- u
273
+ s,
274
+ c
275
275
  ]);
276
276
  f(() => () => {
277
277
  X.current?.cancel();
@@ -282,7 +282,7 @@ function T(i) {
282
282
  toPlot: (e) => n(e, j, M),
283
283
  toModel: (e) => t(e, j, M)
284
284
  }), [j, M]);
285
- return /* @__PURE__ */ s(r, {
285
+ return /* @__PURE__ */ u(r, {
286
286
  ref: I,
287
287
  className: [S.root, D].filter(Boolean).join(" "),
288
288
  style: O,
@@ -310,7 +310,7 @@ function T(i) {
310
310
  },
311
311
  isActive: z === e.layer.id
312
312
  };
313
- return /* @__PURE__ */ o("g", {
313
+ return /* @__PURE__ */ l("g", {
314
314
  "data-layer-id": e.layer.id,
315
315
  children: e.layer.render(e.state, t)
316
316
  }, e.layer.id);
@@ -369,10 +369,10 @@ function R(e) {
369
369
  };
370
370
  }
371
371
  function z(e = {}) {
372
- let t = e.id ?? "keyframes", n = e.label ?? "Curve", r = e.formatX ?? ((e) => String(Math.round(e))), l = e.snapRadiusPx ?? 6;
372
+ let t = e.id ?? "keyframes", n = e.label ?? "Curve", r = e.formatX ?? ((e) => String(Math.round(e))), o = e.snapRadiusPx ?? 6;
373
373
  function d(e, t, n) {
374
374
  let r = e.drag;
375
- return r?.kind === "handle" && r.segment === n ? c(...r.bezier) : u(t[n].easing);
375
+ return r?.kind === "handle" && r.segment === n ? a(...r.bezier) : s(t[n].easing);
376
376
  }
377
377
  function f(e, t, n) {
378
378
  let r = [];
@@ -404,17 +404,17 @@ function z(e = {}) {
404
404
  }
405
405
  let h = (e) => e.map((e, t) => `${t === 0 ? "M" : "L"}${e.x.toFixed(2)},${e.y.toFixed(2)}`).join("");
406
406
  function g(e, t) {
407
- let i = e.drag?.kind === "key" ? R(e).keys : e.keys, c = f(e, i, t), l = c.flatMap((e, t) => t === 0 ? e : e.slice(1)), u = e.selectedSegment, d = p(e), g = e.drag?.kind === "key" ? e.drag.index : null;
408
- return /* @__PURE__ */ s(a, { children: [
409
- u !== null && u >= 1 && u < i.length ? (() => {
407
+ let i = e.drag?.kind === "key" ? R(e).keys : e.keys, a = f(e, i, t), o = a.flatMap((e, t) => t === 0 ? e : e.slice(1)), s = e.selectedSegment, d = p(e), g = e.drag?.kind === "key" ? e.drag.index : null;
408
+ return /* @__PURE__ */ u(c, { children: [
409
+ s !== null && s >= 1 && s < i.length ? (() => {
410
410
  let e = t.toPlot({
411
- x: i[u - 1].t,
411
+ x: i[s - 1].t,
412
412
  y: 0
413
413
  }).x, n = t.toPlot({
414
- x: i[u].t,
414
+ x: i[s].t,
415
415
  y: 0
416
416
  }).x;
417
- return /* @__PURE__ */ o("rect", {
417
+ return /* @__PURE__ */ l("rect", {
418
418
  className: S.segmentBand,
419
419
  x: Math.min(e, n),
420
420
  y: 0,
@@ -422,44 +422,44 @@ function z(e = {}) {
422
422
  height: t.plotSize.height
423
423
  });
424
424
  })() : null,
425
- l.length > 1 ? /* @__PURE__ */ o("path", {
425
+ o.length > 1 ? /* @__PURE__ */ l("path", {
426
426
  "data-curve-element": "curve",
427
427
  className: S.curve,
428
- d: h(l)
428
+ d: h(o)
429
429
  }) : null,
430
- c.map((e, t) => /* @__PURE__ */ o("path", {
430
+ a.map((e, t) => /* @__PURE__ */ l("path", {
431
431
  className: S.segmentTarget,
432
432
  d: h(e),
433
433
  role: "button",
434
434
  tabIndex: 0,
435
435
  "aria-label": `${n} segment into ${r(i[t + 1].t)}`,
436
- "aria-current": u === t + 1 ? "true" : void 0,
436
+ "aria-current": s === t + 1 ? "true" : void 0,
437
437
  "data-segment-index": t + 1
438
438
  }, `seg-${t + 1}`)),
439
439
  d ? (() => {
440
- let [r, i] = m(e, d, t), c = t.toPlot({
441
- x: e.keys[u - 1].t,
442
- y: e.keys[u - 1].value
443
- }), l = t.toPlot({
444
- x: e.keys[u].t,
445
- y: e.keys[u].value
440
+ let [r, i] = m(e, d, t), a = t.toPlot({
441
+ x: e.keys[s - 1].t,
442
+ y: e.keys[s - 1].value
443
+ }), o = t.toPlot({
444
+ x: e.keys[s].t,
445
+ y: e.keys[s].value
446
446
  });
447
- return /* @__PURE__ */ s(a, { children: [
448
- /* @__PURE__ */ o("line", {
447
+ return /* @__PURE__ */ u(c, { children: [
448
+ /* @__PURE__ */ l("line", {
449
449
  className: S.handleStem,
450
- x1: c.x,
451
- y1: c.y,
450
+ x1: a.x,
451
+ y1: a.y,
452
452
  x2: r.x,
453
453
  y2: r.y
454
454
  }),
455
- /* @__PURE__ */ o("line", {
455
+ /* @__PURE__ */ l("line", {
456
456
  className: S.handleStem,
457
- x1: l.x,
458
- y1: l.y,
457
+ x1: o.x,
458
+ y1: o.y,
459
459
  x2: i.x,
460
460
  y2: i.y
461
461
  }),
462
- [r, i].map((e, t) => /* @__PURE__ */ o("circle", {
462
+ [r, i].map((e, t) => /* @__PURE__ */ l("circle", {
463
463
  className: S.handle,
464
464
  cx: e.x,
465
465
  cy: e.y,
@@ -472,17 +472,17 @@ function z(e = {}) {
472
472
  ] });
473
473
  })() : null,
474
474
  e.keys.map((i, a) => {
475
- let s = t.toPlot({
475
+ let o = t.toPlot({
476
476
  x: i.t,
477
477
  y: i.value
478
478
  });
479
- return /* @__PURE__ */ o("rect", {
479
+ return /* @__PURE__ */ l("rect", {
480
480
  className: S.keyframe,
481
- x: s.x - A,
482
- y: s.y - A,
481
+ x: o.x - A,
482
+ y: o.y - A,
483
483
  width: A * 2,
484
484
  height: A * 2,
485
- transform: `rotate(45 ${s.x} ${s.y})`,
485
+ transform: `rotate(45 ${o.x} ${o.y})`,
486
486
  role: "button",
487
487
  tabIndex: 0,
488
488
  "aria-label": `${n} key at ${r(i.t)}`,
@@ -496,7 +496,7 @@ function z(e = {}) {
496
496
  x: e.drag.t,
497
497
  y: e.drag.value
498
498
  });
499
- return /* @__PURE__ */ o("rect", {
499
+ return /* @__PURE__ */ l("rect", {
500
500
  "aria-hidden": "true",
501
501
  className: S.keyframeGhost,
502
502
  x: n.x - A,
@@ -534,18 +534,18 @@ function z(e = {}) {
534
534
  }
535
535
  function b(t) {
536
536
  return {
537
- onMove(n, r, a, o) {
538
- let s = F(r.x, e.xClamp);
537
+ onMove(n, r, a, s) {
538
+ let c = F(r.x, e.xClamp);
539
539
  if (e.snapX && !a.altKey) {
540
- let t = (o.modelRange.xMax - o.modelRange.xMin) / o.plotSize.width;
541
- s = F(i(s, e.snapX, Math.abs(t) * l), e.xClamp);
540
+ let t = (s.modelRange.xMax - s.modelRange.xMin) / s.plotSize.width;
541
+ c = F(i(c, e.snapX, Math.abs(t) * o), e.xClamp);
542
542
  }
543
543
  return {
544
544
  ...n,
545
545
  drag: {
546
546
  kind: "key",
547
547
  index: t,
548
- t: s,
548
+ t: c,
549
549
  value: F(r.y, e.yClamp)
550
550
  }
551
551
  };
@@ -696,4 +696,4 @@ function z(e = {}) {
696
696
  //#endregion
697
697
  export { S as a, b as c, T as i, _ as l, z as n, y as o, P as r, x as s, R as t, v as u };
698
698
 
699
- //# sourceMappingURL=createKeyframeLayer-7j7ukrSx.js.map
699
+ //# sourceMappingURL=createKeyframeLayer-BzDRCrrh.js.map