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.
- package/CHANGELOG.md +117 -8
- package/README.md +98 -52
- package/dist/esm/_virtual/cjs.js +4 -0
- package/dist/esm/_virtual/cjs.js.map +1 -0
- package/dist/esm/_virtual/cssesc.js +4 -0
- package/dist/esm/_virtual/cssesc.js.map +1 -0
- package/dist/esm/assets/src/components/controls/CartesianPicker/CartesianPicker.css.ts.vanilla-Ccao9ycw.css +23 -0
- package/dist/esm/assets/src/components/controls/ColorPicker/ColorPicker.css.ts.vanilla-Do5nbdgO.css +341 -0
- package/dist/esm/assets/src/components/controls/CurveEditor/CurveEditor.css.ts.vanilla-Vn9SOx70.css +76 -0
- package/dist/esm/assets/src/components/controls/NumberInput/NumberInput.css.ts.vanilla-uGNr81xQ.css +158 -0
- package/dist/esm/assets/src/components/controls/Select/Select.css.ts.vanilla-D4C059Ua.css +225 -0
- package/dist/esm/assets/src/components/controls/Slider/Slider.css.ts.vanilla-C5SJ_7A1.css +173 -0
- package/dist/esm/assets/src/components/controls/TreeView/TreeNode.css.ts.vanilla-D3ylUhuW.css +150 -0
- package/dist/esm/assets/src/components/controls/TreeView/TreeView.css.ts.vanilla-CsG5-rWt.css +14 -0
- package/dist/esm/assets/src/components/controls/VectorInput/VectorInput.css.ts.vanilla-BJma3iQ4.css +102 -0
- package/dist/esm/assets/src/components/editor/ChatPanel/ChatPanel.css.ts.vanilla-DPIGnZ4A.css +701 -0
- package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyGroup.css.ts.vanilla-Co4n5a98.css +25 -0
- package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyPanel.css.ts.vanilla-RYv_XgOu.css +46 -0
- package/dist/esm/assets/src/components/editor/PropertyInspector/PropertyRow.css.ts.vanilla-C3YZnnHb.css +75 -0
- package/dist/esm/assets/src/components/editor/PropertyInspector/PropertySection.css.ts.vanilla-DJBtY_xk.css +105 -0
- package/dist/esm/assets/src/components/editor/ViewportGizmo/ViewportGizmo.css.ts.vanilla-CEs2H-Iv.css +43 -0
- package/dist/esm/assets/src/components/feedback/Dialog/Dialog.css.ts.vanilla-BrXTOHwS.css +169 -0
- package/dist/esm/assets/src/components/feedback/Toast/ToastContainer.css.ts.vanilla-tBLsZ_70.css +13 -0
- package/dist/esm/assets/src/components/feedback/Toast/ToastItem.css.ts.vanilla-D6UuPKAj.css +152 -0
- package/dist/esm/assets/src/components/form/FormHelperText.css.ts.vanilla-CXKd9jtx.css +11 -0
- package/dist/esm/assets/src/components/form/FormLabel.css.ts.vanilla-DHn6CB2v.css +17 -0
- package/dist/esm/assets/src/components/form/InputWrapper.css.ts.vanilla-Bl7u62PI.css +44 -0
- package/dist/esm/assets/src/components/layout/Accordion/Accordion.css.ts.vanilla-Ck5Yew0e.css +118 -0
- package/dist/esm/assets/src/components/layout/Flex/Flex.css.ts.vanilla-D7wY2gY6.css +142 -0
- package/dist/esm/assets/src/components/layout/Grid/Grid.css.ts.vanilla-gqfqUi29.css +213 -0
- package/dist/esm/assets/src/components/layout/PanelSurface/PanelSurface.css.ts.vanilla-HZvObe0l.css +86 -0
- package/dist/esm/assets/src/components/layout/ScrollArea/ScrollArea.css.ts.vanilla-UsyrfXTC.css +126 -0
- package/dist/esm/assets/src/components/layout/Spacer/Spacer.css.ts.vanilla-A-7aOV46.css +14 -0
- package/dist/esm/assets/src/components/layout/SplitPane/SplitPane.css.ts.vanilla-BFxdvwyI.css +44 -0
- package/dist/esm/assets/src/components/layout/Stack/Stack.css.ts.vanilla-DNZOFYiD.css +123 -0
- package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +67 -0
- package/dist/esm/assets/src/components/navigation/Tabs/Tabs.css.ts.vanilla-D7RGpDPC.css +247 -0
- package/dist/esm/assets/src/components/primitives/Button/Button.css.ts.vanilla-CT592JL7.css +98 -0
- package/dist/esm/assets/src/components/primitives/Checkbox/Checkbox.css.ts.vanilla-dvrGPiPs.css +124 -0
- package/dist/esm/assets/src/components/primitives/Collapsible/Collapsible.css.ts.vanilla-C1rYV-JT.css +73 -0
- package/dist/esm/assets/src/components/primitives/Icon/Icon.css.ts.vanilla-DIZ6dped.css +45 -0
- package/dist/esm/assets/src/components/primitives/IconButton/IconButton.css.ts.vanilla-C-xAQoR3.css +123 -0
- package/dist/esm/assets/src/components/primitives/Input/Input.css.ts.vanilla-De5ditYa.css +74 -0
- package/dist/esm/assets/src/components/primitives/Paper/Paper.css.ts.vanilla-B_tPWU80.css +67 -0
- package/dist/esm/assets/src/components/primitives/Popover/Popover.css.ts.vanilla-DW6aAr57.css +60 -0
- package/dist/esm/assets/src/components/primitives/Switch/Switch.css.ts.vanilla-CxqwUToB.css +100 -0
- package/dist/esm/assets/src/components/primitives/Text/Text.css.ts.vanilla-qTMvgKKC.css +126 -0
- package/dist/esm/assets/src/components/primitives/Tooltip/Tooltip.css.ts.vanilla-CrEFoLBX.css +71 -0
- package/dist/esm/assets/src/components/primitives/canvas/CanvasContainer.css.ts.vanilla-DR3zkEYQ.css +32 -0
- package/dist/esm/assets/src/components/shell/AppShell/AppShell.css.ts.vanilla-BYmtU0O_.css +97 -0
- package/dist/esm/assets/src/components/shell/FloatingPanel/FloatingPanel.css.ts.vanilla-1rIAXEFp.css +88 -0
- package/dist/esm/assets/src/components/shell/MenuBar/MenuBar.css.ts.vanilla-TgPcl4yA.css +120 -0
- package/dist/esm/assets/src/components/shell/StatusBar/StatusBar.css.ts.vanilla-BwO7oAZi.css +113 -0
- package/dist/esm/assets/src/components/shell/Toolbar/Toolbar.css.ts.vanilla-DPqftT18.css +97 -0
- package/dist/esm/assets/src/theme/darkTheme.css.ts.vanilla-V8lWHaQH.css +95 -0
- package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
- package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
- package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
- package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.css.js +9 -0
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.css.js.map +1 -0
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +99 -0
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -0
- package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +230 -0
- package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -0
- package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js +122 -0
- package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/AlphaSlider.js +4 -41
- package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorArea.js +3 -32
- package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js +3 -68
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js +5 -75
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPicker.css.js +34 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.css.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js +4 -18
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js +5 -44
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +4 -58
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js +4 -50
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/HueSlider.js +3 -32
- package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/useColor.js +1 -0
- package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +8 -30
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveEditor.css.js +17 -0
- package/dist/esm/components/controls/CurveEditor/CurveEditor.css.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js +17 -23
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +6 -23
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/curveUtils.js +7 -16
- package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +1 -0
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +39 -193
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
- package/dist/esm/components/controls/NumberInput/NumberInput.css.js +17 -0
- package/dist/esm/components/controls/NumberInput/NumberInput.css.js.map +1 -0
- package/dist/esm/components/controls/NumberInput/NumberInput.js +22 -166
- package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
- package/dist/esm/components/controls/NumberInput/useNumberInput.js +1 -1
- package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
- package/dist/esm/components/controls/Select/Select.css.js +18 -0
- package/dist/esm/components/controls/Select/Select.css.js.map +1 -0
- package/dist/esm/components/controls/Select/Select.js +29 -235
- package/dist/esm/components/controls/Select/Select.js.map +1 -1
- package/dist/esm/components/controls/Slider/Slider.css.js +17 -0
- package/dist/esm/components/controls/Slider/Slider.css.js.map +1 -0
- package/dist/esm/components/controls/Slider/Slider.js +12 -159
- package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
- package/dist/esm/components/controls/TreeView/TreeNode.css.js +15 -0
- package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -0
- package/dist/esm/components/controls/TreeView/TreeNode.js +18 -90
- package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
- package/dist/esm/components/controls/TreeView/TreeView.css.js +8 -0
- package/dist/esm/components/controls/TreeView/TreeView.css.js.map +1 -0
- package/dist/esm/components/controls/TreeView/TreeView.js +11 -18
- package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
- package/dist/esm/components/controls/TreeView/useTreeState.js +1 -0
- package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
- package/dist/esm/components/controls/VectorInput/VectorInput.css.js +13 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.css.js.map +1 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.js +11 -83
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatActionBar.js +13 -0
- package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +36 -0
- package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatBubble.js +13 -0
- package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +34 -0
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +17 -0
- package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +16 -0
- package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatInput.js +67 -0
- package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js +13 -0
- package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js +37 -0
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +32 -0
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js +72 -0
- package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatPanel.js +13 -0
- package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +35 -0
- package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js +16 -0
- package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/useChatInput.js +60 -0
- package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/useChatMessages.js +47 -0
- package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js +71 -0
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.css.js +10 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.css.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +14 -34
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js +13 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +35 -64
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js +15 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +34 -114
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +15 -0
- package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js +15 -100
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +1 -0
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.css.js +10 -0
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.css.js.map +1 -0
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +90 -0
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -0
- package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +259 -0
- package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -0
- package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +250 -0
- package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -0
- package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +191 -0
- package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/Dialog.css.js +16 -0
- package/dist/esm/components/feedback/Dialog/Dialog.css.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/Dialog.js +6 -4
- package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogBody.js +5 -15
- package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogClose.js +1 -0
- package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogFooter.js +5 -24
- package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogHeader.js +5 -63
- package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +2 -1
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js +1 -0
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastContainer.css.js +10 -0
- package/dist/esm/components/feedback/Toast/ToastContainer.css.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastContainer.js +12 -10
- package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastItem.css.js +16 -0
- package/dist/esm/components/feedback/Toast/ToastItem.css.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastItem.js +8 -138
- package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastProvider.js +1 -0
- package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
- package/dist/esm/components/feedback/Toast/useToast.js +1 -0
- package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
- package/dist/esm/components/form/FormHelperText.css.js +7 -0
- package/dist/esm/components/form/FormHelperText.css.js.map +1 -0
- package/dist/esm/components/form/FormHelperText.js +5 -15
- package/dist/esm/components/form/FormHelperText.js.map +1 -1
- package/dist/esm/components/form/FormLabel.css.js +8 -0
- package/dist/esm/components/form/FormLabel.css.js.map +1 -0
- package/dist/esm/components/form/FormLabel.js +5 -21
- package/dist/esm/components/form/FormLabel.js.map +1 -1
- package/dist/esm/components/form/InputWrapper.css.js +7 -0
- package/dist/esm/components/form/InputWrapper.css.js.map +1 -0
- package/dist/esm/components/form/InputWrapper.js +6 -74
- package/dist/esm/components/form/InputWrapper.js.map +1 -1
- package/dist/esm/components/layout/Accordion/Accordion.css.js +20 -0
- package/dist/esm/components/layout/Accordion/Accordion.css.js.map +1 -0
- package/dist/esm/components/layout/Accordion/Accordion.js +12 -11
- package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionContent.js +4 -20
- package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionItem.js +4 -7
- package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js +12 -96
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/esm/components/layout/Flex/Flex.css.js +11 -0
- package/dist/esm/components/layout/Flex/Flex.css.js.map +1 -0
- package/dist/esm/components/layout/Flex/Flex.js +47 -73
- package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
- package/dist/esm/components/layout/Grid/Grid.css.js +9 -0
- package/dist/esm/components/layout/Grid/Grid.css.js.map +1 -0
- package/dist/esm/components/layout/Grid/Grid.js +39 -64
- package/dist/esm/components/layout/Grid/Grid.js.map +1 -1
- package/dist/esm/components/layout/PanelSurface/PanelSurface.css.js +16 -0
- package/dist/esm/components/layout/PanelSurface/PanelSurface.css.js.map +1 -0
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js +23 -78
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
- package/dist/esm/components/layout/ScrollArea/ScrollArea.css.js +27 -0
- package/dist/esm/components/layout/ScrollArea/ScrollArea.css.js.map +1 -0
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js +35 -134
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/layout/Spacer/Spacer.css.js +8 -0
- package/dist/esm/components/layout/Spacer/Spacer.css.js.map +1 -0
- package/dist/esm/components/layout/Spacer/Spacer.js +13 -31
- package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -1
- package/dist/esm/components/layout/SplitPane/SplitPane.css.js +10 -0
- package/dist/esm/components/layout/SplitPane/SplitPane.css.js.map +1 -0
- package/dist/esm/components/layout/SplitPane/SplitPane.js +12 -36
- package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +5 -8
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
- package/dist/esm/components/layout/Stack/Stack.css.js +8 -0
- package/dist/esm/components/layout/Stack/Stack.css.js.map +1 -0
- package/dist/esm/components/layout/Stack/Stack.js +36 -65
- package/dist/esm/components/layout/Stack/Stack.js.map +1 -1
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +6 -4
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +1 -0
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -1
- package/dist/esm/components/navigation/Menu/Menu.css.js +16 -0
- package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -0
- package/dist/esm/components/navigation/Menu/Menu.helpers.js +9 -7
- package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -1
- package/dist/esm/components/navigation/Menu/Menu.js +6 -4
- package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
- package/dist/esm/components/navigation/Menu/useMenu.js +1 -0
- package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/Tab.js +31 -174
- package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/TabList.js +5 -56
- package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/TabPanel.js +4 -12
- package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/Tabs.css.js +26 -0
- package/dist/esm/components/navigation/Tabs/Tabs.css.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/Tabs.js +6 -13
- package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/primitives/BaseButton/BaseButton.js +1 -0
- package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -1
- package/dist/esm/components/primitives/Button/Button.css.js +9 -0
- package/dist/esm/components/primitives/Button/Button.css.js.map +1 -0
- package/dist/esm/components/primitives/Button/Button.js +5 -149
- package/dist/esm/components/primitives/Button/Button.js.map +1 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.css.js +14 -0
- package/dist/esm/components/primitives/Checkbox/Checkbox.css.js.map +1 -0
- package/dist/esm/components/primitives/Checkbox/Checkbox.js +20 -112
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +10 -17
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/esm/components/primitives/Collapsible/Collapsible.css.js +18 -0
- package/dist/esm/components/primitives/Collapsible/Collapsible.css.js.map +1 -0
- package/dist/esm/components/primitives/Collapsible/Collapsible.js +45 -83
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
- package/dist/esm/components/primitives/Icon/Icon.css.js +7 -0
- package/dist/esm/components/primitives/Icon/Icon.css.js.map +1 -0
- package/dist/esm/components/primitives/Icon/Icon.js +23 -55
- package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
- package/dist/esm/components/primitives/IconButton/IconButton.css.js +8 -0
- package/dist/esm/components/primitives/IconButton/IconButton.css.js.map +1 -0
- package/dist/esm/components/primitives/IconButton/IconButton.js +10 -170
- package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
- package/dist/esm/components/primitives/Input/Input.css.js +12 -0
- package/dist/esm/components/primitives/Input/Input.css.js.map +1 -0
- package/dist/esm/components/primitives/Input/Input.js +11 -79
- package/dist/esm/components/primitives/Input/Input.js.map +1 -1
- package/dist/esm/components/primitives/Paper/Paper.css.js +7 -0
- package/dist/esm/components/primitives/Paper/Paper.css.js.map +1 -0
- package/dist/esm/components/primitives/Paper/Paper.js +18 -90
- package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
- package/dist/esm/components/primitives/Popover/Popover.css.js +8 -0
- package/dist/esm/components/primitives/Popover/Popover.css.js.map +1 -0
- package/dist/esm/components/primitives/Popover/Popover.js +1 -0
- package/dist/esm/components/primitives/Popover/Popover.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverClose.js +4 -32
- package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverContent.js +19 -45
- package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js +1 -0
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
- package/dist/esm/components/primitives/Switch/Switch.css.js +15 -0
- package/dist/esm/components/primitives/Switch/Switch.css.js.map +1 -0
- package/dist/esm/components/primitives/Switch/Switch.js +29 -122
- package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
- package/dist/esm/components/primitives/Text/Text.css.js +9 -0
- package/dist/esm/components/primitives/Text/Text.css.js.map +1 -0
- package/dist/esm/components/primitives/Text/Text.js +20 -126
- package/dist/esm/components/primitives/Text/Text.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/Arrow.js +8 -41
- package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/Tooltip.css.js +9 -0
- package/dist/esm/components/primitives/Tooltip/Tooltip.css.js.map +1 -0
- package/dist/esm/components/primitives/Tooltip/Tooltip.js +20 -79
- package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
- package/dist/esm/components/primitives/canvas/CanvasContainer.css.js +10 -0
- package/dist/esm/components/primitives/canvas/CanvasContainer.css.js.map +1 -0
- package/dist/esm/components/primitives/canvas/CanvasContainer.js +32 -0
- package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -0
- package/dist/esm/components/primitives/canvas/canvasCoords.js +51 -0
- package/dist/esm/components/primitives/canvas/canvasCoords.js.map +1 -0
- package/dist/esm/components/primitives/canvas/canvasDrawing.js +251 -0
- package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -0
- package/dist/esm/components/primitives/canvas/canvasTheme.js +43 -0
- package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -0
- package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +26 -0
- package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -0
- package/dist/esm/components/shell/AppShell/AppShell.css.js +13 -0
- package/dist/esm/components/shell/AppShell/AppShell.css.js.map +1 -0
- package/dist/esm/components/shell/AppShell/AppShell.js +16 -101
- package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +18 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +20 -97
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
- package/dist/esm/components/shell/MenuBar/MenuBar.css.js +16 -0
- package/dist/esm/components/shell/MenuBar/MenuBar.css.js.map +1 -0
- package/dist/esm/components/shell/MenuBar/MenuBar.js +14 -139
- package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
- package/dist/esm/components/shell/StatusBar/StatusBar.css.js +11 -0
- package/dist/esm/components/shell/StatusBar/StatusBar.css.js.map +1 -0
- package/dist/esm/components/shell/StatusBar/StatusBar.js +11 -107
- package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
- package/dist/esm/components/shell/Toolbar/Toolbar.css.js +11 -0
- package/dist/esm/components/shell/Toolbar/Toolbar.css.js.map +1 -0
- package/dist/esm/components/shell/Toolbar/Toolbar.js +21 -97
- package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/context/KeyboardContext.js +1 -0
- package/dist/esm/context/KeyboardContext.js.map +1 -1
- package/dist/esm/index.js +26 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js +15 -0
- package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js +128 -0
- package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js +70 -0
- package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js +1543 -0
- package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js +25 -0
- package/dist/esm/node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js +10 -0
- package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js.map +1 -0
- package/dist/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +112 -0
- package/dist/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
- package/dist/esm/node_modules/cssesc/cssesc.js +120 -0
- package/dist/esm/node_modules/cssesc/cssesc.js.map +1 -0
- package/dist/esm/node_modules/dedent/dist/dedent.js +98 -0
- package/dist/esm/node_modules/dedent/dist/dedent.js.map +1 -0
- package/dist/esm/node_modules/deepmerge/dist/cjs.js +143 -0
- package/dist/esm/node_modules/deepmerge/dist/cjs.js.map +1 -0
- package/dist/esm/theme/ThemeProvider.js +13 -7
- package/dist/esm/theme/ThemeProvider.js.map +1 -1
- package/dist/esm/theme/VanillaThemeProvider.js +26 -0
- package/dist/esm/theme/VanillaThemeProvider.js.map +1 -0
- package/dist/esm/theme/contract.css.js +4 -0
- package/dist/esm/theme/contract.css.js.map +1 -0
- package/dist/esm/theme/darkTheme.css.js +6 -0
- package/dist/esm/theme/darkTheme.css.js.map +1 -0
- package/dist/esm/utils/cx.js +14 -0
- package/dist/esm/utils/cx.js.map +1 -0
- package/dist/esm/utils/mathExpression.js.map +1 -1
- package/dist/esm/utils/mathUtils.js.map +1 -1
- package/dist/types/components/controls/CartesianPicker/CartesianPicker.d.ts +6 -0
- package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +163 -0
- package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +5 -13
- package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +3 -1
- package/dist/types/components/controls/Select/Select.d.ts +1 -1
- package/dist/types/components/editor/ChatPanel/ChatActionBar.d.ts +288 -0
- package/dist/types/components/editor/ChatPanel/ChatAttachment.d.ts +292 -0
- package/dist/types/components/editor/ChatPanel/ChatBubble.d.ts +289 -0
- package/dist/types/components/editor/ChatPanel/ChatCodeBlock.d.ts +294 -0
- package/dist/types/components/editor/ChatPanel/ChatContextChip.d.ts +292 -0
- package/dist/types/components/editor/ChatPanel/ChatEmptyState.d.ts +292 -0
- package/dist/types/components/editor/ChatPanel/ChatInput.d.ts +300 -0
- package/dist/types/components/editor/ChatPanel/ChatInputToolbar.d.ts +288 -0
- package/dist/types/components/editor/ChatPanel/ChatMessage.d.ts +294 -0
- package/dist/types/components/editor/ChatPanel/ChatMessageList.d.ts +293 -0
- package/dist/types/components/editor/ChatPanel/ChatPanel.d.ts +290 -0
- package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +409 -0
- package/dist/types/components/editor/ChatPanel/ChatToolCall.d.ts +294 -0
- package/dist/types/components/editor/ChatPanel/ChatTypingIndicator.d.ts +291 -0
- package/dist/types/components/editor/ChatPanel/useChatInput.d.ts +5 -0
- package/dist/types/components/editor/ChatPanel/useChatMessages.d.ts +5 -0
- package/dist/types/components/editor/ChatPanel/useChatScroll.d.ts +5 -0
- package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.d.ts +6 -0
- package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +146 -0
- package/dist/types/components/editor/ViewportGizmo/gizmoMath.d.ts +73 -0
- package/dist/types/components/form/FormHelperText.d.ts +13 -15
- package/dist/types/components/form/FormLabel.d.ts +13 -15
- package/dist/types/components/form/InputWrapper.d.ts +13 -15
- package/dist/types/components/layout/PanelSurface/PanelSurface.d.ts +54 -59
- package/dist/types/components/layout/Spacer/Spacer.d.ts +17 -19
- package/dist/types/components/navigation/Menu/Menu.types.d.ts +1 -1
- package/dist/types/components/primitives/Button/Button.d.ts +30 -18
- package/dist/types/components/primitives/Icon/Icon.d.ts +0 -7
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +26 -19
- package/dist/types/components/primitives/Input/Input.d.ts +7 -2
- package/dist/types/components/primitives/Paper/Paper.d.ts +23 -21
- package/dist/types/components/primitives/Switch/Switch.d.ts +7 -2
- package/dist/types/components/primitives/Text/Text.d.ts +20 -18
- package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +7 -3
- package/dist/types/components/primitives/Tooltip/types.d.ts +1 -1
- package/dist/types/components/primitives/canvas/canvas.types.d.ts +27 -0
- package/dist/types/components/shell/AppShell/AppShell.d.ts +86 -92
- package/dist/types/components/shell/MenuBar/MenuBar.d.ts +66 -72
- package/dist/types/components/shell/StatusBar/StatusBar.d.ts +42 -46
- package/dist/types/components/shell/Toolbar/Toolbar.d.ts +77 -84
- package/dist/types/index.d.ts +29 -6
- package/dist/types/theme/ThemeProvider.d.ts +9 -2
- package/dist/types/theme/VanillaThemeProvider.d.ts +34 -0
- package/dist/types/theme/contract.css.d.ts +164 -0
- package/dist/types/theme/{tokens.d.ts → darkTheme.css.d.ts} +43 -39
- package/dist/types/types/common.d.ts +1 -8
- package/dist/types/utils/cx.d.ts +11 -0
- package/package.json +34 -30
- package/dist/esm/components/feedback/Dialog/Dialog.styled.js +0 -80
- package/dist/esm/components/feedback/Dialog/Dialog.styled.js.map +0 -1
- package/dist/esm/components/navigation/Menu/Menu.styled.js +0 -83
- package/dist/esm/components/navigation/Menu/Menu.styled.js.map +0 -1
- package/dist/esm/theme/createTheme.js +0 -10
- package/dist/esm/theme/createTheme.js.map +0 -1
- package/dist/esm/theme/tokens.js +0 -144
- package/dist/esm/theme/tokens.js.map +0 -1
- package/dist/esm/utils/objects.js +0 -22
- package/dist/esm/utils/objects.js.map +0 -1
- package/dist/esm/utils/styledUtils.js +0 -81
- package/dist/esm/utils/styledUtils.js.map +0 -1
- package/dist/types/theme/createTheme.d.ts +0 -6
- package/dist/types/theme/types.d.ts +0 -7
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
import { BaseComponent } from '../../../types/common.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Standard message roles in an LLM conversation.
|
|
7
|
+
* - `user`: Human input
|
|
8
|
+
* - `assistant`: LLM response
|
|
9
|
+
* - `system`: Informational/status messages
|
|
10
|
+
* - `tool`: Tool call invocation and result
|
|
11
|
+
*/
|
|
12
|
+
type ChatMessageRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
13
|
+
/**
|
|
14
|
+
* Visual status of a message.
|
|
15
|
+
* - `complete`: Fully received / sent
|
|
16
|
+
* - `streaming`: Currently receiving tokens
|
|
17
|
+
* - `error`: Failed to send or receive
|
|
18
|
+
* - `pending`: Queued, not yet sent
|
|
19
|
+
*/
|
|
20
|
+
type ChatMessageStatus = 'complete' | 'streaming' | 'error' | 'pending';
|
|
21
|
+
/**
|
|
22
|
+
* Execution status of a tool invocation.
|
|
23
|
+
*/
|
|
24
|
+
type ChatToolCallStatus = 'pending' | 'running' | 'completed' | 'error';
|
|
25
|
+
/**
|
|
26
|
+
* File or editor context attached to a message.
|
|
27
|
+
*/
|
|
28
|
+
interface ChatAttachmentData {
|
|
29
|
+
/** Unique identifier */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Display name shown in the chip */
|
|
32
|
+
name: string;
|
|
33
|
+
/**
|
|
34
|
+
* Attachment category
|
|
35
|
+
* - `file`: Generic file (document, config, etc.)
|
|
36
|
+
* - `image`: Image with thumbnail preview
|
|
37
|
+
* - `code`: Code snippet from the editor
|
|
38
|
+
* - `selection`: Selected objects/entities from the editor scene
|
|
39
|
+
*/
|
|
40
|
+
type: 'file' | 'image' | 'code' | 'selection';
|
|
41
|
+
/** MIME type for file/image attachments */
|
|
42
|
+
mimeType?: string;
|
|
43
|
+
/** File size in bytes */
|
|
44
|
+
size?: number;
|
|
45
|
+
/** Thumbnail URL for image type */
|
|
46
|
+
thumbnailUrl?: string;
|
|
47
|
+
/** Raw content for code/selection type */
|
|
48
|
+
content?: string;
|
|
49
|
+
/** Additional metadata (consumer-defined) */
|
|
50
|
+
meta?: Record<string, unknown>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Represents a single tool/function invocation within a message.
|
|
54
|
+
*/
|
|
55
|
+
interface ChatToolCallData {
|
|
56
|
+
/** Unique identifier */
|
|
57
|
+
id: string;
|
|
58
|
+
/** Tool/function name (e.g., "create_nodes", "modify_material") */
|
|
59
|
+
name: string;
|
|
60
|
+
/** Current execution status */
|
|
61
|
+
status: ChatToolCallStatus;
|
|
62
|
+
/** Input parameters passed to the tool */
|
|
63
|
+
input?: Record<string, unknown>;
|
|
64
|
+
/** Result returned by the tool */
|
|
65
|
+
output?: Record<string, unknown>;
|
|
66
|
+
/** Error message if status is 'error' */
|
|
67
|
+
error?: string;
|
|
68
|
+
/** Duration of execution in milliseconds */
|
|
69
|
+
durationMs?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A single message in the chat conversation.
|
|
73
|
+
*
|
|
74
|
+
* This is a data type — the component library does not manage
|
|
75
|
+
* message creation or persistence. The consumer provides messages
|
|
76
|
+
* as props or via the `useChatMessages` UI state hook.
|
|
77
|
+
*/
|
|
78
|
+
interface ChatMessageData {
|
|
79
|
+
/** Unique message identifier */
|
|
80
|
+
id: string;
|
|
81
|
+
/** Who sent the message */
|
|
82
|
+
role: ChatMessageRole;
|
|
83
|
+
/** Text content (may contain markdown) */
|
|
84
|
+
content: string;
|
|
85
|
+
/** Visual/delivery status */
|
|
86
|
+
status: ChatMessageStatus;
|
|
87
|
+
/** ISO 8601 timestamp */
|
|
88
|
+
timestamp: string;
|
|
89
|
+
/** Attached files or editor context */
|
|
90
|
+
attachments?: ChatAttachmentData[];
|
|
91
|
+
/** Tool invocations within this message (assistant role only) */
|
|
92
|
+
toolCalls?: ChatToolCallData[];
|
|
93
|
+
/** Avatar URL or initials fallback */
|
|
94
|
+
avatar?: string;
|
|
95
|
+
/** Display name */
|
|
96
|
+
displayName?: string;
|
|
97
|
+
}
|
|
98
|
+
type ChatPanelDensity = 'comfortable' | 'compact';
|
|
99
|
+
interface ChatPanelBaseProps extends BaseComponent {
|
|
100
|
+
/**
|
|
101
|
+
* Visual density of the chat layout.
|
|
102
|
+
* - `comfortable`: More spacing, larger bubbles (side panel, fullscreen)
|
|
103
|
+
* - `compact`: Tight spacing for bottom panels and constrained areas
|
|
104
|
+
* @default "comfortable"
|
|
105
|
+
*/
|
|
106
|
+
density?: ChatPanelDensity;
|
|
107
|
+
/** Panel content — typically ChatMessageList + ChatInput */
|
|
108
|
+
children: React.ReactNode;
|
|
109
|
+
}
|
|
110
|
+
type ChatPanelProps = Prettify<ChatPanelBaseProps>;
|
|
111
|
+
interface ChatMessageListBaseProps extends BaseComponent {
|
|
112
|
+
/** Array of messages to render */
|
|
113
|
+
messages: ChatMessageData[];
|
|
114
|
+
/**
|
|
115
|
+
* Custom renderer for a single message.
|
|
116
|
+
* Allows full control over message appearance while keeping
|
|
117
|
+
* list behavior (scroll) managed by the component.
|
|
118
|
+
*/
|
|
119
|
+
renderMessage?: (message: ChatMessageData, index: number) => React.ReactNode;
|
|
120
|
+
/** Content shown when messages array is empty */
|
|
121
|
+
emptyState?: React.ReactNode;
|
|
122
|
+
/**
|
|
123
|
+
* Enable auto-scroll to bottom on new messages.
|
|
124
|
+
* Auto-scroll pauses when user scrolls up and resumes
|
|
125
|
+
* when user scrolls back to bottom.
|
|
126
|
+
* @default true
|
|
127
|
+
*/
|
|
128
|
+
autoScroll?: boolean;
|
|
129
|
+
}
|
|
130
|
+
type ChatMessageListProps = Prettify<ChatMessageListBaseProps>;
|
|
131
|
+
interface ChatMessageBaseProps extends BaseComponent {
|
|
132
|
+
/** Message data */
|
|
133
|
+
message: ChatMessageData;
|
|
134
|
+
/** Show timestamp below the message */
|
|
135
|
+
showTimestamp?: boolean;
|
|
136
|
+
/** Show avatar next to the message */
|
|
137
|
+
showAvatar?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Actions rendered below the message content.
|
|
140
|
+
* Typically: copy, retry, edit, "apply to scene", etc.
|
|
141
|
+
*/
|
|
142
|
+
actions?: React.ReactNode;
|
|
143
|
+
/**
|
|
144
|
+
* Custom renderer for message content.
|
|
145
|
+
* Receives raw content string, returns rendered output.
|
|
146
|
+
* Use for custom markdown rendering, LaTeX, etc.
|
|
147
|
+
*/
|
|
148
|
+
renderContent?: (content: string) => React.ReactNode;
|
|
149
|
+
}
|
|
150
|
+
type ChatMessageProps = Prettify<ChatMessageBaseProps>;
|
|
151
|
+
interface ChatBubbleBaseProps extends BaseComponent {
|
|
152
|
+
/**
|
|
153
|
+
* Visual role determines alignment and color scheme.
|
|
154
|
+
* @default "assistant"
|
|
155
|
+
*/
|
|
156
|
+
role?: ChatMessageRole;
|
|
157
|
+
/** Content inside the bubble */
|
|
158
|
+
children: React.ReactNode;
|
|
159
|
+
}
|
|
160
|
+
type ChatBubbleProps = Prettify<ChatBubbleBaseProps>;
|
|
161
|
+
interface ChatInputBaseProps extends Omit<BaseComponent, 'prefix' | 'onChange' | 'onSubmit'> {
|
|
162
|
+
/** Current input value (controlled) */
|
|
163
|
+
value?: string;
|
|
164
|
+
/** Change handler for controlled usage */
|
|
165
|
+
onChange?: (value: string) => void;
|
|
166
|
+
/** Called when user submits the message */
|
|
167
|
+
onSubmit?: (value: string, attachments: ChatAttachmentData[]) => void;
|
|
168
|
+
/** Called when user clicks "stop generation" */
|
|
169
|
+
onStop?: () => void;
|
|
170
|
+
/** Placeholder text */
|
|
171
|
+
placeholder?: string;
|
|
172
|
+
/**
|
|
173
|
+
* Whether the assistant is currently streaming a response.
|
|
174
|
+
* When true, shows stop button instead of send button.
|
|
175
|
+
* @default false
|
|
176
|
+
*/
|
|
177
|
+
streaming?: boolean;
|
|
178
|
+
/** Disable input (e.g. during connection issues) */
|
|
179
|
+
disabled?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Key combination that submits the message.
|
|
182
|
+
* The other combination always inserts a newline.
|
|
183
|
+
* - `enter`: Enter submits, Shift+Enter for newline
|
|
184
|
+
* - `ctrl+enter`: Ctrl/Cmd+Enter submits, Enter for newline
|
|
185
|
+
* @default "enter"
|
|
186
|
+
*/
|
|
187
|
+
submitKey?: 'enter' | 'ctrl+enter';
|
|
188
|
+
/**
|
|
189
|
+
* Maximum number of visible lines before the input scrolls.
|
|
190
|
+
* Input auto-resizes from 1 line up to this maximum.
|
|
191
|
+
* @default 6
|
|
192
|
+
*/
|
|
193
|
+
maxLines?: number;
|
|
194
|
+
/** Currently attached items shown as chips above the input */
|
|
195
|
+
attachments?: ChatAttachmentData[];
|
|
196
|
+
/** Called when user removes an attachment chip */
|
|
197
|
+
onRemoveAttachment?: (attachmentId: string) => void;
|
|
198
|
+
/** Content rendered before the textarea (e.g., context chips) */
|
|
199
|
+
prefix?: React.ReactNode;
|
|
200
|
+
/** Content rendered after the textarea (e.g., additional action buttons) */
|
|
201
|
+
suffix?: React.ReactNode;
|
|
202
|
+
/**
|
|
203
|
+
* Toolbar rendered below the input area.
|
|
204
|
+
* Use `ChatInputToolbar` as a layout wrapper for action buttons
|
|
205
|
+
* (e.g., file upload, menus, formatting options).
|
|
206
|
+
*/
|
|
207
|
+
toolbar?: React.ReactNode;
|
|
208
|
+
}
|
|
209
|
+
type ChatInputProps = Prettify<ChatInputBaseProps>;
|
|
210
|
+
interface ChatTypingIndicatorBaseProps extends BaseComponent {
|
|
211
|
+
/**
|
|
212
|
+
* Label shown alongside the animation.
|
|
213
|
+
* @default "Thinking..."
|
|
214
|
+
*/
|
|
215
|
+
label?: string;
|
|
216
|
+
/**
|
|
217
|
+
* Visual style of the indicator.
|
|
218
|
+
* - `dots`: Three animated dots (default)
|
|
219
|
+
* - `pulse`: Pulsing bar
|
|
220
|
+
* @default "dots"
|
|
221
|
+
*/
|
|
222
|
+
variant?: 'dots' | 'pulse';
|
|
223
|
+
/** Whether the indicator is visible */
|
|
224
|
+
visible?: boolean;
|
|
225
|
+
}
|
|
226
|
+
type ChatTypingIndicatorProps = Prettify<ChatTypingIndicatorBaseProps>;
|
|
227
|
+
interface ChatToolCallBaseProps extends BaseComponent {
|
|
228
|
+
/** Tool call data */
|
|
229
|
+
toolCall: ChatToolCallData;
|
|
230
|
+
/**
|
|
231
|
+
* Whether the input/output details can be expanded.
|
|
232
|
+
* @default true
|
|
233
|
+
*/
|
|
234
|
+
collapsible?: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* Whether details are initially expanded.
|
|
237
|
+
* @default false
|
|
238
|
+
*/
|
|
239
|
+
defaultExpanded?: boolean;
|
|
240
|
+
/** Custom icon for the tool (defaults to a wrench icon) */
|
|
241
|
+
icon?: React.ReactNode;
|
|
242
|
+
/**
|
|
243
|
+
* Custom renderer for tool output.
|
|
244
|
+
* Receives the output object, returns rendered visualization.
|
|
245
|
+
*/
|
|
246
|
+
renderOutput?: (output: Record<string, unknown>) => React.ReactNode;
|
|
247
|
+
}
|
|
248
|
+
type ChatToolCallProps = Prettify<ChatToolCallBaseProps>;
|
|
249
|
+
interface ChatCodeBlockBaseProps extends BaseComponent {
|
|
250
|
+
/** Code content */
|
|
251
|
+
code: string;
|
|
252
|
+
/** Programming language for syntax highlighting */
|
|
253
|
+
language?: string;
|
|
254
|
+
/**
|
|
255
|
+
* Show a copy-to-clipboard button.
|
|
256
|
+
* @default true
|
|
257
|
+
*/
|
|
258
|
+
copyable?: boolean;
|
|
259
|
+
/**
|
|
260
|
+
* Show line numbers.
|
|
261
|
+
* @default false
|
|
262
|
+
*/
|
|
263
|
+
lineNumbers?: boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Maximum visible height in pixels before the block scrolls.
|
|
266
|
+
* @default 400
|
|
267
|
+
*/
|
|
268
|
+
maxHeight?: number;
|
|
269
|
+
/**
|
|
270
|
+
* Actions rendered in the code block header (e.g., "Insert", "Apply").
|
|
271
|
+
* Rendered alongside the copy button and language label.
|
|
272
|
+
*/
|
|
273
|
+
actions?: React.ReactNode;
|
|
274
|
+
}
|
|
275
|
+
type ChatCodeBlockProps = Prettify<ChatCodeBlockBaseProps>;
|
|
276
|
+
interface ChatAttachmentBaseProps extends Omit<BaseComponent, 'onClick'> {
|
|
277
|
+
/** Attachment data */
|
|
278
|
+
attachment: ChatAttachmentData;
|
|
279
|
+
/** Called when the remove button is clicked */
|
|
280
|
+
onRemove?: (id: string) => void;
|
|
281
|
+
/** Called when the chip itself is clicked (e.g., to preview) */
|
|
282
|
+
onClick?: (attachment: ChatAttachmentData) => void;
|
|
283
|
+
/**
|
|
284
|
+
* Whether to show the remove (×) button.
|
|
285
|
+
* @default false
|
|
286
|
+
*/
|
|
287
|
+
removable?: boolean;
|
|
288
|
+
}
|
|
289
|
+
type ChatAttachmentChipProps = Prettify<ChatAttachmentBaseProps>;
|
|
290
|
+
interface ChatContextChipBaseProps extends BaseComponent {
|
|
291
|
+
/** Label describing the context (e.g., "Selected", "Active file") */
|
|
292
|
+
label: string;
|
|
293
|
+
/** Items in this context group */
|
|
294
|
+
items: string[];
|
|
295
|
+
/** Icon shown before the label */
|
|
296
|
+
icon?: React.ReactNode;
|
|
297
|
+
/** Called when the chip is dismissed */
|
|
298
|
+
onDismiss?: () => void;
|
|
299
|
+
}
|
|
300
|
+
type ChatContextChipProps = Prettify<ChatContextChipBaseProps>;
|
|
301
|
+
interface ChatEmptyStateBaseProps extends BaseComponent {
|
|
302
|
+
/** Main heading */
|
|
303
|
+
title?: string;
|
|
304
|
+
/** Supporting description */
|
|
305
|
+
description?: string;
|
|
306
|
+
/** Icon or illustration */
|
|
307
|
+
icon?: React.ReactNode;
|
|
308
|
+
/**
|
|
309
|
+
* Quick-start suggestion chips.
|
|
310
|
+
* Each string becomes a clickable chip that populates the input.
|
|
311
|
+
*/
|
|
312
|
+
suggestions?: string[];
|
|
313
|
+
/** Called when a suggestion chip is clicked */
|
|
314
|
+
onSuggestionClick?: (suggestion: string) => void;
|
|
315
|
+
}
|
|
316
|
+
type ChatEmptyStateProps = Prettify<ChatEmptyStateBaseProps>;
|
|
317
|
+
interface ChatActionBarBaseProps extends BaseComponent {
|
|
318
|
+
/** Action buttons rendered in a horizontal row */
|
|
319
|
+
children: React.ReactNode;
|
|
320
|
+
}
|
|
321
|
+
type ChatActionBarProps = Prettify<ChatActionBarBaseProps>;
|
|
322
|
+
interface ChatInputToolbarBaseProps extends BaseComponent {
|
|
323
|
+
/** Action buttons rendered in a horizontal row below the input */
|
|
324
|
+
children: React.ReactNode;
|
|
325
|
+
}
|
|
326
|
+
type ChatInputToolbarProps = Prettify<ChatInputToolbarBaseProps>;
|
|
327
|
+
interface UseChatMessagesOptions {
|
|
328
|
+
/** Initial messages to populate the list */
|
|
329
|
+
initialMessages?: ChatMessageData[];
|
|
330
|
+
/**
|
|
331
|
+
* Maximum number of messages to keep in state.
|
|
332
|
+
* Oldest messages are dropped when limit is exceeded.
|
|
333
|
+
* @default undefined (no limit)
|
|
334
|
+
*/
|
|
335
|
+
maxMessages?: number;
|
|
336
|
+
}
|
|
337
|
+
interface UseChatMessagesReturn {
|
|
338
|
+
/** Current message array */
|
|
339
|
+
messages: ChatMessageData[];
|
|
340
|
+
/** Replace the entire message array */
|
|
341
|
+
setMessages: React.Dispatch<React.SetStateAction<ChatMessageData[]>>;
|
|
342
|
+
/** Append a new message to the end */
|
|
343
|
+
appendMessage: (message: ChatMessageData) => void;
|
|
344
|
+
/**
|
|
345
|
+
* Update a message by ID.
|
|
346
|
+
* Accepts a partial update or an updater function.
|
|
347
|
+
*/
|
|
348
|
+
updateMessage: (id: string, update: Partial<ChatMessageData> | ((prev: ChatMessageData) => Partial<ChatMessageData>)) => void;
|
|
349
|
+
/** Remove a message by ID */
|
|
350
|
+
removeMessage: (id: string) => void;
|
|
351
|
+
/** Clear all messages */
|
|
352
|
+
clearMessages: () => void;
|
|
353
|
+
/** Find a message by ID */
|
|
354
|
+
getMessage: (id: string) => ChatMessageData | undefined;
|
|
355
|
+
}
|
|
356
|
+
interface UseChatInputOptions {
|
|
357
|
+
/**
|
|
358
|
+
* Key combo that triggers submit.
|
|
359
|
+
* @default "enter"
|
|
360
|
+
*/
|
|
361
|
+
submitKey?: 'enter' | 'ctrl+enter';
|
|
362
|
+
/** Called when submit key is pressed and input is non-empty */
|
|
363
|
+
onSubmit?: (value: string) => void;
|
|
364
|
+
/**
|
|
365
|
+
* Maximum visible rows before scrolling.
|
|
366
|
+
* @default 6
|
|
367
|
+
*/
|
|
368
|
+
maxLines?: number;
|
|
369
|
+
}
|
|
370
|
+
interface UseChatInputReturn {
|
|
371
|
+
/** Current input value */
|
|
372
|
+
value: string;
|
|
373
|
+
/** Update input value */
|
|
374
|
+
setValue: (value: string) => void;
|
|
375
|
+
/** Clear input and reset height */
|
|
376
|
+
clear: () => void;
|
|
377
|
+
/** Ref to attach to the textarea element */
|
|
378
|
+
textareaRef: React.RefObject<HTMLTextAreaElement | null>;
|
|
379
|
+
/** Keyboard event handler — attach to textarea's onKeyDown */
|
|
380
|
+
handleKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;
|
|
381
|
+
/** Change event handler — attach to textarea's onChange */
|
|
382
|
+
handleChange: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
383
|
+
}
|
|
384
|
+
interface UseChatScrollOptions {
|
|
385
|
+
/** Message array — scroll triggers when length changes */
|
|
386
|
+
messages: ChatMessageData[];
|
|
387
|
+
/**
|
|
388
|
+
* Enable auto-scroll to bottom on new messages.
|
|
389
|
+
* @default true
|
|
390
|
+
*/
|
|
391
|
+
enabled?: boolean;
|
|
392
|
+
/**
|
|
393
|
+
* Pixel threshold from the bottom to consider "at bottom".
|
|
394
|
+
* @default 100
|
|
395
|
+
*/
|
|
396
|
+
threshold?: number;
|
|
397
|
+
}
|
|
398
|
+
interface UseChatScrollReturn {
|
|
399
|
+
/** Ref to attach to the scrollable container element */
|
|
400
|
+
scrollContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
401
|
+
/** Whether the user is currently scrolled to the bottom */
|
|
402
|
+
isAtBottom: boolean;
|
|
403
|
+
/** Whether there are new messages below the current scroll position */
|
|
404
|
+
hasNewMessages: boolean;
|
|
405
|
+
/** Programmatically scroll to the bottom */
|
|
406
|
+
scrollToBottom: (behavior?: ScrollBehavior) => void;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export type { ChatActionBarProps, ChatAttachmentChipProps, ChatAttachmentData, ChatBubbleProps, ChatCodeBlockProps, ChatContextChipProps, ChatEmptyStateProps, ChatInputProps, ChatInputToolbarProps, ChatMessageData, ChatMessageListProps, ChatMessageProps, ChatMessageRole, ChatMessageStatus, ChatPanelDensity, ChatPanelProps, ChatToolCallData, ChatToolCallProps, ChatToolCallStatus, ChatTypingIndicatorProps, UseChatInputOptions, UseChatInputReturn, UseChatMessagesOptions, UseChatMessagesReturn, UseChatScrollOptions, UseChatScrollReturn };
|