entangle-ui 0.2.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 (346) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/esm/components/Icons/CheckIcon.js +27 -0
  3. package/dist/esm/components/Icons/CheckIcon.js.map +1 -0
  4. package/dist/esm/components/Icons/ChevronDownIcon.js +27 -0
  5. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -0
  6. package/dist/esm/components/Icons/ChevronUpIcon.js +27 -0
  7. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -0
  8. package/dist/esm/components/Icons/CircleIcon.js +27 -0
  9. package/dist/esm/components/Icons/CircleIcon.js.map +1 -0
  10. package/dist/esm/components/Icons/CloseIcon.js +27 -0
  11. package/dist/esm/components/Icons/CloseIcon.js.map +1 -0
  12. package/dist/esm/components/Icons/EyeDropperIcon.js +28 -0
  13. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -0
  14. package/dist/esm/components/Icons/TangentAlignedIcon.js +9 -0
  15. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -0
  16. package/dist/esm/components/Icons/TangentAutoIcon.js +9 -0
  17. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -0
  18. package/dist/esm/components/Icons/TangentFreeIcon.js +9 -0
  19. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -0
  20. package/dist/esm/components/Icons/TangentLinearIcon.js +9 -0
  21. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -0
  22. package/dist/esm/components/Icons/TangentMirroredIcon.js +9 -0
  23. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -0
  24. package/dist/esm/components/Icons/TangentStepIcon.js +9 -0
  25. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -0
  26. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js +92 -0
  27. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -0
  28. package/dist/esm/components/controls/ColorPicker/ColorArea.js +93 -0
  29. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -0
  30. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +129 -0
  31. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -0
  32. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +89 -0
  33. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -0
  34. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +75 -0
  35. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -0
  36. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +57 -0
  37. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -0
  38. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +67 -0
  39. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -0
  40. package/dist/esm/components/controls/ColorPicker/EyeDropper.js +85 -0
  41. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -0
  42. package/dist/esm/components/controls/ColorPicker/HueSlider.js +85 -0
  43. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -0
  44. package/dist/esm/components/controls/ColorPicker/colorUtils.js +220 -0
  45. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -0
  46. package/dist/esm/components/controls/ColorPicker/palettes/material.js +299 -0
  47. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -0
  48. package/dist/esm/components/controls/ColorPicker/palettes/professional.js +479 -0
  49. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -0
  50. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js +366 -0
  51. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -0
  52. package/dist/esm/components/controls/ColorPicker/useColor.js +63 -0
  53. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -0
  54. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +84 -0
  55. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -0
  56. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +134 -0
  57. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -0
  58. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +96 -0
  59. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -0
  60. package/dist/esm/components/controls/CurveEditor/curvePresets.js +184 -0
  61. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -0
  62. package/dist/esm/components/controls/CurveEditor/curveUtils.js +338 -0
  63. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -0
  64. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +569 -0
  65. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -0
  66. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +400 -0
  67. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -0
  68. package/dist/esm/components/controls/NumberInput/NumberInput.js +377 -0
  69. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -0
  70. package/dist/esm/components/controls/NumberInput/useNumberInput.js +324 -0
  71. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -0
  72. package/dist/esm/components/controls/Select/Select.js +533 -0
  73. package/dist/esm/components/controls/Select/Select.js.map +1 -0
  74. package/dist/esm/components/controls/Slider/Slider.js +413 -0
  75. package/dist/esm/components/controls/Slider/Slider.js.map +1 -0
  76. package/dist/esm/components/controls/TreeView/TreeNode.js +189 -0
  77. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -0
  78. package/dist/esm/components/controls/TreeView/TreeView.js +213 -0
  79. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -0
  80. package/dist/esm/components/controls/TreeView/useTreeState.js +154 -0
  81. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -0
  82. package/dist/esm/components/controls/VectorInput/VectorInput.js +202 -0
  83. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -0
  84. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +42 -0
  85. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -0
  86. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +98 -0
  87. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -0
  88. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +154 -0
  89. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -0
  90. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +136 -0
  91. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -0
  92. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +86 -0
  93. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -0
  94. package/dist/esm/components/feedback/Dialog/Dialog.js +92 -0
  95. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -0
  96. package/dist/esm/components/feedback/Dialog/Dialog.styled.js +80 -0
  97. package/dist/esm/components/feedback/Dialog/Dialog.styled.js.map +1 -0
  98. package/dist/esm/components/feedback/Dialog/DialogBody.js +33 -0
  99. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -0
  100. package/dist/esm/components/feedback/Dialog/DialogClose.js +26 -0
  101. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -0
  102. package/dist/esm/components/feedback/Dialog/DialogFooter.js +43 -0
  103. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -0
  104. package/dist/esm/components/feedback/Dialog/DialogHeader.js +84 -0
  105. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -0
  106. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +70 -0
  107. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -0
  108. package/dist/esm/components/feedback/Dialog/useFocusTrap.js +55 -0
  109. package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -0
  110. package/dist/esm/components/feedback/Toast/ToastContainer.js +34 -0
  111. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -0
  112. package/dist/esm/components/feedback/Toast/ToastItem.js +214 -0
  113. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -0
  114. package/dist/esm/components/feedback/Toast/ToastProvider.js +47 -0
  115. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -0
  116. package/dist/esm/components/feedback/Toast/useToast.js +60 -0
  117. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -0
  118. package/dist/esm/components/form/FormHelperText.js +38 -0
  119. package/dist/esm/components/form/FormHelperText.js.map +1 -0
  120. package/dist/esm/components/form/FormLabel.js +43 -0
  121. package/dist/esm/components/form/FormLabel.js.map +1 -0
  122. package/dist/esm/components/form/InputWrapper.js +100 -0
  123. package/dist/esm/components/form/InputWrapper.js.map +1 -0
  124. package/dist/esm/components/layout/Accordion/Accordion.js +103 -0
  125. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -0
  126. package/dist/esm/components/layout/Accordion/AccordionContent.js +37 -0
  127. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -0
  128. package/dist/esm/components/layout/Accordion/AccordionItem.js +24 -0
  129. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -0
  130. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +123 -0
  131. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -0
  132. package/dist/esm/components/layout/Flex/Flex.js +149 -0
  133. package/dist/esm/components/layout/Flex/Flex.js.map +1 -0
  134. package/dist/esm/components/layout/Grid/Grid.js +118 -0
  135. package/dist/esm/components/layout/Grid/Grid.js.map +1 -0
  136. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +106 -0
  137. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -0
  138. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +362 -0
  139. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -0
  140. package/dist/esm/components/layout/Spacer/Spacer.js +78 -0
  141. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -0
  142. package/dist/esm/components/layout/SplitPane/SplitPane.js +581 -0
  143. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -0
  144. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +29 -0
  145. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -0
  146. package/dist/esm/components/layout/Stack/Stack.js +138 -0
  147. package/dist/esm/components/layout/Stack/Stack.js.map +1 -0
  148. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -0
  149. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -0
  150. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +52 -0
  151. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -0
  152. package/dist/esm/components/navigation/Menu/Menu.helpers.js +52 -0
  153. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -0
  154. package/dist/esm/components/navigation/Menu/Menu.js +80 -0
  155. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -0
  156. package/dist/esm/components/navigation/Menu/Menu.styled.js +83 -0
  157. package/dist/esm/components/navigation/Menu/Menu.styled.js.map +1 -0
  158. package/dist/esm/components/navigation/Menu/useMenu.js +87 -0
  159. package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -0
  160. package/dist/esm/components/navigation/Tabs/Tab.js +222 -0
  161. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -0
  162. package/dist/esm/components/navigation/Tabs/TabList.js +115 -0
  163. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -0
  164. package/dist/esm/components/navigation/Tabs/TabPanel.js +32 -0
  165. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -0
  166. package/dist/esm/components/navigation/Tabs/Tabs.js +77 -0
  167. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -0
  168. package/dist/esm/components/primitives/BaseButton/BaseButton.js +17 -0
  169. package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -0
  170. package/dist/esm/components/primitives/Button/Button.js +183 -0
  171. package/dist/esm/components/primitives/Button/Button.js.map +1 -0
  172. package/dist/esm/components/primitives/Checkbox/Checkbox.js +205 -0
  173. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -0
  174. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +71 -0
  175. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -0
  176. package/dist/esm/components/primitives/Collapsible/Collapsible.js +116 -0
  177. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -0
  178. package/dist/esm/components/primitives/Icon/Icon.js +63 -0
  179. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -0
  180. package/dist/esm/components/primitives/IconButton/IconButton.js +222 -0
  181. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -0
  182. package/dist/esm/components/primitives/Input/Input.js +133 -0
  183. package/dist/esm/components/primitives/Input/Input.js.map +1 -0
  184. package/dist/esm/components/primitives/Paper/Paper.js +146 -0
  185. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -0
  186. package/dist/esm/components/primitives/Popover/Popover.js +121 -0
  187. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -0
  188. package/dist/esm/components/primitives/Popover/PopoverClose.js +50 -0
  189. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -0
  190. package/dist/esm/components/primitives/Popover/PopoverContent.js +102 -0
  191. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -0
  192. package/dist/esm/components/primitives/Popover/PopoverTrigger.js +37 -0
  193. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -0
  194. package/dist/esm/components/primitives/Switch/Switch.js +170 -0
  195. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -0
  196. package/dist/esm/components/primitives/Text/Text.js +166 -0
  197. package/dist/esm/components/primitives/Text/Text.js.map +1 -0
  198. package/dist/esm/components/primitives/Tooltip/Arrow.js +52 -0
  199. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -0
  200. package/dist/esm/components/primitives/Tooltip/Tooltip.js +219 -0
  201. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -0
  202. package/dist/esm/components/primitives/Tooltip/utils.js +66 -0
  203. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -0
  204. package/dist/esm/components/shell/AppShell/AppShell.js +157 -0
  205. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -0
  206. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +236 -0
  207. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -0
  208. package/dist/esm/components/shell/MenuBar/MenuBar.js +340 -0
  209. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -0
  210. package/dist/esm/components/shell/StatusBar/StatusBar.js +134 -0
  211. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -0
  212. package/dist/esm/components/shell/Toolbar/Toolbar.js +185 -0
  213. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -0
  214. package/dist/esm/context/KeyboardContext.js +14 -0
  215. package/dist/esm/context/KeyboardContext.js.map +1 -0
  216. package/dist/esm/index.js +78 -0
  217. package/dist/esm/index.js.map +1 -0
  218. package/dist/esm/palettes.js +4 -0
  219. package/dist/esm/palettes.js.map +1 -0
  220. package/dist/esm/theme/ThemeProvider.js +12 -0
  221. package/dist/esm/theme/ThemeProvider.js.map +1 -0
  222. package/dist/esm/theme/createTheme.js +10 -0
  223. package/dist/esm/theme/createTheme.js.map +1 -0
  224. package/dist/esm/theme/tokens.js +144 -0
  225. package/dist/esm/theme/tokens.js.map +1 -0
  226. package/dist/esm/utils/cn.js +6 -0
  227. package/dist/esm/utils/cn.js.map +1 -0
  228. package/dist/esm/utils/mathExpression.js +275 -0
  229. package/dist/esm/utils/mathExpression.js.map +1 -0
  230. package/dist/esm/utils/mathUtils.js +18 -0
  231. package/dist/esm/utils/mathUtils.js.map +1 -0
  232. package/dist/esm/utils/objects.js +22 -0
  233. package/dist/esm/utils/objects.js.map +1 -0
  234. package/dist/esm/utils/styledUtils.js +81 -0
  235. package/dist/esm/utils/styledUtils.js.map +1 -0
  236. package/dist/types/components/controls/ColorPicker/ColorPalette.d.ts +16 -0
  237. package/dist/types/components/controls/ColorPicker/ColorPicker.d.ts +6 -0
  238. package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +120 -0
  239. package/dist/types/components/controls/ColorPicker/ColorSwatch.d.ts +6 -0
  240. package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +28 -0
  241. package/dist/types/components/controls/ColorPicker/colorUtils.d.ts +3 -0
  242. package/dist/types/components/controls/ColorPicker/palettes/material.d.ts +24 -0
  243. package/dist/types/components/controls/ColorPicker/palettes/professional.d.ts +19 -0
  244. package/dist/types/components/controls/ColorPicker/palettes/tailwind.d.ts +12 -0
  245. package/dist/types/components/controls/CurveEditor/CurveEditor.d.ts +6 -0
  246. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +297 -0
  247. package/dist/types/components/controls/CurveEditor/curvePresets.d.ts +5 -0
  248. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +28 -0
  249. package/dist/types/components/controls/NumberInput/NumberInput.d.ts +150 -0
  250. package/dist/types/components/controls/NumberInput/useNumberInput.d.ts +65 -0
  251. package/dist/types/components/controls/Select/Select.d.ts +29 -0
  252. package/dist/types/components/controls/Select/Select.types.d.ts +131 -0
  253. package/dist/types/components/controls/Slider/Slider.d.ts +178 -0
  254. package/dist/types/components/controls/TreeView/TreeView.d.ts +27 -0
  255. package/dist/types/components/controls/TreeView/TreeView.types.d.ts +135 -0
  256. package/dist/types/components/controls/VectorInput/VectorInput.d.ts +26 -0
  257. package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +158 -0
  258. package/dist/types/components/editor/PropertyInspector/PropertyGroup.d.ts +6 -0
  259. package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +238 -0
  260. package/dist/types/components/editor/PropertyInspector/PropertyPanel.d.ts +6 -0
  261. package/dist/types/components/editor/PropertyInspector/PropertyRow.d.ts +6 -0
  262. package/dist/types/components/editor/PropertyInspector/PropertySection.d.ts +6 -0
  263. package/dist/types/components/editor/PropertyInspector/usePropertyUndo.d.ts +9 -0
  264. package/dist/types/components/feedback/Dialog/Dialog.d.ts +25 -0
  265. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +55 -0
  266. package/dist/types/components/feedback/Dialog/DialogBody.d.ts +16 -0
  267. package/dist/types/components/feedback/Dialog/DialogClose.d.ts +21 -0
  268. package/dist/types/components/feedback/Dialog/DialogFooter.d.ts +17 -0
  269. package/dist/types/components/feedback/Dialog/DialogHeader.d.ts +17 -0
  270. package/dist/types/components/feedback/Toast/Toast.types.d.ts +39 -0
  271. package/dist/types/components/feedback/Toast/ToastProvider.d.ts +19 -0
  272. package/dist/types/components/feedback/Toast/useToast.d.ts +22 -0
  273. package/dist/types/components/form/FormHelperText.d.ts +321 -0
  274. package/dist/types/components/form/FormLabel.d.ts +331 -0
  275. package/dist/types/components/form/InputWrapper.d.ts +346 -0
  276. package/dist/types/components/layout/Accordion/Accordion.d.ts +23 -0
  277. package/dist/types/components/layout/Accordion/Accordion.types.d.ts +109 -0
  278. package/dist/types/components/layout/Accordion/AccordionContent.d.ts +6 -0
  279. package/dist/types/components/layout/Accordion/AccordionItem.d.ts +6 -0
  280. package/dist/types/components/layout/Accordion/AccordionTrigger.d.ts +6 -0
  281. package/dist/types/components/layout/Flex/Flex.d.ts +215 -0
  282. package/dist/types/components/layout/Grid/Grid.d.ts +113 -0
  283. package/dist/types/components/layout/PanelSurface/PanelSurface.d.ts +1153 -0
  284. package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +64 -0
  285. package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts +6 -0
  286. package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +93 -0
  287. package/dist/types/components/layout/Spacer/Spacer.d.ts +329 -0
  288. package/dist/types/components/layout/SplitPane/SplitPane.d.ts +21 -0
  289. package/dist/types/components/layout/SplitPane/SplitPane.types.d.ts +87 -0
  290. package/dist/types/components/layout/SplitPane/SplitPanePanel.d.ts +20 -0
  291. package/dist/types/components/layout/Stack/Stack.d.ts +166 -0
  292. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +6 -0
  293. package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +74 -0
  294. package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +5 -0
  295. package/dist/types/components/navigation/Menu/Menu.d.ts +42 -0
  296. package/dist/types/components/navigation/Menu/Menu.types.d.ts +94 -0
  297. package/dist/types/components/navigation/Menu/useMenu.d.ts +16 -0
  298. package/dist/types/components/navigation/Tabs/Tab.d.ts +6 -0
  299. package/dist/types/components/navigation/Tabs/TabList.d.ts +6 -0
  300. package/dist/types/components/navigation/Tabs/TabPanel.d.ts +6 -0
  301. package/dist/types/components/navigation/Tabs/Tabs.d.ts +23 -0
  302. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +117 -0
  303. package/dist/types/components/primitives/Button/Button.d.ts +392 -0
  304. package/dist/types/components/primitives/Checkbox/Checkbox.d.ts +20 -0
  305. package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +156 -0
  306. package/dist/types/components/primitives/Checkbox/CheckboxGroup.d.ts +25 -0
  307. package/dist/types/components/primitives/Collapsible/Collapsible.d.ts +6 -0
  308. package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +28 -0
  309. package/dist/types/components/primitives/Icon/Icon.d.ts +40 -0
  310. package/dist/types/components/primitives/IconButton/IconButton.d.ts +354 -0
  311. package/dist/types/components/primitives/Input/Input.d.ts +134 -0
  312. package/dist/types/components/primitives/Paper/Paper.d.ts +419 -0
  313. package/dist/types/components/primitives/Popover/Popover.d.ts +25 -0
  314. package/dist/types/components/primitives/Popover/Popover.types.d.ts +99 -0
  315. package/dist/types/components/primitives/Popover/PopoverClose.d.ts +6 -0
  316. package/dist/types/components/primitives/Popover/PopoverContent.d.ts +6 -0
  317. package/dist/types/components/primitives/Popover/PopoverTrigger.d.ts +10 -0
  318. package/dist/types/components/primitives/Switch/Switch.d.ts +78 -0
  319. package/dist/types/components/primitives/Text/Text.d.ts +442 -0
  320. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +175 -0
  321. package/dist/types/components/primitives/Tooltip/types.d.ts +82 -0
  322. package/dist/types/components/shell/AppShell/AppShell.d.ts +1437 -0
  323. package/dist/types/components/shell/AppShell/AppShell.types.d.ts +48 -0
  324. package/dist/types/components/shell/FloatingPanel/FloatingPanel.d.ts +7 -0
  325. package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +61 -0
  326. package/dist/types/components/shell/MenuBar/MenuBar.d.ts +1441 -0
  327. package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +48 -0
  328. package/dist/types/components/shell/StatusBar/StatusBar.d.ts +868 -0
  329. package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +40 -0
  330. package/dist/types/components/shell/Toolbar/Toolbar.d.ts +1728 -0
  331. package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +59 -0
  332. package/dist/types/index.d.ts +101 -0
  333. package/dist/types/palettes.d.ts +3 -0
  334. package/dist/types/theme/ThemeProvider.d.ts +11 -0
  335. package/dist/types/theme/createTheme.d.ts +6 -0
  336. package/dist/types/theme/tokens.d.ts +147 -0
  337. package/dist/types/theme/types.d.ts +7 -0
  338. package/dist/types/types/common.d.ts +24 -0
  339. package/dist/types/types/utilities.d.ts +72 -0
  340. package/dist/types/utils/cn.d.ts +3 -0
  341. package/package.json +23 -7
  342. package/dist/index.d.ts +0 -12
  343. package/dist/index.esm.js +0 -13962
  344. package/dist/index.esm.js.map +0 -1
  345. package/dist/index.js +0 -14048
  346. package/dist/index.js.map +0 -1
@@ -0,0 +1,134 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef, useState, useMemo, useCallback } from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { useTheme } from '@emotion/react';
5
+ import { ensureKeyframeIds, evaluateCurve } from './curveUtils.js';
6
+ import { CURVE_PRESETS } from './curvePresets.js';
7
+ import { CurveCanvas } from './CurveCanvas.js';
8
+ import { CurveToolbar } from './CurveToolbar.js';
9
+ import { useCurveInteraction } from './useCurveInteraction.js';
10
+
11
+ const StyledCurveEditor = styled.div `
12
+ display: flex;
13
+ flex-direction: column;
14
+ width: ${p => (p.$responsive ? '100%' : `${p.$width}px`)};
15
+ border: 1px solid ${p => p.theme.colors.border.default};
16
+ border-radius: ${p => p.theme.borderRadius.md}px;
17
+ overflow: hidden;
18
+ background: ${p => p.theme.colors.background.secondary};
19
+ opacity: ${p => (p.$disabled ? 0.6 : 1)};
20
+ `;
21
+ const StyledBottomBar = styled.div `
22
+ border-top: 1px solid ${p => p.theme.colors.border.default};
23
+ background: ${p => p.theme.colors.surface.default};
24
+ padding: ${p => p.theme.spacing.xs}px ${p => p.theme.spacing.sm}px;
25
+ flex-shrink: 0;
26
+ `;
27
+ const CurveEditor = ({ value, defaultValue, width = 320, height = 200, responsive = false, showToolbar = true, showGrid = true, gridSubdivisions = 4, showAxisLabels = true, allowAdd = true, allowDelete = true, maxKeyframes = Infinity, lockEndpoints = true, minKeyframeDistance = 0.001, clampY = true, snapToGrid = false, precision = 3, labelX, labelY, presets: userPresets, size = 'md', disabled = false, readOnly = false, curveColor, curveWidth = 2, renderBackground, renderBottomBar, lockTangents = false, onChange, onChangeComplete, onSelectionChange, className, testId, id, style, ...rest }) => {
28
+ const theme = useTheme();
29
+ const effectiveCurveColor = curveColor ?? theme.colors.accent.primary;
30
+ const canvasRef = useRef(null);
31
+ // Controlled / uncontrolled — defaults to ease-in-out
32
+ const [internalValue, setInternalValue] = useState(() => {
33
+ const easeInOut = CURVE_PRESETS.find(p => p.id === 'ease-in-out');
34
+ const initial = defaultValue ??
35
+ easeInOut?.curve ??
36
+ CURVE_PRESETS[0]?.curve ?? {
37
+ keyframes: [],
38
+ domainX: [0, 1],
39
+ domainY: [0, 1],
40
+ };
41
+ return { ...initial, keyframes: ensureKeyframeIds(initial.keyframes) };
42
+ });
43
+ const isControlled = value !== undefined;
44
+ const curve = useMemo(() => {
45
+ const c = isControlled ? value : internalValue;
46
+ return { ...c, keyframes: ensureKeyframeIds(c.keyframes) };
47
+ }, [isControlled, value, internalValue]);
48
+ const handleChange = useCallback((newCurve) => {
49
+ if (!isControlled) {
50
+ setInternalValue(newCurve);
51
+ }
52
+ onChange?.(newCurve);
53
+ }, [isControlled, onChange]);
54
+ const handleChangeComplete = useCallback((newCurve) => {
55
+ onChangeComplete?.(newCurve);
56
+ }, [onChangeComplete]);
57
+ // Viewport — always matches domain with padding for labels (no user zoom/pan)
58
+ const viewport = useMemo(() => {
59
+ const axisName = labelX ?? labelY;
60
+ const hasAxisNames = Boolean(axisName);
61
+ const padding = hasAxisNames && showAxisLabels ? 0.12 : 0.08;
62
+ const [dxMin, dxMax] = curve.domainX;
63
+ const [dyMin, dyMax] = curve.domainY;
64
+ const xPad = (dxMax - dxMin) * padding;
65
+ const yPad = (dyMax - dyMin) * padding;
66
+ return {
67
+ viewX: [dxMin - xPad, dxMax + xPad],
68
+ viewY: [dyMin - yPad, dyMax + yPad],
69
+ zoom: 1,
70
+ panX: 0,
71
+ panY: 0,
72
+ };
73
+ }, [curve.domainX, curve.domainY, labelX, labelY, showAxisLabels]);
74
+ // Merge presets
75
+ const allPresets = useMemo(() => (userPresets ? [...CURVE_PRESETS, ...userPresets] : CURVE_PRESETS), [userPresets]);
76
+ // Interaction hook
77
+ const interaction = useCurveInteraction({
78
+ curve,
79
+ viewport,
80
+ canvasRef,
81
+ disabled,
82
+ readOnly,
83
+ allowAdd,
84
+ allowDelete,
85
+ maxKeyframes,
86
+ lockEndpoints,
87
+ lockTangents,
88
+ clampY,
89
+ snapToGrid,
90
+ gridSubdivisions,
91
+ minKeyframeDistance,
92
+ precision,
93
+ onChange: handleChange,
94
+ onChangeComplete: handleChangeComplete,
95
+ onSelectionChange,
96
+ });
97
+ // Compute tangent mode for selected keyframes (null if mixed or none selected)
98
+ const selectedTangentMode = useMemo(() => {
99
+ if (interaction.selectedIds.size === 0)
100
+ return null;
101
+ let mode = null;
102
+ for (const kf of curve.keyframes) {
103
+ if (kf.id && interaction.selectedIds.has(kf.id)) {
104
+ if (mode === null) {
105
+ mode = kf.tangentMode;
106
+ }
107
+ else if (mode !== kf.tangentMode) {
108
+ return null; // Mixed modes
109
+ }
110
+ }
111
+ }
112
+ return mode;
113
+ }, [curve.keyframes, interaction.selectedIds]);
114
+ const handlePresetSelect = useCallback((preset) => {
115
+ const newCurve = {
116
+ ...preset.curve,
117
+ keyframes: ensureKeyframeIds(preset.curve.keyframes),
118
+ };
119
+ handleChange(newCurve);
120
+ handleChangeComplete(newCurve);
121
+ }, [handleChange, handleChangeComplete]);
122
+ return (jsxs(StyledCurveEditor, { className: className, "$disabled": disabled, "$width": width, "$responsive": responsive, "data-testid": testId, id: id, style: style, ...rest, children: [showToolbar && (jsx(CurveToolbar, { selectedTangentMode: selectedTangentMode, onTangentModeChange: interaction.setTangentMode, onPresetSelect: handlePresetSelect, presets: allPresets, disabled: disabled, lockTangents: lockTangents, size: size, testId: testId })), jsx(CurveCanvas, { canvasRef: canvasRef, curve: curve, viewport: viewport, showGrid: showGrid, gridSubdivisions: gridSubdivisions, showAxisLabels: showAxisLabels, labelX: labelX, labelY: labelY, curveColor: effectiveCurveColor, curveWidth: curveWidth, renderBackground: renderBackground, selectedIds: interaction.selectedIds, hoveredElement: interaction.hoveredElement, selectionBox: interaction.selectionBox, isDragging: interaction.isDragging, lockTangents: lockTangents, height: height, responsive: responsive, disabled: disabled, size: size, handlers: interaction.handlers, testId: testId }), renderBottomBar && (jsx(StyledBottomBar, { "data-testid": testId ? `${testId}-bottom-bar` : undefined, children: renderBottomBar({
123
+ curve,
124
+ selectedIds: Array.from(interaction.selectedIds),
125
+ selectedKeyframes: curve.keyframes.filter(kf => kf.id && interaction.selectedIds.has(kf.id)),
126
+ evaluate: (x) => evaluateCurve(curve, x),
127
+ disabled,
128
+ readOnly,
129
+ }) }))] }));
130
+ };
131
+ CurveEditor.displayName = 'CurveEditor';
132
+
133
+ export { CurveEditor };
134
+ //# sourceMappingURL=CurveEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurveEditor.js","sources":["../../../../../../src/components/controls/CurveEditor/CurveEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import styled from '@emotion/styled';
3
+ import { IconButton } from '../../primitives/IconButton/IconButton.js';
4
+ import { Select } from '../Select/Select.js';
5
+ import { Tooltip } from '../../primitives/Tooltip/Tooltip.js';
6
+ import '../../primitives/Icon/Icon.js';
7
+ import { TangentFreeIcon } from '../../Icons/TangentFreeIcon.js';
8
+ import { TangentAlignedIcon } from '../../Icons/TangentAlignedIcon.js';
9
+ import { TangentMirroredIcon } from '../../Icons/TangentMirroredIcon.js';
10
+ import { TangentAutoIcon } from '../../Icons/TangentAutoIcon.js';
11
+ import { TangentLinearIcon } from '../../Icons/TangentLinearIcon.js';
12
+ import { TangentStepIcon } from '../../Icons/TangentStepIcon.js';
13
+
14
+ const TOOLBAR_HEIGHT = {
15
+ sm: 28,
16
+ md: 32,
17
+ lg: 36,
18
+ };
19
+ const StyledToolbar = styled.div `
20
+ display: flex;
21
+ align-items: center;
22
+ gap: ${p => p.theme.spacing.sm}px;
23
+ padding: 0 ${p => p.theme.spacing.sm}px;
24
+ height: ${p => TOOLBAR_HEIGHT[p.$size]}px;
25
+ background: ${p => p.theme.colors.surface.default};
26
+ border-bottom: 1px solid ${p => p.theme.colors.border.default};
27
+ flex-shrink: 0;
28
+ `;
29
+ const ToolbarSection = styled.div `
30
+ display: flex;
31
+ align-items: center;
32
+ gap: ${p => p.theme.spacing.xs}px;
33
+ `;
34
+ const Separator = styled.div `
35
+ width: 1px;
36
+ height: 16px;
37
+ background: ${p => p.theme.colors.border.default};
38
+ margin: 0 ${p => p.theme.spacing.xs}px;
39
+ `;
40
+ const TANGENT_MODES = [
41
+ {
42
+ mode: 'free',
43
+ label: 'Free',
44
+ icon: jsx(TangentFreeIcon, { decorative: true }),
45
+ shortcut: '1',
46
+ },
47
+ {
48
+ mode: 'aligned',
49
+ label: 'Aligned',
50
+ icon: jsx(TangentAlignedIcon, { decorative: true }),
51
+ shortcut: '2',
52
+ },
53
+ {
54
+ mode: 'mirrored',
55
+ label: 'Mirrored',
56
+ icon: jsx(TangentMirroredIcon, { decorative: true }),
57
+ shortcut: '3',
58
+ },
59
+ {
60
+ mode: 'auto',
61
+ label: 'Auto',
62
+ icon: jsx(TangentAutoIcon, { decorative: true }),
63
+ shortcut: '4',
64
+ },
65
+ {
66
+ mode: 'linear',
67
+ label: 'Linear',
68
+ icon: jsx(TangentLinearIcon, { decorative: true }),
69
+ shortcut: '5',
70
+ },
71
+ {
72
+ mode: 'step',
73
+ label: 'Step',
74
+ icon: jsx(TangentStepIcon, { decorative: true }),
75
+ shortcut: '6',
76
+ },
77
+ ];
78
+ const CurveToolbar = ({ selectedTangentMode, onTangentModeChange, onPresetSelect, presets, disabled, lockTangents, size, testId, }) => {
79
+ const presetOptions = presets.map(p => ({
80
+ value: p.id,
81
+ label: p.label,
82
+ }));
83
+ const handlePresetChange = (id) => {
84
+ if (!id)
85
+ return;
86
+ const preset = presets.find(p => p.id === id);
87
+ if (preset)
88
+ onPresetSelect(preset);
89
+ };
90
+ const iconSize = size === 'lg' ? 'md' : 'sm';
91
+ return (jsxs(StyledToolbar, { "$size": size, "data-testid": testId ? `${testId}-toolbar` : undefined, children: [jsx(ToolbarSection, { children: jsx(Select, { options: presetOptions, onChange: handlePresetChange, size: size === 'lg' ? 'md' : 'sm', variant: "ghost", disabled: disabled, placeholder: "Preset...", "aria-label": "Curve preset", minDropdownWidth: 180 }) }), !lockTangents && (jsxs(Fragment, { children: [jsx(Separator, {}), jsx(ToolbarSection, { children: TANGENT_MODES.map(({ mode, label, icon, shortcut }) => (jsx(Tooltip, { title: `${label} (${shortcut})`, placement: "bottom", children: jsx(IconButton, { size: iconSize, variant: "ghost", pressed: selectedTangentMode === mode, disabled: disabled || selectedTangentMode === null, "aria-label": `${label} tangent mode`, onClick: () => onTangentModeChange(mode), children: icon }) }, mode))) })] }))] }));
92
+ };
93
+ CurveToolbar.displayName = 'CurveToolbar';
94
+
95
+ export { CurveToolbar };
96
+ //# sourceMappingURL=CurveToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurveToolbar.js","sources":["../../../../../../src/components/controls/CurveEditor/CurveToolbar.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;AA8BA,MAAM,cAAc,GAAoC;AACtD,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;CACP;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAA4B;;;SAGnD,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;eACjB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1B,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAA;6BACtB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAA;;CAE9D;AAED,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;SAGxB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;CAC/B;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;gBAGZ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAA;cACpC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;CACpC;AAED,MAAM,aAAa,GAKd;AACH,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAEA,GAAA,CAAC,eAAe,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACpC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAEA,GAAA,CAAC,kBAAkB,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACvC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,IAAI,EAAEA,GAAA,CAAC,mBAAmB,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACxC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAEA,GAAA,CAAC,eAAe,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACpC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,IAAI,EAAEA,GAAA,CAAC,iBAAiB,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACtC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAEA,GAAA,CAAC,eAAe,EAAA,EAAC,UAAU,EAAG,IAAA,EAAA,CAAA;AACpC,QAAA,QAAQ,EAAE,GAAG;AACd,KAAA;CACF;MAEY,YAAY,GAAgC,CAAC,EACxD,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,MAAM,GACP,KAAI;IACH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK;QACtC,KAAK,EAAE,CAAC,CAAC,EAAE;QACX,KAAK,EAAE,CAAC,CAAC,KAAK;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,kBAAkB,GAAG,CAAC,EAAiB,KAAI;AAC/C,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7C,QAAA,IAAI,MAAM;YAAE,cAAc,CAAC,MAAM,CAAC;AACpC,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI;AAE5C,IAAA,QACEC,IAAC,CAAA,aAAa,EACL,EAAA,OAAA,EAAA,IAAI,iBACE,MAAM,GAAG,GAAG,MAAM,CAAA,QAAA,CAAU,GAAG,SAAS,EAAA,QAAA,EAAA,CAGrDD,GAAC,CAAA,cAAc,cACbA,GAAC,CAAA,MAAM,EACL,EAAA,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,WAAW,gBACZ,cAAc,EACzB,gBAAgB,EAAE,GAAG,EACrB,CAAA,EAAA,CACa,EAEhB,CAAC,YAAY,KACZC,IACE,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAF,GAAA,CAAC,SAAS,EAAG,EAAA,CAAA,EAGbA,IAAC,cAAc,EAAA,EAAA,QAAA,EACZ,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MACjDA,GAAC,CAAA,OAAO,IAEN,KAAK,EAAE,CAAG,EAAA,KAAK,KAAK,QAAQ,CAAA,CAAA,CAAG,EAC/B,SAAS,EAAC,QAAQ,EAAA,QAAA,EAElBA,GAAC,CAAA,UAAU,IACT,IAAI,EAAE,QAAQ,EACd,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,mBAAmB,KAAK,IAAI,EACrC,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,IAAI,EACtC,YAAA,EAAA,CAAA,EAAG,KAAK,CAAe,aAAA,CAAA,EACnC,OAAO,EAAE,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAA,QAAA,EAEvC,IAAI,EACM,CAAA,EAAA,EAbR,IAAI,CAcD,CACX,CAAC,EAAA,CACa,IAChB,CACJ,CAAA,EAAA,CACa;AAEpB;AAEA,YAAY,CAAC,WAAW,GAAG,cAAc;;;;"}
@@ -0,0 +1,184 @@
1
+ import { generateKeyframeId } from './curveUtils.js';
2
+
3
+ function kf(x, y, hInX, hInY, hOutX, hOutY, tangentMode = 'free') {
4
+ return {
5
+ x,
6
+ y,
7
+ handleIn: { x: hInX, y: hInY },
8
+ handleOut: { x: hOutX, y: hOutY },
9
+ tangentMode,
10
+ id: generateKeyframeId(),
11
+ };
12
+ }
13
+ const CURVE_PRESETS = [
14
+ // ─── Basic ───
15
+ {
16
+ id: 'linear',
17
+ label: 'Linear',
18
+ category: 'Basic',
19
+ curve: {
20
+ keyframes: [
21
+ kf(0, 0, 0, 0, 0.333, 0.333, 'linear'),
22
+ kf(1, 1, -0.333, -0.333, 0, 0, 'linear'),
23
+ ],
24
+ domainX: [0, 1],
25
+ domainY: [0, 1],
26
+ },
27
+ },
28
+ {
29
+ id: 'constant',
30
+ label: 'Constant',
31
+ category: 'Basic',
32
+ curve: {
33
+ keyframes: [
34
+ kf(0, 1, 0, 0, 0.333, 0, 'linear'),
35
+ kf(1, 1, -0.333, 0, 0, 0, 'linear'),
36
+ ],
37
+ domainX: [0, 1],
38
+ domainY: [0, 1],
39
+ },
40
+ },
41
+ // ─── Ease ───
42
+ {
43
+ id: 'ease-in',
44
+ label: 'Ease In',
45
+ category: 'Ease',
46
+ curve: {
47
+ keyframes: [kf(0, 0, 0, 0, 0.42, 0), kf(1, 1, -0.333, -0.333, 0, 0)],
48
+ domainX: [0, 1],
49
+ domainY: [0, 1],
50
+ },
51
+ },
52
+ {
53
+ id: 'ease-out',
54
+ label: 'Ease Out',
55
+ category: 'Ease',
56
+ curve: {
57
+ keyframes: [kf(0, 0, 0, 0, 0.333, 0.333), kf(1, 1, -0.58, 0, 0, 0)],
58
+ domainX: [0, 1],
59
+ domainY: [0, 1],
60
+ },
61
+ },
62
+ {
63
+ id: 'ease-in-out',
64
+ label: 'Ease In-Out',
65
+ category: 'Ease',
66
+ curve: {
67
+ keyframes: [kf(0, 0, 0, 0, 0.42, 0), kf(1, 1, -0.58, 0, 0, 0)],
68
+ domainX: [0, 1],
69
+ domainY: [0, 1],
70
+ },
71
+ },
72
+ // ─── Dramatic ───
73
+ {
74
+ id: 'ease-in-cubic',
75
+ label: 'Ease In (Cubic)',
76
+ category: 'Dramatic',
77
+ curve: {
78
+ keyframes: [kf(0, 0, 0, 0, 0.55, 0), kf(1, 1, -0.2, -0.333, 0, 0)],
79
+ domainX: [0, 1],
80
+ domainY: [0, 1],
81
+ },
82
+ },
83
+ {
84
+ id: 'ease-out-cubic',
85
+ label: 'Ease Out (Cubic)',
86
+ category: 'Dramatic',
87
+ curve: {
88
+ keyframes: [kf(0, 0, 0, 0, 0.2, 0.333), kf(1, 1, -0.55, 0, 0, 0)],
89
+ domainX: [0, 1],
90
+ domainY: [0, 1],
91
+ },
92
+ },
93
+ {
94
+ id: 'bounce',
95
+ label: 'Bounce',
96
+ category: 'Dramatic',
97
+ curve: {
98
+ keyframes: [
99
+ kf(0, 0, 0, 0, 0.12, 0.33),
100
+ kf(0.5, 1.15, -0.12, 0.05, 0.12, -0.05),
101
+ kf(0.75, 0.9, -0.08, -0.05, 0.08, 0.05),
102
+ kf(1, 1, -0.08, 0, 0, 0),
103
+ ],
104
+ domainX: [0, 1],
105
+ domainY: [0, 1],
106
+ },
107
+ },
108
+ {
109
+ id: 'overshoot',
110
+ label: 'Overshoot',
111
+ category: 'Dramatic',
112
+ curve: {
113
+ keyframes: [
114
+ kf(0, 0, 0, 0, 0.2, 0.5),
115
+ kf(0.7, 1.2, -0.15, 0.1, 0.1, -0.05),
116
+ kf(1, 1, -0.1, 0, 0, 0),
117
+ ],
118
+ domainX: [0, 1],
119
+ domainY: [0, 1],
120
+ },
121
+ },
122
+ // ─── Utility ───
123
+ {
124
+ id: 'step',
125
+ label: 'Step',
126
+ category: 'Utility',
127
+ curve: {
128
+ keyframes: [
129
+ kf(0, 0, 0, 0, 0, 0, 'step'),
130
+ kf(0.5, 1, 0, 0, 0, 0, 'step'),
131
+ kf(1, 1, 0, 0, 0, 0, 'linear'),
132
+ ],
133
+ domainX: [0, 1],
134
+ domainY: [0, 1],
135
+ },
136
+ },
137
+ {
138
+ id: 'inverse',
139
+ label: 'Inverse',
140
+ category: 'Utility',
141
+ curve: {
142
+ keyframes: [
143
+ kf(0, 1, 0, 0, 0.333, -0.333, 'linear'),
144
+ kf(1, 0, -0.333, 0.333, 0, 0, 'linear'),
145
+ ],
146
+ domainX: [0, 1],
147
+ domainY: [0, 1],
148
+ },
149
+ },
150
+ {
151
+ id: 'bell',
152
+ label: 'Bell Curve',
153
+ category: 'Utility',
154
+ curve: {
155
+ keyframes: [
156
+ kf(0, 0, 0, 0, 0.1, 0),
157
+ kf(0.3, 0.8, -0.1, 0.1, 0.08, 0.08),
158
+ kf(0.5, 1, -0.08, 0.02, 0.08, -0.02, 'mirrored'),
159
+ kf(0.7, 0.8, -0.08, 0.08, 0.1, -0.1),
160
+ kf(1, 0, -0.1, 0, 0, 0),
161
+ ],
162
+ domainX: [0, 1],
163
+ domainY: [0, 1],
164
+ },
165
+ },
166
+ {
167
+ id: 'sawtooth',
168
+ label: 'Sawtooth',
169
+ category: 'Utility',
170
+ curve: {
171
+ keyframes: [
172
+ kf(0, 0, 0, 0, 0.15, 0.5, 'linear'),
173
+ kf(0.5, 1, -0.15, -0.5, 0, 0, 'linear'),
174
+ kf(0.5, 0, 0, 0, 0.15, 0.5, 'linear'),
175
+ kf(1, 1, -0.15, -0.5, 0, 0, 'linear'),
176
+ ],
177
+ domainX: [0, 1],
178
+ domainY: [0, 1],
179
+ },
180
+ },
181
+ ];
182
+
183
+ export { CURVE_PRESETS };
184
+ //# sourceMappingURL=curvePresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curvePresets.js","sources":["../../../../../../src/components/controls/CurveEditor/curvePresets.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}