entangle-ui 0.7.0 → 0.8.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 +180 -0
- package/dist/esm/assets/src/components/controls/ColorPicker/{ColorPicker.css.ts.vanilla-Do5nbdgO.css → ColorPicker.css.ts.vanilla-D7ccNVQx.css} +14 -0
- package/dist/esm/assets/src/components/controls/Select/{Select.css.ts.vanilla-D4C059Ua.css → Select.css.ts.vanilla-oZnFUorL.css} +11 -0
- package/dist/esm/assets/src/components/controls/Slider/{Slider.css.ts.vanilla-C5SJ_7A1.css → Slider.css.ts.vanilla-Cqm3fQ0S.css} +14 -0
- package/dist/esm/assets/src/components/controls/TreeView/{TreeNode.css.ts.vanilla-D3ylUhuW.css → TreeNode.css.ts.vanilla-B_f8pUb8.css} +5 -0
- package/dist/esm/assets/src/components/controls/VectorInput/{VectorInput.css.ts.vanilla-BJma3iQ4.css → VectorInput.css.ts.vanilla-BpoiuhDA.css} +9 -0
- package/dist/esm/assets/src/components/editor/ChatPanel/{ChatPanel.css.ts.vanilla-BI5569ZO.css → ChatPanel.css.ts.vanilla-CLn8idfz.css} +117 -133
- package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertySection.css.ts.vanilla-DJBtY_xk.css → PropertySection.css.ts.vanilla-DK12opZc.css} +5 -0
- package/dist/esm/assets/src/components/editor/TransformControl/TransformControl.css.ts.vanilla-H-iW-T0s.css +82 -0
- package/dist/esm/assets/src/components/feedback/Alert/Alert.css.ts.vanilla-CRAI-xHx.css +84 -0
- package/dist/esm/assets/src/components/feedback/Dialog/{Dialog.css.ts.vanilla-BrXTOHwS.css → Dialog.css.ts.vanilla-BxBFePLG.css} +8 -0
- package/dist/esm/assets/src/components/feedback/ProgressBar/ProgressBar.css.ts.vanilla-4WLVf1hx.css +152 -0
- package/dist/esm/assets/src/components/feedback/Skeleton/Skeleton.css.ts.vanilla-Dk2_SSsC.css +39 -0
- package/dist/esm/assets/src/components/feedback/Toast/{ToastItem.css.ts.vanilla-D6UuPKAj.css → ToastItem.css.ts.vanilla-DUeXqiaH.css} +9 -0
- package/dist/esm/assets/src/components/form/{InputWrapper.css.ts.vanilla-Bl7u62PI.css → InputWrapper.css.ts.vanilla-CLpKbEjq.css} +5 -0
- package/dist/esm/assets/src/components/layout/Accordion/{Accordion.css.ts.vanilla-Ck5Yew0e.css → Accordion.css.ts.vanilla-CJQum8px.css} +8 -0
- package/dist/esm/assets/src/components/navigation/Breadcrumbs/Breadcrumbs.css.ts.vanilla-DZ4jm_bw.css +128 -0
- package/dist/esm/assets/src/components/navigation/SegmentedControl/SegmentedControl.css.ts.vanilla-BHOnDD2B.css +197 -0
- package/dist/esm/assets/src/components/navigation/Tabs/{Tabs.css.ts.vanilla-D7RGpDPC.css → Tabs.css.ts.vanilla-CQucokdg.css} +14 -0
- package/dist/esm/assets/src/components/primitives/Avatar/Avatar.css.ts.vanilla-jG5hUudL.css +149 -0
- package/dist/esm/assets/src/components/primitives/Button/{Button.css.ts.vanilla-CT592JL7.css → Button.css.ts.vanilla-DXJcIb94.css} +9 -0
- package/dist/esm/assets/src/components/primitives/Checkbox/{Checkbox.css.ts.vanilla-dvrGPiPs.css → Checkbox.css.ts.vanilla-DNa-Gqto.css} +5 -0
- package/dist/esm/assets/src/components/primitives/Collapsible/{Collapsible.css.ts.vanilla-C1rYV-JT.css → Collapsible.css.ts.vanilla-Dz4Vy-ob.css} +8 -0
- package/dist/esm/assets/src/components/primitives/IconButton/{IconButton.css.ts.vanilla-C-xAQoR3.css → IconButton.css.ts.vanilla-CPkPZJRU.css} +9 -0
- package/dist/esm/assets/src/components/primitives/Kbd/Kbd.css.ts.vanilla-Co2-Rxgv.css +60 -0
- package/dist/esm/assets/src/components/primitives/Link/Link.css.ts.vanilla-q-bqHUOF.css +82 -0
- package/dist/esm/assets/src/components/primitives/Popover/{Popover.css.ts.vanilla-DW6aAr57.css → Popover.css.ts.vanilla-KCfDIs4G.css} +5 -0
- package/dist/esm/assets/src/components/primitives/Radio/Radio.css.ts.vanilla-CPjdD-ZM.css +127 -0
- package/dist/esm/assets/src/components/primitives/Switch/{Switch.css.ts.vanilla-CxqwUToB.css → Switch.css.ts.vanilla-CDSt-M5W.css} +5 -0
- package/dist/esm/assets/src/components/primitives/TextArea/{TextArea.css.ts.vanilla-DTOMjGkp.css → TextArea.css.ts.vanilla-M9l1t4HR.css} +5 -0
- package/dist/esm/assets/src/components/primitives/VisuallyHidden/VisuallyHidden.css.ts.vanilla-DBulVh4Q.css +36 -0
- package/dist/esm/assets/src/theme/lightTheme.css.ts.vanilla-OaRI_wIc.css +99 -0
- package/dist/esm/assets/src/utils/{animations.css.ts.vanilla-DOVlpljP.css → animations.css.ts.vanilla-CRLFsBSV.css} +22 -8
- package/dist/esm/components/Icons/AddIcon.js +30 -0
- package/dist/esm/components/Icons/AddIcon.js.map +1 -0
- package/dist/esm/components/Icons/AiChatIcon.js +31 -0
- package/dist/esm/components/Icons/AiChatIcon.js.map +1 -0
- package/dist/esm/components/Icons/AiSparklesIcon.js +31 -0
- package/dist/esm/components/Icons/AiSparklesIcon.js.map +1 -0
- package/dist/esm/components/Icons/ArrowDownIcon.js +30 -0
- package/dist/esm/components/Icons/ArrowDownIcon.js.map +1 -0
- package/dist/esm/components/Icons/ArrowLeftIcon.js +30 -0
- package/dist/esm/components/Icons/ArrowLeftIcon.js.map +1 -0
- package/dist/esm/components/Icons/ArrowRightIcon.js +30 -0
- package/dist/esm/components/Icons/ArrowRightIcon.js.map +1 -0
- package/dist/esm/components/Icons/ArrowUpIcon.js +30 -0
- package/dist/esm/components/Icons/ArrowUpIcon.js.map +1 -0
- package/dist/esm/components/Icons/BookmarkIcon.js +30 -0
- package/dist/esm/components/Icons/BookmarkIcon.js.map +1 -0
- package/dist/esm/components/Icons/CalendarIcon.js +30 -0
- package/dist/esm/components/Icons/CalendarIcon.js.map +1 -0
- package/dist/esm/components/Icons/ClockIcon.js +30 -0
- package/dist/esm/components/Icons/ClockIcon.js.map +1 -0
- package/dist/esm/components/Icons/CodeIcon.js +30 -0
- package/dist/esm/components/Icons/CodeIcon.js.map +1 -0
- package/dist/esm/components/Icons/CopyIcon.js +30 -0
- package/dist/esm/components/Icons/CopyIcon.js.map +1 -0
- package/dist/esm/components/Icons/CutIcon.js +30 -0
- package/dist/esm/components/Icons/CutIcon.js.map +1 -0
- package/dist/esm/components/Icons/DownloadIcon.js +30 -0
- package/dist/esm/components/Icons/DownloadIcon.js.map +1 -0
- package/dist/esm/components/Icons/EditIcon.js +30 -0
- package/dist/esm/components/Icons/EditIcon.js.map +1 -0
- package/dist/esm/components/Icons/ErrorIcon.js +30 -0
- package/dist/esm/components/Icons/ErrorIcon.js.map +1 -0
- package/dist/esm/components/Icons/EyeIcon.js +30 -0
- package/dist/esm/components/Icons/EyeIcon.js.map +1 -0
- package/dist/esm/components/Icons/FilterIcon.js +30 -0
- package/dist/esm/components/Icons/FilterIcon.js.map +1 -0
- package/dist/esm/components/Icons/FolderIcon.js +30 -0
- package/dist/esm/components/Icons/FolderIcon.js.map +1 -0
- package/dist/esm/components/Icons/FullscreenIcon.js +30 -0
- package/dist/esm/components/Icons/FullscreenIcon.js.map +1 -0
- package/dist/esm/components/Icons/GridIcon.js +30 -0
- package/dist/esm/components/Icons/GridIcon.js.map +1 -0
- package/dist/esm/components/Icons/HeartIcon.js +30 -0
- package/dist/esm/components/Icons/HeartIcon.js.map +1 -0
- package/dist/esm/components/Icons/HelpIcon.js +30 -0
- package/dist/esm/components/Icons/HelpIcon.js.map +1 -0
- package/dist/esm/components/Icons/HomeIcon.js +30 -0
- package/dist/esm/components/Icons/HomeIcon.js.map +1 -0
- package/dist/esm/components/Icons/InfoIcon.js +30 -0
- package/dist/esm/components/Icons/InfoIcon.js.map +1 -0
- package/dist/esm/components/Icons/LinkIcon.js +30 -0
- package/dist/esm/components/Icons/LinkIcon.js.map +1 -0
- package/dist/esm/components/Icons/ListIcon.js +30 -0
- package/dist/esm/components/Icons/ListIcon.js.map +1 -0
- package/dist/esm/components/Icons/LockIcon.js +30 -0
- package/dist/esm/components/Icons/LockIcon.js.map +1 -0
- package/dist/esm/components/Icons/MaximizeIcon.js +30 -0
- package/dist/esm/components/Icons/MaximizeIcon.js.map +1 -0
- package/dist/esm/components/Icons/MenuIcon.js +30 -0
- package/dist/esm/components/Icons/MenuIcon.js.map +1 -0
- package/dist/esm/components/Icons/MinimizeIcon.js +30 -0
- package/dist/esm/components/Icons/MinimizeIcon.js.map +1 -0
- package/dist/esm/components/Icons/PasteIcon.js +30 -0
- package/dist/esm/components/Icons/PasteIcon.js.map +1 -0
- package/dist/esm/components/Icons/PlayIcon.js +30 -0
- package/dist/esm/components/Icons/PlayIcon.js.map +1 -0
- package/dist/esm/components/Icons/RedoIcon.js +30 -0
- package/dist/esm/components/Icons/RedoIcon.js.map +1 -0
- package/dist/esm/components/Icons/RefreshIcon.js +30 -0
- package/dist/esm/components/Icons/RefreshIcon.js.map +1 -0
- package/dist/esm/components/Icons/RobotIcon.js +30 -0
- package/dist/esm/components/Icons/RobotIcon.js.map +1 -0
- package/dist/esm/components/Icons/SaveIcon.js +30 -0
- package/dist/esm/components/Icons/SaveIcon.js.map +1 -0
- package/dist/esm/components/Icons/SearchIcon.js +30 -0
- package/dist/esm/components/Icons/SearchIcon.js.map +1 -0
- package/dist/esm/components/Icons/SettingsIcon.js +30 -0
- package/dist/esm/components/Icons/SettingsIcon.js.map +1 -0
- package/dist/esm/components/Icons/SortIcon.js +30 -0
- package/dist/esm/components/Icons/SortIcon.js.map +1 -0
- package/dist/esm/components/Icons/StarIcon.js +30 -0
- package/dist/esm/components/Icons/StarIcon.js.map +1 -0
- package/dist/esm/components/Icons/SuccessIcon.js +30 -0
- package/dist/esm/components/Icons/SuccessIcon.js.map +1 -0
- package/dist/esm/components/Icons/TagIcon.js +30 -0
- package/dist/esm/components/Icons/TagIcon.js.map +1 -0
- package/dist/esm/components/Icons/TrashIcon.js +30 -0
- package/dist/esm/components/Icons/TrashIcon.js.map +1 -0
- package/dist/esm/components/Icons/UndoIcon.js +30 -0
- package/dist/esm/components/Icons/UndoIcon.js.map +1 -0
- package/dist/esm/components/Icons/UnlockIcon.js +30 -0
- package/dist/esm/components/Icons/UnlockIcon.js.map +1 -0
- package/dist/esm/components/Icons/UploadIcon.js +30 -0
- package/dist/esm/components/Icons/UploadIcon.js.map +1 -0
- package/dist/esm/components/Icons/UserIcon.js +30 -0
- package/dist/esm/components/Icons/UserIcon.js.map +1 -0
- package/dist/esm/components/Icons/WarningIcon.js +30 -0
- package/dist/esm/components/Icons/WarningIcon.js.map +1 -0
- package/dist/esm/components/Icons/ZoomInIcon.js +30 -0
- package/dist/esm/components/Icons/ZoomInIcon.js.map +1 -0
- package/dist/esm/components/Icons/ZoomOutIcon.js +30 -0
- package/dist/esm/components/Icons/ZoomOutIcon.js.map +1 -0
- package/dist/esm/components/controls/ColorPicker/ColorPicker.css.js +1 -1
- package/dist/esm/components/controls/NumberInput/useNumberInput.js +2 -1
- package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
- package/dist/esm/components/controls/Select/Select.css.js +1 -1
- package/dist/esm/components/controls/Slider/Slider.css.js +1 -1
- package/dist/esm/components/controls/TreeView/TreeNode.css.js +1 -1
- package/dist/esm/components/controls/VectorInput/VectorInput.css.js +1 -1
- package/dist/esm/components/controls/VectorInput/VectorInput.js +1 -0
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js +4 -12
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +4 -10
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js +72 -74
- package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js +22 -28
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +1 -1
- package/dist/esm/components/editor/TransformControl/TransformControl.css.js +11 -0
- package/dist/esm/components/editor/TransformControl/TransformControl.css.js.map +1 -0
- package/dist/esm/components/editor/TransformControl/TransformControl.js +158 -0
- package/dist/esm/components/editor/TransformControl/TransformControl.js.map +1 -0
- package/dist/esm/components/feedback/Alert/Alert.css.js +16 -0
- package/dist/esm/components/feedback/Alert/Alert.css.js.map +1 -0
- package/dist/esm/components/feedback/Alert/Alert.js +90 -0
- package/dist/esm/components/feedback/Alert/Alert.js.map +1 -0
- package/dist/esm/components/feedback/Alert/AlertActions.js +30 -0
- package/dist/esm/components/feedback/Alert/AlertActions.js.map +1 -0
- package/dist/esm/components/feedback/Alert/AlertDescription.js +28 -0
- package/dist/esm/components/feedback/Alert/AlertDescription.js.map +1 -0
- package/dist/esm/components/feedback/Alert/AlertTitle.js +28 -0
- package/dist/esm/components/feedback/Alert/AlertTitle.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/Dialog.css.js +1 -1
- package/dist/esm/components/feedback/Dialog/Dialog.js +4 -12
- package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +10 -3
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
- package/dist/esm/components/feedback/ProgressBar/CircularProgress.js +113 -0
- package/dist/esm/components/feedback/ProgressBar/CircularProgress.js.map +1 -0
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.css.js +22 -0
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.css.js.map +1 -0
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.js +80 -0
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/Skeleton.css.js +13 -0
- package/dist/esm/components/feedback/Skeleton/Skeleton.css.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/Skeleton.js +78 -0
- package/dist/esm/components/feedback/Skeleton/Skeleton.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js +58 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js.map +1 -0
- package/dist/esm/components/feedback/Spinner/Spinner.css.js +1 -1
- package/dist/esm/components/feedback/Toast/ToastItem.css.js +1 -1
- package/dist/esm/components/form/InputWrapper.css.js +1 -1
- package/dist/esm/components/layout/Accordion/Accordion.css.js +1 -1
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js +17 -20
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/layout/SplitPane/SplitPane.js +2 -10
- package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +49 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +89 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js +22 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js.map +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.css.js +16 -0
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.css.js.map +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +152 -0
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.css.js +15 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.css.js.map +1 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js +240 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js +83 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js.map +1 -0
- package/dist/esm/components/navigation/Tabs/Tab.js +0 -1
- package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/Tabs.css.js +1 -1
- package/dist/esm/components/primitives/Avatar/Avatar.css.js +16 -0
- package/dist/esm/components/primitives/Avatar/Avatar.css.js.map +1 -0
- package/dist/esm/components/primitives/Avatar/Avatar.js +138 -0
- package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -0
- package/dist/esm/components/primitives/Avatar/AvatarGroup.js +81 -0
- package/dist/esm/components/primitives/Avatar/AvatarGroup.js.map +1 -0
- package/dist/esm/components/primitives/Button/Button.css.js +1 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.css.js +1 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.js +9 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/primitives/Collapsible/Collapsible.css.js +1 -1
- package/dist/esm/components/primitives/IconButton/IconButton.css.js +1 -1
- package/dist/esm/components/primitives/Kbd/Kbd.css.js +9 -0
- package/dist/esm/components/primitives/Kbd/Kbd.css.js.map +1 -0
- package/dist/esm/components/primitives/Kbd/Kbd.js +46 -0
- package/dist/esm/components/primitives/Kbd/Kbd.js.map +1 -0
- package/dist/esm/components/primitives/Link/Link.css.js +11 -0
- package/dist/esm/components/primitives/Link/Link.css.js.map +1 -0
- package/dist/esm/components/primitives/Link/Link.js +160 -0
- package/dist/esm/components/primitives/Link/Link.js.map +1 -0
- package/dist/esm/components/primitives/Popover/Popover.css.js +1 -1
- package/dist/esm/components/primitives/Radio/Radio.css.js +18 -0
- package/dist/esm/components/primitives/Radio/Radio.css.js.map +1 -0
- package/dist/esm/components/primitives/Radio/Radio.js +109 -0
- package/dist/esm/components/primitives/Radio/Radio.js.map +1 -0
- package/dist/esm/components/primitives/Radio/RadioGroup.js +82 -0
- package/dist/esm/components/primitives/Radio/RadioGroup.js.map +1 -0
- package/dist/esm/components/primitives/Switch/Switch.css.js +1 -1
- package/dist/esm/components/primitives/TextArea/TextArea.css.js +1 -1
- package/dist/esm/components/primitives/Tooltip/Tooltip.js +7 -2
- package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.css.js +7 -0
- package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.css.js.map +1 -0
- package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js +38 -0
- package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +2 -10
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
- package/dist/esm/context/KeyboardContext.js +1 -0
- package/dist/esm/context/KeyboardContext.js.map +1 -1
- package/dist/esm/hooks/useClickOutside/useClickOutside.js +60 -0
- package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -0
- package/dist/esm/hooks/useClipboard/useClipboard.js +147 -0
- package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -0
- package/dist/esm/hooks/useControlledState/useControlledState.js +75 -0
- package/dist/esm/hooks/useControlledState/useControlledState.js.map +1 -0
- package/dist/esm/hooks/useDisclosure/useDisclosure.js +49 -0
- package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -0
- package/dist/esm/{components/feedback/Dialog → hooks/useFocusTrap}/useFocusTrap.js +7 -7
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +1 -0
- package/dist/esm/hooks/useHotkey/useHotkey.js +203 -0
- package/dist/esm/hooks/useHotkey/useHotkey.js.map +1 -0
- package/dist/esm/hooks/useKeyboard/useKeyboard.js +56 -0
- package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -0
- package/dist/esm/hooks/useKeyboard/utils.js +56 -0
- package/dist/esm/hooks/useKeyboard/utils.js.map +1 -0
- package/dist/esm/hooks/useMergedRef/useMergedRef.js +39 -0
- package/dist/esm/hooks/useMergedRef/useMergedRef.js.map +1 -0
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +75 -0
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -0
- package/dist/esm/hooks/useTheme/useTheme.js +198 -0
- package/dist/esm/hooks/useTheme/useTheme.js.map +1 -0
- package/dist/esm/index.js +40 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/createLightTheme.js +29 -0
- package/dist/esm/theme/createLightTheme.js.map +1 -0
- package/dist/esm/theme/darkThemeValues.js +155 -0
- package/dist/esm/theme/darkThemeValues.js.map +1 -0
- package/dist/esm/theme/index.js +10 -0
- package/dist/esm/theme/index.js.map +1 -0
- package/dist/esm/theme/lightTheme.css.js +6 -0
- package/dist/esm/theme/lightTheme.css.js.map +1 -0
- package/dist/esm/theme/lightThemeValues.js +164 -0
- package/dist/esm/theme/lightThemeValues.js.map +1 -0
- package/dist/esm/theme/themeContractData.js +161 -0
- package/dist/esm/theme/themeContractData.js.map +1 -0
- package/dist/esm/theme-values.js +4 -0
- package/dist/esm/theme-values.js.map +1 -0
- package/dist/esm/utils/animations.css.js +8 -6
- package/dist/esm/utils/animations.css.js.map +1 -1
- package/dist/esm/utils/devWarn.js +36 -0
- package/dist/esm/utils/devWarn.js.map +1 -0
- package/dist/esm/utils/platform.js +91 -0
- package/dist/esm/utils/platform.js.map +1 -0
- package/dist/tokens/tokens.dark.css +98 -0
- package/dist/tokens/tokens.json +851 -0
- package/dist/tokens/tokens.light.css +98 -0
- package/dist/types/components/editor/TransformControl/TransformControl.d.ts +34 -0
- package/dist/types/components/editor/TransformControl/TransformControl.types.d.ts +153 -0
- package/dist/types/components/feedback/Alert/Alert.d.ts +340 -0
- package/dist/types/components/feedback/Alert/Alert.types.d.ts +82 -0
- package/dist/types/components/feedback/Alert/AlertActions.d.ts +306 -0
- package/dist/types/components/feedback/Alert/AlertDescription.d.ts +303 -0
- package/dist/types/components/feedback/Alert/AlertTitle.d.ts +303 -0
- package/dist/types/components/feedback/ProgressBar/CircularProgress.d.ts +313 -0
- package/dist/types/components/feedback/ProgressBar/ProgressBar.d.ts +315 -0
- package/dist/types/components/feedback/ProgressBar/ProgressBar.types.d.ts +132 -0
- package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +312 -0
- package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +82 -0
- package/dist/types/components/feedback/Skeleton/SkeletonGroup.d.ts +313 -0
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbEllipsis.d.ts +297 -0
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +304 -0
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbSeparator.d.ts +296 -0
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +311 -0
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +89 -0
- package/dist/types/components/navigation/SegmentedControl/SegmentedControl.d.ts +24 -0
- package/dist/types/components/navigation/SegmentedControl/SegmentedControl.types.d.ts +85 -0
- package/dist/types/components/navigation/SegmentedControl/SegmentedControlItem.d.ts +12 -0
- package/dist/types/components/primitives/Avatar/Avatar.d.ts +317 -0
- package/dist/types/components/primitives/Avatar/Avatar.types.d.ts +139 -0
- package/dist/types/components/primitives/Avatar/AvatarGroup.d.ts +316 -0
- package/dist/types/components/primitives/Button/Button.d.ts +1 -1
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
- package/dist/types/components/primitives/Kbd/Kbd.d.ts +307 -0
- package/dist/types/components/primitives/Kbd/Kbd.types.d.ts +49 -0
- package/dist/types/components/primitives/Link/Link.d.ts +20 -0
- package/dist/types/components/primitives/Link/Link.types.d.ts +123 -0
- package/dist/types/components/primitives/Radio/Radio.d.ts +319 -0
- package/dist/types/components/primitives/Radio/Radio.types.d.ts +155 -0
- package/dist/types/components/primitives/Radio/RadioGroup.d.ts +320 -0
- package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.d.ts +316 -0
- package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.types.d.ts +29 -0
- package/dist/types/hooks/useClickOutside/useClickOutside.d.ts +37 -0
- package/dist/types/hooks/useClipboard/useClipboard.d.ts +24 -0
- package/dist/types/hooks/useClipboard/useClipboard.types.d.ts +22 -0
- package/dist/types/hooks/useControlledState/useControlledState.d.ts +38 -0
- package/dist/types/hooks/useDisclosure/useDisclosure.d.ts +25 -0
- package/dist/types/hooks/useDisclosure/useDisclosure.types.d.ts +22 -0
- package/dist/types/hooks/useFocusTrap/useFocusTrap.d.ts +30 -0
- package/dist/types/hooks/useHotkey/useHotkey.d.ts +23 -0
- package/dist/types/hooks/useHotkey/useHotkey.types.d.ts +36 -0
- package/dist/types/hooks/useKeyboard/types.d.ts +14 -0
- package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +36 -0
- package/dist/types/hooks/useKeyboard/utils.d.ts +6 -0
- package/dist/types/hooks/useMergedRef/useMergedRef.d.ts +22 -0
- package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +35 -0
- package/dist/types/hooks/useTheme/useTheme.d.ts +48 -0
- package/dist/types/hooks/useTheme/useTheme.types.d.ts +60 -0
- package/dist/types/index.d.ts +56 -3
- package/dist/types/theme/contract.css.d.ts +125 -121
- package/dist/types/theme/createCustomTheme.d.ts +1 -1
- package/dist/types/theme/createLightTheme.d.ts +24 -0
- package/dist/types/theme/{darkTheme.css.d.ts → darkThemeValues.d.ts} +6 -2
- package/dist/types/theme/globalScrollbars.css.d.ts +15 -0
- package/dist/types/theme/index.d.ts +9 -0
- package/dist/types/theme/lightTheme.css.d.ts +17 -0
- package/dist/types/theme/lightThemeValues.d.ts +168 -0
- package/dist/types/theme/themeContractData.d.ts +160 -0
- package/dist/types/theme-values.d.ts +10 -0
- package/dist/types/utils/animations.css.d.ts +3 -1
- package/dist/types/utils/platform.d.ts +16 -0
- package/package.json +13 -4
- package/dist/esm/components/feedback/Dialog/useFocusTrap.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,185 @@
|
|
|
1
1
|
# entangle-ui
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#49](https://github.com/SebastianWebdev/entangle-ui/pull/49) [`0cd0997`](https://github.com/SebastianWebdev/entangle-ui/commit/0cd0997e236b822e9cd6b7d140e4285a1cbe365f) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `Alert` component for persistent inline status banners — read-only
|
|
8
|
+
notices, expired-credentials warnings, unsaved-changes banners, and similar
|
|
9
|
+
in-layout messages. Five semantic variants (`info`, `success`, `warning`,
|
|
10
|
+
`error`, `neutral`) drive the color and the default icon, with three visual
|
|
11
|
+
treatments: `subtle` (default), `solid`, and `outline`. Provide `onClose`
|
|
12
|
+
to render a dismiss button. Ships a compound API — `Alert.Title`,
|
|
13
|
+
`Alert.Description`, `Alert.Actions` — also exported as standalone
|
|
14
|
+
`AlertTitle`, `AlertDescription`, `AlertActions`. ARIA roles are derived
|
|
15
|
+
from the variant (`alert` for error/warning, `status` for info/success,
|
|
16
|
+
`region` for neutral). For transient confirmations like "File saved", reach
|
|
17
|
+
for `useToast` instead.
|
|
18
|
+
|
|
19
|
+
- [#50](https://github.com/SebastianWebdev/entangle-ui/pull/50) [`cad70ba`](https://github.com/SebastianWebdev/entangle-ui/commit/cad70ba1c6cbf4137345fe473448fd80697ae744) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `Avatar` and `AvatarGroup` primitives for rendering people, agents, and
|
|
20
|
+
named entities consistently across editor UIs. `Avatar` resolves an `src`
|
|
21
|
+
when one is available and falls back through initials (derived from `name`,
|
|
22
|
+
or set explicitly) to a generic user glyph; the fallback is always rendered
|
|
23
|
+
underneath the image so a slow load never produces a blank flash. Six sizes
|
|
24
|
+
(`xs` 16px → `xxl` 56px), three shapes (`circle`, `square`, `rounded`),
|
|
25
|
+
deterministic auto colour hashed from `name`, optional presence indicator
|
|
26
|
+
(`online` / `away` / `busy` / `offline`), and an interactive mode (`onClick`
|
|
27
|
+
makes it a focusable, Enter/Space-activatable button). `AvatarGroup`
|
|
28
|
+
overlaps multiple avatars with configurable spacing and collapses overflow
|
|
29
|
+
beyond `max` into a `+N` indicator with a tooltip listing the hidden names.
|
|
30
|
+
|
|
31
|
+
- [#51](https://github.com/SebastianWebdev/entangle-ui/pull/51) [`31469af`](https://github.com/SebastianWebdev/entangle-ui/commit/31469afb423b6eeb60791ab8762a0e06c7111159) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add Breadcrumbs navigation for hierarchical paths, including link/current/disabled item states, automatic or custom separators, collapsed trails with expandable ellipsis, truncation tooltips, Storybook coverage, and Starlight documentation.
|
|
32
|
+
|
|
33
|
+
- [#57](https://github.com/SebastianWebdev/entangle-ui/pull/57) [`434e750`](https://github.com/SebastianWebdev/entangle-ui/commit/434e7507c0df6c2a6f250340d0cdbd66ee0b2d3f) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Promote three internal patterns into public hooks: `useFocusTrap`, `useMergedRef`, and `useResizeObserver`.
|
|
34
|
+
- `useFocusTrap` was previously a private helper inside `Dialog`. It now lives in the public hooks API with the same `({ containerRef, enabled }) => onKeyDown` signature.
|
|
35
|
+
- `useMergedRef` replaces inline ref-merge boilerplate in `Dialog`, `ChatMessageList`, `FloatingPanel`, and `ScrollArea`. Pass any number of object refs, callback refs, `null`, or `undefined`, and get a single callback ref that fans the node out to all of them.
|
|
36
|
+
- `useResizeObserver` wraps the browser API with the conventions used elsewhere in the library: SSR-safe, stable callback identity (no re-subscription on callback change), and an `enabled` flag for toggling without unmount. `SplitPane`, `ScrollArea`, and the chat scroll hook (`useChatScroll`) now use it.
|
|
37
|
+
|
|
38
|
+
All three hooks have full documentation pages with runnable demos.
|
|
39
|
+
|
|
40
|
+
This is a pure extraction — no behavior changes in the affected components, all existing tests pass.
|
|
41
|
+
|
|
42
|
+
- [#57](https://github.com/SebastianWebdev/entangle-ui/pull/57) [`434e750`](https://github.com/SebastianWebdev/entangle-ui/commit/434e7507c0df6c2a6f250340d0cdbd66ee0b2d3f) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Establish the public hooks library and ship the first reference hook, `useControlledState`. The hook codifies the controlled / uncontrolled state pattern that every input-like component in the library reimplements: it accepts an optional `value`, `defaultValue`, `onChange`, and a required `fallback`, and returns a `[value, setValue]` tuple just like `useState`. Switching between controlled and uncontrolled modes during a component's lifetime emits a development-only warning that mirrors React's own `<input value/defaultValue>` warning.
|
|
43
|
+
|
|
44
|
+
Also adds a small `devWarn` / `devError` helper used internally by the library to gate developer-facing warnings to development builds. Several internal warnings that previously logged in production (Skeleton circle aspect, SegmentedControl a11y warning, NumberInput parse errors, useKeyboard fallback) are now silent in production.
|
|
45
|
+
|
|
46
|
+
The hooks documentation site gets a new top-level "Hooks" section with a landing page and a dedicated page for `useControlledState`.
|
|
47
|
+
|
|
48
|
+
- [#59](https://github.com/SebastianWebdev/entangle-ui/pull/59) [`583f19f`](https://github.com/SebastianWebdev/entangle-ui/commit/583f19fa12aef2c861c622e008a8ceafee03e7c5) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add four net-new hooks to the public API: `useDisclosure`, `useClipboard`, `useClickOutside`, and `useHotkey`.
|
|
49
|
+
- **`useDisclosure`** — manages a boolean `isOpen` state with stable `open`, `close`, `toggle`, and `setOpen` callbacks. Supports both controlled (`open` / `onOpenChange`) and uncontrolled (`defaultOpen`) modes, built on top of `useControlledState`.
|
|
50
|
+
- **`useClipboard`** — copies text to the clipboard with a built-in timeout-driven `copied` feedback flag, an `error` field, and a `reset` callback. Uses `navigator.clipboard.writeText` with a `document.execCommand` fallback; never throws.
|
|
51
|
+
- **`useClickOutside`** — fires a callback when a click lands outside one or more refs. Supports both single-ref and array-of-refs forms (useful for popover + trigger pairs) and is configurable to listen on `mousedown`, `click`, or `pointerdown`.
|
|
52
|
+
- **`useHotkey`** — binds a single keyboard combo (e.g. `'Ctrl+S'`, `'Cmd+K'`, `'Escape'`) to a callback. `Cmd` automatically maps to `Ctrl` on non-Mac platforms. Skips firing inside editable elements by default; `enableInInputs` opts back in for global shortcuts.
|
|
53
|
+
|
|
54
|
+
All four hooks are SSR-safe, clean up subscriptions on unmount, and use a stable handler-ref pattern so consumers do not need to memoize callbacks. Each hook ships with a dedicated page on the docs site under the Hooks section.
|
|
55
|
+
|
|
56
|
+
- [#58](https://github.com/SebastianWebdev/entangle-ui/pull/58) [`ac62afb`](https://github.com/SebastianWebdev/entangle-ui/commit/ac62afb6329ca533e0987973e0802c50229bb9c0) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add a maintained light theme preset. Ships `lightThemeValues` and a
|
|
57
|
+
`createLightTheme()` helper that generates a build-time CSS class via
|
|
58
|
+
Vanilla Extract. Unlike the dark theme, the light preset is not applied
|
|
59
|
+
on `:root` — consumers opt in by wrapping a subtree with
|
|
60
|
+
`VanillaThemeProvider` and the generated class, so the same theming
|
|
61
|
+
machinery powers both whole-app light mode and scoped light surfaces
|
|
62
|
+
inside a dark app (and vice versa). Structural tokens (spacing,
|
|
63
|
+
typography, border-radius, transitions, z-index) are identical between
|
|
64
|
+
themes so layout and rhythm don't drift when users switch modes.
|
|
65
|
+
Storybook gains a global theme toggle for inspecting any story under
|
|
66
|
+
either theme.
|
|
67
|
+
|
|
68
|
+
- [#55](https://github.com/SebastianWebdev/entangle-ui/pull/55) [`d01fe9e`](https://github.com/SebastianWebdev/entangle-ui/commit/d01fe9ea1b8d9d59e99ee4e639559872b2f83abe) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `Link` styled-anchor primitive. Provides theme-aware color, underline,
|
|
69
|
+
hover, and focus behavior, plus `default` / `subtle` / `inline` variants
|
|
70
|
+
and `sm` / `md` / `lg` sizes. External links are auto-detected from
|
|
71
|
+
`http(s)://` hrefs (or set explicitly), get an external-link icon, and
|
|
72
|
+
ship `target="_blank" rel="noopener noreferrer"` along with an "(opens in
|
|
73
|
+
new tab)" screen-reader announcement. Polymorphic via `as` with a typed
|
|
74
|
+
generic so consumers can pass a router's link component (react-router,
|
|
75
|
+
TanStack Router, Next.js) and get the router's own props (`to`, …)
|
|
76
|
+
type-checked. `disabled` renders as a non-anchor span regardless of `as`,
|
|
77
|
+
strips navigation handlers, and suppresses the external affordance —
|
|
78
|
+
disabled router links cannot navigate via mouse, keyboard, or
|
|
79
|
+
programmatic activation.
|
|
80
|
+
|
|
81
|
+
- [#52](https://github.com/SebastianWebdev/entangle-ui/pull/52) [`ce4240e`](https://github.com/SebastianWebdev/entangle-ui/commit/ce4240ede8cbabe7c4da09ad919d1e7d46408567) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `ProgressBar` and `CircularProgress` feedback components for measurable
|
|
82
|
+
operations like uploads, exports, renders, and batch jobs. Both share `value`
|
|
83
|
+
/ `min` / `max` semantics and four named colors (`primary`, `success`,
|
|
84
|
+
`warning`, `error`) plus arbitrary CSS color pass-through. Omitting `value`
|
|
85
|
+
renders an indeterminate variant — a sliding gradient on the linear bar, a
|
|
86
|
+
rotating arc on the circular one — with a `prefers-reduced-motion` fallback.
|
|
87
|
+
`ProgressBar` ships in three heights (`sm` 2px → `lg` 8px), supports inline /
|
|
88
|
+
overlay / custom labels, and an optional striped (optionally animated)
|
|
89
|
+
texture overlay; `CircularProgress` ranges from `xs` (16px) to `xl` (48px),
|
|
90
|
+
auto-derives stroke thickness from size (overridable via `thickness`), and
|
|
91
|
+
can render a center label for `lg`+ sizes. Both expose
|
|
92
|
+
`role="progressbar"` with the appropriate `aria-value*` attributes.
|
|
93
|
+
|
|
94
|
+
- [#47](https://github.com/SebastianWebdev/entangle-ui/pull/47) [`0300928`](https://github.com/SebastianWebdev/entangle-ui/commit/0300928f4e1cce6e48dbcb15b657cbe77d6fa650) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `Radio` and `RadioGroup` primitives. Closes the last gap in Phase 1 by providing a styled, accessible alternative to native radio inputs for mutually exclusive selection.
|
|
95
|
+
- `Radio`: standalone (controlled or uncontrolled) or context-driven, with sizes (sm/md/lg), label position, helper text, and error state.
|
|
96
|
+
- `RadioGroup`: manages exclusive selection, propagates `name`, `size`, `disabled`, and `error` via context, supports vertical/horizontal orientation, custom spacing, required/error states, and helper text.
|
|
97
|
+
- Native `<input type="radio">` under the hood so browser arrow-key navigation and form submission work out of the box.
|
|
98
|
+
- Honors `prefers-reduced-motion`.
|
|
99
|
+
|
|
100
|
+
- [#54](https://github.com/SebastianWebdev/entangle-ui/pull/54) [`7e88083`](https://github.com/SebastianWebdev/entangle-ui/commit/7e8808322ec022ba7a7290f4686c315c09103123) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add SegmentedControl, a toolbar-density mutually exclusive selector for view modes, layout toggles, and small option groups. Compound API (`SegmentedControl` + `SegmentedControlItem`) with controlled and uncontrolled modes, three visual variants (subtle / solid / outline), three sizes, horizontal and vertical orientations, optional fullWidth, icon and icon-only segments with tooltip support, an animated sliding indicator that respects `prefers-reduced-motion`, full roving-tabindex keyboard navigation (Arrow keys / Home / End), `role="group"` + `aria-pressed` accessibility, Storybook coverage, and Starlight documentation.
|
|
101
|
+
|
|
102
|
+
- [#46](https://github.com/SebastianWebdev/entangle-ui/pull/46) [`014eecc`](https://github.com/SebastianWebdev/entangle-ui/commit/014eeccc4f4d96f2d6ea39f6dcfe427acb51d62d) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `Skeleton` and `SkeletonGroup` components for loading-placeholder
|
|
103
|
+
states. Supports `rect`, `circle`, and `line` shapes with `pulse`, `wave`,
|
|
104
|
+
or no animation. Animations honor `prefers-reduced-motion`. `SkeletonGroup`
|
|
105
|
+
auto-generates a configurable number of skeletons with consistent spacing
|
|
106
|
+
and direction, or lays out custom children.
|
|
107
|
+
|
|
108
|
+
- [#63](https://github.com/SebastianWebdev/entangle-ui/pull/63) [`f86981d`](https://github.com/SebastianWebdev/entangle-ui/commit/f86981dea383ea91027437998285001e3e535f98) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Ship machine-readable token artifacts alongside the JS bundle. Each release
|
|
109
|
+
now publishes `entangle-ui/tokens.json` (a loosely DTCG-aligned export of
|
|
110
|
+
both themes), `entangle-ui/tokens.dark.css` (the dark `--etui-*` custom
|
|
111
|
+
properties scoped to `:root`), and `entangle-ui/tokens.light.css` (the light
|
|
112
|
+
preset scoped to the documented `etui-theme-light` class). Figma plugins,
|
|
113
|
+
Style Dictionary pipelines, and projects that don't use Vanilla Extract can
|
|
114
|
+
now consume the same values the components compile against. The tree-shaking
|
|
115
|
+
guarantees of the main entry point are unchanged — these files are only
|
|
116
|
+
loaded by consumers that explicitly import them.
|
|
117
|
+
|
|
118
|
+
- [#61](https://github.com/SebastianWebdev/entangle-ui/pull/61) [`fb25779`](https://github.com/SebastianWebdev/entangle-ui/commit/fb25779de140def961c0ace8fad70399e676c7b5) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `TransformControl` — the canonical position / rotation / scale property
|
|
119
|
+
control for 3D editor interfaces. Composes `VectorInput`, `Select` and
|
|
120
|
+
`PropertyRow` into a single high-level component, mirroring the transform
|
|
121
|
+
widget found in Blender, Unity and Unreal. Renders three rows (position,
|
|
122
|
+
rotation, scale) plus a coordinate-space dropdown and a linked-scale lock
|
|
123
|
+
toggle, with sensible defaults for precision (`3 / 1 / 3`), step
|
|
124
|
+
(`0.1 / 1 / 0.01`) and units (`m / ° / ''`). Three independent atoms —
|
|
125
|
+
`value`, `coordinateSpace`, `linkedScale` — each support controlled and
|
|
126
|
+
uncontrolled usage. `linkedScale` performs uniform (not proportional)
|
|
127
|
+
scaling and does not snap values when toggled. Hide rows via `show`,
|
|
128
|
+
swap the coordinate-space options via `coordinateSpaceOptions`, and turn
|
|
129
|
+
on per-row reset buttons with `showReset`. The component intentionally
|
|
130
|
+
renders no `PropertySection` wrapper — slot it inside one of your own.
|
|
131
|
+
Note: changing the coordinate-space dropdown does not transform the
|
|
132
|
+
numeric values; the consumer's editor logic is responsible for re-projecting
|
|
133
|
+
them.
|
|
134
|
+
|
|
135
|
+
- [#53](https://github.com/SebastianWebdev/entangle-ui/pull/53) [`f6a6580`](https://github.com/SebastianWebdev/entangle-ui/commit/f6a6580344a2b591ca6549bdc46f7320793d6704) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add the Kbd primitive for consistent keyboard shortcut rendering across menus, tooltips, command palettes, and help panels. Includes platform-aware glyph utilities for macOS, Windows, and Linux shortcut labels.
|
|
136
|
+
|
|
137
|
+
- [#60](https://github.com/SebastianWebdev/entangle-ui/pull/60) [`27b61f0`](https://github.com/SebastianWebdev/entangle-ui/commit/27b61f02a69b37672cc279e67dd0481dfd717698) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `useTheme` hook for runtime theme reads. Returns the resolved CSS
|
|
138
|
+
variable snapshot from `:root`, the detected variant (`'dark'` / `'light'` /
|
|
139
|
+
`'custom'`), and `getToken(path)` / `getVar(path)` helpers for paths like
|
|
140
|
+
`'colors.accent.primary'`. Use it for canvas drawing, third-party libraries
|
|
141
|
+
that take colours as plain strings, and conditional logic — keep using
|
|
142
|
+
Vanilla Extract `vars.*` for ordinary styling. SSR-safe: returns dark-theme
|
|
143
|
+
defaults when no DOM is available.
|
|
144
|
+
|
|
145
|
+
- [#56](https://github.com/SebastianWebdev/entangle-ui/pull/56) [`af3f44a`](https://github.com/SebastianWebdev/entangle-ui/commit/af3f44a17d173f192f2e376a73760c82fe6a86f5) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add `VisuallyHidden` primitive for hiding content visually while keeping
|
|
146
|
+
it accessible to screen readers. Implements the canonical SR-only style
|
|
147
|
+
and supports a `focusable` mode for skip-to-content links (revealed via
|
|
148
|
+
`:focus-within`). Renders as `<span>` by default with `as` overrides for
|
|
149
|
+
`div`, `label`, and `p`.
|
|
150
|
+
|
|
151
|
+
### Patch Changes
|
|
152
|
+
|
|
153
|
+
- [#50](https://github.com/SebastianWebdev/entangle-ui/pull/50) [`5763f0e`](https://github.com/SebastianWebdev/entangle-ui/commit/5763f0ea29a7820bee11a0c6860a3015849c83c6) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Internal refactor: `ChatMessage` now renders the new `Avatar` primitive
|
|
154
|
+
instead of inline JSX. The visual output (24px circle, initials fallback,
|
|
155
|
+
image when available) is unchanged from a consumer's perspective, but the
|
|
156
|
+
chat avatar now picks up Avatar's deterministic auto color, image-error
|
|
157
|
+
fallback chain, and standard accessible-name handling for free.
|
|
158
|
+
|
|
159
|
+
- [#62](https://github.com/SebastianWebdev/entangle-ui/pull/62) [`91f2c7b`](https://github.com/SebastianWebdev/entangle-ui/commit/91f2c7b18463d684f19a4e9a25f56b8fe70fcc69) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Honor `prefers-reduced-motion: reduce` across every existing component that
|
|
160
|
+
animates anything. Loading spinners (Button, IconButton), Dialog overlay
|
|
161
|
+
and panel fade-in/out, Toast slide-in and auto-dismiss progress bar,
|
|
162
|
+
Select dropdown scale-in, Popover entry, Tooltip popup transition, Switch
|
|
163
|
+
thumb travel, Checkbox check-mark draw, expand/collapse chevrons (Accordion,
|
|
164
|
+
Collapsible, Select, TreeView, PropertySection, ChatPanel tool-call),
|
|
165
|
+
Accordion and Collapsible content height transitions, Avatar / Slider /
|
|
166
|
+
ColorPicker hover scale effects, and every `transition: all` block on
|
|
167
|
+
interactive primitives now collapse to a static state under reduced
|
|
168
|
+
motion. Direct-manipulation interactions (drag, scrub, gizmo rotation,
|
|
169
|
+
focus rings, hover color changes) are preserved. A new
|
|
170
|
+
[Accessibility](https://entangle-ui.dev/guides/accessibility) guide page
|
|
171
|
+
documents the library's reduced-motion stance and shows how to follow the
|
|
172
|
+
same pattern in consumer code.
|
|
173
|
+
|
|
174
|
+
- [#48](https://github.com/SebastianWebdev/entangle-ui/pull/48) [`249a2aa`](https://github.com/SebastianWebdev/entangle-ui/commit/249a2aa11801a45871dffd11286a2535e895d7f4) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Add a CSS-free `entangle-ui/theme-values` export for Node, SSR, and tooling consumers that need raw theme data without importing Vanilla Extract CSS runtime files.
|
|
175
|
+
|
|
176
|
+
- [#61](https://github.com/SebastianWebdev/entangle-ui/pull/61) [`7bce1c9`](https://github.com/SebastianWebdev/entangle-ui/commit/7bce1c93a4432ddac252be65f6334211c68674b9) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - Fix `VectorInput` axis inputs overflowing their column in narrow layouts.
|
|
177
|
+
The `NumberInput` inside each axis previously took its intrinsic content
|
|
178
|
+
width, causing values to clip and visually overlap when the row was tight
|
|
179
|
+
(typical inside property panels or alongside a lock toggle). The
|
|
180
|
+
`NumberInput` container now fills the remaining axis space with
|
|
181
|
+
`flex: 1; min-width: 0`, so axes share width evenly and shrink gracefully.
|
|
182
|
+
|
|
3
183
|
## 0.7.0
|
|
4
184
|
|
|
5
185
|
### Minor Changes
|
|
@@ -338,4 +338,18 @@
|
|
|
338
338
|
opacity: 0.5;
|
|
339
339
|
cursor: not-allowed;
|
|
340
340
|
pointer-events: none;
|
|
341
|
+
}
|
|
342
|
+
@media (prefers-reduced-motion: reduce) {
|
|
343
|
+
.ColorPicker_presetButtonRecipe__11dms9om {
|
|
344
|
+
transition: none;
|
|
345
|
+
}
|
|
346
|
+
.ColorPicker_presetButtonRecipe__11dms9om:hover {
|
|
347
|
+
transform: none;
|
|
348
|
+
}
|
|
349
|
+
.ColorPicker_paletteShadeRecipe__11dms9oy {
|
|
350
|
+
transition: none;
|
|
351
|
+
}
|
|
352
|
+
.ColorPicker_paletteShadeRecipe__11dms9oy:hover {
|
|
353
|
+
transform: none;
|
|
354
|
+
}
|
|
341
355
|
}
|
|
@@ -222,4 +222,15 @@
|
|
|
222
222
|
color: var(--etui-color-accent-primary);
|
|
223
223
|
display: flex;
|
|
224
224
|
align-items: center;
|
|
225
|
+
}
|
|
226
|
+
@media (prefers-reduced-motion: reduce) {
|
|
227
|
+
.Select_triggerRecipe__ycpn702 {
|
|
228
|
+
transition: none;
|
|
229
|
+
}
|
|
230
|
+
.Select_chevronRecipe__ycpn70q {
|
|
231
|
+
transition: none;
|
|
232
|
+
}
|
|
233
|
+
.Select_dropdownStyle__ycpn70v {
|
|
234
|
+
animation: none;
|
|
235
|
+
}
|
|
225
236
|
}
|
|
@@ -170,4 +170,18 @@
|
|
|
170
170
|
.Slider_tooltipRecipe_visible_false__t8kxxsu {
|
|
171
171
|
opacity: 0;
|
|
172
172
|
transform: translateX(-50%) translateY(4px);
|
|
173
|
+
}
|
|
174
|
+
@media (prefers-reduced-motion: reduce) {
|
|
175
|
+
.Slider_thumbRecipe__t8kxxsi {
|
|
176
|
+
transition: none;
|
|
177
|
+
}
|
|
178
|
+
.Slider_thumbRecipe__t8kxxsi:hover {
|
|
179
|
+
transform: translate(-50%, -50%);
|
|
180
|
+
}
|
|
181
|
+
.Slider_thumbRecipe_isDragging_false__t8kxxsp {
|
|
182
|
+
transition: none;
|
|
183
|
+
}
|
|
184
|
+
.Slider_tooltipRecipe__t8kxxss {
|
|
185
|
+
transition: none;
|
|
186
|
+
}
|
|
173
187
|
}
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
align-items: center;
|
|
23
23
|
gap: 0;
|
|
24
24
|
}
|
|
25
|
+
.VectorInput_axisInputStyle__1osrtmk6 > *:last-child {
|
|
26
|
+
flex: 1;
|
|
27
|
+
min-width: 0;
|
|
28
|
+
}
|
|
25
29
|
.VectorInput_axisLabelRecipe__1osrtmk7 {
|
|
26
30
|
display: flex;
|
|
27
31
|
align-items: center;
|
|
@@ -99,4 +103,9 @@
|
|
|
99
103
|
width: 32px;
|
|
100
104
|
height: 32px;
|
|
101
105
|
min-width: 32px;
|
|
106
|
+
}
|
|
107
|
+
@media (prefers-reduced-motion: reduce) {
|
|
108
|
+
.VectorInput_linkButtonRecipe__1osrtmkb {
|
|
109
|
+
transition: none;
|
|
110
|
+
}
|
|
102
111
|
}
|