entangle-ui 0.2.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 +23 -0
- package/dist/esm/components/Icons/CheckIcon.js +27 -0
- package/dist/esm/components/Icons/CheckIcon.js.map +1 -0
- package/dist/esm/components/Icons/ChevronDownIcon.js +27 -0
- package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -0
- package/dist/esm/components/Icons/ChevronUpIcon.js +27 -0
- package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -0
- package/dist/esm/components/Icons/CircleIcon.js +27 -0
- package/dist/esm/components/Icons/CircleIcon.js.map +1 -0
- package/dist/esm/components/Icons/CloseIcon.js +27 -0
- package/dist/esm/components/Icons/CloseIcon.js.map +1 -0
- package/dist/esm/components/Icons/EyeDropperIcon.js +28 -0
- package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentAlignedIcon.js +9 -0
- package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentAutoIcon.js +9 -0
- package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentFreeIcon.js +9 -0
- package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentLinearIcon.js +9 -0
- package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentMirroredIcon.js +9 -0
- package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -0
- package/dist/esm/components/Icons/TangentStepIcon.js +9 -0
- package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -0
- package/dist/esm/components/controls/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 -12
- package/dist/index.esm.js +0 -13962
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js +0 -14048
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
import { BaseComponent, Size } from '../../../types/common.js';
|
|
4
|
+
|
|
5
|
+
type PropertyInspectorSize = Size;
|
|
6
|
+
interface PropertyPanelBaseProps extends BaseComponent {
|
|
7
|
+
/**
|
|
8
|
+
* Panel content — PropertySection, PropertyGroup, or any elements
|
|
9
|
+
*/
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Content rendered in the fixed header area (above scrollable content)
|
|
13
|
+
*/
|
|
14
|
+
header?: React.ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Content rendered in the fixed footer area (below scrollable content)
|
|
17
|
+
*/
|
|
18
|
+
footer?: React.ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Size applied to all nested PropertySection and PropertyRow components.
|
|
21
|
+
* Individual components can override this.
|
|
22
|
+
* @default "md"
|
|
23
|
+
*/
|
|
24
|
+
size?: PropertyInspectorSize;
|
|
25
|
+
/**
|
|
26
|
+
* Maximum height of the panel (enables scrolling via ScrollArea)
|
|
27
|
+
* @default "100%"
|
|
28
|
+
*/
|
|
29
|
+
maxHeight?: number | string;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to show a search/filter input in the header
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
searchable?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Placeholder for the search input
|
|
37
|
+
* @default "Search properties..."
|
|
38
|
+
*/
|
|
39
|
+
searchPlaceholder?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Callback when search query changes
|
|
42
|
+
*/
|
|
43
|
+
onSearchChange?: (query: string) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Top padding for the scrollable content area (in px).
|
|
46
|
+
* Use this to increase/decrease the space before the first property section.
|
|
47
|
+
* @default theme.spacing.sm
|
|
48
|
+
*/
|
|
49
|
+
contentTopSpacing?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Bottom padding for the scrollable content area (in px).
|
|
52
|
+
* Use this to increase/decrease the space after the last property section.
|
|
53
|
+
* @default theme.spacing.md
|
|
54
|
+
*/
|
|
55
|
+
contentBottomSpacing?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Text displayed when no sections/rows match the search
|
|
58
|
+
* @default "No matching properties"
|
|
59
|
+
*/
|
|
60
|
+
emptySearchMessage?: string;
|
|
61
|
+
}
|
|
62
|
+
type PropertyPanelProps = Prettify<PropertyPanelBaseProps>;
|
|
63
|
+
interface PropertySectionBaseProps extends Omit<BaseComponent, 'onChange'> {
|
|
64
|
+
/**
|
|
65
|
+
* Section title displayed in the collapsible header
|
|
66
|
+
*/
|
|
67
|
+
title: string;
|
|
68
|
+
/**
|
|
69
|
+
* Unique identifier for this section (used for expansion state).
|
|
70
|
+
* Defaults to title if not provided.
|
|
71
|
+
*/
|
|
72
|
+
value?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Icon displayed before the section title
|
|
75
|
+
*/
|
|
76
|
+
icon?: React.ReactNode;
|
|
77
|
+
/**
|
|
78
|
+
* Action buttons rendered on the right side of the header.
|
|
79
|
+
* Clicking actions does NOT toggle the section.
|
|
80
|
+
*/
|
|
81
|
+
actions?: React.ReactNode;
|
|
82
|
+
/**
|
|
83
|
+
* Whether this section is expanded (controlled)
|
|
84
|
+
*/
|
|
85
|
+
expanded?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Whether this section starts expanded (uncontrolled)
|
|
88
|
+
* @default true
|
|
89
|
+
*/
|
|
90
|
+
defaultExpanded?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Callback when expanded state changes
|
|
93
|
+
*/
|
|
94
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
95
|
+
/**
|
|
96
|
+
* Whether to keep content mounted when collapsed
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
99
|
+
keepMounted?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Whether this section is disabled (not collapsible, dimmed)
|
|
102
|
+
* @default false
|
|
103
|
+
*/
|
|
104
|
+
disabled?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Size override for this section and its rows
|
|
107
|
+
*/
|
|
108
|
+
size?: PropertyInspectorSize;
|
|
109
|
+
/**
|
|
110
|
+
* Section content — PropertyRow, PropertyGroup, or any elements
|
|
111
|
+
*/
|
|
112
|
+
children: React.ReactNode;
|
|
113
|
+
/**
|
|
114
|
+
* Custom chevron indicator — pass `null` to hide
|
|
115
|
+
* @default built-in chevron icon
|
|
116
|
+
*/
|
|
117
|
+
indicator?: React.ReactNode | null;
|
|
118
|
+
/**
|
|
119
|
+
* Right-click context menu handler on the section header
|
|
120
|
+
*/
|
|
121
|
+
onContextMenu?: (event: React.MouseEvent) => void;
|
|
122
|
+
}
|
|
123
|
+
type PropertySectionProps = Prettify<PropertySectionBaseProps>;
|
|
124
|
+
interface PropertyRowBaseProps extends BaseComponent {
|
|
125
|
+
/**
|
|
126
|
+
* Property label text
|
|
127
|
+
*/
|
|
128
|
+
label: string;
|
|
129
|
+
/**
|
|
130
|
+
* Tooltip text for the label (shown on hover)
|
|
131
|
+
*/
|
|
132
|
+
tooltip?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Control content — any form control or custom content.
|
|
135
|
+
* Displayed on the right side, fills remaining space.
|
|
136
|
+
*/
|
|
137
|
+
children: React.ReactNode;
|
|
138
|
+
/**
|
|
139
|
+
* Whether the row spans full width (label above, control below)
|
|
140
|
+
* @default false
|
|
141
|
+
*/
|
|
142
|
+
fullWidth?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Label/value split ratio as percentages [label%, value%].
|
|
145
|
+
* @default [40, 60]
|
|
146
|
+
*/
|
|
147
|
+
splitRatio?: [number, number];
|
|
148
|
+
/**
|
|
149
|
+
* Whether this property has been modified from its default value.
|
|
150
|
+
* Shows a visual indicator (dot or bold label).
|
|
151
|
+
* @default false
|
|
152
|
+
*/
|
|
153
|
+
modified?: boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Whether this row is disabled
|
|
156
|
+
* @default false
|
|
157
|
+
*/
|
|
158
|
+
disabled?: boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Whether this row is visible (controlled by search filtering)
|
|
161
|
+
* @default true
|
|
162
|
+
*/
|
|
163
|
+
visible?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Size override for this row
|
|
166
|
+
*/
|
|
167
|
+
size?: PropertyInspectorSize;
|
|
168
|
+
/**
|
|
169
|
+
* Action button on the right edge of the row (e.g., reset to default).
|
|
170
|
+
* Appears on hover.
|
|
171
|
+
*/
|
|
172
|
+
action?: React.ReactNode;
|
|
173
|
+
/**
|
|
174
|
+
* Callback when label is right-clicked (for context menu)
|
|
175
|
+
*/
|
|
176
|
+
onLabelContextMenu?: (event: React.MouseEvent) => void;
|
|
177
|
+
/**
|
|
178
|
+
* Callback when reset action is triggered.
|
|
179
|
+
* If provided, a reset button automatically appears on hover.
|
|
180
|
+
*/
|
|
181
|
+
onReset?: () => void;
|
|
182
|
+
}
|
|
183
|
+
type PropertyRowProps = Prettify<PropertyRowBaseProps>;
|
|
184
|
+
interface PropertyGroupBaseProps extends BaseComponent {
|
|
185
|
+
/**
|
|
186
|
+
* Optional group title (rendered as a small label divider)
|
|
187
|
+
*/
|
|
188
|
+
title?: string;
|
|
189
|
+
/**
|
|
190
|
+
* Group content — PropertyRow elements
|
|
191
|
+
*/
|
|
192
|
+
children: React.ReactNode;
|
|
193
|
+
/**
|
|
194
|
+
* Indent level for nested groups (number of indent steps)
|
|
195
|
+
* @default 0
|
|
196
|
+
*/
|
|
197
|
+
indent?: number;
|
|
198
|
+
/**
|
|
199
|
+
* Whether all rows in this group are disabled
|
|
200
|
+
* @default false
|
|
201
|
+
*/
|
|
202
|
+
disabled?: boolean;
|
|
203
|
+
}
|
|
204
|
+
type PropertyGroupProps = Prettify<PropertyGroupBaseProps>;
|
|
205
|
+
interface PropertyUndoEntry<T = unknown> {
|
|
206
|
+
/** Property path or identifier */
|
|
207
|
+
propertyId: string;
|
|
208
|
+
/** Value before the change */
|
|
209
|
+
previousValue: T;
|
|
210
|
+
/** Value after the change */
|
|
211
|
+
newValue: T;
|
|
212
|
+
/** Human-readable description */
|
|
213
|
+
label: string;
|
|
214
|
+
/** Timestamp */
|
|
215
|
+
timestamp: number;
|
|
216
|
+
}
|
|
217
|
+
interface UsePropertyUndoOptions {
|
|
218
|
+
/** Maximum undo stack size @default 50 */
|
|
219
|
+
maxHistory?: number;
|
|
220
|
+
}
|
|
221
|
+
interface UsePropertyUndoReturn<T = unknown> {
|
|
222
|
+
/** Wrap a value change to record it in the undo stack */
|
|
223
|
+
record: (entry: Omit<PropertyUndoEntry<T>, 'timestamp'>) => void;
|
|
224
|
+
/** Undo the last change — returns the entry that was undone, or null */
|
|
225
|
+
undo: () => PropertyUndoEntry<T> | null;
|
|
226
|
+
/** Redo the last undone change — returns the entry, or null */
|
|
227
|
+
redo: () => PropertyUndoEntry<T> | null;
|
|
228
|
+
/** Whether undo is available */
|
|
229
|
+
canUndo: boolean;
|
|
230
|
+
/** Whether redo is available */
|
|
231
|
+
canRedo: boolean;
|
|
232
|
+
/** Full undo history */
|
|
233
|
+
history: PropertyUndoEntry<T>[];
|
|
234
|
+
/** Clear all history */
|
|
235
|
+
clear: () => void;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export type { PropertyGroupBaseProps, PropertyGroupProps, PropertyInspectorSize, PropertyPanelBaseProps, PropertyPanelProps, PropertyRowBaseProps, PropertyRowProps, PropertySectionBaseProps, PropertySectionProps, PropertyUndoEntry, UsePropertyUndoOptions, UsePropertyUndoReturn };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UsePropertyUndoOptions, UsePropertyUndoReturn } from './PropertyInspector.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Lightweight undo/redo stack for property changes.
|
|
5
|
+
* Records entries with property identifiers and values for precise undo control.
|
|
6
|
+
*/
|
|
7
|
+
declare function usePropertyUndo<T = unknown>(options?: UsePropertyUndoOptions): UsePropertyUndoReturn<T>;
|
|
8
|
+
|
|
9
|
+
export { usePropertyUndo };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DialogProps } from './Dialog.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Dialog component for modal overlays in editor interfaces.
|
|
6
|
+
*
|
|
7
|
+
* Renders an accessible modal dialog with overlay, focus trap,
|
|
8
|
+
* and keyboard support. Compound component pattern: use with
|
|
9
|
+
* DialogHeader, DialogBody, DialogFooter, and DialogClose.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <Dialog open={isOpen} onClose={() => setIsOpen(false)} title="Confirm">
|
|
14
|
+
* <DialogHeader>Confirm Action</DialogHeader>
|
|
15
|
+
* <DialogBody>Are you sure?</DialogBody>
|
|
16
|
+
* <DialogFooter align="right">
|
|
17
|
+
* <Button onClick={() => setIsOpen(false)}>Cancel</Button>
|
|
18
|
+
* <Button variant="filled">Confirm</Button>
|
|
19
|
+
* </DialogFooter>
|
|
20
|
+
* </Dialog>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const Dialog: React.FC<DialogProps>;
|
|
24
|
+
|
|
25
|
+
export { Dialog };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
import { BaseComponent } from '../../../types/common.js';
|
|
4
|
+
|
|
5
|
+
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen';
|
|
6
|
+
interface DialogBaseProps extends BaseComponent {
|
|
7
|
+
/** Whether the dialog is open */
|
|
8
|
+
open: boolean;
|
|
9
|
+
/** Callback fired when the dialog should close */
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
/** Dialog width preset */
|
|
12
|
+
size?: DialogSize;
|
|
13
|
+
/** Dialog title — used for aria-labelledby */
|
|
14
|
+
title?: string;
|
|
15
|
+
/** Dialog description — used for aria-describedby */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Whether clicking the overlay closes the dialog */
|
|
18
|
+
closeOnOverlayClick?: boolean;
|
|
19
|
+
/** Whether pressing Escape closes the dialog */
|
|
20
|
+
closeOnEscape?: boolean;
|
|
21
|
+
/** Whether to show the overlay backdrop */
|
|
22
|
+
showOverlay?: boolean;
|
|
23
|
+
/** Whether to trap focus within the dialog */
|
|
24
|
+
trapFocus?: boolean;
|
|
25
|
+
/** Ref to the element that should receive initial focus */
|
|
26
|
+
initialFocusRef?: React.RefObject<HTMLElement>;
|
|
27
|
+
/** Whether to render the dialog in a portal (document.body) */
|
|
28
|
+
portal?: boolean;
|
|
29
|
+
/** Dialog content (use DialogHeader, DialogBody, DialogFooter) */
|
|
30
|
+
children: React.ReactNode;
|
|
31
|
+
}
|
|
32
|
+
type DialogProps = Prettify<DialogBaseProps>;
|
|
33
|
+
interface DialogHeaderBaseProps extends BaseComponent {
|
|
34
|
+
/** Header content (typically a title) */
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
/** Whether to show the close button */
|
|
37
|
+
showClose?: boolean;
|
|
38
|
+
/** Optional description text below the title */
|
|
39
|
+
description?: string;
|
|
40
|
+
}
|
|
41
|
+
type DialogHeaderProps = Prettify<DialogHeaderBaseProps>;
|
|
42
|
+
interface DialogBodyBaseProps extends BaseComponent {
|
|
43
|
+
/** Body content */
|
|
44
|
+
children: React.ReactNode;
|
|
45
|
+
}
|
|
46
|
+
type DialogBodyProps = Prettify<DialogBodyBaseProps>;
|
|
47
|
+
interface DialogFooterBaseProps extends BaseComponent {
|
|
48
|
+
/** Footer content (typically action buttons) */
|
|
49
|
+
children: React.ReactNode;
|
|
50
|
+
/** Horizontal alignment of footer content */
|
|
51
|
+
align?: 'left' | 'center' | 'right' | 'space-between';
|
|
52
|
+
}
|
|
53
|
+
type DialogFooterProps = Prettify<DialogFooterBaseProps>;
|
|
54
|
+
|
|
55
|
+
export type { DialogBaseProps, DialogBodyBaseProps, DialogBodyProps, DialogFooterBaseProps, DialogFooterProps, DialogHeaderBaseProps, DialogHeaderProps, DialogProps, DialogSize };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DialogBodyProps } from './Dialog.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* DialogBody renders the scrollable content area of a Dialog.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <DialogBody>
|
|
10
|
+
* <p>Dialog content goes here.</p>
|
|
11
|
+
* </DialogBody>
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare const DialogBody: React.FC<DialogBodyProps>;
|
|
15
|
+
|
|
16
|
+
export { DialogBody };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface DialogCloseProps {
|
|
4
|
+
/** The element to wrap with close behavior */
|
|
5
|
+
children: React.ReactElement<{
|
|
6
|
+
onClick?: React.MouseEventHandler;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* DialogClose wraps a child element and adds onClick to close the dialog.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <DialogClose>
|
|
15
|
+
* <Button>Cancel</Button>
|
|
16
|
+
* </DialogClose>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare const DialogClose: React.FC<DialogCloseProps>;
|
|
20
|
+
|
|
21
|
+
export { DialogClose };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DialogFooterProps } from './Dialog.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* DialogFooter renders the action area at the bottom of a Dialog.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <DialogFooter align="right">
|
|
10
|
+
* <Button onClick={onCancel}>Cancel</Button>
|
|
11
|
+
* <Button variant="filled" onClick={onConfirm}>Confirm</Button>
|
|
12
|
+
* </DialogFooter>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare const DialogFooter: React.FC<DialogFooterProps>;
|
|
16
|
+
|
|
17
|
+
export { DialogFooter };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DialogHeaderProps } from './Dialog.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* DialogHeader renders the title, optional description, and close button
|
|
6
|
+
* for a Dialog.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <DialogHeader description="This cannot be undone">
|
|
11
|
+
* Delete Item
|
|
12
|
+
* </DialogHeader>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare const DialogHeader: React.FC<DialogHeaderProps>;
|
|
16
|
+
|
|
17
|
+
export { DialogHeader };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Prettify } from '../../../types/utilities.js';
|
|
3
|
+
|
|
4
|
+
type ToastSeverity = 'info' | 'success' | 'warning' | 'error';
|
|
5
|
+
type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
|
|
6
|
+
interface ToastData {
|
|
7
|
+
id?: string;
|
|
8
|
+
title?: string;
|
|
9
|
+
message: string;
|
|
10
|
+
severity?: ToastSeverity;
|
|
11
|
+
duration?: number;
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
showProgress?: boolean;
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
action?: {
|
|
16
|
+
label: string;
|
|
17
|
+
onClick: () => void;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
interface ToastProviderBaseProps {
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
position?: ToastPosition;
|
|
23
|
+
maxVisible?: number;
|
|
24
|
+
defaultDuration?: number;
|
|
25
|
+
gap?: number;
|
|
26
|
+
zIndex?: number;
|
|
27
|
+
}
|
|
28
|
+
type ToastProviderProps = Prettify<ToastProviderBaseProps>;
|
|
29
|
+
interface UseToastReturn {
|
|
30
|
+
toast: (data: ToastData) => string;
|
|
31
|
+
info: (message: string, options?: Partial<ToastData>) => string;
|
|
32
|
+
success: (message: string, options?: Partial<ToastData>) => string;
|
|
33
|
+
warning: (message: string, options?: Partial<ToastData>) => string;
|
|
34
|
+
error: (message: string, options?: Partial<ToastData>) => string;
|
|
35
|
+
dismiss: (id: string) => void;
|
|
36
|
+
dismissAll: () => void;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type { ToastData, ToastPosition, ToastProviderBaseProps, ToastProviderProps, ToastSeverity, UseToastReturn };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ToastProviderProps } from './Toast.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* ToastProvider manages toast notification state and renders them via portal.
|
|
6
|
+
*
|
|
7
|
+
* Wrap your application (or a section of it) with this provider, then use
|
|
8
|
+
* the `useToast()` hook to trigger notifications from any child component.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <ToastProvider position="bottom-right" maxVisible={5}>
|
|
13
|
+
* <App />
|
|
14
|
+
* </ToastProvider>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare const ToastProvider: React.FC<ToastProviderProps>;
|
|
18
|
+
|
|
19
|
+
export { ToastProvider };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UseToastReturn } from './Toast.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Hook to trigger toast notifications from any component
|
|
5
|
+
* inside a `<ToastProvider>`.
|
|
6
|
+
*
|
|
7
|
+
* @throws Error if used outside of a `<ToastProvider>`
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const { toast, success, error, dismiss } = useToast();
|
|
12
|
+
*
|
|
13
|
+
* success('File saved successfully');
|
|
14
|
+
* error('Failed to export', { title: 'Export Error' });
|
|
15
|
+
*
|
|
16
|
+
* const id = toast({ message: 'Custom toast', severity: 'info' });
|
|
17
|
+
* dismiss(id);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare function useToast(): UseToastReturn;
|
|
21
|
+
|
|
22
|
+
export { useToast };
|