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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # entangle-ui
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#24](https://github.com/SebastianWebdev/entangle-ui/pull/24) [`7c350bb`](https://github.com/SebastianWebdev/entangle-ui/commit/7c350bb1ec812a4c4e3ab44c36bc280920aa61c0) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Switch to fully tree-shakeable ESM build with preserveModules
8
+
9
+ - Replace monolithic bundle with per-module ESM output (`dist/esm/`)
10
+ - Drop CJS output — ESM-only package
11
+ - Add `sideEffects: false` and `exports` field to package.json
12
+ - Fix externals: add @emotion/react, @emotion/styled, @floating-ui/react, react/jsx-runtime
13
+ - Fix wrong external name: @base-ui/react → @base-ui-components/react
14
+ - Remove @emotion/react and @emotion/styled from dependencies (keep in peerDependencies only)
15
+ - Add `/*#__PURE__*/` annotations for tree-shaking (Object.assign, createContext, React.memo, forwardRef)
16
+ - Add `entangle-ui/palettes` deep import entry point
17
+ - Add size-limit bundle size guards
18
+ - Create tsconfig.build.json (excludes tests/stories from build)
19
+
20
+ ### Patch Changes
21
+
22
+ - [#23](https://github.com/SebastianWebdev/entangle-ui/pull/23) [`1e67018`](https://github.com/SebastianWebdev/entangle-ui/commit/1e6701877b283cdd954d61e726d323f98d59c56a) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Replace hardcoded rgba values with theme tokens (whiteOverlay, separator shadows, thumb) and deduplicate AppShell toolbar slots. Fix SplitPane panel collapse regression where collapsed panels were clamped back to minSize.
23
+
24
+ - [#21](https://github.com/SebastianWebdev/entangle-ui/pull/21) [`df53065`](https://github.com/SebastianWebdev/entangle-ui/commit/df53065ac21a89a257ca5a66d7943c19399940a9) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Optimize new components: memoize context values, wrap leaf components with React.memo, replace hardcoded z-index/spacing with theme tokens, extract constants
25
+
3
26
  ## 0.2.0
4
27
 
5
28
  ### Minor Changes
@@ -0,0 +1,27 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * Check icon component for confirmation and selection states.
6
+ *
7
+ * A standard checkmark icon commonly used for checkboxes, confirmation dialogs,
8
+ * completed tasks, and success states in editor interfaces.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic usage
13
+ * <CheckIcon />
14
+ *
15
+ * // With custom size and color
16
+ * <CheckIcon size="lg" color="success" />
17
+ *
18
+ * // In a confirmation button
19
+ * <Button icon={<CheckIcon />}>Confirm</Button>
20
+ * ```
21
+ */
22
+ const CheckIcon = props => {
23
+ return (jsx(Icon, { ...props, children: jsx("polyline", { points: "20,6 9,17 4,12" }) }));
24
+ };
25
+
26
+ export { CheckIcon };
27
+ //# sourceMappingURL=CheckIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckIcon.js","sources":["../../../../../src/components/Icons/CheckIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,SAAS,GAA0C,KAAK,IAAG;AACtE,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EACbA,GAAU,CAAA,UAAA,EAAA,EAAA,MAAM,EAAC,gBAAgB,EAAG,CAAA,EAAA,CAC/B;AAEX;;;;"}
@@ -0,0 +1,27 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * Chevron Down icon component for dropdown and expansion indicators.
6
+ *
7
+ * A subtle downward chevron commonly used for dropdown menus,
8
+ * accordion expansion, and subtle directional cues in editor interfaces.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic usage
13
+ * <ChevronDownIcon />
14
+ *
15
+ * // With custom size and color
16
+ * <ChevronDownIcon size="sm" color="muted" />
17
+ *
18
+ * // In a dropdown
19
+ * <Select icon={<ChevronDownIcon />}>Options</Select>
20
+ * ```
21
+ */
22
+ const ChevronDownIcon = props => {
23
+ return (jsx(Icon, { ...props, children: jsx("polyline", { points: "6,9 12,15 18,9" }) }));
24
+ };
25
+
26
+ export { ChevronDownIcon };
27
+ //# sourceMappingURL=ChevronDownIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChevronDownIcon.js","sources":["../../../../../src/components/Icons/ChevronDownIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,eAAe,GAA0C,KAAK,IAAG;AAC5E,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EACbA,GAAU,CAAA,UAAA,EAAA,EAAA,MAAM,EAAC,gBAAgB,EAAG,CAAA,EAAA,CAC/B;AAEX;;;;"}
@@ -0,0 +1,27 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * Chevron Up icon component for collapse and upward indicators.
6
+ *
7
+ * A subtle upward chevron commonly used for collapsing content,
8
+ * accordion collapse, and subtle directional cues in editor interfaces.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic usage
13
+ * <ChevronUpIcon />
14
+ *
15
+ * // With custom size and color
16
+ * <ChevronUpIcon size="sm" color="muted" />
17
+ *
18
+ * // In a collapsible section
19
+ * <Button icon={<ChevronUpIcon />}>Collapse</Button>
20
+ * ```
21
+ */
22
+ const ChevronUpIcon = props => {
23
+ return (jsx(Icon, { ...props, children: jsx("polyline", { points: "18,15 12,9 6,15" }) }));
24
+ };
25
+
26
+ export { ChevronUpIcon };
27
+ //# sourceMappingURL=ChevronUpIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChevronUpIcon.js","sources":["../../../../../src/components/Icons/ChevronUpIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,aAAa,GAA0C,KAAK,IAAG;AAC1E,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EACbA,GAAU,CAAA,UAAA,EAAA,EAAA,MAAM,EAAC,iBAAiB,EAAG,CAAA,EAAA,CAChC;AAEX;;;;"}
@@ -0,0 +1,27 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * Circle icon component for radio buttons and dot indicators.
6
+ *
7
+ * A standard circle icon commonly used for radio button selections,
8
+ * dot indicators, and circular markers in editor interfaces.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic usage
13
+ * <CircleIcon />
14
+ *
15
+ * // With custom size and color
16
+ * <CircleIcon size="lg" color="primary" />
17
+ *
18
+ * // In a radio selection
19
+ * <Button icon={<CircleIcon />}>Option</Button>
20
+ * ```
21
+ */
22
+ const CircleIcon = props => {
23
+ return (jsx(Icon, { ...props, children: jsx("circle", { cx: "12", cy: "12", r: "10" }) }));
24
+ };
25
+
26
+ export { CircleIcon };
27
+ //# sourceMappingURL=CircleIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircleIcon.js","sources":["../../../../../src/components/Icons/CircleIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,UAAU,GAA0C,KAAK,IAAG;IACvE,QACEA,IAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EACb,QAAA,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,EAC5B,CAAA;AAEX;;;;"}
@@ -0,0 +1,27 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * Close icon component for dismissing and closing actions.
6
+ *
7
+ * A standard X icon commonly used for closing modals,
8
+ * dismissing notifications, and cancel actions in editor interfaces.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic usage
13
+ * <CloseIcon />
14
+ *
15
+ * // With custom size and color
16
+ * <CloseIcon size="sm" color="muted" />
17
+ *
18
+ * // In a close button
19
+ * <IconButton icon={<CloseIcon />} aria-label="Close" />
20
+ * ```
21
+ */
22
+ const CloseIcon = props => {
23
+ return (jsxs(Icon, { ...props, children: [jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }));
24
+ };
25
+
26
+ export { CloseIcon };
27
+ //# sourceMappingURL=CloseIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloseIcon.js","sources":["../../../../../src/components/Icons/CloseIcon.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,SAAS,GAA0C,KAAK,IAAG;AACtE,IAAA,QACEA,IAAC,CAAA,IAAI,OAAK,KAAK,EAAA,QAAA,EAAA,CACbC,cAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAG,CAAA,EACtCA,cAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAG,CAAA,CAAA,EAAA,CACjC;AAEX;;;;"}
@@ -0,0 +1,28 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ /**
5
+ * EyeDropper icon component for color sampling actions.
6
+ *
7
+ * A pipette/eyedropper icon commonly used for color picking,
8
+ * sampling colors from the canvas, and color-related tools
9
+ * in editor interfaces.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * // Basic usage
14
+ * <EyeDropperIcon />
15
+ *
16
+ * // With custom size and color
17
+ * <EyeDropperIcon size="md" color="primary" />
18
+ *
19
+ * // In a color picker button
20
+ * <Button icon={<EyeDropperIcon />}>Pick Color</Button>
21
+ * ```
22
+ */
23
+ const EyeDropperIcon = props => {
24
+ return (jsx(Icon, { ...props, children: jsx("path", { d: "M21.17 2.06A3.12 3.12 0 0 0 19 1.05a2.99 2.99 0 0 0-2.15.88l-2.7 2.7-1.28-1.27a1 1 0 0 0-1.41 0 1 1 0 0 0 0 1.41l.27.27-7.07 7.08a2 2 0 0 0-.54 1l-.72 3.61a1 1 0 0 0 .28.87 1 1 0 0 0 .71.3h.16l3.61-.72a2 2 0 0 0 1-.54l7.08-7.07.27.27a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-1.27-1.28 2.7-2.7a3.05 3.05 0 0 0 .02-4.29z" }) }));
25
+ };
26
+
27
+ export { EyeDropperIcon };
28
+ //# sourceMappingURL=EyeDropperIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EyeDropperIcon.js","sources":["../../../../../src/components/Icons/EyeDropperIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;;AAkBG;AACU,MAAA,cAAc,GAA0C,KAAK,IAAG;AAC3E,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EACbA,GAAM,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,0TAA0T,EAAG,CAAA,EAAA,CAChU;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentAlignedIcon = props => {
5
+ return (jsxs(Icon, { ...props, children: [jsx("g", { strokeWidth: "2.25", children: jsx("line", { x1: "3", y1: "18", x2: "21", y2: "6" }) }), jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor", stroke: "none" })] }));
6
+ };
7
+
8
+ export { TangentAlignedIcon };
9
+ //# sourceMappingURL=TangentAlignedIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentAlignedIcon.js","sources":["../../../../../src/components/Icons/TangentAlignedIcon.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAIa,MAAA,kBAAkB,GAE3B,KAAK,IAAG;IACV,QACEA,IAAC,CAAA,IAAI,EAAK,EAAA,GAAA,KAAK,aACbC,GAAG,CAAA,GAAA,EAAA,EAAA,WAAW,EAAC,MAAM,EACnB,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAG,CAAA,EAAA,CACpC,EACJA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAC7D,EAAA,CAAA;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentAutoIcon = props => {
5
+ return (jsx(Icon, { ...props, children: jsx("g", { strokeWidth: "2.25", children: jsx("path", { d: "M3 18 C7.5 18, 9 6, 12 6 C15 6, 16.5 18, 21 18" }) }) }));
6
+ };
7
+
8
+ export { TangentAutoIcon };
9
+ //# sourceMappingURL=TangentAutoIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentAutoIcon.js","sources":["../../../../../src/components/Icons/TangentAutoIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIa,MAAA,eAAe,GAA0C,KAAK,IAAG;AAC5E,IAAA,QACEA,GAAC,CAAA,IAAI,OAAK,KAAK,EAAA,QAAA,EACbA,WAAG,WAAW,EAAC,MAAM,EACnB,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gDAAgD,GAAG,EACzD,CAAA,EAAA,CACC;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentFreeIcon = props => {
5
+ return (jsxs(Icon, { ...props, children: [jsxs("g", { strokeWidth: "2.25", children: [jsx("line", { x1: "4.5", y1: "19.5", x2: "12", y2: "12" }), jsx("line", { x1: "12", y1: "12", x2: "21", y2: "7.5" })] }), jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor", stroke: "none" })] }));
6
+ };
7
+
8
+ export { TangentFreeIcon };
9
+ //# sourceMappingURL=TangentFreeIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentFreeIcon.js","sources":["../../../../../src/components/Icons/TangentFreeIcon.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAIa,MAAA,eAAe,GAA0C,KAAK,IAAG;AAC5E,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EACb,QAAA,EAAA,CAAAA,IAAA,CAAA,GAAA,EAAA,EAAG,WAAW,EAAC,MAAM,EAAA,QAAA,EAAA,CACnBC,GAAM,CAAA,MAAA,EAAA,EAAA,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,EAC3CA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAA,CAAG,IACvC,EACJA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAG,CAAA,CAAA,EAAA,CAC7D;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentLinearIcon = props => {
5
+ return (jsx(Icon, { ...props, children: jsx("g", { strokeWidth: "2.25", children: jsx("line", { x1: "3", y1: "19.5", x2: "21", y2: "4.5" }) }) }));
6
+ };
7
+
8
+ export { TangentLinearIcon };
9
+ //# sourceMappingURL=TangentLinearIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentLinearIcon.js","sources":["../../../../../src/components/Icons/TangentLinearIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIa,MAAA,iBAAiB,GAE1B,KAAK,IAAG;AACV,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EACbA,GAAG,CAAA,GAAA,EAAA,EAAA,WAAW,EAAC,MAAM,EACnB,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAA,CAAG,EACxC,CAAA,EAAA,CACC;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentMirroredIcon = props => {
5
+ return (jsxs(Icon, { ...props, children: [jsx("g", { strokeWidth: "2.25", children: jsx("line", { x1: "3", y1: "18", x2: "21", y2: "6" }) }), jsx("circle", { cx: "6", cy: "16.5", r: "2.25", fill: "currentColor", stroke: "none" }), jsx("circle", { cx: "18", cy: "7.5", r: "2.25", fill: "currentColor", stroke: "none" }), jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor", stroke: "none" })] }));
6
+ };
7
+
8
+ export { TangentMirroredIcon };
9
+ //# sourceMappingURL=TangentMirroredIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentMirroredIcon.js","sources":["../../../../../src/components/Icons/TangentMirroredIcon.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAIa,MAAA,mBAAmB,GAE5B,KAAK,IAAG;IACV,QACEA,KAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EACb,QAAA,EAAA,CAAAC,GAAA,CAAA,GAAA,EAAA,EAAG,WAAW,EAAC,MAAM,YACnBA,GAAM,CAAA,MAAA,EAAA,EAAA,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAG,CAAA,EAAA,CACpC,EACJA,GAAQ,CAAA,QAAA,EAAA,EAAA,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,EACtEA,GAAQ,CAAA,QAAA,EAAA,EAAA,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,EACtEA,GAAQ,CAAA,QAAA,EAAA,EAAA,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAC7D,EAAA,CAAA;AAEX;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Icon } from '../primitives/Icon/Icon.js';
3
+
4
+ const TangentStepIcon = props => {
5
+ return (jsx(Icon, { ...props, children: jsx("g", { strokeWidth: "2.25", children: jsx("polyline", { points: "3,18 3,12 12,12 12,6 21,6" }) }) }));
6
+ };
7
+
8
+ export { TangentStepIcon };
9
+ //# sourceMappingURL=TangentStepIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TangentStepIcon.js","sources":["../../../../../src/components/Icons/TangentStepIcon.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIa,MAAA,eAAe,GAA0C,KAAK,IAAG;AAC5E,IAAA,QACEA,GAAC,CAAA,IAAI,OAAK,KAAK,EAAA,QAAA,EACbA,WAAG,WAAW,EAAC,MAAM,EACnB,QAAA,EAAAA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,2BAA2B,GAAG,EAC7C,CAAA,EAAA,CACC;AAEX;;;;"}
@@ -0,0 +1,92 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef, useCallback } from 'react';
3
+ import styled from '@emotion/styled';
4
+
5
+ const StyledTrack = styled.div `
6
+ position: relative;
7
+ width: 100%;
8
+ height: 4px;
9
+ border-radius: ${props => props.theme.borderRadius.sm}px;
10
+ cursor: pointer;
11
+ user-select: none;
12
+ touch-action: none;
13
+
14
+ /* Checkerboard for transparency */
15
+ background-image:
16
+ linear-gradient(45deg, #ccc 25%, transparent 25%),
17
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
18
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
19
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
20
+ background-size: 8px 8px;
21
+ background-position:
22
+ 0 0,
23
+ 0 4px,
24
+ 4px -4px,
25
+ -4px 0px;
26
+ `;
27
+ const StyledGradient = styled.div `
28
+ position: absolute;
29
+ inset: 0;
30
+ border-radius: inherit;
31
+ `;
32
+ const StyledThumb = styled.div `
33
+ position: absolute;
34
+ top: 50%;
35
+ width: 10px;
36
+ height: 10px;
37
+ border-radius: 50%;
38
+ border: 2px solid white;
39
+ box-shadow: ${props => props.theme.shadows.sm};
40
+ transform: translate(-50%, -50%);
41
+ pointer-events: none;
42
+ `;
43
+ const AlphaSlider = ({ alpha, color, onChange, onChangeComplete, }) => {
44
+ const trackRef = useRef(null);
45
+ const getAlpha = useCallback((clientX) => {
46
+ const rect = trackRef.current?.getBoundingClientRect();
47
+ if (!rect)
48
+ return;
49
+ const x = Math.max(0, Math.min(clientX - rect.left, rect.width));
50
+ const a = Number((x / rect.width).toFixed(2));
51
+ onChange(a);
52
+ }, [onChange]);
53
+ const handlePointerDown = useCallback((e) => {
54
+ e.preventDefault();
55
+ e.currentTarget.setPointerCapture(e.pointerId);
56
+ getAlpha(e.clientX);
57
+ }, [getAlpha]);
58
+ const handlePointerMove = useCallback((e) => {
59
+ if (e.buttons === 0)
60
+ return;
61
+ getAlpha(e.clientX);
62
+ }, [getAlpha]);
63
+ const handlePointerUp = useCallback(() => {
64
+ onChangeComplete?.();
65
+ }, [onChangeComplete]);
66
+ const handleKeyDown = useCallback((e) => {
67
+ const step = e.shiftKey ? 0.01 : 0.05;
68
+ let newAlpha = alpha;
69
+ switch (e.key) {
70
+ case 'ArrowRight':
71
+ case 'ArrowUp':
72
+ newAlpha = Math.min(1, alpha + step);
73
+ break;
74
+ case 'ArrowLeft':
75
+ case 'ArrowDown':
76
+ newAlpha = Math.max(0, alpha - step);
77
+ break;
78
+ default:
79
+ return;
80
+ }
81
+ e.preventDefault();
82
+ onChange(Number(newAlpha.toFixed(2)));
83
+ }, [alpha, onChange]);
84
+ const thumbPosition = `${alpha * 100}%`;
85
+ return (jsxs(StyledTrack, { ref: trackRef, role: "slider", tabIndex: 0, "aria-label": "Opacity", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(alpha * 100), onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onKeyDown: handleKeyDown, children: [jsx(StyledGradient, { style: {
86
+ background: `linear-gradient(to right, transparent, ${color})`,
87
+ } }), jsx(StyledThumb, { style: { left: thumbPosition } })] }));
88
+ };
89
+ AlphaSlider.displayName = 'AlphaSlider';
90
+
91
+ export { AlphaSlider };
92
+ //# sourceMappingURL=AlphaSlider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlphaSlider.js","sources":["../../../../../../src/components/controls/ColorPicker/AlphaSlider.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef, useCallback } from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { rgbToHex, hsvToRgb } from './colorUtils.js';
5
+
6
+ const StyledArea = styled.div `
7
+ position: relative;
8
+ width: 100%;
9
+ aspect-ratio: 4 / 3;
10
+ border-radius: ${props => props.theme.borderRadius.sm}px;
11
+ cursor: crosshair;
12
+ user-select: none;
13
+ touch-action: none;
14
+ overflow: hidden;
15
+ `;
16
+ const StyledSaturationGradient = styled.div `
17
+ position: absolute;
18
+ inset: 0;
19
+ background: linear-gradient(to right, #ffffff, transparent);
20
+ `;
21
+ const StyledValueGradient = styled.div `
22
+ position: absolute;
23
+ inset: 0;
24
+ background: linear-gradient(to top, #000000, transparent);
25
+ `;
26
+ const StyledThumb = styled.div `
27
+ position: absolute;
28
+ width: 12px;
29
+ height: 12px;
30
+ border-radius: 50%;
31
+ border: 2px solid white;
32
+ box-shadow: ${({ theme }) => theme.shadows.thumb};
33
+ transform: translate(-50%, -50%);
34
+ pointer-events: none;
35
+ `;
36
+ const ColorArea = ({ hue, saturation, value, onChange, onChangeComplete, }) => {
37
+ const areaRef = useRef(null);
38
+ const getSV = useCallback((clientX, clientY) => {
39
+ const rect = areaRef.current?.getBoundingClientRect();
40
+ if (!rect)
41
+ return;
42
+ const x = Math.max(0, Math.min(clientX - rect.left, rect.width));
43
+ const y = Math.max(0, Math.min(clientY - rect.top, rect.height));
44
+ const s = Math.round((x / rect.width) * 100);
45
+ const v = Math.round((1 - y / rect.height) * 100);
46
+ onChange(s, v);
47
+ }, [onChange]);
48
+ const handlePointerDown = useCallback((e) => {
49
+ e.preventDefault();
50
+ e.currentTarget.setPointerCapture(e.pointerId);
51
+ getSV(e.clientX, e.clientY);
52
+ }, [getSV]);
53
+ const handlePointerMove = useCallback((e) => {
54
+ if (e.buttons === 0)
55
+ return;
56
+ getSV(e.clientX, e.clientY);
57
+ }, [getSV]);
58
+ const handlePointerUp = useCallback(() => {
59
+ onChangeComplete?.();
60
+ }, [onChangeComplete]);
61
+ const handleKeyDown = useCallback((e) => {
62
+ const step = e.shiftKey ? 1 : 5;
63
+ let newS = saturation;
64
+ let newV = value;
65
+ switch (e.key) {
66
+ case 'ArrowRight':
67
+ newS = Math.min(100, saturation + step);
68
+ break;
69
+ case 'ArrowLeft':
70
+ newS = Math.max(0, saturation - step);
71
+ break;
72
+ case 'ArrowUp':
73
+ newV = Math.min(100, value + step);
74
+ break;
75
+ case 'ArrowDown':
76
+ newV = Math.max(0, value - step);
77
+ break;
78
+ default:
79
+ return;
80
+ }
81
+ e.preventDefault();
82
+ onChange(newS, newV);
83
+ }, [saturation, value, onChange]);
84
+ const { r, g, b } = hsvToRgb(hue, 100, 100);
85
+ const hueColor = rgbToHex(r, g, b);
86
+ const thumbX = `${saturation}%`;
87
+ const thumbY = `${100 - value}%`;
88
+ return (jsxs(StyledArea, { ref: areaRef, role: "slider", tabIndex: 0, "aria-label": "Color saturation and brightness", "aria-valuetext": `Saturation ${saturation}%, Brightness ${value}%`, style: { backgroundColor: hueColor }, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onKeyDown: handleKeyDown, children: [jsx(StyledSaturationGradient, {}), jsx(StyledValueGradient, {}), jsx(StyledThumb, { style: { left: thumbX, top: thumbY } })] }));
89
+ };
90
+ ColorArea.displayName = 'ColorArea';
91
+
92
+ export { ColorArea };
93
+ //# sourceMappingURL=ColorArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorArea.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorArea.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}