entangle-ui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +129 -75
  3. package/dist/esm/components/Icons/CheckIcon.js +27 -0
  4. package/dist/esm/components/Icons/CheckIcon.js.map +1 -0
  5. package/dist/esm/components/Icons/ChevronDownIcon.js +27 -0
  6. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -0
  7. package/dist/esm/components/Icons/ChevronUpIcon.js +27 -0
  8. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -0
  9. package/dist/esm/components/Icons/CircleIcon.js +27 -0
  10. package/dist/esm/components/Icons/CircleIcon.js.map +1 -0
  11. package/dist/esm/components/Icons/CloseIcon.js +27 -0
  12. package/dist/esm/components/Icons/CloseIcon.js.map +1 -0
  13. package/dist/esm/components/Icons/EyeDropperIcon.js +28 -0
  14. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -0
  15. package/dist/esm/components/Icons/TangentAlignedIcon.js +9 -0
  16. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -0
  17. package/dist/esm/components/Icons/TangentAutoIcon.js +9 -0
  18. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -0
  19. package/dist/esm/components/Icons/TangentFreeIcon.js +9 -0
  20. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -0
  21. package/dist/esm/components/Icons/TangentLinearIcon.js +9 -0
  22. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -0
  23. package/dist/esm/components/Icons/TangentMirroredIcon.js +9 -0
  24. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -0
  25. package/dist/esm/components/Icons/TangentStepIcon.js +9 -0
  26. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -0
  27. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js +92 -0
  28. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -0
  29. package/dist/esm/components/controls/ColorPicker/ColorArea.js +93 -0
  30. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -0
  31. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +129 -0
  32. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -0
  33. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +89 -0
  34. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -0
  35. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +75 -0
  36. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -0
  37. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +57 -0
  38. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -0
  39. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +67 -0
  40. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -0
  41. package/dist/esm/components/controls/ColorPicker/EyeDropper.js +85 -0
  42. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -0
  43. package/dist/esm/components/controls/ColorPicker/HueSlider.js +85 -0
  44. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -0
  45. package/dist/esm/components/controls/ColorPicker/colorUtils.js +220 -0
  46. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -0
  47. package/dist/esm/components/controls/ColorPicker/palettes/material.js +299 -0
  48. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -0
  49. package/dist/esm/components/controls/ColorPicker/palettes/professional.js +479 -0
  50. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -0
  51. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js +366 -0
  52. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -0
  53. package/dist/esm/components/controls/ColorPicker/useColor.js +63 -0
  54. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -0
  55. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +84 -0
  56. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -0
  57. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +134 -0
  58. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -0
  59. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +96 -0
  60. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -0
  61. package/dist/esm/components/controls/CurveEditor/curvePresets.js +184 -0
  62. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -0
  63. package/dist/esm/components/controls/CurveEditor/curveUtils.js +338 -0
  64. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -0
  65. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +569 -0
  66. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -0
  67. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +400 -0
  68. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -0
  69. package/dist/esm/components/controls/NumberInput/NumberInput.js +377 -0
  70. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -0
  71. package/dist/esm/components/controls/NumberInput/useNumberInput.js +324 -0
  72. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -0
  73. package/dist/esm/components/controls/Select/Select.js +533 -0
  74. package/dist/esm/components/controls/Select/Select.js.map +1 -0
  75. package/dist/esm/components/controls/Slider/Slider.js +413 -0
  76. package/dist/esm/components/controls/Slider/Slider.js.map +1 -0
  77. package/dist/esm/components/controls/TreeView/TreeNode.js +189 -0
  78. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -0
  79. package/dist/esm/components/controls/TreeView/TreeView.js +213 -0
  80. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -0
  81. package/dist/esm/components/controls/TreeView/useTreeState.js +154 -0
  82. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -0
  83. package/dist/esm/components/controls/VectorInput/VectorInput.js +202 -0
  84. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -0
  85. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +42 -0
  86. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -0
  87. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +98 -0
  88. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -0
  89. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +154 -0
  90. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -0
  91. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +136 -0
  92. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -0
  93. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +86 -0
  94. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -0
  95. package/dist/esm/components/feedback/Dialog/Dialog.js +92 -0
  96. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -0
  97. package/dist/esm/components/feedback/Dialog/Dialog.styled.js +80 -0
  98. package/dist/esm/components/feedback/Dialog/Dialog.styled.js.map +1 -0
  99. package/dist/esm/components/feedback/Dialog/DialogBody.js +33 -0
  100. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -0
  101. package/dist/esm/components/feedback/Dialog/DialogClose.js +26 -0
  102. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -0
  103. package/dist/esm/components/feedback/Dialog/DialogFooter.js +43 -0
  104. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -0
  105. package/dist/esm/components/feedback/Dialog/DialogHeader.js +84 -0
  106. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -0
  107. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +70 -0
  108. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -0
  109. package/dist/esm/components/feedback/Dialog/useFocusTrap.js +55 -0
  110. package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -0
  111. package/dist/esm/components/feedback/Toast/ToastContainer.js +34 -0
  112. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -0
  113. package/dist/esm/components/feedback/Toast/ToastItem.js +214 -0
  114. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -0
  115. package/dist/esm/components/feedback/Toast/ToastProvider.js +47 -0
  116. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -0
  117. package/dist/esm/components/feedback/Toast/useToast.js +60 -0
  118. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -0
  119. package/dist/esm/components/form/FormHelperText.js +38 -0
  120. package/dist/esm/components/form/FormHelperText.js.map +1 -0
  121. package/dist/esm/components/form/FormLabel.js +43 -0
  122. package/dist/esm/components/form/FormLabel.js.map +1 -0
  123. package/dist/esm/components/form/InputWrapper.js +100 -0
  124. package/dist/esm/components/form/InputWrapper.js.map +1 -0
  125. package/dist/esm/components/layout/Accordion/Accordion.js +103 -0
  126. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -0
  127. package/dist/esm/components/layout/Accordion/AccordionContent.js +37 -0
  128. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -0
  129. package/dist/esm/components/layout/Accordion/AccordionItem.js +24 -0
  130. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -0
  131. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +123 -0
  132. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -0
  133. package/dist/esm/components/layout/Flex/Flex.js +149 -0
  134. package/dist/esm/components/layout/Flex/Flex.js.map +1 -0
  135. package/dist/esm/components/layout/Grid/Grid.js +118 -0
  136. package/dist/esm/components/layout/Grid/Grid.js.map +1 -0
  137. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +106 -0
  138. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -0
  139. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +362 -0
  140. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -0
  141. package/dist/esm/components/layout/Spacer/Spacer.js +78 -0
  142. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -0
  143. package/dist/esm/components/layout/SplitPane/SplitPane.js +581 -0
  144. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -0
  145. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +29 -0
  146. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -0
  147. package/dist/esm/components/layout/Stack/Stack.js +138 -0
  148. package/dist/esm/components/layout/Stack/Stack.js.map +1 -0
  149. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -0
  150. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -0
  151. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +52 -0
  152. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -0
  153. package/dist/esm/components/navigation/Menu/Menu.helpers.js +52 -0
  154. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -0
  155. package/dist/esm/components/navigation/Menu/Menu.js +80 -0
  156. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -0
  157. package/dist/esm/components/navigation/Menu/Menu.styled.js +83 -0
  158. package/dist/esm/components/navigation/Menu/Menu.styled.js.map +1 -0
  159. package/dist/esm/components/navigation/Menu/useMenu.js +87 -0
  160. package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -0
  161. package/dist/esm/components/navigation/Tabs/Tab.js +222 -0
  162. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -0
  163. package/dist/esm/components/navigation/Tabs/TabList.js +115 -0
  164. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -0
  165. package/dist/esm/components/navigation/Tabs/TabPanel.js +32 -0
  166. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -0
  167. package/dist/esm/components/navigation/Tabs/Tabs.js +77 -0
  168. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -0
  169. package/dist/esm/components/primitives/BaseButton/BaseButton.js +17 -0
  170. package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -0
  171. package/dist/esm/components/primitives/Button/Button.js +183 -0
  172. package/dist/esm/components/primitives/Button/Button.js.map +1 -0
  173. package/dist/esm/components/primitives/Checkbox/Checkbox.js +205 -0
  174. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -0
  175. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +71 -0
  176. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -0
  177. package/dist/esm/components/primitives/Collapsible/Collapsible.js +116 -0
  178. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -0
  179. package/dist/esm/components/primitives/Icon/Icon.js +63 -0
  180. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -0
  181. package/dist/esm/components/primitives/IconButton/IconButton.js +222 -0
  182. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -0
  183. package/dist/esm/components/primitives/Input/Input.js +133 -0
  184. package/dist/esm/components/primitives/Input/Input.js.map +1 -0
  185. package/dist/esm/components/primitives/Paper/Paper.js +146 -0
  186. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -0
  187. package/dist/esm/components/primitives/Popover/Popover.js +121 -0
  188. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -0
  189. package/dist/esm/components/primitives/Popover/PopoverClose.js +50 -0
  190. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -0
  191. package/dist/esm/components/primitives/Popover/PopoverContent.js +102 -0
  192. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -0
  193. package/dist/esm/components/primitives/Popover/PopoverTrigger.js +37 -0
  194. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -0
  195. package/dist/esm/components/primitives/Switch/Switch.js +170 -0
  196. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -0
  197. package/dist/esm/components/primitives/Text/Text.js +166 -0
  198. package/dist/esm/components/primitives/Text/Text.js.map +1 -0
  199. package/dist/esm/components/primitives/Tooltip/Arrow.js +52 -0
  200. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -0
  201. package/dist/esm/components/primitives/Tooltip/Tooltip.js +219 -0
  202. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -0
  203. package/dist/esm/components/primitives/Tooltip/utils.js +66 -0
  204. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -0
  205. package/dist/esm/components/shell/AppShell/AppShell.js +157 -0
  206. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -0
  207. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +236 -0
  208. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -0
  209. package/dist/esm/components/shell/MenuBar/MenuBar.js +340 -0
  210. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -0
  211. package/dist/esm/components/shell/StatusBar/StatusBar.js +134 -0
  212. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -0
  213. package/dist/esm/components/shell/Toolbar/Toolbar.js +185 -0
  214. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -0
  215. package/dist/esm/context/KeyboardContext.js +14 -0
  216. package/dist/esm/context/KeyboardContext.js.map +1 -0
  217. package/dist/esm/index.js +78 -0
  218. package/dist/esm/index.js.map +1 -0
  219. package/dist/esm/palettes.js +4 -0
  220. package/dist/esm/palettes.js.map +1 -0
  221. package/dist/esm/theme/ThemeProvider.js +12 -0
  222. package/dist/esm/theme/ThemeProvider.js.map +1 -0
  223. package/dist/esm/theme/createTheme.js +10 -0
  224. package/dist/esm/theme/createTheme.js.map +1 -0
  225. package/dist/esm/theme/tokens.js +144 -0
  226. package/dist/esm/theme/tokens.js.map +1 -0
  227. package/dist/esm/utils/cn.js +6 -0
  228. package/dist/esm/utils/cn.js.map +1 -0
  229. package/dist/esm/utils/mathExpression.js +275 -0
  230. package/dist/esm/utils/mathExpression.js.map +1 -0
  231. package/dist/esm/utils/mathUtils.js +18 -0
  232. package/dist/esm/utils/mathUtils.js.map +1 -0
  233. package/dist/esm/utils/objects.js +22 -0
  234. package/dist/esm/utils/objects.js.map +1 -0
  235. package/dist/esm/utils/styledUtils.js +81 -0
  236. package/dist/esm/utils/styledUtils.js.map +1 -0
  237. package/dist/types/components/controls/ColorPicker/ColorPalette.d.ts +16 -0
  238. package/dist/types/components/controls/ColorPicker/ColorPicker.d.ts +6 -0
  239. package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +120 -0
  240. package/dist/types/components/controls/ColorPicker/ColorSwatch.d.ts +6 -0
  241. package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +28 -0
  242. package/dist/types/components/controls/ColorPicker/colorUtils.d.ts +3 -0
  243. package/dist/types/components/controls/ColorPicker/palettes/material.d.ts +24 -0
  244. package/dist/types/components/controls/ColorPicker/palettes/professional.d.ts +19 -0
  245. package/dist/types/components/controls/ColorPicker/palettes/tailwind.d.ts +12 -0
  246. package/dist/types/components/controls/CurveEditor/CurveEditor.d.ts +6 -0
  247. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +297 -0
  248. package/dist/types/components/controls/CurveEditor/curvePresets.d.ts +5 -0
  249. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +28 -0
  250. package/dist/types/components/controls/NumberInput/NumberInput.d.ts +150 -0
  251. package/dist/types/components/controls/NumberInput/useNumberInput.d.ts +65 -0
  252. package/dist/types/components/controls/Select/Select.d.ts +29 -0
  253. package/dist/types/components/controls/Select/Select.types.d.ts +131 -0
  254. package/dist/types/components/controls/Slider/Slider.d.ts +178 -0
  255. package/dist/types/components/controls/TreeView/TreeView.d.ts +27 -0
  256. package/dist/types/components/controls/TreeView/TreeView.types.d.ts +135 -0
  257. package/dist/types/components/controls/VectorInput/VectorInput.d.ts +26 -0
  258. package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +158 -0
  259. package/dist/types/components/editor/PropertyInspector/PropertyGroup.d.ts +6 -0
  260. package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +238 -0
  261. package/dist/types/components/editor/PropertyInspector/PropertyPanel.d.ts +6 -0
  262. package/dist/types/components/editor/PropertyInspector/PropertyRow.d.ts +6 -0
  263. package/dist/types/components/editor/PropertyInspector/PropertySection.d.ts +6 -0
  264. package/dist/types/components/editor/PropertyInspector/usePropertyUndo.d.ts +9 -0
  265. package/dist/types/components/feedback/Dialog/Dialog.d.ts +25 -0
  266. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +55 -0
  267. package/dist/types/components/feedback/Dialog/DialogBody.d.ts +16 -0
  268. package/dist/types/components/feedback/Dialog/DialogClose.d.ts +21 -0
  269. package/dist/types/components/feedback/Dialog/DialogFooter.d.ts +17 -0
  270. package/dist/types/components/feedback/Dialog/DialogHeader.d.ts +17 -0
  271. package/dist/types/components/feedback/Toast/Toast.types.d.ts +39 -0
  272. package/dist/types/components/feedback/Toast/ToastProvider.d.ts +19 -0
  273. package/dist/types/components/feedback/Toast/useToast.d.ts +22 -0
  274. package/dist/types/components/form/FormHelperText.d.ts +321 -0
  275. package/dist/types/components/form/FormLabel.d.ts +331 -0
  276. package/dist/types/components/form/InputWrapper.d.ts +346 -0
  277. package/dist/types/components/layout/Accordion/Accordion.d.ts +23 -0
  278. package/dist/types/components/layout/Accordion/Accordion.types.d.ts +109 -0
  279. package/dist/types/components/layout/Accordion/AccordionContent.d.ts +6 -0
  280. package/dist/types/components/layout/Accordion/AccordionItem.d.ts +6 -0
  281. package/dist/types/components/layout/Accordion/AccordionTrigger.d.ts +6 -0
  282. package/dist/types/components/layout/Flex/Flex.d.ts +215 -0
  283. package/dist/types/components/layout/Grid/Grid.d.ts +113 -0
  284. package/dist/types/components/layout/PanelSurface/PanelSurface.d.ts +1153 -0
  285. package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +64 -0
  286. package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts +6 -0
  287. package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +93 -0
  288. package/dist/types/components/layout/Spacer/Spacer.d.ts +329 -0
  289. package/dist/types/components/layout/SplitPane/SplitPane.d.ts +21 -0
  290. package/dist/types/components/layout/SplitPane/SplitPane.types.d.ts +87 -0
  291. package/dist/types/components/layout/SplitPane/SplitPanePanel.d.ts +20 -0
  292. package/dist/types/components/layout/Stack/Stack.d.ts +166 -0
  293. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +6 -0
  294. package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +74 -0
  295. package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +5 -0
  296. package/dist/types/components/navigation/Menu/Menu.d.ts +42 -0
  297. package/dist/types/components/navigation/Menu/Menu.types.d.ts +94 -0
  298. package/dist/types/components/navigation/Menu/useMenu.d.ts +16 -0
  299. package/dist/types/components/navigation/Tabs/Tab.d.ts +6 -0
  300. package/dist/types/components/navigation/Tabs/TabList.d.ts +6 -0
  301. package/dist/types/components/navigation/Tabs/TabPanel.d.ts +6 -0
  302. package/dist/types/components/navigation/Tabs/Tabs.d.ts +23 -0
  303. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +117 -0
  304. package/dist/types/components/primitives/Button/Button.d.ts +392 -0
  305. package/dist/types/components/primitives/Checkbox/Checkbox.d.ts +20 -0
  306. package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +156 -0
  307. package/dist/types/components/primitives/Checkbox/CheckboxGroup.d.ts +25 -0
  308. package/dist/types/components/primitives/Collapsible/Collapsible.d.ts +6 -0
  309. package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +28 -0
  310. package/dist/types/components/primitives/Icon/Icon.d.ts +40 -0
  311. package/dist/types/components/primitives/IconButton/IconButton.d.ts +354 -0
  312. package/dist/types/components/primitives/Input/Input.d.ts +134 -0
  313. package/dist/types/components/primitives/Paper/Paper.d.ts +419 -0
  314. package/dist/types/components/primitives/Popover/Popover.d.ts +25 -0
  315. package/dist/types/components/primitives/Popover/Popover.types.d.ts +99 -0
  316. package/dist/types/components/primitives/Popover/PopoverClose.d.ts +6 -0
  317. package/dist/types/components/primitives/Popover/PopoverContent.d.ts +6 -0
  318. package/dist/types/components/primitives/Popover/PopoverTrigger.d.ts +10 -0
  319. package/dist/types/components/primitives/Switch/Switch.d.ts +78 -0
  320. package/dist/types/components/primitives/Text/Text.d.ts +442 -0
  321. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +175 -0
  322. package/dist/types/components/primitives/Tooltip/types.d.ts +82 -0
  323. package/dist/types/components/shell/AppShell/AppShell.d.ts +1437 -0
  324. package/dist/types/components/shell/AppShell/AppShell.types.d.ts +48 -0
  325. package/dist/types/components/shell/FloatingPanel/FloatingPanel.d.ts +7 -0
  326. package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +61 -0
  327. package/dist/types/components/shell/MenuBar/MenuBar.d.ts +1441 -0
  328. package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +48 -0
  329. package/dist/types/components/shell/StatusBar/StatusBar.d.ts +868 -0
  330. package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +40 -0
  331. package/dist/types/components/shell/Toolbar/Toolbar.d.ts +1728 -0
  332. package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +59 -0
  333. package/dist/types/index.d.ts +101 -0
  334. package/dist/types/palettes.d.ts +3 -0
  335. package/dist/types/theme/ThemeProvider.d.ts +11 -0
  336. package/dist/types/theme/createTheme.d.ts +6 -0
  337. package/dist/types/theme/tokens.d.ts +147 -0
  338. package/dist/types/theme/types.d.ts +7 -0
  339. package/dist/types/types/common.d.ts +24 -0
  340. package/dist/types/types/utilities.d.ts +72 -0
  341. package/dist/types/utils/cn.d.ts +3 -0
  342. package/package.json +23 -7
  343. package/dist/index.d.ts +0 -11
  344. package/dist/index.esm.js +0 -12149
  345. package/dist/index.esm.js.map +0 -1
  346. package/dist/index.js +0 -12223
  347. package/dist/index.js.map +0 -1
@@ -0,0 +1,324 @@
1
+ import { useState, useRef, useEffect, useCallback } from 'react';
2
+ import { useKeyboardContext } from '../../../context/KeyboardContext.js';
3
+ import { parseNumericInput, isExpression } from '../../../utils/mathExpression.js';
4
+
5
+ // src/controls/NumberInput/useNumberInput.ts
6
+ /**
7
+ * Clamps a value between min and max bounds
8
+ */
9
+ function clamp(value, min, max) {
10
+ let result = value;
11
+ if (min !== undefined && result < min)
12
+ result = min;
13
+ if (max !== undefined && result > max)
14
+ result = max;
15
+ return result;
16
+ }
17
+ /**
18
+ * Rounds a number to specified decimal places
19
+ */
20
+ function roundToPrecision(value, precision) {
21
+ if (precision === undefined)
22
+ return value;
23
+ const factor = Math.pow(10, precision);
24
+ return Math.round(value * factor) / factor;
25
+ }
26
+ /**
27
+ * Default formatter for display values
28
+ */
29
+ function defaultFormatValue(value, precision) {
30
+ if (precision !== undefined) {
31
+ return value.toFixed(precision);
32
+ }
33
+ // Remove trailing zeros and unnecessary decimal point
34
+ return value.toString();
35
+ }
36
+ /**
37
+ * Hook for managing NumberInput state and interactions.
38
+ *
39
+ * Provides Blender-like number input functionality including:
40
+ * - Drag to change values
41
+ * - Keyboard input with expression evaluation
42
+ * - Modifier key support (Ctrl, Shift)
43
+ * - Soft and hard limits
44
+ * - Precision control
45
+ *
46
+ * @param props Configuration options
47
+ * @returns Object with state and actions
48
+ */
49
+ function useNumberInput({ value, onChange, min, max, softMin, softMax, step = 1, precisionStep, largeStep, precision, allowExpressions = true, disabled = false, dragSensitivity = 1, formatValue, parseValue, }) {
50
+ // Calculate default step sizes if not provided
51
+ const effectivePrecisionStep = precisionStep ?? step / 10;
52
+ const effectiveLargeStep = largeStep ?? step * 10;
53
+ // State
54
+ const [displayValue, setDisplayValue] = useState(() => formatValue ? formatValue(value) : defaultFormatValue(value, precision));
55
+ const [isEditing, setIsEditing] = useState(false);
56
+ const [isDragging, setIsDragging] = useState(false);
57
+ const [isHovered, setIsHovered] = useState(false);
58
+ const [isFocused, setIsFocused] = useState(false);
59
+ const [error, setError] = useState();
60
+ // Refs for drag state
61
+ const dragStartX = useRef(0);
62
+ const dragStartValue = useRef(0);
63
+ const accumulatedDelta = useRef(0);
64
+ // Keyboard state
65
+ const { modifiers } = useKeyboardContext();
66
+ // Update display value when external value changes (but not during editing)
67
+ useEffect(() => {
68
+ if (!isEditing && !isDragging) {
69
+ const formatted = formatValue
70
+ ? formatValue(value)
71
+ : defaultFormatValue(value, precision);
72
+ setDisplayValue(formatted);
73
+ setError(undefined);
74
+ }
75
+ }, [value, precision, isEditing, isDragging, formatValue]);
76
+ /**
77
+ * Gets the appropriate step size based on modifier keys
78
+ */
79
+ const getStepSize = useCallback(() => {
80
+ if (modifiers.shift)
81
+ return effectivePrecisionStep;
82
+ if (modifiers.control || modifiers.meta)
83
+ return effectiveLargeStep;
84
+ return step;
85
+ }, [
86
+ modifiers.shift,
87
+ modifiers.control,
88
+ modifiers.meta,
89
+ effectivePrecisionStep,
90
+ effectiveLargeStep,
91
+ step,
92
+ ]);
93
+ /**
94
+ * Applies a new value with proper bounds checking and rounding
95
+ */
96
+ const applyValue = useCallback((newValue, useSoftLimits = false) => {
97
+ if (disabled)
98
+ return;
99
+ // Apply rounding
100
+ const rounded = roundToPrecision(newValue, precision);
101
+ // Apply limits
102
+ const minLimit = useSoftLimits && softMin !== undefined ? softMin : min;
103
+ const maxLimit = useSoftLimits && softMax !== undefined ? softMax : max;
104
+ const clamped = clamp(rounded, minLimit, maxLimit);
105
+ if (clamped !== value) {
106
+ onChange(clamped);
107
+ }
108
+ }, [disabled, precision, min, max, softMin, softMax, value, onChange]);
109
+ /**
110
+ * Parses and applies text input value
111
+ */
112
+ const parseAndApplyInput = useCallback(() => {
113
+ try {
114
+ // Try custom parser first
115
+ if (parseValue) {
116
+ const parsed = parseValue(displayValue);
117
+ if (parsed !== null && !isNaN(parsed)) {
118
+ applyValue(parsed);
119
+ setError(undefined);
120
+ return true;
121
+ }
122
+ }
123
+ // Try expression evaluation if allowed
124
+ if (allowExpressions) {
125
+ const result = parseNumericInput(displayValue);
126
+ if (result.success && result.value !== undefined) {
127
+ applyValue(result.value);
128
+ setError(undefined);
129
+ return true;
130
+ }
131
+ else {
132
+ setError(result.error ?? 'Invalid expression');
133
+ return false;
134
+ }
135
+ }
136
+ // Fall back to simple number parsing
137
+ const numValue = parseFloat(displayValue);
138
+ if (!isNaN(numValue)) {
139
+ applyValue(numValue);
140
+ setError(undefined);
141
+ return true;
142
+ }
143
+ setError('Invalid number');
144
+ return false;
145
+ }
146
+ catch (err) {
147
+ setError('Invalid input');
148
+ console.error('Error parsing input:', err);
149
+ return false;
150
+ }
151
+ }, [displayValue, parseValue, allowExpressions, applyValue]);
152
+ // Actions
153
+ const increment = useCallback(() => {
154
+ if (disabled)
155
+ return;
156
+ const currentStep = getStepSize();
157
+ applyValue(value + currentStep);
158
+ }, [disabled, getStepSize, value, applyValue]);
159
+ const decrement = useCallback(() => {
160
+ if (disabled)
161
+ return;
162
+ const currentStep = getStepSize();
163
+ applyValue(value - currentStep);
164
+ }, [disabled, getStepSize, value, applyValue]);
165
+ const startDrag = useCallback((clientX) => {
166
+ if (disabled)
167
+ return;
168
+ setIsDragging(true);
169
+ dragStartX.current = clientX;
170
+ dragStartValue.current = value;
171
+ accumulatedDelta.current = 0;
172
+ document.body.style.cursor = 'ew-resize';
173
+ }, [disabled, value]);
174
+ const updateDrag = useCallback((clientX) => {
175
+ if (!isDragging || disabled)
176
+ return;
177
+ const deltaX = clientX - dragStartX.current;
178
+ const currentStep = getStepSize();
179
+ const sensitivity = dragSensitivity;
180
+ // Accumulate fractional changes for smooth dragging
181
+ const pixelsPerStep = 5; // Pixels needed to trigger one step
182
+ const totalDelta = (deltaX * sensitivity) / pixelsPerStep;
183
+ // Only update if we've moved enough for at least one step
184
+ const steps = Math.floor(totalDelta);
185
+ if (steps !== Math.floor(accumulatedDelta.current)) {
186
+ accumulatedDelta.current = totalDelta;
187
+ const newValue = dragStartValue.current + steps * currentStep;
188
+ // Use soft limits for dragging
189
+ applyValue(newValue, true);
190
+ // Update display to show current value
191
+ const formatted = formatValue
192
+ ? formatValue(newValue)
193
+ : defaultFormatValue(newValue, precision);
194
+ setDisplayValue(formatted);
195
+ }
196
+ }, [
197
+ isDragging,
198
+ disabled,
199
+ getStepSize,
200
+ dragSensitivity,
201
+ applyValue,
202
+ formatValue,
203
+ precision,
204
+ ]);
205
+ const endDrag = useCallback(() => {
206
+ setIsDragging(false);
207
+ document.body.style.cursor = '';
208
+ // Refresh display value to ensure it matches the current value
209
+ const formatted = formatValue
210
+ ? formatValue(value)
211
+ : defaultFormatValue(value, precision);
212
+ setDisplayValue(formatted);
213
+ }, [value, formatValue, precision]);
214
+ const startEditing = useCallback(() => {
215
+ if (disabled)
216
+ return;
217
+ setIsEditing(true);
218
+ setError(undefined);
219
+ // Select all text when starting to edit
220
+ setTimeout(() => {
221
+ const input = document.activeElement;
222
+ input?.select();
223
+ }, 0);
224
+ }, [disabled]);
225
+ const endEditing = useCallback(() => {
226
+ if (parseAndApplyInput()) {
227
+ setIsEditing(false);
228
+ }
229
+ // If parsing failed, stay in editing mode to show error
230
+ }, [parseAndApplyInput]);
231
+ const cancelEditing = useCallback(() => {
232
+ setIsEditing(false);
233
+ const formatted = formatValue
234
+ ? formatValue(value)
235
+ : defaultFormatValue(value, precision);
236
+ setDisplayValue(formatted);
237
+ setError(undefined);
238
+ }, [value, precision, formatValue]);
239
+ const updateDisplayValue = useCallback((newValue) => {
240
+ setDisplayValue(newValue);
241
+ // Clear error when user starts typing
242
+ if (error) {
243
+ setError(undefined);
244
+ }
245
+ }, [error]);
246
+ const handleKeyDown = useCallback((event) => {
247
+ if (disabled)
248
+ return;
249
+ switch (event.key) {
250
+ case 'Enter':
251
+ event.preventDefault();
252
+ if (isEditing) {
253
+ endEditing();
254
+ }
255
+ else {
256
+ startEditing();
257
+ }
258
+ break;
259
+ case 'Escape':
260
+ event.preventDefault();
261
+ if (isEditing) {
262
+ cancelEditing();
263
+ }
264
+ break;
265
+ case 'ArrowUp':
266
+ if (!isEditing) {
267
+ event.preventDefault();
268
+ increment();
269
+ }
270
+ break;
271
+ case 'ArrowDown':
272
+ if (!isEditing) {
273
+ event.preventDefault();
274
+ decrement();
275
+ }
276
+ break;
277
+ case '-':
278
+ // Only negate when not editing and minus is pressed alone (not in the middle of text)
279
+ if (!isEditing) {
280
+ event.preventDefault();
281
+ applyValue(-value);
282
+ }
283
+ break;
284
+ }
285
+ }, [
286
+ disabled,
287
+ isEditing,
288
+ endEditing,
289
+ startEditing,
290
+ cancelEditing,
291
+ increment,
292
+ decrement,
293
+ value,
294
+ applyValue,
295
+ ]);
296
+ // Determine if current input looks like an expression
297
+ const isExpressionValue = allowExpressions && isExpression(displayValue);
298
+ return {
299
+ // State
300
+ displayValue,
301
+ isEditing,
302
+ isDragging,
303
+ isHovered,
304
+ isFocused,
305
+ error,
306
+ isExpression: isExpressionValue,
307
+ // Actions
308
+ increment,
309
+ decrement,
310
+ startDrag,
311
+ updateDrag,
312
+ endDrag,
313
+ startEditing,
314
+ endEditing,
315
+ cancelEditing,
316
+ updateDisplayValue,
317
+ setHovered: setIsHovered,
318
+ setFocused: setIsFocused,
319
+ handleKeyDown,
320
+ };
321
+ }
322
+
323
+ export { useNumberInput };
324
+ //# sourceMappingURL=useNumberInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNumberInput.js","sources":["../../../../../../src/components/controls/NumberInput/useNumberInput.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}