entangle-ui 0.9.0 → 0.11.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.
Files changed (1053) hide show
  1. package/CHANGELOG.md +766 -0
  2. package/README.md +8 -6
  3. package/dist/esm/assets/src/components/controls/FileTree/FileTree.css.ts.vanilla-YmktPvnr.css +48 -0
  4. package/dist/esm/assets/src/components/controls/Select/{Select.css.ts.vanilla-oZnFUorL.css → Select.css.ts.vanilla-Cpu2BvWL.css} +3 -0
  5. package/dist/esm/assets/src/components/controls/TreeView/{TreeNode.css.ts.vanilla-B_f8pUb8.css → TreeNode.css.ts.vanilla-DXPJRWZZ.css} +31 -24
  6. package/dist/esm/assets/src/components/editor/AssetBrowser/AssetBrowser.css.ts.vanilla-B2S4cEiY.css +262 -0
  7. package/dist/esm/assets/src/components/editor/Minimap/Minimap.css.ts.vanilla--rNdWQwy.css +133 -0
  8. package/dist/esm/assets/src/components/editor/NodeGraph/NodeGraph.css.ts.vanilla-ClF4YZvl.css +401 -0
  9. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyPanel.css.ts.vanilla-RYv_XgOu.css → PropertyPanel.css.ts.vanilla-Dpr_k5I3.css} +4 -1
  10. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyRow.css.ts.vanilla-C3YZnnHb.css → PropertyRow.css.ts.vanilla-pq1Uhd2a.css} +15 -8
  11. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertySection.css.ts.vanilla-DK12opZc.css → PropertySection.css.ts.vanilla-6MWWAqyd.css} +50 -32
  12. package/dist/esm/assets/src/components/editor/Timeline/Timeline.css.ts.vanilla-DDX6Zalo.css +203 -0
  13. package/dist/esm/assets/src/components/feedback/LogView/LogView.css.ts.vanilla-nB5ENOpw.css +312 -0
  14. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-B5iVe5S2.css +88 -0
  15. package/dist/esm/assets/src/components/navigation/PathBar/PathBar.css.ts.vanilla-BIEzQQOf.css +10 -0
  16. package/dist/esm/assets/src/components/primitives/viewport/Viewport.css.ts.vanilla-CkFBJ7Vo.css +65 -0
  17. package/dist/esm/assets/src/components/shell/FloatingPanel/{FloatingPanel.css.ts.vanilla-1rIAXEFp.css → FloatingPanel.css.ts.vanilla-CRaeYJ2b.css} +20 -13
  18. package/dist/esm/assets/src/theme/{darkTheme.css.ts.vanilla-ab1WD4dr.css → darkTheme.css.ts.vanilla-BHZ3ecRn.css} +3 -3
  19. package/dist/esm/assets/src/theme/{lightTheme.css.ts.vanilla-OaRI_wIc.css → lightTheme.css.ts.vanilla-Ct6f9Iym.css} +3 -3
  20. package/dist/esm/components/Icons/AddIcon.js.map +1 -1
  21. package/dist/esm/components/Icons/AiChatIcon.js.map +1 -1
  22. package/dist/esm/components/Icons/AiSparklesIcon.js.map +1 -1
  23. package/dist/esm/components/Icons/ArchiveIcon.js.map +1 -1
  24. package/dist/esm/components/Icons/ArrowDownIcon.js.map +1 -1
  25. package/dist/esm/components/Icons/ArrowLeftIcon.js.map +1 -1
  26. package/dist/esm/components/Icons/ArrowRightIcon.js.map +1 -1
  27. package/dist/esm/components/Icons/ArrowUpIcon.js.map +1 -1
  28. package/dist/esm/components/Icons/BookmarkIcon.js.map +1 -1
  29. package/dist/esm/components/Icons/BugIcon.js.map +1 -1
  30. package/dist/esm/components/Icons/BuildingIcon.js.map +1 -1
  31. package/dist/esm/components/Icons/CalendarIcon.js.map +1 -1
  32. package/dist/esm/components/Icons/CameraIcon.js +31 -0
  33. package/dist/esm/components/Icons/CameraIcon.js.map +1 -0
  34. package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
  35. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
  36. package/dist/esm/components/Icons/ChevronLeftIcon.js.map +1 -1
  37. package/dist/esm/components/Icons/ChevronRightIcon.js.map +1 -1
  38. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
  39. package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
  40. package/dist/esm/components/Icons/ClockIcon.js.map +1 -1
  41. package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
  42. package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -1
  43. package/dist/esm/components/Icons/CodeIcon.js.map +1 -1
  44. package/dist/esm/components/Icons/CopyIcon.js.map +1 -1
  45. package/dist/esm/components/Icons/CubeIcon.js +31 -0
  46. package/dist/esm/components/Icons/CubeIcon.js.map +1 -0
  47. package/dist/esm/components/Icons/CutIcon.js.map +1 -1
  48. package/dist/esm/components/Icons/DotsHorizontalIcon.js.map +1 -1
  49. package/dist/esm/components/Icons/DotsVerticalIcon.js.map +1 -1
  50. package/dist/esm/components/Icons/DownloadIcon.js.map +1 -1
  51. package/dist/esm/components/Icons/EditIcon.js.map +1 -1
  52. package/dist/esm/components/Icons/ErrorIcon.js.map +1 -1
  53. package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -1
  54. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
  55. package/dist/esm/components/Icons/EyeIcon.js.map +1 -1
  56. package/dist/esm/components/Icons/FileTextIcon.js.map +1 -1
  57. package/dist/esm/components/Icons/FilterIcon.js.map +1 -1
  58. package/dist/esm/components/Icons/FirstIcon.js.map +1 -1
  59. package/dist/esm/components/Icons/FolderCogIcon.js.map +1 -1
  60. package/dist/esm/components/Icons/FolderIcon.js.map +1 -1
  61. package/dist/esm/components/Icons/FolderOpenIcon.js +2 -2
  62. package/dist/esm/components/Icons/FolderOpenIcon.js.map +1 -1
  63. package/dist/esm/components/Icons/FullscreenIcon.js.map +1 -1
  64. package/dist/esm/components/Icons/GitBranchIcon.js.map +1 -1
  65. package/dist/esm/components/Icons/GridIcon.js.map +1 -1
  66. package/dist/esm/components/Icons/HeartIcon.js.map +1 -1
  67. package/dist/esm/components/Icons/HelpIcon.js.map +1 -1
  68. package/dist/esm/components/Icons/HomeIcon.js.map +1 -1
  69. package/dist/esm/components/Icons/ImageIcon.js +31 -0
  70. package/dist/esm/components/Icons/ImageIcon.js.map +1 -0
  71. package/dist/esm/components/Icons/InfoIcon.js.map +1 -1
  72. package/dist/esm/components/Icons/LastIcon.js.map +1 -1
  73. package/dist/esm/components/Icons/LinkIcon.js.map +1 -1
  74. package/dist/esm/components/Icons/ListIcon.js.map +1 -1
  75. package/dist/esm/components/Icons/LockIcon.js.map +1 -1
  76. package/dist/esm/components/Icons/MaximizeIcon.js.map +1 -1
  77. package/dist/esm/components/Icons/MenuIcon.js.map +1 -1
  78. package/dist/esm/components/Icons/MinimizeIcon.js.map +1 -1
  79. package/dist/esm/components/Icons/MinusIcon.js.map +1 -1
  80. package/dist/esm/components/Icons/OrbitIcon.js +31 -0
  81. package/dist/esm/components/Icons/OrbitIcon.js.map +1 -0
  82. package/dist/esm/components/Icons/PasteIcon.js.map +1 -1
  83. package/dist/esm/components/Icons/PauseIcon.js +2 -2
  84. package/dist/esm/components/Icons/PauseIcon.js.map +1 -1
  85. package/dist/esm/components/Icons/PinIcon.js.map +1 -1
  86. package/dist/esm/components/Icons/PlayIcon.js.map +1 -1
  87. package/dist/esm/components/Icons/RedoIcon.js.map +1 -1
  88. package/dist/esm/components/Icons/RefreshIcon.js.map +1 -1
  89. package/dist/esm/components/Icons/RobotIcon.js.map +1 -1
  90. package/dist/esm/components/Icons/RotateIcon.js +32 -0
  91. package/dist/esm/components/Icons/RotateIcon.js.map +1 -0
  92. package/dist/esm/components/Icons/SaveIcon.js.map +1 -1
  93. package/dist/esm/components/Icons/SearchIcon.js.map +1 -1
  94. package/dist/esm/components/Icons/SendIcon.js.map +1 -1
  95. package/dist/esm/components/Icons/SettingsIcon.js.map +1 -1
  96. package/dist/esm/components/Icons/SortIcon.js.map +1 -1
  97. package/dist/esm/components/Icons/SpinIcon.js +32 -0
  98. package/dist/esm/components/Icons/SpinIcon.js.map +1 -0
  99. package/dist/esm/components/Icons/StarIcon.js.map +1 -1
  100. package/dist/esm/components/Icons/StopIcon.js.map +1 -1
  101. package/dist/esm/components/Icons/SuccessIcon.js.map +1 -1
  102. package/dist/esm/components/Icons/TagIcon.js.map +1 -1
  103. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
  104. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
  105. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
  106. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
  107. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
  108. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
  109. package/dist/esm/components/Icons/TerminalIcon.js.map +1 -1
  110. package/dist/esm/components/Icons/TrashIcon.js.map +1 -1
  111. package/dist/esm/components/Icons/UndoIcon.js.map +1 -1
  112. package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -1
  113. package/dist/esm/components/Icons/UnlockIcon.js.map +1 -1
  114. package/dist/esm/components/Icons/UploadIcon.js.map +1 -1
  115. package/dist/esm/components/Icons/UserIcon.js.map +1 -1
  116. package/dist/esm/components/Icons/UsersIcon.js.map +1 -1
  117. package/dist/esm/components/Icons/WarningIcon.js.map +1 -1
  118. package/dist/esm/components/Icons/ZoomFitIcon.js +32 -0
  119. package/dist/esm/components/Icons/ZoomFitIcon.js.map +1 -0
  120. package/dist/esm/components/Icons/ZoomInIcon.js.map +1 -1
  121. package/dist/esm/components/Icons/ZoomOutIcon.js.map +1 -1
  122. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +3 -3
  123. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -1
  124. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +7 -5
  125. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -1
  126. package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -1
  127. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
  128. package/dist/esm/components/controls/ColorPicker/ColorArea.js +2 -2
  129. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
  130. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +16 -2
  131. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
  132. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +3 -1
  133. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
  134. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +6 -6
  135. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
  136. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +3 -1
  137. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
  138. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
  139. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
  140. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
  141. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -1
  142. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -1
  143. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -1
  144. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -1
  145. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
  146. package/dist/esm/components/controls/Combobox/Combobox.js +46 -23
  147. package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -1
  148. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +11 -4
  149. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
  150. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +4 -4
  151. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
  152. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +7 -5
  153. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
  154. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
  155. package/dist/esm/components/controls/CurveEditor/curveUtils.js +13 -15
  156. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
  157. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +72 -50
  158. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
  159. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +11 -3
  160. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
  161. package/dist/esm/components/controls/FileTree/FileTree.css.js +9 -0
  162. package/dist/esm/components/controls/FileTree/FileTree.css.js.map +1 -0
  163. package/dist/esm/components/controls/FileTree/FileTree.js +252 -0
  164. package/dist/esm/components/controls/FileTree/FileTree.js.map +1 -0
  165. package/dist/esm/components/controls/FileTree/fileTreeIcons.js +129 -0
  166. package/dist/esm/components/controls/FileTree/fileTreeIcons.js.map +1 -0
  167. package/dist/esm/components/controls/FileTree/fileTreeLabels.js +8 -0
  168. package/dist/esm/components/controls/FileTree/fileTreeLabels.js.map +1 -0
  169. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js +115 -0
  170. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js.map +1 -0
  171. package/dist/esm/components/controls/FileUploader/FileUploader.js +3 -6
  172. package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -1
  173. package/dist/esm/components/controls/MultiSelect/MultiSelect.js +46 -15
  174. package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -1
  175. package/dist/esm/components/controls/NumberInput/NumberInput.js +11 -4
  176. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
  177. package/dist/esm/components/controls/NumberInput/useNumberInput.js +6 -2
  178. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
  179. package/dist/esm/components/controls/Select/Select.css.js +1 -1
  180. package/dist/esm/components/controls/Select/Select.js +44 -16
  181. package/dist/esm/components/controls/Select/Select.js.map +1 -1
  182. package/dist/esm/components/controls/Slider/Slider.js +6 -8
  183. package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
  184. package/dist/esm/components/controls/TagInput/TagInput.js +4 -2
  185. package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -1
  186. package/dist/esm/components/controls/TreeView/TreeNode.css.js +9 -8
  187. package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -1
  188. package/dist/esm/components/controls/TreeView/TreeNode.js +42 -7
  189. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
  190. package/dist/esm/components/controls/TreeView/TreeView.js +18 -6
  191. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
  192. package/dist/esm/components/controls/TreeView/useTreeState.js +2 -6
  193. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
  194. package/dist/esm/components/controls/VectorInput/VectorInput.js +13 -4
  195. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
  196. package/dist/esm/components/data/DataTable/DataTable.js +25 -8
  197. package/dist/esm/components/data/DataTable/DataTable.js.map +1 -1
  198. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js +46 -0
  199. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js.map +1 -0
  200. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js +254 -0
  201. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js.map +1 -0
  202. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js +17 -0
  203. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js.map +1 -0
  204. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js +25 -0
  205. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js.map +1 -0
  206. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js +140 -0
  207. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js.map +1 -0
  208. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js +81 -0
  209. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js.map +1 -0
  210. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js +123 -0
  211. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js.map +1 -0
  212. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js +136 -0
  213. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js.map +1 -0
  214. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js +137 -0
  215. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js.map +1 -0
  216. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js +226 -0
  217. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js.map +1 -0
  218. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js +189 -0
  219. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js.map +1 -0
  220. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js +63 -0
  221. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js.map +1 -0
  222. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js +19 -0
  223. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js.map +1 -0
  224. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js +24 -0
  225. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js.map +1 -0
  226. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js +176 -0
  227. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js.map +1 -0
  228. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js +120 -0
  229. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js.map +1 -0
  230. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js +134 -0
  231. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js.map +1 -0
  232. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js +90 -0
  233. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js.map +1 -0
  234. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js +32 -0
  235. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js.map +1 -0
  236. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js +70 -0
  237. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js.map +1 -0
  238. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js +62 -0
  239. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js.map +1 -0
  240. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js +52 -0
  241. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js.map +1 -0
  242. package/dist/esm/components/editor/AssetBrowser/slots.js +18 -0
  243. package/dist/esm/components/editor/AssetBrowser/slots.js.map +1 -0
  244. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js +19 -0
  245. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js.map +1 -0
  246. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js +70 -0
  247. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js.map +1 -0
  248. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js +108 -0
  249. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js.map +1 -0
  250. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js +192 -0
  251. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js.map +1 -0
  252. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js +91 -0
  253. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js.map +1 -0
  254. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js +91 -0
  255. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js.map +1 -0
  256. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js +128 -0
  257. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js.map +1 -0
  258. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js +72 -0
  259. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js.map +1 -0
  260. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js +141 -0
  261. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js.map +1 -0
  262. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js +113 -0
  263. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js.map +1 -0
  264. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js +174 -0
  265. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js.map +1 -0
  266. package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -1
  267. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +8 -2
  268. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -1
  269. package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -1
  270. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +20 -4
  271. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -1
  272. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +1 -1
  273. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -1
  274. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +3 -1
  275. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -1
  276. package/dist/esm/components/editor/ChatPanel/ChatIcons.js.map +1 -1
  277. package/dist/esm/components/editor/ChatPanel/ChatInput.js +10 -3
  278. package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
  279. package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -1
  280. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js +1 -1
  281. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js.map +1 -1
  282. package/dist/esm/components/editor/ChatPanel/ChatMessage.js +10 -3
  283. package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
  284. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +5 -3
  285. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
  286. package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -1
  287. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +1 -1
  288. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -1
  289. package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -1
  290. package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -1
  291. package/dist/esm/components/editor/ChatPanel/useChatMessages.js +7 -4
  292. package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -1
  293. package/dist/esm/components/editor/ChatPanel/useChatScroll.js +6 -1
  294. package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
  295. package/dist/esm/components/editor/Minimap/Minimap.css.js +18 -0
  296. package/dist/esm/components/editor/Minimap/Minimap.css.js.map +1 -0
  297. package/dist/esm/components/editor/Minimap/Minimap.js +257 -0
  298. package/dist/esm/components/editor/Minimap/Minimap.js.map +1 -0
  299. package/dist/esm/components/editor/Minimap/Minimap.types.js +11 -0
  300. package/dist/esm/components/editor/Minimap/Minimap.types.js.map +1 -0
  301. package/dist/esm/components/editor/Minimap/MinimapContext.js +48 -0
  302. package/dist/esm/components/editor/Minimap/MinimapContext.js.map +1 -0
  303. package/dist/esm/components/editor/Minimap/MinimapCorner.js +16 -0
  304. package/dist/esm/components/editor/Minimap/MinimapCorner.js.map +1 -0
  305. package/dist/esm/components/editor/Minimap/MinimapFooter.js +16 -0
  306. package/dist/esm/components/editor/Minimap/MinimapFooter.js.map +1 -0
  307. package/dist/esm/components/editor/Minimap/MinimapStore.js +166 -0
  308. package/dist/esm/components/editor/Minimap/MinimapStore.js.map +1 -0
  309. package/dist/esm/components/editor/Minimap/MinimapTitle.js +16 -0
  310. package/dist/esm/components/editor/Minimap/MinimapTitle.js.map +1 -0
  311. package/dist/esm/components/editor/Minimap/ViewportMinimap.js +69 -0
  312. package/dist/esm/components/editor/Minimap/ViewportMinimap.js.map +1 -0
  313. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js +65 -0
  314. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js.map +1 -0
  315. package/dist/esm/components/editor/Minimap/index.js +15 -0
  316. package/dist/esm/components/editor/Minimap/index.js.map +1 -0
  317. package/dist/esm/components/editor/Minimap/minimapCoords.js +105 -0
  318. package/dist/esm/components/editor/Minimap/minimapCoords.js.map +1 -0
  319. package/dist/esm/components/editor/Minimap/minimapDrawing.js +93 -0
  320. package/dist/esm/components/editor/Minimap/minimapDrawing.js.map +1 -0
  321. package/dist/esm/components/editor/Minimap/minimapHitTest.js +59 -0
  322. package/dist/esm/components/editor/Minimap/minimapHitTest.js.map +1 -0
  323. package/dist/esm/components/editor/Minimap/useMinimapGestures.js +299 -0
  324. package/dist/esm/components/editor/Minimap/useMinimapGestures.js.map +1 -0
  325. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js +36 -0
  326. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js.map +1 -0
  327. package/dist/esm/components/editor/NodeGraph/NodeGraph.js +627 -0
  328. package/dist/esm/components/editor/NodeGraph/NodeGraph.js.map +1 -0
  329. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js +10 -0
  330. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js.map +1 -0
  331. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js +54 -0
  332. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js.map +1 -0
  333. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js +137 -0
  334. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js.map +1 -0
  335. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js +211 -0
  336. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js.map +1 -0
  337. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js +122 -0
  338. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js.map +1 -0
  339. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js +170 -0
  340. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js.map +1 -0
  341. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js +21 -0
  342. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js.map +1 -0
  343. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js +56 -0
  344. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js.map +1 -0
  345. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js +59 -0
  346. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js.map +1 -0
  347. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js +17 -0
  348. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js.map +1 -0
  349. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js +35 -0
  350. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js.map +1 -0
  351. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js +191 -0
  352. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js.map +1 -0
  353. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js +46 -0
  354. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js.map +1 -0
  355. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js +50 -0
  356. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js.map +1 -0
  357. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js +70 -0
  358. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js.map +1 -0
  359. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js +543 -0
  360. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js.map +1 -0
  361. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js +100 -0
  362. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js.map +1 -0
  363. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js +37 -0
  364. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js.map +1 -0
  365. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js +53 -0
  366. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js.map +1 -0
  367. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js +461 -0
  368. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js.map +1 -0
  369. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js +31 -0
  370. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js.map +1 -0
  371. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js +350 -0
  372. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js.map +1 -0
  373. package/dist/esm/components/editor/NodeGraph/sortSlots.js +69 -0
  374. package/dist/esm/components/editor/NodeGraph/sortSlots.js.map +1 -0
  375. package/dist/esm/components/editor/NodeGraph/useDragGesture.js +63 -0
  376. package/dist/esm/components/editor/NodeGraph/useDragGesture.js.map +1 -0
  377. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js +207 -0
  378. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js.map +1 -0
  379. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js +334 -0
  380. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js.map +1 -0
  381. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js +137 -0
  382. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js.map +1 -0
  383. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js +392 -0
  384. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js.map +1 -0
  385. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js +164 -0
  386. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js.map +1 -0
  387. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js +234 -0
  388. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js.map +1 -0
  389. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js +49 -0
  390. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js.map +1 -0
  391. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +1 -1
  392. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
  393. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js +4 -3
  394. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js.map +1 -1
  395. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +12 -7
  396. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
  397. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js +7 -6
  398. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js.map +1 -1
  399. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +21 -5
  400. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
  401. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +11 -10
  402. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js.map +1 -1
  403. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +32 -11
  404. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
  405. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
  406. package/dist/esm/components/editor/Timeline/Timeline.css.js +23 -0
  407. package/dist/esm/components/editor/Timeline/Timeline.css.js.map +1 -0
  408. package/dist/esm/components/editor/Timeline/Timeline.js +450 -0
  409. package/dist/esm/components/editor/Timeline/Timeline.js.map +1 -0
  410. package/dist/esm/components/editor/Timeline/Timeline.types.js +10 -0
  411. package/dist/esm/components/editor/Timeline/Timeline.types.js.map +1 -0
  412. package/dist/esm/components/editor/Timeline/TimelineContext.js +69 -0
  413. package/dist/esm/components/editor/Timeline/TimelineContext.js.map +1 -0
  414. package/dist/esm/components/editor/Timeline/TimelineFooter.js +16 -0
  415. package/dist/esm/components/editor/Timeline/TimelineFooter.js.map +1 -0
  416. package/dist/esm/components/editor/Timeline/TimelineMinimap.js +280 -0
  417. package/dist/esm/components/editor/Timeline/TimelineMinimap.js.map +1 -0
  418. package/dist/esm/components/editor/Timeline/TimelineStore.js +289 -0
  419. package/dist/esm/components/editor/Timeline/TimelineStore.js.map +1 -0
  420. package/dist/esm/components/editor/Timeline/TimelineToolbar.js +15 -0
  421. package/dist/esm/components/editor/Timeline/TimelineToolbar.js.map +1 -0
  422. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js +142 -0
  423. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js.map +1 -0
  424. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js +18 -0
  425. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js.map +1 -0
  426. package/dist/esm/components/editor/Timeline/index.js +18 -0
  427. package/dist/esm/components/editor/Timeline/index.js.map +1 -0
  428. package/dist/esm/components/editor/Timeline/timelineCoords.js +118 -0
  429. package/dist/esm/components/editor/Timeline/timelineCoords.js.map +1 -0
  430. package/dist/esm/components/editor/Timeline/timelineDrawing.js +390 -0
  431. package/dist/esm/components/editor/Timeline/timelineDrawing.js.map +1 -0
  432. package/dist/esm/components/editor/Timeline/timelineEdits.js +323 -0
  433. package/dist/esm/components/editor/Timeline/timelineEdits.js.map +1 -0
  434. package/dist/esm/components/editor/Timeline/timelineHitTest.js +153 -0
  435. package/dist/esm/components/editor/Timeline/timelineHitTest.js.map +1 -0
  436. package/dist/esm/components/editor/Timeline/timelineLayout.js +39 -0
  437. package/dist/esm/components/editor/Timeline/timelineLayout.js.map +1 -0
  438. package/dist/esm/components/editor/Timeline/timelineSelection.js +0 -0
  439. package/dist/esm/components/editor/Timeline/timelineSelection.js.map +1 -0
  440. package/dist/esm/components/editor/Timeline/useTimelineDraw.js +156 -0
  441. package/dist/esm/components/editor/Timeline/useTimelineDraw.js.map +1 -0
  442. package/dist/esm/components/editor/Timeline/useTimelineGestures.js +587 -0
  443. package/dist/esm/components/editor/Timeline/useTimelineGestures.js.map +1 -0
  444. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js +85 -0
  445. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js.map +1 -0
  446. package/dist/esm/components/editor/TransformControl/TransformControl.js +4 -4
  447. package/dist/esm/components/editor/TransformControl/TransformControl.js.map +1 -1
  448. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +8 -4
  449. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -1
  450. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +6 -2
  451. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -1
  452. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +8 -6
  453. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -1
  454. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +1 -2
  455. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -1
  456. package/dist/esm/components/feedback/Alert/Alert.js +8 -8
  457. package/dist/esm/components/feedback/Alert/Alert.js.map +1 -1
  458. package/dist/esm/components/feedback/Alert/AlertActions.js.map +1 -1
  459. package/dist/esm/components/feedback/Alert/AlertDescription.js.map +1 -1
  460. package/dist/esm/components/feedback/Alert/AlertTitle.js.map +1 -1
  461. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +32 -22
  462. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -1
  463. package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js.map +1 -1
  464. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +3 -1
  465. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -1
  466. package/dist/esm/components/feedback/Dialog/Dialog.js +6 -3
  467. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
  468. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
  469. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
  470. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
  471. package/dist/esm/components/feedback/Dialog/DialogHeader.js +1 -1
  472. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
  473. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +10 -2
  474. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
  475. package/dist/esm/components/feedback/Drawer/Drawer.js +4 -1
  476. package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -1
  477. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +4 -0
  478. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -1
  479. package/dist/esm/components/feedback/EmptyState/EmptyState.js +1 -1
  480. package/dist/esm/components/feedback/EmptyState/EmptyState.js.map +1 -1
  481. package/dist/esm/components/feedback/LogView/LogView.css.js +35 -0
  482. package/dist/esm/components/feedback/LogView/LogView.css.js.map +1 -0
  483. package/dist/esm/components/feedback/LogView/LogView.js +297 -0
  484. package/dist/esm/components/feedback/LogView/LogView.js.map +1 -0
  485. package/dist/esm/components/feedback/LogView/LogViewBody.js +205 -0
  486. package/dist/esm/components/feedback/LogView/LogViewBody.js.map +1 -0
  487. package/dist/esm/components/feedback/LogView/LogViewContext.js +31 -0
  488. package/dist/esm/components/feedback/LogView/LogViewContext.js.map +1 -0
  489. package/dist/esm/components/feedback/LogView/LogViewParts.js +73 -0
  490. package/dist/esm/components/feedback/LogView/LogViewParts.js.map +1 -0
  491. package/dist/esm/components/feedback/LogView/LogViewStore.js +240 -0
  492. package/dist/esm/components/feedback/LogView/LogViewStore.js.map +1 -0
  493. package/dist/esm/components/feedback/LogView/logViewLabels.js +25 -0
  494. package/dist/esm/components/feedback/LogView/logViewLabels.js.map +1 -0
  495. package/dist/esm/components/feedback/LogView/logViewLevels.js +74 -0
  496. package/dist/esm/components/feedback/LogView/logViewLevels.js.map +1 -0
  497. package/dist/esm/components/feedback/LogView/logViewUtils.js +128 -0
  498. package/dist/esm/components/feedback/LogView/logViewUtils.js.map +1 -0
  499. package/dist/esm/components/feedback/LogView/useFollowTail.js +95 -0
  500. package/dist/esm/components/feedback/LogView/useFollowTail.js.map +1 -0
  501. package/dist/esm/components/feedback/LogView/useLogSelection.js +113 -0
  502. package/dist/esm/components/feedback/LogView/useLogSelection.js.map +1 -0
  503. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js +1 -1
  504. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js.map +1 -1
  505. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js +1 -1
  506. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js.map +1 -1
  507. package/dist/esm/components/feedback/Skeleton/Skeleton.js +1 -1
  508. package/dist/esm/components/feedback/Skeleton/Skeleton.js.map +1 -1
  509. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js +1 -1
  510. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js.map +1 -1
  511. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +1 -1
  512. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -1
  513. package/dist/esm/components/feedback/Spinner/Spinner.js +1 -1
  514. package/dist/esm/components/feedback/Spinner/Spinner.js.map +1 -1
  515. package/dist/esm/components/feedback/Stat/Stat.js.map +1 -1
  516. package/dist/esm/components/feedback/Toast/ToastContainer.js +1 -1
  517. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
  518. package/dist/esm/components/feedback/Toast/ToastItem.js +7 -3
  519. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
  520. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
  521. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
  522. package/dist/esm/components/form/FormHelperText.js.map +1 -1
  523. package/dist/esm/components/form/FormLabel.js.map +1 -1
  524. package/dist/esm/components/form/InputWrapper.js.map +1 -1
  525. package/dist/esm/components/layout/Accordion/Accordion.js +1 -1
  526. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
  527. package/dist/esm/components/layout/Accordion/AccordionContent.js +1 -1
  528. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
  529. package/dist/esm/components/layout/Accordion/AccordionItem.js +1 -1
  530. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
  531. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +7 -2
  532. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
  533. package/dist/esm/components/layout/Card/Card.js +2 -2
  534. package/dist/esm/components/layout/Card/Card.js.map +1 -1
  535. package/dist/esm/components/layout/Divider/Divider.js.map +1 -1
  536. package/dist/esm/components/layout/Flex/Flex.js +1 -1
  537. package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
  538. package/dist/esm/components/layout/Grid/Grid.js +1 -1
  539. package/dist/esm/components/layout/Grid/Grid.js.map +1 -1
  540. package/dist/esm/components/layout/ListItem/ListItem.js +1 -1
  541. package/dist/esm/components/layout/ListItem/ListItem.js.map +1 -1
  542. package/dist/esm/components/layout/PageHeader/PageHeader.js.map +1 -1
  543. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +3 -3
  544. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
  545. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +91 -23
  546. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
  547. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -1
  548. package/dist/esm/components/layout/SplitPane/SplitPane.js +29 -16
  549. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
  550. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
  551. package/dist/esm/components/layout/Stack/Stack.js +1 -1
  552. package/dist/esm/components/layout/Stack/Stack.js.map +1 -1
  553. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +4 -0
  554. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
  555. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +6 -2
  556. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  557. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js.map +1 -1
  558. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +13 -2
  559. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -1
  560. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -39
  561. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
  562. package/dist/esm/components/navigation/Menu/Menu.css.js +9 -12
  563. package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -1
  564. package/dist/esm/components/navigation/Menu/Menu.js +97 -63
  565. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
  566. package/dist/esm/components/navigation/Menu/MenuGapContext.js +19 -0
  567. package/dist/esm/components/navigation/Menu/MenuGapContext.js.map +1 -0
  568. package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -1
  569. package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -1
  570. package/dist/esm/components/navigation/PathBar/PathBar.css.js +6 -0
  571. package/dist/esm/components/navigation/PathBar/PathBar.css.js.map +1 -0
  572. package/dist/esm/components/navigation/PathBar/PathBar.js +184 -0
  573. package/dist/esm/components/navigation/PathBar/PathBar.js.map +1 -0
  574. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js +151 -0
  575. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js.map +1 -0
  576. package/dist/esm/components/navigation/PathBar/pathUtils.js +118 -0
  577. package/dist/esm/components/navigation/PathBar/pathUtils.js.map +1 -0
  578. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js +16 -6
  579. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js.map +1 -1
  580. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js +1 -1
  581. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js.map +1 -1
  582. package/dist/esm/components/navigation/Tabs/Tab.js +10 -3
  583. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
  584. package/dist/esm/components/navigation/Tabs/TabList.js +5 -2
  585. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
  586. package/dist/esm/components/navigation/Tabs/TabPanel.js +1 -1
  587. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
  588. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
  589. package/dist/esm/components/primitives/Avatar/Avatar.js +11 -4
  590. package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -1
  591. package/dist/esm/components/primitives/Avatar/AvatarGroup.js +2 -2
  592. package/dist/esm/components/primitives/Avatar/AvatarGroup.js.map +1 -1
  593. package/dist/esm/components/primitives/Badge/Badge.js +10 -3
  594. package/dist/esm/components/primitives/Badge/Badge.js.map +1 -1
  595. package/dist/esm/components/primitives/Button/Button.js.map +1 -1
  596. package/dist/esm/components/primitives/Checkbox/Checkbox.js +6 -4
  597. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
  598. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +2 -2
  599. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
  600. package/dist/esm/components/primitives/Code/Code.js.map +1 -1
  601. package/dist/esm/components/primitives/Collapsible/Collapsible.js +2 -2
  602. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
  603. package/dist/esm/components/primitives/HoverCard/HoverCard.js +5 -3
  604. package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -1
  605. package/dist/esm/components/primitives/Icon/Icon.js +1 -1
  606. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
  607. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
  608. package/dist/esm/components/primitives/Input/Input.js +1 -1
  609. package/dist/esm/components/primitives/Input/Input.js.map +1 -1
  610. package/dist/esm/components/primitives/Kbd/Kbd.js +1 -1
  611. package/dist/esm/components/primitives/Kbd/Kbd.js.map +1 -1
  612. package/dist/esm/components/primitives/Link/Link.js.map +1 -1
  613. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
  614. package/dist/esm/components/primitives/Popover/Popover.js +1 -1
  615. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -1
  616. package/dist/esm/components/primitives/Popover/PopoverClose.js +1 -1
  617. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
  618. package/dist/esm/components/primitives/Popover/PopoverContent.js +6 -4
  619. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
  620. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
  621. package/dist/esm/components/primitives/Radio/Radio.js +3 -3
  622. package/dist/esm/components/primitives/Radio/Radio.js.map +1 -1
  623. package/dist/esm/components/primitives/Radio/RadioGroup.js +2 -2
  624. package/dist/esm/components/primitives/Radio/RadioGroup.js.map +1 -1
  625. package/dist/esm/components/primitives/Switch/Switch.js +1 -1
  626. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
  627. package/dist/esm/components/primitives/Text/Text.js.map +1 -1
  628. package/dist/esm/components/primitives/TextArea/TextArea.js +3 -4
  629. package/dist/esm/components/primitives/TextArea/TextArea.js.map +1 -1
  630. package/dist/esm/components/primitives/Tooltip/Arrow.js +1 -1
  631. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
  632. package/dist/esm/components/primitives/Tooltip/Tooltip.js +9 -7
  633. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
  634. package/dist/esm/components/primitives/Tooltip/utils.js +1 -1
  635. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
  636. package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js.map +1 -1
  637. package/dist/esm/components/primitives/canvas/CanvasContainer.js +1 -1
  638. package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -1
  639. package/dist/esm/components/primitives/canvas/canvasCoords.js.map +1 -1
  640. package/dist/esm/components/primitives/canvas/canvasDrawing.js +1 -1
  641. package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -1
  642. package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -1
  643. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +8 -2
  644. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -1
  645. package/dist/esm/components/primitives/viewport/Viewport.css.js +12 -0
  646. package/dist/esm/components/primitives/viewport/Viewport.css.js.map +1 -0
  647. package/dist/esm/components/primitives/viewport/Viewport.js +189 -0
  648. package/dist/esm/components/primitives/viewport/Viewport.js.map +1 -0
  649. package/dist/esm/components/primitives/viewport/ViewportContext.js +47 -0
  650. package/dist/esm/components/primitives/viewport/ViewportContext.js.map +1 -0
  651. package/dist/esm/components/primitives/viewport/ViewportLayer.js +113 -0
  652. package/dist/esm/components/primitives/viewport/ViewportLayer.js.map +1 -0
  653. package/dist/esm/components/primitives/viewport/ViewportOverlay.js +47 -0
  654. package/dist/esm/components/primitives/viewport/ViewportOverlay.js.map +1 -0
  655. package/dist/esm/components/primitives/viewport/ViewportStore.js +210 -0
  656. package/dist/esm/components/primitives/viewport/ViewportStore.js.map +1 -0
  657. package/dist/esm/components/primitives/viewport/ViewportWorld.js +38 -0
  658. package/dist/esm/components/primitives/viewport/ViewportWorld.js.map +1 -0
  659. package/dist/esm/components/primitives/viewport/useViewportGestures.js +333 -0
  660. package/dist/esm/components/primitives/viewport/useViewportGestures.js.map +1 -0
  661. package/dist/esm/components/primitives/viewport/viewportCoords.js +37 -0
  662. package/dist/esm/components/primitives/viewport/viewportCoords.js.map +1 -0
  663. package/dist/esm/components/primitives/viewport/viewportMath.js +77 -0
  664. package/dist/esm/components/primitives/viewport/viewportMath.js.map +1 -0
  665. package/dist/esm/components/shell/AppShell/AppShell.js +1 -1
  666. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
  667. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +11 -10
  668. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -1
  669. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +60 -24
  670. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
  671. package/dist/esm/components/shell/MenuBar/MenuBar.js +23 -16
  672. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
  673. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
  674. package/dist/esm/components/shell/Toolbar/Toolbar.js +4 -3
  675. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
  676. package/dist/esm/context/KeyboardContext.js.map +1 -1
  677. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +1 -1
  678. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
  679. package/dist/esm/hooks/useClickOutside/useClickOutside.js +9 -9
  680. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  681. package/dist/esm/hooks/useClipboard/useClipboard.js +4 -0
  682. package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -1
  683. package/dist/esm/hooks/useControlledState/useControlledState.js.map +1 -1
  684. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js +11 -6
  685. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -1
  686. package/dist/esm/hooks/useDebounced/useDebouncedValue.js +16 -4
  687. package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -1
  688. package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -1
  689. package/dist/esm/hooks/useEventCallback/useEventCallback.js +49 -0
  690. package/dist/esm/hooks/useEventCallback/useEventCallback.js.map +1 -0
  691. package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  692. package/dist/esm/hooks/useHotkey/useHotkey.js +7 -12
  693. package/dist/esm/hooks/useHotkey/useHotkey.js.map +1 -1
  694. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -0
  695. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  696. package/dist/esm/hooks/useIsMounted/useIsMounted.js +43 -0
  697. package/dist/esm/hooks/useIsMounted/useIsMounted.js.map +1 -0
  698. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  699. package/dist/esm/hooks/useKeyboard/utils.js.map +1 -1
  700. package/dist/esm/hooks/useLatest/useLatest.js +31 -0
  701. package/dist/esm/hooks/useLatest/useLatest.js.map +1 -0
  702. package/dist/esm/hooks/useListboxNav/useListboxNav.js +29 -13
  703. package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -1
  704. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +7 -1
  705. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
  706. package/dist/esm/hooks/useMergedRef/useMergedRef.js +6 -1
  707. package/dist/esm/hooks/useMergedRef/useMergedRef.js.map +1 -1
  708. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js +146 -0
  709. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js.map +1 -0
  710. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +6 -8
  711. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  712. package/dist/esm/hooks/useTheme/useTheme.js +6 -3
  713. package/dist/esm/hooks/useTheme/useTheme.js.map +1 -1
  714. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js +9 -4
  715. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -1
  716. package/dist/esm/index.js +63 -4
  717. package/dist/esm/index.js.map +1 -1
  718. package/dist/esm/node_modules/tslib/tslib.es6.js +37 -0
  719. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  720. package/dist/esm/styles.js +3 -0
  721. package/dist/esm/styles.js.map +1 -0
  722. package/dist/esm/theme/ThemeProvider.js +6 -4
  723. package/dist/esm/theme/ThemeProvider.js.map +1 -1
  724. package/dist/esm/theme/VanillaThemeProvider.js.map +1 -1
  725. package/dist/esm/theme/breakpoints.js.map +1 -1
  726. package/dist/esm/theme/contract.css.js +1 -1
  727. package/dist/esm/theme/createCustomTheme.js +2 -2
  728. package/dist/esm/theme/createCustomTheme.js.map +1 -1
  729. package/dist/esm/theme/createLightTheme.js.map +1 -1
  730. package/dist/esm/theme/darkTheme.css.js +2 -2
  731. package/dist/esm/theme/darkThemeValues.js +1 -1
  732. package/dist/esm/theme/darkThemeValues.js.map +1 -1
  733. package/dist/esm/theme/lightTheme.css.js +1 -1
  734. package/dist/esm/theme/lightThemeValues.js +1 -1
  735. package/dist/esm/theme/lightThemeValues.js.map +1 -1
  736. package/dist/esm/theme/themeContractData.js +4 -4
  737. package/dist/esm/theme/themeContractData.js.map +1 -1
  738. package/dist/esm/utils/cx.js.map +1 -1
  739. package/dist/esm/utils/devWarn.js +1 -1
  740. package/dist/esm/utils/devWarn.js.map +1 -1
  741. package/dist/esm/utils/mathExpression.js +1 -1
  742. package/dist/esm/utils/mathExpression.js.map +1 -1
  743. package/dist/esm/utils/mathUtils.js.map +1 -1
  744. package/dist/esm/utils/objects.js.map +1 -1
  745. package/dist/esm/utils/platform.js.map +1 -1
  746. package/dist/tokens/tokens.dark.css +1 -1
  747. package/dist/tokens/tokens.json +1 -1
  748. package/dist/tokens/tokens.light.css +1 -1
  749. package/dist/types/components/Icons/AddIcon.d.ts +1 -1
  750. package/dist/types/components/Icons/AiChatIcon.d.ts +1 -1
  751. package/dist/types/components/Icons/AiSparklesIcon.d.ts +1 -1
  752. package/dist/types/components/Icons/ArchiveIcon.d.ts +1 -1
  753. package/dist/types/components/Icons/ArrowDownIcon.d.ts +1 -1
  754. package/dist/types/components/Icons/ArrowLeftIcon.d.ts +1 -1
  755. package/dist/types/components/Icons/ArrowRightIcon.d.ts +1 -1
  756. package/dist/types/components/Icons/ArrowUpIcon.d.ts +1 -1
  757. package/dist/types/components/Icons/BookmarkIcon.d.ts +1 -1
  758. package/dist/types/components/Icons/BugIcon.d.ts +1 -1
  759. package/dist/types/components/Icons/BuildingIcon.d.ts +1 -1
  760. package/dist/types/components/Icons/CalendarIcon.d.ts +1 -1
  761. package/dist/types/components/Icons/CameraIcon.d.ts +34 -0
  762. package/dist/types/components/Icons/CheckIcon.d.ts +1 -1
  763. package/dist/types/components/Icons/ChevronDownIcon.d.ts +1 -1
  764. package/dist/types/components/Icons/ChevronLeftIcon.d.ts +1 -1
  765. package/dist/types/components/Icons/ChevronRightIcon.d.ts +1 -1
  766. package/dist/types/components/Icons/ChevronUpIcon.d.ts +1 -1
  767. package/dist/types/components/Icons/CircleIcon.d.ts +1 -1
  768. package/dist/types/components/Icons/ClockIcon.d.ts +1 -1
  769. package/dist/types/components/Icons/CloseIcon.d.ts +1 -1
  770. package/dist/types/components/Icons/CloudUploadIcon.d.ts +1 -1
  771. package/dist/types/components/Icons/CodeIcon.d.ts +1 -1
  772. package/dist/types/components/Icons/CopyIcon.d.ts +1 -1
  773. package/dist/types/components/Icons/CubeIcon.d.ts +34 -0
  774. package/dist/types/components/Icons/CutIcon.d.ts +1 -1
  775. package/dist/types/components/Icons/DotsHorizontalIcon.d.ts +1 -1
  776. package/dist/types/components/Icons/DotsVerticalIcon.d.ts +1 -1
  777. package/dist/types/components/Icons/DownloadIcon.d.ts +1 -1
  778. package/dist/types/components/Icons/EditIcon.d.ts +1 -1
  779. package/dist/types/components/Icons/ErrorIcon.d.ts +1 -1
  780. package/dist/types/components/Icons/ExternalLinkIcon.d.ts +1 -1
  781. package/dist/types/components/Icons/EyeDropperIcon.d.ts +1 -1
  782. package/dist/types/components/Icons/EyeIcon.d.ts +1 -1
  783. package/dist/types/components/Icons/FileTextIcon.d.ts +1 -1
  784. package/dist/types/components/Icons/FilterIcon.d.ts +1 -1
  785. package/dist/types/components/Icons/FirstIcon.d.ts +1 -1
  786. package/dist/types/components/Icons/FolderCogIcon.d.ts +1 -1
  787. package/dist/types/components/Icons/FolderIcon.d.ts +1 -1
  788. package/dist/types/components/Icons/FolderOpenIcon.d.ts +1 -1
  789. package/dist/types/components/Icons/FullscreenIcon.d.ts +1 -1
  790. package/dist/types/components/Icons/GitBranchIcon.d.ts +1 -1
  791. package/dist/types/components/Icons/GridIcon.d.ts +1 -1
  792. package/dist/types/components/Icons/HeartIcon.d.ts +1 -1
  793. package/dist/types/components/Icons/HelpIcon.d.ts +1 -1
  794. package/dist/types/components/Icons/HomeIcon.d.ts +1 -1
  795. package/dist/types/components/Icons/ImageIcon.d.ts +34 -0
  796. package/dist/types/components/Icons/InfoIcon.d.ts +1 -1
  797. package/dist/types/components/Icons/LastIcon.d.ts +1 -1
  798. package/dist/types/components/Icons/LinkIcon.d.ts +1 -1
  799. package/dist/types/components/Icons/ListIcon.d.ts +1 -1
  800. package/dist/types/components/Icons/LockIcon.d.ts +1 -1
  801. package/dist/types/components/Icons/MaximizeIcon.d.ts +1 -1
  802. package/dist/types/components/Icons/MenuIcon.d.ts +1 -1
  803. package/dist/types/components/Icons/MinimizeIcon.d.ts +1 -1
  804. package/dist/types/components/Icons/MinusIcon.d.ts +1 -1
  805. package/dist/types/components/Icons/OrbitIcon.d.ts +34 -0
  806. package/dist/types/components/Icons/PasteIcon.d.ts +1 -1
  807. package/dist/types/components/Icons/PauseIcon.d.ts +1 -1
  808. package/dist/types/components/Icons/PinIcon.d.ts +1 -1
  809. package/dist/types/components/Icons/PlayIcon.d.ts +1 -1
  810. package/dist/types/components/Icons/RedoIcon.d.ts +1 -1
  811. package/dist/types/components/Icons/RefreshIcon.d.ts +1 -1
  812. package/dist/types/components/Icons/RobotIcon.d.ts +1 -1
  813. package/dist/types/components/Icons/RotateIcon.d.ts +35 -0
  814. package/dist/types/components/Icons/SaveIcon.d.ts +1 -1
  815. package/dist/types/components/Icons/SearchIcon.d.ts +1 -1
  816. package/dist/types/components/Icons/SendIcon.d.ts +1 -1
  817. package/dist/types/components/Icons/SettingsIcon.d.ts +1 -1
  818. package/dist/types/components/Icons/SortIcon.d.ts +1 -1
  819. package/dist/types/components/Icons/SpinIcon.d.ts +35 -0
  820. package/dist/types/components/Icons/StarIcon.d.ts +1 -1
  821. package/dist/types/components/Icons/StopIcon.d.ts +1 -1
  822. package/dist/types/components/Icons/SuccessIcon.d.ts +1 -1
  823. package/dist/types/components/Icons/TagIcon.d.ts +1 -1
  824. package/dist/types/components/Icons/TangentAlignedIcon.d.ts +1 -1
  825. package/dist/types/components/Icons/TangentAutoIcon.d.ts +1 -1
  826. package/dist/types/components/Icons/TangentFreeIcon.d.ts +1 -1
  827. package/dist/types/components/Icons/TangentLinearIcon.d.ts +1 -1
  828. package/dist/types/components/Icons/TangentMirroredIcon.d.ts +1 -1
  829. package/dist/types/components/Icons/TangentStepIcon.d.ts +1 -1
  830. package/dist/types/components/Icons/TerminalIcon.d.ts +1 -1
  831. package/dist/types/components/Icons/TrashIcon.d.ts +1 -1
  832. package/dist/types/components/Icons/UndoIcon.d.ts +1 -1
  833. package/dist/types/components/Icons/UnlinkIcon.d.ts +1 -1
  834. package/dist/types/components/Icons/UnlockIcon.d.ts +1 -1
  835. package/dist/types/components/Icons/UploadIcon.d.ts +1 -1
  836. package/dist/types/components/Icons/UserIcon.d.ts +1 -1
  837. package/dist/types/components/Icons/UsersIcon.d.ts +1 -1
  838. package/dist/types/components/Icons/WarningIcon.d.ts +1 -1
  839. package/dist/types/components/Icons/ZoomFitIcon.d.ts +35 -0
  840. package/dist/types/components/Icons/ZoomInIcon.d.ts +1 -1
  841. package/dist/types/components/Icons/ZoomOutIcon.d.ts +1 -1
  842. package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +3 -3
  843. package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +2 -2
  844. package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +1 -1
  845. package/dist/types/components/controls/Combobox/Combobox.types.d.ts +1 -1
  846. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +8 -58
  847. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +2 -1
  848. package/dist/types/components/controls/FileTree/FileTree.d.ts +34 -0
  849. package/dist/types/components/controls/FileTree/FileTree.types.d.ts +133 -0
  850. package/dist/types/components/controls/FileTree/fileTreeIcons.d.ts +29 -0
  851. package/dist/types/components/controls/FileTree/fileTreeLabels.d.ts +19 -0
  852. package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +2 -2
  853. package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +1 -1
  854. package/dist/types/components/controls/NumberInput/NumberInput.d.ts +2 -2
  855. package/dist/types/components/controls/Select/Select.d.ts +1 -1
  856. package/dist/types/components/controls/Select/Select.types.d.ts +45 -11
  857. package/dist/types/components/controls/Slider/Slider.d.ts +1 -1
  858. package/dist/types/components/controls/TagInput/TagInput.types.d.ts +2 -2
  859. package/dist/types/components/controls/TreeView/TreeView.d.ts +1 -1
  860. package/dist/types/components/controls/TreeView/TreeView.types.d.ts +24 -2
  861. package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +1 -1
  862. package/dist/types/components/data/DataTable/DataTable.types.d.ts +2 -2
  863. package/dist/types/components/editor/AssetBrowser/AssetBrowser.d.ts +13 -0
  864. package/dist/types/components/editor/AssetBrowser/AssetBrowser.types.d.ts +241 -0
  865. package/dist/types/components/editor/AssetBrowser/assetBrowserLabels.d.ts +70 -0
  866. package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.types.d.ts +1 -1
  867. package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +2 -2
  868. package/dist/types/components/editor/Minimap/Minimap.d.ts +26 -0
  869. package/dist/types/components/editor/Minimap/Minimap.types.d.ts +249 -0
  870. package/dist/types/components/editor/Minimap/MinimapContext.d.ts +27 -0
  871. package/dist/types/components/editor/Minimap/MinimapCorner.d.ts +8 -0
  872. package/dist/types/components/editor/Minimap/MinimapFooter.d.ts +8 -0
  873. package/dist/types/components/editor/Minimap/MinimapStore.d.ts +17 -0
  874. package/dist/types/components/editor/Minimap/MinimapTitle.d.ts +8 -0
  875. package/dist/types/components/editor/Minimap/ViewportMinimap.d.ts +52 -0
  876. package/dist/types/components/editor/Minimap/computeBoundsFromItems.d.ts +13 -0
  877. package/dist/types/components/editor/Minimap/index.d.ts +13 -0
  878. package/dist/types/components/editor/NodeGraph/NodeGraph.d.ts +63 -0
  879. package/dist/types/components/editor/NodeGraph/NodeGraph.types.d.ts +568 -0
  880. package/dist/types/components/editor/NodeGraph/NodeGraphContext.d.ts +30 -0
  881. package/dist/types/components/editor/NodeGraph/NodeGraphNodeParts.d.ts +86 -0
  882. package/dist/types/components/editor/NodeGraph/NodeGraphNodeSection.d.ts +47 -0
  883. package/dist/types/components/editor/NodeGraph/NodeGraphPin.d.ts +57 -0
  884. package/dist/types/components/editor/NodeGraph/NodeGraphPort.d.ts +30 -0
  885. package/dist/types/components/editor/NodeGraph/NodeGraphPortVisual.d.ts +46 -0
  886. package/dist/types/components/editor/NodeGraph/NodeGraphSlots.d.ts +16 -0
  887. package/dist/types/components/editor/NodeGraph/NodeGraphStore.d.ts +256 -0
  888. package/dist/types/components/editor/NodeGraph/NodeGraphToolbar.d.ts +54 -0
  889. package/dist/types/components/editor/NodeGraph/createTypeMatchValidator.d.ts +43 -0
  890. package/dist/types/components/editor/NodeGraph/nodeGraphActions.d.ts +39 -0
  891. package/dist/types/components/editor/NodeGraph/nodeGraphIds.d.ts +16 -0
  892. package/dist/types/components/editor/NodeGraph/useNodeGraph.d.ts +103 -0
  893. package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +51 -5
  894. package/dist/types/components/editor/Timeline/Timeline.d.ts +18 -0
  895. package/dist/types/components/editor/Timeline/Timeline.types.d.ts +348 -0
  896. package/dist/types/components/editor/Timeline/TimelineContext.d.ts +51 -0
  897. package/dist/types/components/editor/Timeline/TimelineFooter.d.ts +8 -0
  898. package/dist/types/components/editor/Timeline/TimelineMinimap.d.ts +21 -0
  899. package/dist/types/components/editor/Timeline/TimelineStore.d.ts +41 -0
  900. package/dist/types/components/editor/Timeline/TimelineToolbar.d.ts +8 -0
  901. package/dist/types/components/editor/Timeline/TimelineTrackScale.d.ts +8 -0
  902. package/dist/types/components/editor/Timeline/index.d.ts +15 -0
  903. package/dist/types/components/editor/Timeline/timelineCoords.d.ts +7 -0
  904. package/dist/types/components/editor/Timeline/timelineEdits.d.ts +18 -0
  905. package/dist/types/components/editor/TransformControl/TransformControl.types.d.ts +2 -2
  906. package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +1 -1
  907. package/dist/types/components/feedback/Alert/Alert.d.ts +2 -2
  908. package/dist/types/components/feedback/Alert/Alert.types.d.ts +5 -5
  909. package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +1 -3
  910. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +2 -2
  911. package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +1 -1
  912. package/dist/types/components/feedback/EmptyState/EmptyState.types.d.ts +2 -2
  913. package/dist/types/components/feedback/LogView/LogView.d.ts +58 -0
  914. package/dist/types/components/feedback/LogView/LogView.types.d.ts +333 -0
  915. package/dist/types/components/feedback/LogView/LogViewBody.d.ts +15 -0
  916. package/dist/types/components/feedback/LogView/LogViewContext.d.ts +9 -0
  917. package/dist/types/components/feedback/LogView/LogViewParts.d.ts +35 -0
  918. package/dist/types/components/feedback/LogView/LogViewStore.d.ts +4 -0
  919. package/dist/types/components/feedback/LogView/logViewLabels.d.ts +9 -0
  920. package/dist/types/components/feedback/LogView/logViewUtils.d.ts +41 -0
  921. package/dist/types/components/feedback/ProgressBar/ProgressBar.types.d.ts +3 -3
  922. package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +4 -4
  923. package/dist/types/components/feedback/Stat/Stat.types.d.ts +2 -2
  924. package/dist/types/components/feedback/Toast/Toast.types.d.ts +1 -1
  925. package/dist/types/components/form/FormHelperText.d.ts +2 -2
  926. package/dist/types/components/form/FormLabel.d.ts +1 -1
  927. package/dist/types/components/form/InputWrapper.d.ts +2 -2
  928. package/dist/types/components/layout/Accordion/Accordion.types.d.ts +2 -2
  929. package/dist/types/components/layout/Card/Card.types.d.ts +6 -6
  930. package/dist/types/components/layout/Divider/Divider.types.d.ts +2 -2
  931. package/dist/types/components/layout/Flex/Flex.d.ts +1 -1
  932. package/dist/types/components/layout/Grid/Grid.d.ts +1 -1
  933. package/dist/types/components/layout/ListItem/ListItem.types.d.ts +2 -2
  934. package/dist/types/components/layout/PageHeader/PageHeader.types.d.ts +1 -1
  935. package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +6 -6
  936. package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +2 -2
  937. package/dist/types/components/layout/Stack/Stack.d.ts +1 -1
  938. package/dist/types/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +1 -0
  939. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +7 -0
  940. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +18 -3
  941. package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +55 -63
  942. package/dist/types/components/navigation/Menu/Menu.d.ts +38 -35
  943. package/dist/types/components/navigation/Menu/Menu.types.d.ts +190 -71
  944. package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +1 -1
  945. package/dist/types/components/navigation/PathBar/PathBar.d.ts +31 -0
  946. package/dist/types/components/navigation/PathBar/PathBar.types.d.ts +79 -0
  947. package/dist/types/components/navigation/SegmentedControl/SegmentedControl.types.d.ts +3 -3
  948. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +2 -2
  949. package/dist/types/components/primitives/Avatar/Avatar.types.d.ts +2 -2
  950. package/dist/types/components/primitives/Badge/Badge.types.d.ts +1 -1
  951. package/dist/types/components/primitives/Button/Button.d.ts +2 -2
  952. package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +2 -2
  953. package/dist/types/components/primitives/Code/Code.types.d.ts +1 -1
  954. package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +2 -2
  955. package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +3 -3
  956. package/dist/types/components/primitives/Icon/Icon.d.ts +2 -2
  957. package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
  958. package/dist/types/components/primitives/Input/Input.d.ts +1 -1
  959. package/dist/types/components/primitives/Kbd/Kbd.types.d.ts +1 -1
  960. package/dist/types/components/primitives/Link/Link.types.d.ts +1 -1
  961. package/dist/types/components/primitives/Popover/Popover.types.d.ts +2 -2
  962. package/dist/types/components/primitives/Radio/Radio.types.d.ts +3 -3
  963. package/dist/types/components/primitives/Switch/Switch.d.ts +1 -1
  964. package/dist/types/components/primitives/TextArea/TextArea.types.d.ts +1 -1
  965. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +1 -1
  966. package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.types.d.ts +1 -1
  967. package/dist/types/components/primitives/canvas/canvas.types.d.ts +16 -1
  968. package/dist/types/components/primitives/viewport/Viewport.d.ts +38 -0
  969. package/dist/types/components/primitives/viewport/Viewport.types.d.ts +257 -0
  970. package/dist/types/components/primitives/viewport/ViewportContext.d.ts +23 -0
  971. package/dist/types/components/primitives/viewport/ViewportLayer.d.ts +26 -0
  972. package/dist/types/components/primitives/viewport/ViewportOverlay.d.ts +27 -0
  973. package/dist/types/components/primitives/viewport/ViewportWorld.d.ts +25 -0
  974. package/dist/types/components/primitives/viewport/viewportCoords.d.ts +25 -0
  975. package/dist/types/components/primitives/viewport/viewportMath.d.ts +35 -0
  976. package/dist/types/components/shell/AppShell/AppShell.types.d.ts +2 -2
  977. package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +2 -2
  978. package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +5 -5
  979. package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +3 -3
  980. package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +5 -5
  981. package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +13 -4
  982. package/dist/types/hooks/useEventCallback/useEventCallback.d.ts +32 -0
  983. package/dist/types/hooks/useIsMounted/useIsMounted.d.ts +28 -0
  984. package/dist/types/hooks/useKeyboard/types.d.ts +1 -1
  985. package/dist/types/hooks/useLatest/useLatest.d.ts +23 -0
  986. package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +3 -3
  987. package/dist/types/index.d.ts +71 -6
  988. package/dist/types/theme/ThemeProvider.d.ts +5 -3
  989. package/dist/types/theme/contract.css.d.ts +1 -1
  990. package/dist/types/theme/createCustomTheme.d.ts +1 -1
  991. package/dist/types/theme/darkThemeValues.d.ts +1 -1
  992. package/dist/types/theme/lightThemeValues.d.ts +1 -1
  993. package/dist/types/theme/themeContractData.d.ts +4 -4
  994. package/dist/types/theme-values.d.ts +1 -1
  995. package/dist/types/types/keyframe.d.ts +64 -0
  996. package/package.json +34 -18
  997. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  998. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  999. package/dist/esm/_virtual/cjs.js +0 -4
  1000. package/dist/esm/_virtual/cjs.js.map +0 -1
  1001. package/dist/esm/_virtual/cssesc.js +0 -8
  1002. package/dist/esm/_virtual/cssesc.js.map +0 -1
  1003. package/dist/esm/_virtual/picocolors.js +0 -8
  1004. package/dist/esm/_virtual/picocolors.js.map +0 -1
  1005. package/dist/esm/_virtual/picocolors2.js +0 -4
  1006. package/dist/esm/_virtual/picocolors2.js.map +0 -1
  1007. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +0 -67
  1008. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +0 -53
  1009. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +0 -1
  1010. package/dist/esm/components/navigation/Menu/Menu.helpers.js +0 -53
  1011. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +0 -1
  1012. package/dist/esm/components/navigation/Menu/useMenu.js +0 -88
  1013. package/dist/esm/components/navigation/Menu/useMenu.js.map +0 -1
  1014. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js +0 -56
  1015. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js.map +0 -1
  1016. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js +0 -46
  1017. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js.map +0 -1
  1018. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js +0 -13
  1019. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js.map +0 -1
  1020. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js +0 -962
  1021. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js.map +0 -1
  1022. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js +0 -309
  1023. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js.map +0 -1
  1024. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js +0 -18
  1025. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js.map +0 -1
  1026. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js +0 -23
  1027. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js.map +0 -1
  1028. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js +0 -1543
  1029. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js.map +0 -1
  1030. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js +0 -38
  1031. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js.map +0 -1
  1032. package/dist/esm/node_modules/css-what/lib/es/parse.js +0 -424
  1033. package/dist/esm/node_modules/css-what/lib/es/parse.js.map +0 -1
  1034. package/dist/esm/node_modules/css-what/lib/es/types.js +0 -29
  1035. package/dist/esm/node_modules/css-what/lib/es/types.js.map +0 -1
  1036. package/dist/esm/node_modules/cssesc/cssesc.js +0 -120
  1037. package/dist/esm/node_modules/cssesc/cssesc.js.map +0 -1
  1038. package/dist/esm/node_modules/dedent/dist/dedent.js +0 -100
  1039. package/dist/esm/node_modules/dedent/dist/dedent.js.map +0 -1
  1040. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js +0 -40
  1041. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js.map +0 -1
  1042. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js +0 -9
  1043. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js.map +0 -1
  1044. package/dist/esm/node_modules/deepmerge/dist/cjs.js +0 -143
  1045. package/dist/esm/node_modules/deepmerge/dist/cjs.js.map +0 -1
  1046. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js +0 -1386
  1047. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js.map +0 -1
  1048. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js +0 -102
  1049. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js.map +0 -1
  1050. package/dist/esm/node_modules/picocolors/picocolors.js +0 -87
  1051. package/dist/esm/node_modules/picocolors/picocolors.js.map +0 -1
  1052. package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +0 -5
  1053. package/dist/types/components/navigation/Menu/useMenu.d.ts +0 -16
@@ -0,0 +1,191 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React, { useRef, useCallback, useMemo, useSyncExternalStore, useLayoutEffect } from 'react';
4
+ import { useViewportStore } from '../../primitives/viewport/ViewportContext.js';
5
+ import '../../../utils/devWarn.js';
6
+ import { useResizeObserver } from '../../../hooks/useResizeObserver/useResizeObserver.js';
7
+ import '../../../hooks/useBreakpoint/useBreakpoint.js';
8
+ import './../../../assets/src/theme/lightTheme.css.ts.vanilla-Ct6f9Iym.css';
9
+ import '@vanilla-extract/css';
10
+ import './../../../assets/src/theme/darkTheme.css.ts.vanilla-BHZ3ecRn.css';
11
+ import './../../../assets/src/theme/globalScrollbars.css.ts.vanilla-BAJwnUEJ.css';
12
+ import '../../../hooks/useNavigationHistory/useNavigationHistory.js';
13
+ import { cx } from '../../../utils/cx.js';
14
+ import { portSlotRecipe } from './NodeGraph.css.js';
15
+ import { useNodeGraphStore } from './NodeGraphContext.js';
16
+ import { useNodeGraphNodeContext } from './NodeGraphNodeContext.js';
17
+ import { useNodeGraphNodeSection } from './NodeGraphNodeSectionContext.js';
18
+ import { NodeGraphPortVisual } from './NodeGraphPortVisual.js';
19
+ import { useStoreSlice } from './useStoreSlice.js';
20
+
21
+ const EMPTY_VISUAL = {
22
+ isSource: false,
23
+ isCandidate: false,
24
+ isInvalid: false,
25
+ isHovered: false,
26
+ };
27
+ function visualEqual(a, b) {
28
+ return (a.isSource === b.isSource &&
29
+ a.isCandidate === b.isCandidate &&
30
+ a.isInvalid === b.isInvalid &&
31
+ a.isHovered === b.isHovered);
32
+ }
33
+ /**
34
+ * `<NodeGraph.Port>` — compound slot that declares a connection endpoint
35
+ * for the current node. Render it anywhere inside `renderNode`; the
36
+ * library measures its DOM position, registers it as the anchor for any
37
+ * edge that references this port id, and wires pointer events so the
38
+ * user can drag from it to start a connection.
39
+ *
40
+ * The slot renders a single `<span>` with `display: inline-flex` — drop
41
+ * it inline next to a label and it will sit beside the text. The wrapper
42
+ * carries the default UE-style circle / exec-triangle visual; pass
43
+ * `children` to replace the chrome entirely (state for theming is
44
+ * exposed via `data-port-*` attributes).
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * <NodeGraph.Port id="in" side="left" dataType="exec" />
49
+ * ```
50
+ *
51
+ * Wrapped in `React.memo` — ports re-mount on every consumer `renderNode`
52
+ * call by default, so memoization only helps consumers who memoize their
53
+ * own node body. When they do, ports skip re-renders on unrelated store
54
+ * updates entirely.
55
+ */
56
+ function NodeGraphPortImpl({ id, side, dataType, shape = 'circle', color, filled, children, label, className, style, }) {
57
+ const { nodeId, onPortPointerDown } = useNodeGraphNodeContext();
58
+ const { collapsed } = useNodeGraphNodeSection();
59
+ const store = useNodeGraphStore();
60
+ const viewportStore = useViewportStore();
61
+ const elementRef = useRef(null);
62
+ // ── Connected state (slice subscription — only flips re-render) ──
63
+ // The store recomputes the connected-ports index when edges change, so
64
+ // each port re-renders only when its own connected-ness actually flips.
65
+ const connected = useStoreSlice(store.subscribeConnectedPorts, store.getConnectedPorts, () => store.isPortConnected(nodeId, id));
66
+ // ── Per-port visual state (slice subscription — no re-render storm) ──
67
+ const visual = useStoreSlice(store.subscribeInteraction, store.getInteraction, interaction => {
68
+ if (interaction.kind !== 'connect')
69
+ return EMPTY_VISUAL;
70
+ const isSource = interaction.source.node === nodeId && interaction.source.port === id;
71
+ const isCandidate = interaction.candidate !== null &&
72
+ interaction.candidate.node === nodeId &&
73
+ interaction.candidate.port === id;
74
+ if (!isSource && !isCandidate)
75
+ return EMPTY_VISUAL;
76
+ return {
77
+ isSource,
78
+ isCandidate,
79
+ isInvalid: isCandidate && interaction.invalid,
80
+ isHovered: false,
81
+ };
82
+ }, visualEqual);
83
+ const hoverState = useStoreSlice(store.subscribeHover, store.getHover, hover => ({
84
+ ...EMPTY_VISUAL,
85
+ isHovered: hover.hoveredPort !== null &&
86
+ hover.hoveredPort.node === nodeId &&
87
+ hover.hoveredPort.port === id,
88
+ }), visualEqual);
89
+ const isHovered = hoverState.isHovered;
90
+ const isSource = visual.isSource;
91
+ const isCandidate = visual.isCandidate;
92
+ const isInvalid = visual.isInvalid;
93
+ // ── DOM measurement → store ──
94
+ //
95
+ // Run synchronously before paint so first frame's edges anchor at the
96
+ // correct point. `useResizeObserver` picks up later size changes on the
97
+ // port itself, and the per-node layout-version subscription below picks
98
+ // up layout shifts inside the node body that move the port without
99
+ // resizing it (e.g. a sibling row expands).
100
+ //
101
+ // `closest('[data-node-id]:not([data-port-id])')` skips the slot itself
102
+ // — the slot wrapper carries `data-node-id` too (so connection-drop
103
+ // hit-tests can walk up from any descendant), so a plain `[data-node-id]`
104
+ // would match the port and report position (~6, ~6) for every port.
105
+ const measure = useCallback(() => {
106
+ // Inside a collapsed section the port is hidden; drop its registered
107
+ // position so its edges hide too (re-registers on expand). The component
108
+ // stays mounted, so no remount churn.
109
+ if (collapsed) {
110
+ store.removePortPosition(nodeId, id);
111
+ return;
112
+ }
113
+ const el = elementRef.current;
114
+ if (!el)
115
+ return;
116
+ const wrapper = el.closest('[data-node-id]:not([data-port-id])');
117
+ if (!wrapper)
118
+ return;
119
+ const portRect = el.getBoundingClientRect();
120
+ const nodeRect = wrapper.getBoundingClientRect();
121
+ // Convert from screen pixels to node-local world units. `ViewportWorld`
122
+ // applies `transform: scale(zoom)` to all node wrappers, so the rects
123
+ // we just read are scaled by `zoom`. Dividing brings us back to the
124
+ // un-scaled layout pixels, which are 1:1 with world units inside a node.
125
+ const zoom = viewportStore.getTransform().zoom || 1;
126
+ const x = (portRect.left + portRect.width / 2 - nodeRect.left) / zoom;
127
+ const y = (portRect.top + portRect.height / 2 - nodeRect.top) / zoom;
128
+ store.setPortPosition(nodeId, id, { x, y, side, dataType });
129
+ }, [store, viewportStore, nodeId, id, side, dataType, collapsed]);
130
+ // Re-measure triggers (the per-port `ResizeObserver` only fires when
131
+ // the port's own size changes, which misses layout shifts inside the
132
+ // node body that move the port without resizing it — e.g. a sibling
133
+ // row expanding). Subscribing to the per-node measured size makes this
134
+ // component re-render on every wrapper resize, and the layout effect
135
+ // below re-runs the measurement.
136
+ const getMeasuredForNode = useMemo(() => () => store.getMeasuredSize(nodeId), [store, nodeId]);
137
+ const measuredSize = useSyncExternalStore(store.subscribeMeasuredSizes, getMeasuredForNode);
138
+ useLayoutEffect(() => {
139
+ measure();
140
+ }, [measure, measuredSize]);
141
+ useResizeObserver(elementRef, () => {
142
+ measure();
143
+ });
144
+ // Unregister on unmount / id change.
145
+ useLayoutEffect(() => {
146
+ return () => {
147
+ store.removePortPosition(nodeId, id);
148
+ };
149
+ }, [store, nodeId, id]);
150
+ // ── Hover wiring ──
151
+ //
152
+ // Update the store's `hoveredPort` slice on enter/leave so node bodies,
153
+ // edges, and other ports can react. Library guards against duplicate
154
+ // notifications when the value doesn't actually change.
155
+ const onPointerEnter = useCallback(() => {
156
+ const current = store.getHover();
157
+ if (current.hoveredPort?.node === nodeId && current.hoveredPort.port === id)
158
+ return;
159
+ store.setHover({ ...current, hoveredPort: { node: nodeId, port: id } });
160
+ }, [store, nodeId, id]);
161
+ const onPointerLeave = useCallback(() => {
162
+ const current = store.getHover();
163
+ if (current.hoveredPort?.node !== nodeId || current.hoveredPort.port !== id)
164
+ return;
165
+ store.setHover({ ...current, hoveredPort: null });
166
+ }, [store, nodeId, id]);
167
+ const handlePointerDown = useCallback((event) => {
168
+ onPortPointerDown(event, id);
169
+ }, [onPortPointerDown, id]);
170
+ const hasCustomVisual = children !== undefined && children !== null;
171
+ const isFilled = filled ?? connected;
172
+ // Route the consumer's `color` into the slot via a CSS custom property so
173
+ // the built-in visual (which paints with `currentColor`) picks it up,
174
+ // while the source / candidate / invalid recipe variants can still
175
+ // override `color` to keep connection-drag feedback visible.
176
+ const portStyle = color !== undefined
177
+ ? { ['--etui-ng-port-color']: color, ...style }
178
+ : style;
179
+ return (jsx("span", { ref: elementRef, role: "button", tabIndex: -1, "aria-label": label ?? `${side} port ${id}`, "data-node-id": nodeId, "data-port-id": id, "data-port-side": side, "data-port-data-type": dataType, "data-port-source": isSource || undefined, "data-port-candidate": isCandidate || undefined, "data-port-invalid": isInvalid || undefined, "data-port-hovered": isHovered || undefined, "data-port-connected": connected || undefined, className: cx(portSlotRecipe({
180
+ side,
181
+ custom: hasCustomVisual,
182
+ source: isSource,
183
+ candidate: isCandidate,
184
+ invalid: isInvalid,
185
+ }), className), style: portStyle, onPointerDown: handlePointerDown, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, children: hasCustomVisual ? (children) : (jsx(NodeGraphPortVisual, { shape: shape, filled: isFilled })) }));
186
+ }
187
+ const NodeGraphPort = React.memo(NodeGraphPortImpl);
188
+ NodeGraphPort.displayName = 'NodeGraphPort';
189
+
190
+ export { NodeGraphPort };
191
+ //# sourceMappingURL=NodeGraphPort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeGraphPort.js","sources":["src/components/editor/NodeGraph/NodeGraphPort.tsx"],"sourcesContent":["'use client';\n\nimport React, {\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from 'react';\n\nimport { useViewportStore } from '@/components/primitives/viewport/ViewportContext';\nimport { useResizeObserver } from '@/hooks';\nimport { cx } from '@/utils/cx';\n\nimport { portSlotRecipe } from './NodeGraph.css';\nimport { useNodeGraphStore } from './NodeGraphContext';\nimport { useNodeGraphNodeContext } from './NodeGraphNodeContext';\nimport { useNodeGraphNodeSection } from './NodeGraphNodeSectionContext';\nimport { NodeGraphPortVisual } from './NodeGraphPortVisual';\nimport { useStoreSlice } from './useStoreSlice';\n\nimport type { NodeGraphPortSlotProps } from './NodeGraph.types';\n\ninterface PortVisualState {\n isSource: boolean;\n isCandidate: boolean;\n isInvalid: boolean;\n isHovered: boolean;\n}\n\nconst EMPTY_VISUAL: PortVisualState = {\n isSource: false,\n isCandidate: false,\n isInvalid: false,\n isHovered: false,\n};\n\nfunction visualEqual(a: PortVisualState, b: PortVisualState): boolean {\n return (\n a.isSource === b.isSource &&\n a.isCandidate === b.isCandidate &&\n a.isInvalid === b.isInvalid &&\n a.isHovered === b.isHovered\n );\n}\n\n/**\n * `<NodeGraph.Port>` — compound slot that declares a connection endpoint\n * for the current node. Render it anywhere inside `renderNode`; the\n * library measures its DOM position, registers it as the anchor for any\n * edge that references this port id, and wires pointer events so the\n * user can drag from it to start a connection.\n *\n * The slot renders a single `<span>` with `display: inline-flex` — drop\n * it inline next to a label and it will sit beside the text. The wrapper\n * carries the default UE-style circle / exec-triangle visual; pass\n * `children` to replace the chrome entirely (state for theming is\n * exposed via `data-port-*` attributes).\n *\n * @example\n * ```tsx\n * <NodeGraph.Port id=\"in\" side=\"left\" dataType=\"exec\" />\n * ```\n *\n * Wrapped in `React.memo` — ports re-mount on every consumer `renderNode`\n * call by default, so memoization only helps consumers who memoize their\n * own node body. When they do, ports skip re-renders on unrelated store\n * updates entirely.\n */\nfunction NodeGraphPortImpl({\n id,\n side,\n dataType,\n shape = 'circle',\n color,\n filled,\n children,\n label,\n className,\n style,\n}: NodeGraphPortSlotProps): React.ReactElement {\n const { nodeId, onPortPointerDown } = useNodeGraphNodeContext();\n const { collapsed } = useNodeGraphNodeSection();\n const store = useNodeGraphStore();\n const viewportStore = useViewportStore();\n const elementRef = useRef<HTMLSpanElement>(null);\n\n // ── Connected state (slice subscription — only flips re-render) ──\n // The store recomputes the connected-ports index when edges change, so\n // each port re-renders only when its own connected-ness actually flips.\n const connected = useStoreSlice(\n store.subscribeConnectedPorts,\n store.getConnectedPorts,\n () => store.isPortConnected(nodeId, id)\n );\n\n // ── Per-port visual state (slice subscription — no re-render storm) ──\n const visual = useStoreSlice(\n store.subscribeInteraction,\n store.getInteraction,\n interaction => {\n if (interaction.kind !== 'connect') return EMPTY_VISUAL;\n const isSource =\n interaction.source.node === nodeId && interaction.source.port === id;\n const isCandidate =\n interaction.candidate !== null &&\n interaction.candidate.node === nodeId &&\n interaction.candidate.port === id;\n if (!isSource && !isCandidate) return EMPTY_VISUAL;\n return {\n isSource,\n isCandidate,\n isInvalid: isCandidate && interaction.invalid,\n isHovered: false,\n };\n },\n visualEqual\n );\n\n const hoverState = useStoreSlice(\n store.subscribeHover,\n store.getHover,\n hover => ({\n ...EMPTY_VISUAL,\n isHovered:\n hover.hoveredPort !== null &&\n hover.hoveredPort.node === nodeId &&\n hover.hoveredPort.port === id,\n }),\n visualEqual\n );\n\n const isHovered = hoverState.isHovered;\n const isSource = visual.isSource;\n const isCandidate = visual.isCandidate;\n const isInvalid = visual.isInvalid;\n\n // ── DOM measurement → store ──\n //\n // Run synchronously before paint so first frame's edges anchor at the\n // correct point. `useResizeObserver` picks up later size changes on the\n // port itself, and the per-node layout-version subscription below picks\n // up layout shifts inside the node body that move the port without\n // resizing it (e.g. a sibling row expands).\n //\n // `closest('[data-node-id]:not([data-port-id])')` skips the slot itself\n // — the slot wrapper carries `data-node-id` too (so connection-drop\n // hit-tests can walk up from any descendant), so a plain `[data-node-id]`\n // would match the port and report position (~6, ~6) for every port.\n const measure = useCallback((): void => {\n // Inside a collapsed section the port is hidden; drop its registered\n // position so its edges hide too (re-registers on expand). The component\n // stays mounted, so no remount churn.\n if (collapsed) {\n store.removePortPosition(nodeId, id);\n return;\n }\n const el = elementRef.current;\n if (!el) return;\n const wrapper = el.closest('[data-node-id]:not([data-port-id])');\n if (!wrapper) return;\n const portRect = el.getBoundingClientRect();\n const nodeRect = wrapper.getBoundingClientRect();\n // Convert from screen pixels to node-local world units. `ViewportWorld`\n // applies `transform: scale(zoom)` to all node wrappers, so the rects\n // we just read are scaled by `zoom`. Dividing brings us back to the\n // un-scaled layout pixels, which are 1:1 with world units inside a node.\n const zoom = viewportStore.getTransform().zoom || 1;\n const x = (portRect.left + portRect.width / 2 - nodeRect.left) / zoom;\n const y = (portRect.top + portRect.height / 2 - nodeRect.top) / zoom;\n store.setPortPosition(nodeId, id, { x, y, side, dataType });\n }, [store, viewportStore, nodeId, id, side, dataType, collapsed]);\n\n // Re-measure triggers (the per-port `ResizeObserver` only fires when\n // the port's own size changes, which misses layout shifts inside the\n // node body that move the port without resizing it — e.g. a sibling\n // row expanding). Subscribing to the per-node measured size makes this\n // component re-render on every wrapper resize, and the layout effect\n // below re-runs the measurement.\n const getMeasuredForNode = useMemo(\n () => () => store.getMeasuredSize(nodeId),\n [store, nodeId]\n );\n const measuredSize = useSyncExternalStore(\n store.subscribeMeasuredSizes,\n getMeasuredForNode\n );\n\n useLayoutEffect(() => {\n measure();\n }, [measure, measuredSize]);\n\n useResizeObserver(elementRef, () => {\n measure();\n });\n\n // Unregister on unmount / id change.\n useLayoutEffect(() => {\n return () => {\n store.removePortPosition(nodeId, id);\n };\n }, [store, nodeId, id]);\n\n // ── Hover wiring ──\n //\n // Update the store's `hoveredPort` slice on enter/leave so node bodies,\n // edges, and other ports can react. Library guards against duplicate\n // notifications when the value doesn't actually change.\n const onPointerEnter = useCallback((): void => {\n const current = store.getHover();\n if (current.hoveredPort?.node === nodeId && current.hoveredPort.port === id)\n return;\n store.setHover({ ...current, hoveredPort: { node: nodeId, port: id } });\n }, [store, nodeId, id]);\n\n const onPointerLeave = useCallback((): void => {\n const current = store.getHover();\n if (current.hoveredPort?.node !== nodeId || current.hoveredPort.port !== id)\n return;\n store.setHover({ ...current, hoveredPort: null });\n }, [store, nodeId, id]);\n\n const handlePointerDown = useCallback(\n (event: React.PointerEvent<HTMLSpanElement>): void => {\n onPortPointerDown(event, id);\n },\n [onPortPointerDown, id]\n );\n\n const hasCustomVisual = children !== undefined && children !== null;\n const isFilled = filled ?? connected;\n\n // Route the consumer's `color` into the slot via a CSS custom property so\n // the built-in visual (which paints with `currentColor`) picks it up,\n // while the source / candidate / invalid recipe variants can still\n // override `color` to keep connection-drag feedback visible.\n const portStyle: React.CSSProperties | undefined =\n color !== undefined\n ? { ['--etui-ng-port-color' as string]: color, ...style }\n : style;\n\n return (\n <span\n ref={elementRef}\n role=\"button\"\n tabIndex={-1}\n aria-label={label ?? `${side} port ${id}`}\n data-node-id={nodeId}\n data-port-id={id}\n data-port-side={side}\n data-port-data-type={dataType}\n data-port-source={isSource || undefined}\n data-port-candidate={isCandidate || undefined}\n data-port-invalid={isInvalid || undefined}\n data-port-hovered={isHovered || undefined}\n data-port-connected={connected || undefined}\n className={cx(\n portSlotRecipe({\n side,\n custom: hasCustomVisual,\n source: isSource,\n candidate: isCandidate,\n invalid: isInvalid,\n }),\n className\n )}\n style={portStyle}\n onPointerDown={handlePointerDown}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n >\n {hasCustomVisual ? (\n children\n ) : (\n <NodeGraphPortVisual shape={shape} filled={isFilled} />\n )}\n </span>\n );\n}\n\nexport const NodeGraphPort = React.memo(NodeGraphPortImpl);\nNodeGraphPort.displayName = 'NodeGraphPort';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA;AACE;AACA;AACA;AACA;;AAGF;AACE;AAEE;AACA;AACA;AAEJ;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH;;AAaE;AACA;AACA;AACA;;;;;;AAYA;AAII;AAAoC;AACpC;AAEA;AAEE;AACA;AACF;AAA+B;;;;AAI7B;AACA;;;AAMN;AAII;AACA;AAEE;AACA;;AAKN;AACA;AACA;AACA;;;;;;;;;;;;;AAcA;;;;;AAKI;;;AAGF;AACA;;;AAEA;;AACA;AACA;;;;;;AAMA;AACA;AACA;AACF;;;;;;;;;;AAkBE;AACF;AAEA;AACE;AACF;;;AAIE;AACE;AACF;;;;;;;AAQF;AACE;AACA;;;;AAKF;AACE;AACA;;AAEA;;AAGF;AAEI;AACF;;AAKF;;;;;AAMA;;;;;AAuBQ;AACA;AACA;AACA;;AAgBV;AAEO;AACP;;"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // All shapes are authored in a 16×16 user space and scaled to `size`, so a
5
+ // single stroke width reads consistently across shapes.
6
+ const VIEW = 16;
7
+ const STROKE = 2;
8
+ function shapeElement(shape, stroke, fill) {
9
+ const common = {
10
+ stroke,
11
+ fill,
12
+ strokeWidth: STROKE,
13
+ strokeLinejoin: 'round',
14
+ };
15
+ switch (shape) {
16
+ case 'square':
17
+ return jsx("rect", { x: 3, y: 3, width: 10, height: 10, rx: 1.5, ...common });
18
+ case 'diamond':
19
+ return jsx("polygon", { points: "8,2 14,8 8,14 2,8", ...common });
20
+ case 'triangle':
21
+ // Right-pointing exec/flow arrow (UE Blueprint convention).
22
+ return jsx("polygon", { points: "3,2.5 13.5,8 3,13.5", ...common });
23
+ case 'circle':
24
+ default:
25
+ return jsx("circle", { cx: 8, cy: 8, r: 5, ...common });
26
+ }
27
+ }
28
+ /**
29
+ * Presentational handle shape for a node-graph port. Rendered by
30
+ * `<NodeGraph.Port>` when no `children` are supplied, and exported so
31
+ * consumers can reuse the exact handle look inside fully custom port
32
+ * visuals (e.g. a coloured ring beside a typed label).
33
+ *
34
+ * The shape paints with `currentColor` unless `color` is set, which lets
35
+ * the port slot drive the colour from its `color` prop and override it on
36
+ * the connection-drag states without this component knowing about them.
37
+ */
38
+ function NodeGraphPortVisual({ shape = 'circle', color, filled = false, size = 14, className, style, }) {
39
+ const stroke = color ?? 'currentColor';
40
+ const fill = filled ? (color ?? 'currentColor') : 'none';
41
+ return (jsx("svg", { width: size, height: size, viewBox: `0 0 ${VIEW} ${VIEW}`, className: className, style: { display: 'block', overflow: 'visible', ...style }, "aria-hidden": "true", focusable: "false", children: shapeElement(shape, stroke, fill) }));
42
+ }
43
+ NodeGraphPortVisual.displayName = 'NodeGraphPortVisual';
44
+
45
+ export { NodeGraphPortVisual };
46
+ //# sourceMappingURL=NodeGraphPortVisual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeGraphPortVisual.js","sources":["src/components/editor/NodeGraph/NodeGraphPortVisual.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport type { NodeGraphPortShape } from './NodeGraph.types';\n\nexport interface NodeGraphPortVisualProps {\n /**\n * Handle shape. @default 'circle'\n */\n shape?: NodeGraphPortShape;\n /**\n * Stroke / fill colour. Defaults to `currentColor` so the parent\n * `<NodeGraph.Port>` can route its colour prop and interaction-state\n * colours (source / candidate / invalid) into the shape via the CSS\n * `color` cascade. Pass an explicit colour when using the visual\n * standalone (outside a port slot).\n */\n color?: string;\n /**\n * Filled (`true`) paints the interior; hollow (`false`) draws an outline\n * only — the standard \"wired vs unwired pin\" convention.\n * @default false\n */\n filled?: boolean;\n /**\n * Box size in CSS pixels. @default 14\n */\n size?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\n// All shapes are authored in a 16×16 user space and scaled to `size`, so a\n// single stroke width reads consistently across shapes.\nconst VIEW = 16;\nconst STROKE = 2;\n\nfunction shapeElement(\n shape: NodeGraphPortShape,\n stroke: string,\n fill: string\n): React.ReactElement {\n const common = {\n stroke,\n fill,\n strokeWidth: STROKE,\n strokeLinejoin: 'round' as const,\n };\n switch (shape) {\n case 'square':\n return <rect x={3} y={3} width={10} height={10} rx={1.5} {...common} />;\n case 'diamond':\n return <polygon points=\"8,2 14,8 8,14 2,8\" {...common} />;\n case 'triangle':\n // Right-pointing exec/flow arrow (UE Blueprint convention).\n return <polygon points=\"3,2.5 13.5,8 3,13.5\" {...common} />;\n case 'circle':\n default:\n return <circle cx={8} cy={8} r={5} {...common} />;\n }\n}\n\n/**\n * Presentational handle shape for a node-graph port. Rendered by\n * `<NodeGraph.Port>` when no `children` are supplied, and exported so\n * consumers can reuse the exact handle look inside fully custom port\n * visuals (e.g. a coloured ring beside a typed label).\n *\n * The shape paints with `currentColor` unless `color` is set, which lets\n * the port slot drive the colour from its `color` prop and override it on\n * the connection-drag states without this component knowing about them.\n */\nexport function NodeGraphPortVisual({\n shape = 'circle',\n color,\n filled = false,\n size = 14,\n className,\n style,\n}: NodeGraphPortVisualProps): React.ReactElement {\n const stroke = color ?? 'currentColor';\n const fill = filled ? (color ?? 'currentColor') : 'none';\n return (\n <svg\n width={size}\n height={size}\n viewBox={`0 0 ${VIEW} ${VIEW}`}\n className={className}\n style={{ display: 'block', overflow: 'visible', ...style }}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {shapeElement(shape, stroke, fill)}\n </svg>\n );\n}\n\nNodeGraphPortVisual.displayName = 'NodeGraphPortVisual';\n"],"names":[],"mappings":";;;AAiCA;AACA;AACA;AACA;AAEA;AAKE;;;AAGE;AACA;;;AAGA;;AAEA;AACE;AACF;;AAEE;AACF;AACA;AACE;;AAEN;AAEA;;;;;;;;;AASG;AACG;AAQJ;AACA;;AAcF;AAEA;;"}
@@ -0,0 +1,50 @@
1
+ import { NODE_GRAPH_SLOT } from './NodeGraph.types.js';
2
+
3
+ /**
4
+ * Marker behind `<NodeGraph.Minimap>` — returns `null` and carries a Symbol
5
+ * the parent uses to identify it inside `children`. The actual minimap is
6
+ * mounted by `NodeGraph` itself as `<NodeGraphMinimapInner>`.
7
+ *
8
+ * Pure marker, no hooks — kept out of any `'use client'` boundary so RSC
9
+ * frameworks can keep the type-level slot identity on the server.
10
+ */
11
+ const NodeGraphMinimapImpl = () => null;
12
+ const NodeGraphMinimap = Object.assign(NodeGraphMinimapImpl, {
13
+ displayName: 'NodeGraph.Minimap',
14
+ [NODE_GRAPH_SLOT]: 'minimap',
15
+ });
16
+ /**
17
+ * Marker behind `<NodeGraph.Background>` — see {@link NodeGraphMinimap} for
18
+ * the rationale. The parent picks this up and mounts the background canvas
19
+ * layer in the correct position in the layer stack.
20
+ */
21
+ const NodeGraphBackgroundImpl = () => null;
22
+ const NodeGraphBackground = Object.assign(NodeGraphBackgroundImpl, {
23
+ displayName: 'NodeGraph.Background',
24
+ [NODE_GRAPH_SLOT]: 'background',
25
+ });
26
+ /**
27
+ * Marker behind `<NodeGraph.Toolbar>` — picked up from `<NodeGraph>` children
28
+ * and mounted into the viewport overlay layer at the requested
29
+ * placement. Children render via `<NodeGraphToolbarInner>` which keeps
30
+ * the toolbar positioned over the graph.
31
+ */
32
+ const NodeGraphToolbarImpl = () => null;
33
+ const NodeGraphToolbar = Object.assign(NodeGraphToolbarImpl, {
34
+ displayName: 'NodeGraph.Toolbar',
35
+ [NODE_GRAPH_SLOT]: 'toolbar',
36
+ });
37
+ /**
38
+ * Marker behind `<NodeGraph.SpawnPalette>` — picked up by the parent
39
+ * and mounted as a portal-rendered fuzzy-search palette. Auto-opens on
40
+ * right-click of empty / group targets via the store's spawn-request
41
+ * channel.
42
+ */
43
+ const NodeGraphSpawnPaletteImpl = () => null;
44
+ const NodeGraphSpawnPalette = Object.assign(NodeGraphSpawnPaletteImpl, {
45
+ displayName: 'NodeGraph.SpawnPalette',
46
+ [NODE_GRAPH_SLOT]: 'spawn-palette',
47
+ });
48
+
49
+ export { NodeGraphBackground, NodeGraphMinimap, NodeGraphSpawnPalette, NodeGraphToolbar };
50
+ //# sourceMappingURL=NodeGraphSlots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeGraphSlots.js","sources":["src/components/editor/NodeGraph/NodeGraphSlots.ts"],"sourcesContent":["import { NODE_GRAPH_SLOT } from './NodeGraph.types';\n\nimport type {\n NodeGraphBackgroundSlotProps,\n NodeGraphMinimapSlotProps,\n NodeGraphSlotMarker,\n NodeGraphSpawnPaletteSlotProps,\n NodeGraphToolbarSlotProps,\n} from './NodeGraph.types';\n\n/**\n * Marker behind `<NodeGraph.Minimap>` — returns `null` and carries a Symbol\n * the parent uses to identify it inside `children`. The actual minimap is\n * mounted by `NodeGraph` itself as `<NodeGraphMinimapInner>`.\n *\n * Pure marker, no hooks — kept out of any `'use client'` boundary so RSC\n * frameworks can keep the type-level slot identity on the server.\n */\nconst NodeGraphMinimapImpl: (props: NodeGraphMinimapSlotProps) => null = () =>\n null;\n\nexport const NodeGraphMinimap = Object.assign(NodeGraphMinimapImpl, {\n displayName: 'NodeGraph.Minimap',\n [NODE_GRAPH_SLOT]: 'minimap' as const,\n}) as unknown as ((props: NodeGraphMinimapSlotProps) => null) &\n NodeGraphSlotMarker & { displayName: string };\n\n/**\n * Marker behind `<NodeGraph.Background>` — see {@link NodeGraphMinimap} for\n * the rationale. The parent picks this up and mounts the background canvas\n * layer in the correct position in the layer stack.\n */\nconst NodeGraphBackgroundImpl: (\n props: NodeGraphBackgroundSlotProps\n) => null = () => null;\n\nexport const NodeGraphBackground = Object.assign(NodeGraphBackgroundImpl, {\n displayName: 'NodeGraph.Background',\n [NODE_GRAPH_SLOT]: 'background' as const,\n}) as unknown as ((props: NodeGraphBackgroundSlotProps) => null) &\n NodeGraphSlotMarker & { displayName: string };\n\n/**\n * Marker behind `<NodeGraph.Toolbar>` — picked up from `<NodeGraph>` children\n * and mounted into the viewport overlay layer at the requested\n * placement. Children render via `<NodeGraphToolbarInner>` which keeps\n * the toolbar positioned over the graph.\n */\nconst NodeGraphToolbarImpl: (props: NodeGraphToolbarSlotProps) => null = () =>\n null;\n\nexport const NodeGraphToolbar = Object.assign(NodeGraphToolbarImpl, {\n displayName: 'NodeGraph.Toolbar',\n [NODE_GRAPH_SLOT]: 'toolbar' as const,\n}) as unknown as ((props: NodeGraphToolbarSlotProps) => null) &\n NodeGraphSlotMarker & { displayName: string };\n\n/**\n * Marker behind `<NodeGraph.SpawnPalette>` — picked up by the parent\n * and mounted as a portal-rendered fuzzy-search palette. Auto-opens on\n * right-click of empty / group targets via the store's spawn-request\n * channel.\n */\nconst NodeGraphSpawnPaletteImpl: (\n props: NodeGraphSpawnPaletteSlotProps\n) => null = () => null;\n\nexport const NodeGraphSpawnPalette = Object.assign(NodeGraphSpawnPaletteImpl, {\n displayName: 'NodeGraph.SpawnPalette',\n [NODE_GRAPH_SLOT]: 'spawn-palette' as const,\n}) as unknown as ((props: NodeGraphSpawnPaletteSlotProps) => null) &\n NodeGraphSlotMarker & { displayName: string };\n"],"names":[],"mappings":";;AAUA;;;;;;;AAOG;AACH,MAAM,oBAAoB,GAA+C,MACvE,IAAI;MAEO,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE;AAClE,IAAA,WAAW,EAAE,mBAAmB;IAChC,CAAC,eAAe,GAAG,SAAkB;AACtC,CAAA;AAGD;;;;AAIG;AACH,MAAM,uBAAuB,GAEjB,MAAM,IAAI;MAET,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE;AACxE,IAAA,WAAW,EAAE,sBAAsB;IACnC,CAAC,eAAe,GAAG,YAAqB;AACzC,CAAA;AAGD;;;;;AAKG;AACH,MAAM,oBAAoB,GAA+C,MACvE,IAAI;MAEO,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE;AAClE,IAAA,WAAW,EAAE,mBAAmB;IAChC,CAAC,eAAe,GAAG,SAAkB;AACtC,CAAA;AAGD;;;;;AAKG;AACH,MAAM,yBAAyB,GAEnB,MAAM,IAAI;MAET,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;AAC5E,IAAA,WAAW,EAAE,wBAAwB;IACrC,CAAC,eAAe,GAAG,eAAwB;AAC5C,CAAA;;;;"}
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useState, useEffect, useMemo, useCallback } from 'react';
4
+ import { CommandPalette } from '../../feedback/CommandPalette/CommandPalette.js';
5
+ import { useNodeGraphStore } from './NodeGraphContext.js';
6
+ import { generateNodeId } from './nodeGraphIds.js';
7
+
8
+ /**
9
+ * Live renderer for `<NodeGraph.SpawnPalette>`. Mounted by the parent
10
+ * when the slot is present in `<NodeGraph>` children. Subscribes to the
11
+ * store's spawn-request channel — the main `NodeGraph` component fires
12
+ * the request when the user right-clicks empty space or a group, so
13
+ * the consumer doesn't need to wire context-menu state through React.
14
+ *
15
+ * Selection on a template:
16
+ * 1. Calls `template.build(worldPoint)` to get the node body
17
+ * 2. Assigns a unique id
18
+ * 3. Hands the full node to `onSpawn(node, ctx)` — typically appends
19
+ * to the consumer's `nodes` state
20
+ * 4. Closes the palette
21
+ */
22
+ function NodeGraphSpawnPaletteInner({ templates, onSpawn, placeholder = 'Search nodes…', recentKey, width = 400, maxHeight = 360, }) {
23
+ const store = useNodeGraphStore();
24
+ const [open, setOpen] = useState(false);
25
+ const [spawnAt, setSpawnAt] = useState(null);
26
+ // Listen for "user wants to spawn a node here" pings from the main
27
+ // NodeGraph component (fired from its handleContextMenu for empty /
28
+ // group targets). Multiple subscribers is fine — the store fans out.
29
+ useEffect(() => {
30
+ return store.subscribeSpawnRequest(info => {
31
+ setSpawnAt(info);
32
+ setOpen(true);
33
+ });
34
+ }, [store]);
35
+ const items = useMemo(() => {
36
+ return templates.map(t => ({
37
+ id: t.id,
38
+ label: t.title,
39
+ ...(t.subtitle !== undefined ? { description: t.subtitle } : {}),
40
+ ...(t.group !== undefined ? { group: t.group } : {}),
41
+ ...(t.keywords !== undefined ? { keywords: [...t.keywords] } : {}),
42
+ ...(t.icon !== undefined ? { icon: t.icon } : {}),
43
+ }));
44
+ }, [templates]);
45
+ const handleClose = useCallback(() => {
46
+ setOpen(false);
47
+ setSpawnAt(null);
48
+ }, []);
49
+ const handleSelect = useCallback((item) => {
50
+ const template = templates.find(t => t.id === item.id);
51
+ if (!template || !spawnAt)
52
+ return;
53
+ const worldPoint = spawnAt.worldPoint;
54
+ const draft = template.build(worldPoint);
55
+ const node = {
56
+ ...draft,
57
+ id: generateNodeId(template.id),
58
+ };
59
+ const ctx = {
60
+ worldPoint,
61
+ screenPoint: spawnAt.screenPoint,
62
+ };
63
+ onSpawn(node, ctx);
64
+ handleClose();
65
+ }, [templates, spawnAt, onSpawn, handleClose]);
66
+ return (jsx(CommandPalette, { open: open, onClose: handleClose, items: items, onSelect: handleSelect, placeholder: placeholder, ...(recentKey !== undefined ? { recentKey } : {}), width: width, maxHeight: maxHeight }));
67
+ }
68
+
69
+ export { NodeGraphSpawnPaletteInner };
70
+ //# sourceMappingURL=NodeGraphSpawnPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeGraphSpawnPalette.js","sources":["src/components/editor/NodeGraph/NodeGraphSpawnPalette.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { CommandPalette } from '@/components/feedback/CommandPalette/CommandPalette';\n\nimport { useNodeGraphStore } from './NodeGraphContext';\nimport { generateNodeId } from './nodeGraphIds';\n\nimport type {\n NodeGraphNode,\n NodeGraphSpawnContext,\n NodeGraphSpawnPaletteSlotProps,\n} from './NodeGraph.types';\nimport type { CommandItem } from '@/components/feedback/CommandPalette/CommandPalette.types';\nimport type { Point2D } from '@/components/primitives/canvas/canvas.types';\n\n/**\n * Live renderer for `<NodeGraph.SpawnPalette>`. Mounted by the parent\n * when the slot is present in `<NodeGraph>` children. Subscribes to the\n * store's spawn-request channel — the main `NodeGraph` component fires\n * the request when the user right-clicks empty space or a group, so\n * the consumer doesn't need to wire context-menu state through React.\n *\n * Selection on a template:\n * 1. Calls `template.build(worldPoint)` to get the node body\n * 2. Assigns a unique id\n * 3. Hands the full node to `onSpawn(node, ctx)` — typically appends\n * to the consumer's `nodes` state\n * 4. Closes the palette\n */\nexport function NodeGraphSpawnPaletteInner({\n templates,\n onSpawn,\n placeholder = 'Search nodes…',\n recentKey,\n width = 400,\n maxHeight = 360,\n}: NodeGraphSpawnPaletteSlotProps): React.ReactElement {\n const store = useNodeGraphStore();\n const [open, setOpen] = useState(false);\n const [spawnAt, setSpawnAt] = useState<{\n worldPoint: Point2D;\n screenPoint: Point2D;\n } | null>(null);\n\n // Listen for \"user wants to spawn a node here\" pings from the main\n // NodeGraph component (fired from its handleContextMenu for empty /\n // group targets). Multiple subscribers is fine — the store fans out.\n useEffect(() => {\n return store.subscribeSpawnRequest(info => {\n setSpawnAt(info);\n setOpen(true);\n });\n }, [store]);\n\n const items = useMemo<CommandItem[]>(() => {\n return templates.map(t => ({\n id: t.id,\n label: t.title,\n ...(t.subtitle !== undefined ? { description: t.subtitle } : {}),\n ...(t.group !== undefined ? { group: t.group } : {}),\n ...(t.keywords !== undefined ? { keywords: [...t.keywords] } : {}),\n ...(t.icon !== undefined ? { icon: t.icon } : {}),\n }));\n }, [templates]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setSpawnAt(null);\n }, []);\n\n const handleSelect = useCallback(\n (item: CommandItem): void => {\n const template = templates.find(t => t.id === item.id);\n if (!template || !spawnAt) return;\n const worldPoint = spawnAt.worldPoint;\n const draft = template.build(worldPoint);\n const node: NodeGraphNode = {\n ...draft,\n id: generateNodeId(template.id),\n };\n const ctx: NodeGraphSpawnContext = {\n worldPoint,\n screenPoint: spawnAt.screenPoint,\n };\n onSpawn(node, ctx);\n handleClose();\n },\n [templates, spawnAt, onSpawn, handleClose]\n );\n\n return (\n <CommandPalette\n open={open}\n onClose={handleClose}\n items={items}\n onSelect={handleSelect}\n placeholder={placeholder}\n {...(recentKey !== undefined ? { recentKey } : {})}\n width={width}\n maxHeight={maxHeight}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;AAiBA;;;;;;;;;;;;;AAaG;AACG;AAQJ;;;;;;;AAWE;;;AAGA;AACF;AAEA;;;;;;;;AAQG;AACH;AAEA;;;;AAKA;AAEI;AACA;;AACA;;AAEA;AACE;AACA;;AAEF;;;;AAIA;AACA;;;AAiBN;;"}