@weasel-js/ui 1.6.1 → 1.7.1

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 (517) hide show
  1. package/dist/chunks/ActionBar-xA73vzzF.js +64 -0
  2. package/dist/chunks/ActionBar-xA73vzzF.js.map +1 -0
  3. package/dist/chunks/Badge-CTc9Lkwn.js +14 -0
  4. package/dist/chunks/Badge-CTc9Lkwn.js.map +1 -0
  5. package/dist/chunks/{Badge-CyAIZSDo.js → Badge-jYQjrTKc.js} +506 -486
  6. package/dist/chunks/Badge-jYQjrTKc.js.map +1 -0
  7. package/dist/chunks/BandEditor-Dd0egAgE.js +292 -0
  8. package/dist/chunks/BandEditor-Dd0egAgE.js.map +1 -0
  9. package/dist/chunks/{Button-BIdXHQOx.js → Button-XB-T75YL.js} +2 -2
  10. package/dist/chunks/{Button-BIdXHQOx.js.map → Button-XB-T75YL.js.map} +1 -1
  11. package/dist/chunks/{ButtonBar-D5Vi0aj_.js → ButtonBar-CIMKPPRS.js} +7 -9
  12. package/dist/chunks/{ButtonBar-D5Vi0aj_.js.map → ButtonBar-CIMKPPRS.js.map} +1 -1
  13. package/dist/chunks/Callout-BUn0dP_S.js +115 -0
  14. package/dist/chunks/Callout-BUn0dP_S.js.map +1 -0
  15. package/dist/chunks/Checkbox-DFn-x0JO.js +37 -0
  16. package/dist/chunks/Checkbox-DFn-x0JO.js.map +1 -0
  17. package/dist/chunks/CloseButton-BmNmRVtb.js +26 -0
  18. package/dist/chunks/CloseButton-BmNmRVtb.js.map +1 -0
  19. package/dist/chunks/ColorField-BLs9fbeq.js +90 -0
  20. package/dist/chunks/ColorField-BLs9fbeq.js.map +1 -0
  21. package/dist/chunks/{ColorModeControl-ke5PXbBa.js → ColorModeControl-DaVJ-SyX.js} +3 -3
  22. package/dist/chunks/{ColorModeControl-ke5PXbBa.js.map → ColorModeControl-DaVJ-SyX.js.map} +1 -1
  23. package/dist/chunks/ComboBox-CuTLRmUg.js +138 -0
  24. package/dist/chunks/ComboBox-CuTLRmUg.js.map +1 -0
  25. package/dist/chunks/{CurveEditor-BDJXjEvK.js → CurveEditor-jVBEqqdv.js} +90 -87
  26. package/dist/chunks/CurveEditor-jVBEqqdv.js.map +1 -0
  27. package/dist/chunks/{DataGrid-D-dZj1BD.js → DataGrid-BklgBqS0.js} +17 -17
  28. package/dist/chunks/DataGrid-BklgBqS0.js.map +1 -0
  29. package/dist/chunks/DetailList-DFtqdOJj.js +52 -0
  30. package/dist/chunks/DetailList-DFtqdOJj.js.map +1 -0
  31. package/dist/chunks/{DetentSlider-CL8TlX3S.js → DetentSlider-Bh7EpMqT.js} +2 -2
  32. package/dist/chunks/{DetentSlider-CL8TlX3S.js.map → DetentSlider-Bh7EpMqT.js.map} +1 -1
  33. package/dist/chunks/Dialog-DKfsk5VN.js +63 -0
  34. package/dist/chunks/Dialog-DKfsk5VN.js.map +1 -0
  35. package/dist/chunks/{Disclosure-0G0uh2fa.js → Disclosure-Ch2KxYuB.js} +7 -7
  36. package/dist/chunks/Disclosure-Ch2KxYuB.js.map +1 -0
  37. package/dist/chunks/{DragGhost-B5_hb9W9.js → DragGhost-BeYDJyLZ.js} +2 -2
  38. package/dist/chunks/{DragGhost-B5_hb9W9.js.map → DragGhost-BeYDJyLZ.js.map} +1 -1
  39. package/dist/chunks/{DragHandleGlyph-Dr7Fgo0I.js → DragGrip-AoIZXfZb.js} +2 -2
  40. package/dist/chunks/DragGrip-AoIZXfZb.js.map +1 -0
  41. package/dist/chunks/FallthroughDiagram-C7BUe8eU.js +284 -0
  42. package/dist/chunks/FallthroughDiagram-C7BUe8eU.js.map +1 -0
  43. package/dist/chunks/Field-DsBlnFKf.js +25 -0
  44. package/dist/chunks/Field-DsBlnFKf.js.map +1 -0
  45. package/dist/chunks/FillStrokeSwatch-CgsYQgew.js +112 -0
  46. package/dist/chunks/FillStrokeSwatch-CgsYQgew.js.map +1 -0
  47. package/dist/chunks/{FontFamilySelect-DXlMKWfK.js → FontFamilySelect-CGJ5OIOy.js} +2 -2
  48. package/dist/chunks/FontFamilySelect-CGJ5OIOy.js.map +1 -0
  49. package/dist/chunks/FontWeightSelect-RbcXYJPS.js +49 -0
  50. package/dist/chunks/FontWeightSelect-RbcXYJPS.js.map +1 -0
  51. package/dist/chunks/GestureRoute-BXESrHI0.js +82 -0
  52. package/dist/chunks/GestureRoute-BXESrHI0.js.map +1 -0
  53. package/dist/chunks/GradientEditor-DypXzMc-.js +325 -0
  54. package/dist/chunks/GradientEditor-DypXzMc-.js.map +1 -0
  55. package/dist/chunks/{Icon-Cgzy8VgC.js → Icon--B1ME-6c.js} +33 -1
  56. package/dist/chunks/Icon--B1ME-6c.js.map +1 -0
  57. package/dist/chunks/{InlineRange-eOj6JpJl.js → InlineRange-P01ABSzo.js} +3 -3
  58. package/dist/chunks/InlineRange-P01ABSzo.js.map +1 -0
  59. package/dist/chunks/{Input-CHmkfYaD.js → Input-CzwvCZs_.js} +10 -15
  60. package/dist/chunks/Input-CzwvCZs_.js.map +1 -0
  61. package/dist/chunks/{ItemList-Cm-HUWCi.js → ItemList-CRu9y7hL.js} +2 -2
  62. package/dist/chunks/ItemList-CRu9y7hL.js.map +1 -0
  63. package/dist/chunks/{Jog-DESxZ44P.js → Jog-DfNUYejm.js} +8 -8
  64. package/dist/chunks/Jog-DfNUYejm.js.map +1 -0
  65. package/dist/chunks/{Keycaps-C0H_v2gO.js → Keycaps-C-FJyG8k.js} +14 -14
  66. package/dist/chunks/Keycaps-C-FJyG8k.js.map +1 -0
  67. package/dist/chunks/{LayerList-nz-QYvTF.js → LayerList-CsDqwYh-.js} +105 -111
  68. package/dist/chunks/LayerList-CsDqwYh-.js.map +1 -0
  69. package/dist/chunks/ListEditor-BnGzqERm.js +72 -0
  70. package/dist/chunks/ListEditor-BnGzqERm.js.map +1 -0
  71. package/dist/chunks/MenuButton-L9f5vido.js +75 -0
  72. package/dist/chunks/MenuButton-L9f5vido.js.map +1 -0
  73. package/dist/chunks/MeshEditor-GbqqiPk8.js +199 -0
  74. package/dist/chunks/MeshEditor-GbqqiPk8.js.map +1 -0
  75. package/dist/chunks/NumberField-DLXXgh48.js +209 -0
  76. package/dist/chunks/NumberField-DLXXgh48.js.map +1 -0
  77. package/dist/chunks/{OptionsBar-DbzAgIln.js → OptionsBar-DeTAjVb7.js} +6 -8
  78. package/dist/chunks/{OptionsBar-DbzAgIln.js.map → OptionsBar-DeTAjVb7.js.map} +1 -1
  79. package/dist/chunks/PaintField-C0hoXc0Y.js +63 -0
  80. package/dist/chunks/PaintField-C0hoXc0Y.js.map +1 -0
  81. package/dist/chunks/PaintInput-jQRxM95Y.js +132 -0
  82. package/dist/chunks/PaintInput-jQRxM95Y.js.map +1 -0
  83. package/dist/chunks/PatternPicker-CaMYXzhF.js +135 -0
  84. package/dist/chunks/PatternPicker-CaMYXzhF.js.map +1 -0
  85. package/dist/chunks/{Plot2D-CTXHkL5p.js → Plot2D-BHNbgCAl.js} +7 -7
  86. package/dist/chunks/Plot2D-BHNbgCAl.js.map +1 -0
  87. package/dist/chunks/{PointPlotter-Bxo6haKe.js → PointPlotter-BZ_vk6gV.js} +2 -2
  88. package/dist/chunks/{PointPlotter-Bxo6haKe.js.map → PointPlotter-BZ_vk6gV.js.map} +1 -1
  89. package/dist/chunks/{Powerline-ExO5GwEr.js → Powerline-6wIFmDik.js} +2 -2
  90. package/dist/chunks/{Powerline-ExO5GwEr.js.map → Powerline-6wIFmDik.js.map} +1 -1
  91. package/dist/chunks/{Prefs-DpqFKiwY.js → Prefs-CkyldX-e.js} +116 -91
  92. package/dist/chunks/Prefs-CkyldX-e.js.map +1 -0
  93. package/dist/chunks/{Properties-D_KzDN9K.js → Properties-D15c8NP-.js} +53 -47
  94. package/dist/chunks/Properties-D15c8NP-.js.map +1 -0
  95. package/dist/chunks/PropertyField-CV_Gw57S.js +686 -0
  96. package/dist/chunks/PropertyField-CV_Gw57S.js.map +1 -0
  97. package/dist/chunks/{RadioGroup-Bh4-12e-.js → RadioGroup-4dbzqvGy.js} +2 -2
  98. package/dist/chunks/{RadioGroup-Bh4-12e-.js.map → RadioGroup-4dbzqvGy.js.map} +1 -1
  99. package/dist/chunks/{RangeSlider-BKRRTPTZ.js → RangeSlider-BxokZViJ.js} +8 -8
  100. package/dist/chunks/RangeSlider-BxokZViJ.js.map +1 -0
  101. package/dist/chunks/RecentColorsProvider-DHcfk25u.js +84 -0
  102. package/dist/chunks/RecentColorsProvider-DHcfk25u.js.map +1 -0
  103. package/dist/chunks/ResizeHandle-CbAgCQOt.js +81 -0
  104. package/dist/chunks/ResizeHandle-CbAgCQOt.js.map +1 -0
  105. package/dist/chunks/Select-BppLsJTz.js +236 -0
  106. package/dist/chunks/Select-BppLsJTz.js.map +1 -0
  107. package/dist/chunks/SelectionPanel-Cm1qu-ZX.js +107 -0
  108. package/dist/chunks/SelectionPanel-Cm1qu-ZX.js.map +1 -0
  109. package/dist/chunks/SidebarPanel-AXQ0jRDx.js +53 -0
  110. package/dist/chunks/SidebarPanel-AXQ0jRDx.js.map +1 -0
  111. package/dist/chunks/Slider-Cl5RCeZ7.js +389 -0
  112. package/dist/chunks/Slider-Cl5RCeZ7.js.map +1 -0
  113. package/dist/chunks/{StatusBar-DzoPDY4k.js → StatusBar-Ca9Dvhhq.js} +6 -6
  114. package/dist/chunks/StatusBar-Ca9Dvhhq.js.map +1 -0
  115. package/dist/chunks/SwatchGrid-9ZPiDmxd.js +78 -0
  116. package/dist/chunks/SwatchGrid-9ZPiDmxd.js.map +1 -0
  117. package/dist/chunks/SwatchStrip-Cw0l8Om7.js +577 -0
  118. package/dist/chunks/SwatchStrip-Cw0l8Om7.js.map +1 -0
  119. package/dist/chunks/ThemeSwitcher-DiBmMh_B.js +38 -0
  120. package/dist/chunks/ThemeSwitcher-DiBmMh_B.js.map +1 -0
  121. package/dist/chunks/{Timeline--58F7MED.js → Timeline-pqnYk5cV.js} +296 -294
  122. package/dist/chunks/Timeline-pqnYk5cV.js.map +1 -0
  123. package/dist/chunks/Toast-C3ozq11V.js +170 -0
  124. package/dist/chunks/Toast-C3ozq11V.js.map +1 -0
  125. package/dist/chunks/{ToggleBar-DTjGeS0Q.js → ToggleBar-Z2jZiguF.js} +13 -15
  126. package/dist/chunks/ToggleBar-Z2jZiguF.js.map +1 -0
  127. package/dist/chunks/{TokenPanel-CMq7uydV.js → TokenPanel-DAkL6vwQ.js} +33 -33
  128. package/dist/chunks/TokenPanel-DAkL6vwQ.js.map +1 -0
  129. package/dist/chunks/{ToolButton-CR4sQlxF.js → ToolButton-BURp4YIO.js} +12 -14
  130. package/dist/chunks/ToolButton-BURp4YIO.js.map +1 -0
  131. package/dist/chunks/{ToolOptionsBar-CtzTlaN2.js → ToolOptionsBar-COsTJ1cu.js} +9 -7
  132. package/dist/chunks/ToolOptionsBar-COsTJ1cu.js.map +1 -0
  133. package/dist/chunks/{ToolPalette-CKG9qY6P.js → ToolPalette-DKDFWOX-.js} +8 -10
  134. package/dist/chunks/ToolPalette-DKDFWOX-.js.map +1 -0
  135. package/dist/chunks/{Tooltip-Clg2mhSt.js → Tooltip-C6eFCYxw.js} +2 -2
  136. package/dist/chunks/{Tooltip-Clg2mhSt.js.map → Tooltip-C6eFCYxw.js.map} +1 -1
  137. package/dist/chunks/{Tree-DVOtc9R5.js → Tree-Cc8lIzgM.js} +2 -2
  138. package/dist/chunks/Tree-Cc8lIzgM.js.map +1 -0
  139. package/dist/chunks/checkbox.module-DLQV9tMX.js +5 -0
  140. package/dist/chunks/checkbox.module-DLQV9tMX.js.map +1 -0
  141. package/dist/chunks/{createKeyframeLayer-Czj6Y235.js → createKeyframeLayer-BTa4LyJE.js} +208 -223
  142. package/dist/chunks/createKeyframeLayer-BTa4LyJE.js.map +1 -0
  143. package/dist/chunks/field.module-Bh7BTKMh.js +15 -0
  144. package/dist/chunks/field.module-Bh7BTKMh.js.map +1 -0
  145. package/dist/chunks/formatShortcut-DRQrVThu.js.map +1 -1
  146. package/dist/chunks/handles-CqVANLtu.js +17 -0
  147. package/dist/chunks/handles-CqVANLtu.js.map +1 -0
  148. package/dist/chunks/{icons-Dk8SRS8g.js → icons-Dr2-r30x.js} +2 -2
  149. package/dist/chunks/icons-Dr2-r30x.js.map +1 -0
  150. package/dist/chunks/listbox.module-BcdVJMbm.js +8 -0
  151. package/dist/chunks/listbox.module-BcdVJMbm.js.map +1 -0
  152. package/dist/chunks/model-B1-gMBIW.js +386 -0
  153. package/dist/chunks/model-B1-gMBIW.js.map +1 -0
  154. package/dist/chunks/{portalHost-yTOVuCej.js → portalHost-CE70wLzo.js} +10 -6
  155. package/dist/chunks/portalHost-CE70wLzo.js.map +1 -0
  156. package/dist/chunks/prefField-BE_Ytr2H.js +229 -0
  157. package/dist/chunks/prefField-BE_Ytr2H.js.map +1 -0
  158. package/dist/chunks/{segmentTooltip-CStYHKzd.js → segmentTooltip-CGxCOWNz.js} +2 -2
  159. package/dist/chunks/{segmentTooltip-CStYHKzd.js.map → segmentTooltip-CGxCOWNz.js.map} +1 -1
  160. package/dist/chunks/segmentedControl.module-BzGXUL5G.js +11 -0
  161. package/dist/chunks/segmentedControl.module-BzGXUL5G.js.map +1 -0
  162. package/dist/chunks/useReorderDragList-CStYKjHl.js +133 -0
  163. package/dist/chunks/useReorderDragList-CStYKjHl.js.map +1 -0
  164. package/dist/chunks/useRovingTabIndex-D7u22Ia_.js +91 -0
  165. package/dist/chunks/useRovingTabIndex-D7u22Ia_.js.map +1 -0
  166. package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
  167. package/dist/components/ActionBar/index.js +1 -1
  168. package/dist/components/Badge/bases/ChamferedRect.d.ts.map +1 -1
  169. package/dist/components/Badge/bases/Powerline.d.ts.map +1 -1
  170. package/dist/components/Badge/bases/edgeProfiles.d.ts +31 -4
  171. package/dist/components/Badge/bases/edgeProfiles.d.ts.map +1 -1
  172. package/dist/components/Badge/index.d.ts +1 -0
  173. package/dist/components/Badge/index.d.ts.map +1 -1
  174. package/dist/components/Badge/index.js +3 -2
  175. package/dist/components/Badge/statusIcons.d.ts +5 -0
  176. package/dist/components/Badge/statusIcons.d.ts.map +1 -0
  177. package/dist/components/BandEditor/BandEditor.d.ts +17 -7
  178. package/dist/components/BandEditor/BandEditor.d.ts.map +1 -1
  179. package/dist/components/BandEditor/bands.d.ts +5 -2
  180. package/dist/components/BandEditor/bands.d.ts.map +1 -1
  181. package/dist/components/BandEditor/index.js +1 -1
  182. package/dist/components/Button/index.js +1 -1
  183. package/dist/components/ButtonBar/ButtonBar.d.ts.map +1 -1
  184. package/dist/components/ButtonBar/index.js +1 -1
  185. package/dist/components/Callout/Callout.d.ts +2 -2
  186. package/dist/components/Callout/Callout.d.ts.map +1 -1
  187. package/dist/components/Callout/index.js +1 -1
  188. package/dist/components/Checkbox/Checkbox.d.ts +28 -13
  189. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  190. package/dist/components/Checkbox/index.js +1 -1
  191. package/dist/components/CloseButton/CloseButton.d.ts +21 -0
  192. package/dist/components/CloseButton/CloseButton.d.ts.map +1 -0
  193. package/dist/components/CloseButton/index.d.ts +3 -0
  194. package/dist/components/CloseButton/index.d.ts.map +1 -0
  195. package/dist/components/CloseButton/index.js +2 -0
  196. package/dist/components/ColorField/ColorField.d.ts +5 -1
  197. package/dist/components/ColorField/ColorField.d.ts.map +1 -1
  198. package/dist/components/ColorField/OpacityRange.d.ts +18 -0
  199. package/dist/components/ColorField/OpacityRange.d.ts.map +1 -0
  200. package/dist/components/ColorField/index.js +1 -1
  201. package/dist/components/ColorModeControl/index.js +1 -1
  202. package/dist/components/ComboBox/ComboBox.d.ts +7 -0
  203. package/dist/components/ComboBox/ComboBox.d.ts.map +1 -1
  204. package/dist/components/ComboBox/index.js +1 -1
  205. package/dist/components/CurveEditor/CurveEditor.d.ts.map +1 -1
  206. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts.map +1 -1
  207. package/dist/components/CurveEditor/index.js +2 -2
  208. package/dist/components/DataGrid/index.js +1 -1
  209. package/dist/components/DetailList/DetailList.d.ts +31 -5
  210. package/dist/components/DetailList/DetailList.d.ts.map +1 -1
  211. package/dist/components/DetailList/index.d.ts +1 -1
  212. package/dist/components/DetailList/index.d.ts.map +1 -1
  213. package/dist/components/DetailList/index.js +1 -1
  214. package/dist/components/DetentSlider/index.js +1 -1
  215. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  216. package/dist/components/Dialog/index.js +1 -1
  217. package/dist/components/Disclosure/Disclosure.d.ts +1 -1
  218. package/dist/components/Disclosure/index.js +1 -1
  219. package/dist/components/DragGhost/index.js +1 -1
  220. package/dist/components/{DragHandleGlyph/DragHandleGlyph.d.ts → DragGrip/DragGrip.d.ts} +4 -4
  221. package/dist/components/DragGrip/DragGrip.d.ts.map +1 -0
  222. package/dist/components/DragGrip/index.d.ts +3 -0
  223. package/dist/components/DragGrip/index.d.ts.map +1 -0
  224. package/dist/components/DragGrip/index.js +2 -0
  225. package/dist/components/FallthroughDiagram/FallthroughDiagram.d.ts +14 -0
  226. package/dist/components/FallthroughDiagram/FallthroughDiagram.d.ts.map +1 -0
  227. package/dist/components/FallthroughDiagram/fixtures.d.ts +17 -0
  228. package/dist/components/FallthroughDiagram/fixtures.d.ts.map +1 -0
  229. package/dist/components/FallthroughDiagram/index.d.ts +3 -0
  230. package/dist/components/FallthroughDiagram/index.d.ts.map +1 -0
  231. package/dist/components/FallthroughDiagram/index.js +2 -0
  232. package/dist/components/Field/index.js +1 -1
  233. package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts.map +1 -1
  234. package/dist/components/FillStrokeSwatch/index.js +1 -1
  235. package/dist/components/FontFamilySelect/FontFamilySelect.d.ts +20 -0
  236. package/dist/components/FontFamilySelect/FontFamilySelect.d.ts.map +1 -1
  237. package/dist/components/FontFamilySelect/index.js +1 -1
  238. package/dist/components/FontWeightSelect/FontWeightSelect.d.ts +26 -0
  239. package/dist/components/FontWeightSelect/FontWeightSelect.d.ts.map +1 -0
  240. package/dist/components/FontWeightSelect/index.d.ts +3 -0
  241. package/dist/components/FontWeightSelect/index.d.ts.map +1 -0
  242. package/dist/components/FontWeightSelect/index.js +2 -0
  243. package/dist/components/GestureRoute/GestureRoute.d.ts +19 -0
  244. package/dist/components/GestureRoute/GestureRoute.d.ts.map +1 -0
  245. package/dist/components/GestureRoute/index.d.ts +3 -0
  246. package/dist/components/GestureRoute/index.d.ts.map +1 -0
  247. package/dist/components/GestureRoute/index.js +2 -0
  248. package/dist/components/GradientEditor/GradientEditor.d.ts +22 -8
  249. package/dist/components/GradientEditor/GradientEditor.d.ts.map +1 -1
  250. package/dist/components/GradientEditor/GradientHandles.d.ts +1 -8
  251. package/dist/components/GradientEditor/GradientHandles.d.ts.map +1 -1
  252. package/dist/components/GradientEditor/SceneGradientHandles.d.ts +7 -5
  253. package/dist/components/GradientEditor/SceneGradientHandles.d.ts.map +1 -1
  254. package/dist/components/GradientEditor/handleOverlay.d.ts +41 -0
  255. package/dist/components/GradientEditor/handleOverlay.d.ts.map +1 -0
  256. package/dist/components/GradientEditor/index.js +1 -1
  257. package/dist/components/InlineRange/index.js +1 -1
  258. package/dist/components/Input/Input.d.ts +1 -1
  259. package/dist/components/Input/Input.d.ts.map +1 -1
  260. package/dist/components/Input/index.js +1 -1
  261. package/dist/components/ItemList/ItemList.d.ts +32 -31
  262. package/dist/components/ItemList/ItemList.d.ts.map +1 -1
  263. package/dist/components/ItemList/index.js +1 -1
  264. package/dist/components/Jog/index.js +1 -1
  265. package/dist/components/Keycaps/Keycaps.d.ts +11 -5
  266. package/dist/components/Keycaps/Keycaps.d.ts.map +1 -1
  267. package/dist/components/Keycaps/index.d.ts +1 -1
  268. package/dist/components/Keycaps/index.d.ts.map +1 -1
  269. package/dist/components/Keycaps/index.js +1 -1
  270. package/dist/components/LayerList/LayerList.d.ts +1 -1
  271. package/dist/components/LayerList/LayerList.d.ts.map +1 -1
  272. package/dist/components/LayerList/index.js +1 -1
  273. package/dist/components/ListEditor/ListEditor.d.ts.map +1 -1
  274. package/dist/components/ListEditor/index.js +1 -1
  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/MeshEditor.d.ts +4 -3
  278. package/dist/components/MeshEditor/MeshEditor.d.ts.map +1 -1
  279. package/dist/components/MeshEditor/MeshHandles.d.ts +38 -0
  280. package/dist/components/MeshEditor/MeshHandles.d.ts.map +1 -0
  281. package/dist/components/MeshEditor/index.d.ts +2 -0
  282. package/dist/components/MeshEditor/index.d.ts.map +1 -1
  283. package/dist/components/MeshEditor/index.js +2 -2
  284. package/dist/components/NumberField/NumberField.d.ts +1 -1
  285. package/dist/components/NumberField/NumberField.d.ts.map +1 -1
  286. package/dist/components/NumberField/UnitField.d.ts +20 -7
  287. package/dist/components/NumberField/UnitField.d.ts.map +1 -1
  288. package/dist/components/NumberField/index.js +1 -1
  289. package/dist/components/OptionsBar/OptionsBar.d.ts.map +1 -1
  290. package/dist/components/OptionsBar/index.js +1 -1
  291. package/dist/components/PaintField/PaintField.d.ts.map +1 -1
  292. package/dist/components/PaintField/index.js +1 -1
  293. package/dist/components/PaintInput/PaintInput.d.ts.map +1 -1
  294. package/dist/components/PaintInput/index.js +1 -1
  295. package/dist/components/PatternPicker/PatternPicker.d.ts +6 -5
  296. package/dist/components/PatternPicker/PatternPicker.d.ts.map +1 -1
  297. package/dist/components/PatternPicker/index.js +1 -1
  298. package/dist/components/Plot2D/index.js +1 -1
  299. package/dist/components/PointPlotter/index.js +1 -1
  300. package/dist/components/Powerline/index.d.ts +1 -1
  301. package/dist/components/Powerline/index.d.ts.map +1 -1
  302. package/dist/components/Powerline/index.js +2 -2
  303. package/dist/components/Prefs/PrefsForm.d.ts +8 -0
  304. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  305. package/dist/components/Prefs/PrefsRail.d.ts +3 -2
  306. package/dist/components/Prefs/PrefsRail.d.ts.map +1 -1
  307. package/dist/components/Prefs/PrefsRow.d.ts.map +1 -1
  308. package/dist/components/Prefs/index.d.ts +1 -1
  309. package/dist/components/Prefs/index.d.ts.map +1 -1
  310. package/dist/components/Prefs/index.js +2 -2
  311. package/dist/components/Prefs/prefField.d.ts +13 -0
  312. package/dist/components/Prefs/prefField.d.ts.map +1 -1
  313. package/dist/components/Prefs/schema.d.ts +2 -2
  314. package/dist/components/Prefs/schema.d.ts.map +1 -1
  315. package/dist/components/Properties/PropertyField.d.ts +35 -32
  316. package/dist/components/Properties/PropertyField.d.ts.map +1 -1
  317. package/dist/components/Properties/PropertyGroup.d.ts.map +1 -1
  318. package/dist/components/Properties/PropertyPanel.d.ts +1 -8
  319. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  320. package/dist/components/Properties/index.d.ts +1 -1
  321. package/dist/components/Properties/index.d.ts.map +1 -1
  322. package/dist/components/Properties/index.js +3 -3
  323. package/dist/components/RadioGroup/index.js +1 -1
  324. package/dist/components/RangeSlider/index.js +1 -1
  325. package/dist/components/RecentColors/RecentColorsProvider.d.ts +24 -0
  326. package/dist/components/RecentColors/RecentColorsProvider.d.ts.map +1 -0
  327. package/dist/components/RecentColors/index.d.ts +5 -0
  328. package/dist/components/RecentColors/index.d.ts.map +1 -0
  329. package/dist/components/RecentColors/index.js +2 -0
  330. package/dist/components/RecentColors/recentColors.d.ts +39 -0
  331. package/dist/components/RecentColors/recentColors.d.ts.map +1 -0
  332. package/dist/components/ResizeHandle/ResizeHandle.d.ts.map +1 -1
  333. package/dist/components/ResizeHandle/index.js +1 -1
  334. package/dist/components/Select/Select.d.ts +6 -2
  335. package/dist/components/Select/Select.d.ts.map +1 -1
  336. package/dist/components/Select/index.js +1 -1
  337. package/dist/components/SelectionPanel/SelectionPanel.d.ts.map +1 -1
  338. package/dist/components/SelectionPanel/index.js +2 -2
  339. package/dist/components/SelectionPanel/renderLeaf.d.ts +17 -0
  340. package/dist/components/SelectionPanel/renderLeaf.d.ts.map +1 -1
  341. package/dist/components/SidebarPanel/SidebarPanel.d.ts +1 -1
  342. package/dist/components/SidebarPanel/SidebarPanel.d.ts.map +1 -1
  343. package/dist/components/SidebarPanel/index.js +1 -1
  344. package/dist/components/Slider/Slider.d.ts +19 -2
  345. package/dist/components/Slider/Slider.d.ts.map +1 -1
  346. package/dist/components/Slider/index.js +1 -1
  347. package/dist/components/StatusBar/index.js +1 -1
  348. package/dist/components/SwatchGrid/SwatchGrid.d.ts.map +1 -1
  349. package/dist/components/SwatchGrid/index.js +1 -1
  350. package/dist/components/SwatchStrip/SwatchStrip.d.ts +44 -0
  351. package/dist/components/SwatchStrip/SwatchStrip.d.ts.map +1 -0
  352. package/dist/components/SwatchStrip/index.d.ts +5 -0
  353. package/dist/components/SwatchStrip/index.d.ts.map +1 -0
  354. package/dist/components/SwatchStrip/index.js +2 -0
  355. package/dist/components/SwatchStrip/palettes.d.ts +21 -0
  356. package/dist/components/SwatchStrip/palettes.d.ts.map +1 -0
  357. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +38 -0
  358. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts.map +1 -0
  359. package/dist/components/ThemeSwitcher/index.d.ts +3 -0
  360. package/dist/components/ThemeSwitcher/index.d.ts.map +1 -0
  361. package/dist/components/ThemeSwitcher/index.js +2 -0
  362. package/dist/components/Timeline/AnimatedTimeline.d.ts +1 -0
  363. package/dist/components/Timeline/AnimatedTimeline.d.ts.map +1 -1
  364. package/dist/components/Timeline/EasingPicker.d.ts +3 -0
  365. package/dist/components/Timeline/EasingPicker.d.ts.map +1 -1
  366. package/dist/components/Timeline/LaneGraph.d.ts +1 -1
  367. package/dist/components/Timeline/LaneGraph.d.ts.map +1 -1
  368. package/dist/components/Timeline/Timeline.d.ts +10 -1
  369. package/dist/components/Timeline/Timeline.d.ts.map +1 -1
  370. package/dist/components/Timeline/Transport.d.ts +6 -0
  371. package/dist/components/Timeline/Transport.d.ts.map +1 -1
  372. package/dist/components/Timeline/index.js +1 -1
  373. package/dist/components/Timeline/keys.d.ts +1 -0
  374. package/dist/components/Timeline/keys.d.ts.map +1 -1
  375. package/dist/components/Toast/Toast.d.ts +12 -3
  376. package/dist/components/Toast/Toast.d.ts.map +1 -1
  377. package/dist/components/Toast/index.js +1 -1
  378. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  379. package/dist/components/ToggleBar/index.js +1 -1
  380. package/dist/components/TokenPanel/index.js +1 -1
  381. package/dist/components/TokenPanel/tokenTypes.d.ts +1 -0
  382. package/dist/components/TokenPanel/tokenTypes.d.ts.map +1 -1
  383. package/dist/components/ToolButton/ToolButton.d.ts +1 -10
  384. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  385. package/dist/components/ToolButton/index.js +1 -1
  386. package/dist/components/ToolOptionsBar/index.js +1 -1
  387. package/dist/components/ToolPalette/ToolPalette.d.ts +2 -1
  388. package/dist/components/ToolPalette/ToolPalette.d.ts.map +1 -1
  389. package/dist/components/ToolPalette/formatShortcut.d.ts +2 -0
  390. package/dist/components/ToolPalette/formatShortcut.d.ts.map +1 -1
  391. package/dist/components/ToolPalette/index.js +1 -1
  392. package/dist/components/Tooltip/index.js +1 -1
  393. package/dist/components/Tree/Tree.d.ts +27 -26
  394. package/dist/components/Tree/Tree.d.ts.map +1 -1
  395. package/dist/components/Tree/index.js +1 -1
  396. package/dist/components/spin.d.ts +16 -0
  397. package/dist/components/spin.d.ts.map +1 -0
  398. package/dist/components/stanceSurfaces.d.ts.map +1 -1
  399. package/dist/icons/index.d.ts +51 -2
  400. package/dist/icons/index.d.ts.map +1 -1
  401. package/dist/icons/paths.d.ts +12 -0
  402. package/dist/icons/paths.d.ts.map +1 -1
  403. package/dist/index.d.ts +9 -3
  404. package/dist/index.d.ts.map +1 -1
  405. package/dist/index.js +98 -111
  406. package/dist/index.js.map +1 -1
  407. package/dist/overlays/portalHost.d.ts +6 -0
  408. package/dist/overlays/portalHost.d.ts.map +1 -1
  409. package/dist/paintGradientTrack.d.ts +5 -2
  410. package/dist/paintGradientTrack.d.ts.map +1 -1
  411. package/dist/style.css +1 -1
  412. package/dist/useAsyncOptions.d.ts.map +1 -1
  413. package/dist/useReorderDragList.d.ts +1 -1
  414. package/dist/useReorderDragList.d.ts.map +1 -1
  415. package/dist/useRovingTabIndex.d.ts +40 -39
  416. package/dist/useRovingTabIndex.d.ts.map +1 -1
  417. package/package.json +9 -8
  418. package/dist/chunks/ActionBar-DCq16yFA.js +0 -57
  419. package/dist/chunks/ActionBar-DCq16yFA.js.map +0 -1
  420. package/dist/chunks/Badge-CyAIZSDo.js.map +0 -1
  421. package/dist/chunks/BandEditor-Dhm_Xrlr.js +0 -248
  422. package/dist/chunks/BandEditor-Dhm_Xrlr.js.map +0 -1
  423. package/dist/chunks/Callout-yEn9iPlh.js +0 -119
  424. package/dist/chunks/Callout-yEn9iPlh.js.map +0 -1
  425. package/dist/chunks/Checkbox-DHXTUHO9.js +0 -47
  426. package/dist/chunks/Checkbox-DHXTUHO9.js.map +0 -1
  427. package/dist/chunks/ColorField-BcMcW8Sa.js +0 -60
  428. package/dist/chunks/ColorField-BcMcW8Sa.js.map +0 -1
  429. package/dist/chunks/ComboBox-DpT8lc3p.js +0 -138
  430. package/dist/chunks/ComboBox-DpT8lc3p.js.map +0 -1
  431. package/dist/chunks/CurveEditor-BDJXjEvK.js.map +0 -1
  432. package/dist/chunks/DataGrid-D-dZj1BD.js.map +0 -1
  433. package/dist/chunks/DetailList-BMER1LUZ.js +0 -43
  434. package/dist/chunks/DetailList-BMER1LUZ.js.map +0 -1
  435. package/dist/chunks/Dialog-BWyNMgpf.js +0 -66
  436. package/dist/chunks/Dialog-BWyNMgpf.js.map +0 -1
  437. package/dist/chunks/Disclosure-0G0uh2fa.js.map +0 -1
  438. package/dist/chunks/DragHandleGlyph-Dr7Fgo0I.js.map +0 -1
  439. package/dist/chunks/Field--onYxXTF.js +0 -32
  440. package/dist/chunks/Field--onYxXTF.js.map +0 -1
  441. package/dist/chunks/FillStrokeSwatch-DNb0KXPk.js +0 -111
  442. package/dist/chunks/FillStrokeSwatch-DNb0KXPk.js.map +0 -1
  443. package/dist/chunks/FontFamilySelect-DXlMKWfK.js.map +0 -1
  444. package/dist/chunks/GradientEditor-B3a-MsVJ.js +0 -335
  445. package/dist/chunks/GradientEditor-B3a-MsVJ.js.map +0 -1
  446. package/dist/chunks/Icon-Cgzy8VgC.js.map +0 -1
  447. package/dist/chunks/InlineRange-eOj6JpJl.js.map +0 -1
  448. package/dist/chunks/Input-CHmkfYaD.js.map +0 -1
  449. package/dist/chunks/ItemList-Cm-HUWCi.js.map +0 -1
  450. package/dist/chunks/Jog-DESxZ44P.js.map +0 -1
  451. package/dist/chunks/Keycaps-C0H_v2gO.js.map +0 -1
  452. package/dist/chunks/LayerList-nz-QYvTF.js.map +0 -1
  453. package/dist/chunks/ListEditor-BQ6AV3Ac.js +0 -74
  454. package/dist/chunks/ListEditor-BQ6AV3Ac.js.map +0 -1
  455. package/dist/chunks/MenuButton-DtaGenKf.js +0 -70
  456. package/dist/chunks/MenuButton-DtaGenKf.js.map +0 -1
  457. package/dist/chunks/MeshEditor-qqGc6hlD.js +0 -87
  458. package/dist/chunks/MeshEditor-qqGc6hlD.js.map +0 -1
  459. package/dist/chunks/NumberField-CwJOMmQR.js +0 -117
  460. package/dist/chunks/NumberField-CwJOMmQR.js.map +0 -1
  461. package/dist/chunks/PaintField-DaJukRc6.js +0 -62
  462. package/dist/chunks/PaintField-DaJukRc6.js.map +0 -1
  463. package/dist/chunks/PaintInput-Byhna3H-.js +0 -131
  464. package/dist/chunks/PaintInput-Byhna3H-.js.map +0 -1
  465. package/dist/chunks/PatternPicker-B-cUt-JT.js +0 -93
  466. package/dist/chunks/PatternPicker-B-cUt-JT.js.map +0 -1
  467. package/dist/chunks/Plot2D-CTXHkL5p.js.map +0 -1
  468. package/dist/chunks/Prefs-DpqFKiwY.js.map +0 -1
  469. package/dist/chunks/Properties-D_KzDN9K.js.map +0 -1
  470. package/dist/chunks/PropertyField-DGCecAnV.js +0 -758
  471. package/dist/chunks/PropertyField-DGCecAnV.js.map +0 -1
  472. package/dist/chunks/RangeSlider-BKRRTPTZ.js.map +0 -1
  473. package/dist/chunks/ResizeHandle-BKT0XYpx.js +0 -79
  474. package/dist/chunks/ResizeHandle-BKT0XYpx.js.map +0 -1
  475. package/dist/chunks/Select-CzyfaXzp.js +0 -225
  476. package/dist/chunks/Select-CzyfaXzp.js.map +0 -1
  477. package/dist/chunks/SelectionPanel-BgUM1h03.js +0 -103
  478. package/dist/chunks/SelectionPanel-BgUM1h03.js.map +0 -1
  479. package/dist/chunks/SidebarPanel-aoIqxbtq.js +0 -55
  480. package/dist/chunks/SidebarPanel-aoIqxbtq.js.map +0 -1
  481. package/dist/chunks/Slider-CFwQYQ10.js +0 -383
  482. package/dist/chunks/Slider-CFwQYQ10.js.map +0 -1
  483. package/dist/chunks/StatusBar-DzoPDY4k.js.map +0 -1
  484. package/dist/chunks/SwatchGrid-BARC3rnF.js +0 -73
  485. package/dist/chunks/SwatchGrid-BARC3rnF.js.map +0 -1
  486. package/dist/chunks/Timeline--58F7MED.js.map +0 -1
  487. package/dist/chunks/Toast-DNBb-24H.js +0 -128
  488. package/dist/chunks/Toast-DNBb-24H.js.map +0 -1
  489. package/dist/chunks/ToggleBar-DTjGeS0Q.js.map +0 -1
  490. package/dist/chunks/TokenPanel-CMq7uydV.js.map +0 -1
  491. package/dist/chunks/ToolButton-CR4sQlxF.js.map +0 -1
  492. package/dist/chunks/ToolOptionsBar-CtzTlaN2.js.map +0 -1
  493. package/dist/chunks/ToolPalette-CKG9qY6P.js.map +0 -1
  494. package/dist/chunks/Tree-DVOtc9R5.js.map +0 -1
  495. package/dist/chunks/createKeyframeLayer-Czj6Y235.js.map +0 -1
  496. package/dist/chunks/icons-Dk8SRS8g.js.map +0 -1
  497. package/dist/chunks/model-Du7Lta4C.js +0 -360
  498. package/dist/chunks/model-Du7Lta4C.js.map +0 -1
  499. package/dist/chunks/number-D3NEx_8r.js +0 -89
  500. package/dist/chunks/number-D3NEx_8r.js.map +0 -1
  501. package/dist/chunks/portalHost-yTOVuCej.js.map +0 -1
  502. package/dist/chunks/prefField-Dnl7nmjQ.js +0 -197
  503. package/dist/chunks/prefField-Dnl7nmjQ.js.map +0 -1
  504. package/dist/chunks/segmentedControl.module-Bv7DEg8f.js +0 -11
  505. package/dist/chunks/segmentedControl.module-Bv7DEg8f.js.map +0 -1
  506. package/dist/chunks/useReorderDragList-B_-5L5Gu.js +0 -131
  507. package/dist/chunks/useReorderDragList-B_-5L5Gu.js.map +0 -1
  508. package/dist/chunks/useRovingTabIndex-Bp_hYm_h.js +0 -65
  509. package/dist/chunks/useRovingTabIndex-Bp_hYm_h.js.map +0 -1
  510. package/dist/components/DragHandleGlyph/DragHandleGlyph.d.ts.map +0 -1
  511. package/dist/components/DragHandleGlyph/index.d.ts +0 -3
  512. package/dist/components/DragHandleGlyph/index.d.ts.map +0 -1
  513. package/dist/components/DragHandleGlyph/index.js +0 -2
  514. package/dist/format/number.d.ts +0 -56
  515. package/dist/format/number.d.ts.map +0 -1
  516. package/dist/icons/ShapeKindIcon.d.ts +0 -10
  517. package/dist/icons/ShapeKindIcon.d.ts.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RectIcon","EllipseIcon","LineIcon","PolygonIcon","StarIcon","PenIcon","PencilIcon","LassoIcon","TextIcon","ImageIcon","UnknownIcon","isDebugEnabled","ICON_PATHS","ICON_GROUPS","isFillable","ICON_FILLS","Icon","ModeLightIcon","FilterIcon","UngroupIcon","InfoIcon","DistributeVerticalIcon","StepBackIcon","ExpandIcon","TextIcon","ErrorIcon","StopIcon","GridIcon","ZoomInIcon","LayoutRowsIcon","LayersIcon","GroupIcon","ZoomOutIcon","LockIcon","LineIcon","HandIcon","FlipXIcon","UnlockIcon","FlipYIcon","VisibleIcon","ExportIcon","TuneIcon","FullscreenIcon","WarningIcon","ModeDarkIcon","HiddenIcon","DistributeHorizontalIcon","StarIcon","EllipseIcon","StepIcon","LayoutColumnsIcon","LassoIcon","LayoutGridIcon","MeasureIcon","LoupeIcon","ModeAutoIcon","CompareIcon","SendBackwardIcon","AlignLeftIcon","PencilIcon","CutIcon","SnapshotIcon","ArrowIcon","PolygonIcon","BusyIcon","RedoIcon","PageIcon","CheckIcon","RefreshIcon","CollapseIcon","SelectIcon","CloseIcon","SearchIcon","AlignCenterYIcon","PenIcon","FitIcon","UnknownIcon","EyedropperIcon","UndoIcon","BringForwardIcon","RandomizeIcon","CloneIcon","ResetIcon","AlignBottomIcon","PasteIcon","AlignRightIcon","PinIcon","ChevronIcon","RemoveIcon","LinkIcon","AlignCenterXIcon","PauseIcon","AlignTopIcon","PlayIcon","AddIcon","PanIcon","BringToFrontIcon","RectIcon","CopyIcon","SendToBackIcon","DuplicateIcon","StepForwardIcon","DeleteIcon","SortIcon","CrosshairIcon","SnapIcon","ImageIcon","solidColorOf","strokeColorOf","nearestPortalHost","useOverlayPortal","OverlayPortalProvider","Tooltip","TooltipTrigger","Focusable","keyGlyph","formatShortcutParts","formatShortcut","ActionBar","EDGE_PROFILES","Badge","useStance","Button","Code","useReorderDragList","DisclosureMark","DisclosureRow","Disclosure","DataGrid","DetailRow","DetailList","DragGhost","DragHandleGlyph","detectPlatform","inferKeycapKind","KeySequence","keySpecFromKey","KeyCap","keySpecsFromMods","keySpecsFromShortcut","stepDecimals","plotToModel","niceTicks","formatTick","tickDecimals","niceStep","modelToPlot","Plot2D","sampleByInterpolation","functionLayerState","CurveEditor","createFunctionLayer","createSetCurveOp","handleSize","LayeredCurveEditor","createKeyframeLayer","HANDLE_SIZE_TOKENS","keyframeLayerState","handleHalf","applyKeyframeDrag","snapToNearest","CurveField","PropertyGroup","DialogRow","Subpanel","Dialog","PropertyPanel","PropertyNote","PropertyField","PropertyRow","PropertyList","PropertySpan","PropertyControl","parseNumber","formatZoom","formatCompact","parseSignedNumber","formatNumber","MINUS_SIGN","Checkbox","InlineRange","ColorField","fieldClasses","Field","SelectItem","SelectSection","Select","FontFamilySelect","Input","NumberField","UnitField","paintPreviewCss","Slider","ToggleBar","useRovingTabIndex","paintGradientTrack","GradientHandles","GradientEditor","SceneGradientHandles","isMeshPaint","MeshEditor","seedPattern","PatternPicker","PaintInput","PaintField","RadioGroup","Radio","Switch","LayerList","moveLayers","useSceneLayerList","ItemList","ListEditor","ColorModeControl","OptionsBar","ButtonBar","prefRailItems","prefDisplayBounds","filterPrefSubtree","prefValueAtPath","isPrefLeaf","visiblePrefSubtree","prefFieldProps","effectiveSections","setAtPath","aggregateValue","kindBreakdown","classifyKind","nodeValueAt","MIXED","ToolOptionsBar","FillStrokeSwatch","SwatchGrid","Powerline","pickActiveSection","PrefsPane","PrefsForm","useScrollSpy","PrefsRail","PrefsDialog","SelectionPanel","ResizeHandle","Sidebar","SidebarPanel","StatusBarItem","StatusBarSpacer","StatusBar","ToolButton","ToolGroup","ToolPalette","Tabs","TabList","TabPanel","Tab","filterTree","treeBranchIds","Tree","MenuButton","ComboBoxItem","ComboBox","RangeSlider","DetentSlider","DialogTrigger","Callout","toast","defaultToastQueue","ToastQueue","createToastQueue","ToastRegion","PointPlotter","tokenCategory","refitScale","TOKEN_CATEGORIES","inferTokenType","TokenPanel","linearScale","logScale","BandEditor","Jog","EasingPicker","easingLabel","Transport","sampleEasing","Timeline","EASING_NAMES","samePath","easingBezier","AnimatedTimeline","EllipseIcon$1","ImageIcon$1","LassoIcon$1","LineIcon$1","PenIcon$1","PencilIcon$1","PolygonIcon$1","RectIcon$1","StarIcon$1","TextIcon$1","UnknownIcon$1","BY_KIND","ShapeKindIcon","props","Glyph","kind","oklchToHex","oklchDegToHex","chromaAt","lo","hi","curve","L","rgb","r","g","b","hexToRgba","hex","rampColor","options","a","from","to","rgbaToHex","interpolateSrgb","t","space","hue","chroma","s","hexToOklchDeg","H","colorRamp","steps","i","useAsyncOptions","inputValue","setInputValue","useState","setOptions","isLoading","setIsLoading","loadError","setLoadError","loadRef","useRef","load","issued","applied","inFlight","useEffect","minLength","timer","mine","controller","next","error","debounceMs","useCallback","dlog"],"sources":["../src/icons/ShapeKindIcon.tsx","../src/color/oklch.ts","../src/color/ramp.ts","../src/useAsyncOptions.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport {\n EllipseIcon, ImageIcon, LassoIcon, LineIcon, PenIcon, PencilIcon, PolygonIcon, RectIcon,\n StarIcon, TextIcon, UnknownIcon,\n type IconProps, type ShapeKind,\n} from '@weasel-js/core';\n\nconst BY_KIND = {\n rect: RectIcon,\n ellipse: EllipseIcon,\n line: LineIcon,\n polygon: PolygonIcon,\n star: StarIcon,\n pen: PenIcon,\n pencil: PencilIcon,\n lasso: LassoIcon,\n text: TextIcon,\n image: ImageIcon,\n} satisfies Record<ShapeKind, ComponentType<IconProps>>;\n\nexport interface ShapeKindIconProps extends IconProps {\n /** A built-in shape kind. Any other string draws `UnknownIcon`, so a\n * consumer-defined kind still gets a glyph. */\n kind: ShapeKind | (string & {});\n}\n\n/** The glyph for a shape kind — the same one its insertion tool shows, so a\n * row in a layer list or inspector matches the palette that made it. */\nexport function ShapeKindIcon({ kind, ...props }: ShapeKindIconProps) {\n const Glyph = (BY_KIND as Record<string, ComponentType<IconProps>>)[kind] ?? UnknownIcon;\n return <Glyph {...props} />;\n}\n","// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchDegToHex } from '@weasel-js/core';\n\n/**\n * A chroma envelope over lightness, as three linear segments: flat at `cBot`\n * below `lRange[0]`, rising to `cPeak` at `midL`, falling to `cTop` at\n * `lRange[1]`, flat beyond. Keeps a color ramp inside gamut at the light and\n * dark ends while staying saturated through the middle.\n */\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\n/** A single lightness/chroma sample. */\nexport type ChromaCurvePoint = { L: number; C: number };\n\n/**\n * Converts an OKLCH color to a gamut-clipped `#rrggbb` string. Hue is in\n * degrees, unlike the kit's OKLab helpers which take radians.\n */\nexport const oklchToHex = oklchDegToHex;\n\n/** Evaluates a {@link ChromaCurve} at a lightness, clamping outside its range. */\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n","import {\n hexToOklchDeg,\n hexToRgba,\n interpolateSrgb,\n rgbaToHex,\n type ColorInterpolationSpace,\n type HueInterpolation,\n} from '@weasel-js/core';\nimport { chromaAt, oklchToHex, type ChromaCurve } from './oklch';\n\n/**\n * How {@link rampColor} and {@link colorRamp} travel between two endpoints.\n *\n * What each space interpolates:\n *\n * | `space` | components lerped | hue |\n * | --------------- | ---------------------------- | -------------------- |\n * | `'oklch'` | L, C, H | around the wheel |\n * | `'hsl'` | H, S, L | around the wheel |\n * | `'oklab'` | L, a, b | through the wheel |\n * | `'srgb'` | gamma-encoded R, G, B | through the wheel |\n * | `'srgb-linear'` | linear-light R, G, B | through the wheel |\n *\n * A lightness ramp is two endpoints that differ in lightness, and a hue ramp\n * two that differ in hue: the polar spaces keep chroma or saturation fixed\n * while they move, and the others cut a straight line between the two colors,\n * which for a hue ramp passes through gray.\n *\n * `chroma` is an OKLCH envelope in every space, since {@link ChromaCurve}'s\n * numbers are OKLCH chroma over OKLCH lightness. It runs after the\n * interpolation: each sample keeps its lightness and hue, and its chroma is\n * replaced with the curve's value at that lightness. A sample left with no\n * hue (a gray midpoint) takes the hue an OKLCH ramp would have had there.\n */\nexport interface ColorRampOptions {\n /** Default `'oklch'`. */\n space?: ColorInterpolationSpace;\n /** Polar spaces only. Default `'shorter'`. */\n hue?: HueInterpolation;\n chroma?: ChromaCurve;\n}\n\nconst rgb = (hex: string): [number, number, number] => {\n const [r, g, b] = hexToRgba(hex);\n return [r, g, b];\n};\n\n/** One sample of a ramp from `from` to `to` (`#rrggbb`), `t` in 0..1. */\nexport function rampColor(from: string, to: string, t: number, options: ColorRampOptions = {}): string {\n const { space = 'oklch', hue = 'shorter', chroma } = options;\n const a = rgb(from);\n const b = rgb(to);\n const hex = rgbaToHex(interpolateSrgb(a, b, t, space, hue));\n if (!chroma) return hex;\n const s = hexToOklchDeg(hex);\n const H = s.C > 1e-4 ? s.H : hexToOklchDeg(rgbaToHex(interpolateSrgb(a, b, t, 'oklch', hue))).H;\n return oklchToHex(s.L, chromaAt(s.L, chroma), H);\n}\n\n/** `steps` evenly spaced samples from `from` to `to`, both ends included. */\nexport function colorRamp(from: string, to: string, steps: number, options: ColorRampOptions = {}): string[] {\n if (steps <= 1) return steps === 1 ? [rampColor(from, to, 0, options)] : [];\n return Array.from({ length: steps }, (_, i) => rampColor(from, to, i / (steps - 1), options));\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { ComboBoxOption } from './components/ComboBox/ComboBox';\n\ntype Key = string | number;\n\n/** An option list keyed to the value type its combo box commits. */\nexport type AsyncOption<T extends Key> = ComboBoxOption & { value: T };\n\n/** Options for {@link useAsyncOptions}. */\nexport type UseAsyncOptionsProps<T extends Key> = {\n /**\n * Fetches the options for a query. The signal aborts when a later keystroke\n * supersedes this call, so a `fetch` should forward it.\n */\n load: (query: string, signal: AbortSignal) => Promise<ReadonlyArray<AsyncOption<T>>>;\n /** Quiet period before a query is sent. */\n debounceMs?: number;\n /** Shorter queries are not sent, and empty the options. */\n minLength?: number;\n};\n\n/** What {@link useAsyncOptions} returns, shaped to spread into a `ComboBox`. */\nexport type AsyncOptionsResult<T extends Key> = {\n options: ReadonlyArray<AsyncOption<T>>;\n isLoading: boolean;\n loadError: unknown | null;\n inputValue: string;\n onInputChange: (next: string) => void;\n};\n\n/**\n * Drives a combo box whose options come from a server: debounces the query,\n * discards responses overtaken by a later one, and reports a failed load\n * separately from an empty result.\n *\n * `options` holds the last *resolved* list and is never emptied to mean\n * \"working\", so the previous results stay on screen — and stay arrowable —\n * while the next request is in flight.\n */\nexport function useAsyncOptions<T extends Key = string>({\n load,\n debounceMs = 150,\n minLength = 0,\n}: UseAsyncOptionsProps<T>): AsyncOptionsResult<T> {\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<ReadonlyArray<AsyncOption<T>>>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [loadError, setLoadError] = useState<unknown | null>(null);\n\n // Read through a ref: a consumer passing an inline arrow re-creates `load`\n // every render, and depending on it directly would refire the request.\n const loadRef = useRef(load);\n loadRef.current = load;\n\n // A monotonic id per request, and the highest one whose result has been\n // applied. A liveness flag cannot do this job: two requests from adjacent\n // keystrokes are both live, so the slower one overwrites the newer result\n // if it lands second.\n const issued = useRef(0);\n const applied = useRef(0);\n const inFlight = useRef<AbortController | null>(null);\n\n useEffect(() => {\n if (inputValue.length < minLength) {\n inFlight.current?.abort();\n inFlight.current = null;\n applied.current = issued.current;\n setOptions([]);\n setIsLoading(false);\n setLoadError(null);\n return;\n }\n\n const timer = setTimeout(() => {\n const mine = ++issued.current;\n const controller = new AbortController();\n inFlight.current?.abort();\n inFlight.current = controller;\n setIsLoading(true);\n\n loadRef.current(inputValue, controller.signal).then(\n (next) => {\n if (mine <= applied.current) return;\n applied.current = mine;\n setOptions(next);\n setLoadError(null);\n setIsLoading(false);\n },\n (error: unknown) => {\n if (controller.signal.aborted || mine <= applied.current) return;\n applied.current = mine;\n setLoadError(error);\n setIsLoading(false);\n },\n );\n }, debounceMs);\n\n return () => clearTimeout(timer);\n }, [inputValue, debounceMs, minLength]);\n\n useEffect(() => () => inFlight.current?.abort(), []);\n\n const onInputChange = useCallback((next: string) => setInputValue(next), []);\n\n return { options, isLoading, loadError, inputValue, onInputChange };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["isDebugEnabled","ICON_PATHS","ICON_GROUPS","isFillable","ICON_FILLS","Icon","ModeLightIcon","FilterIcon","UngroupIcon","InfoIcon","DistributeVerticalIcon","StepBackIcon","ExpandIcon","TextIcon","ErrorIcon","StopIcon","GridIcon","ZoomInIcon","LayoutRowsIcon","LayersIcon","GroupIcon","ZoomOutIcon","LockIcon","LineIcon","HandIcon","FlipXIcon","UnlockIcon","FlipYIcon","VisibleIcon","ExportIcon","TuneIcon","FullscreenIcon","WarningIcon","ModeDarkIcon","HiddenIcon","DistributeHorizontalIcon","StarIcon","EllipseIcon","StepIcon","LayoutColumnsIcon","LassoIcon","LayoutGridIcon","MeasureIcon","LoupeIcon","ModeAutoIcon","CompareIcon","SendBackwardIcon","AlignLeftIcon","PencilIcon","CutIcon","SnapshotIcon","ArrowIcon","PolygonIcon","BusyIcon","RedoIcon","PageIcon","CheckIcon","RefreshIcon","CollapseIcon","SelectIcon","CloseIcon","SearchIcon","AlignCenterYIcon","PenIcon","FitIcon","UnknownIcon","EyedropperIcon","UndoIcon","BringForwardIcon","RandomizeIcon","CloneIcon","ResetIcon","AlignBottomIcon","PasteIcon","AlignRightIcon","PinIcon","ChevronIcon","RemoveIcon","LinkIcon","AlignCenterXIcon","PauseIcon","AlignTopIcon","PlayIcon","AddIcon","PanIcon","BringToFrontIcon","RectIcon","CopyIcon","SendToBackIcon","DuplicateIcon","StepForwardIcon","DeleteIcon","SortIcon","CrosshairIcon","SnapIcon","ImageIcon","solidColorOf","strokeColorOf","useOverlayPortal","nearestPortalHost","useAssignedPortalContainer","OverlayPortalProvider","Tooltip","TooltipTrigger","Focusable","keyGlyph","formatShortcutParts","formatShortcut","ActionBar","EDGE_PROFILES","Badge","useStance","BADGE_STATUS_ICONS","Button","CloseButton","Code","useReorderDragList","DisclosureMark","DisclosureRow","Disclosure","DataGrid","DetailRow","DetailList","DragGhost","DragGrip","detectPlatform","inferKeycapKind","KeySequence","keySpecFromKey","KeyCap","keySpecsFromMods","keySpecsFromShortcut","stepDecimals","plotToModel","niceTicks","formatTick","tickDecimals","niceStep","modelToPlot","Plot2D","sampleByInterpolation","functionLayerState","CurveEditor","createFunctionLayer","createSetCurveOp","LayeredCurveEditor","createKeyframeLayer","keyframeLayerState","applyKeyframeDrag","handleHalf","handleSize","HANDLE_SIZE_TOKENS","snapToNearest","CurveField","PropertyGroup","DialogRow","Subpanel","Dialog","PropertyNote","PropertySpan","PropertyList","PropertyField","PropertyPanel","PropertyRow","PropertyControl","createRecentColorsStore","useRecordRecentColor","useRecentColors","normalizeRecentColor","useRecentColorsStore","RecentColorsProvider","InlineRange","ColorField","SelectItem","SelectSection","Select","FontFamilySelect","fontWeightLabel","FontWeightSelect","Input","NumberField","UnitField","paintPreviewCss","Slider","ToggleBar","useRovingTabIndex","MeshEditor","isMeshPaint","MeshHandles","paintGradientTrack","GradientHandles","GradientEditor","SceneGradientHandles","seedPattern","PatternPicker","PaintInput","PaintField","fieldClasses","Field","RadioGroup","Radio","Switch","LayerList","moveLayers","useSceneLayerList","ItemList","ListEditor","ColorModeControl","ThemeSwitcher","COLOR_MODE_OPTIONS","OptionsBar","ButtonBar","prefRailItems","prefDisplayBounds","filterPrefSubtree","prefValueAtPath","isPrefLeaf","visiblePrefSubtree","prefFieldProps","effectiveSections","setAtPath","aggregateValue","kindBreakdown","classifyKind","nodeValueAt","MIXED","ToolOptionsBar","FillStrokeSwatch","SwatchGrid","STANDARD_PALETTE","BUILTIN_PALETTES","describeColor","BASIC_PALETTE","SwatchStrip","Powerline","gestureRouteSegments","GestureRoute","FallthroughDiagram","pickActiveSection","PrefsPane","PrefsForm","useScrollSpy","PrefsRail","PrefsDialog","SelectionPanel","ResizeHandle","Sidebar","SidebarPanel","StatusBarItem","StatusBarSpacer","StatusBar","ToolButton","ToolGroup","ToolPalette","Checkbox","Tabs","TabList","TabPanel","Tab","filterTree","treeBranchIds","Tree","MenuButton","ComboBoxItem","ComboBox","RangeSlider","DetentSlider","DialogTrigger","Callout","toast","defaultToastQueue","ToastQueue","createToastQueue","ToastRegion","PointPlotter","tokenCategory","refitScale","TOKEN_CATEGORIES","inferTokenType","TokenPanel","linearScale","logScale","BandEditor","Jog","EasingPicker","easingLabel","Transport","sampleEasing","Timeline","EASING_NAMES","samePath","easingBezier","AnimatedTimeline","oklchToHex","oklchDegToHex","chromaAt","lo","hi","curve","L","rgb","r","g","b","hexToRgba","hex","rampColor","options","a","from","to","rgbaToHex","interpolateSrgb","t","space","hue","chroma","s","hexToOklchDeg","H","colorRamp","steps","i","useAsyncOptions","inputValue","setInputValue","useState","setOptions","isLoading","setIsLoading","loadError","setLoadError","loadRef","useLatest","load","issued","useRef","applied","inFlight","useEffect","minLength","timer","mine","controller","next","error","debounceMs","useCallback","dlog"],"sources":["../src/color/oklch.ts","../src/color/ramp.ts","../src/useAsyncOptions.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchDegToHex } from '@weasel-js/core';\n\n/**\n * A chroma envelope over lightness, as three linear segments: flat at `cBot`\n * below `lRange[0]`, rising to `cPeak` at `midL`, falling to `cTop` at\n * `lRange[1]`, flat beyond. Keeps a color ramp inside gamut at the light and\n * dark ends while staying saturated through the middle.\n */\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\n/** A single lightness/chroma sample. */\nexport type ChromaCurvePoint = { L: number; C: number };\n\n/**\n * Converts an OKLCH color to a gamut-clipped `#rrggbb` string. Hue is in\n * degrees, unlike the kit's OKLab helpers which take radians.\n */\nexport const oklchToHex = oklchDegToHex;\n\n/** Evaluates a {@link ChromaCurve} at a lightness, clamping outside its range. */\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n","import {\n hexToOklchDeg,\n hexToRgba,\n interpolateSrgb,\n rgbaToHex,\n type ColorInterpolationSpace,\n type HueInterpolation,\n} from '@weasel-js/core';\nimport { chromaAt, oklchToHex, type ChromaCurve } from './oklch';\n\n/**\n * How {@link rampColor} and {@link colorRamp} travel between two endpoints.\n *\n * What each space interpolates:\n *\n * | `space` | components lerped | hue |\n * | --------------- | ---------------------------- | -------------------- |\n * | `'oklch'` | L, C, H | around the wheel |\n * | `'hsl'` | H, S, L | around the wheel |\n * | `'oklab'` | L, a, b | through the wheel |\n * | `'srgb'` | gamma-encoded R, G, B | through the wheel |\n * | `'srgb-linear'` | linear-light R, G, B | through the wheel |\n *\n * A lightness ramp is two endpoints that differ in lightness, and a hue ramp\n * two that differ in hue: the polar spaces keep chroma or saturation fixed\n * while they move, and the others cut a straight line between the two colors,\n * which for a hue ramp passes through gray.\n *\n * `chroma` is an OKLCH envelope in every space, since {@link ChromaCurve}'s\n * numbers are OKLCH chroma over OKLCH lightness. It runs after the\n * interpolation: each sample keeps its lightness and hue, and its chroma is\n * replaced with the curve's value at that lightness. A sample left with no\n * hue (a gray midpoint) takes the hue an OKLCH ramp would have had there.\n */\nexport interface ColorRampOptions {\n /** Default `'oklch'`. */\n space?: ColorInterpolationSpace;\n /** Polar spaces only. Default `'shorter'`. */\n hue?: HueInterpolation;\n chroma?: ChromaCurve;\n}\n\nconst rgb = (hex: string): [number, number, number] => {\n const [r, g, b] = hexToRgba(hex);\n return [r, g, b];\n};\n\n/** One sample of a ramp from `from` to `to` (`#rrggbb`), `t` in 0..1. */\nexport function rampColor(from: string, to: string, t: number, options: ColorRampOptions = {}): string {\n const { space = 'oklch', hue = 'shorter', chroma } = options;\n const a = rgb(from);\n const b = rgb(to);\n const hex = rgbaToHex(interpolateSrgb(a, b, t, space, hue));\n if (!chroma) return hex;\n const s = hexToOklchDeg(hex);\n const H = s.C > 1e-4 ? s.H : hexToOklchDeg(rgbaToHex(interpolateSrgb(a, b, t, 'oklch', hue))).H;\n return oklchToHex(s.L, chromaAt(s.L, chroma), H);\n}\n\n/** `steps` evenly spaced samples from `from` to `to`, both ends included. */\nexport function colorRamp(from: string, to: string, steps: number, options: ColorRampOptions = {}): string[] {\n if (steps <= 1) return steps === 1 ? [rampColor(from, to, 0, options)] : [];\n return Array.from({ length: steps }, (_, i) => rampColor(from, to, i / (steps - 1), options));\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useLatest } from '@weasel-js/core';\nimport type { ComboBoxOption } from './components/ComboBox/ComboBox';\n\ntype Key = string | number;\n\n/** An option list keyed to the value type its combo box commits. */\nexport type AsyncOption<T extends Key> = ComboBoxOption & { value: T };\n\n/** Options for {@link useAsyncOptions}. */\nexport type UseAsyncOptionsProps<T extends Key> = {\n /**\n * Fetches the options for a query. The signal aborts when a later keystroke\n * supersedes this call, so a `fetch` should forward it.\n */\n load: (query: string, signal: AbortSignal) => Promise<ReadonlyArray<AsyncOption<T>>>;\n /** Quiet period before a query is sent. */\n debounceMs?: number;\n /** Shorter queries are not sent, and empty the options. */\n minLength?: number;\n};\n\n/** What {@link useAsyncOptions} returns, shaped to spread into a `ComboBox`. */\nexport type AsyncOptionsResult<T extends Key> = {\n options: ReadonlyArray<AsyncOption<T>>;\n isLoading: boolean;\n loadError: unknown | null;\n inputValue: string;\n onInputChange: (next: string) => void;\n};\n\n/**\n * Drives a combo box whose options come from a server: debounces the query,\n * discards responses overtaken by a later one, and reports a failed load\n * separately from an empty result.\n *\n * `options` holds the last *resolved* list and is never emptied to mean\n * \"working\", so the previous results stay on screen — and stay arrowable —\n * while the next request is in flight.\n */\nexport function useAsyncOptions<T extends Key = string>({\n load,\n debounceMs = 150,\n minLength = 0,\n}: UseAsyncOptionsProps<T>): AsyncOptionsResult<T> {\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<ReadonlyArray<AsyncOption<T>>>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [loadError, setLoadError] = useState<unknown | null>(null);\n\n // Read through a ref: a consumer passing an inline arrow re-creates `load`\n // every render, and depending on it directly would refire the request.\n const loadRef = useLatest(load);\n\n // A monotonic id per request, and the highest one whose result has been\n // applied. A liveness flag cannot do this job: two requests from adjacent\n // keystrokes are both live, so the slower one overwrites the newer result\n // if it lands second.\n const issued = useRef(0);\n const applied = useRef(0);\n const inFlight = useRef<AbortController | null>(null);\n\n useEffect(() => {\n if (inputValue.length < minLength) {\n inFlight.current?.abort();\n inFlight.current = null;\n applied.current = issued.current;\n setOptions([]);\n setIsLoading(false);\n setLoadError(null);\n return;\n }\n\n const timer = setTimeout(() => {\n const mine = ++issued.current;\n const controller = new AbortController();\n inFlight.current?.abort();\n inFlight.current = controller;\n setIsLoading(true);\n\n loadRef.current(inputValue, controller.signal).then(\n (next) => {\n if (mine <= applied.current) return;\n applied.current = mine;\n setOptions(next);\n setLoadError(null);\n setIsLoading(false);\n },\n (error: unknown) => {\n if (controller.signal.aborted || mine <= applied.current) return;\n applied.current = mine;\n setLoadError(error);\n setIsLoading(false);\n },\n );\n }, debounceMs);\n\n return () => clearTimeout(timer);\n }, [inputValue, debounceMs, minLength, loadRef]);\n\n useEffect(() => () => inFlight.current?.abort(), []);\n\n const onInputChange = useCallback((next: string) => setInputValue(next), []);\n\n return { options, isLoading, loadError, inputValue, onInputChange };\n}\n"],"mappings":"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"}
@@ -16,6 +16,12 @@ export interface OverlayPortalProviderProps {
16
16
  * own `portalContainer` prop still wins.
17
17
  */
18
18
  export declare function OverlayPortalProvider({ container, children }: OverlayPortalProviderProps): import("react").JSX.Element;
19
+ /**
20
+ * The container an overlay has been *told* to use: its own `portalContainer`
21
+ * prop, else the nearest {@link OverlayPortalProvider}. `undefined` when
22
+ * neither said, which leaves the choice to the overlay.
23
+ */
24
+ export declare function useAssignedPortalContainer(explicit?: Element | null): Element | null | undefined;
19
25
  /** The `portalContainer` prop every weasel overlay accepts. */
20
26
  export interface OverlayPortalProps {
21
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"portalHost.d.ts","sourceRoot":"","sources":["../../src/overlays/portalHost.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAW/F;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAEtF;AAKD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,0BAA0B,+BAIxF;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAEzE;4EAC4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG;IAC3D,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;CAClC,CAeA"}
1
+ {"version":3,"file":"portalHost.d.ts","sourceRoot":"","sources":["../../src/overlays/portalHost.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAW/F;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAEtF;AAKD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,0BAA0B,+BAIxF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAGhG;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAEzE;4EAC4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG;IAC3D,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;CAClC,CASA"}
@@ -3,8 +3,11 @@ import type { TrackCtx } from './components/Slider';
3
3
  /**
4
4
  * Options for {@link paintGradientTrack}.
5
5
  *
6
- * `gradient` maps a normalized position along the track (0 to 1) to a CSS
7
- * color; `samples` is how many stops the resulting linear-gradient uses.
6
+ * `gradient` maps a normalized position along the slider's value span (0 to
7
+ * 1) to a CSS color; `samples` is how many stops the resulting
8
+ * linear-gradient uses. The ramp is laid on the same span as the thumbs, so a
9
+ * thumb at 0.3 sits over `gradient(0.3)`; any track beyond the span takes the
10
+ * end colors.
8
11
  * `activeRange`, given in the slider's own value units, keeps that span at
9
12
  * full strength and dims + hatches the rest.
10
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"paintGradientTrack.d.ts","sourceRoot":"","sources":["../src/paintGradientTrack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,CAuCxF"}
1
+ {"version":3,"file":"paintGradientTrack.d.ts","sourceRoot":"","sources":["../src/paintGradientTrack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,CAwCxF"}