@weasel-js/ui 1.4.4 → 1.5.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 (311) hide show
  1. package/dist/chunks/{ActionBar-DxGp3WuZ.js → ActionBar-GZdcfdQL.js} +1 -2
  2. package/dist/chunks/{ActionBar-DxGp3WuZ.js.map → ActionBar-GZdcfdQL.js.map} +1 -1
  3. package/dist/chunks/{ActionsBar-D1VFreoj.js → ActionsBar-Fhx_40iP.js} +2 -2
  4. package/dist/chunks/{ActionsBar-D1VFreoj.js.map → ActionsBar-Fhx_40iP.js.map} +1 -1
  5. package/dist/chunks/{BandEditor-CUlbOlJi.js → BandEditor-D8I5Uun-.js} +93 -98
  6. package/dist/chunks/BandEditor-D8I5Uun-.js.map +1 -0
  7. package/dist/chunks/{Callout-Dvt6lqVn.js → Callout-cx5_CWcW.js} +1 -1
  8. package/dist/chunks/{Callout-Dvt6lqVn.js.map → Callout-cx5_CWcW.js.map} +1 -1
  9. package/dist/chunks/{Checkbox-D-pVpobU.js → Checkbox-BZZsPaVF.js} +1 -1
  10. package/dist/chunks/{Checkbox-D-pVpobU.js.map → Checkbox-BZZsPaVF.js.map} +1 -1
  11. package/dist/chunks/{ColorField-C20aRvCg.js → ColorField-YVf8irfr.js} +2 -2
  12. package/dist/chunks/{ColorField-C20aRvCg.js.map → ColorField-YVf8irfr.js.map} +1 -1
  13. package/dist/chunks/ComboBox-D57tNYDD.js +138 -0
  14. package/dist/chunks/ComboBox-D57tNYDD.js.map +1 -0
  15. package/dist/chunks/CurveEditor-BXiMoN9d.js +533 -0
  16. package/dist/chunks/CurveEditor-BXiMoN9d.js.map +1 -0
  17. package/dist/chunks/DetentSlider-BWNSv07Z.js +72 -0
  18. package/dist/chunks/DetentSlider-BWNSv07Z.js.map +1 -0
  19. package/dist/chunks/{Dialog-CYBLjwbd.js → Dialog-DuOzsR2g.js} +1 -1
  20. package/dist/chunks/{Dialog-CYBLjwbd.js.map → Dialog-DuOzsR2g.js.map} +1 -1
  21. package/dist/chunks/{Disclosure-DiA6UKdM.js → Disclosure-9UgDzc7Z.js} +6 -6
  22. package/dist/chunks/{Disclosure-DiA6UKdM.js.map → Disclosure-9UgDzc7Z.js.map} +1 -1
  23. package/dist/chunks/{Field-dzlxOGxT.js → Field-BNqvUJfg.js} +1 -1
  24. package/dist/chunks/{Field-dzlxOGxT.js.map → Field-BNqvUJfg.js.map} +1 -1
  25. package/dist/chunks/{FontFamilySelect-DIJ4phXz.js → FontFamilySelect-CO19kyOO.js} +2 -2
  26. package/dist/chunks/{FontFamilySelect-DIJ4phXz.js.map → FontFamilySelect-CO19kyOO.js.map} +1 -1
  27. package/dist/chunks/{GradientEditor-BLpAtMDK.js → GradientEditor-B_ymIr4Q.js} +74 -51
  28. package/dist/chunks/GradientEditor-B_ymIr4Q.js.map +1 -0
  29. package/dist/chunks/Icon-QhLhaGFe.js +498 -0
  30. package/dist/chunks/Icon-QhLhaGFe.js.map +1 -0
  31. package/dist/chunks/{InlineRange-CcfzY80y.js → InlineRange-DdIlfGqG.js} +2 -2
  32. package/dist/chunks/{InlineRange-CcfzY80y.js.map → InlineRange-DdIlfGqG.js.map} +1 -1
  33. package/dist/chunks/{Input-CoKOtyD0.js → Input-B9Vh7ASP.js} +2 -2
  34. package/dist/chunks/{Input-CoKOtyD0.js.map → Input-B9Vh7ASP.js.map} +1 -1
  35. package/dist/chunks/Jog-BYrxbAQU.js +81 -0
  36. package/dist/chunks/Jog-BYrxbAQU.js.map +1 -0
  37. package/dist/chunks/{Keycaps-DSeq6QWH.js → Keycaps-CGNQV2Pz.js} +5 -5
  38. package/dist/chunks/Keycaps-CGNQV2Pz.js.map +1 -0
  39. package/dist/chunks/MenuButton-DGE-0DP0.js +60 -0
  40. package/dist/chunks/MenuButton-DGE-0DP0.js.map +1 -0
  41. package/dist/chunks/MeshEditor-CHoGQ9K8.js +123 -0
  42. package/dist/chunks/MeshEditor-CHoGQ9K8.js.map +1 -0
  43. package/dist/chunks/NumberField-CQzS6TjF.js +112 -0
  44. package/dist/chunks/NumberField-CQzS6TjF.js.map +1 -0
  45. package/dist/chunks/{OptionsBar-D_Cd3ZYs.js → OptionsBar-BWaYG_OH.js} +2 -2
  46. package/dist/chunks/{OptionsBar-D_Cd3ZYs.js.map → OptionsBar-BWaYG_OH.js.map} +1 -1
  47. package/dist/chunks/PaintField-BVYMu3OI.js +62 -0
  48. package/dist/chunks/PaintField-BVYMu3OI.js.map +1 -0
  49. package/dist/chunks/PaintInput-BzAHCKro.js +131 -0
  50. package/dist/chunks/PaintInput-BzAHCKro.js.map +1 -0
  51. package/dist/chunks/{PatternPicker-Ba22Bf4L.js → PatternPicker-C4OryrYi.js} +2 -2
  52. package/dist/chunks/{PatternPicker-Ba22Bf4L.js.map → PatternPicker-C4OryrYi.js.map} +1 -1
  53. package/dist/chunks/Plot2D-Czvyt_vG.js +292 -0
  54. package/dist/chunks/Plot2D-Czvyt_vG.js.map +1 -0
  55. package/dist/chunks/{PointPlotter-CbDKVggs.js → PointPlotter-Xvb98GwB.js} +2 -2
  56. package/dist/chunks/PointPlotter-Xvb98GwB.js.map +1 -0
  57. package/dist/chunks/{Powerline-BaHDJlcO.js → Powerline-B_EH-7Z-.js} +1 -1
  58. package/dist/chunks/{Powerline-BaHDJlcO.js.map → Powerline-B_EH-7Z-.js.map} +1 -1
  59. package/dist/chunks/Prefs-FuaJBs3t.js +308 -0
  60. package/dist/chunks/Prefs-FuaJBs3t.js.map +1 -0
  61. package/dist/chunks/Properties-B3KU69NI.js +874 -0
  62. package/dist/chunks/Properties-B3KU69NI.js.map +1 -0
  63. package/dist/chunks/{RadioGroup-B2_LUgDp.js → RadioGroup-C6xpdQNg.js} +2 -2
  64. package/dist/chunks/{RadioGroup-B2_LUgDp.js.map → RadioGroup-C6xpdQNg.js.map} +1 -1
  65. package/dist/chunks/{RangeSlider-S2R3zA8N.js → RangeSlider-CzgeGLVS.js} +1 -1
  66. package/dist/chunks/{RangeSlider-S2R3zA8N.js.map → RangeSlider-CzgeGLVS.js.map} +1 -1
  67. package/dist/chunks/{ResizeHandle-BrCO0JrH.js → ResizeHandle-1Ey8AOij.js} +1 -1
  68. package/dist/chunks/{ResizeHandle-BrCO0JrH.js.map → ResizeHandle-1Ey8AOij.js.map} +1 -1
  69. package/dist/chunks/{Select-CacMfs4v.js → Select-BMYVh10x.js} +20 -17
  70. package/dist/chunks/Select-BMYVh10x.js.map +1 -0
  71. package/dist/chunks/{SelectionPanel-C59wavdA.js → SelectionPanel-DTpcQidl.js} +211 -201
  72. package/dist/chunks/SelectionPanel-DTpcQidl.js.map +1 -0
  73. package/dist/chunks/{Sidebar-BvwjZiFm.js → Sidebar-BlUjn8lD.js} +1 -1
  74. package/dist/chunks/{Sidebar-BvwjZiFm.js.map → Sidebar-BlUjn8lD.js.map} +1 -1
  75. package/dist/chunks/{SidebarPanel-D5Ua2vyP.js → SidebarPanel-BqHfz6VK.js} +2 -2
  76. package/dist/chunks/{SidebarPanel-D5Ua2vyP.js.map → SidebarPanel-BqHfz6VK.js.map} +1 -1
  77. package/dist/chunks/Slider-B2ywUZH6.js +381 -0
  78. package/dist/chunks/Slider-B2ywUZH6.js.map +1 -0
  79. package/dist/chunks/{StatusBar-Bqv4D0dW.js → StatusBar-BFt7Yw5O.js} +1 -1
  80. package/dist/chunks/{StatusBar-Bqv4D0dW.js.map → StatusBar-BFt7Yw5O.js.map} +1 -1
  81. package/dist/chunks/{Switch-C4NU-me1.js → Switch-Om3t3ASc.js} +1 -1
  82. package/dist/chunks/{Switch-C4NU-me1.js.map → Switch-Om3t3ASc.js.map} +1 -1
  83. package/dist/chunks/{Tabs-BT3CDkoQ.js → Tabs-EAvYywil.js} +1 -1
  84. package/dist/chunks/{Tabs-BT3CDkoQ.js.map → Tabs-EAvYywil.js.map} +1 -1
  85. package/dist/chunks/Timeline-BEyKaBXl.js +916 -0
  86. package/dist/chunks/Timeline-BEyKaBXl.js.map +1 -0
  87. package/dist/chunks/{Toast-B7ylq7fz.js → Toast-iqLDD_XZ.js} +1 -1
  88. package/dist/chunks/{Toast-B7ylq7fz.js.map → Toast-iqLDD_XZ.js.map} +1 -1
  89. package/dist/chunks/{ToggleBar-Bxwv6xvj.js → ToggleBar--9As2PWG.js} +8 -8
  90. package/dist/chunks/ToggleBar--9As2PWG.js.map +1 -0
  91. package/dist/chunks/TokenPanel-BL9hlq7x.js +374 -0
  92. package/dist/chunks/TokenPanel-BL9hlq7x.js.map +1 -0
  93. package/dist/chunks/{ToolButton-CtDkqUIc.js → ToolButton-Dd-1T5aX.js} +1 -1
  94. package/dist/chunks/{ToolButton-CtDkqUIc.js.map → ToolButton-Dd-1T5aX.js.map} +1 -1
  95. package/dist/chunks/{ToolGroup-zDtqt0QJ.js → ToolGroup-BBI-W-Gm.js} +1 -1
  96. package/dist/chunks/{ToolGroup-zDtqt0QJ.js.map → ToolGroup-BBI-W-Gm.js.map} +1 -1
  97. package/dist/chunks/{ToolPalette-BbrMHfQ9.js → ToolPalette-BmTDDpmz.js} +3 -3
  98. package/dist/chunks/{ToolPalette-BbrMHfQ9.js.map → ToolPalette-BmTDDpmz.js.map} +1 -1
  99. package/dist/chunks/createKeyframeLayer-7j7ukrSx.js +699 -0
  100. package/dist/chunks/createKeyframeLayer-7j7ukrSx.js.map +1 -0
  101. package/dist/chunks/{icons-BV27dhKB.js → icons-Btrs-JD7.js} +35 -32
  102. package/dist/chunks/icons-Btrs-JD7.js.map +1 -0
  103. package/dist/chunks/number-f6PydOZK.js +52 -0
  104. package/dist/chunks/number-f6PydOZK.js.map +1 -0
  105. package/dist/chunks/range.module-DSsOIq1R.js +8 -0
  106. package/dist/chunks/range.module-DSsOIq1R.js.map +1 -0
  107. package/dist/chunks/{schema-CtWwGbqJ.js → schema-MCVT1MLv.js} +15 -9
  108. package/dist/chunks/schema-MCVT1MLv.js.map +1 -0
  109. package/dist/chunks/segmentedControl.module-DmeUMYe3.js +11 -0
  110. package/dist/chunks/segmentedControl.module-DmeUMYe3.js.map +1 -0
  111. package/dist/chunks/snap-B0WQwetQ.js +13 -0
  112. package/dist/chunks/snap-B0WQwetQ.js.map +1 -0
  113. package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
  114. package/dist/components/ActionBar/index.js +1 -1
  115. package/dist/components/ActionsBar/index.js +1 -1
  116. package/dist/components/BandEditor/BandEditor.d.ts.map +1 -1
  117. package/dist/components/BandEditor/index.js +1 -1
  118. package/dist/components/BandEditor/scale.d.ts +1 -8
  119. package/dist/components/BandEditor/scale.d.ts.map +1 -1
  120. package/dist/components/Callout/index.js +1 -1
  121. package/dist/components/Checkbox/index.js +1 -1
  122. package/dist/components/ColorField/index.js +1 -1
  123. package/dist/components/ComboBox/ComboBox.d.ts +36 -0
  124. package/dist/components/ComboBox/ComboBox.d.ts.map +1 -1
  125. package/dist/components/ComboBox/index.d.ts +1 -1
  126. package/dist/components/ComboBox/index.d.ts.map +1 -1
  127. package/dist/components/ComboBox/index.js +1 -1
  128. package/dist/components/CurveEditor/CurveEditor.d.ts +4 -2
  129. package/dist/components/CurveEditor/CurveEditor.d.ts.map +1 -1
  130. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts +8 -1
  131. package/dist/components/CurveEditor/LayeredCurveEditor.d.ts.map +1 -1
  132. package/dist/components/CurveEditor/createFunctionLayer.d.ts +2 -0
  133. package/dist/components/CurveEditor/createFunctionLayer.d.ts.map +1 -1
  134. package/dist/components/CurveEditor/createKeyframeLayer.d.ts +70 -0
  135. package/dist/components/CurveEditor/createKeyframeLayer.d.ts.map +1 -0
  136. package/dist/components/CurveEditor/index.d.ts +3 -1
  137. package/dist/components/CurveEditor/index.d.ts.map +1 -1
  138. package/dist/components/CurveEditor/index.js +4 -2
  139. package/dist/components/CurveEditor/layerTypes.d.ts +8 -3
  140. package/dist/components/CurveEditor/layerTypes.d.ts.map +1 -1
  141. package/dist/components/DetentSlider/DetentSlider.d.ts +9 -10
  142. package/dist/components/DetentSlider/DetentSlider.d.ts.map +1 -1
  143. package/dist/components/DetentSlider/index.js +1 -1
  144. package/dist/components/Dialog/index.js +1 -1
  145. package/dist/components/Disclosure/index.js +1 -1
  146. package/dist/components/Field/index.js +1 -1
  147. package/dist/components/FontFamilySelect/index.js +1 -1
  148. package/dist/components/GradientEditor/GradientEditor.d.ts +3 -0
  149. package/dist/components/GradientEditor/GradientEditor.d.ts.map +1 -1
  150. package/dist/components/GradientEditor/index.js +1 -1
  151. package/dist/components/InlineRange/index.js +1 -1
  152. package/dist/components/Input/index.js +1 -1
  153. package/dist/components/Jog/Jog.d.ts +28 -0
  154. package/dist/components/Jog/Jog.d.ts.map +1 -0
  155. package/dist/components/Jog/index.d.ts +3 -0
  156. package/dist/components/Jog/index.d.ts.map +1 -0
  157. package/dist/components/Jog/index.js +2 -0
  158. package/dist/components/Keycaps/index.js +1 -1
  159. package/dist/components/MenuButton/MenuButton.d.ts +29 -0
  160. package/dist/components/MenuButton/MenuButton.d.ts.map +1 -0
  161. package/dist/components/MenuButton/index.d.ts +3 -0
  162. package/dist/components/MenuButton/index.d.ts.map +1 -0
  163. package/dist/components/MenuButton/index.js +2 -0
  164. package/dist/components/MeshEditor/MeshEditor.d.ts +30 -0
  165. package/dist/components/MeshEditor/MeshEditor.d.ts.map +1 -0
  166. package/dist/components/MeshEditor/index.d.ts +3 -0
  167. package/dist/components/MeshEditor/index.d.ts.map +1 -0
  168. package/dist/components/MeshEditor/index.js +2 -0
  169. package/dist/components/NumberField/UnitField.d.ts +30 -0
  170. package/dist/components/NumberField/UnitField.d.ts.map +1 -0
  171. package/dist/components/NumberField/index.d.ts +2 -0
  172. package/dist/components/NumberField/index.d.ts.map +1 -1
  173. package/dist/components/NumberField/index.js +2 -2
  174. package/dist/components/OptionsBar/index.js +1 -1
  175. package/dist/components/PaintField/PaintField.d.ts +36 -0
  176. package/dist/components/PaintField/PaintField.d.ts.map +1 -0
  177. package/dist/components/PaintField/index.d.ts +3 -0
  178. package/dist/components/PaintField/index.d.ts.map +1 -0
  179. package/dist/components/PaintField/index.js +2 -0
  180. package/dist/components/PaintInput/PaintInput.d.ts.map +1 -1
  181. package/dist/components/PaintInput/index.js +1 -1
  182. package/dist/components/PatternPicker/index.js +1 -1
  183. package/dist/components/Plot2D/Plot2D.d.ts +38 -2
  184. package/dist/components/Plot2D/Plot2D.d.ts.map +1 -1
  185. package/dist/components/Plot2D/index.d.ts +2 -1
  186. package/dist/components/Plot2D/index.d.ts.map +1 -1
  187. package/dist/components/Plot2D/index.js +2 -2
  188. package/dist/components/Plot2D/ticks.d.ts +43 -0
  189. package/dist/components/Plot2D/ticks.d.ts.map +1 -0
  190. package/dist/components/PointPlotter/PointPlotter.d.ts +3 -1
  191. package/dist/components/PointPlotter/PointPlotter.d.ts.map +1 -1
  192. package/dist/components/PointPlotter/index.js +1 -1
  193. package/dist/components/Powerline/index.js +1 -1
  194. package/dist/components/Prefs/PrefsForm.d.ts +4 -0
  195. package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
  196. package/dist/components/Prefs/index.d.ts +1 -1
  197. package/dist/components/Prefs/index.d.ts.map +1 -1
  198. package/dist/components/Prefs/index.js +3 -3
  199. package/dist/components/Prefs/schema.d.ts +5 -2
  200. package/dist/components/Prefs/schema.d.ts.map +1 -1
  201. package/dist/components/Properties/PinDot.d.ts +18 -0
  202. package/dist/components/Properties/PinDot.d.ts.map +1 -0
  203. package/dist/components/Properties/PropertyPanel.d.ts +106 -12
  204. package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
  205. package/dist/components/Properties/index.d.ts +4 -2
  206. package/dist/components/Properties/index.d.ts.map +1 -1
  207. package/dist/components/Properties/index.js +2 -2
  208. package/dist/components/Properties/storyLayouts.d.ts +1 -1
  209. package/dist/components/RadioGroup/index.js +1 -1
  210. package/dist/components/RangeSlider/index.js +1 -1
  211. package/dist/components/ResizeHandle/index.js +1 -1
  212. package/dist/components/Select/Select.d.ts +8 -0
  213. package/dist/components/Select/Select.d.ts.map +1 -1
  214. package/dist/components/Select/index.js +1 -1
  215. package/dist/components/SelectionPanel/index.js +1 -1
  216. package/dist/components/Sidebar/index.js +1 -1
  217. package/dist/components/SidebarPanel/index.js +1 -1
  218. package/dist/components/Slider/Slider.d.ts +19 -1
  219. package/dist/components/Slider/Slider.d.ts.map +1 -1
  220. package/dist/components/Slider/index.d.ts +1 -1
  221. package/dist/components/Slider/index.d.ts.map +1 -1
  222. package/dist/components/Slider/index.js +1 -1
  223. package/dist/components/StatusBar/index.js +1 -1
  224. package/dist/components/Switch/index.js +1 -1
  225. package/dist/components/Tabs/index.js +1 -1
  226. package/dist/components/Timeline/Lane.d.ts +9 -7
  227. package/dist/components/Timeline/Lane.d.ts.map +1 -1
  228. package/dist/components/Timeline/LaneGraph.d.ts +24 -0
  229. package/dist/components/Timeline/LaneGraph.d.ts.map +1 -0
  230. package/dist/components/Timeline/Ruler.d.ts.map +1 -1
  231. package/dist/components/Timeline/Timeline.d.ts.map +1 -1
  232. package/dist/components/Timeline/index.js +2 -2
  233. package/dist/components/Timeline/keys.d.ts +4 -3
  234. package/dist/components/Timeline/keys.d.ts.map +1 -1
  235. package/dist/components/Timeline/timeScale.d.ts +2 -0
  236. package/dist/components/Timeline/timeScale.d.ts.map +1 -1
  237. package/dist/components/Toast/index.js +1 -1
  238. package/dist/components/ToggleBar/index.js +1 -1
  239. package/dist/components/TokenPanel/TokenPanel.d.ts +33 -0
  240. package/dist/components/TokenPanel/TokenPanel.d.ts.map +1 -0
  241. package/dist/components/TokenPanel/color.d.ts +7 -0
  242. package/dist/components/TokenPanel/color.d.ts.map +1 -0
  243. package/dist/components/TokenPanel/index.d.ts +5 -0
  244. package/dist/components/TokenPanel/index.d.ts.map +1 -0
  245. package/dist/components/TokenPanel/index.js +2 -0
  246. package/dist/components/TokenPanel/tokenTypes.d.ts +31 -0
  247. package/dist/components/TokenPanel/tokenTypes.d.ts.map +1 -0
  248. package/dist/components/ToolButton/index.js +1 -1
  249. package/dist/components/ToolGroup/index.js +1 -1
  250. package/dist/components/ToolPalette/index.js +1 -1
  251. package/dist/components/paintValue.d.ts +8 -0
  252. package/dist/components/paintValue.d.ts.map +1 -1
  253. package/dist/format/number.d.ts +16 -0
  254. package/dist/format/number.d.ts.map +1 -1
  255. package/dist/handles.d.ts +20 -0
  256. package/dist/handles.d.ts.map +1 -0
  257. package/dist/icons/Icon.d.ts +10 -2
  258. package/dist/icons/Icon.d.ts.map +1 -1
  259. package/dist/icons/index.d.ts +6 -3
  260. package/dist/icons/index.d.ts.map +1 -1
  261. package/dist/icons/paths.d.ts +270 -16
  262. package/dist/icons/paths.d.ts.map +1 -1
  263. package/dist/index.d.ts +11 -1
  264. package/dist/index.d.ts.map +1 -1
  265. package/dist/index.js +105 -65
  266. package/dist/index.js.map +1 -1
  267. package/dist/paintPreview.d.ts +13 -0
  268. package/dist/paintPreview.d.ts.map +1 -0
  269. package/dist/snap.d.ts +5 -0
  270. package/dist/snap.d.ts.map +1 -0
  271. package/dist/style.css +1 -1
  272. package/dist/useAsyncOptions.d.ts +38 -0
  273. package/dist/useAsyncOptions.d.ts.map +1 -0
  274. package/package.json +8 -6
  275. package/dist/chunks/BandEditor-CUlbOlJi.js.map +0 -1
  276. package/dist/chunks/ComboBox-BBRRWvdc.js +0 -107
  277. package/dist/chunks/ComboBox-BBRRWvdc.js.map +0 -1
  278. package/dist/chunks/CurveEditor-DtjdpJVB.js +0 -784
  279. package/dist/chunks/CurveEditor-DtjdpJVB.js.map +0 -1
  280. package/dist/chunks/DetentSlider-BpD7bgjN.js +0 -83
  281. package/dist/chunks/DetentSlider-BpD7bgjN.js.map +0 -1
  282. package/dist/chunks/GradientEditor-BLpAtMDK.js.map +0 -1
  283. package/dist/chunks/Icon-DBXtBB1f.js +0 -101
  284. package/dist/chunks/Icon-DBXtBB1f.js.map +0 -1
  285. package/dist/chunks/Keycaps-DSeq6QWH.js.map +0 -1
  286. package/dist/chunks/NumberField-DBowmOfe.js +0 -62
  287. package/dist/chunks/NumberField-DBowmOfe.js.map +0 -1
  288. package/dist/chunks/PaintInput-B7AScmHN.js +0 -118
  289. package/dist/chunks/PaintInput-B7AScmHN.js.map +0 -1
  290. package/dist/chunks/Plot2D-C97pO13t.js +0 -134
  291. package/dist/chunks/Plot2D-C97pO13t.js.map +0 -1
  292. package/dist/chunks/PointPlotter-CbDKVggs.js.map +0 -1
  293. package/dist/chunks/Prefs-4JSEtuU-.js +0 -294
  294. package/dist/chunks/Prefs-4JSEtuU-.js.map +0 -1
  295. package/dist/chunks/Properties-BpUYKi7-.js +0 -758
  296. package/dist/chunks/Properties-BpUYKi7-.js.map +0 -1
  297. package/dist/chunks/Select-CacMfs4v.js.map +0 -1
  298. package/dist/chunks/SelectionPanel-C59wavdA.js.map +0 -1
  299. package/dist/chunks/Slider-Bs-KSYgQ.js +0 -303
  300. package/dist/chunks/Slider-Bs-KSYgQ.js.map +0 -1
  301. package/dist/chunks/Timeline-Bz806JbE.js +0 -908
  302. package/dist/chunks/Timeline-Bz806JbE.js.map +0 -1
  303. package/dist/chunks/ToggleBar-Bxwv6xvj.js.map +0 -1
  304. package/dist/chunks/icons-BV27dhKB.js.map +0 -1
  305. package/dist/chunks/number-Bv1nbhOJ.js +0 -18
  306. package/dist/chunks/number-Bv1nbhOJ.js.map +0 -1
  307. package/dist/chunks/range.module-CvSfABmu.js +0 -8
  308. package/dist/chunks/range.module-CvSfABmu.js.map +0 -1
  309. package/dist/chunks/schema-CtWwGbqJ.js.map +0 -1
  310. package/dist/chunks/segmentedControl.module-BgvAPkSZ.js +0 -11
  311. package/dist/chunks/segmentedControl.module-BgvAPkSZ.js.map +0 -1
@@ -13,6 +13,23 @@ export type ComboBoxOption = {
13
13
  isDisabled?: boolean;
14
14
  };
15
15
  type Key = string | number;
16
+ /**
17
+ * How the typed text narrows the options.
18
+ *
19
+ * `'contains'` is a locale-aware substring match over each option's text.
20
+ * `'none'` shows every option given — what a list a server already filtered
21
+ * and ranked needs, since a second pass would drop rows that do not contain
22
+ * the query and reorder whatever survived.
23
+ */
24
+ export type ComboBoxFilter = 'contains' | 'none' | ((textValue: string, inputValue: string) => boolean);
25
+ /** What the user committed: an option they picked, or text they typed. */
26
+ export type ComboBoxCommit<T extends Key = string> = {
27
+ source: 'option';
28
+ key: T;
29
+ } | {
30
+ source: 'text';
31
+ text: string;
32
+ };
16
33
  /**
17
34
  * Props for {@link ComboBox}, on top of React Aria's `ComboBox` props, with
18
35
  * the selection key narrowed to the option value type.
@@ -30,6 +47,25 @@ export type ComboBoxProps<T extends Key = string> = Omit<RACComboBoxProps<object
30
47
  defaultSelectedKey?: T;
31
48
  onSelectionChange?: (key: T | null) => void;
32
49
  emptyLabel?: ReactNode;
50
+ /** Shown in place of `emptyLabel` while `loadError` is set. */
51
+ errorLabel?: ReactNode;
52
+ /**
53
+ * How typed text narrows `options`. Defaults to `'contains'`. `'none'` also
54
+ * keeps the popover open on an empty collection: a list the kit does not
55
+ * filter can arrive empty from a server mid-query, and without that the
56
+ * popover closes and `emptyLabel` is never seen.
57
+ */
58
+ filter?: ComboBoxFilter;
59
+ /** Marks the options as out of date while the next set is being fetched. */
60
+ isLoading?: boolean;
61
+ /** A failed load, shown as `errorLabel` rather than as an empty corpus. */
62
+ loadError?: unknown | null;
63
+ /**
64
+ * Fires when the user commits — Enter on the active option, a click on one,
65
+ * or Enter on text matching none of them when `allowsCustomValue` is set.
66
+ * Empty text commits nothing.
67
+ */
68
+ onCommit?: (commit: ComboBoxCommit<T>) => void;
33
69
  /**
34
70
  * `'fill'` (the default) takes the width of whatever row the combo box sits
35
71
  * in. `'fit'` sizes the input to its widest option, so it neither swallows a
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAUL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,gBAAgB,IAAI,mBAAmB,EAC5C,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGtF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,oBAAoB,GAAG,mBAAmB,CAAC,GAAG;IAC1K,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,GAAG,GAAG,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,2CAmEvE;AAgBD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,GAAG;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB,2CAErE"}
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { ComboBox, ComboBoxItem } from './ComboBox';
2
- export type { ComboBoxProps, ComboBoxItemProps, ComboBoxOption } from './ComboBox';
2
+ export type { ComboBoxProps, ComboBoxItemProps, ComboBoxOption, ComboBoxCommit, ComboBoxFilter, } from './ComboBox';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/ComboBox-BBRRWvdc.js";
1
+ import { n as e, t } from "../../chunks/ComboBox-D57tNYDD.js";
2
2
  export { t as ComboBox, e as ComboBoxItem };
@@ -5,10 +5,10 @@
5
5
  * directly.
6
6
  */
7
7
  import { type CSSProperties, type ReactNode } from 'react';
8
- import { type GridSettings, type AxesSettings } from '../Plot2D';
8
+ import { type GridSettings, type AxesSettings, type TickSettings } from '../Plot2D';
9
9
  import type { InterpolationMode } from './interpolation';
10
10
  import { type ControlPoint, type CurveDomain, type EndpointMode, type AddPointMode, type CurveSettings, type FillSettings, type AnchorRenderProps } from './createFunctionLayer';
11
- export type { GridSettings, AxesSettings };
11
+ export type { GridSettings, AxesSettings, TickSettings };
12
12
  export type { ControlPoint, CurveDomain, EndpointMode, AddPointMode, CurveSettings, FillSettings, AnchorRenderProps, };
13
13
  /**
14
14
  * Props for {@link CurveEditor}. `onInput` fires throughout a gesture and
@@ -27,6 +27,8 @@ export interface CurveEditorProps {
27
27
  height: number;
28
28
  grid?: GridSettings | false | null;
29
29
  axes?: AxesSettings | false | null;
30
+ xTicks?: TickSettings | false | null;
31
+ yTicks?: TickSettings | false | null;
30
32
  curve?: CurveSettings | false | null;
31
33
  fill?: FillSettings | false | null;
32
34
  hideNonInteractive?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CurveEditor.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/CurveEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC3C,YAAY,EACV,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EACrD,aAAa,EAAE,YAAY,EAAE,iBAAiB,GAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAC;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACtD,+DAA+D;IAC/D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA4GlD"}
1
+ {"version":3,"file":"CurveEditor.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/CurveEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACzD,YAAY,EACV,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EACrD,aAAa,EAAE,YAAY,EAAE,iBAAiB,GAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAC;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACtD,+DAA+D;IAC/D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA8GlD"}
@@ -1,5 +1,5 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
- import { type GridSettings, type AxesSettings } from '../Plot2D';
2
+ import { type GridSettings, type AxesSettings, type TickSettings } from '../Plot2D';
3
3
  import type { CurveLayer } from './layerTypes';
4
4
  /**
5
5
  * A layer paired with the state the consumer holds for it. The editor never
@@ -29,11 +29,18 @@ export interface LayeredCurveEditorProps {
29
29
  yRange?: readonly [number, number];
30
30
  grid?: GridSettings | false | null;
31
31
  axes?: AxesSettings | false | null;
32
+ /** Ticks at x values. See `Plot2D.xTicks`. */
33
+ xTicks?: TickSettings | false | null;
34
+ /** Ticks at y values. See `Plot2D.yTicks`. */
35
+ yTicks?: TickSettings | false | null;
32
36
  /** Built-in undo/redo via Cmd/Ctrl+Z (Shift+Z or Y for redo) on the
33
37
  * focused SVG. Snapshots every layer's state on each commit; undo
34
38
  * fires `onLayerChange(id, prevState)` for each layer whose state
35
39
  * changed. Default `true`. */
36
40
  history?: boolean;
41
+ /** Accessible name for the plot, which is exposed as a group so the
42
+ * focusable marks layers render inside it stay reachable. */
43
+ 'aria-label'?: string;
37
44
  className?: string;
38
45
  style?: CSSProperties;
39
46
  /** Extra SVG content rendered behind all layers (under the lowest
@@ -1 +1 @@
1
- {"version":3,"file":"LayeredCurveEditor.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/LayeredCurveEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAOnB,OAAO,KAAK,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;CACV;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;2EACuE;IACvE,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C;+CAC2C;IAC3C,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAE/C;;0CAEsC;IACtC,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAE/D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IAEnC;;;mCAG+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;qCAEiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAyUhE"}
1
+ {"version":3,"file":"LayeredCurveEditor.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/LayeredCurveEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAOnB,OAAO,KAAK,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;CACV;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;2EACuE;IACvE,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C;+CAC2C;IAC3C,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAE/C;;0CAEsC;IACtC,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAE/D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IAErC;;;mCAG+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;kEAC8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;qCAEiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CA2VhE"}
@@ -82,6 +82,8 @@ export interface FunctionLayerConfig {
82
82
  * sub-range of the plot (e.g. a bevel curve occupying x ∈ [0, b]
83
83
  * while the editor's xRange is [0, halfWidth]). */
84
84
  xClamp?: readonly [number, number];
85
+ /** Names the curve in each anchor's accessible name. Default `'Point'`. */
86
+ label?: string;
85
87
  }
86
88
  /**
87
89
  * The state a function layer owns. Treat it as opaque and round-trip it
@@ -1 +1 @@
1
- {"version":3,"file":"createFunctionLayer.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/createFunctionLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,cAAc,CAAC;AAItB,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;iEAC6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAC/D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC;kCAC8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACtD;;qEAEiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;wDAGoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC;;sDAEkD;IAClD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAsDD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,mBAAwB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAkQjG;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,kBAAkB,CAEtF"}
1
+ {"version":3,"file":"createFunctionLayer.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/createFunctionLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKhF,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,cAAc,CAAC;AAItB,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;iEAC6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAC/D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC;kCAC8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACtD;;qEAEiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;wDAGoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC;;sDAEkD;IAClD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA6DD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,mBAAwB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CA+SjG;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,kBAAkB,CAEtF"}
@@ -0,0 +1,70 @@
1
+ import { type Keyframe } from '@weasel-js/core';
2
+ import type { CurveLayer } from './layerTypes';
3
+ type Bezier = readonly [number, number, number, number];
4
+ /** A gesture in flight. The committed keys hold still underneath it. */
5
+ export type KeyframeDrag = {
6
+ kind: 'key';
7
+ index: number;
8
+ t: number;
9
+ value: number;
10
+ } | {
11
+ kind: 'handle';
12
+ segment: number;
13
+ bezier: Bezier;
14
+ };
15
+ /**
16
+ * The state a keyframe layer owns, held by the consumer and round-tripped
17
+ * through `LayeredCurveEditor`'s `onLayerChange`.
18
+ */
19
+ export interface KeyframeLayerState {
20
+ /** Sorted ascending by `t`. */
21
+ keys: readonly Keyframe<number>[];
22
+ selectedKey: number | null;
23
+ /** Index of the key the selected segment runs into. Its bezier handles show. */
24
+ selectedSegment: number | null;
25
+ drag: KeyframeDrag | null;
26
+ }
27
+ /** Configuration for {@link createKeyframeLayer}. */
28
+ export interface KeyframeLayerConfig {
29
+ /** Layer id; default `'keyframes'`. */
30
+ id?: string;
31
+ /** Names the curve in each mark's accessible name. Default `'Curve'`. */
32
+ label?: string;
33
+ /** Formats a key time for accessible names. Default: rounded number. */
34
+ formatX?: (x: number) => string;
35
+ /** Times a dragged key snaps to. Holding alt defeats the snap. */
36
+ snapX?: readonly number[];
37
+ /** Snap reach, in plot pixels. Default 6. */
38
+ snapRadiusPx?: number;
39
+ /** Bounds for a key's time. Default: unbounded. */
40
+ xClamp?: readonly [number, number];
41
+ /** Bounds for a key's value. Default: unbounded. */
42
+ yClamp?: readonly [number, number];
43
+ /** One arrow-key step in model units; shift takes ten. Default: 1% of the
44
+ * plot's range on that axis. */
45
+ step?: {
46
+ x?: number;
47
+ y?: number;
48
+ };
49
+ }
50
+ /** A keyframe layer state with nothing selected and no gesture in flight. */
51
+ export declare function keyframeLayerState(keys: readonly Keyframe<number>[]): KeyframeLayerState;
52
+ /**
53
+ * The keys a state's drag would leave behind: a dragged key re-sorted into
54
+ * place, or a dragged handle's control points written onto the key its
55
+ * segment runs into. `selectedKey` follows a moved key to its new index; a
56
+ * key dropped where it started returns the same `keys` array.
57
+ */
58
+ export declare function applyKeyframeDrag(state: KeyframeLayerState): {
59
+ keys: readonly Keyframe<number>[];
60
+ selectedKey: number | null;
61
+ };
62
+ /**
63
+ * Builds a keyframe layer for `LayeredCurveEditor`. Model x is time and model
64
+ * y is value; each segment is drawn through the easing on the key it runs
65
+ * into. Every key, segment and handle is focusable and named, and the arrow
66
+ * keys move whichever one has focus.
67
+ */
68
+ export declare function createKeyframeLayer(cfg?: KeyframeLayerConfig): CurveLayer<KeyframeLayerState>;
69
+ export {};
70
+ //# sourceMappingURL=createKeyframeLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createKeyframeLayer.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/createKeyframeLayer.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAmD,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKjG,OAAO,KAAK,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD,wEAAwE;AACxE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gFAAgF;IAChF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oDAAoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;qCACiC;IACjC,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAWD,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,kBAAkB,CAExF;AAsBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB;IAAE,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAWnE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,mBAAwB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CA4RjG"}
@@ -1,7 +1,9 @@
1
1
  export { CurveEditor, type CurveEditorProps, } from './CurveEditor';
2
2
  export { type ControlPoint, type CurveDomain, type EndpointMode, type AddPointMode, type FillSettings, type CurveSettings, type AnchorRenderProps, createFunctionLayer, functionLayerState, type FunctionLayerConfig, type FunctionLayerState, } from './createFunctionLayer';
3
+ export { createKeyframeLayer, keyframeLayerState, applyKeyframeDrag, type KeyframeDrag, type KeyframeLayerConfig, type KeyframeLayerState, } from './createKeyframeLayer';
4
+ export { snapToNearest } from '../../snap';
3
5
  export { LayeredCurveEditor, type LayeredCurveEditorProps, type LayerBinding, } from './LayeredCurveEditor';
4
- export type { CurveLayer, LayerCtx, LayerRenderCtx, LayerHit, LayerGesture, LayerModifiers, EmptyDownArgs, ModelPoint, PlotPoint, } from './layerTypes';
6
+ export type { CurveLayer, LayerCtx, LayerRenderCtx, LayerHit, LayerGesture, LayerModifiers, EmptyDownArgs, KeyDownArgs, ModelPoint, PlotPoint, } from './layerTypes';
5
7
  export { createSetCurveOp, type SetCurveAdapter, type CreateSetCurveOpArgs, } from './setCurveOp';
6
8
  export { sampleByInterpolation, type InterpolationMode, } from './interpolation';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC"}
@@ -1,2 +1,4 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../../chunks/CurveEditor-DtjdpJVB.js";
2
- export { n as CurveEditor, i as LayeredCurveEditor, t as createFunctionLayer, a as createSetCurveOp, e as functionLayerState, r as sampleByInterpolation };
1
+ import { a as e, i as t, n, r, t as i } from "../../chunks/CurveEditor-BXiMoN9d.js";
2
+ import { i as a, n as o, r as s, t as c } from "../../chunks/createKeyframeLayer-7j7ukrSx.js";
3
+ import { t as l } from "../../chunks/snap-B0WQwetQ.js";
4
+ export { n as CurveEditor, a as LayeredCurveEditor, c as applyKeyframeDrag, r as createFunctionLayer, o as createKeyframeLayer, i as createSetCurveOp, t as functionLayerState, s as keyframeLayerState, e as sampleByInterpolation, l as snapToNearest };
@@ -88,9 +88,14 @@ export interface CurveLayer<S> {
88
88
  * gesture or commit a one-shot edit (return void after publishing
89
89
  * state via the editor — see `EmptyDownArgs.commit`). */
90
90
  onEmptyPointerDown?(state: S, model: ModelPoint, e: PointerEvent, ctx: LayerCtx, extra: EmptyDownArgs<S>): LayerGesture<S> | void;
91
- /** Keyboard while the editor has focus. Top-to-bottom; call
92
- * `e.preventDefault()` to stop propagation. */
93
- onKeyDown?(state: S, e: KeyboardEvent, ctx: LayerCtx): void;
91
+ /** Keyboard while focus is on the editor or on anything a layer rendered
92
+ * into it; `e.target` says which. Top-to-bottom; `e.preventDefault()` keeps
93
+ * the key from the layers below. Publish an edit with `extra.commit`. */
94
+ onKeyDown?(state: S, e: KeyboardEvent, ctx: LayerCtx, extra: KeyDownArgs<S>): void;
95
+ }
96
+ /** Handed to `onKeyDown` so a key press can publish a committed edit. */
97
+ export interface KeyDownArgs<S> {
98
+ commit(next: S): void;
94
99
  }
95
100
  /** Helpers handed to `onPointerDown` and `onEmptyPointerDown` so a
96
101
  * layer can publish a one-shot edit (shift-click delete, empty-click
@@ -1 +1 @@
1
- {"version":3,"file":"layerTypes.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/layerTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layerTypes.d.ts","sourceRoot":"","sources":["../../../src/components/CurveEditor/layerTypes.ts"],"names":[],"mappings":"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"}
@@ -36,17 +36,16 @@ export type DetentSliderProps<V extends DetentValue = number> = {
36
36
  * Slider over a fixed list of values: one detent per value, evenly spaced, the
37
37
  * thumb resting on one of them.
38
38
  *
39
- * This is the shape to reach for when a numeric option has a small set of
40
- * allowed values along a line — playback rate, zoom step, stroke weight — in
41
- * place of a dropdown, which hides the ordering and the extent of the range
42
- * behind a click.
39
+ * This is the shape to reach for when an option has a small set of allowed
40
+ * values along a line — playback rate, zoom step, quality — in place of a
41
+ * dropdown, which hides the ordering and the extent of the range behind a
42
+ * click. The values need only be ordered, not numeric.
43
43
  *
44
- * The track addresses the *index* of `items`, not the value, which is what
45
- * makes the detents evenly spaced no matter how the values are distributed:
46
- * a geometric rate list (0.25/0.5/1/2/4) laid out linearly would crowd four
47
- * of its five detents into the first fifth of the track and leave the most
48
- * used one nearly unhittable. Since the index is meaningless to a screen
49
- * reader, the value is published as `aria-valuetext`.
44
+ * It is a strict {@link Slider} over the *index* of `items`, which keeps the
45
+ * detents evenly spaced however the values are distributed. Since the index is
46
+ * meaningless to a screen reader, the value is published as `aria-valuetext`.
47
+ * For numbers that may also rest between the detents, use `Slider` directly
48
+ * with `spacing="even"` and magnetic stops.
50
49
  */
51
50
  export declare function DetentSlider<V extends DetentValue = number>(props: DetentSliderProps<V>): ReactElement;
52
51
  //# sourceMappingURL=DetentSlider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetentSlider.d.ts","sourceRoot":"","sources":["../../../src/components/DetentSlider/DetentSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI7E;2CAC2C;AAC3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,IAAI;IACvD,KAAK,EAAE,CAAC,CAAC;IACT,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,IAAI;IAC9D,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrD,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAkCF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAkFtG"}
1
+ {"version":3,"file":"DetentSlider.d.ts","sourceRoot":"","sources":["../../../src/components/DetentSlider/DetentSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI7E;2CAC2C;AAC3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,IAAI;IACvD,KAAK,EAAE,CAAC,CAAC;IACT,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,IAAI;IAC9D,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrD,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAkCF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CA4DtG"}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/DetentSlider-BpD7bgjN.js";
1
+ import { t as e } from "../../chunks/DetentSlider-BWNSv07Z.js";
2
2
  export { e as DetentSlider };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Dialog-CYBLjwbd.js";
1
+ import { t as e } from "../../chunks/Dialog-DuOzsR2g.js";
2
2
  export { e as Dialog };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/Disclosure-DiA6UKdM.js";
1
+ import { n as e, t } from "../../chunks/Disclosure-9UgDzc7Z.js";
2
2
  export { t as Disclosure, e as DisclosureRow };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../../chunks/Field-dzlxOGxT.js";
1
+ import { n as e, t } from "../../chunks/Field-BNqvUJfg.js";
2
2
  export { t as Field, e as fieldClasses };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/FontFamilySelect-DIJ4phXz.js";
1
+ import { t as e } from "../../chunks/FontFamilySelect-CO19kyOO.js";
2
2
  export { e as FontFamilySelect };
@@ -19,6 +19,9 @@ export interface GradientEditorProps {
19
19
  /** Show the linear / radial / conic switch. Default true; turn it off
20
20
  * when the surrounding UI already owns the kind. */
21
21
  kindSwitch?: boolean;
22
+ /** Show the sRGB / OKLab / OKLCh switch, which writes `interpolate`.
23
+ * Default true. */
24
+ spaceSwitch?: boolean;
22
25
  className?: string;
23
26
  }
24
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GradientEditor.d.ts","sourceRoot":"","sources":["../../../src/components/GradientEditor/GradientEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAgBzB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC;0BACsB;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC;yDACqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAoEvE"}
1
+ {"version":3,"file":"GradientEditor.d.ts","sourceRoot":"","sources":["../../../src/components/GradientEditor/GradientEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAsBzB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC;0BACsB;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC;yDACqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;wBACoB;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAiFvE"}
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../../chunks/GradientEditor-BLpAtMDK.js";
1
+ import { n as e, r as t, t as n } from "../../chunks/GradientEditor-B_ymIr4Q.js";
2
2
  export { t as GradientEditor, e as GradientHandles, n as SceneGradientHandles };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/InlineRange-CcfzY80y.js";
1
+ import { t as e } from "../../chunks/InlineRange-DdIlfGqG.js";
2
2
  export { e as InlineRange };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/Input-CoKOtyD0.js";
1
+ import { t as e } from "../../chunks/Input-B9Vh7ASP.js";
2
2
  export { e as Input };
@@ -0,0 +1,28 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Props for {@link Jog}. */
3
+ export interface JogProps {
4
+ /** Which step is showing, 0-based. */
5
+ index: number;
6
+ /** How many steps there are. */
7
+ count: number;
8
+ playing: boolean;
9
+ onPlay: (playing: boolean) => void;
10
+ /** Move one step, back or forward. */
11
+ onStep: (by: -1 | 1) => void;
12
+ /** Jump to a step. Left out, no scrubber is drawn. */
13
+ onScrub?: (index: number) => void;
14
+ /** What one step is called, for the spoken labels. Defaults to `Step`. */
15
+ unit?: string;
16
+ /** Drawn after the readout — a beat's caption, a snapshot's date. */
17
+ caption?: ReactNode;
18
+ className?: string;
19
+ }
20
+ /**
21
+ * Transport for something counted rather than timed: beat 3 of 24, not 4.20s of 12.00s.
22
+ * `<Transport>` is the continuous-time one, and wants a playhead in milliseconds, a rate and
23
+ * a loop, none of which a list of steps has.
24
+ *
25
+ * Named for the jog of jog/shuttle — moving one frame at a time, as against running at speed.
26
+ */
27
+ export declare function Jog(props: JogProps): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=Jog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jog.d.ts","sourceRoot":"","sources":["../../../src/components/Jog/Jog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,6BAA6B;AAC7B,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,sCAAsC;IACtC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7B,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,2CA6DlC"}
@@ -0,0 +1,3 @@
1
+ export { Jog } from './Jog';
2
+ export type { JogProps } from './Jog';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Jog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../chunks/Jog-BYrxbAQU.js";
2
+ export { e as Jog };
@@ -1,3 +1,3 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../../chunks/Keycaps-DSeq6QWH.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../../chunks/Keycaps-CGNQV2Pz.js";
2
2
  import { t as o } from "../../chunks/keyGlyph-Bp0wnLHn.js";
3
3
  export { e as KeyCap, t as KeySequence, a as detectPlatform, r as inferKeycapKind, o as keyGlyph, n as keySpecFromKey, i as keySpecsFromMods };
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type OverlayPortalProps } from '../../overlays/portalHost';
3
+ /** One row in a {@link MenuButton}'s list. */
4
+ export type MenuButtonItem<T extends string = string> = {
5
+ value: T;
6
+ label: ReactNode;
7
+ isDisabled?: boolean;
8
+ /** Plain-text form of `label`, for type-to-select and screen readers. A
9
+ * string label supplies this itself. */
10
+ textValue?: string;
11
+ };
12
+ /** Props for {@link MenuButton}. */
13
+ export type MenuButtonProps<T extends string = string> = {
14
+ /** What the button says. It never changes to show a chosen row. */
15
+ label: ReactNode;
16
+ items: ReadonlyArray<MenuButtonItem<T>>;
17
+ /** Fired with the value of the row chosen. */
18
+ onAction: (value: T) => void;
19
+ isDisabled?: boolean;
20
+ className?: string;
21
+ 'aria-label'?: string;
22
+ } & OverlayPortalProps;
23
+ /**
24
+ * A button that opens a list and acts on the row chosen — "Add trial…",
25
+ * "Load…". Unlike a {@link Select} it holds no value, so it sizes to its own
26
+ * label rather than to its widest row.
27
+ */
28
+ export declare function MenuButton<T extends string = string>({ label, items, onAction, isDisabled, className, 'aria-label': ariaLabel, portalContainer, }: MenuButtonProps<T>): import("react/jsx-runtime").JSX.Element;
29
+ //# sourceMappingURL=MenuButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../src/components/MenuButton/MenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGtF,8CAA8C;AAC9C,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACtD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;6CACyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD,mEAAmE;IACnE,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,8CAA8C;IAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,eAAe,GAChB,EAAE,eAAe,CAAC,CAAC,CAAC,2CAkCpB"}
@@ -0,0 +1,3 @@
1
+ export { MenuButton } from './MenuButton';
2
+ export type { MenuButtonItem, MenuButtonProps } from './MenuButton';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MenuButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../chunks/MenuButton-DGE-0DP0.js";
2
+ export { e as MenuButton };
@@ -0,0 +1,30 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type FillStyle, type MeshGradientFill } from '@weasel-js/core';
3
+ /** Props for {@link MeshEditor}. `onInput` fires throughout a gesture and
4
+ * `onChange` once at its end. */
5
+ export interface MeshEditorProps {
6
+ value: MeshGradientFill;
7
+ /** Emitted as a `FillStyle`, which is what every paint control passes
8
+ * around — `FillStyle`'s discriminant stays closed over the built-in
9
+ * members, so a registered kind's own shape only travels through it. */
10
+ onInput?: (next: FillStyle) => void;
11
+ onChange: (next: FillStyle) => void;
12
+ /** Show the sRGB / OKLab / OKLCh switch. Default true. */
13
+ spaceSwitch?: boolean;
14
+ className?: string;
15
+ }
16
+ /**
17
+ * Editor for a mesh gradient's colors.
18
+ *
19
+ * Geometry is absent for the same reason it is absent from `GradientEditor`:
20
+ * a patch's twelve control points are a thing to drag on the artwork, not a
21
+ * column of numbers in a panel. What is left is what a panel is good at — the
22
+ * color at each corner, and the space the four of them blend through.
23
+ *
24
+ * Corners are numbered in the patch's own walk order, which is the order the
25
+ * paint stores them in, so a corner's number is stable while it is dragged.
26
+ */
27
+ export declare function MeshEditor(props: MeshEditorProps): ReactElement;
28
+ /** Narrowing for a consumer rendering this behind a kind switch. */
29
+ export declare function isMeshPaint(fill: FillStyle | null | undefined): fill is FillStyle & MeshGradientFill;
30
+ //# sourceMappingURL=MeshEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeshEditor.d.ts","sourceRoot":"","sources":["../../../src/components/MeshEditor/MeshEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAYzB;kCACkC;AAClC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB;;6EAEyE;IACzE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAqD/D;AAUD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,SAAS,GAAG,gBAAgB,CAEpG"}
@@ -0,0 +1,3 @@
1
+ export { MeshEditor, isMeshPaint } from './MeshEditor';
2
+ export type { MeshEditorProps } from './MeshEditor';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MeshEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../../chunks/MeshEditor-CHoGQ9K8.js";
2
+ export { t as MeshEditor, e as isMeshPaint };
@@ -0,0 +1,30 @@
1
+ /** Props for {@link UnitField}. */
2
+ export interface UnitFieldProps {
3
+ /** The value in the unit the field shows. NaN shows an empty field. */
4
+ value: number;
5
+ /** Fired with a value the field read and clamped, in the unit it shows. */
6
+ onChange: (value: number) => void;
7
+ minValue?: number;
8
+ maxValue?: number;
9
+ /** What an arrow key adds or takes away. Defaults to 1. */
10
+ step?: number;
11
+ /** Units a person may type, each mapped to the factor that turns a number
12
+ * in it into the unit the field shows: `{ mm: 0.1, cm: 1 }`. */
13
+ accepts?: Readonly<Record<string, number>>;
14
+ placeholder?: string;
15
+ /** Render with no box until focused, as {@link NumberField}'s `ghost` does. */
16
+ ghost?: boolean;
17
+ /** As {@link NumberField}'s `width`. */
18
+ width?: 'fill' | 'fit';
19
+ className?: string;
20
+ 'aria-label'?: string;
21
+ }
22
+ /**
23
+ * A number typed as text, so it can carry a unit: `12mm` in a field showing
24
+ * centimeters commits `1.2`. Commits on blur or Enter, reverts on Escape or on
25
+ * text it cannot read, clamps to its bounds, and steps with the arrow keys.
26
+ * React Aria's `NumberField` refuses letters as they are typed, which is why
27
+ * this is not that.
28
+ */
29
+ export declare function UnitField({ value, onChange, minValue, maxValue, step, accepts, placeholder, ghost, width, className, 'aria-label': ariaLabel, }: UnitFieldProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=UnitField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitField.d.ts","sourceRoot":"","sources":["../../../src/components/NumberField/UnitField.tsx"],"names":[],"mappings":"AAKA,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAc,EACd,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,cAAc,2CAwDhB"}