entangle-ui 0.9.0 → 0.10.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 +694 -0
- package/README.md +1 -1
- package/dist/esm/assets/src/components/controls/FileTree/FileTree.css.ts.vanilla-YmktPvnr.css +48 -0
- package/dist/esm/assets/src/components/controls/TreeView/{TreeNode.css.ts.vanilla-B_f8pUb8.css → TreeNode.css.ts.vanilla-DXPJRWZZ.css} +31 -24
- package/dist/esm/assets/src/components/editor/AssetBrowser/AssetBrowser.css.ts.vanilla-B2S4cEiY.css +262 -0
- package/dist/esm/assets/src/components/editor/Minimap/Minimap.css.ts.vanilla--rNdWQwy.css +133 -0
- package/dist/esm/assets/src/components/editor/NodeGraph/NodeGraph.css.ts.vanilla-ClF4YZvl.css +401 -0
- package/dist/esm/assets/src/components/editor/Timeline/Timeline.css.ts.vanilla-DDX6Zalo.css +203 -0
- package/dist/esm/assets/src/components/feedback/LogView/LogView.css.ts.vanilla-nB5ENOpw.css +312 -0
- package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-B5iVe5S2.css +88 -0
- package/dist/esm/assets/src/components/navigation/PathBar/PathBar.css.ts.vanilla-BIEzQQOf.css +10 -0
- package/dist/esm/assets/src/components/primitives/viewport/Viewport.css.ts.vanilla-CkFBJ7Vo.css +65 -0
- package/dist/esm/assets/src/components/shell/FloatingPanel/{FloatingPanel.css.ts.vanilla-1rIAXEFp.css → FloatingPanel.css.ts.vanilla-CRaeYJ2b.css} +20 -13
- package/dist/esm/assets/src/theme/{darkTheme.css.ts.vanilla-ab1WD4dr.css → darkTheme.css.ts.vanilla-BHZ3ecRn.css} +3 -3
- package/dist/esm/assets/src/theme/{lightTheme.css.ts.vanilla-OaRI_wIc.css → lightTheme.css.ts.vanilla-Ct6f9Iym.css} +3 -3
- package/dist/esm/components/Icons/AddIcon.js.map +1 -1
- package/dist/esm/components/Icons/AiChatIcon.js.map +1 -1
- package/dist/esm/components/Icons/AiSparklesIcon.js.map +1 -1
- package/dist/esm/components/Icons/ArchiveIcon.js.map +1 -1
- package/dist/esm/components/Icons/ArrowDownIcon.js.map +1 -1
- package/dist/esm/components/Icons/ArrowLeftIcon.js.map +1 -1
- package/dist/esm/components/Icons/ArrowRightIcon.js.map +1 -1
- package/dist/esm/components/Icons/ArrowUpIcon.js.map +1 -1
- package/dist/esm/components/Icons/BookmarkIcon.js.map +1 -1
- package/dist/esm/components/Icons/BugIcon.js.map +1 -1
- package/dist/esm/components/Icons/BuildingIcon.js.map +1 -1
- package/dist/esm/components/Icons/CalendarIcon.js.map +1 -1
- package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronLeftIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronRightIcon.js.map +1 -1
- package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
- package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
- package/dist/esm/components/Icons/ClockIcon.js.map +1 -1
- package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
- package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -1
- package/dist/esm/components/Icons/CodeIcon.js.map +1 -1
- package/dist/esm/components/Icons/CopyIcon.js.map +1 -1
- package/dist/esm/components/Icons/CutIcon.js.map +1 -1
- package/dist/esm/components/Icons/DotsHorizontalIcon.js.map +1 -1
- package/dist/esm/components/Icons/DotsVerticalIcon.js.map +1 -1
- package/dist/esm/components/Icons/DownloadIcon.js.map +1 -1
- package/dist/esm/components/Icons/EditIcon.js.map +1 -1
- package/dist/esm/components/Icons/ErrorIcon.js.map +1 -1
- package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -1
- package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
- package/dist/esm/components/Icons/EyeIcon.js.map +1 -1
- package/dist/esm/components/Icons/FileTextIcon.js.map +1 -1
- package/dist/esm/components/Icons/FilterIcon.js.map +1 -1
- package/dist/esm/components/Icons/FirstIcon.js.map +1 -1
- package/dist/esm/components/Icons/FolderCogIcon.js.map +1 -1
- package/dist/esm/components/Icons/FolderIcon.js.map +1 -1
- package/dist/esm/components/Icons/FolderOpenIcon.js +2 -2
- package/dist/esm/components/Icons/FolderOpenIcon.js.map +1 -1
- package/dist/esm/components/Icons/FullscreenIcon.js.map +1 -1
- package/dist/esm/components/Icons/GitBranchIcon.js.map +1 -1
- package/dist/esm/components/Icons/GridIcon.js.map +1 -1
- package/dist/esm/components/Icons/HeartIcon.js.map +1 -1
- package/dist/esm/components/Icons/HelpIcon.js.map +1 -1
- package/dist/esm/components/Icons/HomeIcon.js.map +1 -1
- package/dist/esm/components/Icons/ImageIcon.js +31 -0
- package/dist/esm/components/Icons/ImageIcon.js.map +1 -0
- package/dist/esm/components/Icons/InfoIcon.js.map +1 -1
- package/dist/esm/components/Icons/LastIcon.js.map +1 -1
- package/dist/esm/components/Icons/LinkIcon.js.map +1 -1
- package/dist/esm/components/Icons/ListIcon.js.map +1 -1
- package/dist/esm/components/Icons/LockIcon.js.map +1 -1
- package/dist/esm/components/Icons/MaximizeIcon.js.map +1 -1
- package/dist/esm/components/Icons/MenuIcon.js.map +1 -1
- package/dist/esm/components/Icons/MinimizeIcon.js.map +1 -1
- package/dist/esm/components/Icons/MinusIcon.js.map +1 -1
- package/dist/esm/components/Icons/PasteIcon.js.map +1 -1
- package/dist/esm/components/Icons/PauseIcon.js +2 -2
- package/dist/esm/components/Icons/PauseIcon.js.map +1 -1
- package/dist/esm/components/Icons/PinIcon.js.map +1 -1
- package/dist/esm/components/Icons/PlayIcon.js.map +1 -1
- package/dist/esm/components/Icons/RedoIcon.js.map +1 -1
- package/dist/esm/components/Icons/RefreshIcon.js.map +1 -1
- package/dist/esm/components/Icons/RobotIcon.js.map +1 -1
- package/dist/esm/components/Icons/SaveIcon.js.map +1 -1
- package/dist/esm/components/Icons/SearchIcon.js.map +1 -1
- package/dist/esm/components/Icons/SendIcon.js.map +1 -1
- package/dist/esm/components/Icons/SettingsIcon.js.map +1 -1
- package/dist/esm/components/Icons/SortIcon.js.map +1 -1
- package/dist/esm/components/Icons/StarIcon.js.map +1 -1
- package/dist/esm/components/Icons/StopIcon.js.map +1 -1
- package/dist/esm/components/Icons/SuccessIcon.js.map +1 -1
- package/dist/esm/components/Icons/TagIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
- package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
- package/dist/esm/components/Icons/TerminalIcon.js.map +1 -1
- package/dist/esm/components/Icons/TrashIcon.js.map +1 -1
- package/dist/esm/components/Icons/UndoIcon.js.map +1 -1
- package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -1
- package/dist/esm/components/Icons/UnlockIcon.js.map +1 -1
- package/dist/esm/components/Icons/UploadIcon.js.map +1 -1
- package/dist/esm/components/Icons/UserIcon.js.map +1 -1
- package/dist/esm/components/Icons/UsersIcon.js.map +1 -1
- package/dist/esm/components/Icons/WarningIcon.js.map +1 -1
- package/dist/esm/components/Icons/ZoomInIcon.js.map +1 -1
- package/dist/esm/components/Icons/ZoomOutIcon.js.map +1 -1
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +3 -3
- package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -1
- package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +7 -5
- package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -1
- package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorArea.js +2 -2
- package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js +16 -2
- package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js +3 -1
- package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js +6 -6
- package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js +3 -1
- package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
- package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
- package/dist/esm/components/controls/Combobox/Combobox.js +46 -23
- package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +11 -4
- package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js +4 -4
- package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +7 -5
- package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/curveUtils.js +13 -15
- package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +72 -50
- package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +11 -3
- package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
- package/dist/esm/components/controls/FileTree/FileTree.css.js +9 -0
- package/dist/esm/components/controls/FileTree/FileTree.css.js.map +1 -0
- package/dist/esm/components/controls/FileTree/FileTree.js +246 -0
- package/dist/esm/components/controls/FileTree/FileTree.js.map +1 -0
- package/dist/esm/components/controls/FileTree/fileTreeIcons.js +129 -0
- package/dist/esm/components/controls/FileTree/fileTreeIcons.js.map +1 -0
- package/dist/esm/components/controls/FileTree/fileTreeLabels.js +8 -0
- package/dist/esm/components/controls/FileTree/fileTreeLabels.js.map +1 -0
- package/dist/esm/components/controls/FileTree/useFileTreeDrop.js +115 -0
- package/dist/esm/components/controls/FileTree/useFileTreeDrop.js.map +1 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.js +3 -6
- package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -1
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js +46 -15
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/components/controls/NumberInput/NumberInput.js +11 -4
- package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
- package/dist/esm/components/controls/NumberInput/useNumberInput.js +6 -2
- package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
- package/dist/esm/components/controls/Select/Select.js +31 -11
- package/dist/esm/components/controls/Select/Select.js.map +1 -1
- package/dist/esm/components/controls/Slider/Slider.js +6 -8
- package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
- package/dist/esm/components/controls/TagInput/TagInput.js +4 -2
- package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -1
- package/dist/esm/components/controls/TreeView/TreeNode.css.js +9 -8
- package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -1
- package/dist/esm/components/controls/TreeView/TreeNode.js +36 -7
- package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
- package/dist/esm/components/controls/TreeView/TreeView.js +18 -6
- package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
- package/dist/esm/components/controls/TreeView/useTreeState.js +2 -6
- package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
- package/dist/esm/components/controls/VectorInput/VectorInput.js +7 -4
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
- package/dist/esm/components/data/DataTable/DataTable.js +25 -8
- package/dist/esm/components/data/DataTable/DataTable.js.map +1 -1
- package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js +46 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js +254 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js +17 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js +25 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js +134 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js +81 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js +123 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js +130 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js +137 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js +220 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js +183 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js +63 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js +19 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js +24 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js +176 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js +114 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js +128 -0
- package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js +90 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js +32 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js +70 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js +62 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js +52 -0
- package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/slots.js +18 -0
- package/dist/esm/components/editor/AssetBrowser/slots.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js +19 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js +70 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js +108 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js +192 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js +91 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js +91 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js +128 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js +72 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js +141 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js +113 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js.map +1 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js +174 -0
- package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +8 -2
- package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +14 -4
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +3 -1
- package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatInput.js +4 -3
- package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js +4 -3
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +5 -3
- package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/useChatMessages.js +7 -4
- package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js +6 -1
- package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
- package/dist/esm/components/editor/Minimap/Minimap.css.js +18 -0
- package/dist/esm/components/editor/Minimap/Minimap.css.js.map +1 -0
- package/dist/esm/components/editor/Minimap/Minimap.js +257 -0
- package/dist/esm/components/editor/Minimap/Minimap.js.map +1 -0
- package/dist/esm/components/editor/Minimap/Minimap.types.js +11 -0
- package/dist/esm/components/editor/Minimap/Minimap.types.js.map +1 -0
- package/dist/esm/components/editor/Minimap/MinimapContext.js +48 -0
- package/dist/esm/components/editor/Minimap/MinimapContext.js.map +1 -0
- package/dist/esm/components/editor/Minimap/MinimapCorner.js +16 -0
- package/dist/esm/components/editor/Minimap/MinimapCorner.js.map +1 -0
- package/dist/esm/components/editor/Minimap/MinimapFooter.js +16 -0
- package/dist/esm/components/editor/Minimap/MinimapFooter.js.map +1 -0
- package/dist/esm/components/editor/Minimap/MinimapStore.js +166 -0
- package/dist/esm/components/editor/Minimap/MinimapStore.js.map +1 -0
- package/dist/esm/components/editor/Minimap/MinimapTitle.js +16 -0
- package/dist/esm/components/editor/Minimap/MinimapTitle.js.map +1 -0
- package/dist/esm/components/editor/Minimap/ViewportMinimap.js +69 -0
- package/dist/esm/components/editor/Minimap/ViewportMinimap.js.map +1 -0
- package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js +65 -0
- package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js.map +1 -0
- package/dist/esm/components/editor/Minimap/index.js +15 -0
- package/dist/esm/components/editor/Minimap/index.js.map +1 -0
- package/dist/esm/components/editor/Minimap/minimapCoords.js +105 -0
- package/dist/esm/components/editor/Minimap/minimapCoords.js.map +1 -0
- package/dist/esm/components/editor/Minimap/minimapDrawing.js +93 -0
- package/dist/esm/components/editor/Minimap/minimapDrawing.js.map +1 -0
- package/dist/esm/components/editor/Minimap/minimapHitTest.js +59 -0
- package/dist/esm/components/editor/Minimap/minimapHitTest.js.map +1 -0
- package/dist/esm/components/editor/Minimap/useMinimapGestures.js +299 -0
- package/dist/esm/components/editor/Minimap/useMinimapGestures.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js +36 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.js +627 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js +10 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js +54 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js +137 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js +211 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js +122 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js +170 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js +21 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js +56 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js +59 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js +17 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js +35 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js +191 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js +46 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js +50 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js +70 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js +543 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js +100 -0
- package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js +37 -0
- package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js +53 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js +461 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js +31 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js +350 -0
- package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/sortSlots.js +69 -0
- package/dist/esm/components/editor/NodeGraph/sortSlots.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useDragGesture.js +63 -0
- package/dist/esm/components/editor/NodeGraph/useDragGesture.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraph.js +207 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraph.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js +334 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js +137 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js +392 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js +164 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js +234 -0
- package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js.map +1 -0
- package/dist/esm/components/editor/NodeGraph/useStoreSlice.js +49 -0
- package/dist/esm/components/editor/NodeGraph/useStoreSlice.js.map +1 -0
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +8 -4
- package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +3 -2
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js +15 -2
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
- package/dist/esm/components/editor/Timeline/Timeline.css.js +23 -0
- package/dist/esm/components/editor/Timeline/Timeline.css.js.map +1 -0
- package/dist/esm/components/editor/Timeline/Timeline.js +450 -0
- package/dist/esm/components/editor/Timeline/Timeline.js.map +1 -0
- package/dist/esm/components/editor/Timeline/Timeline.types.js +10 -0
- package/dist/esm/components/editor/Timeline/Timeline.types.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineContext.js +69 -0
- package/dist/esm/components/editor/Timeline/TimelineContext.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineFooter.js +16 -0
- package/dist/esm/components/editor/Timeline/TimelineFooter.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineMinimap.js +280 -0
- package/dist/esm/components/editor/Timeline/TimelineMinimap.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineStore.js +289 -0
- package/dist/esm/components/editor/Timeline/TimelineStore.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineToolbar.js +15 -0
- package/dist/esm/components/editor/Timeline/TimelineToolbar.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js +142 -0
- package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js.map +1 -0
- package/dist/esm/components/editor/Timeline/TimelineTrackScale.js +18 -0
- package/dist/esm/components/editor/Timeline/TimelineTrackScale.js.map +1 -0
- package/dist/esm/components/editor/Timeline/index.js +18 -0
- package/dist/esm/components/editor/Timeline/index.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineCoords.js +118 -0
- package/dist/esm/components/editor/Timeline/timelineCoords.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineDrawing.js +390 -0
- package/dist/esm/components/editor/Timeline/timelineDrawing.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineEdits.js +323 -0
- package/dist/esm/components/editor/Timeline/timelineEdits.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineHitTest.js +153 -0
- package/dist/esm/components/editor/Timeline/timelineHitTest.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineLayout.js +39 -0
- package/dist/esm/components/editor/Timeline/timelineLayout.js.map +1 -0
- package/dist/esm/components/editor/Timeline/timelineSelection.js +0 -0
- package/dist/esm/components/editor/Timeline/timelineSelection.js.map +1 -0
- package/dist/esm/components/editor/Timeline/useTimelineDraw.js +156 -0
- package/dist/esm/components/editor/Timeline/useTimelineDraw.js.map +1 -0
- package/dist/esm/components/editor/Timeline/useTimelineGestures.js +587 -0
- package/dist/esm/components/editor/Timeline/useTimelineGestures.js.map +1 -0
- package/dist/esm/components/editor/Timeline/useTimelinePlayback.js +85 -0
- package/dist/esm/components/editor/Timeline/useTimelinePlayback.js.map +1 -0
- package/dist/esm/components/editor/TransformControl/TransformControl.js +4 -4
- package/dist/esm/components/editor/TransformControl/TransformControl.js.map +1 -1
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +8 -4
- package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -1
- package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +6 -2
- package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -1
- package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +8 -6
- package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -1
- package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +1 -2
- package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -1
- package/dist/esm/components/feedback/Alert/Alert.js +8 -8
- package/dist/esm/components/feedback/Alert/Alert.js.map +1 -1
- package/dist/esm/components/feedback/Alert/AlertActions.js.map +1 -1
- package/dist/esm/components/feedback/Alert/AlertDescription.js.map +1 -1
- package/dist/esm/components/feedback/Alert/AlertTitle.js.map +1 -1
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +32 -22
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -1
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +3 -1
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/Dialog.js +6 -3
- package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/DialogHeader.js +1 -1
- package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +10 -2
- package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
- package/dist/esm/components/feedback/Drawer/Drawer.js +4 -1
- package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -1
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +4 -0
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -1
- package/dist/esm/components/feedback/EmptyState/EmptyState.js +1 -1
- package/dist/esm/components/feedback/EmptyState/EmptyState.js.map +1 -1
- package/dist/esm/components/feedback/LogView/LogView.css.js +35 -0
- package/dist/esm/components/feedback/LogView/LogView.css.js.map +1 -0
- package/dist/esm/components/feedback/LogView/LogView.js +297 -0
- package/dist/esm/components/feedback/LogView/LogView.js.map +1 -0
- package/dist/esm/components/feedback/LogView/LogViewBody.js +205 -0
- package/dist/esm/components/feedback/LogView/LogViewBody.js.map +1 -0
- package/dist/esm/components/feedback/LogView/LogViewContext.js +31 -0
- package/dist/esm/components/feedback/LogView/LogViewContext.js.map +1 -0
- package/dist/esm/components/feedback/LogView/LogViewParts.js +73 -0
- package/dist/esm/components/feedback/LogView/LogViewParts.js.map +1 -0
- package/dist/esm/components/feedback/LogView/LogViewStore.js +240 -0
- package/dist/esm/components/feedback/LogView/LogViewStore.js.map +1 -0
- package/dist/esm/components/feedback/LogView/logViewLabels.js +25 -0
- package/dist/esm/components/feedback/LogView/logViewLabels.js.map +1 -0
- package/dist/esm/components/feedback/LogView/logViewLevels.js +74 -0
- package/dist/esm/components/feedback/LogView/logViewLevels.js.map +1 -0
- package/dist/esm/components/feedback/LogView/logViewUtils.js +128 -0
- package/dist/esm/components/feedback/LogView/logViewUtils.js.map +1 -0
- package/dist/esm/components/feedback/LogView/useFollowTail.js +95 -0
- package/dist/esm/components/feedback/LogView/useFollowTail.js.map +1 -0
- package/dist/esm/components/feedback/LogView/useLogSelection.js +113 -0
- package/dist/esm/components/feedback/LogView/useLogSelection.js.map +1 -0
- package/dist/esm/components/feedback/ProgressBar/CircularProgress.js +1 -1
- package/dist/esm/components/feedback/ProgressBar/CircularProgress.js.map +1 -1
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.js +1 -1
- package/dist/esm/components/feedback/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/components/feedback/Skeleton/Skeleton.js +1 -1
- package/dist/esm/components/feedback/Skeleton/Skeleton.js.map +1 -1
- package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js +1 -1
- package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js.map +1 -1
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +1 -1
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -1
- package/dist/esm/components/feedback/Spinner/Spinner.js +1 -1
- package/dist/esm/components/feedback/Spinner/Spinner.js.map +1 -1
- package/dist/esm/components/feedback/Stat/Stat.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastContainer.js +1 -1
- package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastItem.js +7 -3
- package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
- package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
- package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
- package/dist/esm/components/form/FormHelperText.js.map +1 -1
- package/dist/esm/components/form/FormLabel.js.map +1 -1
- package/dist/esm/components/form/InputWrapper.js.map +1 -1
- package/dist/esm/components/layout/Accordion/Accordion.js +1 -1
- package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionContent.js +1 -1
- package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionItem.js +1 -1
- package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js +7 -2
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/esm/components/layout/Card/Card.js +2 -2
- package/dist/esm/components/layout/Card/Card.js.map +1 -1
- package/dist/esm/components/layout/Divider/Divider.js.map +1 -1
- package/dist/esm/components/layout/Flex/Flex.js +1 -1
- package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
- package/dist/esm/components/layout/Grid/Grid.js +1 -1
- package/dist/esm/components/layout/ListItem/ListItem.js +1 -1
- package/dist/esm/components/layout/ListItem/ListItem.js.map +1 -1
- package/dist/esm/components/layout/PageHeader/PageHeader.js.map +1 -1
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js +3 -3
- package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js +91 -23
- package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/layout/SplitPane/SplitPane.js +29 -16
- package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
- package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
- package/dist/esm/components/layout/Stack/Stack.js +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +4 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +6 -2
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +7 -2
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -39
- package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/esm/components/navigation/Menu/Menu.css.js +9 -12
- package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -1
- package/dist/esm/components/navigation/Menu/Menu.js +97 -63
- package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
- package/dist/esm/components/navigation/Menu/MenuGapContext.js +19 -0
- package/dist/esm/components/navigation/Menu/MenuGapContext.js.map +1 -0
- package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -1
- package/dist/esm/components/navigation/PathBar/PathBar.css.js +6 -0
- package/dist/esm/components/navigation/PathBar/PathBar.css.js.map +1 -0
- package/dist/esm/components/navigation/PathBar/PathBar.js +178 -0
- package/dist/esm/components/navigation/PathBar/PathBar.js.map +1 -0
- package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js +145 -0
- package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js.map +1 -0
- package/dist/esm/components/navigation/PathBar/pathUtils.js +118 -0
- package/dist/esm/components/navigation/PathBar/pathUtils.js.map +1 -0
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js +16 -6
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js +1 -1
- package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/Tab.js +10 -3
- package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/TabList.js +5 -2
- package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
- package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/primitives/Avatar/Avatar.js +5 -4
- package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/primitives/Avatar/AvatarGroup.js +2 -2
- package/dist/esm/components/primitives/Avatar/AvatarGroup.js.map +1 -1
- package/dist/esm/components/primitives/Badge/Badge.js +4 -3
- package/dist/esm/components/primitives/Badge/Badge.js.map +1 -1
- package/dist/esm/components/primitives/Button/Button.js.map +1 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.js +6 -4
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +2 -2
- package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/esm/components/primitives/Code/Code.js.map +1 -1
- package/dist/esm/components/primitives/Collapsible/Collapsible.js +2 -2
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
- package/dist/esm/components/primitives/HoverCard/HoverCard.js +5 -3
- package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -1
- package/dist/esm/components/primitives/Icon/Icon.js +1 -1
- package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
- package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
- package/dist/esm/components/primitives/Input/Input.js +1 -1
- package/dist/esm/components/primitives/Input/Input.js.map +1 -1
- package/dist/esm/components/primitives/Kbd/Kbd.js +1 -1
- package/dist/esm/components/primitives/Kbd/Kbd.js.map +1 -1
- package/dist/esm/components/primitives/Link/Link.js.map +1 -1
- package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
- package/dist/esm/components/primitives/Popover/Popover.js +1 -1
- package/dist/esm/components/primitives/Popover/PopoverClose.js +1 -1
- package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverContent.js +6 -4
- package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
- package/dist/esm/components/primitives/Radio/Radio.js +3 -3
- package/dist/esm/components/primitives/Radio/Radio.js.map +1 -1
- package/dist/esm/components/primitives/Radio/RadioGroup.js +2 -2
- package/dist/esm/components/primitives/Radio/RadioGroup.js.map +1 -1
- package/dist/esm/components/primitives/Switch/Switch.js +1 -1
- package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
- package/dist/esm/components/primitives/Text/Text.js.map +1 -1
- package/dist/esm/components/primitives/TextArea/TextArea.js +3 -4
- package/dist/esm/components/primitives/TextArea/TextArea.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/Arrow.js +1 -1
- package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/Tooltip.js +9 -7
- package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/primitives/Tooltip/utils.js +1 -1
- package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
- package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/esm/components/primitives/canvas/CanvasContainer.js +1 -1
- package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -1
- package/dist/esm/components/primitives/canvas/canvasDrawing.js +1 -1
- package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -1
- package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -1
- package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +8 -2
- package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -1
- package/dist/esm/components/primitives/viewport/Viewport.css.js +12 -0
- package/dist/esm/components/primitives/viewport/Viewport.css.js.map +1 -0
- package/dist/esm/components/primitives/viewport/Viewport.js +189 -0
- package/dist/esm/components/primitives/viewport/Viewport.js.map +1 -0
- package/dist/esm/components/primitives/viewport/ViewportContext.js +47 -0
- package/dist/esm/components/primitives/viewport/ViewportContext.js.map +1 -0
- package/dist/esm/components/primitives/viewport/ViewportLayer.js +113 -0
- package/dist/esm/components/primitives/viewport/ViewportLayer.js.map +1 -0
- package/dist/esm/components/primitives/viewport/ViewportOverlay.js +47 -0
- package/dist/esm/components/primitives/viewport/ViewportOverlay.js.map +1 -0
- package/dist/esm/components/primitives/viewport/ViewportStore.js +210 -0
- package/dist/esm/components/primitives/viewport/ViewportStore.js.map +1 -0
- package/dist/esm/components/primitives/viewport/ViewportWorld.js +38 -0
- package/dist/esm/components/primitives/viewport/ViewportWorld.js.map +1 -0
- package/dist/esm/components/primitives/viewport/useViewportGestures.js +333 -0
- package/dist/esm/components/primitives/viewport/useViewportGestures.js.map +1 -0
- package/dist/esm/components/primitives/viewport/viewportCoords.js +37 -0
- package/dist/esm/components/primitives/viewport/viewportCoords.js.map +1 -0
- package/dist/esm/components/primitives/viewport/viewportMath.js +77 -0
- package/dist/esm/components/primitives/viewport/viewportMath.js.map +1 -0
- package/dist/esm/components/shell/AppShell/AppShell.js +1 -1
- package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +11 -10
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -1
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +60 -24
- package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
- package/dist/esm/components/shell/MenuBar/MenuBar.js +23 -16
- package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
- package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
- package/dist/esm/components/shell/Toolbar/Toolbar.js +4 -3
- package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/context/KeyboardContext.js.map +1 -1
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +1 -1
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
- package/dist/esm/hooks/useClickOutside/useClickOutside.js +9 -9
- package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
- package/dist/esm/hooks/useClipboard/useClipboard.js +4 -0
- package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -1
- package/dist/esm/hooks/useControlledState/useControlledState.js.map +1 -1
- package/dist/esm/hooks/useDebounced/useDebouncedCallback.js +11 -6
- package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -1
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js +16 -4
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -1
- package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -1
- package/dist/esm/hooks/useEventCallback/useEventCallback.js +49 -0
- package/dist/esm/hooks/useEventCallback/useEventCallback.js.map +1 -0
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
- package/dist/esm/hooks/useHotkey/useHotkey.js +7 -12
- package/dist/esm/hooks/useHotkey/useHotkey.js.map +1 -1
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -0
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/dist/esm/hooks/useIsMounted/useIsMounted.js +43 -0
- package/dist/esm/hooks/useIsMounted/useIsMounted.js.map +1 -0
- package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
- package/dist/esm/hooks/useKeyboard/utils.js.map +1 -1
- package/dist/esm/hooks/useLatest/useLatest.js +31 -0
- package/dist/esm/hooks/useLatest/useLatest.js.map +1 -0
- package/dist/esm/hooks/useListboxNav/useListboxNav.js +29 -13
- package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -1
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +7 -1
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
- package/dist/esm/hooks/useMergedRef/useMergedRef.js +6 -1
- package/dist/esm/hooks/useMergedRef/useMergedRef.js.map +1 -1
- package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js +146 -0
- package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js.map +1 -0
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +6 -8
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
- package/dist/esm/hooks/useTheme/useTheme.js +5 -2
- package/dist/esm/hooks/useTheme/useTheme.js.map +1 -1
- package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js +9 -4
- package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -1
- package/dist/esm/index.js +57 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +37 -0
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/esm/theme/ThemeProvider.js +1 -1
- package/dist/esm/theme/ThemeProvider.js.map +1 -1
- package/dist/esm/theme/contract.css.js +1 -1
- package/dist/esm/theme/createCustomTheme.js +1 -1
- package/dist/esm/theme/createCustomTheme.js.map +1 -1
- package/dist/esm/theme/darkTheme.css.js +2 -2
- package/dist/esm/theme/darkThemeValues.js +1 -1
- package/dist/esm/theme/darkThemeValues.js.map +1 -1
- package/dist/esm/theme/lightTheme.css.js +1 -1
- package/dist/esm/theme/lightThemeValues.js +1 -1
- package/dist/esm/theme/lightThemeValues.js.map +1 -1
- package/dist/esm/theme/themeContractData.js +4 -4
- package/dist/esm/theme/themeContractData.js.map +1 -1
- package/dist/esm/utils/devWarn.js +1 -1
- package/dist/esm/utils/mathExpression.js +1 -1
- package/dist/esm/utils/mathExpression.js.map +1 -1
- package/dist/tokens/tokens.dark.css +1 -1
- package/dist/tokens/tokens.json +1 -1
- package/dist/tokens/tokens.light.css +1 -1
- package/dist/types/components/Icons/AddIcon.d.ts +1 -1
- package/dist/types/components/Icons/AiChatIcon.d.ts +1 -1
- package/dist/types/components/Icons/AiSparklesIcon.d.ts +1 -1
- package/dist/types/components/Icons/ArchiveIcon.d.ts +1 -1
- package/dist/types/components/Icons/ArrowDownIcon.d.ts +1 -1
- package/dist/types/components/Icons/ArrowLeftIcon.d.ts +1 -1
- package/dist/types/components/Icons/ArrowRightIcon.d.ts +1 -1
- package/dist/types/components/Icons/ArrowUpIcon.d.ts +1 -1
- package/dist/types/components/Icons/BookmarkIcon.d.ts +1 -1
- package/dist/types/components/Icons/BugIcon.d.ts +1 -1
- package/dist/types/components/Icons/BuildingIcon.d.ts +1 -1
- package/dist/types/components/Icons/CalendarIcon.d.ts +1 -1
- package/dist/types/components/Icons/CheckIcon.d.ts +1 -1
- package/dist/types/components/Icons/ChevronDownIcon.d.ts +1 -1
- package/dist/types/components/Icons/ChevronLeftIcon.d.ts +1 -1
- package/dist/types/components/Icons/ChevronRightIcon.d.ts +1 -1
- package/dist/types/components/Icons/ChevronUpIcon.d.ts +1 -1
- package/dist/types/components/Icons/CircleIcon.d.ts +1 -1
- package/dist/types/components/Icons/ClockIcon.d.ts +1 -1
- package/dist/types/components/Icons/CloseIcon.d.ts +1 -1
- package/dist/types/components/Icons/CloudUploadIcon.d.ts +1 -1
- package/dist/types/components/Icons/CodeIcon.d.ts +1 -1
- package/dist/types/components/Icons/CopyIcon.d.ts +1 -1
- package/dist/types/components/Icons/CutIcon.d.ts +1 -1
- package/dist/types/components/Icons/DotsHorizontalIcon.d.ts +1 -1
- package/dist/types/components/Icons/DotsVerticalIcon.d.ts +1 -1
- package/dist/types/components/Icons/DownloadIcon.d.ts +1 -1
- package/dist/types/components/Icons/EditIcon.d.ts +1 -1
- package/dist/types/components/Icons/ErrorIcon.d.ts +1 -1
- package/dist/types/components/Icons/ExternalLinkIcon.d.ts +1 -1
- package/dist/types/components/Icons/EyeDropperIcon.d.ts +1 -1
- package/dist/types/components/Icons/EyeIcon.d.ts +1 -1
- package/dist/types/components/Icons/FileTextIcon.d.ts +1 -1
- package/dist/types/components/Icons/FilterIcon.d.ts +1 -1
- package/dist/types/components/Icons/FirstIcon.d.ts +1 -1
- package/dist/types/components/Icons/FolderCogIcon.d.ts +1 -1
- package/dist/types/components/Icons/FolderIcon.d.ts +1 -1
- package/dist/types/components/Icons/FolderOpenIcon.d.ts +1 -1
- package/dist/types/components/Icons/FullscreenIcon.d.ts +1 -1
- package/dist/types/components/Icons/GitBranchIcon.d.ts +1 -1
- package/dist/types/components/Icons/GridIcon.d.ts +1 -1
- package/dist/types/components/Icons/HeartIcon.d.ts +1 -1
- package/dist/types/components/Icons/HelpIcon.d.ts +1 -1
- package/dist/types/components/Icons/HomeIcon.d.ts +1 -1
- package/dist/types/components/Icons/ImageIcon.d.ts +34 -0
- package/dist/types/components/Icons/InfoIcon.d.ts +1 -1
- package/dist/types/components/Icons/LastIcon.d.ts +1 -1
- package/dist/types/components/Icons/LinkIcon.d.ts +1 -1
- package/dist/types/components/Icons/ListIcon.d.ts +1 -1
- package/dist/types/components/Icons/LockIcon.d.ts +1 -1
- package/dist/types/components/Icons/MaximizeIcon.d.ts +1 -1
- package/dist/types/components/Icons/MenuIcon.d.ts +1 -1
- package/dist/types/components/Icons/MinimizeIcon.d.ts +1 -1
- package/dist/types/components/Icons/MinusIcon.d.ts +1 -1
- package/dist/types/components/Icons/PasteIcon.d.ts +1 -1
- package/dist/types/components/Icons/PauseIcon.d.ts +1 -1
- package/dist/types/components/Icons/PinIcon.d.ts +1 -1
- package/dist/types/components/Icons/PlayIcon.d.ts +1 -1
- package/dist/types/components/Icons/RedoIcon.d.ts +1 -1
- package/dist/types/components/Icons/RefreshIcon.d.ts +1 -1
- package/dist/types/components/Icons/RobotIcon.d.ts +1 -1
- package/dist/types/components/Icons/SaveIcon.d.ts +1 -1
- package/dist/types/components/Icons/SearchIcon.d.ts +1 -1
- package/dist/types/components/Icons/SendIcon.d.ts +1 -1
- package/dist/types/components/Icons/SettingsIcon.d.ts +1 -1
- package/dist/types/components/Icons/SortIcon.d.ts +1 -1
- package/dist/types/components/Icons/StarIcon.d.ts +1 -1
- package/dist/types/components/Icons/StopIcon.d.ts +1 -1
- package/dist/types/components/Icons/SuccessIcon.d.ts +1 -1
- package/dist/types/components/Icons/TagIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentAlignedIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentAutoIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentFreeIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentLinearIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentMirroredIcon.d.ts +1 -1
- package/dist/types/components/Icons/TangentStepIcon.d.ts +1 -1
- package/dist/types/components/Icons/TerminalIcon.d.ts +1 -1
- package/dist/types/components/Icons/TrashIcon.d.ts +1 -1
- package/dist/types/components/Icons/UndoIcon.d.ts +1 -1
- package/dist/types/components/Icons/UnlinkIcon.d.ts +1 -1
- package/dist/types/components/Icons/UnlockIcon.d.ts +1 -1
- package/dist/types/components/Icons/UploadIcon.d.ts +1 -1
- package/dist/types/components/Icons/UserIcon.d.ts +1 -1
- package/dist/types/components/Icons/UsersIcon.d.ts +1 -1
- package/dist/types/components/Icons/WarningIcon.d.ts +1 -1
- package/dist/types/components/Icons/ZoomInIcon.d.ts +1 -1
- package/dist/types/components/Icons/ZoomOutIcon.d.ts +1 -1
- package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +3 -3
- package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +2 -2
- package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +1 -1
- package/dist/types/components/controls/Combobox/Combobox.types.d.ts +1 -1
- package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +8 -58
- package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +2 -1
- package/dist/types/components/controls/FileTree/FileTree.d.ts +34 -0
- package/dist/types/components/controls/FileTree/FileTree.types.d.ts +133 -0
- package/dist/types/components/controls/FileTree/fileTreeIcons.d.ts +29 -0
- package/dist/types/components/controls/FileTree/fileTreeLabels.d.ts +19 -0
- package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +2 -2
- package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +1 -1
- package/dist/types/components/controls/NumberInput/NumberInput.d.ts +2 -2
- package/dist/types/components/controls/Select/Select.types.d.ts +2 -2
- package/dist/types/components/controls/Slider/Slider.d.ts +1 -1
- package/dist/types/components/controls/TagInput/TagInput.types.d.ts +2 -2
- package/dist/types/components/controls/TreeView/TreeView.d.ts +1 -1
- package/dist/types/components/controls/TreeView/TreeView.types.d.ts +24 -2
- package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +1 -1
- package/dist/types/components/data/DataTable/DataTable.types.d.ts +2 -2
- package/dist/types/components/editor/AssetBrowser/AssetBrowser.d.ts +13 -0
- package/dist/types/components/editor/AssetBrowser/AssetBrowser.types.d.ts +241 -0
- package/dist/types/components/editor/AssetBrowser/assetBrowserLabels.d.ts +70 -0
- package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.types.d.ts +1 -1
- package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +2 -2
- package/dist/types/components/editor/Minimap/Minimap.d.ts +26 -0
- package/dist/types/components/editor/Minimap/Minimap.types.d.ts +249 -0
- package/dist/types/components/editor/Minimap/MinimapContext.d.ts +27 -0
- package/dist/types/components/editor/Minimap/MinimapCorner.d.ts +8 -0
- package/dist/types/components/editor/Minimap/MinimapFooter.d.ts +8 -0
- package/dist/types/components/editor/Minimap/MinimapStore.d.ts +17 -0
- package/dist/types/components/editor/Minimap/MinimapTitle.d.ts +8 -0
- package/dist/types/components/editor/Minimap/ViewportMinimap.d.ts +52 -0
- package/dist/types/components/editor/Minimap/computeBoundsFromItems.d.ts +13 -0
- package/dist/types/components/editor/Minimap/index.d.ts +13 -0
- package/dist/types/components/editor/NodeGraph/NodeGraph.d.ts +63 -0
- package/dist/types/components/editor/NodeGraph/NodeGraph.types.d.ts +568 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphContext.d.ts +30 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphNodeParts.d.ts +86 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphNodeSection.d.ts +47 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphPin.d.ts +57 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphPort.d.ts +30 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphPortVisual.d.ts +46 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphSlots.d.ts +16 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphStore.d.ts +256 -0
- package/dist/types/components/editor/NodeGraph/NodeGraphToolbar.d.ts +54 -0
- package/dist/types/components/editor/NodeGraph/createTypeMatchValidator.d.ts +43 -0
- package/dist/types/components/editor/NodeGraph/nodeGraphActions.d.ts +39 -0
- package/dist/types/components/editor/NodeGraph/nodeGraphIds.d.ts +16 -0
- package/dist/types/components/editor/NodeGraph/useNodeGraph.d.ts +103 -0
- package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +2 -2
- package/dist/types/components/editor/Timeline/Timeline.d.ts +18 -0
- package/dist/types/components/editor/Timeline/Timeline.types.d.ts +348 -0
- package/dist/types/components/editor/Timeline/TimelineContext.d.ts +51 -0
- package/dist/types/components/editor/Timeline/TimelineFooter.d.ts +8 -0
- package/dist/types/components/editor/Timeline/TimelineMinimap.d.ts +21 -0
- package/dist/types/components/editor/Timeline/TimelineStore.d.ts +41 -0
- package/dist/types/components/editor/Timeline/TimelineToolbar.d.ts +8 -0
- package/dist/types/components/editor/Timeline/TimelineTrackScale.d.ts +8 -0
- package/dist/types/components/editor/Timeline/index.d.ts +15 -0
- package/dist/types/components/editor/Timeline/timelineCoords.d.ts +7 -0
- package/dist/types/components/editor/Timeline/timelineEdits.d.ts +18 -0
- package/dist/types/components/editor/TransformControl/TransformControl.types.d.ts +2 -2
- package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +1 -1
- package/dist/types/components/feedback/Alert/Alert.d.ts +2 -2
- package/dist/types/components/feedback/Alert/Alert.types.d.ts +5 -5
- package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +1 -3
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +2 -2
- package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +1 -1
- package/dist/types/components/feedback/EmptyState/EmptyState.types.d.ts +2 -2
- package/dist/types/components/feedback/LogView/LogView.d.ts +58 -0
- package/dist/types/components/feedback/LogView/LogView.types.d.ts +333 -0
- package/dist/types/components/feedback/LogView/LogViewBody.d.ts +15 -0
- package/dist/types/components/feedback/LogView/LogViewContext.d.ts +9 -0
- package/dist/types/components/feedback/LogView/LogViewParts.d.ts +35 -0
- package/dist/types/components/feedback/LogView/LogViewStore.d.ts +4 -0
- package/dist/types/components/feedback/LogView/logViewLabels.d.ts +9 -0
- package/dist/types/components/feedback/LogView/logViewUtils.d.ts +41 -0
- package/dist/types/components/feedback/ProgressBar/ProgressBar.types.d.ts +3 -3
- package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +4 -4
- package/dist/types/components/feedback/Stat/Stat.types.d.ts +2 -2
- package/dist/types/components/feedback/Toast/Toast.types.d.ts +1 -1
- package/dist/types/components/form/FormHelperText.d.ts +2 -2
- package/dist/types/components/form/FormLabel.d.ts +1 -1
- package/dist/types/components/form/InputWrapper.d.ts +2 -2
- package/dist/types/components/layout/Accordion/Accordion.types.d.ts +2 -2
- package/dist/types/components/layout/Card/Card.types.d.ts +6 -6
- package/dist/types/components/layout/Divider/Divider.types.d.ts +2 -2
- package/dist/types/components/layout/Flex/Flex.d.ts +1 -1
- package/dist/types/components/layout/Grid/Grid.d.ts +1 -1
- package/dist/types/components/layout/ListItem/ListItem.types.d.ts +2 -2
- package/dist/types/components/layout/PageHeader/PageHeader.types.d.ts +1 -1
- package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +6 -6
- package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +2 -2
- package/dist/types/components/layout/Stack/Stack.d.ts +1 -1
- package/dist/types/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +1 -0
- package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +7 -0
- package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +18 -3
- package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +55 -63
- package/dist/types/components/navigation/Menu/Menu.d.ts +38 -35
- package/dist/types/components/navigation/Menu/Menu.types.d.ts +190 -71
- package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +1 -1
- package/dist/types/components/navigation/PathBar/PathBar.d.ts +31 -0
- package/dist/types/components/navigation/PathBar/PathBar.types.d.ts +79 -0
- package/dist/types/components/navigation/SegmentedControl/SegmentedControl.types.d.ts +3 -3
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +2 -2
- package/dist/types/components/primitives/Avatar/Avatar.types.d.ts +2 -2
- package/dist/types/components/primitives/Badge/Badge.types.d.ts +1 -1
- package/dist/types/components/primitives/Button/Button.d.ts +1 -1
- package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +2 -2
- package/dist/types/components/primitives/Code/Code.types.d.ts +1 -1
- package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +2 -2
- package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +3 -3
- package/dist/types/components/primitives/Icon/Icon.d.ts +2 -2
- package/dist/types/components/primitives/Input/Input.d.ts +1 -1
- package/dist/types/components/primitives/Kbd/Kbd.types.d.ts +1 -1
- package/dist/types/components/primitives/Link/Link.types.d.ts +1 -1
- package/dist/types/components/primitives/Popover/Popover.types.d.ts +2 -2
- package/dist/types/components/primitives/Radio/Radio.types.d.ts +3 -3
- package/dist/types/components/primitives/Switch/Switch.d.ts +1 -1
- package/dist/types/components/primitives/TextArea/TextArea.types.d.ts +1 -1
- package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +1 -1
- package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.types.d.ts +1 -1
- package/dist/types/components/primitives/canvas/canvas.types.d.ts +16 -1
- package/dist/types/components/primitives/viewport/Viewport.d.ts +38 -0
- package/dist/types/components/primitives/viewport/Viewport.types.d.ts +257 -0
- package/dist/types/components/primitives/viewport/ViewportContext.d.ts +23 -0
- package/dist/types/components/primitives/viewport/ViewportLayer.d.ts +26 -0
- package/dist/types/components/primitives/viewport/ViewportOverlay.d.ts +27 -0
- package/dist/types/components/primitives/viewport/ViewportWorld.d.ts +25 -0
- package/dist/types/components/primitives/viewport/viewportCoords.d.ts +25 -0
- package/dist/types/components/primitives/viewport/viewportMath.d.ts +35 -0
- package/dist/types/components/shell/AppShell/AppShell.types.d.ts +2 -2
- package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +2 -2
- package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +5 -5
- package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +3 -3
- package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +5 -5
- package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +13 -4
- package/dist/types/hooks/useEventCallback/useEventCallback.d.ts +32 -0
- package/dist/types/hooks/useIsMounted/useIsMounted.d.ts +28 -0
- package/dist/types/hooks/useKeyboard/types.d.ts +1 -1
- package/dist/types/hooks/useLatest/useLatest.d.ts +23 -0
- package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +3 -3
- package/dist/types/index.d.ts +65 -6
- package/dist/types/theme/contract.css.d.ts +1 -1
- package/dist/types/theme/createCustomTheme.d.ts +1 -1
- package/dist/types/theme/darkThemeValues.d.ts +1 -1
- package/dist/types/theme/lightThemeValues.d.ts +1 -1
- package/dist/types/theme/themeContractData.d.ts +4 -4
- package/dist/types/theme-values.d.ts +1 -1
- package/dist/types/types/keyframe.d.ts +64 -0
- package/package.json +29 -17
- package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +0 -67
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +0 -53
- package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +0 -1
- package/dist/esm/components/navigation/Menu/Menu.helpers.js +0 -53
- package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +0 -1
- package/dist/esm/components/navigation/Menu/useMenu.js +0 -88
- package/dist/esm/components/navigation/Menu/useMenu.js.map +0 -1
- package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +0 -5
- package/dist/types/components/navigation/Menu/useMenu.d.ts +0 -16
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useRef, useCallback, useMemo } from 'react';
|
|
3
|
+
import '../../../utils/devWarn.js';
|
|
4
|
+
import { useLatest } from '../../../hooks/useLatest/useLatest.js';
|
|
5
|
+
import '../../../hooks/useBreakpoint/useBreakpoint.js';
|
|
6
|
+
import './../../../assets/src/theme/lightTheme.css.ts.vanilla-Ct6f9Iym.css';
|
|
7
|
+
import '../../../node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js';
|
|
8
|
+
import './../../../assets/src/theme/darkTheme.css.ts.vanilla-BHZ3ecRn.css';
|
|
9
|
+
import 'react/jsx-runtime';
|
|
10
|
+
import './../../../assets/src/theme/globalScrollbars.css.ts.vanilla-BAJwnUEJ.css';
|
|
11
|
+
import '../../../hooks/useNavigationHistory/useNavigationHistory.js';
|
|
12
|
+
import { xToFrame, yToValue, snapFrame } from './timelineCoords.js';
|
|
13
|
+
import { moveSelectedKeyframesGraph, moveSelectedKeyframes, setKeyframeTangent, valueAtPointer, addKeyframe, makeKeyframe, pasteKeyframes, copySelectedKeyframes, removeSelectedKeyframes } from './timelineEdits.js';
|
|
14
|
+
import { hitTestTimeline, keyframesInRect } from './timelineHitTest.js';
|
|
15
|
+
import { sameRef } from './timelineSelection.js';
|
|
16
|
+
import { clamp } from '../../../utils/mathUtils.js';
|
|
17
|
+
|
|
18
|
+
const CLICK_THRESHOLD_PX = 3;
|
|
19
|
+
const KEYBOARD_LARGE_STEP = 10;
|
|
20
|
+
function localPoint(e, container) {
|
|
21
|
+
if (!container)
|
|
22
|
+
return { x: 0, y: 0 };
|
|
23
|
+
const rect = container.getBoundingClientRect();
|
|
24
|
+
return { x: e.clientX - rect.left, y: e.clientY - rect.top };
|
|
25
|
+
}
|
|
26
|
+
function nextSelection(selection, ref, additive) {
|
|
27
|
+
const exists = selection.some(r => sameRef(r, ref));
|
|
28
|
+
if (additive) {
|
|
29
|
+
return exists
|
|
30
|
+
? selection.filter(r => !sameRef(r, ref))
|
|
31
|
+
: [...selection, ref];
|
|
32
|
+
}
|
|
33
|
+
return exists ? selection : [ref];
|
|
34
|
+
}
|
|
35
|
+
function mergeSelection(base, add) {
|
|
36
|
+
const result = [...base];
|
|
37
|
+
for (const ref of add) {
|
|
38
|
+
if (!result.some(r => sameRef(r, ref)))
|
|
39
|
+
result.push(ref);
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Pointer / wheel / keyboard gesture machine for `<Timeline>`. The hook is
|
|
45
|
+
* called every render with a fresh `options` object (live props + the
|
|
46
|
+
* component's action callbacks, several of which change identity on every
|
|
47
|
+
* frame). They are read through a single `useLatest` ref so the returned
|
|
48
|
+
* handlers keep a **stable identity for the component's lifetime** — they are
|
|
49
|
+
* attached to the DOM (`onPointerDown=…`) and to a native `wheel` listener, so
|
|
50
|
+
* stability is what keeps listeners from re-attaching every render. Reads
|
|
51
|
+
* happen at event time, by which point the ref already holds the latest
|
|
52
|
+
* committed options. Drag state (cursor + marquee) is written to the store,
|
|
53
|
+
* not React state.
|
|
54
|
+
*/
|
|
55
|
+
function useTimelineGestures(options) {
|
|
56
|
+
// Single live snapshot of every option/action. `useLatest` keeps it synced
|
|
57
|
+
// to the most recently committed render, so handlers below never need the
|
|
58
|
+
// individual values in their dependency arrays.
|
|
59
|
+
const optsRef = useLatest(options);
|
|
60
|
+
const stateRef = useRef(null);
|
|
61
|
+
const clipboardRef = useRef(null);
|
|
62
|
+
const hitAt = useCallback((point) => {
|
|
63
|
+
const o = optsRef.current;
|
|
64
|
+
return hitTestTimeline({
|
|
65
|
+
point,
|
|
66
|
+
view: o.view,
|
|
67
|
+
size: o.size,
|
|
68
|
+
rows: o.rows,
|
|
69
|
+
scrollTop: o.scrollTop,
|
|
70
|
+
rulerHeight: o.rulerHeight,
|
|
71
|
+
loopStripHeight: o.loopStripHeight,
|
|
72
|
+
loopHandles: o.loopHandles,
|
|
73
|
+
frame: o.frame,
|
|
74
|
+
showPlayhead: o.showPlayhead,
|
|
75
|
+
loopRegion: o.loopRegion,
|
|
76
|
+
isSelected: (t, k) => o.selection.some(r => r.trackId === t && r.keyframeId === k),
|
|
77
|
+
});
|
|
78
|
+
}, [optsRef]);
|
|
79
|
+
const moveFromState = useCallback((state, point) => {
|
|
80
|
+
const o = optsRef.current;
|
|
81
|
+
const view = o.view;
|
|
82
|
+
const width = o.size.width;
|
|
83
|
+
const curFrame = xToFrame(point.x, view, width);
|
|
84
|
+
const delta = curFrame - (state.startFramePos ?? curFrame);
|
|
85
|
+
const origTracks = state.origTracks ?? o.tracks;
|
|
86
|
+
const sel = state.moveSelection ?? [];
|
|
87
|
+
if (state.graphMove) {
|
|
88
|
+
return moveSelectedKeyframesGraph(origTracks, sel, delta, point.y - state.startY, o.trackHeight, o.expandedHeight, o.snap, o.startFrame, o.endFrame);
|
|
89
|
+
}
|
|
90
|
+
return moveSelectedKeyframes(origTracks, sel, delta, o.snap, o.startFrame, o.endFrame);
|
|
91
|
+
}, [optsRef]);
|
|
92
|
+
const tangentOffset = useCallback((state, point) => {
|
|
93
|
+
const o = optsRef.current;
|
|
94
|
+
const ref = state.tangentRef;
|
|
95
|
+
if (!ref)
|
|
96
|
+
return null;
|
|
97
|
+
const geom = o.trackTops.get(ref.trackId);
|
|
98
|
+
if (!geom)
|
|
99
|
+
return null;
|
|
100
|
+
const tracks = state.origTracks ?? o.tracks;
|
|
101
|
+
const track = tracks.find(t => t.id === ref.trackId);
|
|
102
|
+
const kf = track?.keyframes.find(k => k.id === ref.keyframeId);
|
|
103
|
+
if (!track || !kf)
|
|
104
|
+
return null;
|
|
105
|
+
const screenTop = o.rulerHeight + o.loopStripHeight + geom.top - o.scrollTop;
|
|
106
|
+
const range = geom.range;
|
|
107
|
+
return {
|
|
108
|
+
x: xToFrame(point.x, o.view, o.size.width) - kf.x,
|
|
109
|
+
y: yToValue(point.y, range, screenTop, geom.height) - kf.y,
|
|
110
|
+
};
|
|
111
|
+
}, [optsRef]);
|
|
112
|
+
const onPointerDown = useCallback((e) => {
|
|
113
|
+
const o = optsRef.current;
|
|
114
|
+
const container = o.containerRef.current;
|
|
115
|
+
if (!container)
|
|
116
|
+
return;
|
|
117
|
+
const point = localPoint(e, container);
|
|
118
|
+
const view = o.view;
|
|
119
|
+
const width = o.size.width;
|
|
120
|
+
if (e.button === 1) {
|
|
121
|
+
e.preventDefault();
|
|
122
|
+
container.setPointerCapture(e.pointerId);
|
|
123
|
+
stateRef.current = {
|
|
124
|
+
pointerId: e.pointerId,
|
|
125
|
+
mode: 'pan',
|
|
126
|
+
startX: point.x,
|
|
127
|
+
startY: point.y,
|
|
128
|
+
startView: view,
|
|
129
|
+
};
|
|
130
|
+
o.store.setDrag({ kind: 'pan', marquee: null });
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (e.button !== 0)
|
|
134
|
+
return;
|
|
135
|
+
const hit = hitAt(point);
|
|
136
|
+
if (hit.kind === 'loop-start' ||
|
|
137
|
+
hit.kind === 'loop-end' ||
|
|
138
|
+
hit.kind === 'loop-body') {
|
|
139
|
+
const region = o.loopRegion;
|
|
140
|
+
if (!region)
|
|
141
|
+
return;
|
|
142
|
+
e.preventDefault();
|
|
143
|
+
container.setPointerCapture(e.pointerId);
|
|
144
|
+
stateRef.current = {
|
|
145
|
+
pointerId: e.pointerId,
|
|
146
|
+
mode: 'loop',
|
|
147
|
+
startX: point.x,
|
|
148
|
+
startY: point.y,
|
|
149
|
+
loopWhich: hit.kind === 'loop-start'
|
|
150
|
+
? 'start'
|
|
151
|
+
: hit.kind === 'loop-end'
|
|
152
|
+
? 'end'
|
|
153
|
+
: 'body',
|
|
154
|
+
startLoop: region,
|
|
155
|
+
};
|
|
156
|
+
o.store.setDrag({ kind: 'scrub', marquee: null });
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// Alt+drag on the ruler creates / narrows the loop region — works
|
|
160
|
+
// even when looping is currently off (the drag flips `loop` to a
|
|
161
|
+
// sub-range object via `setLoop`). Gated on the ruler band so it still
|
|
162
|
+
// fires when the drag starts right on the playhead line.
|
|
163
|
+
if (e.altKey &&
|
|
164
|
+
point.y < o.rulerHeight &&
|
|
165
|
+
(hit.kind === 'ruler' || hit.kind === 'playhead')) {
|
|
166
|
+
e.preventDefault();
|
|
167
|
+
container.setPointerCapture(e.pointerId);
|
|
168
|
+
const anchorFrame = xToFrame(point.x, view, width);
|
|
169
|
+
const anchor = clamp(anchorFrame, o.startFrame, o.endFrame);
|
|
170
|
+
stateRef.current = {
|
|
171
|
+
pointerId: e.pointerId,
|
|
172
|
+
mode: 'loop',
|
|
173
|
+
startX: point.x,
|
|
174
|
+
startY: point.y,
|
|
175
|
+
loopWhich: 'create',
|
|
176
|
+
startLoop: { startFrame: anchor, endFrame: anchor },
|
|
177
|
+
};
|
|
178
|
+
o.store.setDrag({ kind: 'scrub', marquee: null });
|
|
179
|
+
o.setLoop({ startFrame: anchor, endFrame: anchor });
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
// Plain drag on the dedicated loop strip = loop create (no Alt needed).
|
|
183
|
+
if (hit.kind === 'loop-strip') {
|
|
184
|
+
e.preventDefault();
|
|
185
|
+
container.setPointerCapture(e.pointerId);
|
|
186
|
+
const anchorFrame = xToFrame(point.x, view, width);
|
|
187
|
+
const anchor = clamp(anchorFrame, o.startFrame, o.endFrame);
|
|
188
|
+
stateRef.current = {
|
|
189
|
+
pointerId: e.pointerId,
|
|
190
|
+
mode: 'loop',
|
|
191
|
+
startX: point.x,
|
|
192
|
+
startY: point.y,
|
|
193
|
+
loopWhich: 'create',
|
|
194
|
+
startLoop: { startFrame: anchor, endFrame: anchor },
|
|
195
|
+
};
|
|
196
|
+
o.store.setDrag({ kind: 'scrub', marquee: null });
|
|
197
|
+
o.setLoop({ startFrame: anchor, endFrame: anchor });
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (hit.kind === 'ruler' || hit.kind === 'playhead') {
|
|
201
|
+
e.preventDefault();
|
|
202
|
+
container.setPointerCapture(e.pointerId);
|
|
203
|
+
stateRef.current = {
|
|
204
|
+
pointerId: e.pointerId,
|
|
205
|
+
mode: 'scrub',
|
|
206
|
+
startX: point.x,
|
|
207
|
+
startY: point.y,
|
|
208
|
+
};
|
|
209
|
+
o.store.setDrag({ kind: 'scrub', marquee: null });
|
|
210
|
+
o.seekLive(xToFrame(point.x, view, width));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (hit.kind === 'tangent') {
|
|
214
|
+
e.preventDefault();
|
|
215
|
+
container.setPointerCapture(e.pointerId);
|
|
216
|
+
stateRef.current = {
|
|
217
|
+
pointerId: e.pointerId,
|
|
218
|
+
mode: 'tangent',
|
|
219
|
+
startX: point.x,
|
|
220
|
+
startY: point.y,
|
|
221
|
+
origTracks: o.tracks,
|
|
222
|
+
tangentRef: { trackId: hit.trackId, keyframeId: hit.keyframeId },
|
|
223
|
+
tangentWhich: hit.which,
|
|
224
|
+
};
|
|
225
|
+
o.store.setDrag({ kind: 'move', marquee: null });
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
if (hit.kind === 'group') {
|
|
229
|
+
const groups = o.groups;
|
|
230
|
+
o.setGroups(groups.map(g => g.id === hit.groupId ? { ...g, collapsed: !g.collapsed } : g));
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
if (hit.kind === 'keyframe') {
|
|
234
|
+
const additive = e.shiftKey || e.ctrlKey || e.metaKey;
|
|
235
|
+
const ref = { trackId: hit.trackId, keyframeId: hit.keyframeId };
|
|
236
|
+
const sel = nextSelection(o.selection, ref, additive);
|
|
237
|
+
o.setSelection(sel);
|
|
238
|
+
if (o.editable) {
|
|
239
|
+
e.preventDefault();
|
|
240
|
+
container.setPointerCapture(e.pointerId);
|
|
241
|
+
stateRef.current = {
|
|
242
|
+
pointerId: e.pointerId,
|
|
243
|
+
mode: 'move',
|
|
244
|
+
startX: point.x,
|
|
245
|
+
startY: point.y,
|
|
246
|
+
origTracks: o.tracks,
|
|
247
|
+
moveSelection: sel,
|
|
248
|
+
graphMove: o.trackTops.get(hit.trackId)?.graph ?? false,
|
|
249
|
+
startFramePos: xToFrame(point.x, view, width),
|
|
250
|
+
};
|
|
251
|
+
o.store.setDrag({ kind: 'move', marquee: null });
|
|
252
|
+
}
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
// empty / outside → marquee box-select
|
|
256
|
+
const additive = e.shiftKey || e.ctrlKey || e.metaKey;
|
|
257
|
+
e.preventDefault();
|
|
258
|
+
container.setPointerCapture(e.pointerId);
|
|
259
|
+
stateRef.current = {
|
|
260
|
+
pointerId: e.pointerId,
|
|
261
|
+
mode: 'marquee',
|
|
262
|
+
startX: point.x,
|
|
263
|
+
startY: point.y,
|
|
264
|
+
additive,
|
|
265
|
+
};
|
|
266
|
+
o.store.setDrag({
|
|
267
|
+
kind: 'marquee',
|
|
268
|
+
marquee: { x: point.x, y: point.y, width: 0, height: 0 },
|
|
269
|
+
});
|
|
270
|
+
}, [optsRef, hitAt]);
|
|
271
|
+
const onPointerMove = useCallback((e) => {
|
|
272
|
+
const o = optsRef.current;
|
|
273
|
+
const container = o.containerRef.current;
|
|
274
|
+
if (!container)
|
|
275
|
+
return;
|
|
276
|
+
const point = localPoint(e, container);
|
|
277
|
+
const state = stateRef.current;
|
|
278
|
+
// Hover-tracking: only when no active drag (so the diamond / circle can
|
|
279
|
+
// grow under the cursor as a "grabbable" affordance; playhead glows
|
|
280
|
+
// when the cursor is over the line or its head).
|
|
281
|
+
if (!state) {
|
|
282
|
+
const hit = hitAt(point);
|
|
283
|
+
if (hit.kind === 'keyframe') {
|
|
284
|
+
o.store.setHover({
|
|
285
|
+
trackId: hit.trackId,
|
|
286
|
+
keyframeId: hit.keyframeId,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
o.store.setHover(null);
|
|
291
|
+
}
|
|
292
|
+
o.store.setHoverPlayhead(hit.kind === 'playhead');
|
|
293
|
+
o.store.setHoverLoop(hit.kind === 'loop-start'
|
|
294
|
+
? 'start'
|
|
295
|
+
: hit.kind === 'loop-end'
|
|
296
|
+
? 'end'
|
|
297
|
+
: hit.kind === 'loop-body'
|
|
298
|
+
? 'body'
|
|
299
|
+
: null);
|
|
300
|
+
}
|
|
301
|
+
if (state?.pointerId !== e.pointerId)
|
|
302
|
+
return;
|
|
303
|
+
const view = o.view;
|
|
304
|
+
const width = o.size.width;
|
|
305
|
+
if (state.mode === 'loop') {
|
|
306
|
+
const frame = xToFrame(point.x, view, width);
|
|
307
|
+
const sl = state.startLoop;
|
|
308
|
+
if (sl && state.loopWhich === 'create') {
|
|
309
|
+
const cur = clamp(frame, o.startFrame, o.endFrame);
|
|
310
|
+
o.setLoop({
|
|
311
|
+
startFrame: Math.min(sl.startFrame, cur),
|
|
312
|
+
endFrame: Math.max(sl.startFrame, cur),
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
else if (sl && state.loopWhich === 'start') {
|
|
316
|
+
o.setLoop({
|
|
317
|
+
startFrame: clamp(frame, o.startFrame, sl.endFrame),
|
|
318
|
+
endFrame: sl.endFrame,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
else if (sl && state.loopWhich === 'end') {
|
|
322
|
+
o.setLoop({
|
|
323
|
+
startFrame: sl.startFrame,
|
|
324
|
+
endFrame: clamp(frame, sl.startFrame, o.endFrame),
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
else if (sl) {
|
|
328
|
+
const span = sl.endFrame - sl.startFrame;
|
|
329
|
+
const delta = frame - xToFrame(state.startX, view, width);
|
|
330
|
+
const ns = clamp(sl.startFrame + delta, o.startFrame, o.endFrame - span);
|
|
331
|
+
o.setLoop({ startFrame: ns, endFrame: ns + span });
|
|
332
|
+
}
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (state.mode === 'scrub') {
|
|
336
|
+
o.seekLive(xToFrame(point.x, view, width));
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
if (state.mode === 'pan') {
|
|
340
|
+
const startView = state.startView ?? view;
|
|
341
|
+
const span = startView.endFrame - startView.startFrame;
|
|
342
|
+
const dxFrames = ((point.x - state.startX) / Math.max(1, width)) * span;
|
|
343
|
+
o.setView({
|
|
344
|
+
startFrame: startView.startFrame - dxFrames,
|
|
345
|
+
endFrame: startView.endFrame - dxFrames,
|
|
346
|
+
});
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
if (state.mode === 'tangent') {
|
|
350
|
+
const offset = tangentOffset(state, point);
|
|
351
|
+
if (offset && state.tangentRef && state.tangentWhich) {
|
|
352
|
+
o.setTracks(setKeyframeTangent(state.origTracks ?? o.tracks, state.tangentRef, state.tangentWhich, offset));
|
|
353
|
+
}
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (state.mode === 'move') {
|
|
357
|
+
o.setTracks(moveFromState(state, point));
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
// Only 'marquee' remains after the early returns above.
|
|
361
|
+
o.store.setDrag({
|
|
362
|
+
kind: 'marquee',
|
|
363
|
+
marquee: {
|
|
364
|
+
x: Math.min(state.startX, point.x),
|
|
365
|
+
y: Math.min(state.startY, point.y),
|
|
366
|
+
width: Math.abs(point.x - state.startX),
|
|
367
|
+
height: Math.abs(point.y - state.startY),
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
}, [optsRef, hitAt, tangentOffset, moveFromState]);
|
|
371
|
+
const onPointerLeave = useCallback(() => {
|
|
372
|
+
const o = optsRef.current;
|
|
373
|
+
o.store.setHover(null);
|
|
374
|
+
o.store.setHoverPlayhead(false);
|
|
375
|
+
o.store.setHoverLoop(null);
|
|
376
|
+
}, [optsRef]);
|
|
377
|
+
const endGesture = useCallback((e, cancelled) => {
|
|
378
|
+
const o = optsRef.current;
|
|
379
|
+
const state = stateRef.current;
|
|
380
|
+
if (state?.pointerId !== e.pointerId)
|
|
381
|
+
return;
|
|
382
|
+
const container = o.containerRef.current;
|
|
383
|
+
if (container?.hasPointerCapture(e.pointerId)) {
|
|
384
|
+
container.releasePointerCapture(e.pointerId);
|
|
385
|
+
}
|
|
386
|
+
const point = localPoint(e, container);
|
|
387
|
+
const view = o.view;
|
|
388
|
+
const size = o.size;
|
|
389
|
+
if (!cancelled) {
|
|
390
|
+
if (state.mode === 'loop' && state.loopWhich === 'create') {
|
|
391
|
+
// Bare Alt-click (no drag) on the ruler: don't leave a zero-width
|
|
392
|
+
// loop hanging around — clear it.
|
|
393
|
+
if (Math.abs(point.x - state.startX) < CLICK_THRESHOLD_PX) {
|
|
394
|
+
o.setLoop(false);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
else if (state.mode === 'scrub') {
|
|
398
|
+
o.seekCommit(xToFrame(point.x, view, size.width));
|
|
399
|
+
}
|
|
400
|
+
else if (state.mode === 'move') {
|
|
401
|
+
o.commitTracks(moveFromState(state, point));
|
|
402
|
+
}
|
|
403
|
+
else if (state.mode === 'tangent') {
|
|
404
|
+
const offset = tangentOffset(state, point);
|
|
405
|
+
if (offset && state.tangentRef && state.tangentWhich) {
|
|
406
|
+
o.commitTracks(setKeyframeTangent(state.origTracks ?? o.tracks, state.tangentRef, state.tangentWhich, offset));
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
else if (state.mode === 'marquee') {
|
|
410
|
+
const rect = {
|
|
411
|
+
x: Math.min(state.startX, point.x),
|
|
412
|
+
y: Math.min(state.startY, point.y),
|
|
413
|
+
width: Math.abs(point.x - state.startX),
|
|
414
|
+
height: Math.abs(point.y - state.startY),
|
|
415
|
+
};
|
|
416
|
+
if (rect.width < CLICK_THRESHOLD_PX &&
|
|
417
|
+
rect.height < CLICK_THRESHOLD_PX) {
|
|
418
|
+
if (!state.additive)
|
|
419
|
+
o.setSelection([]);
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
const found = keyframesInRect({
|
|
423
|
+
x: rect.x,
|
|
424
|
+
y: rect.y - o.rulerHeight - o.loopStripHeight + o.scrollTop,
|
|
425
|
+
width: rect.width,
|
|
426
|
+
height: rect.height,
|
|
427
|
+
}, view, size, o.rows);
|
|
428
|
+
const base = state.additive ? o.selection : [];
|
|
429
|
+
o.setSelection(mergeSelection(base, found));
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
o.store.setDrag({ kind: 'none', marquee: null });
|
|
434
|
+
stateRef.current = null;
|
|
435
|
+
}, [optsRef, moveFromState, tangentOffset]);
|
|
436
|
+
const onPointerUp = useCallback((e) => {
|
|
437
|
+
endGesture(e, false);
|
|
438
|
+
}, [endGesture]);
|
|
439
|
+
const onPointerCancel = useCallback((e) => {
|
|
440
|
+
endGesture(e, true);
|
|
441
|
+
}, [endGesture]);
|
|
442
|
+
const onDoubleClick = useCallback((e) => {
|
|
443
|
+
const o = optsRef.current;
|
|
444
|
+
if (!o.editable || !o.allowAddKeyframe)
|
|
445
|
+
return;
|
|
446
|
+
const container = o.containerRef.current;
|
|
447
|
+
if (!container)
|
|
448
|
+
return;
|
|
449
|
+
const point = localPoint(e, container);
|
|
450
|
+
const hit = hitAt(point);
|
|
451
|
+
if (hit.kind !== 'empty')
|
|
452
|
+
return;
|
|
453
|
+
const track = o.tracks.find(t => t.id === hit.trackId);
|
|
454
|
+
if (!track || track.locked)
|
|
455
|
+
return;
|
|
456
|
+
const view = o.view;
|
|
457
|
+
const width = o.size.width;
|
|
458
|
+
const frame = clamp(snapFrame(xToFrame(point.x, view, width), o.snap), o.startFrame, o.endFrame);
|
|
459
|
+
const value = valueAtPointer({
|
|
460
|
+
pointerY: point.y,
|
|
461
|
+
frame,
|
|
462
|
+
track,
|
|
463
|
+
geometry: o.trackTops.get(track.id),
|
|
464
|
+
rulerHeight: o.rulerHeight + o.loopStripHeight,
|
|
465
|
+
scrollTop: o.scrollTop,
|
|
466
|
+
});
|
|
467
|
+
const next = addKeyframe(o.tracks, track.id, makeKeyframe(frame, value));
|
|
468
|
+
o.setTracks(next);
|
|
469
|
+
o.commitTracks(next);
|
|
470
|
+
}, [optsRef, hitAt]);
|
|
471
|
+
const onWheel = useCallback((e) => {
|
|
472
|
+
const o = optsRef.current;
|
|
473
|
+
const container = o.containerRef.current;
|
|
474
|
+
if (!container)
|
|
475
|
+
return;
|
|
476
|
+
e.preventDefault();
|
|
477
|
+
const view = o.view;
|
|
478
|
+
const width = Math.max(1, o.size.width);
|
|
479
|
+
const span = view.endFrame - view.startFrame;
|
|
480
|
+
if (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) {
|
|
481
|
+
const delta = e.shiftKey ? e.deltaY : e.deltaX;
|
|
482
|
+
const panFrames = (delta / width) * span;
|
|
483
|
+
o.setView({
|
|
484
|
+
startFrame: view.startFrame + panFrames,
|
|
485
|
+
endFrame: view.endFrame + panFrames,
|
|
486
|
+
});
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
// Plain vertical wheel scrolls tracks when they overflow; Ctrl/Cmd zooms.
|
|
490
|
+
if (!e.ctrlKey && !e.metaKey && o.maxScrollTop > 0) {
|
|
491
|
+
o.scrollBy(e.deltaY);
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
const rangeSpan = Math.max(1, o.endFrame - o.startFrame);
|
|
495
|
+
const maxSpan = o.maxFramesVisible ?? rangeSpan;
|
|
496
|
+
const factor = Math.exp(e.deltaY * 0.0015);
|
|
497
|
+
const newSpan = clamp(span * factor, o.minFramesVisible, maxSpan);
|
|
498
|
+
const point = localPoint(e, container);
|
|
499
|
+
const frac = point.x / width;
|
|
500
|
+
const cursorFrame = view.startFrame + frac * span;
|
|
501
|
+
const newStart = cursorFrame - frac * newSpan;
|
|
502
|
+
o.setView({
|
|
503
|
+
startFrame: newStart,
|
|
504
|
+
endFrame: newStart + newSpan,
|
|
505
|
+
});
|
|
506
|
+
}, [optsRef]);
|
|
507
|
+
const onKeyDown = useCallback((e) => {
|
|
508
|
+
const o = optsRef.current;
|
|
509
|
+
switch (e.key) {
|
|
510
|
+
case 'ArrowLeft':
|
|
511
|
+
case 'ArrowRight': {
|
|
512
|
+
e.preventDefault();
|
|
513
|
+
const dir = e.key === 'ArrowLeft' ? -1 : 1;
|
|
514
|
+
const step = (e.shiftKey ? KEYBOARD_LARGE_STEP : 1) * dir;
|
|
515
|
+
o.seekCommit(o.frame + step);
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
case 'Home':
|
|
519
|
+
e.preventDefault();
|
|
520
|
+
o.seekCommit(o.startFrame);
|
|
521
|
+
return;
|
|
522
|
+
case 'End':
|
|
523
|
+
e.preventDefault();
|
|
524
|
+
o.seekCommit(o.endFrame);
|
|
525
|
+
return;
|
|
526
|
+
case 'Delete':
|
|
527
|
+
case 'Backspace': {
|
|
528
|
+
if (!o.editable || !o.allowDeleteKeyframe)
|
|
529
|
+
return;
|
|
530
|
+
const sel = o.selection;
|
|
531
|
+
if (sel.length === 0)
|
|
532
|
+
return;
|
|
533
|
+
e.preventDefault();
|
|
534
|
+
const next = removeSelectedKeyframes(o.tracks, sel);
|
|
535
|
+
o.setTracks(next);
|
|
536
|
+
o.commitTracks(next);
|
|
537
|
+
o.setSelection([]);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
case 'c':
|
|
541
|
+
case 'C': {
|
|
542
|
+
if (!(e.ctrlKey || e.metaKey))
|
|
543
|
+
return;
|
|
544
|
+
e.preventDefault();
|
|
545
|
+
clipboardRef.current = copySelectedKeyframes(o.tracks, o.selection);
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
case 'v':
|
|
549
|
+
case 'V': {
|
|
550
|
+
if (!(e.ctrlKey || e.metaKey) || !o.editable)
|
|
551
|
+
return;
|
|
552
|
+
const clip = clipboardRef.current;
|
|
553
|
+
if (!clip || clip.entries.length === 0)
|
|
554
|
+
return;
|
|
555
|
+
e.preventDefault();
|
|
556
|
+
const pasted = pasteKeyframes(o.tracks, clip, o.frame);
|
|
557
|
+
o.setTracks(pasted.tracks);
|
|
558
|
+
o.commitTracks(pasted.tracks);
|
|
559
|
+
o.setSelection(pasted.refs);
|
|
560
|
+
return;
|
|
561
|
+
}
|
|
562
|
+
default:
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
}, [optsRef]);
|
|
566
|
+
const handlers = useMemo(() => ({
|
|
567
|
+
onPointerDown,
|
|
568
|
+
onPointerMove,
|
|
569
|
+
onPointerUp,
|
|
570
|
+
onPointerCancel,
|
|
571
|
+
onPointerLeave,
|
|
572
|
+
onDoubleClick,
|
|
573
|
+
onKeyDown,
|
|
574
|
+
}), [
|
|
575
|
+
onPointerDown,
|
|
576
|
+
onPointerMove,
|
|
577
|
+
onPointerUp,
|
|
578
|
+
onPointerCancel,
|
|
579
|
+
onPointerLeave,
|
|
580
|
+
onDoubleClick,
|
|
581
|
+
onKeyDown,
|
|
582
|
+
]);
|
|
583
|
+
return { handlers, onWheel };
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
export { useTimelineGestures };
|
|
587
|
+
//# sourceMappingURL=useTimelineGestures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimelineGestures.js","sources":["../../../../../../src/components/editor/Timeline/useTimelineGestures.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoCA;AACA;AA+EA;AAIE;;AACA;;AAEF;AAEA;AAKE;;AAEE;AACE;AACA;;;AAGN;AAEA;AAIE;AACA;AACE;AAAwC;;AAE1C;AACF;AAEA;;;;;;;;;;;AAWG;AACG;;;;AAMJ;AAEA;AACA;AAEA;AAEI;AACA;;;;;;;;;;;;AAYE;AAED;AACH;;AAME;AACA;AACA;AACA;;;AAGA;AACA;AACE;;;AAoBJ;;AAME;AACA;AACA;AAAU;AACV;AACA;AAAW;;AAEX;;AAEA;AAAmB;AACnB;AAEA;;;AAGE;;AAEJ;AAIF;AAEI;AACA;AACA;;;AAEA;AACA;AAEA;;AAEE;;;AAGE;;;AAGA;;AAEF;;;AAGF;;AAEA;AAEA;;AAGE;AAEA;AACA;;;AAEA;;;AAGE;;;AAGA;AAEI;AACA;AACE;AACA;AACN;;AAEF;;;;;;;;AAUA;AACA;;AAGA;AACA;AACA;;;AAGE;;;AAGA;;;AAGF;AACA;;;;AAKF;;AAEE;AACA;AACA;;;AAGE;;;AAGA;;;AAGF;AACA;;;AAIF;;AAEE;;;AAGE;;;;AAIF;AACA;;;AAIF;;AAEE;;;AAGE;;;;AAIA;;;AAGF;;;AAIF;AACE;AACA;;;AAQF;AACE;AACA;AACA;AACA;AACA;;AAEE;;;AAGE;;;;AAIA;AACA;;;AAGF;;;;;AAMJ;;AAEA;;;AAGE;;;;;AAKF;AACE;;AAED;AACH;AAIF;AAEI;AACA;AACA;;;AAEA;;;;;AAME;AACA;AACE;;;AAGC;;;AAED;;;;AAKE;AACA;AACE;AACA;AACE;;;AAKV;;AACA;AACA;AAEA;AACE;AACA;;AAEE;;;;AAIC;;;;AAGC;;AAED;;;;;AAIC;AACD;;;;AAGD;;AAMA;;;;AAIJ;AACE;;;AAGF;AACE;;;;AAIE;AACA;AACD;;;AAGH;;;;;;;AAcA;;;;;AAKA;AACE;AACA;AACE;AACA;AACA;AACA;AACD;AACF;;AAKL;AACE;AACA;AACA;AACA;AACF;;AAII;AACA;AACA;;AACA;;AAEE;;;AAGF;AACA;;AAGE;;;AAGE;AACE;;;AAEG;AACL;;AACK;;;AAEA;;;;;;AAYA;AACL;AACE;AACA;AACA;AACA;;AAEF;AAEE;;AAEqB;;;;;AAKjB;;;;AAQJ;;;;;AAMN;AACA;;AAKJ;AAEI;AACF;AAGF;AAEI;AACF;AAIF;AAEI;;;AAEA;AACA;;;AAEA;AACA;;;AAEA;;AACA;AACA;AACA;;;;;;AAUE;;AAED;AACD;AACA;AACA;AACF;AAIF;AAEI;AACA;AACA;;;AAEA;AACA;;;AAIE;;;AAGE;AACA;AACD;;;;AAKH;AACE;;;AAIF;AACA;AACA;AACA;;AAEA;;AAEA;;AAEE;;AAED;AACH;AAIF;AAEI;AACA;AACE;;;AAGE;AACA;;;;AAIF;;AAEE;;AAEF;;AAEE;;AAEF;;;;AAGE;AACA;;;;AAGA;AACA;AACA;;;AAGF;;;;;AAIE;;;AAGF;;AAEE;;AACA;;;;AAGA;AACA;AACA;AACA;;;AAGF;;;AAGJ;AAIF;;;;;;;;AASG;;;;;;;;AASA;AAGH;AACF;;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useRef, useEffectEvent, useEffect } from 'react';
|
|
3
|
+
import { resolveLoop } from './timelineCoords.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Advance a playhead by `dtSeconds` of wall-clock time at `fps`. Forward only.
|
|
7
|
+
* With a `loop` region the playhead wraps within it; without one it stops at
|
|
8
|
+
* `range.endFrame`. Pure — the rAF hook below drives it.
|
|
9
|
+
*/
|
|
10
|
+
function advancePlayback(current, dtSeconds, fps, range, loop) {
|
|
11
|
+
const next = current + Math.max(0, dtSeconds) * Math.max(0, fps);
|
|
12
|
+
if (loop) {
|
|
13
|
+
if (next < loop.endFrame)
|
|
14
|
+
return { frame: next, ended: false };
|
|
15
|
+
const span = Math.max(1e-6, loop.endFrame - loop.startFrame);
|
|
16
|
+
return {
|
|
17
|
+
frame: loop.startFrame + ((next - loop.startFrame) % span),
|
|
18
|
+
ended: false,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (next >= range.endFrame)
|
|
22
|
+
return { frame: range.endFrame, ended: true };
|
|
23
|
+
return { frame: next, ended: false };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Drives the playhead while `playing` is true: a rAF loop advancing the frame
|
|
27
|
+
* in real time at `fps`. Keeps its own float accumulator (independent of the
|
|
28
|
+
* snapped/committed frame) and resyncs if the frame is changed externally
|
|
29
|
+
* (e.g. the user scrubs mid-playback).
|
|
30
|
+
*/
|
|
31
|
+
function useTimelinePlayback(opts) {
|
|
32
|
+
const accRef = useRef(opts.frame);
|
|
33
|
+
const lastEmittedRef = useRef(opts.frame);
|
|
34
|
+
// Canonical `useEffectEvent` use case: `tick` is called *only* from inside
|
|
35
|
+
// the rAF loop below (never attached to JSX or passed out), so it may read
|
|
36
|
+
// the latest props/state without re-arming the loop. This is the React
|
|
37
|
+
// "timer with latest values" pattern — keep it here; do not convert it to a
|
|
38
|
+
// handler that escapes the effect.
|
|
39
|
+
const tick = useEffectEvent((dt) => {
|
|
40
|
+
// External scrub during playback → resync the accumulator.
|
|
41
|
+
if (opts.frame !== lastEmittedRef.current) {
|
|
42
|
+
accRef.current = opts.frame;
|
|
43
|
+
}
|
|
44
|
+
const range = {
|
|
45
|
+
startFrame: opts.startFrame,
|
|
46
|
+
endFrame: opts.endFrame,
|
|
47
|
+
};
|
|
48
|
+
const region = resolveLoop(opts.loop, range.startFrame, range.endFrame);
|
|
49
|
+
const result = advancePlayback(accRef.current, dt, opts.fps, range, region);
|
|
50
|
+
accRef.current = result.frame;
|
|
51
|
+
lastEmittedRef.current = result.frame;
|
|
52
|
+
opts.onAdvance(result.frame);
|
|
53
|
+
if (result.ended) {
|
|
54
|
+
opts.onEnd();
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
});
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (!opts.playing || typeof window === 'undefined')
|
|
61
|
+
return;
|
|
62
|
+
accRef.current = opts.frame;
|
|
63
|
+
lastEmittedRef.current = opts.frame;
|
|
64
|
+
let raf = 0;
|
|
65
|
+
let last = performance.now();
|
|
66
|
+
const loop = (now) => {
|
|
67
|
+
const dt = (now - last) / 1000;
|
|
68
|
+
last = now;
|
|
69
|
+
const ended = tick(dt);
|
|
70
|
+
if (!ended)
|
|
71
|
+
raf = requestAnimationFrame(loop);
|
|
72
|
+
};
|
|
73
|
+
raf = requestAnimationFrame(loop);
|
|
74
|
+
return () => {
|
|
75
|
+
cancelAnimationFrame(raf);
|
|
76
|
+
};
|
|
77
|
+
// Only `playing` drives the rAF lifecycle. `opts.frame` is read solely to
|
|
78
|
+
// seed the accumulator at playback start; including it would restart the
|
|
79
|
+
// loop on every emitted frame, so it is intentionally excluded.
|
|
80
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
81
|
+
}, [opts.playing]);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { advancePlayback, useTimelinePlayback };
|
|
85
|
+
//# sourceMappingURL=useTimelinePlayback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimelinePlayback.js","sources":["../../../../../../src/components/editor/Timeline/useTimelinePlayback.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAmBA;;;;AAIG;AACG;;;AASF;;AACA;;AAEE;AACA;;;AAGJ;;;AAEF;AAeA;;;;;AAKG;AACG;;;;;;;;AASJ;;;AAGI;;AAEF;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEE;;AAEF;AACF;;;;AAIE;AACA;;AAEA;AACA;;;AAGE;AACA;AAAY;AACd;AACA;AACA;;AAEA;;;;;AAKF;AACF;;"}
|