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
|
@@ -1,74 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
3
|
+
import { cx } from '../../../utils/cx.js';
|
|
4
|
+
import { assignInlineVars } from '../../../node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js';
|
|
5
|
+
import { gapVar, stackRecipe } from './Stack.css.js';
|
|
4
6
|
|
|
7
|
+
/** Base spacing unit in px */
|
|
8
|
+
const SPACING_UNIT = 4;
|
|
5
9
|
/**
|
|
6
|
-
* Calculate gap value based on spacing multiplier
|
|
10
|
+
* Calculate gap value based on spacing multiplier
|
|
7
11
|
*/
|
|
8
|
-
const getGapValue = (spacing,
|
|
12
|
+
const getGapValue = (spacing, customGap) => {
|
|
9
13
|
if (customGap !== undefined) {
|
|
10
14
|
return typeof customGap === 'number' ? `${customGap}px` : customGap;
|
|
11
15
|
}
|
|
12
|
-
return `${spacing *
|
|
16
|
+
return `${spacing * SPACING_UNIT}px`;
|
|
13
17
|
};
|
|
14
|
-
const StyledStack = styled.div `
|
|
15
|
-
/* Base stack container */
|
|
16
|
-
display: flex;
|
|
17
|
-
box-sizing: border-box;
|
|
18
|
-
|
|
19
|
-
/* Flex properties */
|
|
20
|
-
flex-direction: ${props => props.$direction};
|
|
21
|
-
flex-wrap: ${props => props.$wrap};
|
|
22
|
-
justify-content: ${props => props.$justify};
|
|
23
|
-
align-items: ${props => props.$align};
|
|
24
|
-
|
|
25
|
-
/* Gap between items */
|
|
26
|
-
gap: ${props => getGapValue(props.$spacing, props.theme, props.$customGap)};
|
|
27
|
-
|
|
28
|
-
/* Expand behavior based on direction */
|
|
29
|
-
${props => props.$expand && props.$direction === 'row' && 'width: 100%;'}
|
|
30
|
-
${props => props.$expand && props.$direction === 'column' && 'height: 100%;'}
|
|
31
|
-
|
|
32
|
-
/* Responsive direction changes */
|
|
33
|
-
${props => props.$sm &&
|
|
34
|
-
`
|
|
35
|
-
@media (min-width: 576px) {
|
|
36
|
-
flex-direction: ${props.$sm};
|
|
37
|
-
${props.$expand && props.$sm === 'row' ? 'width: 100%; height: auto;' : ''}
|
|
38
|
-
${props.$expand && props.$sm === 'column' ? 'height: 100%; width: auto;' : ''}
|
|
39
|
-
}
|
|
40
|
-
`}
|
|
41
|
-
|
|
42
|
-
${props => props.$md &&
|
|
43
|
-
`
|
|
44
|
-
@media (min-width: 768px) {
|
|
45
|
-
flex-direction: ${props.$md};
|
|
46
|
-
${props.$expand && props.$md === 'row' ? 'width: 100%; height: auto;' : ''}
|
|
47
|
-
${props.$expand && props.$md === 'column' ? 'height: 100%; width: auto;' : ''}
|
|
48
|
-
}
|
|
49
|
-
`}
|
|
50
|
-
|
|
51
|
-
${props => props.$lg &&
|
|
52
|
-
`
|
|
53
|
-
@media (min-width: 992px) {
|
|
54
|
-
flex-direction: ${props.$lg};
|
|
55
|
-
${props.$expand && props.$lg === 'row' ? 'width: 100%; height: auto;' : ''}
|
|
56
|
-
${props.$expand && props.$lg === 'column' ? 'height: 100%; width: auto;' : ''}
|
|
57
|
-
}
|
|
58
|
-
`}
|
|
59
|
-
|
|
60
|
-
${props => props.$xl &&
|
|
61
|
-
`
|
|
62
|
-
@media (min-width: 1200px) {
|
|
63
|
-
flex-direction: ${props.$xl};
|
|
64
|
-
${props.$expand && props.$xl === 'row' ? 'width: 100%; height: auto;' : ''}
|
|
65
|
-
${props.$expand && props.$xl === 'column' ? 'height: 100%; width: auto;' : ''}
|
|
66
|
-
}
|
|
67
|
-
`}
|
|
68
|
-
|
|
69
|
-
/* Custom CSS */
|
|
70
|
-
${props => processCss(props.$css, props.theme)}
|
|
71
|
-
`;
|
|
72
18
|
/**
|
|
73
19
|
* A flexible stacking component for arranging elements vertically or horizontally.
|
|
74
20
|
*
|
|
@@ -129,8 +75,33 @@ const StyledStack = styled.div `
|
|
|
129
75
|
* </Stack>
|
|
130
76
|
* ```
|
|
131
77
|
*/
|
|
132
|
-
const Stack = ({ children, direction = 'column', sm, md, lg, xl, wrap = 'nowrap', expand = false, spacing = 0, customGap, justify = 'flex-start', align = 'flex-start', className, testId,
|
|
133
|
-
|
|
78
|
+
const Stack = ({ children, direction = 'column', sm, md, lg, xl, wrap = 'nowrap', expand = false, spacing = 0, customGap, justify = 'flex-start', align = 'flex-start', className, testId, style, ref, ...htmlProps }) => {
|
|
79
|
+
const mergedStyle = {
|
|
80
|
+
...assignInlineVars({
|
|
81
|
+
[gapVar]: getGapValue(spacing, customGap),
|
|
82
|
+
}),
|
|
83
|
+
...style,
|
|
84
|
+
};
|
|
85
|
+
// Build data attributes for responsive direction overrides
|
|
86
|
+
const dataAttrs = {};
|
|
87
|
+
if (sm)
|
|
88
|
+
dataAttrs['data-sm-dir'] = sm;
|
|
89
|
+
if (md)
|
|
90
|
+
dataAttrs['data-md-dir'] = md;
|
|
91
|
+
if (lg)
|
|
92
|
+
dataAttrs['data-lg-dir'] = lg;
|
|
93
|
+
if (xl)
|
|
94
|
+
dataAttrs['data-xl-dir'] = xl;
|
|
95
|
+
if (expand)
|
|
96
|
+
dataAttrs['data-expand'] = 'true';
|
|
97
|
+
return (jsx("div", { ref: ref, className: cx(stackRecipe({
|
|
98
|
+
direction,
|
|
99
|
+
wrap,
|
|
100
|
+
justify,
|
|
101
|
+
align,
|
|
102
|
+
expandRow: expand && direction === 'row' ? true : undefined,
|
|
103
|
+
expandColumn: expand && direction === 'column' ? true : undefined,
|
|
104
|
+
}), className), "data-testid": testId, style: mergedStyle, ...dataAttrs, ...htmlProps, children: children }));
|
|
134
105
|
};
|
|
135
106
|
Stack.displayName = 'Stack';
|
|
136
107
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.js","sources":["../../../../../../src/components/layout/Stack/Stack.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"Stack.js","sources":["../../../../../../src/components/layout/Stack/Stack.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAyIA;AACA;AAEA;;AAEG;AACH;AAIE;AACE;;AAEF;AACF;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DG;AACI;AAmBL;AACE;;;AAGA;;;;AAKF;AAAQ;AACR;AAAQ;AACR;AAAQ;AACR;AAAQ;AACR;AAAY;;;;;;AAWJ;AACA;AACD;AAWT;AAEA;;"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import React, { useMemo } from 'react';
|
|
3
|
-
import { ContextMenu as ContextMenu$1 } from '@base-ui
|
|
4
|
+
import { ContextMenu as ContextMenu$1 } from '@base-ui/react/context-menu';
|
|
4
5
|
import '../../primitives/Icon/Icon.js';
|
|
5
6
|
import { CheckIcon } from '../../Icons/CheckIcon.js';
|
|
6
7
|
import { CircleIcon } from '../../Icons/CircleIcon.js';
|
|
7
8
|
import { Text } from '../../primitives/Text/Text.js';
|
|
9
|
+
import { cx } from '../../../utils/cx.js';
|
|
8
10
|
import { Menu } from '../Menu/Menu.js';
|
|
9
11
|
import { useMenu, createItemClickHandler } from '../Menu/useMenu.js';
|
|
10
12
|
import { renderItemWithSubmenu } from '../Menu/Menu.helpers.js';
|
|
11
|
-
import {
|
|
13
|
+
import { separatorStyle, menuContentStyle } from '../Menu/Menu.css.js';
|
|
12
14
|
import { useContextMenuTarget } from './useContextMenuTarget.js';
|
|
13
15
|
|
|
14
16
|
function ContextMenu({ config, selectedItems = {}, onChange, children, payload, checkboxIcon = jsx(CheckIcon, { size: "sm" }), radioIcon = jsx(CircleIcon, { size: "sm" }), disabled = false, className, style, testId, ref, ...rest }) {
|
|
@@ -26,7 +28,7 @@ function ContextMenu({ config, selectedItems = {}, onChange, children, payload,
|
|
|
26
28
|
});
|
|
27
29
|
const showSeparator = groupIndex < resolvedConfig.groups.length - 1 &&
|
|
28
30
|
resolvedConfig.groups.length > 1;
|
|
29
|
-
return (jsxs(React.Fragment, { children: [jsxs(ContextMenu$1.Group, { children: [group.label && (jsx(ContextMenu$1.GroupLabel, { children: jsx(Text, { variant: "caption", color: "muted", weight: "semibold", children: group.label }) })), group.itemSelectionType === 'radio' ? (jsx(ContextMenu$1.RadioGroup, { value: selectedItems[group.id]?.[0] ?? '', children: items })) : (items)] }), showSeparator && jsx(
|
|
31
|
+
return (jsxs(React.Fragment, { children: [jsxs(ContextMenu$1.Group, { children: [group.label && (jsx(ContextMenu$1.GroupLabel, { children: jsx(Text, { variant: "caption", color: "muted", weight: "semibold", children: group.label }) })), group.itemSelectionType === 'radio' ? (jsx(ContextMenu$1.RadioGroup, { value: selectedItems[group.id]?.[0] ?? '', children: items })) : (items)] }), showSeparator && (jsx(ContextMenu$1.Separator, { className: separatorStyle }))] }, group.id));
|
|
30
32
|
});
|
|
31
33
|
}, [
|
|
32
34
|
resolvedConfig,
|
|
@@ -38,7 +40,7 @@ function ContextMenu({ config, selectedItems = {}, onChange, children, payload,
|
|
|
38
40
|
selectedItems,
|
|
39
41
|
onChange,
|
|
40
42
|
]);
|
|
41
|
-
return (jsxs(ContextMenu$1.Root, { disabled: disabled, children: [jsx(ContextMenu$1.Trigger, { onContextMenuCapture: onContextMenuCapture, style: { display: 'contents' }, children: children }), jsx(ContextMenu$1.Portal, { children: jsx(ContextMenu$1.Positioner, { children: jsx(
|
|
43
|
+
return (jsxs(ContextMenu$1.Root, { disabled: disabled, children: [jsx(ContextMenu$1.Trigger, { onContextMenuCapture: onContextMenuCapture, style: { display: 'contents' }, children: children }), jsx(ContextMenu$1.Portal, { children: jsx(ContextMenu$1.Positioner, { children: jsx(ContextMenu$1.Popup, { ref: ref, className: cx(menuContentStyle, className), style: style, "data-testid": testId, ...rest, children: menuItems }) }) })] }));
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
export { ContextMenu };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenu.js","sources":["../../../../../../src/components/navigation/ContextMenu/ContextMenu.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"ContextMenu.js","sources":["../../../../../../src/components/navigation/ContextMenu/ContextMenu.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;AAcM;AAeJ;;AAMA;AACE;AACF;AAEA;;;AAGM;AACA;;AAkBF;;AAIE;;AA2BJ;AACF;;;;;;;;;AASC;AAED;AAuBF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContextMenuTarget.js","sources":["../../../../../../src/components/navigation/ContextMenu/useContextMenuTarget.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useContextMenuTarget.js","sources":["../../../../../../src/components/navigation/ContextMenu/useContextMenuTarget.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AASM;AAGJ;AACE;AACA;;AAED;;;AAKG;;;;AAIC;AACH;AAIF;AAEI;;AAGI;AACJ;AACF;AAIF;;;;AAKE;;AAEA;AACE;AAEA;AACF;;AAGA;;AAEA;AACF;;AAGE;AACE;;AAED;AACH;;;;;;AAOF;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import './../../../assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css';
|
|
2
|
+
|
|
3
|
+
var checkboxItemStyle = 'Menu_interactiveItemBase__1pkkb711';
|
|
4
|
+
var chevronIconStyle = 'Menu_chevronIconStyle__1pkkb717';
|
|
5
|
+
var iconContainerStyle = 'Menu_iconContainerStyle__1pkkb714';
|
|
6
|
+
var iconHiddenStyle = 'Menu_iconHiddenStyle__1pkkb716';
|
|
7
|
+
var iconVisibleStyle = 'Menu_iconVisibleStyle__1pkkb715';
|
|
8
|
+
var menuContentStyle = 'Menu_menuContentStyle__1pkkb710';
|
|
9
|
+
var menuItemContentStyle = 'Menu_menuItemContentStyle__1pkkb713';
|
|
10
|
+
var menuItemDisabledStyle = 'Menu_menuItemDisabledStyle__1pkkb712';
|
|
11
|
+
var menuItemStyle = 'Menu_interactiveItemBase__1pkkb711';
|
|
12
|
+
var radioItemStyle = 'Menu_interactiveItemBase__1pkkb711';
|
|
13
|
+
var separatorStyle = 'Menu_separatorStyle__1pkkb718';
|
|
14
|
+
|
|
15
|
+
export { checkboxItemStyle, chevronIconStyle, iconContainerStyle, iconHiddenStyle, iconVisibleStyle, menuContentStyle, menuItemContentStyle, menuItemDisabledStyle, menuItemStyle, radioItemStyle, separatorStyle };
|
|
16
|
+
//# sourceMappingURL=Menu.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1,27 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { Menu } from '@base-ui
|
|
3
|
+
import { Menu } from '@base-ui/react/menu';
|
|
3
4
|
import '../../primitives/Icon/Icon.js';
|
|
4
5
|
import { ChevronUpIcon } from '../../Icons/ChevronUpIcon.js';
|
|
5
6
|
import { Text } from '../../primitives/Text/Text.js';
|
|
6
7
|
import { Stack } from '../../layout/Stack/Stack.js';
|
|
7
|
-
import {
|
|
8
|
+
import { cx } from '../../../utils/cx.js';
|
|
9
|
+
import { menuContentStyle, iconVisibleStyle, menuItemDisabledStyle, menuItemStyle, iconHiddenStyle, checkboxItemStyle, radioItemStyle, menuItemContentStyle, iconContainerStyle, chevronIconStyle } from './Menu.css.js';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Helper function to render menu item content with consistent structure.
|
|
11
13
|
*/
|
|
12
|
-
const renderMenuItemContent = (item, iconSlot) => (jsxs(
|
|
14
|
+
const renderMenuItemContent = (item, iconSlot) => (jsxs("div", { className: menuItemContentStyle, children: [iconSlot && jsx("div", { className: iconContainerStyle, children: iconSlot }), jsxs(Stack, { direction: "row", justify: "space-between", align: "center", expand: true, children: [jsx(Text, { variant: "caption", size: "md", color: "primary", children: item.label }), item.subMenu && (jsx("div", { className: chevronIconStyle, children: jsx(ChevronUpIcon, { size: "sm" }) }))] })] }));
|
|
13
15
|
/**
|
|
14
16
|
* Helper function to render a radio menu item.
|
|
15
17
|
*/
|
|
16
|
-
const renderRadioItem = (item, _group, isSelected, radioIcon, clickHandler) => (jsx(
|
|
18
|
+
const renderRadioItem = (item, _group, isSelected, radioIcon, clickHandler) => (jsx(Menu.RadioItem, { value: item.id, disabled: item.disabled, onClick: clickHandler, className: cx(radioItemStyle, item.disabled && menuItemDisabledStyle), children: renderMenuItemContent(item, jsx(Menu.RadioItemIndicator, { children: jsx("div", { className: isSelected ? iconVisibleStyle : iconHiddenStyle, children: radioIcon }) })) }, item.id));
|
|
17
19
|
/**
|
|
18
20
|
* Helper function to render a checkbox menu item.
|
|
19
21
|
*/
|
|
20
|
-
const renderCheckboxItem = (item, _group, isSelected, checkboxIcon, clickHandler) => (jsx(
|
|
22
|
+
const renderCheckboxItem = (item, _group, isSelected, checkboxIcon, clickHandler) => (jsx(Menu.CheckboxItem, { checked: isSelected, disabled: item.disabled, onClick: clickHandler, className: cx(checkboxItemStyle, item.disabled && menuItemDisabledStyle), children: renderMenuItemContent(item, jsx(Menu.CheckboxItemIndicator, { children: jsx("div", { className: isSelected ? iconVisibleStyle : iconHiddenStyle, children: checkboxIcon }) })) }, item.id));
|
|
21
23
|
/**
|
|
22
24
|
* Helper function to render a regular menu item without selection state.
|
|
23
25
|
*/
|
|
24
|
-
const renderRegularItem = (item, _group, clickHandler) => (jsx(
|
|
26
|
+
const renderRegularItem = (item, _group, clickHandler) => (jsx(Menu.Item, { disabled: item.disabled, onClick: clickHandler, className: cx(menuItemStyle, item.disabled && menuItemDisabledStyle), children: renderMenuItemContent(item, item.icon ? (jsx("div", { className: iconVisibleStyle, children: item.icon })) : undefined) }, item.id));
|
|
25
27
|
/**
|
|
26
28
|
* Helper function to render a menu item based on group selection type.
|
|
27
29
|
*/
|
|
@@ -43,7 +45,7 @@ const renderItemWithSubmenu = (item, group, isSelected, checkboxIcon, radioIcon,
|
|
|
43
45
|
const menuItem = renderMenuItem(item, group, isSelected, checkboxIcon, radioIcon, clickHandler);
|
|
44
46
|
// If item has submenu, wrap it in submenu structure
|
|
45
47
|
if (item.subMenu) {
|
|
46
|
-
return (jsxs(Menu.Root, {
|
|
48
|
+
return (jsxs(Menu.Root, { children: [jsx(Menu.SubmenuTrigger, { children: menuItem }), jsx(Menu.Portal, { children: jsx(Menu.Positioner, { children: jsx(Menu.Popup, { className: menuContentStyle, children: jsx(MenuComponent, { isSubmenu: true, config: item.subMenu, selectedItems: selectedItems, onChange: onChange, checkboxIcon: checkboxIcon, radioIcon: radioIcon }) }) }) })] }, item.id));
|
|
47
49
|
}
|
|
48
50
|
return menuItem;
|
|
49
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.helpers.js","sources":["../../../../../../src/components/navigation/Menu/Menu.helpers.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"Menu.helpers.js","sources":["../../../../../../src/components/navigation/Menu/Menu.helpers.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AA6BA;;AAEG;AACI;AAmBP;;AAEG;AACI;AAyBP;;AAEG;AACI;AAyBP;;AAEG;AACI;AAoBP;;AAEG;AACI;AAQL;AACE;AACE;AACF;AACE;AAOF;AACA;;;AAGJ;AAEA;;AAEG;;AAYD;;AAUA;AACE;;AAqBF;AACF;;"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
3
|
import React, { useMemo } from 'react';
|
|
3
|
-
import { Menu as Menu$1 } from '@base-ui
|
|
4
|
+
import { Menu as Menu$1 } from '@base-ui/react/menu';
|
|
4
5
|
import '../../primitives/Icon/Icon.js';
|
|
5
6
|
import { CheckIcon } from '../../Icons/CheckIcon.js';
|
|
6
7
|
import { CircleIcon } from '../../Icons/CircleIcon.js';
|
|
7
8
|
import { Button } from '../../primitives/Button/Button.js';
|
|
8
9
|
import { Text } from '../../primitives/Text/Text.js';
|
|
10
|
+
import { cx } from '../../../utils/cx.js';
|
|
9
11
|
import { useMenu, createItemClickHandler } from './useMenu.js';
|
|
10
12
|
import { renderItemWithSubmenu } from './Menu.helpers.js';
|
|
11
|
-
import {
|
|
13
|
+
import { separatorStyle, menuContentStyle } from './Menu.css.js';
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* A configuration-driven menu component for editor interfaces.
|
|
@@ -57,7 +59,7 @@ const Menu = ({ config, selectedItems = {}, onChange, children, checkboxIcon = j
|
|
|
57
59
|
});
|
|
58
60
|
const showSeparator = groupIndex < config.groups.length - 1 && config.groups.length > 1;
|
|
59
61
|
// Wrap group items with BaseMenu.Group structure
|
|
60
|
-
return (jsxs(React.Fragment, { children: [jsxs(Menu$1.Group, { children: [group.label && (jsx(Menu$1.GroupLabel, { children: jsx(Text, { variant: "caption", color: "muted", weight: "semibold", children: group.label }) })), group.itemSelectionType === 'radio' ? (jsx(Menu$1.RadioGroup, { value: selectedItems[group.id]?.[0] ?? '', children: items })) : (items)] }), showSeparator && jsx(
|
|
62
|
+
return (jsxs(React.Fragment, { children: [jsxs(Menu$1.Group, { children: [group.label && (jsx(Menu$1.GroupLabel, { children: jsx(Text, { variant: "caption", color: "muted", weight: "semibold", children: group.label }) })), group.itemSelectionType === 'radio' ? (jsx(Menu$1.RadioGroup, { value: selectedItems[group.id]?.[0] ?? '', children: items })) : (items)] }), showSeparator && jsx(Menu$1.Separator, { className: separatorStyle })] }, group.id));
|
|
61
63
|
});
|
|
62
64
|
}, [
|
|
63
65
|
config,
|
|
@@ -73,7 +75,7 @@ const Menu = ({ config, selectedItems = {}, onChange, children, checkboxIcon = j
|
|
|
73
75
|
if (isSubmenu) {
|
|
74
76
|
return jsx(Fragment, { children: menuItems });
|
|
75
77
|
}
|
|
76
|
-
return (jsxs(Menu$1.Root, {
|
|
78
|
+
return (jsxs(Menu$1.Root, { children: [jsx(Menu$1.Trigger, { render: props => jsx(Button, { ...props }), disabled: disabled, children: children }), jsx(Menu$1.Portal, { children: jsx(Menu$1.Positioner, { children: jsx(Menu$1.Popup, { className: cx(menuContentStyle, className), "data-testid": testId, ...rest, children: menuItems }) }) })] }));
|
|
77
79
|
};
|
|
78
80
|
|
|
79
81
|
export { Menu };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../../../src/components/navigation/Menu/Menu.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../../../src/components/navigation/Menu/Menu.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;AAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;AACI;AAaL;AAKA;;;AAGM;AACA;;AAkBF;AAEA;;;AAyBF;AACF;;;;;;;;;AASC;;;;;AAOD;AAsBF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenu.js","sources":["../../../../../../src/components/navigation/Menu/useMenu.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMenu.js","sources":["../../../../../../src/components/navigation/Menu/useMenu.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAMA;;;AAGG;AACI;AAIL;;AAMI;;;AAGA;AAEA;AACE;;AAEE;;AAEF;;AAEE;AACE;AACA;;AAEJ;AACA;;;;AAKF;AACE;;AAED;AACH;;;AAOA;AAIF;;AAEI;AACA;AACE;;;AAEA;;AAEF;AACF;;AAGF;AACE;;AAGF;;AAEI;AACA;AACA;AACF;;AAGF;AAEI;AACF;;;;;;;;;AAYJ;AAEA;;AAEG;AACI;;;;;AAiBD;;;;AAKJ;;"}
|
|
@@ -1,190 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import { useCallback } from 'react';
|
|
3
|
-
import styled from '@emotion/styled';
|
|
4
4
|
import { useTabsContext } from './Tabs.js';
|
|
5
5
|
import '../../primitives/Icon/Icon.js';
|
|
6
6
|
import { CloseIcon } from '../../Icons/CloseIcon.js';
|
|
7
|
+
import { cx } from '../../../utils/cx.js';
|
|
8
|
+
import { vars } from '../../../theme/contract.css.js';
|
|
9
|
+
import { tabIconStyle, tabCloseButtonStyle, tabRecipe, tabBaseStyle, tabEnclosedActiveVerticalStyle, tabEnclosedActiveHorizontalStyle, tabEnclosedInactiveStyle, tabEnclosedStyle, tabPillsActiveStyle, tabPillsInactiveStyle, tabPillsStyle, tabUnderlineActiveVerticalStyle, tabUnderlineActiveHorizontalStyle, tabUnderlineInactiveIndicatorStyle, tabUnderlineActiveStyle, tabUnderlineInactiveStyle, tabUnderlineStyle } from './Tabs.css.js';
|
|
7
10
|
|
|
8
11
|
const TAB_SIZE_MAP = {
|
|
9
|
-
sm: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
fontKey: 'xs',
|
|
13
|
-
iconSize: 11,
|
|
14
|
-
},
|
|
15
|
-
md: {
|
|
16
|
-
height: 28,
|
|
17
|
-
paddingKey: 'md',
|
|
18
|
-
fontKey: 'sm',
|
|
19
|
-
iconSize: 13,
|
|
20
|
-
},
|
|
21
|
-
lg: {
|
|
22
|
-
height: 32,
|
|
23
|
-
paddingKey: 'lg',
|
|
24
|
-
fontKey: 'md',
|
|
25
|
-
iconSize: 15,
|
|
26
|
-
},
|
|
12
|
+
sm: { iconSize: 11 },
|
|
13
|
+
md: { iconSize: 13 },
|
|
14
|
+
lg: { iconSize: 15 },
|
|
27
15
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
border: none;
|
|
32
|
-
font-family: inherit;
|
|
33
|
-
outline: none;
|
|
34
|
-
cursor: ${props => (props.$disabled ? 'not-allowed' : 'pointer')};
|
|
35
|
-
user-select: none;
|
|
36
|
-
white-space: nowrap;
|
|
37
|
-
background: transparent;
|
|
38
|
-
border-radius: ${props => props.theme.borderRadius.sm}px;
|
|
39
|
-
|
|
40
|
-
/* Layout */
|
|
41
|
-
display: inline-flex;
|
|
42
|
-
align-items: center;
|
|
43
|
-
justify-content: center;
|
|
44
|
-
gap: ${props => props.theme.spacing.xs}px;
|
|
45
|
-
position: relative;
|
|
46
|
-
flex-shrink: 0;
|
|
47
|
-
|
|
48
|
-
/* Sizing */
|
|
49
|
-
height: ${props => TAB_SIZE_MAP[props.$size].height}px;
|
|
50
|
-
padding: 0
|
|
51
|
-
${props => props.theme.spacing[TAB_SIZE_MAP[props.$size].paddingKey]}px;
|
|
52
|
-
font-size: ${props => props.theme.typography.fontSize[TAB_SIZE_MAP[props.$size].fontKey]}px;
|
|
53
|
-
font-weight: ${props => props.theme.typography.fontWeight.medium};
|
|
54
|
-
line-height: ${props => props.theme.typography.lineHeight.tight};
|
|
55
|
-
transition: all ${props => props.theme.transitions.fast};
|
|
56
|
-
min-width: 0;
|
|
57
|
-
|
|
58
|
-
/* Full width */
|
|
59
|
-
${props => props.$fullWidth && 'flex: 1;'}
|
|
60
|
-
|
|
61
|
-
/* Disabled */
|
|
62
|
-
opacity: ${props => (props.$disabled ? 0.5 : 1)};
|
|
63
|
-
|
|
64
|
-
/* Variant styles */
|
|
65
|
-
${props => {
|
|
66
|
-
const { colors } = props.theme;
|
|
67
|
-
switch (props.$variant) {
|
|
16
|
+
// --- Helper to compute variant classes ---
|
|
17
|
+
function getVariantClasses(variant, isActive, orientation) {
|
|
18
|
+
switch (variant) {
|
|
68
19
|
case 'underline':
|
|
69
|
-
return
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
? 'margin-right: -1px;'
|
|
75
|
-
: 'margin-bottom: -1px;'
|
|
76
|
-
: ''}
|
|
77
|
-
|
|
78
|
-
&::after {
|
|
79
|
-
content: '';
|
|
80
|
-
position: absolute;
|
|
81
|
-
border-radius: ${props.theme.borderRadius.sm}px;
|
|
82
|
-
background: ${colors.accent.primary};
|
|
83
|
-
opacity: ${props.$active ? 1 : 0};
|
|
84
|
-
transition: opacity ${props.theme.transitions.fast};
|
|
85
|
-
${props.$orientation === 'vertical'
|
|
86
|
-
? `
|
|
87
|
-
top: 0;
|
|
88
|
-
bottom: 0;
|
|
89
|
-
right: -1px;
|
|
90
|
-
width: 2px;
|
|
91
|
-
`
|
|
92
|
-
: `
|
|
93
|
-
left: 0;
|
|
94
|
-
right: 0;
|
|
95
|
-
bottom: -1px;
|
|
96
|
-
height: 2px;
|
|
97
|
-
`}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
&:hover:not(:disabled) {
|
|
101
|
-
color: ${colors.text.primary};
|
|
102
|
-
background: ${colors.surface.hover};
|
|
103
|
-
}
|
|
104
|
-
`;
|
|
20
|
+
return cx(tabUnderlineStyle, isActive ? tabUnderlineActiveStyle : tabUnderlineInactiveStyle, isActive
|
|
21
|
+
? orientation === 'vertical'
|
|
22
|
+
? tabUnderlineActiveVerticalStyle
|
|
23
|
+
: tabUnderlineActiveHorizontalStyle
|
|
24
|
+
: tabUnderlineInactiveIndicatorStyle);
|
|
105
25
|
case 'pills':
|
|
106
|
-
return
|
|
107
|
-
color: ${props.$active ? colors.text.primary : colors.text.secondary};
|
|
108
|
-
background: ${props.$active ? colors.surface.active : colors.background.secondary};
|
|
109
|
-
border: 1px solid ${props.$active ? colors.border.default : 'transparent'};
|
|
110
|
-
border-radius: ${props.theme.borderRadius.md}px;
|
|
111
|
-
|
|
112
|
-
&:hover:not(:disabled) {
|
|
113
|
-
background: ${props.$active ? colors.surface.active : colors.surface.hover};
|
|
114
|
-
}
|
|
115
|
-
`;
|
|
26
|
+
return cx(tabPillsStyle, isActive ? tabPillsActiveStyle : tabPillsInactiveStyle);
|
|
116
27
|
case 'enclosed':
|
|
117
|
-
return
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
background: ${colors.background.primary};
|
|
123
|
-
${props.$orientation === 'vertical'
|
|
124
|
-
? `
|
|
125
|
-
border-right-color: ${colors.background.primary};
|
|
126
|
-
border-radius: ${props.theme.borderRadius.md}px 0 0 ${props.theme.borderRadius.md}px;
|
|
127
|
-
margin-right: -1px;
|
|
128
|
-
`
|
|
129
|
-
: `
|
|
130
|
-
border-bottom-color: ${colors.background.primary};
|
|
131
|
-
border-radius: ${props.theme.borderRadius.md}px ${props.theme.borderRadius.md}px 0 0;
|
|
132
|
-
margin-bottom: -1px;
|
|
133
|
-
`}
|
|
134
|
-
`
|
|
135
|
-
: `
|
|
136
|
-
background: ${colors.surface.default};
|
|
137
|
-
border: 1px solid transparent;
|
|
138
|
-
`}
|
|
139
|
-
|
|
140
|
-
&:hover:not(:disabled) {
|
|
141
|
-
color: ${colors.text.primary};
|
|
142
|
-
background: ${props.$active ? colors.background.primary : colors.surface.hover};
|
|
143
|
-
}
|
|
144
|
-
`;
|
|
28
|
+
return cx(tabEnclosedStyle, isActive
|
|
29
|
+
? orientation === 'vertical'
|
|
30
|
+
? tabEnclosedActiveVerticalStyle
|
|
31
|
+
: tabEnclosedActiveHorizontalStyle
|
|
32
|
+
: tabEnclosedInactiveStyle);
|
|
145
33
|
default:
|
|
146
34
|
return '';
|
|
147
35
|
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/* Focus visible */
|
|
151
|
-
&:focus-visible {
|
|
152
|
-
box-shadow: ${props => props.theme.shadows.focus};
|
|
153
|
-
z-index: 1;
|
|
154
|
-
}
|
|
155
|
-
`;
|
|
156
|
-
const StyledTabIcon = styled.span `
|
|
157
|
-
display: flex;
|
|
158
|
-
align-items: center;
|
|
159
|
-
justify-content: center;
|
|
160
|
-
flex-shrink: 0;
|
|
161
|
-
|
|
162
|
-
svg {
|
|
163
|
-
width: ${props => props.$size}px;
|
|
164
|
-
height: ${props => props.$size}px;
|
|
165
|
-
}
|
|
166
|
-
`;
|
|
167
|
-
const StyledCloseButton = styled.span `
|
|
168
|
-
display: flex;
|
|
169
|
-
align-items: center;
|
|
170
|
-
justify-content: center;
|
|
171
|
-
flex-shrink: 0;
|
|
172
|
-
cursor: pointer;
|
|
173
|
-
color: ${props => props.theme.colors.text.muted};
|
|
174
|
-
border-radius: ${props => props.theme.borderRadius.sm}px;
|
|
175
|
-
padding: 2px;
|
|
176
|
-
margin-left: ${props => props.theme.spacing.sm}px;
|
|
177
|
-
transition: all ${props => props.theme.transitions.fast};
|
|
178
|
-
|
|
179
|
-
&:hover {
|
|
180
|
-
color: ${props => props.theme.colors.text.primary};
|
|
181
|
-
background: ${props => props.theme.colors.surface.hover};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
svg {
|
|
185
|
-
color: currentColor;
|
|
186
|
-
}
|
|
187
|
-
`;
|
|
36
|
+
}
|
|
188
37
|
// --- Component ---
|
|
189
38
|
const Tab = ({ value, children, icon, disabled = false, closable = false, onClose, className, style, testId, ref, ...rest }) => {
|
|
190
39
|
const { activeValue, setActiveValue, variant, size, orientation, fullWidth, tabsId, } = useTabsContext();
|
|
@@ -214,7 +63,15 @@ const Tab = ({ value, children, icon, disabled = false, closable = false, onClos
|
|
|
214
63
|
e.stopPropagation();
|
|
215
64
|
onClose?.(value);
|
|
216
65
|
}, [onClose, value]);
|
|
217
|
-
|
|
66
|
+
const variantClasses = getVariantClasses(variant, isActive, orientation);
|
|
67
|
+
return (jsxs("button", { ref: ref, role: "tab", id: tabId, "aria-selected": isActive, "aria-controls": panelId, "aria-disabled": disabled || undefined, tabIndex: isActive ? 0 : -1, disabled: disabled, onClick: handleClick, onKeyDown: handleKeyDown, className: cx(tabBaseStyle, tabRecipe({ size, disabled, fullWidth }), variantClasses, className), style: {
|
|
68
|
+
gap: vars.spacing.xs,
|
|
69
|
+
transition: `all ${vars.transitions.fast}`,
|
|
70
|
+
...style,
|
|
71
|
+
}, "data-testid": testId, ...rest, children: [icon && (jsx("span", { className: tabIconStyle, style: {
|
|
72
|
+
width: `${sizeConfig.iconSize}px`,
|
|
73
|
+
height: `${sizeConfig.iconSize}px`,
|
|
74
|
+
}, children: icon })), children, closable && (jsx("span", { className: tabCloseButtonStyle, role: "button", "aria-label": `Close ${typeof children === 'string' ? children : value}`, onClick: handleClose, children: jsx(CloseIcon, { size: closeIconSize, decorative: true }) }))] }));
|
|
218
75
|
};
|
|
219
76
|
Tab.displayName = 'Tab';
|
|
220
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sources":["../../../../../../src/components/navigation/Tabs/Tab.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"Tab.js","sources":["../../../../../../src/components/navigation/Tabs/Tab.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAkCA;AACE;AACA;AACA;;AAGF;AAEA;;AAMI;AACE;;AAKM;AACA;;AAGR;AACE;AAIF;AACE;;AAIM;AACA;;AAGR;AACE;;AAEN;AAEA;AAEO;AAaL;AASA;AACA;AACA;AAEA;AACA;AAEA;;;;;AAMA;AAEI;;;;;;;;;;AAUF;AAIF;;AAGI;AACF;;AAMF;AAmBM;AACA;AACA;AACD;AAQK;AACA;;AAmBZ;AAEA;;"}
|