entangle-ui 0.2.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 +139 -7
- 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 +27 -0
- package/dist/esm/components/Icons/CheckIcon.js.map +1 -0
- package/dist/esm/components/Icons/ChevronDownIcon.js +27 -0
- package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -0
- package/dist/esm/components/Icons/ChevronUpIcon.js +27 -0
- package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -0
- package/dist/esm/components/Icons/CircleIcon.js +27 -0
- package/dist/esm/components/Icons/CircleIcon.js.map +1 -0
- package/dist/esm/components/Icons/CloseIcon.js +27 -0
- package/dist/esm/components/Icons/CloseIcon.js.map +1 -0
- package/dist/esm/components/Icons/EyeDropperIcon.js +28 -0
- package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentAlignedIcon.js +9 -0
- package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentAutoIcon.js +9 -0
- package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentFreeIcon.js +9 -0
- package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentLinearIcon.js +9 -0
- package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentMirroredIcon.js +9 -0
- package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentStepIcon.js +9 -0
- package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -0
- 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 +55 -0
- package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorArea.js +64 -0
- package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js +64 -0
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js +19 -0
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -0
- 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 +61 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js +18 -0
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +13 -0
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js +39 -0
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/HueSlider.js +56 -0
- package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/colorUtils.js +220 -0
- package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/palettes/material.js +299 -0
- package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/palettes/professional.js +479 -0
- package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js +366 -0
- package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/useColor.js +64 -0
- package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +62 -0
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -0
- 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 +128 -0
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +79 -0
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/curvePresets.js +184 -0
- package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/curveUtils.js +329 -0
- package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +570 -0
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +246 -0
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -0
- 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 +233 -0
- package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -0
- package/dist/esm/components/controls/NumberInput/useNumberInput.js +324 -0
- package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -0
- 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 +327 -0
- package/dist/esm/components/controls/Select/Select.js.map +1 -0
- 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 +266 -0
- package/dist/esm/components/controls/Slider/Slider.js.map +1 -0
- 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 +117 -0
- package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -0
- 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 +206 -0
- package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -0
- package/dist/esm/components/controls/TreeView/useTreeState.js +155 -0
- package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -0
- 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 +130 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -0
- 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 +22 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -0
- 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 +69 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -0
- 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 +74 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -0
- 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 +51 -0
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +87 -0
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -0
- 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 +94 -0
- package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogBody.js +23 -0
- package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogClose.js +27 -0
- package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogFooter.js +24 -0
- package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogHeader.js +26 -0
- package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +71 -0
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js +56 -0
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -0
- 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 +36 -0
- package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -0
- 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 +84 -0
- package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastProvider.js +48 -0
- package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -0
- package/dist/esm/components/feedback/Toast/useToast.js +61 -0
- package/dist/esm/components/feedback/Toast/useToast.js.map +1 -0
- 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 +28 -0
- package/dist/esm/components/form/FormHelperText.js.map +1 -0
- 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 +27 -0
- package/dist/esm/components/form/FormLabel.js.map +1 -0
- 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 +32 -0
- package/dist/esm/components/form/InputWrapper.js.map +1 -0
- 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 +104 -0
- package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionContent.js +21 -0
- package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionItem.js +21 -0
- package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js +39 -0
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -0
- 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 +123 -0
- package/dist/esm/components/layout/Flex/Flex.js.map +1 -0
- 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 +93 -0
- package/dist/esm/components/layout/Grid/Grid.js.map +1 -0
- 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 +51 -0
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -0
- 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 +263 -0
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -0
- 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 +60 -0
- package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -0
- 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 +557 -0
- package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -0
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +26 -0
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -0
- 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 +109 -0
- package/dist/esm/components/layout/Stack/Stack.js.map +1 -0
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +47 -0
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +53 -0
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -0
- 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 +54 -0
- package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -0
- package/dist/esm/components/navigation/Menu/Menu.js +82 -0
- package/dist/esm/components/navigation/Menu/Menu.js.map +1 -0
- package/dist/esm/components/navigation/Menu/useMenu.js +88 -0
- package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/Tab.js +79 -0
- package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/TabList.js +64 -0
- package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/TabPanel.js +24 -0
- package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -0
- 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 +70 -0
- package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/esm/components/primitives/BaseButton/BaseButton.js +18 -0
- package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -0
- 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 +39 -0
- package/dist/esm/components/primitives/Button/Button.js.map +1 -0
- 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 +113 -0
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -0
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +64 -0
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -0
- 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 +78 -0
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -0
- 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 +31 -0
- package/dist/esm/components/primitives/Icon/Icon.js.map +1 -0
- 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 +62 -0
- package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -0
- 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 +65 -0
- package/dist/esm/components/primitives/Input/Input.js.map +1 -0
- 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 +74 -0
- package/dist/esm/components/primitives/Paper/Paper.js.map +1 -0
- 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 +122 -0
- package/dist/esm/components/primitives/Popover/Popover.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverClose.js +22 -0
- package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverContent.js +76 -0
- package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js +38 -0
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -0
- 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 +77 -0
- package/dist/esm/components/primitives/Switch/Switch.js.map +1 -0
- 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 +60 -0
- package/dist/esm/components/primitives/Text/Text.js.map +1 -0
- package/dist/esm/components/primitives/Tooltip/Arrow.js +19 -0
- package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -0
- 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 +160 -0
- package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -0
- package/dist/esm/components/primitives/Tooltip/utils.js +66 -0
- package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -0
- 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 +72 -0
- package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -0
- 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 +159 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -0
- 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 +215 -0
- package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -0
- 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 +38 -0
- package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -0
- 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 +109 -0
- package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -0
- package/dist/esm/context/KeyboardContext.js +15 -0
- package/dist/esm/context/KeyboardContext.js.map +1 -0
- package/dist/esm/index.js +101 -0
- package/dist/esm/index.js.map +1 -0
- 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/palettes.js +4 -0
- package/dist/esm/palettes.js.map +1 -0
- package/dist/esm/theme/ThemeProvider.js +18 -0
- package/dist/esm/theme/ThemeProvider.js.map +1 -0
- 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/cn.js +6 -0
- package/dist/esm/utils/cn.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 +275 -0
- package/dist/esm/utils/mathExpression.js.map +1 -0
- package/dist/esm/utils/mathUtils.js +18 -0
- package/dist/esm/utils/mathUtils.js.map +1 -0
- 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/ColorPicker/ColorPalette.d.ts +16 -0
- package/dist/types/components/controls/ColorPicker/ColorPicker.d.ts +6 -0
- package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +120 -0
- package/dist/types/components/controls/ColorPicker/ColorSwatch.d.ts +6 -0
- package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +28 -0
- package/dist/types/components/controls/ColorPicker/colorUtils.d.ts +3 -0
- package/dist/types/components/controls/ColorPicker/palettes/material.d.ts +24 -0
- package/dist/types/components/controls/ColorPicker/palettes/professional.d.ts +19 -0
- package/dist/types/components/controls/ColorPicker/palettes/tailwind.d.ts +12 -0
- package/dist/types/components/controls/CurveEditor/CurveEditor.d.ts +6 -0
- package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +289 -0
- package/dist/types/components/controls/CurveEditor/curvePresets.d.ts +5 -0
- package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +30 -0
- package/dist/types/components/controls/NumberInput/NumberInput.d.ts +150 -0
- package/dist/types/components/controls/NumberInput/useNumberInput.d.ts +65 -0
- package/dist/types/components/controls/Select/Select.d.ts +29 -0
- package/dist/types/components/controls/Select/Select.types.d.ts +131 -0
- package/dist/types/components/controls/Slider/Slider.d.ts +178 -0
- package/dist/types/components/controls/TreeView/TreeView.d.ts +27 -0
- package/dist/types/components/controls/TreeView/TreeView.types.d.ts +135 -0
- package/dist/types/components/controls/VectorInput/VectorInput.d.ts +26 -0
- package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +158 -0
- 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/PropertyInspector/PropertyGroup.d.ts +6 -0
- package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +238 -0
- package/dist/types/components/editor/PropertyInspector/PropertyPanel.d.ts +6 -0
- package/dist/types/components/editor/PropertyInspector/PropertyRow.d.ts +6 -0
- package/dist/types/components/editor/PropertyInspector/PropertySection.d.ts +6 -0
- package/dist/types/components/editor/PropertyInspector/usePropertyUndo.d.ts +9 -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/feedback/Dialog/Dialog.d.ts +25 -0
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +55 -0
- package/dist/types/components/feedback/Dialog/DialogBody.d.ts +16 -0
- package/dist/types/components/feedback/Dialog/DialogClose.d.ts +21 -0
- package/dist/types/components/feedback/Dialog/DialogFooter.d.ts +17 -0
- package/dist/types/components/feedback/Dialog/DialogHeader.d.ts +17 -0
- package/dist/types/components/feedback/Toast/Toast.types.d.ts +39 -0
- package/dist/types/components/feedback/Toast/ToastProvider.d.ts +19 -0
- package/dist/types/components/feedback/Toast/useToast.d.ts +22 -0
- package/dist/types/components/form/FormHelperText.d.ts +319 -0
- package/dist/types/components/form/FormLabel.d.ts +329 -0
- package/dist/types/components/form/InputWrapper.d.ts +344 -0
- package/dist/types/components/layout/Accordion/Accordion.d.ts +23 -0
- package/dist/types/components/layout/Accordion/Accordion.types.d.ts +109 -0
- package/dist/types/components/layout/Accordion/AccordionContent.d.ts +6 -0
- package/dist/types/components/layout/Accordion/AccordionItem.d.ts +6 -0
- package/dist/types/components/layout/Accordion/AccordionTrigger.d.ts +6 -0
- package/dist/types/components/layout/Flex/Flex.d.ts +215 -0
- package/dist/types/components/layout/Grid/Grid.d.ts +113 -0
- package/dist/types/components/layout/PanelSurface/PanelSurface.d.ts +1148 -0
- package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +64 -0
- package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts +6 -0
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +93 -0
- package/dist/types/components/layout/Spacer/Spacer.d.ts +327 -0
- package/dist/types/components/layout/SplitPane/SplitPane.d.ts +21 -0
- package/dist/types/components/layout/SplitPane/SplitPane.types.d.ts +87 -0
- package/dist/types/components/layout/SplitPane/SplitPanePanel.d.ts +20 -0
- package/dist/types/components/layout/Stack/Stack.d.ts +166 -0
- package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +6 -0
- package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +74 -0
- package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +5 -0
- package/dist/types/components/navigation/Menu/Menu.d.ts +42 -0
- package/dist/types/components/navigation/Menu/Menu.types.d.ts +94 -0
- package/dist/types/components/navigation/Menu/useMenu.d.ts +16 -0
- package/dist/types/components/navigation/Tabs/Tab.d.ts +6 -0
- package/dist/types/components/navigation/Tabs/TabList.d.ts +6 -0
- package/dist/types/components/navigation/Tabs/TabPanel.d.ts +6 -0
- package/dist/types/components/navigation/Tabs/Tabs.d.ts +23 -0
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +117 -0
- package/dist/types/components/primitives/Button/Button.d.ts +404 -0
- package/dist/types/components/primitives/Checkbox/Checkbox.d.ts +20 -0
- package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +156 -0
- package/dist/types/components/primitives/Checkbox/CheckboxGroup.d.ts +25 -0
- package/dist/types/components/primitives/Collapsible/Collapsible.d.ts +6 -0
- package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +28 -0
- package/dist/types/components/primitives/Icon/Icon.d.ts +33 -0
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +361 -0
- package/dist/types/components/primitives/Input/Input.d.ts +139 -0
- package/dist/types/components/primitives/Paper/Paper.d.ts +421 -0
- package/dist/types/components/primitives/Popover/Popover.d.ts +25 -0
- package/dist/types/components/primitives/Popover/Popover.types.d.ts +99 -0
- package/dist/types/components/primitives/Popover/PopoverClose.d.ts +6 -0
- package/dist/types/components/primitives/Popover/PopoverContent.d.ts +6 -0
- package/dist/types/components/primitives/Popover/PopoverTrigger.d.ts +10 -0
- package/dist/types/components/primitives/Switch/Switch.d.ts +83 -0
- package/dist/types/components/primitives/Text/Text.d.ts +444 -0
- package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +179 -0
- package/dist/types/components/primitives/Tooltip/types.d.ts +82 -0
- package/dist/types/components/primitives/canvas/canvas.types.d.ts +27 -0
- package/dist/types/components/shell/AppShell/AppShell.d.ts +1431 -0
- package/dist/types/components/shell/AppShell/AppShell.types.d.ts +48 -0
- package/dist/types/components/shell/FloatingPanel/FloatingPanel.d.ts +7 -0
- package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +61 -0
- package/dist/types/components/shell/MenuBar/MenuBar.d.ts +1435 -0
- package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +48 -0
- package/dist/types/components/shell/StatusBar/StatusBar.d.ts +864 -0
- package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +40 -0
- package/dist/types/components/shell/Toolbar/Toolbar.d.ts +1721 -0
- package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +59 -0
- package/dist/types/index.d.ts +124 -0
- package/dist/types/palettes.d.ts +3 -0
- package/dist/types/theme/ThemeProvider.d.ts +18 -0
- package/dist/types/theme/VanillaThemeProvider.d.ts +34 -0
- package/dist/types/theme/contract.css.d.ts +164 -0
- package/dist/types/theme/darkTheme.css.d.ts +151 -0
- package/dist/types/types/common.d.ts +17 -0
- package/dist/types/types/utilities.d.ts +72 -0
- package/dist/types/utils/cn.d.ts +3 -0
- package/dist/types/utils/cx.d.ts +11 -0
- package/package.json +55 -35
- package/dist/index.d.ts +0 -12
- package/dist/index.esm.js +0 -13962
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js +0 -14048
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
// src/utils/mathExpression.ts
|
|
2
|
+
/**
|
|
3
|
+
* Blocked identifiers that must be rejected before evaluation.
|
|
4
|
+
* Defense-in-depth layer to prevent prototype pollution or code execution
|
|
5
|
+
* via dangerous JavaScript identifiers that pass character validation.
|
|
6
|
+
*/
|
|
7
|
+
const BLOCKED_IDENTIFIERS = new Set([
|
|
8
|
+
'constructor',
|
|
9
|
+
'prototype',
|
|
10
|
+
'__proto__',
|
|
11
|
+
'this',
|
|
12
|
+
'self',
|
|
13
|
+
'window',
|
|
14
|
+
'document',
|
|
15
|
+
'globalThis',
|
|
16
|
+
'process',
|
|
17
|
+
'require',
|
|
18
|
+
'import',
|
|
19
|
+
'module',
|
|
20
|
+
'exports',
|
|
21
|
+
'eval',
|
|
22
|
+
'Function',
|
|
23
|
+
'Object',
|
|
24
|
+
'Array',
|
|
25
|
+
'Reflect',
|
|
26
|
+
'Proxy',
|
|
27
|
+
'Symbol',
|
|
28
|
+
]);
|
|
29
|
+
/**
|
|
30
|
+
* Mathematical constants available in expressions
|
|
31
|
+
*/
|
|
32
|
+
const MATH_CONSTANTS = {
|
|
33
|
+
pi: Math.PI,
|
|
34
|
+
e: Math.E,
|
|
35
|
+
tau: 2 * Math.PI,
|
|
36
|
+
phi: (1 + Math.sqrt(5)) / 2, // Golden ratio
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Mathematical functions available in expressions
|
|
40
|
+
*/
|
|
41
|
+
const MATH_FUNCTIONS = {
|
|
42
|
+
// Trigonometric functions
|
|
43
|
+
sin: Math.sin,
|
|
44
|
+
cos: Math.cos,
|
|
45
|
+
tan: Math.tan,
|
|
46
|
+
asin: Math.asin,
|
|
47
|
+
acos: Math.acos,
|
|
48
|
+
atan: Math.atan,
|
|
49
|
+
// Logarithmic and exponential
|
|
50
|
+
log: Math.log,
|
|
51
|
+
log10: Math.log10,
|
|
52
|
+
log2: Math.log2,
|
|
53
|
+
exp: Math.exp,
|
|
54
|
+
// Power and root functions
|
|
55
|
+
sqrt: Math.sqrt,
|
|
56
|
+
cbrt: Math.cbrt,
|
|
57
|
+
// Rounding functions
|
|
58
|
+
floor: Math.floor,
|
|
59
|
+
ceil: Math.ceil,
|
|
60
|
+
round: Math.round,
|
|
61
|
+
// Other useful functions
|
|
62
|
+
abs: Math.abs,
|
|
63
|
+
sign: Math.sign,
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Sanitizes mathematical expression by removing dangerous patterns
|
|
67
|
+
* and normalizing the input for safe evaluation.
|
|
68
|
+
*/
|
|
69
|
+
function sanitizeExpression(expression) {
|
|
70
|
+
// Remove whitespace
|
|
71
|
+
let sanitized = expression.replace(/\s+/g, '');
|
|
72
|
+
// Convert common alternative notations
|
|
73
|
+
sanitized = sanitized.replace(/×/g, '*'); // Multiplication symbol
|
|
74
|
+
sanitized = sanitized.replace(/÷/g, '/'); // Division symbol
|
|
75
|
+
sanitized = sanitized.replace(/\^/g, '**'); // Power operator
|
|
76
|
+
// Ensure proper decimal notation
|
|
77
|
+
sanitized = sanitized.replace(/,/g, '.'); // European decimal notation
|
|
78
|
+
return sanitized;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Validates that expression contains only allowed characters and patterns
|
|
82
|
+
*/
|
|
83
|
+
function isValidExpression(expression) {
|
|
84
|
+
// Allow numbers, operators, parentheses, dots, and known constants/functions
|
|
85
|
+
const allowedPattern = /^[0-9+\-*/().a-zA-Z_]+$/;
|
|
86
|
+
if (!allowedPattern.test(expression)) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
// Check for balanced parentheses
|
|
90
|
+
let depth = 0;
|
|
91
|
+
for (const char of expression) {
|
|
92
|
+
if (char === '(')
|
|
93
|
+
depth++;
|
|
94
|
+
if (char === ')')
|
|
95
|
+
depth--;
|
|
96
|
+
if (depth < 0)
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return depth === 0;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Checks whether the expression contains any blocked identifiers or
|
|
103
|
+
* unknown alphabetic tokens. All word tokens must be either a known
|
|
104
|
+
* constant, a known function name, or part of "Math" (introduced by
|
|
105
|
+
* replaceConstantsAndFunctions). Any unrecognized identifier is rejected.
|
|
106
|
+
*/
|
|
107
|
+
function containsBlockedIdentifiers(expression) {
|
|
108
|
+
const wordTokens = expression.match(/[a-zA-Z_][a-zA-Z0-9_]*/g);
|
|
109
|
+
if (!wordTokens)
|
|
110
|
+
return false;
|
|
111
|
+
const allowedTokens = new Set([
|
|
112
|
+
...Object.keys(MATH_CONSTANTS),
|
|
113
|
+
...Object.keys(MATH_FUNCTIONS),
|
|
114
|
+
]);
|
|
115
|
+
for (const token of wordTokens) {
|
|
116
|
+
if (BLOCKED_IDENTIFIERS.has(token))
|
|
117
|
+
return true;
|
|
118
|
+
if (!allowedTokens.has(token))
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Replaces mathematical constants and functions in the expression
|
|
125
|
+
* with their JavaScript equivalents for safe evaluation.
|
|
126
|
+
*/
|
|
127
|
+
function replaceConstantsAndFunctions(expression) {
|
|
128
|
+
let result = expression;
|
|
129
|
+
// Replace constants
|
|
130
|
+
Object.entries(MATH_CONSTANTS).forEach(([name, value]) => {
|
|
131
|
+
const regex = new RegExp(`\\b${name}\\b`, 'g');
|
|
132
|
+
result = result.replace(regex, value.toString());
|
|
133
|
+
});
|
|
134
|
+
// Replace functions
|
|
135
|
+
Object.entries(MATH_FUNCTIONS).forEach(([name]) => {
|
|
136
|
+
const regex = new RegExp(`\\b${name}\\(`, 'g');
|
|
137
|
+
result = result.replace(regex, `Math.${name}(`);
|
|
138
|
+
});
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Safely evaluates a mathematical expression using Function constructor
|
|
143
|
+
* instead of eval() for better security.
|
|
144
|
+
*/
|
|
145
|
+
function safeEvaluate(expression) {
|
|
146
|
+
// Create a function that returns the expression result
|
|
147
|
+
// This is safer than eval() as it doesn't have access to the scope
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
149
|
+
const func = new Function('Math', `"use strict"; return (${expression});`);
|
|
150
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
151
|
+
return func(Math);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Evaluates a mathematical expression and returns the result.
|
|
155
|
+
*
|
|
156
|
+
* Supports:
|
|
157
|
+
* - Basic arithmetic: +, -, *, /, **, ()
|
|
158
|
+
* - Mathematical constants: pi, e, tau, phi
|
|
159
|
+
* - Mathematical functions: sin, cos, tan, sqrt, log, etc.
|
|
160
|
+
* - Alternative notations: × (multiplication), ÷ (division), ^ (power)
|
|
161
|
+
* - European decimal notation: , instead of .
|
|
162
|
+
*
|
|
163
|
+
* @param expression The mathematical expression to evaluate
|
|
164
|
+
* @returns Evaluation result with success status and value or error
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* evaluateExpression("3 + 4 * 2") // { success: true, value: 11 }
|
|
169
|
+
* evaluateExpression("sqrt(16)") // { success: true, value: 4 }
|
|
170
|
+
* evaluateExpression("pi * 2") // { success: true, value: 6.283... }
|
|
171
|
+
* evaluateExpression("2 ^ 3") // { success: true, value: 8 }
|
|
172
|
+
* evaluateExpression("invalid") // { success: false, error: "..." }
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
function evaluateExpression(expression) {
|
|
176
|
+
const originalExpression = expression;
|
|
177
|
+
try {
|
|
178
|
+
// Handle empty or whitespace-only expressions
|
|
179
|
+
if (!expression?.trim()) {
|
|
180
|
+
return {
|
|
181
|
+
success: false,
|
|
182
|
+
error: 'Expression cannot be empty',
|
|
183
|
+
expression: originalExpression,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// Sanitize the expression
|
|
187
|
+
const sanitized = sanitizeExpression(expression);
|
|
188
|
+
// Validate the expression
|
|
189
|
+
if (!isValidExpression(sanitized)) {
|
|
190
|
+
return {
|
|
191
|
+
success: false,
|
|
192
|
+
error: 'Expression contains invalid characters or syntax',
|
|
193
|
+
expression: originalExpression,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Check for blocked or unknown identifiers (defense-in-depth)
|
|
197
|
+
if (containsBlockedIdentifiers(sanitized)) {
|
|
198
|
+
return {
|
|
199
|
+
success: false,
|
|
200
|
+
error: 'Expression contains invalid characters or syntax',
|
|
201
|
+
expression: originalExpression,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// Replace constants and functions
|
|
205
|
+
const processed = replaceConstantsAndFunctions(sanitized);
|
|
206
|
+
// Evaluate the expression
|
|
207
|
+
const result = safeEvaluate(processed);
|
|
208
|
+
// Check if result is a valid number
|
|
209
|
+
if (typeof result !== 'number' || !isFinite(result)) {
|
|
210
|
+
return {
|
|
211
|
+
success: false,
|
|
212
|
+
error: 'Expression does not evaluate to a valid number',
|
|
213
|
+
expression: originalExpression,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
success: true,
|
|
218
|
+
value: result,
|
|
219
|
+
expression: originalExpression,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
225
|
+
error: error instanceof Error ? error.message : 'Unknown evaluation error',
|
|
226
|
+
expression: originalExpression,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Checks if a string looks like a mathematical expression
|
|
232
|
+
* (contains operators, functions, or constants)
|
|
233
|
+
*/
|
|
234
|
+
function isExpression(input) {
|
|
235
|
+
const trimmed = input.trim();
|
|
236
|
+
// Check for mathematical operators
|
|
237
|
+
if (/[+\-*/^×÷()]/.test(trimmed)) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
// Check for mathematical functions
|
|
241
|
+
const functionNames = Object.keys(MATH_FUNCTIONS);
|
|
242
|
+
const functionRegex = new RegExp(`\\b(${functionNames.join('|')})\\(`, 'i');
|
|
243
|
+
if (functionRegex.test(trimmed)) {
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
// Check for mathematical constants
|
|
247
|
+
const constantNames = Object.keys(MATH_CONSTANTS);
|
|
248
|
+
const constantRegex = new RegExp(`\\b(${constantNames.join('|')})\\b`, 'i');
|
|
249
|
+
if (constantRegex.test(trimmed)) {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Attempts to parse a string as either a direct number or mathematical expression
|
|
256
|
+
*/
|
|
257
|
+
function parseNumericInput(input) {
|
|
258
|
+
const trimmed = input.trim();
|
|
259
|
+
// Try direct number parsing first (more efficient)
|
|
260
|
+
const directNumber = parseFloat(trimmed);
|
|
261
|
+
if (!isNaN(directNumber) &&
|
|
262
|
+
isFinite(directNumber) &&
|
|
263
|
+
trimmed === directNumber.toString()) {
|
|
264
|
+
return {
|
|
265
|
+
success: true,
|
|
266
|
+
value: directNumber,
|
|
267
|
+
expression: input,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// Fall back to expression evaluation
|
|
271
|
+
return evaluateExpression(input);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export { evaluateExpression, isExpression, parseNumericInput };
|
|
275
|
+
//# sourceMappingURL=mathExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mathExpression.js","sources":["../../../../src/utils/mathExpression.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AA2BA;;;;AAIG;AACH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACvD,aAAa;IACb,WAAW;IACX,WAAW;IACX,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,OAAO;IACP,QAAQ;AACT,CAAA,CAAC;AAEF;;AAEG;AACH,MAAM,cAAc,GAA2B;IAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,CAAC,EAAE,IAAI,CAAC,CAAC;AACT,IAAA,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;AAChB,IAAA,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;CAC5B;AAED;;AAEG;AACH,MAAM,cAAc,GAA0C;;IAE5D,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI,EAAE,IAAI,CAAC,IAAI;;IAGf,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,GAAG,EAAE,IAAI,CAAC,GAAG;;IAGb,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI,EAAE,IAAI,CAAC,IAAI;;IAGf,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,KAAK,EAAE,IAAI,CAAC,KAAK;;IAGjB,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,IAAI,EAAE,IAAI,CAAC,IAAI;CAChB;AAED;;;AAGG;AACH,SAAS,kBAAkB,CAAC,UAAkB,EAAA;;IAE5C,IAAI,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;;IAG9C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;;IAG3C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEzC,IAAA,OAAO,SAAS;AAClB;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAA;;IAE3C,MAAM,cAAc,GAAG,yBAAyB;IAEhD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,QAAA,OAAO,KAAK;IACd;;IAGA,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAC7B,IAAI,IAAI,KAAK,GAAG;AAAE,YAAA,KAAK,EAAE;QACzB,IAAI,IAAI,KAAK,GAAG;AAAE,YAAA,KAAK,EAAE;QACzB,IAAI,KAAK,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;IAC7B;IAEA,OAAO,KAAK,KAAK,CAAC;AACpB;AAEA;;;;;AAKG;AACH,SAAS,0BAA0B,CAAC,UAAkB,EAAA;IACpD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC;AAC9D,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,KAAK;AAE7B,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;AAC5B,QAAA,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9B,QAAA,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/B,KAAA,CAAC;AAEF,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;AAC9B,QAAA,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AAC/C,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;IAC5C;AAEA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACH,SAAS,4BAA4B,CAAC,UAAkB,EAAA;IACtD,IAAI,MAAM,GAAG,UAAU;;AAGvB,IAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAI;QACvD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,CAAK,EAAE,GAAG,CAAC;AAC9C,QAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClD,IAAA,CAAC,CAAC;;AAGF,IAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAI;QAChD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,CAAK,EAAE,GAAG,CAAC;QAC9C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAA,CAAG,CAAC;AACjD,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;AAEA;;;AAGG;AAEH,SAAS,YAAY,CAAC,UAAkB,EAAA;;;;IAKtC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAA,sBAAA,EAAyB,UAAU,CAAA,EAAA,CAAI,CAAC;;AAG1E,IAAA,OAAO,IAAI,CAAC,IAAI,CAAW;AAC7B;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACG,SAAU,kBAAkB,CAAC,UAAkB,EAAA;IACnD,MAAM,kBAAkB,GAAG,UAAU;AAErC,IAAA,IAAI;;AAEF,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;YACvB,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,4BAA4B;AACnC,gBAAA,UAAU,EAAE,kBAAkB;aAC/B;QACH;;AAGA,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC;;AAGhD,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;YACjC,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,kDAAkD;AACzD,gBAAA,UAAU,EAAE,kBAAkB;aAC/B;QACH;;AAGA,QAAA,IAAI,0BAA0B,CAAC,SAAS,CAAC,EAAE;YACzC,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,kDAAkD;AACzD,gBAAA,UAAU,EAAE,kBAAkB;aAC/B;QACH;;AAGA,QAAA,MAAM,SAAS,GAAG,4BAA4B,CAAC,SAAS,CAAC;;AAGzD,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;;QAGtC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACnD,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,gDAAgD;AACvD,gBAAA,UAAU,EAAE,kBAAkB;aAC/B;QACH;QAEA,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,UAAU,EAAE,kBAAkB;SAC/B;IACH;IAAE,OAAO,KAAK,EAAE;QACd,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EACH,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,0BAA0B;AACrE,YAAA,UAAU,EAAE,kBAAkB;SAC/B;IACH;AACF;AAEA;;;AAGG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;AACxC,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;;AAG5B,IAAA,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;;IAGA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AACjD,IAAA,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,IAAA,CAAM,EAAE,GAAG,CAAC;AAC3E,IAAA,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,IAAI;IACb;;IAGA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AACjD,IAAA,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,IAAA,CAAM,EAAE,GAAG,CAAC;AAC3E,IAAA,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,KAAK;AACd;AAEA;;AAEG;AACG,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC7C,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;;AAG5B,IAAA,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC;AACxC,IAAA,IACE,CAAC,KAAK,CAAC,YAAY,CAAC;QACpB,QAAQ,CAAC,YAAY,CAAC;AACtB,QAAA,OAAO,KAAK,YAAY,CAAC,QAAQ,EAAE,EACnC;QACA,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,UAAU,EAAE,KAAK;SAClB;IACH;;AAGA,IAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAClC;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clamps a value between min and max bounds
|
|
3
|
+
*/
|
|
4
|
+
function clamp(value, min, max) {
|
|
5
|
+
return Math.min(Math.max(value, min), max);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Rounds a number to specified decimal places
|
|
9
|
+
*/
|
|
10
|
+
function roundToPrecision(value, precision) {
|
|
11
|
+
if (precision === undefined)
|
|
12
|
+
return value;
|
|
13
|
+
const factor = Math.pow(10, precision);
|
|
14
|
+
return Math.round(value * factor) / factor;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { clamp, roundToPrecision };
|
|
18
|
+
//# sourceMappingURL=mathUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mathUtils.js","sources":["../../../../src/utils/mathUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;SACa,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAC3D,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;AAC5C;AAEA;;AAEG;AACG,SAAU,gBAAgB,CAAC,KAAa,EAAE,SAAkB,EAAA;IAChE,IAAI,SAAS,KAAK,SAAS;AAAE,QAAA,OAAO,KAAK;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;AAC5C;;;;"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
import { BaseComponent, Size } from '../../../types/common.js';
|
|
4
|
+
import { Point2D, CanvasBackgroundInfo } from '../../primitives/canvas/canvas.types.js';
|
|
5
|
+
|
|
6
|
+
type CartesianPickerSize = Size;
|
|
7
|
+
interface CartesianPickerBaseProps extends Omit<BaseComponent, 'onChange' | 'value' | 'defaultValue'> {
|
|
8
|
+
/**
|
|
9
|
+
* Current point value (controlled)
|
|
10
|
+
*/
|
|
11
|
+
value?: Point2D;
|
|
12
|
+
/**
|
|
13
|
+
* Default point value (uncontrolled)
|
|
14
|
+
* @default { x: 0, y: 0 }
|
|
15
|
+
*/
|
|
16
|
+
defaultValue?: Point2D;
|
|
17
|
+
/**
|
|
18
|
+
* Domain range for X axis
|
|
19
|
+
* @default [-1, 1]
|
|
20
|
+
*/
|
|
21
|
+
domainX?: [number, number];
|
|
22
|
+
/**
|
|
23
|
+
* Domain range for Y axis
|
|
24
|
+
* @default [-1, 1]
|
|
25
|
+
*/
|
|
26
|
+
domainY?: [number, number];
|
|
27
|
+
/**
|
|
28
|
+
* Whether to show grid lines
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
showGrid?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Grid subdivision count (lines between domain bounds)
|
|
34
|
+
* @default 4
|
|
35
|
+
*/
|
|
36
|
+
gridSubdivisions?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to show X/Y axis value labels on the grid
|
|
39
|
+
* @default true
|
|
40
|
+
*/
|
|
41
|
+
showAxisLabels?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether to draw origin axes (X=0, Y=0) with emphasis.
|
|
44
|
+
* Useful when domain is symmetric around origin.
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
showOriginAxes?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether to draw crosshair lines from point to edges
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
showCrosshair?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Crosshair line style
|
|
55
|
+
* @default "dashed"
|
|
56
|
+
*/
|
|
57
|
+
crosshairStyle?: 'solid' | 'dashed';
|
|
58
|
+
/**
|
|
59
|
+
* X axis name label (e.g. "Pan", "U", "X")
|
|
60
|
+
*/
|
|
61
|
+
labelX?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Y axis name label (e.g. "Tilt", "V", "Y")
|
|
64
|
+
*/
|
|
65
|
+
labelY?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Point marker radius in pixels
|
|
68
|
+
* @default 6
|
|
69
|
+
*/
|
|
70
|
+
markerRadius?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Snap to grid subdivisions while dragging (Ctrl toggles)
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
snapToGrid?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Discrete step for value snapping. Can be a single value for both axes
|
|
78
|
+
* or [stepX, stepY] for per-axis steps.
|
|
79
|
+
* Applied instead of grid snap when provided.
|
|
80
|
+
*/
|
|
81
|
+
step?: number | [number, number];
|
|
82
|
+
/**
|
|
83
|
+
* Whether to clamp the point within domain bounds
|
|
84
|
+
* @default true
|
|
85
|
+
*/
|
|
86
|
+
clampToRange?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Number format precision for displayed values
|
|
89
|
+
* @default 2
|
|
90
|
+
*/
|
|
91
|
+
precision?: number;
|
|
92
|
+
/**
|
|
93
|
+
* Width of the picker in pixels
|
|
94
|
+
* @default 200
|
|
95
|
+
*/
|
|
96
|
+
width?: number;
|
|
97
|
+
/**
|
|
98
|
+
* Height of the picker in pixels.
|
|
99
|
+
* For square pickers (most common), set equal to width.
|
|
100
|
+
* @default 200
|
|
101
|
+
*/
|
|
102
|
+
height?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Whether the picker fills its parent container.
|
|
105
|
+
* Overrides width/height — uses ResizeObserver.
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
responsive?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Component size — affects label/value display sizing
|
|
111
|
+
* @default "md"
|
|
112
|
+
*/
|
|
113
|
+
size?: CartesianPickerSize;
|
|
114
|
+
/**
|
|
115
|
+
* Whether the picker is disabled
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
disabled?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Whether the picker is read-only (can view but not edit)
|
|
121
|
+
* @default false
|
|
122
|
+
*/
|
|
123
|
+
readOnly?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Callback when point changes.
|
|
126
|
+
* Fires continuously during drag.
|
|
127
|
+
*/
|
|
128
|
+
onChange?: (point: Point2D) => void;
|
|
129
|
+
/**
|
|
130
|
+
* Callback when editing is committed (pointer up, click).
|
|
131
|
+
* Use for undo system integration.
|
|
132
|
+
*/
|
|
133
|
+
onChangeComplete?: (point: Point2D) => void;
|
|
134
|
+
/**
|
|
135
|
+
* Custom background renderer — called after clearing the canvas
|
|
136
|
+
* but before drawing the grid.
|
|
137
|
+
*
|
|
138
|
+
* Use for heatmaps, gradients, or images behind the picker.
|
|
139
|
+
*/
|
|
140
|
+
renderBackground?: (ctx: CanvasRenderingContext2D, info: CanvasBackgroundInfo) => void;
|
|
141
|
+
/**
|
|
142
|
+
* Render prop for custom content below the canvas.
|
|
143
|
+
* Receives the current point value for display.
|
|
144
|
+
*/
|
|
145
|
+
renderBottomBar?: (info: CartesianPickerInfo) => React.ReactNode;
|
|
146
|
+
}
|
|
147
|
+
type CartesianPickerProps = Prettify<CartesianPickerBaseProps>;
|
|
148
|
+
interface CartesianPickerInfo {
|
|
149
|
+
/** Current point value */
|
|
150
|
+
point: Point2D;
|
|
151
|
+
/** Whether the picker is disabled */
|
|
152
|
+
disabled: boolean;
|
|
153
|
+
/** Whether the picker is read-only */
|
|
154
|
+
readOnly: boolean;
|
|
155
|
+
/** Whether the user is currently dragging */
|
|
156
|
+
isDragging: boolean;
|
|
157
|
+
/** Domain X range */
|
|
158
|
+
domainX: [number, number];
|
|
159
|
+
/** Domain Y range */
|
|
160
|
+
domainY: [number, number];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export type { CartesianPickerBaseProps, CartesianPickerInfo, CartesianPickerProps, CartesianPickerSize };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PaletteColor } from './palettes/material.js';
|
|
3
|
+
|
|
4
|
+
interface ColorPaletteProps {
|
|
5
|
+
palette: PaletteColor[];
|
|
6
|
+
currentColor: string;
|
|
7
|
+
onSelect: (color: string) => void;
|
|
8
|
+
/** Title displayed in the collapsible header @default "Palette" */
|
|
9
|
+
title?: string;
|
|
10
|
+
/** Whether the palette starts expanded @default false */
|
|
11
|
+
defaultExpanded?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const ColorPalette: React.FC<ColorPaletteProps>;
|
|
14
|
+
|
|
15
|
+
export { ColorPalette };
|
|
16
|
+
export type { ColorPaletteProps };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
2
|
+
import { BaseComponent, Size } from '../../../types/common.js';
|
|
3
|
+
import { ColorFormat as ColorFormat$1 } from './colorUtils.js';
|
|
4
|
+
import { Palette, PaletteColor } from './palettes/material.js';
|
|
5
|
+
export { PaletteShade } from './palettes/material.js';
|
|
6
|
+
|
|
7
|
+
type ColorFormat = ColorFormat$1;
|
|
8
|
+
type ColorPickerSize = Size;
|
|
9
|
+
type ColorInputMode = 'hex' | 'rgb' | 'hsl';
|
|
10
|
+
interface ColorPreset {
|
|
11
|
+
color: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface ColorPickerBaseProps extends Omit<BaseComponent, 'onChange' | 'value' | 'defaultValue'> {
|
|
16
|
+
/**
|
|
17
|
+
* Current color value (controlled).
|
|
18
|
+
* Accepts any valid CSS color string.
|
|
19
|
+
*/
|
|
20
|
+
value?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Default color value (uncontrolled)
|
|
23
|
+
* @default "#007acc"
|
|
24
|
+
*/
|
|
25
|
+
defaultValue?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Output format for onChange
|
|
28
|
+
* @default "hex"
|
|
29
|
+
*/
|
|
30
|
+
format?: ColorFormat;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to show the alpha channel control
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
showAlpha?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Available input modes
|
|
38
|
+
* @default ['hex', 'rgb', 'hsl']
|
|
39
|
+
*/
|
|
40
|
+
inputModes?: ColorInputMode[];
|
|
41
|
+
/**
|
|
42
|
+
* Default input mode
|
|
43
|
+
* @default "hex"
|
|
44
|
+
*/
|
|
45
|
+
defaultInputMode?: ColorInputMode;
|
|
46
|
+
/**
|
|
47
|
+
* Preset color palette
|
|
48
|
+
*/
|
|
49
|
+
presets?: ColorPreset[];
|
|
50
|
+
/**
|
|
51
|
+
* Swatch trigger size
|
|
52
|
+
* @default "md"
|
|
53
|
+
*/
|
|
54
|
+
size?: ColorPickerSize;
|
|
55
|
+
/**
|
|
56
|
+
* Shape of the swatch trigger
|
|
57
|
+
* @default "square"
|
|
58
|
+
*/
|
|
59
|
+
swatchShape?: 'square' | 'circle';
|
|
60
|
+
/**
|
|
61
|
+
* Label displayed next to the swatch
|
|
62
|
+
*/
|
|
63
|
+
label?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the picker is disabled
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Whether the component is inline (no popover)
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
73
|
+
inline?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Width of the picker panel in pixels
|
|
76
|
+
* @default 240
|
|
77
|
+
*/
|
|
78
|
+
pickerWidth?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Callback when color changes (continuous)
|
|
81
|
+
*/
|
|
82
|
+
onChange?: (color: string) => void;
|
|
83
|
+
/**
|
|
84
|
+
* Callback when color change is committed (drag end)
|
|
85
|
+
*/
|
|
86
|
+
onChangeComplete?: (color: string) => void;
|
|
87
|
+
/**
|
|
88
|
+
* Whether to show the EyeDropper button (Chromium-only).
|
|
89
|
+
* Hidden automatically if browser doesn't support the EyeDropper API.
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
showEyeDropper?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Built-in color palette or custom palette data.
|
|
95
|
+
* - `'material'` — Material Design colors (19 hues × 10 shades)
|
|
96
|
+
* - `'tailwind'` — Tailwind CSS colors (22 hues × 11 shades)
|
|
97
|
+
* - `'pastel'` — Soft pastel colors
|
|
98
|
+
* - `'earth'` — Natural earth tones
|
|
99
|
+
* - `'neon'` — High-saturation neon colors
|
|
100
|
+
* - `'monochrome'` — Neutral, warm, and cool grays
|
|
101
|
+
* - `'skin-tones'` — Portrait/illustration skin palette
|
|
102
|
+
* - `'vintage'` — Desaturated retro film colors
|
|
103
|
+
* - `Palette` — custom palette with name
|
|
104
|
+
* - `PaletteColor[]` — custom palette data (legacy)
|
|
105
|
+
*/
|
|
106
|
+
palette?: 'material' | 'tailwind' | 'pastel' | 'earth' | 'neon' | 'monochrome' | 'skin-tones' | 'vintage' | Palette | PaletteColor[];
|
|
107
|
+
}
|
|
108
|
+
type ColorPickerProps = Prettify<ColorPickerBaseProps>;
|
|
109
|
+
interface ColorSwatchProps extends BaseComponent<HTMLButtonElement> {
|
|
110
|
+
color: string;
|
|
111
|
+
size?: ColorPickerSize;
|
|
112
|
+
shape?: 'square' | 'circle';
|
|
113
|
+
disabled?: boolean;
|
|
114
|
+
onClick?: () => void;
|
|
115
|
+
'aria-label'?: string;
|
|
116
|
+
}
|
|
117
|
+
type ColorSwatchPublicProps = Prettify<ColorSwatchProps>;
|
|
118
|
+
|
|
119
|
+
export { Palette, PaletteColor };
|
|
120
|
+
export type { ColorFormat, ColorInputMode, ColorPickerBaseProps, ColorPickerProps, ColorPickerSize, ColorPreset, ColorSwatchProps, ColorSwatchPublicProps };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
import { BaseComponent, Size } from '../../../types/common.js';
|
|
4
|
+
|
|
5
|
+
interface EyeDropperBaseProps extends Omit<BaseComponent<HTMLButtonElement>, 'onChange'> {
|
|
6
|
+
/** Callback when a color is picked */
|
|
7
|
+
onColorPick?: (color: string) => void;
|
|
8
|
+
/** Button size @default "md" */
|
|
9
|
+
size?: Size;
|
|
10
|
+
/** Whether disabled @default false */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
type EyeDropperProps = Prettify<EyeDropperBaseProps>;
|
|
14
|
+
/**
|
|
15
|
+
* EyeDropper button that opens the native browser EyeDropper API
|
|
16
|
+
* to sample a color from anywhere on the screen.
|
|
17
|
+
*
|
|
18
|
+
* Renders nothing if the EyeDropper API is not available in the browser.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <EyeDropper onColorPick={(hex) => setColor(hex)} />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare const EyeDropper: React.FC<EyeDropperProps>;
|
|
26
|
+
|
|
27
|
+
export { EyeDropper };
|
|
28
|
+
export type { EyeDropperProps };
|