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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Icon } from '../primitives/Icon/Icon.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Zoom In icon component for zoom in actions.
|
|
8
|
+
*
|
|
9
|
+
* A standard magnifying glass with plus icon commonly used for zooming in,
|
|
10
|
+
* enlarging content, and scale increase operations in editor interfaces.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Basic usage
|
|
15
|
+
* <ZoomInIcon />
|
|
16
|
+
*
|
|
17
|
+
* // With custom size and color
|
|
18
|
+
* <ZoomInIcon size="md" color="accent" />
|
|
19
|
+
*
|
|
20
|
+
* // In a zoom context
|
|
21
|
+
* <Button icon={<ZoomInIcon />}>Zoom In</Button>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const ZoomInIcon = /*#__PURE__*/ React.memo(props => {
|
|
25
|
+
return (jsxs(Icon, { ...props, children: [jsx("circle", { cx: "11", cy: "11", r: "8" }), jsx("path", { d: "M21 21l-4.35-4.35" }), jsx("line", { x1: "11", y1: "8", x2: "11", y2: "14" }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11" })] }));
|
|
26
|
+
});
|
|
27
|
+
ZoomInIcon.displayName = 'ZoomInIcon';
|
|
28
|
+
|
|
29
|
+
export { ZoomInIcon };
|
|
30
|
+
//# sourceMappingURL=ZoomInIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomInIcon.js","sources":["../../../../../src/components/Icons/ZoomInIcon.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOA;;;;;;;;;;;;;;;;;AAiBG;AACI;AAEH;AAQF;AAGF;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Icon } from '../primitives/Icon/Icon.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Zoom Out icon component for zoom out actions.
|
|
8
|
+
*
|
|
9
|
+
* A standard magnifying glass with minus icon commonly used for zooming out,
|
|
10
|
+
* reducing content, and scale decrease operations in editor interfaces.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Basic usage
|
|
15
|
+
* <ZoomOutIcon />
|
|
16
|
+
*
|
|
17
|
+
* // With custom size and color
|
|
18
|
+
* <ZoomOutIcon size="lg" color="secondary" />
|
|
19
|
+
*
|
|
20
|
+
* // In a zoom context
|
|
21
|
+
* <Button icon={<ZoomOutIcon />}>Zoom Out</Button>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const ZoomOutIcon = /*#__PURE__*/ React.memo(props => {
|
|
25
|
+
return (jsxs(Icon, { ...props, children: [jsx("circle", { cx: "11", cy: "11", r: "8" }), jsx("path", { d: "M21 21l-4.35-4.35" }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11" })] }));
|
|
26
|
+
});
|
|
27
|
+
ZoomOutIcon.displayName = 'ZoomOutIcon';
|
|
28
|
+
|
|
29
|
+
export { ZoomOutIcon };
|
|
30
|
+
//# sourceMappingURL=ZoomOutIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomOutIcon.js","sources":["../../../../../src/components/Icons/ZoomOutIcon.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOA;;;;;;;;;;;;;;;;;AAiBG;AACI;;AAUP;AAEA;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/controls/ColorPicker/ColorPicker.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/controls/ColorPicker/ColorPicker.css.ts.vanilla-D7ccNVQx.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var alphaGradientStyle = 'ColorPicker_alphaGradientStyle__11dms9oa';
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
3
|
import { useKeyboardContext } from '../../../context/KeyboardContext.js';
|
|
4
4
|
import { parseNumericInput, isExpression } from '../../../utils/mathExpression.js';
|
|
5
|
+
import { devError } from '../../../utils/devWarn.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Clamps a value between min and max bounds
|
|
@@ -148,7 +149,7 @@ function useNumberInput({ value, onChange, min, max, softMin, softMax, step = 1,
|
|
|
148
149
|
}
|
|
149
150
|
catch (err) {
|
|
150
151
|
setError('Invalid input');
|
|
151
|
-
|
|
152
|
+
devError('Error parsing input:', err);
|
|
152
153
|
return false;
|
|
153
154
|
}
|
|
154
155
|
}, [displayValue, parseValue, allowExpressions, applyValue]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNumberInput.js","sources":["../../../../../../src/components/controls/NumberInput/useNumberInput.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNumberInput.js","sources":["../../../../../../src/components/controls/NumberInput/useNumberInput.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA0MA;;AAEG;AACH;;AAEE;;AACA;;AACA;AACF;AAEA;;AAEG;AACH;;AAC+B;;;AAG/B;AAEA;;AAEG;AACH;AACE;AACE;;;AAGF;AACF;AAEA;;;;;;;;;;;;AAYG;;;AAmBD;AACA;AACA;;;AAKI;;;;;;;;AAUJ;AACA;AACA;;AAGA;;;AAIE;;AAEI;AACA;;;;AAIN;AAEA;;AAEG;AACH;;AACuB;AACrB;AAAyC;AACzC;AACF;AACE;AACA;AACA;;;;AAID;AAED;;AAEG;;AAGC;;;;;AAMA;AACA;;AAGA;;;AAGF;AAIF;;AAEG;AACH;AACE;;;AAGI;;;;AAIE;;;;;AAMF;;AAEE;;AAEA;;;AAEA;AACA;;;;AAKJ;AACA;;;AAGE;;;AAIF;;;;AAGA;AACA;;;;AAKJ;AACE;;AACA;AACA;;AAGF;AACE;;AACA;AACA;;AAGF;AAEI;;;AAEA;AACA;AACA;;AAEF;AAIF;;;AAII;AACA;;;AAIA;;;;;AAME;;;AAIA;;;AAIE;AACA;;;AAGN;;;;;;;;AASC;AAGH;;;;;AAKI;AACA;;;AAIJ;AACE;;;;;;AAKE;;AAEE;AACA;;;AAGN;AAEA;;;;;AAKA;AAEA;;;AAGI;AACA;;;;AAKJ;;;;;;AAOE;AAIF;AAEI;;AAEA;AACE;;;AAGI;;;AAEA;;;AAIJ;;;AAGI;;;AAIJ;;;AAGI;;;AAIJ;;;AAGI;;;AAIJ;;;;AAII;;;;AAIR;;;;;;;;;;AAWC;;;;;;;;;;;AAcD;;;;;;;;;;;AAYA;AACA;;;AAGJ;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/controls/Select/Select.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/controls/Select/Select.css.ts.vanilla-oZnFUorL.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var checkmarkStyle = 'Select_checkmarkStyle__ycpn7018';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/controls/Slider/Slider.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/controls/Slider/Slider.css.ts.vanilla-Cqm3fQ0S.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var fillPercentageVar = 'var(--fillPercentageVar__t8kxxs0)';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/controls/TreeView/TreeNode.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/controls/TreeView/TreeNode.css.ts.vanilla-B_f8pUb8.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var actionsStyle = 'TreeNode_actionsStyle__8ws3nev';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/controls/VectorInput/VectorInput.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/controls/VectorInput/VectorInput.css.ts.vanilla-BpoiuhDA.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var axisColorVar = 'var(--axisColorVar__1osrtmk0)';
|
|
@@ -3,6 +3,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import React, { useState, useRef, useCallback } from 'react';
|
|
4
4
|
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
5
|
import { NumberInput } from '../NumberInput/NumberInput.js';
|
|
6
|
+
import '../../../utils/devWarn.js';
|
|
6
7
|
import '../../../utils/mathExpression.js';
|
|
7
8
|
import { FormLabel } from '../../form/FormLabel.js';
|
|
8
9
|
import { FormHelperText } from '../../form/FormHelperText.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorInput.js","sources":["../../../../../../src/components/controls/VectorInput/VectorInput.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VectorInput.js","sources":["../../../../../../src/components/controls/VectorInput/VectorInput.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAoBA;AAEA;;;AAGE;;AAGF;AAEA;AACA;AAEA;AAKE;AACE;;AAEF;AACE;;AAEF;AACE;;;AAGF;AACF;AAEA;AAKE;AACE;;AAEF;;;;;AAKF;AAEA;AACA;AAYA;AAYA;;;;;;;;;;;;;;;;AAgBG;;;AAmCD;AAGA;;;AAIA;;AAGA;;AAGA;AACE;AACF;;AAGA;AACE;AACA;;;AAGA;;;;AAME;AACA;;;AAIE;;AAEE;;;;;AAMA;;;;;;;AAWJ;AAEA;;;AAGA;;;AAMJ;AACE;AACF;;;;AAOA;;;;;;;AA+CM;AA4BR;AAEA;;"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { cx } from '../../../utils/cx.js';
|
|
5
|
+
import { Avatar } from '../../primitives/Avatar/Avatar.js';
|
|
6
|
+
import '../../primitives/Avatar/AvatarGroup.js';
|
|
5
7
|
import { ChatBubble } from './ChatBubble.js';
|
|
6
|
-
import { messageTextStyle,
|
|
8
|
+
import { messageTextStyle, messageContentStyle, bubbleErrorStyle, messageErrorCaptionStyle, messageErrorIconStyle, messageTimestampStyle, messageRecipe, messageMaxWidthVarName } from './ChatPanel.css.js';
|
|
7
9
|
|
|
8
10
|
function resolveMaxWidth(value) {
|
|
9
11
|
if (value === undefined)
|
|
@@ -19,16 +21,6 @@ function formatTimestamp(iso) {
|
|
|
19
21
|
return '';
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
|
-
function getInitials(name) {
|
|
23
|
-
if (!name)
|
|
24
|
-
return '?';
|
|
25
|
-
return name
|
|
26
|
-
.split(' ')
|
|
27
|
-
.map(part => part[0])
|
|
28
|
-
.join('')
|
|
29
|
-
.toUpperCase()
|
|
30
|
-
.slice(0, 2);
|
|
31
|
-
}
|
|
32
24
|
const ErrorIcon = () => (jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: [jsx("circle", { cx: "6", cy: "6", r: "5", stroke: "currentColor", strokeWidth: "1.2" }), jsx("line", { x1: "6", y1: "3.5", x2: "6", y2: "6.5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), jsx("circle", { cx: "6", cy: "8.5", r: "0.6", fill: "currentColor" })] }));
|
|
33
25
|
const ChatMessage = /*#__PURE__*/ React.memo(({ message, showTimestamp = false, showAvatar = false, actions, renderContent, maxWidth, className, style, testId, ref, ...rest }) => {
|
|
34
26
|
const { role, content, status, timestamp, avatar, displayName } = message;
|
|
@@ -41,7 +33,7 @@ const ChatMessage = /*#__PURE__*/ React.memo(({ message, showTimestamp = false,
|
|
|
41
33
|
...style,
|
|
42
34
|
}
|
|
43
35
|
: (style ?? {});
|
|
44
|
-
return (jsxs("div", { ref: ref, className: cx(messageRecipe({ role }), className), style: rootStyle, "data-testid": testId, ...rest, children: [showAvatar && role !== 'system' && (jsx(
|
|
36
|
+
return (jsxs("div", { ref: ref, className: cx(messageRecipe({ role }), className), style: rootStyle, "data-testid": testId, ...rest, children: [showAvatar && role !== 'system' && (jsx(Avatar, { size: "md", src: avatar, name: displayName ?? role, alt: displayName ?? role })), jsxs("div", { className: messageContentStyle, children: [jsx(ChatBubble, { role: role, className: isError ? bubbleErrorStyle : undefined, children: renderedContent }), isError && (jsxs("span", { className: messageErrorCaptionStyle, children: [jsx("span", { className: messageErrorIconStyle, children: jsx(ErrorIcon, {}) }), "Error generating response"] })), actions && jsx("div", { children: actions }), showTimestamp && timestamp && (jsx("span", { className: messageTimestampStyle, children: formatTimestamp(timestamp) }))] })] }));
|
|
45
37
|
});
|
|
46
38
|
ChatMessage.displayName = 'ChatMessage';
|
|
47
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatMessage.js","sources":["../../../../../../src/components/editor/ChatPanel/ChatMessage.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatMessage.js","sources":["../../../../../../src/components/editor/ChatPanel/ChatMessage.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAkBA;;AAG2B;AACzB;AACF;AAEA;AACE;AACE;AACA;;AACA;AACA;;AAEJ;AAEA;AAsBO;AAcH;AACA;;AAQA;;AAEE;;AAEI;AACuB;AAC3B;AAEF;AA4CF;AAGF;;"}
|
|
@@ -4,6 +4,7 @@ import React, { useMemo, useImperativeHandle } from 'react';
|
|
|
4
4
|
import { useChatScroll } from './useChatScroll.js';
|
|
5
5
|
import { ChatMessage } from './ChatMessage.js';
|
|
6
6
|
import { ScrollArea } from '../../layout/ScrollArea/ScrollArea.js';
|
|
7
|
+
import { useMergedRef } from '../../../hooks/useMergedRef/useMergedRef.js';
|
|
7
8
|
import { messageListContentStyle, newMessagesBannerStyle } from './ChatPanel.css.js';
|
|
8
9
|
|
|
9
10
|
const ChatMessageList = /*#__PURE__*/ React.memo(({ messages, renderMessage, emptyState, autoScroll = true, scrollApiRef, className, style, testId, ref, ...rest }) => {
|
|
@@ -11,16 +12,9 @@ const ChatMessageList = /*#__PURE__*/ React.memo(({ messages, renderMessage, emp
|
|
|
11
12
|
messages,
|
|
12
13
|
enabled: autoScroll,
|
|
13
14
|
});
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (typeof ref === 'function') {
|
|
18
|
-
ref(node);
|
|
19
|
-
}
|
|
20
|
-
else if (ref) {
|
|
21
|
-
ref.current = node;
|
|
22
|
-
}
|
|
23
|
-
}, [scrollContainerRef, ref]);
|
|
15
|
+
// ScrollArea forwards ref to its viewport div — merge with our internal
|
|
16
|
+
// scroll container ref and the consumer's ref.
|
|
17
|
+
const mergedRef = useMergedRef(scrollContainerRef, ref);
|
|
24
18
|
const isAtBottomGetter = React.useCallback(() => {
|
|
25
19
|
const container = scrollContainerRef.current;
|
|
26
20
|
if (!container)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatMessageList.js","sources":["../../../../../../src/components/editor/ChatPanel/ChatMessageList.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatMessageList.js","sources":["../../../../../../src/components/editor/ChatPanel/ChatMessageList.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAgBO;AAaH;;AASE;AACD;;;;AAMD;AACE;AACA;AAAgB;;AAEhB;AACF;AAEA;;;;AAKI;;AAKJ;;AAGE;;;AA0DJ;AAGF;;"}
|
|
@@ -1,84 +1,82 @@
|
|
|
1
|
-
import './../../../assets/src/components/editor/ChatPanel/ChatPanel.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/editor/ChatPanel/ChatPanel.css.ts.vanilla-CLn8idfz.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
|
-
var actionBarStyle = '
|
|
5
|
-
var attachmentChipIconStyle = '
|
|
6
|
-
var attachmentChipNameStyle = '
|
|
7
|
-
var attachmentChipRemoveStyle = '
|
|
8
|
-
var attachmentChipStyle = '
|
|
9
|
-
var attachmentThumbnailStyle = '
|
|
10
|
-
var bubbleErrorStyle = '
|
|
11
|
-
var bubbleRecipe = createRuntimeFn({defaultClassName:'
|
|
4
|
+
var actionBarStyle = 'ChatPanel_actionBarStyle__1c3e77r29';
|
|
5
|
+
var attachmentChipIconStyle = 'ChatPanel_attachmentChipIconStyle__1c3e77r1u';
|
|
6
|
+
var attachmentChipNameStyle = 'ChatPanel_attachmentChipNameStyle__1c3e77r1v';
|
|
7
|
+
var attachmentChipRemoveStyle = 'ChatPanel_attachmentChipRemoveStyle__1c3e77r1w';
|
|
8
|
+
var attachmentChipStyle = 'ChatPanel_attachmentChipStyle__1c3e77r1t';
|
|
9
|
+
var attachmentThumbnailStyle = 'ChatPanel_attachmentThumbnailStyle__1c3e77r1x';
|
|
10
|
+
var bubbleErrorStyle = 'ChatPanel_bubbleErrorStyle__1c3e77ri';
|
|
11
|
+
var bubbleRecipe = createRuntimeFn({defaultClassName:'ChatPanel_bubbleRecipe__1c3e77rd',variantClassNames:{role:{user:'ChatPanel_bubbleRecipe_role_user__1c3e77re',assistant:'ChatPanel_bubbleRecipe_role_assistant__1c3e77rf',system:'ChatPanel_bubbleRecipe_role_system__1c3e77rg',tool:'ChatPanel_bubbleRecipe_role_tool__1c3e77rh'}},defaultVariants:{role:'assistant'},compoundVariants:[]});
|
|
12
12
|
var chatPanelRecipe = createRuntimeFn({defaultClassName:'ChatPanel_chatPanelRecipe__1c3e77r0',variantClassNames:{density:{comfortable:'ChatPanel_chatPanelRecipe_density_comfortable__1c3e77r1',compact:'ChatPanel_chatPanelRecipe_density_compact__1c3e77r2'}},defaultVariants:{density:'comfortable'},compoundVariants:[]});
|
|
13
|
-
var codeBlockActionsStyle = '
|
|
14
|
-
var codeBlockContainerStyle = '
|
|
15
|
-
var codeBlockContentStyle = '
|
|
16
|
-
var codeBlockContentWithLineNumbersStyle = '
|
|
17
|
-
var codeBlockCopyButtonStyle = '
|
|
18
|
-
var codeBlockHeaderStyle = '
|
|
19
|
-
var codeBlockLanguageStyle = '
|
|
20
|
-
var codeBlockLineNumbersColumnStyle = '
|
|
21
|
-
var codeBlockMaxHeightVar = 'var(--
|
|
22
|
-
var codeBlockPreStyle = '
|
|
23
|
-
var contextChipDismissStyle = '
|
|
24
|
-
var contextChipIconStyle = '
|
|
25
|
-
var contextChipItemsStyle = '
|
|
26
|
-
var contextChipLabelStyle = '
|
|
27
|
-
var contextChipStyle = '
|
|
28
|
-
var emptyStateDescriptionStyle = '
|
|
29
|
-
var emptyStateIconStyle = '
|
|
30
|
-
var emptyStateStyle = '
|
|
31
|
-
var emptyStateSuggestionStyle = '
|
|
32
|
-
var emptyStateSuggestionsStyle = '
|
|
33
|
-
var emptyStateTitleStyle = '
|
|
34
|
-
var inputAttachmentsStyle = '
|
|
35
|
-
var inputBottomBarStyle = '
|
|
36
|
-
var inputButtonStyle = '
|
|
37
|
-
var inputContainerStyle = '
|
|
38
|
-
var inputMaxHeightVar = 'var(--
|
|
39
|
-
var inputPrefixStyle = '
|
|
40
|
-
var inputStopButtonStyle = '
|
|
41
|
-
var inputTextareaStyle = '
|
|
42
|
-
var inputToolbarStyle = '
|
|
43
|
-
var inputWrapperStyle = '
|
|
44
|
-
var markdownBlockquoteStyle = '
|
|
45
|
-
var markdownHeadingStyle = '
|
|
46
|
-
var markdownHrStyle = '
|
|
47
|
-
var markdownLinkStyle = '
|
|
48
|
-
var markdownListItemStyle = '
|
|
49
|
-
var markdownListStyle = '
|
|
50
|
-
var markdownParagraphStyle = '
|
|
51
|
-
var markdownRootStyle = '
|
|
52
|
-
var markdownTableStyle = '
|
|
53
|
-
var markdownTdStyle = '
|
|
54
|
-
var markdownThStyle = '
|
|
55
|
-
var messageAvatarImgStyle = 'ChatPanel_messageAvatarImgStyle__1c3e77rc';
|
|
56
|
-
var messageAvatarStyle = 'ChatPanel_messageAvatarStyle__1c3e77rb';
|
|
13
|
+
var codeBlockActionsStyle = 'ChatPanel_codeBlockActionsStyle__1c3e77r1n';
|
|
14
|
+
var codeBlockContainerStyle = 'ChatPanel_codeBlockContainerStyle__1c3e77r1k';
|
|
15
|
+
var codeBlockContentStyle = 'ChatPanel_codeBlockContentStyle__1c3e77r1p';
|
|
16
|
+
var codeBlockContentWithLineNumbersStyle = 'ChatPanel_codeBlockContentWithLineNumbersStyle__1c3e77r1q';
|
|
17
|
+
var codeBlockCopyButtonStyle = 'ChatPanel_codeBlockCopyButtonStyle__1c3e77r1o';
|
|
18
|
+
var codeBlockHeaderStyle = 'ChatPanel_codeBlockHeaderStyle__1c3e77r1l';
|
|
19
|
+
var codeBlockLanguageStyle = 'ChatPanel_codeBlockLanguageStyle__1c3e77r1m';
|
|
20
|
+
var codeBlockLineNumbersColumnStyle = 'ChatPanel_codeBlockLineNumbersColumnStyle__1c3e77r1r';
|
|
21
|
+
var codeBlockMaxHeightVar = 'var(--codeBlockMaxHeightVar__1c3e77r1j)';
|
|
22
|
+
var codeBlockPreStyle = 'ChatPanel_codeBlockPreStyle__1c3e77r1s';
|
|
23
|
+
var contextChipDismissStyle = 'ChatPanel_contextChipDismissStyle__1c3e77r22';
|
|
24
|
+
var contextChipIconStyle = 'ChatPanel_contextChipIconStyle__1c3e77r1z';
|
|
25
|
+
var contextChipItemsStyle = 'ChatPanel_contextChipItemsStyle__1c3e77r21';
|
|
26
|
+
var contextChipLabelStyle = 'ChatPanel_contextChipLabelStyle__1c3e77r20';
|
|
27
|
+
var contextChipStyle = 'ChatPanel_contextChipStyle__1c3e77r1y';
|
|
28
|
+
var emptyStateDescriptionStyle = 'ChatPanel_emptyStateDescriptionStyle__1c3e77r26';
|
|
29
|
+
var emptyStateIconStyle = 'ChatPanel_emptyStateIconStyle__1c3e77r24';
|
|
30
|
+
var emptyStateStyle = 'ChatPanel_emptyStateStyle__1c3e77r23';
|
|
31
|
+
var emptyStateSuggestionStyle = 'ChatPanel_emptyStateSuggestionStyle__1c3e77r28';
|
|
32
|
+
var emptyStateSuggestionsStyle = 'ChatPanel_emptyStateSuggestionsStyle__1c3e77r27';
|
|
33
|
+
var emptyStateTitleStyle = 'ChatPanel_emptyStateTitleStyle__1c3e77r25';
|
|
34
|
+
var inputAttachmentsStyle = 'ChatPanel_inputAttachmentsStyle__1c3e77rn';
|
|
35
|
+
var inputBottomBarStyle = 'ChatPanel_inputBottomBarStyle__1c3e77rt';
|
|
36
|
+
var inputButtonStyle = 'ChatPanel_inputButtonStyle__1c3e77rr';
|
|
37
|
+
var inputContainerStyle = 'ChatPanel_inputContainerStyle__1c3e77rm';
|
|
38
|
+
var inputMaxHeightVar = 'var(--inputMaxHeightVar__1c3e77rl)';
|
|
39
|
+
var inputPrefixStyle = 'ChatPanel_inputPrefixStyle__1c3e77ro';
|
|
40
|
+
var inputStopButtonStyle = 'ChatPanel_inputStopButtonStyle__1c3e77rs';
|
|
41
|
+
var inputTextareaStyle = 'ChatPanel_inputTextareaStyle__1c3e77rq';
|
|
42
|
+
var inputToolbarStyle = 'ChatPanel_inputToolbarStyle__1c3e77ru';
|
|
43
|
+
var inputWrapperStyle = 'ChatPanel_inputWrapperStyle__1c3e77rp';
|
|
44
|
+
var markdownBlockquoteStyle = 'ChatPanel_markdownBlockquoteStyle__1c3e77r2g';
|
|
45
|
+
var markdownHeadingStyle = 'ChatPanel_markdownHeadingStyle__1c3e77r2c';
|
|
46
|
+
var markdownHrStyle = 'ChatPanel_markdownHrStyle__1c3e77r2h';
|
|
47
|
+
var markdownLinkStyle = 'ChatPanel_markdownLinkStyle__1c3e77r2f';
|
|
48
|
+
var markdownListItemStyle = 'ChatPanel_markdownListItemStyle__1c3e77r2e';
|
|
49
|
+
var markdownListStyle = 'ChatPanel_markdownListStyle__1c3e77r2d';
|
|
50
|
+
var markdownParagraphStyle = 'ChatPanel_markdownParagraphStyle__1c3e77r2b';
|
|
51
|
+
var markdownRootStyle = 'ChatPanel_markdownRootStyle__1c3e77r2a';
|
|
52
|
+
var markdownTableStyle = 'ChatPanel_markdownTableStyle__1c3e77r2i';
|
|
53
|
+
var markdownTdStyle = 'ChatPanel_markdownTdStyle__1c3e77r2k';
|
|
54
|
+
var markdownThStyle = 'ChatPanel_markdownThStyle__1c3e77r2j';
|
|
57
55
|
var messageContentStyle = 'ChatPanel_messageContentStyle__1c3e77ra';
|
|
58
|
-
var messageErrorCaptionStyle = '
|
|
59
|
-
var messageErrorIconStyle = '
|
|
56
|
+
var messageErrorCaptionStyle = 'ChatPanel_messageErrorCaptionStyle__1c3e77rj';
|
|
57
|
+
var messageErrorIconStyle = 'ChatPanel_messageErrorIconStyle__1c3e77rk';
|
|
60
58
|
var messageListContentStyle = 'ChatPanel_messageListContentStyle__1c3e77r3';
|
|
61
59
|
var messageMaxWidthVarName = '--etui-chat-message-max-width';
|
|
62
60
|
var messageRecipe = createRuntimeFn({defaultClassName:'ChatPanel_messageRecipe__1c3e77r5',variantClassNames:{role:{user:'ChatPanel_messageRecipe_role_user__1c3e77r6',assistant:'ChatPanel_messageRecipe_role_assistant__1c3e77r7',system:'ChatPanel_messageRecipe_role_system__1c3e77r8',tool:'ChatPanel_messageRecipe_role_tool__1c3e77r9'}},defaultVariants:{role:'assistant'},compoundVariants:[]});
|
|
63
|
-
var messageTextStyle = '
|
|
64
|
-
var messageTimestampStyle = '
|
|
61
|
+
var messageTextStyle = 'ChatPanel_messageTextStyle__1c3e77rc';
|
|
62
|
+
var messageTimestampStyle = 'ChatPanel_messageTimestampStyle__1c3e77rb';
|
|
65
63
|
var newMessagesBannerStyle = 'ChatPanel_newMessagesBannerStyle__1c3e77r4';
|
|
66
|
-
var toolCallChevronRecipe = createRuntimeFn({defaultClassName:'
|
|
67
|
-
var toolCallContainerStyle = '
|
|
68
|
-
var toolCallDetailsStyle = '
|
|
69
|
-
var toolCallDurationStyle = '
|
|
70
|
-
var toolCallErrorStyle = '
|
|
71
|
-
var toolCallHeaderStyle = '
|
|
72
|
-
var toolCallIconStyle = '
|
|
73
|
-
var toolCallNameStyle = '
|
|
74
|
-
var toolCallPreStyle = '
|
|
75
|
-
var toolCallSectionLabelStyle = '
|
|
76
|
-
var toolCallStatusRecipe = createRuntimeFn({defaultClassName:'
|
|
77
|
-
var typingDotStyle = '
|
|
78
|
-
var typingDotsContainerStyle = '
|
|
79
|
-
var typingIndicatorStyle = '
|
|
80
|
-
var typingLabelStyle = '
|
|
81
|
-
var typingPulseStyle = '
|
|
64
|
+
var toolCallChevronRecipe = createRuntimeFn({defaultClassName:'ChatPanel_toolCallChevronRecipe__1c3e77r1b',variantClassNames:{open:{true:'ChatPanel_toolCallChevronRecipe_open_true__1c3e77r1c',false:'ChatPanel_toolCallChevronRecipe_open_false__1c3e77r1d'}},defaultVariants:{open:false},compoundVariants:[]});
|
|
65
|
+
var toolCallContainerStyle = 'ChatPanel_toolCallContainerStyle__1c3e77r12';
|
|
66
|
+
var toolCallDetailsStyle = 'ChatPanel_toolCallDetailsStyle__1c3e77r1e';
|
|
67
|
+
var toolCallDurationStyle = 'ChatPanel_toolCallDurationStyle__1c3e77r1i';
|
|
68
|
+
var toolCallErrorStyle = 'ChatPanel_toolCallErrorStyle__1c3e77r1h';
|
|
69
|
+
var toolCallHeaderStyle = 'ChatPanel_toolCallHeaderStyle__1c3e77r13';
|
|
70
|
+
var toolCallIconStyle = 'ChatPanel_toolCallIconStyle__1c3e77r14';
|
|
71
|
+
var toolCallNameStyle = 'ChatPanel_toolCallNameStyle__1c3e77r15';
|
|
72
|
+
var toolCallPreStyle = 'ChatPanel_toolCallPreStyle__1c3e77r1g';
|
|
73
|
+
var toolCallSectionLabelStyle = 'ChatPanel_toolCallSectionLabelStyle__1c3e77r1f';
|
|
74
|
+
var toolCallStatusRecipe = createRuntimeFn({defaultClassName:'ChatPanel_toolCallStatusRecipe__1c3e77r16',variantClassNames:{status:{pending:'ChatPanel_toolCallStatusRecipe_status_pending__1c3e77r17',running:'ChatPanel_toolCallStatusRecipe_status_running__1c3e77r18',completed:'ChatPanel_toolCallStatusRecipe_status_completed__1c3e77r19',error:'ChatPanel_toolCallStatusRecipe_status_error__1c3e77r1a'}},defaultVariants:{status:'pending'},compoundVariants:[]});
|
|
75
|
+
var typingDotStyle = 'ChatPanel_typingDotStyle__1c3e77rz';
|
|
76
|
+
var typingDotsContainerStyle = 'ChatPanel_typingDotsContainerStyle__1c3e77ry';
|
|
77
|
+
var typingIndicatorStyle = 'ChatPanel_typingIndicatorStyle__1c3e77rx';
|
|
78
|
+
var typingLabelStyle = 'ChatPanel_typingLabelStyle__1c3e77r11';
|
|
79
|
+
var typingPulseStyle = 'ChatPanel_typingPulseStyle__1c3e77r10';
|
|
82
80
|
|
|
83
|
-
export { actionBarStyle, attachmentChipIconStyle, attachmentChipNameStyle, attachmentChipRemoveStyle, attachmentChipStyle, attachmentThumbnailStyle, bubbleErrorStyle, bubbleRecipe, chatPanelRecipe, codeBlockActionsStyle, codeBlockContainerStyle, codeBlockContentStyle, codeBlockContentWithLineNumbersStyle, codeBlockCopyButtonStyle, codeBlockHeaderStyle, codeBlockLanguageStyle, codeBlockLineNumbersColumnStyle, codeBlockMaxHeightVar, codeBlockPreStyle, contextChipDismissStyle, contextChipIconStyle, contextChipItemsStyle, contextChipLabelStyle, contextChipStyle, emptyStateDescriptionStyle, emptyStateIconStyle, emptyStateStyle, emptyStateSuggestionStyle, emptyStateSuggestionsStyle, emptyStateTitleStyle, inputAttachmentsStyle, inputBottomBarStyle, inputButtonStyle, inputContainerStyle, inputMaxHeightVar, inputPrefixStyle, inputStopButtonStyle, inputTextareaStyle, inputToolbarStyle, inputWrapperStyle, markdownBlockquoteStyle, markdownHeadingStyle, markdownHrStyle, markdownLinkStyle, markdownListItemStyle, markdownListStyle, markdownParagraphStyle, markdownRootStyle, markdownTableStyle, markdownTdStyle, markdownThStyle,
|
|
81
|
+
export { actionBarStyle, attachmentChipIconStyle, attachmentChipNameStyle, attachmentChipRemoveStyle, attachmentChipStyle, attachmentThumbnailStyle, bubbleErrorStyle, bubbleRecipe, chatPanelRecipe, codeBlockActionsStyle, codeBlockContainerStyle, codeBlockContentStyle, codeBlockContentWithLineNumbersStyle, codeBlockCopyButtonStyle, codeBlockHeaderStyle, codeBlockLanguageStyle, codeBlockLineNumbersColumnStyle, codeBlockMaxHeightVar, codeBlockPreStyle, contextChipDismissStyle, contextChipIconStyle, contextChipItemsStyle, contextChipLabelStyle, contextChipStyle, emptyStateDescriptionStyle, emptyStateIconStyle, emptyStateStyle, emptyStateSuggestionStyle, emptyStateSuggestionsStyle, emptyStateTitleStyle, inputAttachmentsStyle, inputBottomBarStyle, inputButtonStyle, inputContainerStyle, inputMaxHeightVar, inputPrefixStyle, inputStopButtonStyle, inputTextareaStyle, inputToolbarStyle, inputWrapperStyle, markdownBlockquoteStyle, markdownHeadingStyle, markdownHrStyle, markdownLinkStyle, markdownListItemStyle, markdownListStyle, markdownParagraphStyle, markdownRootStyle, markdownTableStyle, markdownTdStyle, markdownThStyle, messageContentStyle, messageErrorCaptionStyle, messageErrorIconStyle, messageListContentStyle, messageMaxWidthVarName, messageRecipe, messageTextStyle, messageTimestampStyle, newMessagesBannerStyle, toolCallChevronRecipe, toolCallContainerStyle, toolCallDetailsStyle, toolCallDurationStyle, toolCallErrorStyle, toolCallHeaderStyle, toolCallIconStyle, toolCallNameStyle, toolCallPreStyle, toolCallSectionLabelStyle, toolCallStatusRecipe, typingDotStyle, typingDotsContainerStyle, typingIndicatorStyle, typingLabelStyle, typingPulseStyle };
|
|
84
82
|
//# sourceMappingURL=ChatPanel.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useRef, useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { useResizeObserver } from '../../../hooks/useResizeObserver/useResizeObserver.js';
|
|
3
4
|
|
|
4
5
|
function useChatScroll(options) {
|
|
5
6
|
const { messages, enabled = true, threshold = 100 } = options;
|
|
@@ -60,39 +61,32 @@ function useChatScroll(options) {
|
|
|
60
61
|
container.addEventListener('scroll', handleScroll, { passive: true });
|
|
61
62
|
return () => container.removeEventListener('scroll', handleScroll);
|
|
62
63
|
}, [checkIfAtBottom]);
|
|
63
|
-
//
|
|
64
|
-
//
|
|
64
|
+
// Seed the last-height baseline once the content node mounts so growth is
|
|
65
|
+
// measured against the initial height, not zero.
|
|
65
66
|
useEffect(() => {
|
|
66
|
-
if (typeof ResizeObserver === 'undefined')
|
|
67
|
-
return;
|
|
68
67
|
const content = scrollContentRef.current;
|
|
69
68
|
if (!content)
|
|
70
69
|
return;
|
|
71
70
|
lastContentHeightRef.current = content.getBoundingClientRect().height;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
ro.observe(content);
|
|
92
|
-
return () => {
|
|
93
|
-
ro.disconnect();
|
|
94
|
-
};
|
|
95
|
-
}, [scrollToBottom]);
|
|
71
|
+
}, []);
|
|
72
|
+
// Observe content growth — keeps the list pinned to the bottom during streaming
|
|
73
|
+
// (when message text grows but `messages.length` stays constant).
|
|
74
|
+
useResizeObserver(scrollContentRef, entry => {
|
|
75
|
+
const nextHeight = entry.contentRect.height;
|
|
76
|
+
const prevHeight = lastContentHeightRef.current;
|
|
77
|
+
lastContentHeightRef.current = nextHeight;
|
|
78
|
+
// Only react to growth — shrinks shouldn't force a scroll jump.
|
|
79
|
+
if (nextHeight <= prevHeight)
|
|
80
|
+
return;
|
|
81
|
+
if (!enabledRef.current)
|
|
82
|
+
return;
|
|
83
|
+
if (isAtBottomRef.current) {
|
|
84
|
+
scrollToBottom('auto');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
setHasNewMessages(true);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
96
90
|
// Auto-scroll or show indicator on new messages. Fallback for mounts and
|
|
97
91
|
// cleared lists where content height may not grow monotonically.
|
|
98
92
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatScroll.js","sources":["../../../../../../src/components/editor/ChatPanel/useChatScroll.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatScroll.js","sources":["../../../../../../src/components/editor/ChatPanel/useChatScroll.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AASM;AAGJ;AAEA;AACA;;;;AAIA;AACA;AACA;;;AAIE;AACF;;AAEE;AACF;AAEA;AACE;AACA;AAAgB;;AAGhB;AACF;;AAGE;AACA;;;;;AAKC;;;;AAKH;AACE;AACA;;AACA;;;AAKE;;;;AAOF;AACA;;;AAGE;;;;;AAKF;AAEA;;AAEF;;;;AAKE;AACA;;;;;;AAMF;AACE;AACA;AACA;;;;;;AAMA;;;;;;AAKF;;;;AAKE;AACA;AACA;;;AAIA;;;;;AAKI;AACF;;;;;AAIJ;;;;;;;;;;AAWF;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './../../../assets/src/components/editor/PropertyInspector/PropertySection.css.ts.vanilla-
|
|
1
|
+
import './../../../assets/src/components/editor/PropertyInspector/PropertySection.css.ts.vanilla-DK12opZc.css';
|
|
2
2
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
3
|
|
|
4
4
|
var actionsArea = 'PropertySection_actionsArea__1xiu0w6d';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './../../../assets/src/components/editor/TransformControl/TransformControl.css.ts.vanilla-H-iW-T0s.css';
|
|
2
|
+
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
|
+
|
|
4
|
+
var lockButtonRecipe = createRuntimeFn({defaultClassName:'TransformControl_lockButtonRecipe__nv79ki7',variantClassNames:{active:{true:'TransformControl_lockButtonRecipe_active_true__nv79ki8',false:'TransformControl_lockButtonRecipe_active_false__nv79ki9'},size:{sm:'TransformControl_lockButtonRecipe_size_sm__nv79kia',md:'TransformControl_lockButtonRecipe_size_md__nv79kib',lg:'TransformControl_lockButtonRecipe_size_lg__nv79kic'}},defaultVariants:{active:true,size:'sm'},compoundVariants:[]});
|
|
5
|
+
var lockSpacerRecipe = createRuntimeFn({defaultClassName:'TransformControl_lockSpacerRecipe__nv79ki3',variantClassNames:{size:{sm:'TransformControl_lockSpacerRecipe_size_sm__nv79ki4',md:'TransformControl_lockSpacerRecipe_size_md__nv79ki5',lg:'TransformControl_lockSpacerRecipe_size_lg__nv79ki6'}},defaultVariants:{size:'sm'},compoundVariants:[]});
|
|
6
|
+
var rowInner = 'TransformControl_rowInner__nv79ki1';
|
|
7
|
+
var rowVectorWrapper = 'TransformControl_rowVectorWrapper__nv79ki2';
|
|
8
|
+
var transformRoot = 'TransformControl_transformRoot__nv79ki0';
|
|
9
|
+
|
|
10
|
+
export { lockButtonRecipe, lockSpacerRecipe, rowInner, rowVectorWrapper, transformRoot };
|
|
11
|
+
//# sourceMappingURL=TransformControl.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformControl.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|