entangle-ui 0.8.2 → 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 +771 -0
- package/README.md +1 -1
- package/dist/esm/assets/src/components/controls/Combobox/Combobox.css.ts.vanilla-B7B5ttkq.css +210 -0
- package/dist/esm/assets/src/components/controls/FileTree/FileTree.css.ts.vanilla-YmktPvnr.css +48 -0
- package/dist/esm/assets/src/components/controls/FileUploader/FileUploader.css.ts.vanilla-T4nRiI7s.css +194 -0
- package/dist/esm/assets/src/components/controls/MultiSelect/MultiSelect.css.ts.vanilla-CdYayqaF.css +311 -0
- package/dist/esm/assets/src/components/controls/TagInput/TagInput.css.ts.vanilla-hnkMOPp1.css +141 -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/data/DataTable/DataTable.css.ts.vanilla-CmRgtjIW.css +231 -0
- 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/Alert/{Alert.css.ts.vanilla-CRAI-xHx.css → Alert.css.ts.vanilla-CfCDsIEg.css} +2 -0
- package/dist/esm/assets/src/components/feedback/CommandPalette/CommandPalette.css.ts.vanilla-DGdrLKYZ.css +160 -0
- package/dist/esm/assets/src/components/feedback/Drawer/Drawer.css.ts.vanilla-CLPTOUrA.css +247 -0
- package/dist/esm/assets/src/components/feedback/LogView/LogView.css.ts.vanilla-nB5ENOpw.css +312 -0
- package/dist/esm/assets/src/components/feedback/Skeleton/SkeletonLayout.css.ts.vanilla-Db7bpqiI.css +75 -0
- package/dist/esm/assets/src/components/feedback/Stat/Stat.css.ts.vanilla-GBk3JAMB.css +69 -0
- package/dist/esm/assets/src/components/layout/Card/Card.css.ts.vanilla-Ducn1gUX.css +124 -0
- package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-B5iVe5S2.css +88 -0
- package/dist/esm/assets/src/components/navigation/Pagination/Pagination.css.ts.vanilla-CmlFyyjh.css +103 -0
- package/dist/esm/assets/src/components/navigation/PathBar/PathBar.css.ts.vanilla-BIEzQQOf.css +10 -0
- package/dist/esm/assets/src/components/primitives/HoverCard/HoverCard.css.ts.vanilla-BYT0qbLp.css +41 -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 +24 -0
- package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -0
- 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 +26 -0
- package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -0
- 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 +23 -0
- package/dist/esm/components/Icons/FirstIcon.js.map +1 -0
- 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 +23 -0
- package/dist/esm/components/Icons/LastIcon.js.map +1 -0
- 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 +26 -0
- package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -0
- 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.css.js +20 -0
- package/dist/esm/components/controls/Combobox/Combobox.css.js.map +1 -0
- package/dist/esm/components/controls/Combobox/Combobox.js +377 -0
- package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -0
- 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.css.js +20 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.css.js.map +1 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.js +261 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.css.js +23 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.css.js.map +1 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js +300 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -0
- 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 +34 -13
- 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.css.js +12 -0
- package/dist/esm/components/controls/TagInput/TagInput.css.js.map +1 -0
- package/dist/esm/components/controls/TagInput/TagInput.js +191 -0
- package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -0
- 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 +123 -8
- 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 +94 -8
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
- package/dist/esm/components/data/DataTable/DataTable.css.js +25 -0
- package/dist/esm/components/data/DataTable/DataTable.css.js.map +1 -0
- package/dist/esm/components/data/DataTable/DataTable.js +519 -0
- package/dist/esm/components/data/DataTable/DataTable.js.map +1 -0
- 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 +100 -8
- 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 +90 -7
- 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 +89 -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 +90 -5
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js +100 -3
- 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.css.js +1 -1
- package/dist/esm/components/feedback/Alert/Alert.js +11 -10
- 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.css.js +20 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.css.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +271 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js +86 -0
- package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +65 -0
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -0
- 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 +3 -2
- 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.css.js +17 -0
- package/dist/esm/components/feedback/Drawer/Drawer.css.js.map +1 -0
- package/dist/esm/components/feedback/Drawer/Drawer.js +123 -0
- package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -0
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +78 -0
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -0
- 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.css.js +18 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.css.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +95 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -0
- 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.css.js +15 -0
- package/dist/esm/components/feedback/Stat/Stat.css.js.map +1 -0
- package/dist/esm/components/feedback/Stat/Stat.js +55 -0
- package/dist/esm/components/feedback/Stat/Stat.js.map +1 -0
- 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 +18 -17
- 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 +3 -2
- 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 +8 -4
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/esm/components/layout/Card/Card.css.js +18 -0
- package/dist/esm/components/layout/Card/Card.css.js.map +1 -0
- package/dist/esm/components/layout/Card/Card.js +66 -0
- package/dist/esm/components/layout/Card/Card.js.map +1 -0
- 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 +5 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +7 -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 +12 -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.css.js +12 -0
- package/dist/esm/components/navigation/Pagination/Pagination.css.js.map +1 -0
- package/dist/esm/components/navigation/Pagination/Pagination.js +107 -0
- package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -0
- package/dist/esm/components/navigation/Pagination/usePagination.js +143 -0
- package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -0
- 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 +90 -3
- 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 +89 -2
- 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 +10 -5
- 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 +4 -5
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
- package/dist/esm/components/primitives/HoverCard/HoverCard.css.js +7 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.css.js.map +1 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.js +171 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -0
- package/dist/esm/components/primitives/Icon/Icon.js +16 -2
- 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 +3 -3
- 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 +3 -4
- 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 +4 -4
- 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 +44 -0
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -0
- 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 +102 -0
- package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -0
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js +47 -0
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -0
- 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 +75 -0
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -0
- 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 +197 -0
- package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -0
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +60 -0
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -0
- 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 +83 -0
- package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -0
- package/dist/esm/index.js +82 -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/breakpoints.js +27 -0
- package/dist/esm/theme/breakpoints.js.map +1 -0
- 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/index.js +1 -0
- package/dist/esm/theme/index.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 +27 -0
- 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 +29 -0
- 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 +26 -0
- 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 +26 -0
- 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 +29 -0
- 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.d.ts +29 -0
- package/dist/types/components/controls/Combobox/Combobox.types.d.ts +109 -0
- 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.d.ts +34 -0
- package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +94 -0
- package/dist/types/components/controls/MultiSelect/MultiSelect.d.ts +31 -0
- package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +85 -0
- 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.d.ts +24 -0
- package/dist/types/components/controls/TagInput/TagInput.types.d.ts +100 -0
- 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.d.ts +8 -0
- package/dist/types/components/data/DataTable/DataTable.types.d.ts +159 -0
- 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 +3 -2
- package/dist/types/components/feedback/Alert/Alert.types.d.ts +12 -5
- package/dist/types/components/feedback/CommandPalette/CommandPalette.d.ts +29 -0
- package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +59 -0
- package/dist/types/components/feedback/CommandPalette/fuzzySearch.d.ts +6 -0
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +2 -2
- package/dist/types/components/feedback/Drawer/Drawer.d.ts +12 -0
- package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +70 -0
- 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 +47 -4
- package/dist/types/components/feedback/Skeleton/SkeletonLayout.d.ts +314 -0
- package/dist/types/components/feedback/Stat/Stat.d.ts +23 -0
- package/dist/types/components/feedback/Stat/Stat.types.d.ts +38 -0
- 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 +9 -2
- package/dist/types/components/layout/Card/Card.d.ts +12 -0
- package/dist/types/components/layout/Card/Card.types.d.ts +54 -0
- 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.d.ts +22 -0
- package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +49 -0
- 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 +2 -2
- 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.d.ts +10 -0
- package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +64 -0
- package/dist/types/components/primitives/Icon/Icon.d.ts +15 -2
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
- 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/useBreakpoint/useBreakpoint.d.ts +19 -0
- package/dist/types/hooks/useBreakpoint/useBreakpoint.types.d.ts +20 -0
- package/dist/types/hooks/useDebounced/useDebounced.types.d.ts +15 -0
- package/dist/types/hooks/useDebounced/useDebouncedCallback.d.ts +22 -0
- package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +25 -0
- package/dist/types/hooks/useEventCallback/useEventCallback.d.ts +32 -0
- package/dist/types/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +22 -0
- package/dist/types/hooks/useIntersectionObserver/useIntersectionObserver.types.d.ts +22 -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/useListboxNav/useListboxNav.d.ts +75 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.d.ts +19 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.types.d.ts +6 -0
- package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +3 -3
- package/dist/types/hooks/useThrottledCallback/useThrottledCallback.d.ts +23 -0
- package/dist/types/hooks/useThrottledCallback/useThrottledCallback.types.d.ts +13 -0
- package/dist/types/index.d.ts +108 -7
- package/dist/types/theme/breakpoints.d.ts +22 -0
- 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/index.d.ts +1 -0
- 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 +31 -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,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface NodeGraphNodeSectionProps {
|
|
4
|
+
/** Header label shown next to the collapse toggle. */
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the header toggles the section. When false the section is a
|
|
8
|
+
* static labelled group (no chevron, always shown). @default true
|
|
9
|
+
*/
|
|
10
|
+
collapsible?: boolean;
|
|
11
|
+
/** Controlled collapsed state. Pair with `onCollapsedChange`. */
|
|
12
|
+
collapsed?: boolean;
|
|
13
|
+
/** Initial collapsed state when uncontrolled. @default false */
|
|
14
|
+
defaultCollapsed?: boolean;
|
|
15
|
+
/** Fires when the user toggles the section. */
|
|
16
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
17
|
+
className?: string;
|
|
18
|
+
style?: React.CSSProperties;
|
|
19
|
+
/** Section body — typically a `<NodeGraph.PinList>` of the extra pins. */
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A collapsible section inside a node body — the place to tuck "advanced" /
|
|
24
|
+
* overflow pins so the node stays compact. The collapse is **purely visual**:
|
|
25
|
+
* the children never unmount, so their state is preserved and there's no
|
|
26
|
+
* remount cost. `<NodeGraph.Port>` slots inside a collapsed section
|
|
27
|
+
* unregister their position while hidden, so the pins' edges hide with them
|
|
28
|
+
* and reappear on expand — no dangling wires, no manual re-anchoring.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* <NodeGraph.NodeBody>
|
|
33
|
+
* <NodeGraph.NodeHeader title="Make Transform" />
|
|
34
|
+
* <NodeGraph.PinList>{mainPins}</NodeGraph.PinList>
|
|
35
|
+
* <NodeGraph.NodeSection title="Advanced" defaultCollapsed>
|
|
36
|
+
* <NodeGraph.PinList>{advancedPins}</NodeGraph.PinList>
|
|
37
|
+
* </NodeGraph.NodeSection>
|
|
38
|
+
* </NodeGraph.NodeBody>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare function NodeGraphNodeSection({ title, collapsible, collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, className, style, children, }: NodeGraphNodeSectionProps): React.ReactElement;
|
|
42
|
+
declare namespace NodeGraphNodeSection {
|
|
43
|
+
var displayName: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { NodeGraphNodeSection };
|
|
47
|
+
export type { NodeGraphNodeSectionProps };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NodeGraphPortSide, NodeGraphPortShape } from './NodeGraph.types.js';
|
|
3
|
+
|
|
4
|
+
interface NodeGraphPinProps {
|
|
5
|
+
/** Port id — referenced by `NodeGraphEdge.source` / `.target`. */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Which side the pin anchors to. Drives row layout and edge tangent. */
|
|
8
|
+
side: NodeGraphPortSide;
|
|
9
|
+
/** Opaque type token forwarded to `isValidConnection` and edge styling. */
|
|
10
|
+
dataType?: string;
|
|
11
|
+
/** Row label shown next to the handle. */
|
|
12
|
+
label?: React.ReactNode;
|
|
13
|
+
/** Handle colour (any CSS colour). Defaults to the theme focus colour. */
|
|
14
|
+
color?: string;
|
|
15
|
+
/** Built-in handle shape. @default 'circle' */
|
|
16
|
+
shape?: NodeGraphPortShape;
|
|
17
|
+
/**
|
|
18
|
+
* Force the handle filled / hollow. When omitted, the handle fills
|
|
19
|
+
* automatically while the pin is connected to an edge.
|
|
20
|
+
*/
|
|
21
|
+
filled?: boolean;
|
|
22
|
+
/** Row height in CSS px. @default 22 */
|
|
23
|
+
height?: number;
|
|
24
|
+
/** Accessible label for the port handle. Falls back to the port default. */
|
|
25
|
+
portLabel?: string;
|
|
26
|
+
/** Class applied to the row wrapper. */
|
|
27
|
+
className?: string;
|
|
28
|
+
/** Inline style applied to the row wrapper. */
|
|
29
|
+
style?: React.CSSProperties;
|
|
30
|
+
/** Class applied to the label span. */
|
|
31
|
+
labelClassName?: string;
|
|
32
|
+
/** Inline style applied to the label span. */
|
|
33
|
+
labelStyle?: React.CSSProperties;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `<NodeGraph.Pin>` — the one-liner for the common "handle + label" row.
|
|
37
|
+
* Renders a `<NodeGraph.PinRow>` containing a `<NodeGraph.Port>` and a
|
|
38
|
+
* label, ordered so the handle always sits flush against the node edge
|
|
39
|
+
* (port → label on the left/top, label → port on the right). Reach for
|
|
40
|
+
* `<NodeGraph.PinRow>` + `<NodeGraph.Port>` directly only when you need a
|
|
41
|
+
* layout this doesn't cover (multiple controls in a row, inline editors).
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <NodeGraph.PinList>
|
|
46
|
+
* <NodeGraph.Pin id="exec" side="left" shape="triangle" color="#fff" />
|
|
47
|
+
* <NodeGraph.Pin id="value" side="right" dataType="float" color="#9ee65a" label="Value" />
|
|
48
|
+
* </NodeGraph.PinList>
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
declare function NodeGraphPin({ id, side, dataType, label, color, shape, filled, height, portLabel, className, style, labelClassName, labelStyle, }: NodeGraphPinProps): React.ReactElement;
|
|
52
|
+
declare namespace NodeGraphPin {
|
|
53
|
+
var displayName: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { NodeGraphPin };
|
|
57
|
+
export type { NodeGraphPinProps };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NodeGraphPortSlotProps } from './NodeGraph.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `<NodeGraph.Port>` — compound slot that declares a connection endpoint
|
|
6
|
+
* for the current node. Render it anywhere inside `renderNode`; the
|
|
7
|
+
* library measures its DOM position, registers it as the anchor for any
|
|
8
|
+
* edge that references this port id, and wires pointer events so the
|
|
9
|
+
* user can drag from it to start a connection.
|
|
10
|
+
*
|
|
11
|
+
* The slot renders a single `<span>` with `display: inline-flex` — drop
|
|
12
|
+
* it inline next to a label and it will sit beside the text. The wrapper
|
|
13
|
+
* carries the default UE-style circle / exec-triangle visual; pass
|
|
14
|
+
* `children` to replace the chrome entirely (state for theming is
|
|
15
|
+
* exposed via `data-port-*` attributes).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* <NodeGraph.Port id="in" side="left" dataType="exec" />
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Wrapped in `React.memo` — ports re-mount on every consumer `renderNode`
|
|
23
|
+
* call by default, so memoization only helps consumers who memoize their
|
|
24
|
+
* own node body. When they do, ports skip re-renders on unrelated store
|
|
25
|
+
* updates entirely.
|
|
26
|
+
*/
|
|
27
|
+
declare function NodeGraphPortImpl({ id, side, dataType, shape, color, filled, children, label, className, style, }: NodeGraphPortSlotProps): React.ReactElement;
|
|
28
|
+
declare const NodeGraphPort: React.MemoExoticComponent<typeof NodeGraphPortImpl>;
|
|
29
|
+
|
|
30
|
+
export { NodeGraphPort };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NodeGraphPortShape } from './NodeGraph.types.js';
|
|
3
|
+
|
|
4
|
+
interface NodeGraphPortVisualProps {
|
|
5
|
+
/**
|
|
6
|
+
* Handle shape. @default 'circle'
|
|
7
|
+
*/
|
|
8
|
+
shape?: NodeGraphPortShape;
|
|
9
|
+
/**
|
|
10
|
+
* Stroke / fill colour. Defaults to `currentColor` so the parent
|
|
11
|
+
* `<NodeGraph.Port>` can route its colour prop and interaction-state
|
|
12
|
+
* colours (source / candidate / invalid) into the shape via the CSS
|
|
13
|
+
* `color` cascade. Pass an explicit colour when using the visual
|
|
14
|
+
* standalone (outside a port slot).
|
|
15
|
+
*/
|
|
16
|
+
color?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Filled (`true`) paints the interior; hollow (`false`) draws an outline
|
|
19
|
+
* only — the standard "wired vs unwired pin" convention.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
filled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Box size in CSS pixels. @default 14
|
|
25
|
+
*/
|
|
26
|
+
size?: number;
|
|
27
|
+
className?: string;
|
|
28
|
+
style?: React.CSSProperties;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Presentational handle shape for a node-graph port. Rendered by
|
|
32
|
+
* `<NodeGraph.Port>` when no `children` are supplied, and exported so
|
|
33
|
+
* consumers can reuse the exact handle look inside fully custom port
|
|
34
|
+
* visuals (e.g. a coloured ring beside a typed label).
|
|
35
|
+
*
|
|
36
|
+
* The shape paints with `currentColor` unless `color` is set, which lets
|
|
37
|
+
* the port slot drive the colour from its `color` prop and override it on
|
|
38
|
+
* the connection-drag states without this component knowing about them.
|
|
39
|
+
*/
|
|
40
|
+
declare function NodeGraphPortVisual({ shape, color, filled, size, className, style, }: NodeGraphPortVisualProps): React.ReactElement;
|
|
41
|
+
declare namespace NodeGraphPortVisual {
|
|
42
|
+
var displayName: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { NodeGraphPortVisual };
|
|
46
|
+
export type { NodeGraphPortVisualProps };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NodeGraphMinimapSlotProps, NodeGraphSlotMarker, NodeGraphBackgroundSlotProps, NodeGraphToolbarSlotProps, NodeGraphSpawnPaletteSlotProps } from './NodeGraph.types.js';
|
|
2
|
+
|
|
3
|
+
declare const NodeGraphMinimap: ((props: NodeGraphMinimapSlotProps) => null) & NodeGraphSlotMarker & {
|
|
4
|
+
displayName: string;
|
|
5
|
+
};
|
|
6
|
+
declare const NodeGraphBackground: ((props: NodeGraphBackgroundSlotProps) => null) & NodeGraphSlotMarker & {
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
declare const NodeGraphToolbar: ((props: NodeGraphToolbarSlotProps) => null) & NodeGraphSlotMarker & {
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
declare const NodeGraphSpawnPalette: ((props: NodeGraphSpawnPaletteSlotProps) => null) & NodeGraphSlotMarker & {
|
|
13
|
+
displayName: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { NodeGraphBackground, NodeGraphMinimap, NodeGraphSpawnPalette, NodeGraphToolbar };
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { NodeGraphNode, NodeGraphEdge, NodeGraphGroup, NodeGraphPortRef, NodeGraphPortSide, NodeGraphSelection } from './NodeGraph.types.js';
|
|
2
|
+
import { Point2D } from '../../primitives/canvas/canvas.types.js';
|
|
3
|
+
|
|
4
|
+
/** Snapshot of the data slice — the canonical graph contents. */
|
|
5
|
+
interface NodeGraphDataState {
|
|
6
|
+
nodes: ReadonlyArray<NodeGraphNode>;
|
|
7
|
+
edges: ReadonlyArray<NodeGraphEdge>;
|
|
8
|
+
groups: ReadonlyArray<NodeGraphGroup>;
|
|
9
|
+
defaultNodeSize: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A port's measured position registered by a `<NodeGraph.Port>` slot.
|
|
16
|
+
* Coordinates are in **node-local pixels** (relative to the node wrapper's
|
|
17
|
+
* top-left). Because the wrapper is positioned in world space but rendered
|
|
18
|
+
* in CSS pixels at zoom = 1 (zoom is applied by the parent `<ViewportWorld>`
|
|
19
|
+
* transform), these pixels are equivalent to node-local world units.
|
|
20
|
+
*/
|
|
21
|
+
interface NodeGraphPortPosition {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
side: NodeGraphPortSide;
|
|
25
|
+
dataType?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Measured DOM size of a node wrapper, in node-local world units. */
|
|
28
|
+
interface NodeGraphMeasuredSize {
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Snapshot of the interaction slice — the active gesture (if any) and its
|
|
34
|
+
* scratch data. Designed so the edge/preview drawing layer can read everything
|
|
35
|
+
* it needs in one slice subscription.
|
|
36
|
+
*/
|
|
37
|
+
/** Eight points along a rectangle that can be grabbed to resize a group. */
|
|
38
|
+
type NodeGraphGroupResizeHandle = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w';
|
|
39
|
+
type NodeGraphInteractionState = {
|
|
40
|
+
kind: 'idle';
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'drag-nodes';
|
|
43
|
+
/**
|
|
44
|
+
* Ids of nodes being dragged together. Set (not Array) so per-node
|
|
45
|
+
* subscribers can do O(1) membership checks in the hot per-frame
|
|
46
|
+
* selector path — a Cartesian `Array.includes` was a measurable cost
|
|
47
|
+
* at high node counts when the user dragged the whole selection.
|
|
48
|
+
*/
|
|
49
|
+
nodeIds: ReadonlySet<string>;
|
|
50
|
+
/** Pointer-down world position (start of the drag). */
|
|
51
|
+
startWorld: Point2D;
|
|
52
|
+
/** Cumulative drag delta in world units (snapped if grid active). */
|
|
53
|
+
delta: Point2D;
|
|
54
|
+
} | {
|
|
55
|
+
kind: 'drag-groups';
|
|
56
|
+
/** Ids of groups being dragged together. See {@link nodeIds} for why Set. */
|
|
57
|
+
groupIds: ReadonlySet<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Ids of nodes that were fully contained inside one of the dragged
|
|
60
|
+
* groups at gesture start. They ride along with the group(s) and
|
|
61
|
+
* receive the same drag delta — see `rectContains` in `nodeGraphMath`.
|
|
62
|
+
*/
|
|
63
|
+
containedNodeIds: ReadonlySet<string>;
|
|
64
|
+
/** Pointer-down world position. */
|
|
65
|
+
startWorld: Point2D;
|
|
66
|
+
/** Cumulative drag delta (snapped if grid active). */
|
|
67
|
+
delta: Point2D;
|
|
68
|
+
/**
|
|
69
|
+
* True when the projected positions of the dragged groups would
|
|
70
|
+
* overlap any other (non-dragged) group. The HTML overlay paints a
|
|
71
|
+
* rejection state and the pointerup handler refuses to commit when
|
|
72
|
+
* this is set.
|
|
73
|
+
*/
|
|
74
|
+
blocked: boolean;
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'resize-group';
|
|
77
|
+
groupId: string;
|
|
78
|
+
handle: NodeGraphGroupResizeHandle;
|
|
79
|
+
/** Original bounds at the start of the resize. */
|
|
80
|
+
startBounds: {
|
|
81
|
+
x: number;
|
|
82
|
+
y: number;
|
|
83
|
+
width: number;
|
|
84
|
+
height: number;
|
|
85
|
+
};
|
|
86
|
+
/** Cumulative pointer delta in world units (snapped). */
|
|
87
|
+
delta: Point2D;
|
|
88
|
+
/** Set when the resized bounds would overlap another group. */
|
|
89
|
+
blocked: boolean;
|
|
90
|
+
} | {
|
|
91
|
+
kind: 'connect';
|
|
92
|
+
/**
|
|
93
|
+
* Fixed endpoint the preview draws from. For a new connection this is
|
|
94
|
+
* the port the drag started on; for a reconnect it's the *other* end
|
|
95
|
+
* of the edge being edited (the one staying put).
|
|
96
|
+
*/
|
|
97
|
+
source: NodeGraphPortRef;
|
|
98
|
+
/** Current pointer position in world coordinates. */
|
|
99
|
+
currentWorld: Point2D;
|
|
100
|
+
/** Hovered candidate target port, or null when none. */
|
|
101
|
+
candidate: NodeGraphPortRef | null;
|
|
102
|
+
/** Whether the candidate is currently rejected by `isValidConnection`. */
|
|
103
|
+
invalid: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Set while re-dragging an existing edge's endpoint. The edge is hidden
|
|
106
|
+
* from the edge layer for the duration so only the preview shows, and
|
|
107
|
+
* the drop either moves the endpoint, deletes the edge (detach), or —
|
|
108
|
+
* on a click with no drag — selects it.
|
|
109
|
+
*/
|
|
110
|
+
reconnectEdgeId?: string;
|
|
111
|
+
/** Which end of `reconnectEdgeId` is being dragged. */
|
|
112
|
+
reconnectEnd?: 'source' | 'target';
|
|
113
|
+
} | {
|
|
114
|
+
kind: 'marquee';
|
|
115
|
+
/** Marquee start in world coordinates. */
|
|
116
|
+
startWorld: Point2D;
|
|
117
|
+
/** Current pointer position in world coordinates. */
|
|
118
|
+
currentWorld: Point2D;
|
|
119
|
+
/** Whether the additive modifier was held at gesture start. */
|
|
120
|
+
additive: boolean;
|
|
121
|
+
};
|
|
122
|
+
/** Snapshot of the hover slice. */
|
|
123
|
+
interface NodeGraphHoverState {
|
|
124
|
+
hoveredNodeId: string | null;
|
|
125
|
+
hoveredEdgeId: string | null;
|
|
126
|
+
hoveredPort: NodeGraphPortRef | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Hot-path runtime state for `<NodeGraph>` — graph data, selection,
|
|
130
|
+
* interaction, hover. Each slice carries its own subscribe/get pair so
|
|
131
|
+
* subscribers re-render only on relevant changes (e.g. the edge canvas
|
|
132
|
+
* subscribes to data + interaction, individual node bodies subscribe only
|
|
133
|
+
* to selection + drag delta for their own id).
|
|
134
|
+
*
|
|
135
|
+
* Mirrors `ViewportStore` / `MinimapStore` in structure.
|
|
136
|
+
*/
|
|
137
|
+
declare class NodeGraphStore {
|
|
138
|
+
private data;
|
|
139
|
+
private selection;
|
|
140
|
+
private interaction;
|
|
141
|
+
private hover;
|
|
142
|
+
private nodeIndex;
|
|
143
|
+
private connectedPorts;
|
|
144
|
+
private portPositions;
|
|
145
|
+
private measuredSizes;
|
|
146
|
+
private dataListeners;
|
|
147
|
+
private connectedPortsListeners;
|
|
148
|
+
private selectionListeners;
|
|
149
|
+
private interactionListeners;
|
|
150
|
+
private nodeInteractionListeners;
|
|
151
|
+
private hoverListeners;
|
|
152
|
+
private portPositionListeners;
|
|
153
|
+
private measuredSizeListeners;
|
|
154
|
+
private portPositionsVersion;
|
|
155
|
+
private measuredSizesVersion;
|
|
156
|
+
private spawnRequestListeners;
|
|
157
|
+
getData: () => NodeGraphDataState;
|
|
158
|
+
getSelection: () => NodeGraphSelection;
|
|
159
|
+
getInteraction: () => NodeGraphInteractionState;
|
|
160
|
+
getHover: () => NodeGraphHoverState;
|
|
161
|
+
/**
|
|
162
|
+
* The set of `"${node}\0${port}"` keys that are referenced by at least
|
|
163
|
+
* one edge endpoint. Reference is stable until the membership actually
|
|
164
|
+
* changes, so it can back a `useSyncExternalStore` snapshot directly.
|
|
165
|
+
*/
|
|
166
|
+
getConnectedPorts: () => ReadonlySet<string>;
|
|
167
|
+
/** True when the given port is referenced by at least one edge endpoint. */
|
|
168
|
+
isPortConnected: (nodeId: string, portId: string) => boolean;
|
|
169
|
+
/**
|
|
170
|
+
* O(1) node lookup by id, backed by an internal Map rebuilt on each
|
|
171
|
+
* `setData`. Use this from hot paths instead of `data.nodes.find(...)`.
|
|
172
|
+
*/
|
|
173
|
+
getNodeById: (id: string) => NodeGraphNode | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Read the registered position of a single port. Returns `null` when the
|
|
176
|
+
* port hasn't yet been measured (e.g. on first paint before
|
|
177
|
+
* `useLayoutEffect` has run, or after the slot unmounted).
|
|
178
|
+
*/
|
|
179
|
+
getPortPosition: (nodeId: string, portId: string) => NodeGraphPortPosition | null;
|
|
180
|
+
/** Read the measured DOM size of a node wrapper. */
|
|
181
|
+
getMeasuredSize: (nodeId: string) => NodeGraphMeasuredSize | null;
|
|
182
|
+
/**
|
|
183
|
+
* Monotonic snapshot of the port-positions channel — pass to
|
|
184
|
+
* `useSyncExternalStore` alongside `subscribePortPositions` so React
|
|
185
|
+
* actually re-renders consumers on every real change. Incremented
|
|
186
|
+
* whenever a port position is added, updated, removed, or GC'd by
|
|
187
|
+
* `setData`. Skipped on no-op writes.
|
|
188
|
+
*/
|
|
189
|
+
getPortPositionsVersion: () => number;
|
|
190
|
+
/**
|
|
191
|
+
* Monotonic snapshot of the measured-sizes channel — same role as
|
|
192
|
+
* `getPortPositionsVersion`, for `subscribeMeasuredSizes`.
|
|
193
|
+
*/
|
|
194
|
+
getMeasuredSizesVersion: () => number;
|
|
195
|
+
subscribeData: (cb: () => void) => (() => void);
|
|
196
|
+
/**
|
|
197
|
+
* Subscribe to the connected-ports channel — fires only when the set of
|
|
198
|
+
* edge-referenced ports actually changes membership (not on every node
|
|
199
|
+
* move). Backs the auto-`connected` state on `<NodeGraph.Port>`.
|
|
200
|
+
*/
|
|
201
|
+
subscribeConnectedPorts: (cb: () => void) => (() => void);
|
|
202
|
+
subscribeSelection: (cb: () => void) => (() => void);
|
|
203
|
+
subscribeInteraction: (cb: () => void) => (() => void);
|
|
204
|
+
/**
|
|
205
|
+
* Subscribe to interaction changes that affect a specific node id. The
|
|
206
|
+
* callback fires only when the node enters or leaves the active drag set
|
|
207
|
+
* (drag-nodes `nodeIds`, drag-groups `containedNodeIds`) — every other
|
|
208
|
+
* tick where the drag set is unchanged for this id is filtered out at the
|
|
209
|
+
* store layer instead of waking the subscriber for a no-op compare.
|
|
210
|
+
*
|
|
211
|
+
* Use this from per-node React subscribers; the global
|
|
212
|
+
* {@link subscribeInteraction} channel stays in place for canvas layers
|
|
213
|
+
* and other consumers that care about every interaction change.
|
|
214
|
+
*/
|
|
215
|
+
subscribeNodeInteraction: (nodeId: string, cb: () => void) => (() => void);
|
|
216
|
+
subscribeHover: (cb: () => void) => (() => void);
|
|
217
|
+
subscribePortPositions: (cb: () => void) => (() => void);
|
|
218
|
+
subscribeMeasuredSizes: (cb: () => void) => (() => void);
|
|
219
|
+
subscribeSpawnRequest: (cb: (info: {
|
|
220
|
+
worldPoint: Point2D;
|
|
221
|
+
screenPoint: Point2D;
|
|
222
|
+
}) => void) => (() => void);
|
|
223
|
+
requestSpawn(info: {
|
|
224
|
+
worldPoint: Point2D;
|
|
225
|
+
screenPoint: Point2D;
|
|
226
|
+
}): void;
|
|
227
|
+
setData(next: NodeGraphDataState): void;
|
|
228
|
+
setSelection(next: NodeGraphSelection): void;
|
|
229
|
+
setInteraction(next: NodeGraphInteractionState): void;
|
|
230
|
+
setHover(next: NodeGraphHoverState): void;
|
|
231
|
+
/**
|
|
232
|
+
* Register a port's measured position. Called by `<NodeGraph.Port>` from
|
|
233
|
+
* a `useLayoutEffect` + `ResizeObserver`. No-ops when the incoming
|
|
234
|
+
* position is identical to the cached one — protects edge layer from
|
|
235
|
+
* redraw storms when nodes resize without porting any pin movement.
|
|
236
|
+
*/
|
|
237
|
+
setPortPosition(nodeId: string, portId: string, next: NodeGraphPortPosition): void;
|
|
238
|
+
/** Remove a port registration. Called by `<NodeGraph.Port>` cleanup. */
|
|
239
|
+
removePortPosition(nodeId: string, portId: string): void;
|
|
240
|
+
/**
|
|
241
|
+
* Register / refresh the measured DOM size of a node wrapper. No-ops on
|
|
242
|
+
* identical width+height.
|
|
243
|
+
*/
|
|
244
|
+
setMeasuredSize(nodeId: string, next: NodeGraphMeasuredSize): void;
|
|
245
|
+
/** Clear the measured size of a node (called on unmount). */
|
|
246
|
+
clearMeasuredSize(nodeId: string): void;
|
|
247
|
+
/** True when a node id is currently selected. */
|
|
248
|
+
isNodeSelected(id: string): boolean;
|
|
249
|
+
/** True when an edge id is currently selected. */
|
|
250
|
+
isEdgeSelected(id: string): boolean;
|
|
251
|
+
/** True when a group id is currently selected. */
|
|
252
|
+
isGroupSelected(id: string): boolean;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export { NodeGraphStore };
|
|
256
|
+
export type { NodeGraphDataState, NodeGraphGroupResizeHandle, NodeGraphHoverState, NodeGraphInteractionState, NodeGraphMeasuredSize, NodeGraphPortPosition };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Visual separator for grouping toolbar buttons. Just a 1 px line; pass
|
|
5
|
+
* `orientation="vertical"` (default) inside a horizontal toolbar.
|
|
6
|
+
*/
|
|
7
|
+
interface NodeGraphToolbarSeparatorProps {
|
|
8
|
+
orientation?: 'horizontal' | 'vertical';
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare function NodeGraphToolbarSeparator({ orientation, className, }: NodeGraphToolbarSeparatorProps): React.ReactElement;
|
|
12
|
+
interface CommonButtonProps {
|
|
13
|
+
/** Override the label text. */
|
|
14
|
+
label?: React.ReactNode;
|
|
15
|
+
/** Override the icon (replaces the default). */
|
|
16
|
+
icon?: React.ReactNode;
|
|
17
|
+
/** Pass-through to the underlying `<Button>`. */
|
|
18
|
+
size?: 'sm' | 'md' | 'lg';
|
|
19
|
+
/** Pass-through variant. */
|
|
20
|
+
variant?: 'default' | 'ghost' | 'filled';
|
|
21
|
+
/** Extra class on the button. */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** Inline style override. */
|
|
24
|
+
style?: React.CSSProperties;
|
|
25
|
+
/** Override the title / tooltip. */
|
|
26
|
+
title?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Fit all nodes inside the viewport. Calls the same code path as `ref.fitToContent`. */
|
|
29
|
+
interface NodeGraphFitContentButtonProps extends CommonButtonProps {
|
|
30
|
+
/** World-unit padding around the fitted bounds. @default 32 */
|
|
31
|
+
padding?: number;
|
|
32
|
+
}
|
|
33
|
+
declare function NodeGraphFitContentButton({ padding, label, icon, size, variant, className, style, title, }: NodeGraphFitContentButtonProps): React.ReactElement;
|
|
34
|
+
/**
|
|
35
|
+
* Fit the currently-selected nodes inside the viewport. Disabled when
|
|
36
|
+
* the selection contains no nodes — reads the live selection slice so
|
|
37
|
+
* the button's disabled state updates without consumer plumbing.
|
|
38
|
+
*/
|
|
39
|
+
interface NodeGraphFitSelectionButtonProps extends CommonButtonProps {
|
|
40
|
+
padding?: number;
|
|
41
|
+
}
|
|
42
|
+
declare function NodeGraphFitSelectionButton({ padding, label, icon, size, variant, className, style, title, }: NodeGraphFitSelectionButtonProps): React.ReactElement;
|
|
43
|
+
/** Zoom in by a fixed factor (default 1.25×). */
|
|
44
|
+
interface NodeGraphZoomButtonProps extends CommonButtonProps {
|
|
45
|
+
/** Multiplier applied to the current zoom. @default 1.25 */
|
|
46
|
+
factor?: number;
|
|
47
|
+
}
|
|
48
|
+
declare function NodeGraphZoomInButton({ factor, label, icon, size, variant, className, style, title, }: NodeGraphZoomButtonProps): React.ReactElement;
|
|
49
|
+
declare function NodeGraphZoomOutButton({ factor, label, icon, size, variant, className, style, title, }: NodeGraphZoomButtonProps): React.ReactElement;
|
|
50
|
+
/** Reset zoom to 1× centred on the world origin. */
|
|
51
|
+
declare function NodeGraphResetZoomButton({ label, icon, size, variant, className, style, title, }: CommonButtonProps): React.ReactElement;
|
|
52
|
+
|
|
53
|
+
export { NodeGraphFitContentButton, NodeGraphFitSelectionButton, NodeGraphResetZoomButton, NodeGraphToolbarSeparator, NodeGraphZoomInButton, NodeGraphZoomOutButton };
|
|
54
|
+
export type { NodeGraphFitContentButtonProps, NodeGraphFitSelectionButtonProps, NodeGraphToolbarSeparatorProps, NodeGraphZoomButtonProps };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NodeGraphPortRef, NodeGraphConnectionValidationInfo } from './NodeGraph.types.js';
|
|
2
|
+
|
|
3
|
+
interface TypeMatchValidatorOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Allowed `info.sideCombo` values (e.g. `'right->left'`). Defaults to both
|
|
6
|
+
* horizontal directions so the user can start the drag from either end of
|
|
7
|
+
* a wire. Pass `['right->left']` to force output→input only.
|
|
8
|
+
* @default ['right->left', 'left->right']
|
|
9
|
+
*/
|
|
10
|
+
directions?: ReadonlyArray<string>;
|
|
11
|
+
/**
|
|
12
|
+
* `dataType` token that connects to anything. @default 'any'
|
|
13
|
+
*/
|
|
14
|
+
anyType?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Allow connecting two ports on the same node. @default false
|
|
17
|
+
*/
|
|
18
|
+
allowSameNode?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Custom type comparison, replacing the default (equality + `anyType` +
|
|
21
|
+
* "untyped ports accept anything"). Receives the resolved `dataType`s,
|
|
22
|
+
* either of which may be `undefined` when the port declared none.
|
|
23
|
+
*/
|
|
24
|
+
match?: (sourceDataType: string | undefined, targetDataType: string | undefined) => boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build an `isValidConnection` validator for the common "connect ports of
|
|
28
|
+
* matching `dataType`, in an allowed direction" rule — the logic most node
|
|
29
|
+
* editors hand-write. Drop the result straight onto `<NodeGraph>`:
|
|
30
|
+
*
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const isValidConnection = useMemo(() => createTypeMatchValidator(), []);
|
|
33
|
+
* <NodeGraph isValidConnection={isValidConnection} />
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* The default `match` accepts a connection when either port is untyped, the
|
|
37
|
+
* two `dataType`s are equal, or one side is the `anyType` token. Override
|
|
38
|
+
* `match` for richer rules (subtype graphs, numeric coercion, etc.).
|
|
39
|
+
*/
|
|
40
|
+
declare function createTypeMatchValidator(options?: TypeMatchValidatorOptions): (source: NodeGraphPortRef, target: NodeGraphPortRef, info: NodeGraphConnectionValidationInfo) => boolean;
|
|
41
|
+
|
|
42
|
+
export { createTypeMatchValidator };
|
|
43
|
+
export type { TypeMatchValidatorOptions };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NodeGraphNode, NodeGraphEdge, NodeGraphPortRef } from './NodeGraph.types.js';
|
|
2
|
+
import { Point2D } from '../../primitives/canvas/canvas.types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Ids of every edge with an endpoint on the given port — i.e. all wires
|
|
6
|
+
* connected to one socket. Use it to "detach all" or select a socket's wires
|
|
7
|
+
* without maintaining a parallel index.
|
|
8
|
+
*/
|
|
9
|
+
declare function edgesConnectedToPort(edges: ReadonlyArray<NodeGraphEdge>, ref: NodeGraphPortRef): string[];
|
|
10
|
+
interface DuplicateNodesOptions {
|
|
11
|
+
/**
|
|
12
|
+
* World-unit offset applied to each clone so it doesn't sit exactly on
|
|
13
|
+
* top of its source. @default { x: 32, y: 32 }
|
|
14
|
+
*/
|
|
15
|
+
offset?: Point2D;
|
|
16
|
+
/**
|
|
17
|
+
* Build the id for a clone from its source id. Defaults to a unique id
|
|
18
|
+
* derived from `${sourceId}-copy`. Override to keep your own id scheme.
|
|
19
|
+
*/
|
|
20
|
+
idFactory?: (sourceId: string) => string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Clone the nodes whose ids are listed in `ids`, offsetting each copy.
|
|
24
|
+
* Pure — returns only the new node objects (not merged into the source
|
|
25
|
+
* list), so callers stay in control of ordering and selection:
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* const copies = duplicateNodes(nodes, selection.nodes);
|
|
29
|
+
* setNodes(prev => [...prev, ...copies]);
|
|
30
|
+
* setSelection({ nodes: copies.map(n => n.id), edges: [], groups: [] });
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* Edges between duplicated nodes are intentionally not copied — wire that
|
|
34
|
+
* in at the call site if your editor needs it.
|
|
35
|
+
*/
|
|
36
|
+
declare function duplicateNodes(nodes: ReadonlyArray<NodeGraphNode>, ids: ReadonlyArray<string>, options?: DuplicateNodesOptions): NodeGraphNode[];
|
|
37
|
+
|
|
38
|
+
export { duplicateNodes, edgesConnectedToPort };
|
|
39
|
+
export type { DuplicateNodesOptions };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NodeGraphPortRef } from './NodeGraph.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Generate a unique-enough id for a freshly-spawned node from a template.
|
|
5
|
+
* Format: `${templateId}-${timestamp36}-${counter36}-${random36}`.
|
|
6
|
+
*/
|
|
7
|
+
declare function generateNodeId(templateId: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Generate a unique edge id from its endpoints. Includes source/target
|
|
10
|
+
* port refs in the id so it's somewhat readable in devtools, plus the
|
|
11
|
+
* standard timestamp + counter + random tail to guarantee uniqueness
|
|
12
|
+
* across rapid back-to-back connections.
|
|
13
|
+
*/
|
|
14
|
+
declare function generateEdgeId(source: NodeGraphPortRef, target: NodeGraphPortRef): string;
|
|
15
|
+
|
|
16
|
+
export { generateEdgeId, generateNodeId };
|