entangle-ui 0.3.0 → 0.4.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 (500) hide show
  1. package/CHANGELOG.md +117 -8
  2. package/README.md +98 -52
  3. package/dist/esm/_virtual/cjs.js +4 -0
  4. package/dist/esm/_virtual/cjs.js.map +1 -0
  5. package/dist/esm/_virtual/cssesc.js +4 -0
  6. package/dist/esm/_virtual/cssesc.js.map +1 -0
  7. package/dist/esm/assets/src/components/controls/CartesianPicker/CartesianPicker.css.ts.vanilla-Ccao9ycw.css +23 -0
  8. package/dist/esm/assets/src/components/controls/ColorPicker/ColorPicker.css.ts.vanilla-Do5nbdgO.css +341 -0
  9. package/dist/esm/assets/src/components/controls/CurveEditor/CurveEditor.css.ts.vanilla-Vn9SOx70.css +76 -0
  10. package/dist/esm/assets/src/components/controls/NumberInput/NumberInput.css.ts.vanilla-uGNr81xQ.css +158 -0
  11. package/dist/esm/assets/src/components/controls/Select/Select.css.ts.vanilla-D4C059Ua.css +225 -0
  12. package/dist/esm/assets/src/components/controls/Slider/Slider.css.ts.vanilla-C5SJ_7A1.css +173 -0
  13. package/dist/esm/assets/src/components/controls/TreeView/TreeNode.css.ts.vanilla-D3ylUhuW.css +150 -0
  14. package/dist/esm/assets/src/components/controls/TreeView/TreeView.css.ts.vanilla-CsG5-rWt.css +14 -0
  15. package/dist/esm/assets/src/components/controls/VectorInput/VectorInput.css.ts.vanilla-BJma3iQ4.css +102 -0
  16. package/dist/esm/assets/src/components/editor/ChatPanel/ChatPanel.css.ts.vanilla-DPIGnZ4A.css +701 -0
  17. package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyGroup.css.ts.vanilla-Co4n5a98.css +25 -0
  18. package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyPanel.css.ts.vanilla-RYv_XgOu.css +46 -0
  19. package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyRow.css.ts.vanilla-C3YZnnHb.css +75 -0
  20. package/dist/esm/assets/src/components/editor/PropertyInspector/PropertySection.css.ts.vanilla-DJBtY_xk.css +105 -0
  21. package/dist/esm/assets/src/components/editor/ViewportGizmo/ViewportGizmo.css.ts.vanilla-CEs2H-Iv.css +43 -0
  22. package/dist/esm/assets/src/components/feedback/Dialog/Dialog.css.ts.vanilla-BrXTOHwS.css +169 -0
  23. package/dist/esm/assets/src/components/feedback/Toast/ToastContainer.css.ts.vanilla-tBLsZ_70.css +13 -0
  24. package/dist/esm/assets/src/components/feedback/Toast/ToastItem.css.ts.vanilla-D6UuPKAj.css +152 -0
  25. package/dist/esm/assets/src/components/form/FormHelperText.css.ts.vanilla-CXKd9jtx.css +11 -0
  26. package/dist/esm/assets/src/components/form/FormLabel.css.ts.vanilla-DHn6CB2v.css +17 -0
  27. package/dist/esm/assets/src/components/form/InputWrapper.css.ts.vanilla-Bl7u62PI.css +44 -0
  28. package/dist/esm/assets/src/components/layout/Accordion/Accordion.css.ts.vanilla-Ck5Yew0e.css +118 -0
  29. package/dist/esm/assets/src/components/layout/Flex/Flex.css.ts.vanilla-D7wY2gY6.css +142 -0
  30. package/dist/esm/assets/src/components/layout/Grid/Grid.css.ts.vanilla-gqfqUi29.css +213 -0
  31. package/dist/esm/assets/src/components/layout/PanelSurface/PanelSurface.css.ts.vanilla-HZvObe0l.css +86 -0
  32. package/dist/esm/assets/src/components/layout/ScrollArea/ScrollArea.css.ts.vanilla-UsyrfXTC.css +126 -0
  33. package/dist/esm/assets/src/components/layout/Spacer/Spacer.css.ts.vanilla-A-7aOV46.css +14 -0
  34. package/dist/esm/assets/src/components/layout/SplitPane/SplitPane.css.ts.vanilla-BFxdvwyI.css +44 -0
  35. package/dist/esm/assets/src/components/layout/Stack/Stack.css.ts.vanilla-DNZOFYiD.css +123 -0
  36. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +67 -0
  37. package/dist/esm/assets/src/components/navigation/Tabs/Tabs.css.ts.vanilla-D7RGpDPC.css +247 -0
  38. package/dist/esm/assets/src/components/primitives/Button/Button.css.ts.vanilla-CT592JL7.css +98 -0
  39. package/dist/esm/assets/src/components/primitives/Checkbox/Checkbox.css.ts.vanilla-dvrGPiPs.css +124 -0
  40. package/dist/esm/assets/src/components/primitives/Collapsible/Collapsible.css.ts.vanilla-C1rYV-JT.css +73 -0
  41. package/dist/esm/assets/src/components/primitives/Icon/Icon.css.ts.vanilla-DIZ6dped.css +45 -0
  42. package/dist/esm/assets/src/components/primitives/IconButton/IconButton.css.ts.vanilla-C-xAQoR3.css +123 -0
  43. package/dist/esm/assets/src/components/primitives/Input/Input.css.ts.vanilla-De5ditYa.css +74 -0
  44. package/dist/esm/assets/src/components/primitives/Paper/Paper.css.ts.vanilla-B_tPWU80.css +67 -0
  45. package/dist/esm/assets/src/components/primitives/Popover/Popover.css.ts.vanilla-DW6aAr57.css +60 -0
  46. package/dist/esm/assets/src/components/primitives/Switch/Switch.css.ts.vanilla-CxqwUToB.css +100 -0
  47. package/dist/esm/assets/src/components/primitives/Text/Text.css.ts.vanilla-qTMvgKKC.css +126 -0
  48. package/dist/esm/assets/src/components/primitives/Tooltip/Tooltip.css.ts.vanilla-CrEFoLBX.css +71 -0
  49. package/dist/esm/assets/src/components/primitives/canvas/CanvasContainer.css.ts.vanilla-DR3zkEYQ.css +32 -0
  50. package/dist/esm/assets/src/components/shell/AppShell/AppShell.css.ts.vanilla-BYmtU0O_.css +97 -0
  51. package/dist/esm/assets/src/components/shell/FloatingPanel/FloatingPanel.css.ts.vanilla-1rIAXEFp.css +88 -0
  52. package/dist/esm/assets/src/components/shell/MenuBar/MenuBar.css.ts.vanilla-TgPcl4yA.css +120 -0
  53. package/dist/esm/assets/src/components/shell/StatusBar/StatusBar.css.ts.vanilla-BwO7oAZi.css +113 -0
  54. package/dist/esm/assets/src/components/shell/Toolbar/Toolbar.css.ts.vanilla-DPqftT18.css +97 -0
  55. package/dist/esm/assets/src/theme/darkTheme.css.ts.vanilla-V8lWHaQH.css +95 -0
  56. package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
  57. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
  58. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
  59. package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
  60. package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
  61. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
  62. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
  63. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
  64. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
  65. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
  66. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
  67. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
  68. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.css.js +9 -0
  69. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.css.js.map +1 -0
  70. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +99 -0
  71. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -0
  72. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +230 -0
  73. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -0
  74. package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js +122 -0
  75. package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -0
  76. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js +4 -41
  77. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
  78. package/dist/esm/components/controls/ColorPicker/ColorArea.js +3 -32
  79. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
  80. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +3 -68
  81. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
  82. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +5 -75
  83. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
  84. package/dist/esm/components/controls/ColorPicker/ColorPicker.css.js +34 -0
  85. package/dist/esm/components/controls/ColorPicker/ColorPicker.css.js.map +1 -0
  86. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +4 -18
  87. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
  88. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +5 -44
  89. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
  90. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +4 -58
  91. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
  92. package/dist/esm/components/controls/ColorPicker/EyeDropper.js +4 -50
  93. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
  94. package/dist/esm/components/controls/ColorPicker/HueSlider.js +3 -32
  95. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
  96. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -1
  97. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -1
  98. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -1
  99. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -1
  100. package/dist/esm/components/controls/ColorPicker/useColor.js +1 -0
  101. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
  102. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +8 -30
  103. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
  104. package/dist/esm/components/controls/CurveEditor/CurveEditor.css.js +17 -0
  105. package/dist/esm/components/controls/CurveEditor/CurveEditor.css.js.map +1 -0
  106. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +17 -23
  107. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
  108. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +6 -23
  109. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
  110. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
  111. package/dist/esm/components/controls/CurveEditor/curveUtils.js +7 -16
  112. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
  113. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +1 -0
  114. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
  115. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +39 -193
  116. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
  117. package/dist/esm/components/controls/NumberInput/NumberInput.css.js +17 -0
  118. package/dist/esm/components/controls/NumberInput/NumberInput.css.js.map +1 -0
  119. package/dist/esm/components/controls/NumberInput/NumberInput.js +22 -166
  120. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
  121. package/dist/esm/components/controls/NumberInput/useNumberInput.js +1 -1
  122. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
  123. package/dist/esm/components/controls/Select/Select.css.js +18 -0
  124. package/dist/esm/components/controls/Select/Select.css.js.map +1 -0
  125. package/dist/esm/components/controls/Select/Select.js +29 -235
  126. package/dist/esm/components/controls/Select/Select.js.map +1 -1
  127. package/dist/esm/components/controls/Slider/Slider.css.js +17 -0
  128. package/dist/esm/components/controls/Slider/Slider.css.js.map +1 -0
  129. package/dist/esm/components/controls/Slider/Slider.js +12 -159
  130. package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
  131. package/dist/esm/components/controls/TreeView/TreeNode.css.js +15 -0
  132. package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -0
  133. package/dist/esm/components/controls/TreeView/TreeNode.js +18 -90
  134. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
  135. package/dist/esm/components/controls/TreeView/TreeView.css.js +8 -0
  136. package/dist/esm/components/controls/TreeView/TreeView.css.js.map +1 -0
  137. package/dist/esm/components/controls/TreeView/TreeView.js +11 -18
  138. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
  139. package/dist/esm/components/controls/TreeView/useTreeState.js +1 -0
  140. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
  141. package/dist/esm/components/controls/VectorInput/VectorInput.css.js +13 -0
  142. package/dist/esm/components/controls/VectorInput/VectorInput.css.js.map +1 -0
  143. package/dist/esm/components/controls/VectorInput/VectorInput.js +11 -83
  144. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
  145. package/dist/esm/components/editor/ChatPanel/ChatActionBar.js +13 -0
  146. package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -0
  147. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +36 -0
  148. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -0
  149. package/dist/esm/components/editor/ChatPanel/ChatBubble.js +13 -0
  150. package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -0
  151. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +34 -0
  152. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -0
  153. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +17 -0
  154. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -0
  155. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +16 -0
  156. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -0
  157. package/dist/esm/components/editor/ChatPanel/ChatInput.js +67 -0
  158. package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -0
  159. package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js +13 -0
  160. package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -0
  161. package/dist/esm/components/editor/ChatPanel/ChatMessage.js +37 -0
  162. package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -0
  163. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +32 -0
  164. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -0
  165. package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js +72 -0
  166. package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js.map +1 -0
  167. package/dist/esm/components/editor/ChatPanel/ChatPanel.js +13 -0
  168. package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -0
  169. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +35 -0
  170. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -0
  171. package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js +16 -0
  172. package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -0
  173. package/dist/esm/components/editor/ChatPanel/useChatInput.js +60 -0
  174. package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -0
  175. package/dist/esm/components/editor/ChatPanel/useChatMessages.js +47 -0
  176. package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -0
  177. package/dist/esm/components/editor/ChatPanel/useChatScroll.js +71 -0
  178. package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -0
  179. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.css.js +10 -0
  180. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.css.js.map +1 -0
  181. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +14 -34
  182. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
  183. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js +13 -0
  184. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js.map +1 -0
  185. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +35 -64
  186. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
  187. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js +15 -0
  188. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js.map +1 -0
  189. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +34 -114
  190. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
  191. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +15 -0
  192. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js.map +1 -0
  193. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +15 -100
  194. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
  195. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +1 -0
  196. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
  197. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.css.js +10 -0
  198. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.css.js.map +1 -0
  199. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +90 -0
  200. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -0
  201. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +259 -0
  202. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -0
  203. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +250 -0
  204. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -0
  205. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +191 -0
  206. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -0
  207. package/dist/esm/components/feedback/Dialog/Dialog.css.js +16 -0
  208. package/dist/esm/components/feedback/Dialog/Dialog.css.js.map +1 -0
  209. package/dist/esm/components/feedback/Dialog/Dialog.js +6 -4
  210. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
  211. package/dist/esm/components/feedback/Dialog/DialogBody.js +5 -15
  212. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
  213. package/dist/esm/components/feedback/Dialog/DialogClose.js +1 -0
  214. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
  215. package/dist/esm/components/feedback/Dialog/DialogFooter.js +5 -24
  216. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
  217. package/dist/esm/components/feedback/Dialog/DialogHeader.js +5 -63
  218. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
  219. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +2 -1
  220. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
  221. package/dist/esm/components/feedback/Dialog/useFocusTrap.js +1 -0
  222. package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -1
  223. package/dist/esm/components/feedback/Toast/ToastContainer.css.js +10 -0
  224. package/dist/esm/components/feedback/Toast/ToastContainer.css.js.map +1 -0
  225. package/dist/esm/components/feedback/Toast/ToastContainer.js +12 -10
  226. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
  227. package/dist/esm/components/feedback/Toast/ToastItem.css.js +16 -0
  228. package/dist/esm/components/feedback/Toast/ToastItem.css.js.map +1 -0
  229. package/dist/esm/components/feedback/Toast/ToastItem.js +8 -138
  230. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
  231. package/dist/esm/components/feedback/Toast/ToastProvider.js +1 -0
  232. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
  233. package/dist/esm/components/feedback/Toast/useToast.js +1 -0
  234. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
  235. package/dist/esm/components/form/FormHelperText.css.js +7 -0
  236. package/dist/esm/components/form/FormHelperText.css.js.map +1 -0
  237. package/dist/esm/components/form/FormHelperText.js +5 -15
  238. package/dist/esm/components/form/FormHelperText.js.map +1 -1
  239. package/dist/esm/components/form/FormLabel.css.js +8 -0
  240. package/dist/esm/components/form/FormLabel.css.js.map +1 -0
  241. package/dist/esm/components/form/FormLabel.js +5 -21
  242. package/dist/esm/components/form/FormLabel.js.map +1 -1
  243. package/dist/esm/components/form/InputWrapper.css.js +7 -0
  244. package/dist/esm/components/form/InputWrapper.css.js.map +1 -0
  245. package/dist/esm/components/form/InputWrapper.js +6 -74
  246. package/dist/esm/components/form/InputWrapper.js.map +1 -1
  247. package/dist/esm/components/layout/Accordion/Accordion.css.js +20 -0
  248. package/dist/esm/components/layout/Accordion/Accordion.css.js.map +1 -0
  249. package/dist/esm/components/layout/Accordion/Accordion.js +12 -11
  250. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
  251. package/dist/esm/components/layout/Accordion/AccordionContent.js +4 -20
  252. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
  253. package/dist/esm/components/layout/Accordion/AccordionItem.js +4 -7
  254. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
  255. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +12 -96
  256. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
  257. package/dist/esm/components/layout/Flex/Flex.css.js +11 -0
  258. package/dist/esm/components/layout/Flex/Flex.css.js.map +1 -0
  259. package/dist/esm/components/layout/Flex/Flex.js +47 -73
  260. package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
  261. package/dist/esm/components/layout/Grid/Grid.css.js +9 -0
  262. package/dist/esm/components/layout/Grid/Grid.css.js.map +1 -0
  263. package/dist/esm/components/layout/Grid/Grid.js +39 -64
  264. package/dist/esm/components/layout/Grid/Grid.js.map +1 -1
  265. package/dist/esm/components/layout/PanelSurface/PanelSurface.css.js +16 -0
  266. package/dist/esm/components/layout/PanelSurface/PanelSurface.css.js.map +1 -0
  267. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +23 -78
  268. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
  269. package/dist/esm/components/layout/ScrollArea/ScrollArea.css.js +27 -0
  270. package/dist/esm/components/layout/ScrollArea/ScrollArea.css.js.map +1 -0
  271. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +35 -134
  272. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
  273. package/dist/esm/components/layout/Spacer/Spacer.css.js +8 -0
  274. package/dist/esm/components/layout/Spacer/Spacer.css.js.map +1 -0
  275. package/dist/esm/components/layout/Spacer/Spacer.js +13 -31
  276. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -1
  277. package/dist/esm/components/layout/SplitPane/SplitPane.css.js +10 -0
  278. package/dist/esm/components/layout/SplitPane/SplitPane.css.js.map +1 -0
  279. package/dist/esm/components/layout/SplitPane/SplitPane.js +12 -36
  280. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
  281. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +5 -8
  282. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
  283. package/dist/esm/components/layout/Stack/Stack.css.js +8 -0
  284. package/dist/esm/components/layout/Stack/Stack.css.js.map +1 -0
  285. package/dist/esm/components/layout/Stack/Stack.js +36 -65
  286. package/dist/esm/components/layout/Stack/Stack.js.map +1 -1
  287. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +6 -4
  288. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
  289. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +1 -0
  290. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -1
  291. package/dist/esm/components/navigation/Menu/Menu.css.js +16 -0
  292. package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -0
  293. package/dist/esm/components/navigation/Menu/Menu.helpers.js +9 -7
  294. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -1
  295. package/dist/esm/components/navigation/Menu/Menu.js +6 -4
  296. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
  297. package/dist/esm/components/navigation/Menu/useMenu.js +1 -0
  298. package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -1
  299. package/dist/esm/components/navigation/Tabs/Tab.js +31 -174
  300. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
  301. package/dist/esm/components/navigation/Tabs/TabList.js +5 -56
  302. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
  303. package/dist/esm/components/navigation/Tabs/TabPanel.js +4 -12
  304. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
  305. package/dist/esm/components/navigation/Tabs/Tabs.css.js +26 -0
  306. package/dist/esm/components/navigation/Tabs/Tabs.css.js.map +1 -0
  307. package/dist/esm/components/navigation/Tabs/Tabs.js +6 -13
  308. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
  309. package/dist/esm/components/primitives/BaseButton/BaseButton.js +1 -0
  310. package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -1
  311. package/dist/esm/components/primitives/Button/Button.css.js +9 -0
  312. package/dist/esm/components/primitives/Button/Button.css.js.map +1 -0
  313. package/dist/esm/components/primitives/Button/Button.js +5 -149
  314. package/dist/esm/components/primitives/Button/Button.js.map +1 -1
  315. package/dist/esm/components/primitives/Checkbox/Checkbox.css.js +14 -0
  316. package/dist/esm/components/primitives/Checkbox/Checkbox.css.js.map +1 -0
  317. package/dist/esm/components/primitives/Checkbox/Checkbox.js +20 -112
  318. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
  319. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +10 -17
  320. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
  321. package/dist/esm/components/primitives/Collapsible/Collapsible.css.js +18 -0
  322. package/dist/esm/components/primitives/Collapsible/Collapsible.css.js.map +1 -0
  323. package/dist/esm/components/primitives/Collapsible/Collapsible.js +45 -83
  324. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
  325. package/dist/esm/components/primitives/Icon/Icon.css.js +7 -0
  326. package/dist/esm/components/primitives/Icon/Icon.css.js.map +1 -0
  327. package/dist/esm/components/primitives/Icon/Icon.js +23 -55
  328. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
  329. package/dist/esm/components/primitives/IconButton/IconButton.css.js +8 -0
  330. package/dist/esm/components/primitives/IconButton/IconButton.css.js.map +1 -0
  331. package/dist/esm/components/primitives/IconButton/IconButton.js +10 -170
  332. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
  333. package/dist/esm/components/primitives/Input/Input.css.js +12 -0
  334. package/dist/esm/components/primitives/Input/Input.css.js.map +1 -0
  335. package/dist/esm/components/primitives/Input/Input.js +11 -79
  336. package/dist/esm/components/primitives/Input/Input.js.map +1 -1
  337. package/dist/esm/components/primitives/Paper/Paper.css.js +7 -0
  338. package/dist/esm/components/primitives/Paper/Paper.css.js.map +1 -0
  339. package/dist/esm/components/primitives/Paper/Paper.js +18 -90
  340. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
  341. package/dist/esm/components/primitives/Popover/Popover.css.js +8 -0
  342. package/dist/esm/components/primitives/Popover/Popover.css.js.map +1 -0
  343. package/dist/esm/components/primitives/Popover/Popover.js +1 -0
  344. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -1
  345. package/dist/esm/components/primitives/Popover/PopoverClose.js +4 -32
  346. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
  347. package/dist/esm/components/primitives/Popover/PopoverContent.js +19 -45
  348. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
  349. package/dist/esm/components/primitives/Popover/PopoverTrigger.js +1 -0
  350. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
  351. package/dist/esm/components/primitives/Switch/Switch.css.js +15 -0
  352. package/dist/esm/components/primitives/Switch/Switch.css.js.map +1 -0
  353. package/dist/esm/components/primitives/Switch/Switch.js +29 -122
  354. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
  355. package/dist/esm/components/primitives/Text/Text.css.js +9 -0
  356. package/dist/esm/components/primitives/Text/Text.css.js.map +1 -0
  357. package/dist/esm/components/primitives/Text/Text.js +20 -126
  358. package/dist/esm/components/primitives/Text/Text.js.map +1 -1
  359. package/dist/esm/components/primitives/Tooltip/Arrow.js +8 -41
  360. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
  361. package/dist/esm/components/primitives/Tooltip/Tooltip.css.js +9 -0
  362. package/dist/esm/components/primitives/Tooltip/Tooltip.css.js.map +1 -0
  363. package/dist/esm/components/primitives/Tooltip/Tooltip.js +20 -79
  364. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
  365. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
  366. package/dist/esm/components/primitives/canvas/CanvasContainer.css.js +10 -0
  367. package/dist/esm/components/primitives/canvas/CanvasContainer.css.js.map +1 -0
  368. package/dist/esm/components/primitives/canvas/CanvasContainer.js +32 -0
  369. package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -0
  370. package/dist/esm/components/primitives/canvas/canvasCoords.js +51 -0
  371. package/dist/esm/components/primitives/canvas/canvasCoords.js.map +1 -0
  372. package/dist/esm/components/primitives/canvas/canvasDrawing.js +251 -0
  373. package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -0
  374. package/dist/esm/components/primitives/canvas/canvasTheme.js +43 -0
  375. package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -0
  376. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +26 -0
  377. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -0
  378. package/dist/esm/components/shell/AppShell/AppShell.css.js +13 -0
  379. package/dist/esm/components/shell/AppShell/AppShell.css.js.map +1 -0
  380. package/dist/esm/components/shell/AppShell/AppShell.js +16 -101
  381. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
  382. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +18 -0
  383. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -0
  384. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +20 -97
  385. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
  386. package/dist/esm/components/shell/MenuBar/MenuBar.css.js +16 -0
  387. package/dist/esm/components/shell/MenuBar/MenuBar.css.js.map +1 -0
  388. package/dist/esm/components/shell/MenuBar/MenuBar.js +14 -139
  389. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
  390. package/dist/esm/components/shell/StatusBar/StatusBar.css.js +11 -0
  391. package/dist/esm/components/shell/StatusBar/StatusBar.css.js.map +1 -0
  392. package/dist/esm/components/shell/StatusBar/StatusBar.js +11 -107
  393. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
  394. package/dist/esm/components/shell/Toolbar/Toolbar.css.js +11 -0
  395. package/dist/esm/components/shell/Toolbar/Toolbar.css.js.map +1 -0
  396. package/dist/esm/components/shell/Toolbar/Toolbar.js +21 -97
  397. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
  398. package/dist/esm/context/KeyboardContext.js +1 -0
  399. package/dist/esm/context/KeyboardContext.js.map +1 -1
  400. package/dist/esm/index.js +26 -3
  401. package/dist/esm/index.js.map +1 -1
  402. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js +15 -0
  403. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js.map +1 -0
  404. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js +128 -0
  405. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js.map +1 -0
  406. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js +70 -0
  407. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js.map +1 -0
  408. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js +1543 -0
  409. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js.map +1 -0
  410. package/dist/esm/node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js +25 -0
  411. package/dist/esm/node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js.map +1 -0
  412. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js +10 -0
  413. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js.map +1 -0
  414. package/dist/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +112 -0
  415. package/dist/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
  416. package/dist/esm/node_modules/cssesc/cssesc.js +120 -0
  417. package/dist/esm/node_modules/cssesc/cssesc.js.map +1 -0
  418. package/dist/esm/node_modules/dedent/dist/dedent.js +98 -0
  419. package/dist/esm/node_modules/dedent/dist/dedent.js.map +1 -0
  420. package/dist/esm/node_modules/deepmerge/dist/cjs.js +143 -0
  421. package/dist/esm/node_modules/deepmerge/dist/cjs.js.map +1 -0
  422. package/dist/esm/theme/ThemeProvider.js +13 -7
  423. package/dist/esm/theme/ThemeProvider.js.map +1 -1
  424. package/dist/esm/theme/VanillaThemeProvider.js +26 -0
  425. package/dist/esm/theme/VanillaThemeProvider.js.map +1 -0
  426. package/dist/esm/theme/contract.css.js +4 -0
  427. package/dist/esm/theme/contract.css.js.map +1 -0
  428. package/dist/esm/theme/darkTheme.css.js +6 -0
  429. package/dist/esm/theme/darkTheme.css.js.map +1 -0
  430. package/dist/esm/utils/cx.js +14 -0
  431. package/dist/esm/utils/cx.js.map +1 -0
  432. package/dist/esm/utils/mathExpression.js.map +1 -1
  433. package/dist/esm/utils/mathUtils.js.map +1 -1
  434. package/dist/types/components/controls/CartesianPicker/CartesianPicker.d.ts +6 -0
  435. package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +163 -0
  436. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +5 -13
  437. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +3 -1
  438. package/dist/types/components/controls/Select/Select.d.ts +1 -1
  439. package/dist/types/components/editor/ChatPanel/ChatActionBar.d.ts +288 -0
  440. package/dist/types/components/editor/ChatPanel/ChatAttachment.d.ts +292 -0
  441. package/dist/types/components/editor/ChatPanel/ChatBubble.d.ts +289 -0
  442. package/dist/types/components/editor/ChatPanel/ChatCodeBlock.d.ts +294 -0
  443. package/dist/types/components/editor/ChatPanel/ChatContextChip.d.ts +292 -0
  444. package/dist/types/components/editor/ChatPanel/ChatEmptyState.d.ts +292 -0
  445. package/dist/types/components/editor/ChatPanel/ChatInput.d.ts +300 -0
  446. package/dist/types/components/editor/ChatPanel/ChatInputToolbar.d.ts +288 -0
  447. package/dist/types/components/editor/ChatPanel/ChatMessage.d.ts +294 -0
  448. package/dist/types/components/editor/ChatPanel/ChatMessageList.d.ts +293 -0
  449. package/dist/types/components/editor/ChatPanel/ChatPanel.d.ts +290 -0
  450. package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +409 -0
  451. package/dist/types/components/editor/ChatPanel/ChatToolCall.d.ts +294 -0
  452. package/dist/types/components/editor/ChatPanel/ChatTypingIndicator.d.ts +291 -0
  453. package/dist/types/components/editor/ChatPanel/useChatInput.d.ts +5 -0
  454. package/dist/types/components/editor/ChatPanel/useChatMessages.d.ts +5 -0
  455. package/dist/types/components/editor/ChatPanel/useChatScroll.d.ts +5 -0
  456. package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.d.ts +6 -0
  457. package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +146 -0
  458. package/dist/types/components/editor/ViewportGizmo/gizmoMath.d.ts +73 -0
  459. package/dist/types/components/form/FormHelperText.d.ts +13 -15
  460. package/dist/types/components/form/FormLabel.d.ts +13 -15
  461. package/dist/types/components/form/InputWrapper.d.ts +13 -15
  462. package/dist/types/components/layout/PanelSurface/PanelSurface.d.ts +54 -59
  463. package/dist/types/components/layout/Spacer/Spacer.d.ts +17 -19
  464. package/dist/types/components/navigation/Menu/Menu.types.d.ts +1 -1
  465. package/dist/types/components/primitives/Button/Button.d.ts +30 -18
  466. package/dist/types/components/primitives/Icon/Icon.d.ts +0 -7
  467. package/dist/types/components/primitives/IconButton/IconButton.d.ts +26 -19
  468. package/dist/types/components/primitives/Input/Input.d.ts +7 -2
  469. package/dist/types/components/primitives/Paper/Paper.d.ts +23 -21
  470. package/dist/types/components/primitives/Switch/Switch.d.ts +7 -2
  471. package/dist/types/components/primitives/Text/Text.d.ts +20 -18
  472. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +7 -3
  473. package/dist/types/components/primitives/Tooltip/types.d.ts +1 -1
  474. package/dist/types/components/primitives/canvas/canvas.types.d.ts +27 -0
  475. package/dist/types/components/shell/AppShell/AppShell.d.ts +86 -92
  476. package/dist/types/components/shell/MenuBar/MenuBar.d.ts +66 -72
  477. package/dist/types/components/shell/StatusBar/StatusBar.d.ts +42 -46
  478. package/dist/types/components/shell/Toolbar/Toolbar.d.ts +77 -84
  479. package/dist/types/index.d.ts +29 -6
  480. package/dist/types/theme/ThemeProvider.d.ts +9 -2
  481. package/dist/types/theme/VanillaThemeProvider.d.ts +34 -0
  482. package/dist/types/theme/contract.css.d.ts +164 -0
  483. package/dist/types/theme/{tokens.d.ts → darkTheme.css.d.ts} +43 -39
  484. package/dist/types/types/common.d.ts +1 -8
  485. package/dist/types/utils/cx.d.ts +11 -0
  486. package/package.json +34 -30
  487. package/dist/esm/components/feedback/Dialog/Dialog.styled.js +0 -80
  488. package/dist/esm/components/feedback/Dialog/Dialog.styled.js.map +0 -1
  489. package/dist/esm/components/navigation/Menu/Menu.styled.js +0 -83
  490. package/dist/esm/components/navigation/Menu/Menu.styled.js.map +0 -1
  491. package/dist/esm/theme/createTheme.js +0 -10
  492. package/dist/esm/theme/createTheme.js.map +0 -1
  493. package/dist/esm/theme/tokens.js +0 -144
  494. package/dist/esm/theme/tokens.js.map +0 -1
  495. package/dist/esm/utils/objects.js +0 -22
  496. package/dist/esm/utils/objects.js.map +0 -1
  497. package/dist/esm/utils/styledUtils.js +0 -81
  498. package/dist/esm/utils/styledUtils.js.map +0 -1
  499. package/dist/types/theme/createTheme.d.ts +0 -6
  500. package/dist/types/theme/types.d.ts +0 -7
package/CHANGELOG.md CHANGED
@@ -1,11 +1,127 @@
1
1
  # entangle-ui
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#27](https://github.com/SebastianWebdev/entangle-ui/pull/27) [`2233f75`](https://github.com/SebastianWebdev/entangle-ui/commit/2233f75f7adbf07023bd5c897acc7426a7f1b041) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add ChatPanel component set for AI assistant chat interfaces.
8
+
9
+ **New components:**
10
+ - `ChatPanel` — top-level container with density variants (`compact` | `default` | `comfortable`)
11
+ - `ChatMessageList` — scrollable message list with auto-scroll and sticky date headers
12
+ - `ChatMessage` — single message row with role-based alignment, error state with red tint
13
+ - `ChatBubble` — styled message bubble (user / assistant / system)
14
+ - `ChatInput` — multiline input with bottom toolbar, themed scrollbar, and submit handling
15
+ - `ChatInputToolbar` — action bar below the input (attach, context, model picker)
16
+ - `ChatTypingIndicator` — animated dot indicator for assistant responses
17
+ - `ChatToolCall` — expandable tool/function call display with status badge
18
+ - `ChatCodeBlock` — syntax-highlighted code block with copy button
19
+ - `ChatAttachmentChip` — file attachment chip with icon, name, and remove action
20
+ - `ChatContextChip` — context reference chip (file, selection, symbol)
21
+ - `ChatEmptyState` — placeholder shown when conversation is empty
22
+ - `ChatActionBar` — per-message action bar (copy, retry, edit)
23
+
24
+ **New hooks:**
25
+ - `useChatMessages` — message list state management (add, update, remove, clear)
26
+ - `useChatInput` — input state with submit, history navigation, and composition handling
27
+ - `useChatScroll` — auto-scroll with scroll-to-bottom detection and manual override
28
+
29
+ **New icons:**
30
+ - `AiChatIcon` — chat bubble with sparkle accent
31
+ - `AiSparklesIcon` — three 4-pointed sparkle stars (enlarged for better visibility)
32
+ - `RobotIcon` — robot face icon
33
+
34
+ - [#25](https://github.com/SebastianWebdev/entangle-ui/pull/25) [`3b9eff2`](https://github.com/SebastianWebdev/entangle-ui/commit/3b9eff278fba77b2a945acaed2ad67855ba084bc) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Migrate all components from Emotion CSS-in-JS to Vanilla Extract (zero-runtime, build-time CSS).
35
+
36
+ **Breaking changes:**
37
+ - The `css` prop is no longer supported on migrated components. Use `className` and `style` instead.
38
+ - Peer dependency: `@vanilla-extract/css`, `@vanilla-extract/recipes`, and `@vanilla-extract/dynamic` are now required.
39
+ - Peer dependency renamed: `@base-ui-components/react` → `@base-ui/react` (^1.1.0). The upstream package was renamed.
40
+
41
+ **New exports:**
42
+ - `vars` — Theme contract object (`vars.colors.*`, `vars.spacing.*`, etc.) mapping to stable `--etui-*` CSS custom properties.
43
+ - `darkThemeValues` — Default dark theme token values.
44
+ - `createCustomTheme(selector, overrides)` — Helper to create custom themes in `.css.ts` files.
45
+ - `VanillaThemeProvider` — Optional scoped theme wrapper component.
46
+ - `cx(...classes)` — Utility for composing class names.
47
+
48
+ **Migration details:**
49
+ - ~60 styled components across all categories (primitives, layout, controls, form, navigation, feedback, editor, shell) now use Vanilla Extract recipes and styles.
50
+ - Theme tokens are exposed as CSS custom properties (`--etui-color-*`, `--etui-spacing-*`, etc.) that can be overridden with plain CSS.
51
+ - Legacy `Dialog.styled.ts` and `Menu.styled.ts` files removed.
52
+ - Emotion dependencies remain for the transition period but are no longer used by any library component.
53
+
54
+ **Build fixes:**
55
+ - Add `@rollup/plugin-commonjs` to fix Rollup build failure caused by `@vanilla-extract/css` importing the CJS-only `cssesc` module with ESM default import syntax.
56
+ - Fix dependency classification — move build-only packages to devDependencies for cleaner library output.
57
+
58
+ **Dependency updates:**
59
+ - Migrate `@base-ui-components/react` → `@base-ui/react` ^1.1.0 (upstream rename).
60
+ - Bump all dependencies to latest safe versions.
61
+ - Narrow `MenuBaseProps` from `HTMLElement` to `HTMLDivElement` to match new `@base-ui/react` API.
62
+
63
+ **Other fixes:**
64
+ - Replace unicode characters with proper Icon components in FloatingPanel.
65
+ - Restore custom gradient backgrounds in FullEditor story.
66
+ - Fix optional chaining to satisfy stricter `@typescript-eslint/prefer-optional-chain`.
67
+
68
+ **Documentation:**
69
+ - Add `docs/quickstart.md` — installation, setup, full component catalog, common patterns.
70
+ - Add `docs/theming.md` — complete token reference, customization methods, CSS property names.
71
+ - Add `docs/styling.md` — Vanilla Extract recipes, dynamic vars, Emotion patterns, conventions.
72
+
73
+ - [#29](https://github.com/SebastianWebdev/entangle-ui/pull/29) [`94eb3d0`](https://github.com/SebastianWebdev/entangle-ui/commit/94eb3d015f396151d9344fea378e0ce6dd957e23) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Remove Emotion CSS-in-JS dependency entirely — all styling now uses Vanilla Extract (zero-runtime, compile-time CSS)
74
+
75
+ ### Breaking Changes
76
+ - `@emotion/react` and `@emotion/styled` are no longer peer dependencies
77
+ - Removed exports: `createTheme`, `tokens`, `Theme`, `Tokens` types
78
+ - Removed `css` prop from `BaseComponent` interface
79
+ - `ThemeProvider` is now a no-op pass-through (kept for compatibility)
80
+
81
+ ### Migration
82
+ - Replace `import { createTheme, tokens } from 'entangle-ui'` with `import { vars, darkThemeValues } from 'entangle-ui'`
83
+ - Replace `import type { Theme } from 'entangle-ui'` with `import type { ThemeVars } from 'entangle-ui'`
84
+ - Use `className` + `style` props instead of `css` prop
85
+ - Theme tokens: use `vars.colors.*`, `vars.spacing.*` from Vanilla Extract contract
86
+
87
+ - [#28](https://github.com/SebastianWebdev/entangle-ui/pull/28) [`c0cb878`](https://github.com/SebastianWebdev/entangle-ui/commit/c0cb878f6e443e0b42e272f6ec40b23d047cbf01) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add shared canvas primitives layer, CartesianPicker, and ViewportGizmo components.
88
+
89
+ **New components:**
90
+ - `CartesianPicker` — A 2D point selector with canvas-based rendering, drag interaction, keyboard navigation, and full accessibility support. Supports controlled/uncontrolled modes, custom domains, grid snapping, and extensible bottom bar and background renderers.
91
+ - `ViewportGizmo` — A 3D orientation widget (like Blender/Maya viewport cubes) with orbiting, axis snapping, preset views, keyboard navigation, and depth-sorted rendering. Supports Y-up and Z-up conventions, configurable axis colors, and multiple interaction modes.
92
+
93
+ **New shared canvas primitives (`primitives/canvas/`):**
94
+ - `CanvasContainer` — Responsive canvas wrapper with DPR handling, ResizeObserver support, ARIA live region, and pointer event forwarding.
95
+ - `useCanvasSetup` — Hook for canvas DPR setup, resize tracking, and context management.
96
+ - `useCanvasRenderer` — Hook for requestAnimationFrame-based render loops with automatic cleanup.
97
+ - `canvasDrawing` — Pure utility functions for grid, axis labels, crosshair, point marker, origin axes, and domain bounds rendering.
98
+ - `canvasCoords` — Coordinate conversion utilities (domain-to-canvas, canvas-to-domain).
99
+ - `canvasTheme` — Theme resolution from CSS custom properties for canvas 2D contexts.
100
+
101
+ **CurveEditor refactor:**
102
+ - CurveEditor now consumes the shared canvas primitives layer with zero test regressions.
103
+
104
+ **Next.js compatibility:**
105
+ - Added `'use client'` directives to all components and hooks that require client-side rendering.
106
+
107
+ **New exports:**
108
+ - `CartesianPicker`, `CartesianPickerProps`, `CartesianBottomBarInfo`
109
+ - `ViewportGizmo`, `ViewportGizmoProps`, `GizmoOrientation`, `GizmoPresetView`, `GizmoUpAxis`, `GizmoAxisColorPreset`, `GizmoAxisConfig`
110
+ - `eulerToRotationMatrix`, `projectToCanvas`, `projectAxes`, `gizmoHitTest`, `presetViewToOrientation`, `quaternionToEuler`, `axisToPresetView`
111
+ - `CanvasContainer`, `CanvasContainerProps`, `CanvasViewport`, `DomainBounds`, `Point2D`, `CanvasThemeColors`, `CanvasBackgroundInfo`
112
+ - `domainToCanvas`, `canvasToDomain`, `resolveCanvasTheme`
113
+ - `drawGrid`, `drawDomainBounds`, `drawAxisLabels`, `drawCrosshair`, `drawPointMarker`, `drawOriginAxes`, `formatLabel`
114
+ - `useCanvasSetup`, `useCanvasRenderer`
115
+
116
+ ### Patch Changes
117
+
118
+ - [#29](https://github.com/SebastianWebdev/entangle-ui/pull/29) [`d1ae3c8`](https://github.com/SebastianWebdev/entangle-ui/commit/d1ae3c84fce0b6e5138d57c97614d33d5f5c410d) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add 'use client' directives to all component files for Next.js App Router compatibility, upgrade Storybook from 9.0.6 to 10.2.8, use ScrollArea in ChatMessageList, and add ResizeObserver polyfill to test setup
119
+
3
120
  ## 0.3.0
4
121
 
5
122
  ### Minor Changes
6
123
 
7
124
  - [#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
125
  - Replace monolithic bundle with per-module ESM output (`dist/esm/`)
10
126
  - Drop CJS output — ESM-only package
11
127
  - Add `sideEffects: false` and `exports` field to package.json
@@ -28,19 +144,16 @@
28
144
  ### Minor Changes
29
145
 
30
146
  - [#19](https://github.com/SebastianWebdev/entangle-ui/pull/19) [`497d0f5`](https://github.com/SebastianWebdev/entangle-ui/commit/497d0f540f8abdf853cdf88aff8e944fee59d378) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - ### App Shell and Navigation
31
-
32
147
  - Added `topChromeSeparator` and `sideChromeSeparator` props in `AppShell` to control border/shadow separation between top and side chrome areas.
33
148
  - Refined `Tabs` visual behavior for compact editor layouts and added `pillsFrame` prop to optionally disable the pills container frame.
34
149
  - Updated closable tabs to use the library `CloseIcon` by default.
35
150
 
36
151
  ### Menu and Inspector Improvements
37
-
38
152
  - Added configurable menu dropdown gap via `menuOffset` in `MenuBar`.
39
153
  - Extended `PropertyPanel` with configurable `contentTopSpacing` and new `contentBottomSpacing` for better control of inspector spacing.
40
154
  - Adjusted property row padding and full-width control layout to better support dense controls (including sliders and curve editor rows).
41
155
 
42
156
  ### Typography
43
-
44
157
  - Bumped default UI text from 10px (`fontSize.xs`) to 12px (`fontSize.md`) across interactive components: `Menu`, `MenuBar`, `Select`, `Button`, `Input`, `NumberInput`, `TreeView`, `StatusBar`, `FloatingPanel`, and `PropertyInspector` (rows, sections, search, panel).
45
158
  - Kept 10px for true secondary text: helper text, tooltips, group labels, toast messages, axis labels.
46
159
  - `TreeView`: fixed `line-height: 1` cutting off descenders (p/q/g/y), now uses theme `lineHeight.normal`.
@@ -49,7 +162,6 @@
49
162
  - Added `ContextMenu` component with submenu support, icon slots, and keyboard navigation.
50
163
 
51
164
  ### Layout and Rendering Fixes
52
-
53
165
  - Fixed `SplitPane` size reconciliation to avoid 1-2px layout drift caused by rounding.
54
166
  - Improved overflow behavior in shell regions (`Toolbar`, `StatusBar`, tabs panels, and side slots) to prevent content from bleeding outside container bounds.
55
167
  - Improved `CurveEditor` axis label layout and spacing when `labelX` / `labelY` are provided.
@@ -59,7 +171,6 @@
59
171
  ### Minor Changes
60
172
 
61
173
  - [#17](https://github.com/SebastianWebdev/entangle-ui/pull/17) [`0854066`](https://github.com/SebastianWebdev/entangle-ui/commit/0854066dbf38c5d45bca24dc861c9eb03a1e98b3) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - ### New Components
62
-
63
174
  - **Checkbox & CheckboxGroup** — Controlled/uncontrolled boolean input with indeterminate state, label positioning, sizes (sm/md/lg), variants (default/filled), and array value management via CheckboxGroup
64
175
  - **Switch** — Toggle control with controlled/uncontrolled modes, label positioning, sizes, error state, and animated track/thumb
65
176
  - **Select** — Dropdown single-value selection with search/filter, grouped options, keyboard navigation, clearable option, portal-based dropdown, sizes and variants (default/ghost/filled)
@@ -76,7 +187,6 @@
76
187
  - **Collapsible** — Headless collapsible primitive for expandable content
77
188
 
78
189
  ### Refactoring & Improvements
79
-
80
190
  - Translated all Polish comments and JSDoc to English across the entire codebase
81
191
  - Added `forwardRef` and `displayName` to all primitive and layout components
82
192
  - Added `React.memo` to stateless presentational components (Icon, Paper, Text, Spacer, FormLabel, FormHelperText, InputWrapper)
@@ -86,7 +196,6 @@
86
196
  - Added comprehensive keyboard navigation tests for Button, Input, NumberInput, Slider, and Menu
87
197
 
88
198
  ### CI/CD
89
-
90
199
  - Added GitHub Actions CI workflow (lint, build, type-check, test on PRs and main)
91
200
  - Added GitHub Actions release workflow with Changesets and npm OIDC Trusted Publishing
92
201
  - Configured Changesets for automated version management and changelog generation
package/README.md CHANGED
@@ -6,7 +6,7 @@ React + TypeScript component library for building editor-style interfaces.
6
6
 
7
7
  ## Status
8
8
 
9
- This package is in alpha (`0.1.0-alpha.x`) and still evolving.
9
+ This package is in alpha and still evolving.
10
10
 
11
11
  - API can change between alpha releases.
12
12
  - Use in production only if you are comfortable with rapid iteration.
@@ -21,76 +21,114 @@ Peer dependencies:
21
21
 
22
22
  - `react >= 19.1.0`
23
23
  - `react-dom >= 19.1.0`
24
- - `@emotion/react ^11`
25
- - `@emotion/styled ^11`
24
+ - `@base-ui/react ^1.1.0`
25
+ - `@floating-ui/react ^0.27.17`
26
26
 
27
27
  ## Quick Start
28
28
 
29
29
  ```tsx
30
- import React from 'react';
31
- import {
32
- ThemeProvider,
33
- AppShell,
34
- MenuBar,
35
- Toolbar,
36
- StatusBar,
37
- } from 'entangle-ui';
30
+ import 'entangle-ui/darkTheme.css'; // registers --etui-* CSS custom properties on :root
31
+
32
+ import { AppShell, MenuBar, Toolbar, StatusBar } from 'entangle-ui';
38
33
 
39
34
  export function App() {
40
35
  return (
41
- <ThemeProvider>
42
- <div style={{ width: '100vw', height: '100vh' }}>
43
- <AppShell>
44
- <AppShell.MenuBar>
45
- <MenuBar>
46
- <MenuBar.Menu label="File">
47
- <MenuBar.Item onClick={() => {}}>New</MenuBar.Item>
48
- </MenuBar.Menu>
49
- </MenuBar>
50
- </AppShell.MenuBar>
51
-
52
- <AppShell.Toolbar>
53
- <Toolbar aria-label="Main toolbar">
54
- <Toolbar.Button onClick={() => {}}>Run</Toolbar.Button>
55
- </Toolbar>
56
- </AppShell.Toolbar>
57
-
58
- <AppShell.Dock>
59
- <div style={{ padding: 16 }}>Editor content</div>
60
- </AppShell.Dock>
61
-
62
- <AppShell.StatusBar>
63
- <StatusBar>
64
- <StatusBar.Section>
65
- <StatusBar.Item>Ready</StatusBar.Item>
66
- </StatusBar.Section>
67
- </StatusBar>
68
- </AppShell.StatusBar>
69
- </AppShell>
70
- </div>
71
- </ThemeProvider>
36
+ <div style={{ width: '100vw', height: '100vh' }}>
37
+ <AppShell>
38
+ <AppShell.MenuBar>
39
+ <MenuBar>
40
+ <MenuBar.Menu label="File">
41
+ <MenuBar.Item onClick={() => {}}>New</MenuBar.Item>
42
+ </MenuBar.Menu>
43
+ </MenuBar>
44
+ </AppShell.MenuBar>
45
+
46
+ <AppShell.Toolbar>
47
+ <Toolbar aria-label="Main toolbar">
48
+ <Toolbar.Button onClick={() => {}}>Run</Toolbar.Button>
49
+ </Toolbar>
50
+ </AppShell.Toolbar>
51
+
52
+ <AppShell.Dock>
53
+ <div style={{ padding: 16 }}>Editor content</div>
54
+ </AppShell.Dock>
55
+
56
+ <AppShell.StatusBar>
57
+ <StatusBar>
58
+ <StatusBar.Section>
59
+ <StatusBar.Item>Ready</StatusBar.Item>
60
+ </StatusBar.Section>
61
+ </StatusBar>
62
+ </AppShell.StatusBar>
63
+ </AppShell>
64
+ </div>
72
65
  );
73
66
  }
74
67
  ```
75
68
 
76
69
  ## Theming
77
70
 
78
- Entangle UI ships with design tokens and an Emotion-based `ThemeProvider`.
71
+ Entangle UI uses [Vanilla Extract](https://vanilla-extract.style/) for zero-runtime styling. All theme tokens are exposed as stable CSS custom properties prefixed with `--etui-*`.
79
72
 
80
- ```tsx
81
- import { ThemeProvider, createTheme } from 'entangle-ui';
73
+ ### Default dark theme
74
+
75
+ Import the dark theme CSS to register all `--etui-*` variables on `:root`:
76
+
77
+ ```ts
78
+ import 'entangle-ui/darkTheme.css';
79
+ ```
80
+
81
+ ### Custom themes
82
+
83
+ Override tokens with plain CSS — no build tools required:
82
84
 
83
- const theme = createTheme({
85
+ ```css
86
+ .my-theme {
87
+ --etui-color-accent-primary: #2aa1ff;
88
+ --etui-color-bg-primary: #0d1117;
89
+ --etui-spacing-md: 10px;
90
+ }
91
+ ```
92
+
93
+ Or use the `createCustomTheme` helper in a `.css.ts` file for type-safe overrides:
94
+
95
+ ```ts
96
+ // myTheme.css.ts
97
+ import { createCustomTheme } from 'entangle-ui';
98
+
99
+ createCustomTheme('.my-theme', {
84
100
  colors: {
85
- accent: {
86
- primary: '#2aa1ff',
87
- },
101
+ accent: { primary: '#2aa1ff' },
102
+ background: { primary: '#0d1117' },
88
103
  },
89
104
  });
105
+ ```
90
106
 
91
- export function Root({ children }: { children: React.ReactNode }) {
92
- return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
93
- }
107
+ Then wrap your app:
108
+
109
+ ```tsx
110
+ import { VanillaThemeProvider } from 'entangle-ui';
111
+ import './myTheme.css';
112
+
113
+ <VanillaThemeProvider className="my-theme">
114
+ <App />
115
+ </VanillaThemeProvider>;
116
+ ```
117
+
118
+ ### Theme contract
119
+
120
+ Access theme tokens programmatically in `.css.ts` files via the `vars` object:
121
+
122
+ ```ts
123
+ import { style } from '@vanilla-extract/css';
124
+ import { vars } from 'entangle-ui';
125
+
126
+ export const card = style({
127
+ background: vars.colors.surface.default,
128
+ padding: vars.spacing.md,
129
+ borderRadius: vars.borderRadius.md,
130
+ color: vars.colors.text.primary,
131
+ });
94
132
  ```
95
133
 
96
134
  ## What Is Included
@@ -140,6 +178,14 @@ export function Root({ children }: { children: React.ReactNode }) {
140
178
  - `ToastProvider`, `useToast`
141
179
  - `FormLabel`, `FormHelperText`, `InputWrapper`
142
180
 
181
+ ### Utilities
182
+
183
+ - `vars` — Theme contract object mapping to `--etui-*` CSS custom properties
184
+ - `darkThemeValues` — Default dark theme token values
185
+ - `createCustomTheme(selector, overrides)` — Type-safe custom theme helper
186
+ - `VanillaThemeProvider` — Scoped theme wrapper component
187
+ - `cx(...classes)` — Class name composition utility
188
+
143
189
  ## Development
144
190
 
145
191
  ```bash
@@ -0,0 +1,4 @@
1
+ import { __require as requireCjs } from '../node_modules/deepmerge/dist/cjs.js';
2
+
3
+ requireCjs();
4
+ //# sourceMappingURL=cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,4 @@
1
+ import { __require as requireCssesc } from '../node_modules/cssesc/cssesc.js';
2
+
3
+ requireCssesc();
4
+ //# sourceMappingURL=cssesc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssesc.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,23 @@
1
+ .CartesianPicker_cartesianPickerRecipe__tqma2q1 {
2
+ display: flex;
3
+ flex-direction: column;
4
+ border: 1px solid var(--etui-color-border-default);
5
+ border-radius: var(--etui-radius-md);
6
+ overflow: hidden;
7
+ background: var(--etui-color-bg-secondary);
8
+ }
9
+ .CartesianPicker_cartesianPickerRecipe_disabled_true__tqma2q2 {
10
+ opacity: 0.6;
11
+ }
12
+ .CartesianPicker_cartesianPickerRecipe_responsive_true__tqma2q4 {
13
+ width: 100%;
14
+ }
15
+ .CartesianPicker_cartesianPickerRecipe_responsive_false__tqma2q5 {
16
+ width: var(--pickerWidthVar__tqma2q0);
17
+ }
18
+ .CartesianPicker_bottomBarStyle__tqma2q6 {
19
+ border-top: 1px solid var(--etui-color-border-default);
20
+ background: var(--etui-color-surface-default);
21
+ padding: var(--etui-spacing-xs) var(--etui-spacing-sm);
22
+ flex-shrink: 0;
23
+ }