entangle-ui 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/README.md +129 -75
- 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/ColorPicker/AlphaSlider.js +92 -0
- package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorArea.js +93 -0
- package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js +129 -0
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js +89 -0
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js +75 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js +57 -0
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js +67 -0
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js +85 -0
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/HueSlider.js +85 -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 +63 -0
- package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +84 -0
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js +134 -0
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +96 -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 +338 -0
- package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +569 -0
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -0
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +400 -0
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -0
- package/dist/esm/components/controls/NumberInput/NumberInput.js +377 -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.js +533 -0
- package/dist/esm/components/controls/Select/Select.js.map +1 -0
- package/dist/esm/components/controls/Slider/Slider.js +413 -0
- package/dist/esm/components/controls/Slider/Slider.js.map +1 -0
- package/dist/esm/components/controls/TreeView/TreeNode.js +189 -0
- package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -0
- package/dist/esm/components/controls/TreeView/TreeView.js +213 -0
- package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -0
- package/dist/esm/components/controls/TreeView/useTreeState.js +154 -0
- package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.js +202 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +42 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +98 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +154 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js +136 -0
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js +86 -0
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/Dialog.js +92 -0
- package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/Dialog.styled.js +80 -0
- package/dist/esm/components/feedback/Dialog/Dialog.styled.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogBody.js +33 -0
- package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogClose.js +26 -0
- package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogFooter.js +43 -0
- package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogHeader.js +84 -0
- package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +70 -0
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js +55 -0
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastContainer.js +34 -0
- package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastItem.js +214 -0
- package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastProvider.js +47 -0
- package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -0
- package/dist/esm/components/feedback/Toast/useToast.js +60 -0
- package/dist/esm/components/feedback/Toast/useToast.js.map +1 -0
- package/dist/esm/components/form/FormHelperText.js +38 -0
- package/dist/esm/components/form/FormHelperText.js.map +1 -0
- package/dist/esm/components/form/FormLabel.js +43 -0
- package/dist/esm/components/form/FormLabel.js.map +1 -0
- package/dist/esm/components/form/InputWrapper.js +100 -0
- package/dist/esm/components/form/InputWrapper.js.map +1 -0
- package/dist/esm/components/layout/Accordion/Accordion.js +103 -0
- package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionContent.js +37 -0
- package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionItem.js +24 -0
- package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -0
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js +123 -0
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -0
- package/dist/esm/components/layout/Flex/Flex.js +149 -0
- package/dist/esm/components/layout/Flex/Flex.js.map +1 -0
- package/dist/esm/components/layout/Grid/Grid.js +118 -0
- package/dist/esm/components/layout/Grid/Grid.js.map +1 -0
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js +106 -0
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -0
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js +362 -0
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/esm/components/layout/Spacer/Spacer.js +78 -0
- package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -0
- package/dist/esm/components/layout/SplitPane/SplitPane.js +581 -0
- package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -0
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js +29 -0
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -0
- package/dist/esm/components/layout/Stack/Stack.js +138 -0
- package/dist/esm/components/layout/Stack/Stack.js.map +1 -0
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -0
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +52 -0
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +1 -0
- package/dist/esm/components/navigation/Menu/Menu.helpers.js +52 -0
- package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +1 -0
- package/dist/esm/components/navigation/Menu/Menu.js +80 -0
- package/dist/esm/components/navigation/Menu/Menu.js.map +1 -0
- package/dist/esm/components/navigation/Menu/Menu.styled.js +83 -0
- package/dist/esm/components/navigation/Menu/Menu.styled.js.map +1 -0
- package/dist/esm/components/navigation/Menu/useMenu.js +87 -0
- package/dist/esm/components/navigation/Menu/useMenu.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/Tab.js +222 -0
- package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/TabList.js +115 -0
- package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/TabPanel.js +32 -0
- package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/Tabs.js +77 -0
- package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/esm/components/primitives/BaseButton/BaseButton.js +17 -0
- package/dist/esm/components/primitives/BaseButton/BaseButton.js.map +1 -0
- package/dist/esm/components/primitives/Button/Button.js +183 -0
- package/dist/esm/components/primitives/Button/Button.js.map +1 -0
- package/dist/esm/components/primitives/Checkbox/Checkbox.js +205 -0
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -0
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +71 -0
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -0
- package/dist/esm/components/primitives/Collapsible/Collapsible.js +116 -0
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -0
- package/dist/esm/components/primitives/Icon/Icon.js +63 -0
- package/dist/esm/components/primitives/Icon/Icon.js.map +1 -0
- package/dist/esm/components/primitives/IconButton/IconButton.js +222 -0
- package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -0
- package/dist/esm/components/primitives/Input/Input.js +133 -0
- package/dist/esm/components/primitives/Input/Input.js.map +1 -0
- package/dist/esm/components/primitives/Paper/Paper.js +146 -0
- package/dist/esm/components/primitives/Paper/Paper.js.map +1 -0
- package/dist/esm/components/primitives/Popover/Popover.js +121 -0
- package/dist/esm/components/primitives/Popover/Popover.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverClose.js +50 -0
- package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverContent.js +102 -0
- package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -0
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js +37 -0
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -0
- package/dist/esm/components/primitives/Switch/Switch.js +170 -0
- package/dist/esm/components/primitives/Switch/Switch.js.map +1 -0
- package/dist/esm/components/primitives/Text/Text.js +166 -0
- package/dist/esm/components/primitives/Text/Text.js.map +1 -0
- package/dist/esm/components/primitives/Tooltip/Arrow.js +52 -0
- package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -0
- package/dist/esm/components/primitives/Tooltip/Tooltip.js +219 -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/shell/AppShell/AppShell.js +157 -0
- package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +236 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -0
- package/dist/esm/components/shell/MenuBar/MenuBar.js +340 -0
- package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -0
- package/dist/esm/components/shell/StatusBar/StatusBar.js +134 -0
- package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -0
- package/dist/esm/components/shell/Toolbar/Toolbar.js +185 -0
- package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -0
- package/dist/esm/context/KeyboardContext.js +14 -0
- package/dist/esm/context/KeyboardContext.js.map +1 -0
- package/dist/esm/index.js +78 -0
- package/dist/esm/index.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 +12 -0
- package/dist/esm/theme/ThemeProvider.js.map +1 -0
- package/dist/esm/theme/createTheme.js +10 -0
- package/dist/esm/theme/createTheme.js.map +1 -0
- package/dist/esm/theme/tokens.js +144 -0
- package/dist/esm/theme/tokens.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/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/esm/utils/objects.js +22 -0
- package/dist/esm/utils/objects.js.map +1 -0
- package/dist/esm/utils/styledUtils.js +81 -0
- package/dist/esm/utils/styledUtils.js.map +1 -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 +297 -0
- package/dist/types/components/controls/CurveEditor/curvePresets.d.ts +5 -0
- package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +28 -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/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/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 +321 -0
- package/dist/types/components/form/FormLabel.d.ts +331 -0
- package/dist/types/components/form/InputWrapper.d.ts +346 -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 +1153 -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 +329 -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 +392 -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 +40 -0
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +354 -0
- package/dist/types/components/primitives/Input/Input.d.ts +134 -0
- package/dist/types/components/primitives/Paper/Paper.d.ts +419 -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 +78 -0
- package/dist/types/components/primitives/Text/Text.d.ts +442 -0
- package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +175 -0
- package/dist/types/components/primitives/Tooltip/types.d.ts +82 -0
- package/dist/types/components/shell/AppShell/AppShell.d.ts +1437 -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 +1441 -0
- package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +48 -0
- package/dist/types/components/shell/StatusBar/StatusBar.d.ts +868 -0
- package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +40 -0
- package/dist/types/components/shell/Toolbar/Toolbar.d.ts +1728 -0
- package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +59 -0
- package/dist/types/index.d.ts +101 -0
- package/dist/types/palettes.d.ts +3 -0
- package/dist/types/theme/ThemeProvider.d.ts +11 -0
- package/dist/types/theme/createTheme.d.ts +6 -0
- package/dist/types/theme/tokens.d.ts +147 -0
- package/dist/types/theme/types.d.ts +7 -0
- package/dist/types/types/common.d.ts +24 -0
- package/dist/types/types/utilities.d.ts +72 -0
- package/dist/types/utils/cn.d.ts +3 -0
- package/package.json +23 -7
- package/dist/index.d.ts +0 -11
- package/dist/index.esm.js +0 -12149
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js +0 -12223
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { processCss } from '../../../utils/styledUtils.js';
|
|
5
|
+
|
|
6
|
+
const StyledSVG = styled.svg `
|
|
7
|
+
/* Reset and base styles */
|
|
8
|
+
display: inline-block;
|
|
9
|
+
vertical-align: middle;
|
|
10
|
+
flex-shrink: 0;
|
|
11
|
+
user-select: none;
|
|
12
|
+
|
|
13
|
+
/* Size variants optimized for editor interfaces */
|
|
14
|
+
${props => {
|
|
15
|
+
const sizes = {
|
|
16
|
+
sm: '12px',
|
|
17
|
+
md: '16px',
|
|
18
|
+
lg: '20px',
|
|
19
|
+
};
|
|
20
|
+
return `
|
|
21
|
+
width: ${sizes[props.$size]};
|
|
22
|
+
height: ${sizes[props.$size]};
|
|
23
|
+
`;
|
|
24
|
+
}}
|
|
25
|
+
|
|
26
|
+
/* Color variants using theme tokens */
|
|
27
|
+
${props => {
|
|
28
|
+
const { theme } = props;
|
|
29
|
+
// Standard color mappings to theme
|
|
30
|
+
const colorMap = {
|
|
31
|
+
primary: theme.colors.text.primary,
|
|
32
|
+
secondary: theme.colors.text.secondary,
|
|
33
|
+
muted: theme.colors.text.muted,
|
|
34
|
+
accent: theme.colors.accent.primary,
|
|
35
|
+
success: theme.colors.accent.success,
|
|
36
|
+
warning: theme.colors.accent.warning,
|
|
37
|
+
error: theme.colors.accent.error,
|
|
38
|
+
};
|
|
39
|
+
// Use theme color if available, otherwise treat as custom color
|
|
40
|
+
const color = colorMap[props.$color] || props.$color;
|
|
41
|
+
return `
|
|
42
|
+
color: ${color};
|
|
43
|
+
fill: none;
|
|
44
|
+
stroke: currentColor;
|
|
45
|
+
stroke-width: 2;
|
|
46
|
+
stroke-linecap: round;
|
|
47
|
+
stroke-linejoin: round;
|
|
48
|
+
`;
|
|
49
|
+
}}
|
|
50
|
+
|
|
51
|
+
/* Ensure crisp rendering */
|
|
52
|
+
shape-rendering: geometricPrecision;
|
|
53
|
+
|
|
54
|
+
/* Custom CSS */
|
|
55
|
+
${props => processCss(props.$css, props.theme)}
|
|
56
|
+
`;
|
|
57
|
+
const Icon = /*#__PURE__*/ React.memo(({ children, size = 'md', color = 'primary', className, title, decorative = false, css, testId, ref, ...props }) => {
|
|
58
|
+
return (jsxs(StyledSVG, { ref: ref, className: className, "$size": size, "$color": color, "$css": css, viewBox: "0 0 24 24", fill: "none", "aria-hidden": decorative, role: decorative ? 'presentation' : 'img', "data-testid": testId, ...props, children: [title && !decorative && jsx("title", { children: title }), children] }));
|
|
59
|
+
});
|
|
60
|
+
Icon.displayName = 'Icon';
|
|
61
|
+
|
|
62
|
+
export { Icon };
|
|
63
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sources":["../../../../../../src/components/primitives/Icon/Icon.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;AA8CA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAgB;;;;;;;;AAQxC,EAAA,EAAA,KAAK,IAAG;AACR,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,MAAM;KACX;IACD,OAAO;AACI,aAAA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACjB,cAAA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC7B;AACH,CAAC;;;AAGC,EAAA,EAAA,KAAK,IAAG;AACR,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK;;AAGvB,IAAA,MAAM,QAAQ,GAAG;AACf,QAAA,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AAClC,QAAA,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;AACtC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;AACnC,QAAA,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;AACpC,QAAA,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;AACpC,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;KACjC;;AAGD,IAAA,MAAM,KAAK,GACT,QAAQ,CAAC,KAAK,CAAC,MAA+B,CAAC,IAAI,KAAK,CAAC,MAAM;IAEjE,OAAO;eACI,KAAK,CAAA;;;;;;KAMf;AACH,CAAC;;;;;;AAMC,EAAA,EAAA,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;CAC/C;AAEY,MAAA,IAAI,iBAAiB,KAAK,CAAC,IAAI,CAC1C,CAAC,EACC,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,SAAS,EACjB,SAAS,EACT,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,GAAG,EACH,MAAM,EACN,GAAG,EACH,GAAG,KAAK,EACT,KAAI;IACH,QACEA,IAAC,CAAA,SAAS,EACR,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACb,OAAA,EAAA,IAAI,YACH,KAAK,EAAA,MAAA,EACP,GAAG,EACT,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EAAA,aAAA,EACE,UAAU,EACvB,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,KAAK,EAC5B,aAAA,EAAA,MAAM,EACf,GAAA,KAAK,aAER,KAAK,IAAI,CAAC,UAAU,IAAIC,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ,KAAK,EAAA,CAAS,EAC9C,QAAQ,CACC,EAAA,CAAA;AAEhB,CAAC;AAGH,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { processCss } from '../../../utils/styledUtils.js';
|
|
5
|
+
|
|
6
|
+
const StyledIconButton = styled.button `
|
|
7
|
+
/* Reset */
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
font-family: inherit;
|
|
11
|
+
cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};
|
|
12
|
+
user-select: none;
|
|
13
|
+
|
|
14
|
+
/* Layout */
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
transition: all ${props => props.theme.transitions.normal};
|
|
19
|
+
outline: none;
|
|
20
|
+
position: relative;
|
|
21
|
+
|
|
22
|
+
/* Size variants - square buttons scaled to icon size */
|
|
23
|
+
${props => {
|
|
24
|
+
const sizes = {
|
|
25
|
+
sm: {
|
|
26
|
+
width: '20px', // Compact for 12px icons
|
|
27
|
+
height: '20px',
|
|
28
|
+
padding: '4px',
|
|
29
|
+
},
|
|
30
|
+
md: {
|
|
31
|
+
width: '24px', // Standard for 16px icons
|
|
32
|
+
height: '24px',
|
|
33
|
+
padding: '4px',
|
|
34
|
+
},
|
|
35
|
+
lg: {
|
|
36
|
+
width: '32px', // Larger for 20px icons
|
|
37
|
+
height: '32px',
|
|
38
|
+
padding: '6px',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const size = sizes[props.$size];
|
|
42
|
+
return `
|
|
43
|
+
width: ${size.width};
|
|
44
|
+
height: ${size.height};
|
|
45
|
+
padding: ${size.padding};
|
|
46
|
+
`;
|
|
47
|
+
}}
|
|
48
|
+
|
|
49
|
+
/* Border radius variants */
|
|
50
|
+
${props => {
|
|
51
|
+
const radiusMap = {
|
|
52
|
+
none: '0px',
|
|
53
|
+
sm: `${props.theme.borderRadius.sm}px`,
|
|
54
|
+
md: `${props.theme.borderRadius.md}px`,
|
|
55
|
+
lg: `${props.theme.borderRadius.lg}px`,
|
|
56
|
+
full: '50%',
|
|
57
|
+
};
|
|
58
|
+
return `border-radius: ${radiusMap[props.$radius]};`;
|
|
59
|
+
}}
|
|
60
|
+
|
|
61
|
+
/* Variant styles */
|
|
62
|
+
${props => {
|
|
63
|
+
const { colors } = props.theme;
|
|
64
|
+
switch (props.$variant) {
|
|
65
|
+
case 'default':
|
|
66
|
+
return `
|
|
67
|
+
background: transparent;
|
|
68
|
+
border: 1px solid ${colors.border.default};
|
|
69
|
+
color: ${colors.text.primary};
|
|
70
|
+
|
|
71
|
+
&:hover:not(:disabled) {
|
|
72
|
+
background: ${colors.surface.hover};
|
|
73
|
+
border-color: ${colors.border.focus};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&:active:not(:disabled) {
|
|
77
|
+
background: ${colors.surface.active};
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
case 'ghost':
|
|
81
|
+
return `
|
|
82
|
+
background: transparent;
|
|
83
|
+
border: 1px solid transparent;
|
|
84
|
+
color: ${colors.text.secondary};
|
|
85
|
+
|
|
86
|
+
&:hover:not(:disabled) {
|
|
87
|
+
background: ${colors.surface.hover};
|
|
88
|
+
color: ${colors.text.primary};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
&:active:not(:disabled) {
|
|
92
|
+
background: ${colors.surface.active};
|
|
93
|
+
}
|
|
94
|
+
`;
|
|
95
|
+
case 'filled':
|
|
96
|
+
return `
|
|
97
|
+
background: ${colors.accent.primary};
|
|
98
|
+
border: 1px solid ${colors.accent.primary};
|
|
99
|
+
color: white;
|
|
100
|
+
|
|
101
|
+
&:hover:not(:disabled) {
|
|
102
|
+
background: ${colors.accent.secondary};
|
|
103
|
+
border-color: ${colors.accent.secondary};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
&:active:not(:disabled) {
|
|
107
|
+
background: ${colors.accent.secondary};
|
|
108
|
+
}
|
|
109
|
+
`;
|
|
110
|
+
default:
|
|
111
|
+
return '';
|
|
112
|
+
}
|
|
113
|
+
}}
|
|
114
|
+
|
|
115
|
+
/* Pressed state */
|
|
116
|
+
${props => props.$pressed &&
|
|
117
|
+
`
|
|
118
|
+
background: ${props.theme.colors.surface.active} !important;
|
|
119
|
+
border-color: ${props.theme.colors.border.focus} !important;
|
|
120
|
+
`}
|
|
121
|
+
|
|
122
|
+
/* Disabled state */
|
|
123
|
+
&:disabled {
|
|
124
|
+
opacity: 0.5;
|
|
125
|
+
cursor: not-allowed;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Focus visible */
|
|
129
|
+
&:focus-visible {
|
|
130
|
+
box-shadow: ${props => props.theme.shadows.focus};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Active press effect */
|
|
134
|
+
&:active:not(:disabled) {
|
|
135
|
+
transform: translateY(0.5px);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* Icon container - centers icon properly */
|
|
139
|
+
& > * {
|
|
140
|
+
display: flex;
|
|
141
|
+
align-items: center;
|
|
142
|
+
justify-content: center;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Custom CSS */
|
|
146
|
+
${props => processCss(props.$css, props.theme)}
|
|
147
|
+
`;
|
|
148
|
+
const LoadingSpinner = styled.div `
|
|
149
|
+
border: 2px solid currentColor;
|
|
150
|
+
border-top-color: transparent;
|
|
151
|
+
border-radius: 50%;
|
|
152
|
+
animation: spin 1s linear infinite;
|
|
153
|
+
|
|
154
|
+
${props => {
|
|
155
|
+
const sizes = {
|
|
156
|
+
sm: '12px',
|
|
157
|
+
md: '16px',
|
|
158
|
+
lg: '20px',
|
|
159
|
+
};
|
|
160
|
+
return `
|
|
161
|
+
width: ${sizes[props.$size]};
|
|
162
|
+
height: ${sizes[props.$size]};
|
|
163
|
+
`;
|
|
164
|
+
}}
|
|
165
|
+
|
|
166
|
+
@keyframes spin {
|
|
167
|
+
to {
|
|
168
|
+
transform: rotate(360deg);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
`;
|
|
172
|
+
/**
|
|
173
|
+
* A specialized square button component for displaying icons in editor interfaces.
|
|
174
|
+
*
|
|
175
|
+
* Designed for toolbar actions, quick controls, and icon-based interactions.
|
|
176
|
+
* Always square and sized appropriately for the contained icon.
|
|
177
|
+
* Supports various border radius options from sharp corners to fully circular.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```tsx
|
|
181
|
+
* // Basic ghost button (default)
|
|
182
|
+
* <IconButton aria-label="Save file">
|
|
183
|
+
* <SaveIcon />
|
|
184
|
+
* </IconButton>
|
|
185
|
+
*
|
|
186
|
+
* // Circular filled button
|
|
187
|
+
* <IconButton
|
|
188
|
+
* variant="filled"
|
|
189
|
+
* radius="full"
|
|
190
|
+
* size="lg"
|
|
191
|
+
* aria-label="Add item"
|
|
192
|
+
* >
|
|
193
|
+
* <AddIcon />
|
|
194
|
+
* </IconButton>
|
|
195
|
+
*
|
|
196
|
+
* // Sharp corners for toolbar
|
|
197
|
+
* <IconButton
|
|
198
|
+
* variant="default"
|
|
199
|
+
* radius="none"
|
|
200
|
+
* aria-label="Settings"
|
|
201
|
+
* >
|
|
202
|
+
* <SettingsIcon />
|
|
203
|
+
* </IconButton>
|
|
204
|
+
*
|
|
205
|
+
* // Toggle state
|
|
206
|
+
* <IconButton
|
|
207
|
+
* pressed={isVisible}
|
|
208
|
+
* radius="sm"
|
|
209
|
+
* aria-label="Toggle visibility"
|
|
210
|
+
* onClick={toggleVisibility}
|
|
211
|
+
* >
|
|
212
|
+
* <EyeIcon />
|
|
213
|
+
* </IconButton>
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
const IconButton = /*#__PURE__*/ React.memo(({ children, className, size = 'md', variant = 'ghost', radius = 'md', disabled = false, loading = false, pressed = false, onClick, 'aria-label': ariaLabel, testId, css, style, ref, ...props }) => {
|
|
217
|
+
return (jsx(StyledIconButton, { ref: ref, className: className, "$size": size, "$variant": variant, "$radius": radius, "$loading": loading, "$pressed": pressed, "$css": css, disabled: disabled || loading, onClick: onClick, "aria-label": ariaLabel, "aria-pressed": pressed, "data-testid": testId, style: style, ...props, children: loading ? jsx(LoadingSpinner, { "$size": size }) : children }));
|
|
218
|
+
});
|
|
219
|
+
IconButton.displayName = 'IconButton';
|
|
220
|
+
|
|
221
|
+
export { IconButton };
|
|
222
|
+
//# sourceMappingURL=IconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.js","sources":["../../../../../../src/components/primitives/IconButton/IconButton.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import '../../form/FormLabel.js';
|
|
3
|
+
import '../../form/FormHelperText.js';
|
|
4
|
+
import { StyledInputWrapper } from '../../form/InputWrapper.js';
|
|
5
|
+
import { processCss } from '../../../utils/styledUtils.js';
|
|
6
|
+
import styled from '@emotion/styled';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
|
|
9
|
+
const StyledInputContainer = styled.div `
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: ${props => props.theme.spacing.xs}px;
|
|
13
|
+
|
|
14
|
+
/* Custom CSS */
|
|
15
|
+
${props => processCss(props.$css, props.theme)}
|
|
16
|
+
`;
|
|
17
|
+
const StyledLabel = styled.label `
|
|
18
|
+
font-size: ${props => props.theme.typography.fontSize.sm}px;
|
|
19
|
+
font-weight: ${props => props.theme.typography.fontWeight.medium};
|
|
20
|
+
color: ${props => props.$disabled
|
|
21
|
+
? props.theme.colors.text.disabled
|
|
22
|
+
: props.theme.colors.text.secondary};
|
|
23
|
+
line-height: ${props => props.theme.typography.lineHeight.tight};
|
|
24
|
+
`;
|
|
25
|
+
const StyledInput = styled.input `
|
|
26
|
+
flex: 1;
|
|
27
|
+
border: none;
|
|
28
|
+
outline: none;
|
|
29
|
+
background: transparent;
|
|
30
|
+
font-family: inherit;
|
|
31
|
+
color: ${props => props.theme.colors.text.primary};
|
|
32
|
+
|
|
33
|
+
${props => {
|
|
34
|
+
const fontSize = {
|
|
35
|
+
sm: props.theme.typography.fontSize.md,
|
|
36
|
+
md: props.theme.typography.fontSize.md,
|
|
37
|
+
lg: props.theme.typography.fontSize.lg,
|
|
38
|
+
};
|
|
39
|
+
return `font-size: ${fontSize[props.$size]}px;`;
|
|
40
|
+
}}
|
|
41
|
+
|
|
42
|
+
&::placeholder {
|
|
43
|
+
color: ${props => props.theme.colors.text.muted};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&:disabled {
|
|
47
|
+
cursor: not-allowed;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Remove number input arrows */
|
|
51
|
+
&::-webkit-outer-spin-button,
|
|
52
|
+
&::-webkit-inner-spin-button {
|
|
53
|
+
-webkit-appearance: none;
|
|
54
|
+
margin: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&[type='number'] {
|
|
58
|
+
-moz-appearance: textfield;
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
const StyledIcon = styled.div `
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
justify-content: center;
|
|
65
|
+
color: ${props => props.theme.colors.text.muted};
|
|
66
|
+
|
|
67
|
+
${props => props.$position === 'start' ? 'margin-right: 6px;' : 'margin-left: 6px;'}
|
|
68
|
+
|
|
69
|
+
& > * {
|
|
70
|
+
width: 14px;
|
|
71
|
+
height: 14px;
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
const StyledHelperText = styled.div `
|
|
75
|
+
font-size: ${props => props.theme.typography.fontSize.xs}px;
|
|
76
|
+
line-height: ${props => props.theme.typography.lineHeight.tight};
|
|
77
|
+
color: ${props => props.$error
|
|
78
|
+
? props.theme.colors.accent.error
|
|
79
|
+
: props.theme.colors.text.muted};
|
|
80
|
+
`;
|
|
81
|
+
/**
|
|
82
|
+
* A versatile input component for text entry in editor interfaces.
|
|
83
|
+
*
|
|
84
|
+
* Provides a clean, consistent text input with support for labels, helper text,
|
|
85
|
+
* icons, and various states. Optimized for editor UIs with compact sizing.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```tsx
|
|
89
|
+
* // Basic text input
|
|
90
|
+
* <Input
|
|
91
|
+
* placeholder="Enter text..."
|
|
92
|
+
* value={text}
|
|
93
|
+
* onChange={(e) => setText(e.target.value)}
|
|
94
|
+
* />
|
|
95
|
+
*
|
|
96
|
+
* // With label and helper text
|
|
97
|
+
* <Input
|
|
98
|
+
* label="Project Name"
|
|
99
|
+
* placeholder="My Project"
|
|
100
|
+
* helperText="Choose a unique name for your project"
|
|
101
|
+
* value={name}
|
|
102
|
+
* onChange={(e) => setName(e.target.value)}
|
|
103
|
+
* />
|
|
104
|
+
*
|
|
105
|
+
* // With icons and error state
|
|
106
|
+
* <Input
|
|
107
|
+
* label="Email"
|
|
108
|
+
* type="email"
|
|
109
|
+
* startIcon={<SearchIcon />}
|
|
110
|
+
* error={!!emailError}
|
|
111
|
+
* errorMessage={emailError}
|
|
112
|
+
* value={email}
|
|
113
|
+
* onChange={(e) => setEmail(e.target.value)}
|
|
114
|
+
* />
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
const Input = ({ value, defaultValue, placeholder, type = 'text', size = 'md', disabled = false, error = false, required = false, readOnly = false, label, helperText, errorMessage, startIcon, endIcon, className, style, css, onChange, onFocus, onBlur, onKeyDown, testId, ref, ...props }) => {
|
|
118
|
+
const [focused, setFocused] = React.useState(false);
|
|
119
|
+
const inputId = React.useId();
|
|
120
|
+
const handleFocus = (event) => {
|
|
121
|
+
setFocused(true);
|
|
122
|
+
onFocus?.(event);
|
|
123
|
+
};
|
|
124
|
+
const handleBlur = (event) => {
|
|
125
|
+
setFocused(false);
|
|
126
|
+
onBlur?.(event);
|
|
127
|
+
};
|
|
128
|
+
return (jsxs(StyledInputContainer, { className: className, style: style, "$size": size, "$error": error, "$disabled": disabled, "$focused": focused, "$css": css, children: [label && (jsxs(StyledLabel, { htmlFor: inputId, "$disabled": disabled, children: [label, required && jsx("span", { style: { color: 'var(--accent-error)' }, children: " *" })] })), jsxs(StyledInputWrapper, { "$size": size, "$error": error, "$disabled": disabled, "$focused": focused, children: [startIcon && jsx(StyledIcon, { "$position": "start", children: startIcon }), jsx(StyledInput, { ref: ref, id: inputId, type: type, value: value, defaultValue: defaultValue, placeholder: placeholder, disabled: disabled, required: required, readOnly: readOnly, "$size": size, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: onKeyDown, "data-testid": testId, ...props }), endIcon && jsx(StyledIcon, { "$position": "end", children: endIcon })] }), (helperText ?? (error && errorMessage)) && (jsx(StyledHelperText, { "$error": error, children: error && errorMessage ? errorMessage : helperText }))] }));
|
|
129
|
+
};
|
|
130
|
+
Input.displayName = 'Input';
|
|
131
|
+
|
|
132
|
+
export { Input };
|
|
133
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../../../src/components/primitives/Input/Input.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { processCss } from '../../../utils/styledUtils.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Get background color based on nesting level
|
|
8
|
+
*/
|
|
9
|
+
const getBackgroundColor = (nestLevel, theme) => {
|
|
10
|
+
const backgroundLevels = [
|
|
11
|
+
theme.colors.background.primary, // Level 0 - darkest
|
|
12
|
+
theme.colors.background.secondary, // Level 1
|
|
13
|
+
theme.colors.background.tertiary, // Level 2
|
|
14
|
+
theme.colors.background.elevated, // Level 3 - lightest
|
|
15
|
+
];
|
|
16
|
+
return backgroundLevels[nestLevel] ?? backgroundLevels[0];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Get box shadow based on elevation level
|
|
20
|
+
*/
|
|
21
|
+
const getElevationShadow = (elevation, theme) => {
|
|
22
|
+
const shadowLevels = [
|
|
23
|
+
'none', // Level 0 - no shadow
|
|
24
|
+
theme.shadows.sm, // Level 1 - small shadow
|
|
25
|
+
theme.shadows.md, // Level 2 - medium shadow
|
|
26
|
+
theme.shadows.lg, // Level 3 - large shadow
|
|
27
|
+
];
|
|
28
|
+
return shadowLevels[elevation] ?? 'none';
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Get padding value from theme spacing tokens
|
|
32
|
+
*/
|
|
33
|
+
const getPaddingValue = (spacing, theme) => {
|
|
34
|
+
return `${theme.spacing[spacing]}px`;
|
|
35
|
+
};
|
|
36
|
+
const StyledPaper = styled.div `
|
|
37
|
+
/* Base styles */
|
|
38
|
+
box-sizing: border-box;
|
|
39
|
+
position: relative;
|
|
40
|
+
|
|
41
|
+
/* Background based on nesting level */
|
|
42
|
+
background-color: ${props => getBackgroundColor(props.$nestLevel, props.theme)};
|
|
43
|
+
|
|
44
|
+
/* Border radius */
|
|
45
|
+
border-radius: ${props => {
|
|
46
|
+
if (props.$customRadius !== undefined) {
|
|
47
|
+
return typeof props.$customRadius === 'number'
|
|
48
|
+
? `${props.$customRadius}px`
|
|
49
|
+
: props.$customRadius;
|
|
50
|
+
}
|
|
51
|
+
return `${props.theme.borderRadius.md}px`;
|
|
52
|
+
}};
|
|
53
|
+
|
|
54
|
+
/* Border */
|
|
55
|
+
${props => props.$bordered &&
|
|
56
|
+
`
|
|
57
|
+
border: 1px solid ${props.theme.colors.border.default};
|
|
58
|
+
`}
|
|
59
|
+
|
|
60
|
+
/* Elevation shadow */
|
|
61
|
+
box-shadow: ${props => getElevationShadow(props.$elevation, props.theme)};
|
|
62
|
+
|
|
63
|
+
/* Padding */
|
|
64
|
+
padding: ${props => getPaddingValue(props.$padding, props.theme)};
|
|
65
|
+
|
|
66
|
+
/* Expansion */
|
|
67
|
+
${props => props.$expand &&
|
|
68
|
+
`
|
|
69
|
+
width: 100%;
|
|
70
|
+
height: 100%;
|
|
71
|
+
`}
|
|
72
|
+
|
|
73
|
+
/* Smooth transitions for interactive states */
|
|
74
|
+
transition: box-shadow ${props => props.theme.transitions.normal},
|
|
75
|
+
background-color ${props => props.theme.transitions.normal};
|
|
76
|
+
|
|
77
|
+
/* Hover enhancement for elevated papers */
|
|
78
|
+
${props => props.$elevation > 0 &&
|
|
79
|
+
`
|
|
80
|
+
&:hover {
|
|
81
|
+
box-shadow: ${props.$elevation === 1
|
|
82
|
+
? props.theme.shadows.md
|
|
83
|
+
: props.$elevation === 2
|
|
84
|
+
? props.theme.shadows.lg
|
|
85
|
+
: props.theme.shadows.xl};
|
|
86
|
+
}
|
|
87
|
+
`}
|
|
88
|
+
|
|
89
|
+
/* Custom CSS */
|
|
90
|
+
${props => processCss(props.$css, props.theme)}
|
|
91
|
+
`;
|
|
92
|
+
/**
|
|
93
|
+
* A versatile paper component providing surface elevation and visual hierarchy.
|
|
94
|
+
*
|
|
95
|
+
* Perfect for creating cards, panels, modals, and any content that needs to stand out
|
|
96
|
+
* from the background. Supports elevation shadows, automatic background adjustment
|
|
97
|
+
* for nested components, and flexible spacing control.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* // Basic paper with elevation
|
|
102
|
+
* <Paper elevation={2} padding="lg">
|
|
103
|
+
* <h3>Card Title</h3>
|
|
104
|
+
* <p>Card content goes here</p>
|
|
105
|
+
* </Paper>
|
|
106
|
+
*
|
|
107
|
+
* // Nested papers with automatic background adjustment
|
|
108
|
+
* <Paper nestLevel={0} padding="xl">
|
|
109
|
+
* <h2>Main Container</h2>
|
|
110
|
+
* <Paper nestLevel={1} padding="lg">
|
|
111
|
+
* <h3>Nested Section</h3>
|
|
112
|
+
* <Paper nestLevel={2} padding="md">
|
|
113
|
+
* <p>Deeply nested content</p>
|
|
114
|
+
* </Paper>
|
|
115
|
+
* </Paper>
|
|
116
|
+
* </Paper>
|
|
117
|
+
*
|
|
118
|
+
* // Bordered paper without shadow
|
|
119
|
+
* <Paper elevation={0} bordered padding="md">
|
|
120
|
+
* <p>Subtle outlined container</p>
|
|
121
|
+
* </Paper>
|
|
122
|
+
*
|
|
123
|
+
* // Full-width expanded paper
|
|
124
|
+
* <Paper expand elevation={1} padding="lg">
|
|
125
|
+
* <header>Full width header</header>
|
|
126
|
+
* <main>Main content area</main>
|
|
127
|
+
* </Paper>
|
|
128
|
+
*
|
|
129
|
+
* // Custom radius paper
|
|
130
|
+
* <Paper elevation={2} customRadius="12px" padding="lg">
|
|
131
|
+
* <p>Paper with custom border radius</p>
|
|
132
|
+
* </Paper>
|
|
133
|
+
*
|
|
134
|
+
* // Compact paper for small UI elements
|
|
135
|
+
* <Paper elevation={1} padding="xs">
|
|
136
|
+
* <Icon name="settings" />
|
|
137
|
+
* </Paper>
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
const Paper = /*#__PURE__*/ React.memo(({ children, elevation = 1, bordered = false, padding = 'md', nestLevel = 0, expand = false, customRadius, className, testId, css, style, ref, ...htmlProps }) => {
|
|
141
|
+
return (jsx(StyledPaper, { ref: ref, className: className, "$elevation": elevation, "$bordered": bordered, "$padding": padding, "$nestLevel": nestLevel, "$expand": expand, "$customRadius": customRadius, "$css": css, "data-testid": testId, style: style, ...htmlProps, children: children }));
|
|
142
|
+
});
|
|
143
|
+
Paper.displayName = 'Paper';
|
|
144
|
+
|
|
145
|
+
export { Paper };
|
|
146
|
+
//# sourceMappingURL=Paper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Paper.js","sources":["../../../../../../src/components/primitives/Paper/Paper.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|