@likec4/diagram 1.60.0 → 1.61.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 (486) hide show
  1. package/README.md +63 -11
  2. package/dist/LikeC4Diagram.d.mts +4 -6
  3. package/dist/LikeC4Diagram.mjs +13 -12
  4. package/dist/LikeC4Diagram.props.d.mts +5 -7
  5. package/dist/LikeC4MantineProvider.d.mts +1 -2
  6. package/dist/LikeC4MantineProvider.mjs +26 -11
  7. package/dist/LikeC4ModelProvider.d.mts +1 -3
  8. package/dist/LikeC4ModelProvider.mjs +1 -2
  9. package/dist/LikeC4ProjectsOverview.d.mts +1 -3
  10. package/dist/LikeC4ProjectsOverview.mjs +1 -2
  11. package/dist/LikeC4ProjectsProvider.d.mts +1 -2
  12. package/dist/LikeC4ProjectsProvider.mjs +2 -3
  13. package/dist/LikeC4Styles.d.mts +1 -2
  14. package/dist/LikeC4Styles.mjs +11 -6
  15. package/dist/LikeC4View.d.mts +3 -5
  16. package/dist/LikeC4View.mjs +12 -11
  17. package/dist/ReactLikeC4.d.mts +3 -5
  18. package/dist/ReactLikeC4.mjs +8 -7
  19. package/dist/StaticLikeC4Diagram.d.mts +1 -3
  20. package/dist/StaticLikeC4Diagram.mjs +1 -2
  21. package/dist/_virtual/_rolldown/runtime.mjs +1 -2
  22. package/dist/base/Background.mjs +1 -2
  23. package/dist/base/Base.d.mts +1 -2
  24. package/dist/base/Base.mjs +1 -2
  25. package/dist/base/BaseXYFlow.mjs +12 -10
  26. package/dist/base/const.d.mts +1 -3
  27. package/dist/base/const.mjs +1 -2
  28. package/dist/base/keyboardZoom.mjs +1 -2
  29. package/dist/base/types.d.mts +2 -4
  30. package/dist/base/updateEdges.mjs +1 -2
  31. package/dist/base/updateNodes.mjs +1 -2
  32. package/dist/base-primitives/Markdown.d.mts +5 -5
  33. package/dist/base-primitives/Markdown.mjs +22 -11
  34. package/dist/base-primitives/NodeHandles.d.mts +1 -3
  35. package/dist/base-primitives/NodeHandles.mjs +1 -2
  36. package/dist/base-primitives/compound/CompoundActionButton.d.mts +1 -2
  37. package/dist/base-primitives/compound/CompoundActionButton.mjs +3 -4
  38. package/dist/base-primitives/compound/CompoundDetailsButton.d.mts +1 -2
  39. package/dist/base-primitives/compound/CompoundDetailsButton.mjs +3 -4
  40. package/dist/base-primitives/compound/CompoundNodeContainer.d.mts +1 -2
  41. package/dist/base-primitives/compound/CompoundNodeContainer.mjs +1 -2
  42. package/dist/base-primitives/compound/CompoundTitle.d.mts +1 -2
  43. package/dist/base-primitives/compound/CompoundTitle.mjs +1 -2
  44. package/dist/base-primitives/compound/actionbtns.css.mjs +1 -2
  45. package/dist/base-primitives/edge/EdgeActionButton.mjs +2 -3
  46. package/dist/base-primitives/edge/EdgeContainer.mjs +2 -3
  47. package/dist/base-primitives/edge/EdgeLabel.mjs +3 -3
  48. package/dist/base-primitives/edge/EdgeLabelContainer.mjs +2 -3
  49. package/dist/base-primitives/edge/EdgeMarkers.mjs +1 -2
  50. package/dist/base-primitives/edge/EdgePath.mjs +1 -2
  51. package/dist/base-primitives/element/ElementActionButtons.d.mts +1 -2
  52. package/dist/base-primitives/element/ElementActionButtons.mjs +2 -3
  53. package/dist/base-primitives/element/ElementData.d.mts +1 -2
  54. package/dist/base-primitives/element/ElementData.mjs +1 -2
  55. package/dist/base-primitives/element/ElementDetailsButton.d.mts +1 -2
  56. package/dist/base-primitives/element/ElementDetailsButton.mjs +2 -3
  57. package/dist/base-primitives/element/ElementNodeContainer.d.mts +1 -2
  58. package/dist/base-primitives/element/ElementNodeContainer.mjs +2 -3
  59. package/dist/base-primitives/element/ElementShape.d.mts +11 -6
  60. package/dist/base-primitives/element/ElementShape.mjs +10 -5
  61. package/dist/base-primitives/element/ElementTags.d.mts +6 -3
  62. package/dist/base-primitives/element/ElementTags.mjs +2 -4
  63. package/dist/base-primitives/index.d.mts +5 -5
  64. package/dist/base-primitives/memoEdge.d.mts +2 -6
  65. package/dist/base-primitives/memoEdge.mjs +1 -2
  66. package/dist/base-primitives/memoNode.d.mts +2 -6
  67. package/dist/components/EmptyBox.mjs +1 -2
  68. package/dist/components/ErrorFallback.d.mts +4 -3
  69. package/dist/components/ErrorFallback.mjs +61 -56
  70. package/dist/components/FloatingWindow.mjs +3 -4
  71. package/dist/components/GithubIcon.mjs +1 -2
  72. package/dist/components/Link.mjs +3 -4
  73. package/dist/components/Logo.d.mts +3 -5
  74. package/dist/components/Logo.mjs +28 -35
  75. package/dist/components/NavigationLink.mjs +1 -2
  76. package/dist/components/NavigationPanel.mjs +11 -11
  77. package/dist/components/PortalToContainer.d.mts +1 -3
  78. package/dist/components/PortalToContainer.mjs +1 -2
  79. package/dist/components/RootContainer.mjs +1 -2
  80. package/dist/components/SearchControl.css.mjs +1 -2
  81. package/dist/components/SearchControl.d.mts +1 -2
  82. package/dist/components/SearchControl.mjs +2 -3
  83. package/dist/components/ViewIcon.mjs +5 -6
  84. package/dist/components/ViewNotFound.mjs +1 -2
  85. package/dist/components/markdown/MarkdownWithRefs.mjs +268 -0
  86. package/dist/components/markdown/markdown-refs.mjs +145 -0
  87. package/dist/components/markdown/useMarkdownRefsInteractivity.mjs +126 -0
  88. package/dist/context/ComparingLayoutsContext.mjs +24 -0
  89. package/dist/context/CurrentViewModelProvider.mjs +1 -2
  90. package/dist/context/DiagramEventHandlers.mjs +3 -4
  91. package/dist/context/DiagramFeatures.d.mts +2 -3
  92. package/dist/context/DiagramFeatures.mjs +15 -9
  93. package/dist/context/EnsureMantine.mjs +1 -2
  94. package/dist/context/FramerMotionConfig.d.mts +1 -3
  95. package/dist/context/FramerMotionConfig.mjs +1 -2
  96. package/dist/context/IconRenderer.d.mts +1 -3
  97. package/dist/context/IconRenderer.mjs +14 -14
  98. package/dist/context/LikeC4ModelContext.d.mts +1 -2
  99. package/dist/context/LikeC4ModelContext.mjs +1 -2
  100. package/dist/context/LikeC4ProjectsContext.d.mts +1 -3
  101. package/dist/context/LikeC4ProjectsContext.mjs +1 -2
  102. package/dist/context/RootContainerContext.mjs +1 -2
  103. package/dist/context/TagStylesContext.d.mts +1 -2
  104. package/dist/context/TagStylesContext.mjs +7 -19
  105. package/dist/custom/builtins.d.mts +4 -1
  106. package/dist/custom/customNodes.d.mts +164 -7
  107. package/dist/custom/customNodes.mjs +387 -8
  108. package/dist/custom/index.d.mts +18 -30
  109. package/dist/custom/index.mjs +11 -19
  110. package/dist/custom/primitives.d.mts +3 -5
  111. package/dist/customization/CustomizationContext.d.mts +50 -0
  112. package/dist/customization/CustomizationContext.mjs +64 -0
  113. package/dist/customization/customizable.d.mts +32 -0
  114. package/dist/customization/customizable.mjs +75 -0
  115. package/dist/customization/customization-types.d.mts +40 -0
  116. package/dist/customization/customization-types.mjs +8 -0
  117. package/dist/customization/stableComponents.mjs +35 -0
  118. package/dist/editor/LikeC4EditorCallbacks.d.mts +1 -3
  119. package/dist/editor/LikeC4EditorCallbacks.mjs +1 -2
  120. package/dist/editor/LikeC4EditorProvider.d.mts +1 -3
  121. package/dist/editor/LikeC4EditorProvider.mjs +1 -2
  122. package/dist/editor/actor/actions.mjs +2 -3
  123. package/dist/editor/actor/hotkey.d.mts +1 -3
  124. package/dist/editor/actor/hotkey.mjs +1 -2
  125. package/dist/editor/actor/machine.d.mts +2 -4
  126. package/dist/editor/actor/machine.mjs +1 -2
  127. package/dist/editor/actor/setup.d.mts +1 -2
  128. package/dist/editor/actor/setup.mjs +1 -2
  129. package/dist/editor/actor/state.editor.mjs +2 -3
  130. package/dist/editor/actor/state.sync-queue.mjs +2 -3
  131. package/dist/editor/actor/types.d.mts +1 -3
  132. package/dist/editor/actor/types.mjs +1 -2
  133. package/dist/editor/applyChangesToManualLayout.mjs +1 -2
  134. package/dist/editor/index.d.mts +1 -1
  135. package/dist/editor/useEditorActorLogic.mjs +3 -4
  136. package/dist/hooks/safeContext.d.mts +16 -35
  137. package/dist/hooks/safeContext.mjs +1 -2
  138. package/dist/hooks/useCallbackRef.mjs +1 -2
  139. package/dist/hooks/useCurrentView.d.mts +1 -3
  140. package/dist/hooks/useCurrentView.mjs +1 -2
  141. package/dist/hooks/useCurrentViewModel.d.mts +0 -2
  142. package/dist/hooks/useCurrentViewModel.mjs +1 -2
  143. package/dist/hooks/useDiagram.d.mts +3 -12
  144. package/dist/hooks/useDiagram.mjs +11 -10
  145. package/dist/hooks/useDiagramCompareLayout.d.mts +2 -4
  146. package/dist/hooks/useDiagramCompareLayout.mjs +12 -21
  147. package/dist/hooks/useDiagramMarkdownRefActions.mjs +35 -0
  148. package/dist/hooks/useEdgeLabelFontLoader.mjs +29 -0
  149. package/dist/hooks/useEdgeTracks.mjs +2 -3
  150. package/dist/hooks/useEditorActor.mjs +1 -2
  151. package/dist/hooks/useId.mjs +1 -2
  152. package/dist/hooks/useLikeC4ElementsTree.mjs +1 -2
  153. package/dist/hooks/useLikeC4Model.d.mts +0 -2
  154. package/dist/hooks/useLikeC4Model.mjs +1 -2
  155. package/dist/hooks/useLikeC4Project.d.mts +2 -4
  156. package/dist/hooks/useLikeC4Project.mjs +1 -2
  157. package/dist/hooks/useLikeC4Styles.d.mts +1 -3
  158. package/dist/hooks/useLikeC4Styles.mjs +1 -2
  159. package/dist/hooks/useMantinePortalProps.mjs +1 -2
  160. package/dist/hooks/useSetState.mjs +1 -2
  161. package/dist/hooks/useUpdateEffect.d.mts +0 -2
  162. package/dist/hooks/useUpdateEffect.mjs +1 -2
  163. package/dist/hooks/useXYFlow.d.mts +1 -3
  164. package/dist/hooks/useXYFlow.mjs +1 -2
  165. package/dist/index.d.mts +20 -18
  166. package/dist/index.mjs +20 -18
  167. package/dist/likec4diagram/DiagramUI.mjs +14 -11
  168. package/dist/likec4diagram/DiagramXYFlow.mjs +34 -34
  169. package/dist/likec4diagram/convert-to-xyflow.mjs +7 -3
  170. package/dist/likec4diagram/custom/edges/EdgeDrifts.mjs +4 -3
  171. package/dist/likec4diagram/custom/edges/RelationshipEdge.mjs +18 -14
  172. package/dist/likec4diagram/custom/edges/SequenceStepEdge.mjs +3 -4
  173. package/dist/likec4diagram/custom/edges/useControlPoints.mjs +2 -3
  174. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.mjs +2 -3
  175. package/dist/likec4diagram/custom/index.mjs +4 -5
  176. package/dist/likec4diagram/custom/nodes/CompoundActions.d.mts +1 -2
  177. package/dist/likec4diagram/custom/nodes/CompoundActions.mjs +2 -3
  178. package/dist/likec4diagram/custom/nodes/ElementActions.d.mts +3 -4
  179. package/dist/likec4diagram/custom/nodes/ElementActions.mjs +4 -5
  180. package/dist/likec4diagram/custom/nodes/GraphElementNode.d.mts +6 -1
  181. package/dist/likec4diagram/custom/nodes/GraphElementNode.mjs +3 -4
  182. package/dist/likec4diagram/custom/nodes/NodeDrifts.d.mts +6 -1
  183. package/dist/likec4diagram/custom/nodes/NodeDrifts.mjs +4 -3
  184. package/dist/likec4diagram/custom/nodes/NodeNotes.mjs +3 -5
  185. package/dist/likec4diagram/custom/nodes/SequenceActorNode.d.mts +1 -3
  186. package/dist/likec4diagram/custom/nodes/SequenceActorNode.mjs +3 -4
  187. package/dist/likec4diagram/custom/nodes/SequenceSubFlow.d.mts +3 -1
  188. package/dist/likec4diagram/custom/nodes/SequenceSubFlow.mjs +1 -2
  189. package/dist/likec4diagram/custom/nodes/index.d.mts +4 -4
  190. package/dist/likec4diagram/custom/nodes/nodes.d.mts +3 -4
  191. package/dist/likec4diagram/custom/nodes/nodes.mjs +19 -21
  192. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.mjs +1 -2
  193. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.d.mts +1 -3
  194. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.mjs +1 -2
  195. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.d.mts +1 -3
  196. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.mjs +4 -5
  197. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.mts +1 -3
  198. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.mjs +4 -6
  199. package/dist/likec4diagram/custom/nodes/toolbar/_shared.mjs +3 -4
  200. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.mjs +1 -2
  201. package/dist/likec4diagram/custom/nodes/toolbar/types.mjs +1 -2
  202. package/dist/likec4diagram/custom/nodes/toolbar/useHandlers.mjs +1 -2
  203. package/dist/likec4diagram/relationship-popover/RelationshipPopover.mjs +29 -12
  204. package/dist/likec4diagram/relationship-popover/actor.mjs +1 -2
  205. package/dist/likec4diagram/relationship-popover/components.mjs +1 -2
  206. package/dist/likec4diagram/state/DiagramActorProvider.mjs +22 -34
  207. package/dist/likec4diagram/state/aligners.d.mts +1 -3
  208. package/dist/likec4diagram/state/aligners.mjs +1 -2
  209. package/dist/likec4diagram/state/assign.mjs +3 -4
  210. package/dist/likec4diagram/state/createViewChange.mjs +1 -2
  211. package/dist/likec4diagram/state/diagram-api.d.mts +33 -16
  212. package/dist/likec4diagram/state/diagram-api.mjs +55 -31
  213. package/dist/likec4diagram/state/hotkeyActor.d.mts +1 -3
  214. package/dist/likec4diagram/state/hotkeyActor.mjs +12 -6
  215. package/dist/likec4diagram/state/machine.actions.layout.mjs +2 -3
  216. package/dist/likec4diagram/state/machine.actions.mjs +81 -44
  217. package/dist/likec4diagram/state/machine.d.mts +107 -15
  218. package/dist/likec4diagram/state/machine.mjs +3 -4
  219. package/dist/likec4diagram/state/machine.setup.d.mts +14 -10
  220. package/dist/likec4diagram/state/machine.setup.mjs +55 -28
  221. package/dist/likec4diagram/state/machine.state.initializing.mjs +3 -4
  222. package/dist/likec4diagram/state/machine.state.navigating.mjs +3 -6
  223. package/dist/likec4diagram/state/machine.state.ready.comparing.mjs +63 -0
  224. package/dist/likec4diagram/state/machine.state.ready.focused.mjs +10 -7
  225. package/dist/likec4diagram/state/machine.state.ready.idle.mjs +10 -7
  226. package/dist/likec4diagram/state/machine.state.ready.mjs +8 -8
  227. package/dist/likec4diagram/state/machine.state.ready.printing.mjs +3 -4
  228. package/dist/likec4diagram/state/machine.state.ready.walkthrough.mjs +5 -6
  229. package/dist/likec4diagram/state/mediaPrintActor.d.mts +1 -3
  230. package/dist/likec4diagram/state/mediaPrintActor.mjs +1 -2
  231. package/dist/likec4diagram/state/persistence.mjs +12 -5
  232. package/dist/likec4diagram/state/types.d.mts +1 -3
  233. package/dist/likec4diagram/state/utils.mjs +2 -3
  234. package/dist/likec4diagram/types.d.mts +1 -3
  235. package/dist/likec4diagram/ui/FloatingSequenceActors.mjs +5 -7
  236. package/dist/likec4diagram/ui/notation/NotationPanel.css.mjs +1 -2
  237. package/dist/likec4diagram/ui/notation/NotationPanel.mjs +6 -7
  238. package/dist/likec4diagram/ui/sequence-outline/ActiveTrail.mjs +2 -3
  239. package/dist/likec4diagram/ui/sequence-outline/FlowRow.mjs +3 -4
  240. package/dist/likec4diagram/ui/sequence-outline/OutlineBody.mjs +4 -7
  241. package/dist/likec4diagram/ui/sequence-outline/OutlineHeader.mjs +4 -5
  242. package/dist/likec4diagram/ui/sequence-outline/OutlineNodes.mjs +4 -6
  243. package/dist/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.mjs +2 -3
  244. package/dist/likec4diagram/ui/sequence-outline/StepBadge.mjs +1 -2
  245. package/dist/likec4diagram/ui/sequence-outline/StepRow.mjs +7 -8
  246. package/dist/likec4diagram/ui/sequence-outline/StoreProvider.mjs +3 -9
  247. package/dist/likec4diagram/ui/sequence-outline/depth-of-field.mjs +1 -2
  248. package/dist/likec4diagram/ui/sequence-outline/motion.mjs +1 -2
  249. package/dist/likec4diagram/ui/sequence-outline/presentation.mjs +7 -8
  250. package/dist/likec4diagram/ui/sequence-outline/tree.mjs +1 -2
  251. package/dist/likec4diagram/ui/sequence-outline/types.mjs +1 -2
  252. package/dist/likec4diagram/useLayoutConstraints.mjs +5 -10
  253. package/dist/likec4diagram/useNodeDragHandlers.mjs +28 -0
  254. package/dist/likec4diagram/xyflow-diagram/diagram-view.mjs +9 -2
  255. package/dist/likec4diagram/xyflow-graph/graph-view-to-xy.mjs +1 -2
  256. package/dist/likec4diagram/xyflow-graph/useGraphForceSimulation.mjs +3 -6
  257. package/dist/likec4diagram/xyflow-props.mjs +25 -0
  258. package/dist/likec4diagram/xyflow-sequence/const.mjs +1 -2
  259. package/dist/likec4diagram/xyflow-sequence/layouter.mjs +2 -3
  260. package/dist/likec4diagram/xyflow-sequence/sequence-view-to-xy.mjs +2 -3
  261. package/dist/likec4diagram/xyflow-sequence/sequence-view.mjs +2 -3
  262. package/dist/likec4diagram/xyflow-sequence/utils.mjs +1 -2
  263. package/dist/navigationpanel/ElementViewControls.mjs +6 -7
  264. package/dist/navigationpanel/NavigationPanel.mjs +38 -67
  265. package/dist/navigationpanel/NavigationPanelControls.mjs +35 -114
  266. package/dist/navigationpanel/NavigationPanelDropdown.mjs +37 -34
  267. package/dist/navigationpanel/_common.mjs +3 -4
  268. package/dist/navigationpanel/actor.actions.mjs +1 -2
  269. package/dist/navigationpanel/actor.d.mts +0 -2
  270. package/dist/navigationpanel/actor.mjs +2 -3
  271. package/dist/navigationpanel/actor.setup.d.mts +1 -3
  272. package/dist/navigationpanel/actor.setup.mjs +1 -2
  273. package/dist/navigationpanel/comparepanel/ComparePanel.mjs +160 -90
  274. package/dist/navigationpanel/comparepanel/DriftsSummary.mjs +173 -142
  275. package/dist/{likec4diagram/ui → navigationpanel/comparepanel}/LayoutDriftFrame.mjs +6 -12
  276. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.mjs +14 -19
  277. package/dist/navigationpanel/controls/LayoutWarning.mjs +3 -4
  278. package/dist/navigationpanel/controls/LogoButton.mjs +5 -23
  279. package/dist/navigationpanel/controls/NavigationBreadcrumbs.mjs +110 -0
  280. package/dist/navigationpanel/controls/NavigationButtons.mjs +3 -4
  281. package/dist/navigationpanel/controls/OpenSource.mjs +2 -3
  282. package/dist/navigationpanel/controls/SearchControl.mjs +2 -3
  283. package/dist/navigationpanel/controls/ToggleReadonly.mjs +36 -21
  284. package/dist/navigationpanel/controls/ViewDetailsButton.mjs +12 -15
  285. package/dist/navigationpanel/dropdown/ProjectsMenu.mjs +46 -13
  286. package/dist/navigationpanel/editorpanel/ApplySemanticLayout.mjs +3 -4
  287. package/dist/navigationpanel/editorpanel/CenterCamera.mjs +2 -3
  288. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.mjs +3 -4
  289. package/dist/navigationpanel/editorpanel/EditorPanel.mjs +4 -4
  290. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.mjs +11 -13
  291. package/dist/navigationpanel/editorpanel/ToggleReadonly.mjs +2 -3
  292. package/dist/navigationpanel/editorpanel/_common.mjs +1 -2
  293. package/dist/navigationpanel/editorpanel/styles.mjs +1 -2
  294. package/dist/navigationpanel/hooks.mjs +1 -2
  295. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.mjs +5 -6
  296. package/dist/navigationpanel/walkthrough/DynamicViewControls.mjs +7 -9
  297. package/dist/navigationpanel/walkthrough/DynamicViewModeSwitcher.mjs +1 -2
  298. package/dist/navigationpanel/walkthrough/WalkthroughPanel.mjs +3 -4
  299. package/dist/navigationpanel/windows/ViewDetailsWindow.mjs +44 -38
  300. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs +1 -2
  301. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs +1 -2
  302. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.mjs +1 -2
  303. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.mjs +1 -2
  304. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowFork.mjs +1 -2
  305. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowGuide.mjs +1 -2
  306. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.mjs +1 -2
  307. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.mjs +1 -2
  308. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.mjs +1 -2
  309. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.mjs +1 -2
  310. package/dist/node_modules/.pnpm/@tabler_icons-react@3.49.0_react@19.3.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCaretRightFilled.mjs +16 -0
  311. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs +1 -2
  312. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.mjs +1 -2
  313. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.mjs +1 -2
  314. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.mjs +1 -2
  315. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.mjs +1 -2
  316. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCornerDownRight.mjs +1 -2
  317. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.mjs +1 -2
  318. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.mjs +1 -2
  319. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.mjs +1 -2
  320. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.mjs +1 -2
  321. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.mjs +1 -2
  322. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.mjs +1 -2
  323. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.mjs +1 -2
  324. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.mjs +1 -2
  325. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.mjs +1 -2
  326. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconId.mjs +1 -2
  327. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.mjs +1 -2
  328. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.mjs +1 -2
  329. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.mjs +1 -2
  330. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.mjs +1 -2
  331. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.mjs +1 -2
  332. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.mjs +1 -2
  333. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.mjs +1 -2
  334. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.mjs +1 -2
  335. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.mjs +1 -2
  336. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.mjs +1 -2
  337. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.mjs +1 -2
  338. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.mjs +1 -2
  339. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.mjs +1 -2
  340. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.mjs +1 -2
  341. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.mjs +1 -2
  342. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.mjs +1 -2
  343. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStop.mjs +1 -2
  344. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.mjs +1 -2
  345. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.mjs +1 -2
  346. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.mjs +1 -2
  347. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRepeat.mjs +1 -2
  348. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRobot.mjs +1 -2
  349. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.mjs +1 -2
  350. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs +1 -2
  351. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.mjs +1 -2
  352. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSparkles.mjs +1 -2
  353. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.mjs +1 -2
  354. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.mjs +1 -2
  355. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.mjs +1 -2
  356. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.mjs +1 -2
  357. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.mjs +1 -2
  358. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs +1 -2
  359. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.49.0_react@19.3.0 → @tabler_icons-react@3.49.0_react@19.3.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.mjs +1 -2
  360. package/dist/overlays/Overlays.mjs +4 -5
  361. package/dist/overlays/element-details/ElementDetails.mjs +2 -3
  362. package/dist/overlays/element-details/ElementDetailsCard.css.mjs +148 -102
  363. package/dist/overlays/element-details/ElementDetailsCard.mjs +503 -256
  364. package/dist/overlays/element-details/MetadataValue.mjs +115 -222
  365. package/dist/overlays/element-details/PropertiesSplit.mjs +162 -0
  366. package/dist/overlays/element-details/TabPanelDeployments.css.mjs +1 -2
  367. package/dist/overlays/element-details/TabPanelDeployments.mjs +5 -6
  368. package/dist/overlays/element-details/TabPanelRelationships.css.mjs +1 -2
  369. package/dist/overlays/element-details/TabPanelRelationships.mjs +6 -7
  370. package/dist/overlays/element-details/TabPanelStructure.css.mjs +1 -2
  371. package/dist/overlays/element-details/TabPanelStructure.mjs +3 -4
  372. package/dist/overlays/element-details/TabPanelViews.mjs +51 -0
  373. package/dist/overlays/element-details/actor.d.mts +6 -7
  374. package/dist/overlays/element-details/actor.mjs +31 -15
  375. package/dist/overlays/element-details/actorContext.mjs +1 -2
  376. package/dist/overlays/element-details/subject.d.mts +12 -0
  377. package/dist/overlays/element-details/subject.mjs +15 -0
  378. package/dist/overlays/hooks.mjs +1 -2
  379. package/dist/overlays/overlay/Overlay.d.mts +1 -3
  380. package/dist/overlays/overlay/Overlay.mjs +4 -5
  381. package/dist/overlays/overlaysActor.d.mts +12 -5
  382. package/dist/overlays/overlaysActor.mjs +24 -6
  383. package/dist/overlays/relationship-details/RelationshipDetails.mjs +16 -8
  384. package/dist/overlays/relationship-details/SelectEdge.css.mjs +1 -2
  385. package/dist/overlays/relationship-details/SelectEdge.mjs +3 -4
  386. package/dist/overlays/relationship-details/_types.d.mts +6 -4
  387. package/dist/overlays/relationship-details/actor.d.mts +0 -2
  388. package/dist/overlays/relationship-details/actor.mjs +2 -3
  389. package/dist/overlays/relationship-details/compute.mjs +1 -2
  390. package/dist/overlays/relationship-details/custom/ElementActions.mjs +6 -7
  391. package/dist/overlays/relationship-details/custom/edgeTypes.mjs +8 -13
  392. package/dist/overlays/relationship-details/custom/nodeTypes.mjs +8 -6
  393. package/dist/overlays/relationship-details/hooks.mjs +1 -2
  394. package/dist/overlays/relationship-details/layout-to-xyflow.mjs +3 -3
  395. package/dist/overlays/relationship-details/layout.d.mts +1 -3
  396. package/dist/overlays/relationship-details/layout.mjs +39 -13
  397. package/dist/overlays/relationships-browser/RelationshipsBrowser.mjs +12 -13
  398. package/dist/overlays/relationships-browser/SelectElement.css.mjs +1 -2
  399. package/dist/overlays/relationships-browser/SelectElement.mjs +4 -5
  400. package/dist/overlays/relationships-browser/_types.d.mts +6 -4
  401. package/dist/overlays/relationships-browser/actor.d.mts +0 -2
  402. package/dist/overlays/relationships-browser/actor.mjs +4 -5
  403. package/dist/overlays/relationships-browser/const.mjs +1 -2
  404. package/dist/overlays/relationships-browser/custom/ElementActions.mjs +6 -7
  405. package/dist/overlays/relationships-browser/custom/EmptyNode.mjs +1 -2
  406. package/dist/overlays/relationships-browser/custom/edgeTypes.mjs +14 -17
  407. package/dist/overlays/relationships-browser/custom/nodeTypes.mjs +12 -7
  408. package/dist/overlays/relationships-browser/hooks.mjs +1 -2
  409. package/dist/overlays/relationships-browser/layout.d.mts +1 -3
  410. package/dist/overlays/relationships-browser/layout.mjs +73 -24
  411. package/dist/overlays/relationships-browser/useViewToNodesEdges.mjs +2 -2
  412. package/dist/overlays/types.d.mts +5 -7
  413. package/dist/projects-overview/ProjectsOverview.d.mts +1 -3
  414. package/dist/projects-overview/ProjectsOverview.mjs +1 -2
  415. package/dist/projects-overview/ProjectsOverviewXY.d.mts +1 -3
  416. package/dist/projects-overview/ProjectsOverviewXY.mjs +3 -4
  417. package/dist/projects-overview/actor.mjs +1 -2
  418. package/dist/projects-overview/context.mjs +1 -2
  419. package/dist/projects-overview/custom/edgeTypes.mjs +2 -3
  420. package/dist/projects-overview/custom/nodeTypes.mjs +3 -4
  421. package/dist/projects-overview/hooks.mjs +1 -2
  422. package/dist/projects-overview/layouted-to-xyflow.mjs +1 -2
  423. package/dist/projects-overview/panel/ProjectsOverviewPanel.mjs +1 -2
  424. package/dist/projects-overview/persistence.mjs +1 -2
  425. package/dist/search/Search.d.mts +1 -3
  426. package/dist/search/Search.mjs +13 -12
  427. package/dist/search/SearchContext.d.mts +1 -3
  428. package/dist/search/SearchContext.mjs +1 -2
  429. package/dist/search/XStateSearchAdapter.mjs +1 -2
  430. package/dist/search/components/ElementsColumn.css.mjs +1 -2
  431. package/dist/search/components/ElementsColumn.mjs +31 -9
  432. package/dist/search/components/PickView.mjs +3 -4
  433. package/dist/search/components/SearchByTags.mjs +3 -4
  434. package/dist/search/components/SearchInput.mjs +3 -4
  435. package/dist/search/components/ViewsColum.mjs +20 -20
  436. package/dist/search/components/ViewsColumn.css.mjs +1 -2
  437. package/dist/search/components/_shared.css.mjs +1 -2
  438. package/dist/search/components/styles.css.mjs +1 -2
  439. package/dist/search/components/utils.mjs +32 -3
  440. package/dist/search/fuzzy.mjs +27 -0
  441. package/dist/search/hooks.mjs +1 -2
  442. package/dist/search/metadata-search.mjs +32 -0
  443. package/dist/search/searchActor.d.mts +1 -3
  444. package/dist/search/searchActor.mjs +1 -2
  445. package/dist/shadowroot/ShadowRoot.mjs +8 -7
  446. package/dist/styles-font2.mjs +1 -2
  447. package/dist/styles-min.css +1 -1
  448. package/dist/styles.css +1 -1
  449. package/dist/styles2.mjs +2 -3
  450. package/dist/utils/defineActors.d.mts +1 -3
  451. package/dist/utils/defineActors.mjs +1 -2
  452. package/dist/utils/edge-corners.mjs +2 -3
  453. package/dist/utils/edge-endpoints.mjs +1 -2
  454. package/dist/utils/edge-label.mjs +1 -2
  455. package/dist/utils/edge-path-through-label.mjs +51 -0
  456. package/dist/utils/edge-path.mjs +1 -2
  457. package/dist/utils/edge-tracks.mjs +1 -2
  458. package/dist/utils/filterProjects.d.mts +10 -0
  459. package/dist/utils/filterProjects.mjs +36 -0
  460. package/dist/utils/index.mjs +1 -0
  461. package/dist/utils/measure-edge-label.mjs +129 -0
  462. package/dist/utils/readableText.mjs +1 -2
  463. package/dist/utils/roundDpr.mjs +1 -2
  464. package/dist/utils/search-event.mjs +17 -0
  465. package/dist/utils/view-bounds.d.mts +1 -3
  466. package/dist/utils/view-bounds.mjs +1 -2
  467. package/dist/utils/view-routing.mjs +1 -2
  468. package/dist/utils/xyflow.mjs +2 -3
  469. package/dist/webcomponent/defineWebcomponent.d.mts +12 -0
  470. package/dist/webcomponent/defineWebcomponent.mjs +93 -0
  471. package/package.json +29 -26
  472. package/panda.buildinfo.json +211 -208
  473. package/styles-min.css +1 -1
  474. package/styles.css +1 -1
  475. package/dist/base-primitives/memoNode.mjs +0 -23
  476. package/dist/context/DiagramEventHandlers.d.mts +0 -11
  477. package/dist/custom/hooks.d.mts +0 -17
  478. package/dist/hooks/useSetState.d.mts +0 -10
  479. package/dist/likec4diagram/custom/edges/edges.css.mjs +0 -50
  480. package/dist/navigationpanel/comparepanel/CompareActionsMenu.mjs +0 -69
  481. package/dist/navigationpanel/comparepanel/ComparePanelControls.mjs +0 -56
  482. package/dist/navigationpanel/styles.css.mjs +0 -23
  483. package/src/styles-font.css +0 -114
  484. package/src/styles-min.css +0 -2
  485. package/src/styles-xyflow.css +0 -1
  486. package/src/styles.css +0 -3
@@ -1,8 +1,21 @@
1
1
  import { __name } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { useLikeC4Model } from "../hooks/useLikeC4Model.mjs";
3
+ import { GraphElementNode } from "../likec4diagram/custom/nodes/GraphElementNode.mjs";
4
+ import { CompoundDeploymentNode, CompoundElementNode, DeploymentNode, ElementNode, ViewGroupNode } from "../likec4diagram/custom/nodes/nodes.mjs";
5
+ import { SequenceActorNode, SequenceParallelArea } from "../likec4diagram/custom/nodes/SequenceActorNode.mjs";
6
+ import { SequenceSubflowArea } from "../likec4diagram/custom/nodes/SequenceSubFlow.mjs";
3
7
  import { jsx } from "react/jsx-runtime";
8
+ import { capitalize, toCamelCase } from "remeda";
9
+ import { nonexhaustive } from "@likec4/core";
4
10
 
5
- //#region src/custom/customNodes.tsx
11
+ // src/custom/customNodes.tsx
12
+ /**
13
+ * Internal helper that wraps a custom node component with model lookup logic.
14
+ * Resolves the node model from the LikeC4 model based on the node's view ID and ID.
15
+ *
16
+ * @param Node - The custom node component to wrap
17
+ * @returns A wrapped component that accepts XYFlow node props
18
+ */
6
19
  function customDiagramNode(Node) {
7
20
  return ((props) => {
8
21
  const viewId = props.data.viewId;
@@ -46,7 +59,7 @@ function customDiagramNode(Node) {
46
59
  * ElementToolbar,
47
60
  * DefaultHandles,
48
61
  * ElementTags
49
- * } from '@likec4/diagram/custom'
62
+ * } from 'likec4/react'
50
63
  *
51
64
  * const CustomElementNode = elementNode(({ nodeProps, nodeModel }) => (
52
65
  * <ElementNodeContainer nodeProps={nodeProps}>
@@ -101,7 +114,7 @@ function elementNode(component) {
101
114
  * IfNotReadOnly,
102
115
  * DeploymentElementToolbar,
103
116
  * DefaultHandles,
104
- * } from '@likec4/diagram/custom'
117
+ * } from 'likec4/react'
105
118
  *
106
119
  * const CustomDeploymentNode = deploymentNode(({ nodeProps, nodeModel }) => (
107
120
  * <ElementNodeContainer nodeProps={nodeProps}>
@@ -150,7 +163,7 @@ function deploymentNode(component) {
150
163
  * IfEnabled,
151
164
  * CompoundElementToolbar,
152
165
  * DefaultHandles,
153
- * } from '@likec4/diagram/custom'
166
+ * } from 'likec4/react'
154
167
  *
155
168
  * const CustomCompoundElementNode = compoundElementNode(({ nodeProps, nodeModel }) => (
156
169
  * <CompoundNodeContainer nodeProps={props}>
@@ -189,7 +202,7 @@ function compoundElementNode(component) {
189
202
  * CompoundActions,
190
203
  * CompoundDeploymentToolbar,
191
204
  * DefaultHandles,
192
- * } from '@likec4/diagram/custom'
205
+ * } from 'likec4/react'
193
206
  *
194
207
  * const CustomCompoundDeploymentNode = compoundDeploymentNode(({ nodeProps, nodeModel }) => (
195
208
  * <CompoundNodeContainer nodeProps={nodeProps}>
@@ -221,7 +234,7 @@ function compoundDeploymentNode(component) {
221
234
  * CompoundNodeContainer,
222
235
  * CompoundTitle,
223
236
  * DefaultHandles,
224
- * } from '@likec4/diagram/custom'
237
+ * } from 'likec4/react'
225
238
  *
226
239
  * const CustomViewGroupNode = viewGroupNode(({ nodeProps, nodeModel }) => (
227
240
  * <CompoundNodeContainer nodeProps={nodeProps}>
@@ -233,9 +246,375 @@ function compoundDeploymentNode(component) {
233
246
  function viewGroupNode(component) {
234
247
  return customDiagramNode(component);
235
248
  }
249
+ /**
250
+ * Node that will be used to render the sequence actor from the model.
251
+ *
252
+ * Custom node renderer receives these props:
253
+ * - `nodeProps`: props from XYFlow
254
+ * - `nodeModel`: LikeC4 {@link NodeModel.WithElement}
255
+ *
256
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx)
257
+ */
236
258
  function sequenceActorNode(component) {
237
259
  return customDiagramNode(component);
238
260
  }
261
+ /**
262
+ * Helper function to define custom node renderers
263
+ *
264
+ * @example
265
+ * ```tsx
266
+ * import { defineNode, ElementNodeContainer, ElementData, DefaultHandles } from 'likec4/react'
267
+ *
268
+ * const CustomElementNode = defineNode('element', (nodeProps) => (
269
+ * <ElementNodeContainer nodeProps={nodeProps}>
270
+ * <ElementData {...nodeProps} />
271
+ * <DefaultHandles />
272
+ * </ElementNodeContainer>
273
+ * ))
274
+ * ```
275
+ * Or using bound methods:
276
+ *
277
+ * @example
278
+ * ```tsx
279
+ * import { defineNode, ElementNodeContainer, ElementData, DefaultHandles } from 'likec4/react'
280
+ *
281
+ * const CustomElementNode = defineNode.element((nodeProps) => (
282
+ * <ElementNodeContainer {...nodeProps}>
283
+ * <ElementData {...nodeProps} />
284
+ * <DefaultHandles />
285
+ * </ElementNodeContainer>
286
+ * ))
287
+ * ```
288
+ */
289
+ function defineNode(nodeType, renderer) {
290
+ const defined = (props) => {
291
+ if (props.type !== nodeType) throw new Error(`Expected node type '${nodeType}', got '${props.type}'`);
292
+ return renderer(props);
293
+ };
294
+ defined.displayName = `Defined${toCamelCase(nodeType)}`;
295
+ return defined;
296
+ }
297
+ /**
298
+ * Factory method for defining custom element node renderers
299
+ *
300
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
301
+ *
302
+ * @example
303
+ * ```tsx
304
+ * import { defineNode, ElementNodeContainer, ElementData, DefaultHandles } from 'likec4/react'
305
+ *
306
+ * const CustomElementNode = defineNode.element((nodeProps) => (
307
+ * <ElementNodeContainer {...nodeProps}>
308
+ * <ElementData {...nodeProps} />
309
+ * <DefaultHandles />
310
+ * </ElementNodeContainer>
311
+ * ))
312
+ * ```
313
+ */
314
+ defineNode.element = defineNode.bind(null, "element");
315
+ /**
316
+ * Factory method for defining custom deployment node renderers
317
+ *
318
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
319
+ *
320
+ * @example
321
+ * ```tsx
322
+ * import { defineNode, ElementNodeContainer, ElementData, DefaultHandles } from 'likec4/react'
323
+ *
324
+ * const CustomDeploymentNode = defineNode.deploymentNode((nodeProps) => (
325
+ * <ElementNodeContainer {...nodeProps}>
326
+ * <ElementData {...nodeProps} />
327
+ * <DefaultHandles />
328
+ * </ElementNodeContainer>
329
+ * ))
330
+ * ```
331
+ */
332
+ defineNode.deploymentNode = defineNode.bind(null, "deployment");
333
+ /**
334
+ * Factory method for defining custom compound element node renderers
335
+ *
336
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
337
+ *
338
+ * @example
339
+ * ```tsx
340
+ * import { defineNode, CompoundNodeContainer, CompoundTitle, DefaultHandles } from 'likec4/react'
341
+ *
342
+ * const CustomCompoundElementNode = defineNode.compoundElement((nodeProps) => (
343
+ * <CompoundNodeContainer {...nodeProps}>
344
+ * <CompoundTitle {...nodeProps} />
345
+ * <DefaultHandles />
346
+ * </CompoundNodeContainer>
347
+ * ))
348
+ * ```
349
+ */
350
+ defineNode.compoundElement = defineNode.bind(null, "compound-element");
351
+ /**
352
+ * Factory method for defining custom compound deployment node renderers
353
+ *
354
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
355
+ *
356
+ * @example
357
+ * ```tsx
358
+ * import { defineNode, CompoundNodeContainer, CompoundTitle, DefaultHandles } from 'likec4/react'
359
+ *
360
+ * const CustomCompoundDeploymentNode = defineNode.compoundDeployment((nodeProps) => (
361
+ * <CompoundNodeContainer {...nodeProps}>
362
+ * <CompoundTitle {...nodeProps} />
363
+ * <DefaultHandles />
364
+ * </CompoundNodeContainer>
365
+ * ))
366
+ * ```
367
+ */
368
+ defineNode.compoundDeployment = defineNode.bind(null, "compound-deployment");
369
+ /**
370
+ * Factory method for defining custom view group node renderers
371
+ *
372
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
373
+ *
374
+ * @example
375
+ * ```tsx
376
+ * import { defineNode, CompoundNodeContainer, CompoundTitle, DefaultHandles } from 'likec4/react'
377
+ *
378
+ * const CustomViewGroupNode = defineNode.viewGroup((nodeProps) => (
379
+ * <CompoundNodeContainer {...nodeProps}>
380
+ * <CompoundTitle {...nodeProps} />
381
+ * <DefaultHandles />
382
+ * </CompoundNodeContainer>
383
+ * ))
384
+ * ```
385
+ */
386
+ defineNode.viewGroup = defineNode.bind(null, "view-group");
387
+ /**
388
+ * Factory method for defining custom sequence actor node renderers
389
+ *
390
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
391
+ *
392
+ * @example
393
+ * ```tsx
394
+ * import { defineNode, SequenceActorContainer, SequenceActorTitle } from 'likec4/react'
395
+ *
396
+ * const CustomSequenceActorNode = defineNode.seqActor((nodeProps) => (
397
+ * <SequenceActorContainer {...nodeProps}>
398
+ * <SequenceActorTitle {...nodeProps} />
399
+ * </SequenceActorContainer>
400
+ * ))
401
+ * ```
402
+ */
403
+ defineNode.seqActor = defineNode.bind(null, "seq-actor");
404
+ /**
405
+ * Factory method for defining custom sequence subflow node renderers
406
+ *
407
+ * @see [Default implementation](https://github.com/likec4/likec4/blob/main/packages/diagram/src/likec4diagram/custom/nodes/nodes.tsx) as reference
408
+ *
409
+ * @example
410
+ * ```tsx
411
+ * import { defineNode, SequenceSubflowContainer, SequenceSubflowTitle } from 'likec4/react'
412
+ *
413
+ * const CustomSequenceSubflowNode = defineNode.seqSubflow((nodeProps) => (
414
+ * <SequenceSubflowContainer {...nodeProps}>
415
+ * <SequenceSubflowTitle {...nodeProps} />
416
+ * </SequenceSubflowContainer>
417
+ * ))
418
+ * ```
419
+ */
420
+ defineNode.seqSubflow = defineNode.bind(null, "seq-subflow");
421
+ /**
422
+ * Helper function to define custom node renderers
423
+ *
424
+ * @example
425
+ * ```tsx
426
+ * import { defineNodes, ElementNodeContainer, ElementData, DefaultHandles } from 'likec4/react'
427
+ *
428
+ * const CustomNodes = defineNodes({
429
+ * element: (nodeProps) => (
430
+ * <ElementNodeContainer {...nodeProps}>
431
+ * <ElementData {...nodeProps} />
432
+ * <DefaultHandles />
433
+ * </ElementNodeContainer>
434
+ * ),
435
+ * deployment: (nodeProps) => (
436
+ * <DeploymentNodeContainer {...nodeProps}>
437
+ * <DeploymentTitle {...nodeProps} />
438
+ * <DefaultHandles />
439
+ * </DeploymentNodeContainer>
440
+ * ),
441
+ * })
442
+ * ```
443
+ *
444
+ * {@link defineNode}
445
+ */
446
+ function defineNodes(renderers) {
447
+ return renderers;
448
+ }
449
+ /**
450
+ * Helper function to get the default node renderer for a given node type
451
+ *
452
+ * @param type - The node type to get the default renderer for
453
+ * @returns The default node renderer for the specified type
454
+ */
455
+ function defaultNodeRenderer(type) {
456
+ switch (type) {
457
+ case "element": return ElementNode;
458
+ case "deployment": return DeploymentNode;
459
+ case "compound-element": return CompoundElementNode;
460
+ case "compound-deployment": return CompoundDeploymentNode;
461
+ case "view-group": return ViewGroupNode;
462
+ case "seq-actor": return SequenceActorNode;
463
+ case "seq-parallel": return SequenceParallelArea;
464
+ case "seq-subflow": return SequenceSubflowArea;
465
+ case "graph-element": return GraphElementNode;
466
+ default: return nonexhaustive(type);
467
+ }
468
+ }
469
+ /**
470
+ * Helper function to wrap a node renderer with a custom wrapper component
471
+ *
472
+ * @example
473
+ * ```tsx
474
+ * import { wrapNode } from 'likec4/react'
475
+ *
476
+ * const WrappedElementNode = wrapNode('element', ({ props, Node }) => (
477
+ * <div className="custom-wrapper">
478
+ * <Node {...props} />
479
+ * </div>
480
+ * ))
481
+ * ```
482
+ *
483
+ * @param nodeType - The node type to wrap
484
+ * @param Wrapper - The wrapper component
485
+ * @returns A wrapped node renderer
486
+ */
487
+ function wrapNode(nodeType, Wrapper) {
488
+ const wrapped = ((props) => {
489
+ if (props.type !== nodeType) throw new Error(`Expected node type '${nodeType}', got '${props.type}'`);
490
+ return /* @__PURE__ */ jsx(Wrapper, {
491
+ props,
492
+ Node: defaultNodeRenderer(props.type)
493
+ });
494
+ });
495
+ wrapped.displayName = `Wrapped${capitalize(toCamelCase(nodeType))}`;
496
+ return wrapped;
497
+ }
498
+ /**
499
+ * Factory method for wrapping element node renderers
500
+ *
501
+ * @example
502
+ * ```tsx
503
+ * import { wrapNode } from 'likec4/react'
504
+ *
505
+ * const WrappedElementNode = wrapNode.element(({ props, Node }) => (
506
+ * <div className="custom-wrapper">
507
+ * <Node {...props} />
508
+ * </div>
509
+ * ))
510
+ * ```
511
+ */
512
+ wrapNode.element = wrapNode.bind(null, "element");
513
+ /**
514
+ * Factory method for wrapping deployment node renderers
515
+ *
516
+ * @example
517
+ * ```tsx
518
+ * import { wrapNode } from 'likec4/react'
519
+ *
520
+ * const WrappedDeploymentNode = wrapNode.deployment(({ props, Node }) => (
521
+ * <div className="custom-wrapper">
522
+ * <Node {...props} />
523
+ * </div>
524
+ * ))
525
+ * ```
526
+ */
527
+ wrapNode.deployment = wrapNode.bind(null, "deployment");
528
+ /**
529
+ * Factory method for wrapping compound element node renderers
530
+ *
531
+ * @example
532
+ * ```tsx
533
+ * import { wrapNode } from 'likec4/react'
534
+ *
535
+ * const WrappedCompoundElementNode = wrapNode.compoundElement(({ props, Node }) => (
536
+ * <div className="custom-wrapper">
537
+ * <Node {...props} />
538
+ * </div>
539
+ * ))
540
+ * ```
541
+ */
542
+ wrapNode.compoundElement = wrapNode.bind(null, "compound-element");
543
+ /**
544
+ * Factory method for wrapping compound deployment node renderers
545
+ *
546
+ * @example
547
+ * ```tsx
548
+ * import { wrapNode } from 'likec4/react'
549
+ *
550
+ * const WrappedCompoundDeploymentNode = wrapNode.compoundDeployment(({ props, Node }) => (
551
+ * <div className="custom-wrapper">
552
+ * <Node {...props} />
553
+ * </div>
554
+ * ))
555
+ * ```
556
+ */
557
+ wrapNode.compoundDeployment = wrapNode.bind(null, "compound-deployment");
558
+ /**
559
+ * Factory method for wrapping view group node renderers
560
+ *
561
+ * @example
562
+ * ```tsx
563
+ * import { wrapNode } from 'likec4/react'
564
+ *
565
+ * const WrappedViewGroupNode = wrapNode.viewGroup(({ props, Node }) => (
566
+ * <div className="custom-wrapper">
567
+ * <Node {...props} />
568
+ * </div>
569
+ * ))
570
+ * ```
571
+ */
572
+ wrapNode.viewGroup = wrapNode.bind(null, "view-group");
573
+ /**
574
+ * Factory method for wrapping sequence actor node renderers
575
+ *
576
+ * @example
577
+ * ```tsx
578
+ * import { wrapNode } from 'likec4/react'
579
+ *
580
+ * const WrappedSequenceActorNode = wrapNode.seqActor(({ props, Node }) => (
581
+ * <div className="custom-wrapper">
582
+ * <Node {...props} />
583
+ * </div>
584
+ * ))
585
+ * ```
586
+ */
587
+ wrapNode.seqActor = wrapNode.bind(null, "seq-actor");
588
+ /**
589
+ * Factory method for wrapping sequence subflow area node renderers
590
+ *
591
+ * @example
592
+ * ```tsx
593
+ * import { wrapNode } from 'likec4/react'
594
+ *
595
+ * const WrappedSequenceSubflowNode = wrapNode.seqSubflow(({ props, Node }) => (
596
+ * <div className="custom-wrapper">
597
+ * <Node {...props} />
598
+ * </div>
599
+ * ))
600
+ * ```
601
+ */
602
+ wrapNode.seqSubflow = wrapNode.bind(null, "seq-subflow");
603
+ /**
604
+ * Factory method for wrapping graph element node renderers
605
+ *
606
+ * @example
607
+ * ```tsx
608
+ * import { wrapNode } from 'likec4/react'
609
+ import { toCamelCase } from 'remeda'
610
+ *
611
+ * const WrappedGraphElementNode = wrapNode.graphElement(({ props, Node }) => (
612
+ * <div className="custom-wrapper">
613
+ * <Node {...props} />
614
+ * </div>
615
+ * ))
616
+ * ```
617
+ */
618
+ wrapNode.graphElement = wrapNode.bind(null, "graph-element");
239
619
 
240
- //#endregion
241
- export { compoundDeploymentNode, compoundElementNode, deploymentNode, elementNode, sequenceActorNode, viewGroupNode };
620
+ export { compoundDeploymentNode, compoundElementNode, defaultNodeRenderer, defineNode, defineNodes, deploymentNode, elementNode, sequenceActorNode, viewGroupNode, wrapNode };
@@ -1,6 +1,6 @@
1
- import { Base } from "../base/Base.mjs";
2
- import { BaseEdge, BaseEdgeData, BaseEdgeProps, BaseEdgePropsWithData, BaseNode, BaseNodeData, BaseNodeProps, BaseNodePropsWithData } from "../base/types.mjs";
3
- import { Types } from "../likec4diagram/types.mjs";
1
+ import "./builtins.mjs";
2
+ import { CompoundDeploymentNodeProps, CompoundElementNodeProps, DeploymentNodeProps, ElementNodeProps, SequenceActorNodeProps, ViewGroupNodeProps, compoundDeploymentNode, compoundElementNode, defaultNodeRenderer, defineNode, defineNodes, deploymentNode, elementNode, sequenceActorNode, viewGroupNode, wrapNode } from "./customNodes.mjs";
3
+ import "./primitives.mjs";
4
4
  import { CompoundActions } from "../likec4diagram/custom/nodes/CompoundActions.mjs";
5
5
  import { CompoundActionButton } from "../base-primitives/compound/CompoundActionButton.mjs";
6
6
  import { CompoundDetailsButton } from "../base-primitives/compound/CompoundDetailsButton.mjs";
@@ -10,40 +10,25 @@ import { ElementActionButtons } from "../base-primitives/element/ElementActionBu
10
10
  import { ElementData } from "../base-primitives/element/ElementData.mjs";
11
11
  import { ElementDetailsButton } from "../base-primitives/element/ElementDetailsButton.mjs";
12
12
  import { ElementNodeContainer } from "../base-primitives/element/ElementNodeContainer.mjs";
13
- import { ElementShape } from "../base-primitives/element/ElementShape.mjs";
14
- import { ElementTag, ElementTags } from "../base-primitives/element/ElementTags.mjs";
13
+ import { BaseEdge, BaseEdgeData, BaseEdgeProps, BaseEdgePropsWithData, BaseNode, BaseNodeData, BaseNodeProps, BaseNodePropsWithData } from "../base/types.mjs";
14
+ import { DiagramNodeWithNavigate, ElementIconRenderer, ElementIconRendererProps, LikeC4ColorScheme, LikeC4DiagramEventHandlers, LikeC4DiagramProperties, NodeRenderers, OnCanvasClick, OnEdgeClick, OnNavigateTo, OnNodeClick, OpenSourceParams, PaddingUnit, PaddingWithUnit, ViewPadding, WhereOperator } from "../LikeC4Diagram.props.mjs";
15
+ import { Base } from "../base/Base.mjs";
16
+ import { XYStoreState } from "../hooks/useXYFlow.mjs";
17
+ import { ElementShape, ElementShapeProps } from "../base-primitives/element/ElementShape.mjs";
18
+ import { ElementTag, ElementTagProps, ElementTags, ElementTagsProps } from "../base-primitives/element/ElementTags.mjs";
15
19
  import { Markdown } from "../base-primitives/Markdown.mjs";
16
- import { memoEdge } from "../base-primitives/memoEdge.mjs";
17
- import { memoNode } from "../base-primitives/memoNode.mjs";
18
20
  import { DefaultHandles } from "../base-primitives/NodeHandles.mjs";
19
21
  import { DeploymentElementActions, ElementActions } from "../likec4diagram/custom/nodes/ElementActions.mjs";
22
+ import { GraphElementNode } from "../likec4diagram/custom/nodes/GraphElementNode.mjs";
20
23
  import { CompoundDeploymentNode, CompoundDetailsButtonWithHandler, CompoundElementNode, DeploymentNode, ElementDetailsButtonWithHandler, ElementNode, ViewGroupNode } from "../likec4diagram/custom/nodes/nodes.mjs";
21
24
  import { SequenceActorNode, SequenceParallelArea } from "../likec4diagram/custom/nodes/SequenceActorNode.mjs";
25
+ import { SequenceSubflowArea } from "../likec4diagram/custom/nodes/SequenceSubFlow.mjs";
26
+ import { NodeDrifts } from "../likec4diagram/custom/nodes/NodeDrifts.mjs";
22
27
  import { CompoundDeploymentToolbar, CompoundElementToolbar } from "../likec4diagram/custom/nodes/toolbar/CompoundToolbar.mjs";
23
28
  import { DeploymentElementToolbar, ElementToolbar } from "../likec4diagram/custom/nodes/toolbar/ElementToolbar.mjs";
24
29
  import { Toolbar } from "../likec4diagram/custom/nodes/toolbar/Toolbar.mjs";
25
- import "./builtins.mjs";
26
- import { CompoundDeploymentNodeProps, CompoundElementNodeProps, DeploymentNodeProps, ElementNodeProps, SequenceActorNodeProps, ViewGroupNodeProps, compoundDeploymentNode, compoundElementNode, deploymentNode, elementNode, sequenceActorNode, viewGroupNode } from "./customNodes.mjs";
27
- import { EnabledFeatures, FeatureName, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, useEnabledFeatures } from "../context/DiagramFeatures.mjs";
28
- import { XYStoreState } from "../hooks/useXYFlow.mjs";
29
- import { DiagramApi } from "../likec4diagram/state/diagram-api.mjs";
30
- import { useDiagram, useDiagramActorRef } from "../hooks/safeContext.mjs";
31
- import { useDiagramContext, useOnDiagramEvent } from "../hooks/useDiagram.mjs";
32
- import { DiagramNodeWithNavigate, ElementIconRenderer, ElementIconRendererProps, LikeC4ColorScheme, LikeC4DiagramEventHandlers, LikeC4DiagramProperties, NodeRenderers, OnCanvasClick, OnEdgeClick, OnNavigateTo, OnNodeClick, OpenSourceParams, PaddingUnit, PaddingWithUnit, ViewPadding, WhereOperator } from "../LikeC4Diagram.props.mjs";
33
- import { Context, EmittedEvents, Events } from "../likec4diagram/state/machine.setup.mjs";
34
- import { DiagramMachineSnapshot } from "../likec4diagram/state/machine.mjs";
35
- import { DiagramActorRef } from "../likec4diagram/state/types.mjs";
36
- import { useDiagramEventHandlers } from "../context/DiagramEventHandlers.mjs";
37
- import { useCurrentView, useCurrentViewId } from "../hooks/useCurrentView.mjs";
38
- import { CurrentViewModel, useOptionalCurrentViewModel, useOptionalLikeC4Model } from "../context/LikeC4ModelContext.mjs";
39
- import { useCurrentViewModel } from "../hooks/useCurrentViewModel.mjs";
40
- import { useLikeC4Model, useLikeC4Specification, useLikeC4ViewModel } from "../hooks/useLikeC4Model.mjs";
41
- import { useHasProjects, useLikeC4Project, useLikeC4ProjectId, useLikeC4Projects, useLikeC4ProjectsContext } from "../hooks/useLikeC4Project.mjs";
42
- import { useLikeC4Styles } from "../hooks/useLikeC4Styles.mjs";
43
- import { useSetState } from "../hooks/useSetState.mjs";
44
- import { useUpdateEffect } from "../hooks/useUpdateEffect.mjs";
45
- import "./hooks.mjs";
46
- import "./primitives.mjs";
30
+ import { Types } from "../likec4diagram/types.mjs";
31
+ import { EnabledFeatures, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, useEnabledFeatures } from "../context/DiagramFeatures.mjs";
47
32
  import { Overlay, OverlayProps } from "../overlays/overlay/Overlay.mjs";
48
33
  import { PortalToContainer } from "../components/PortalToContainer.mjs";
49
34
  import { FramerMotionConfig } from "../context/FramerMotionConfig.mjs";
@@ -51,4 +36,7 @@ import { ErrorBoundary, ErrorFallback } from "../components/ErrorFallback.mjs";
51
36
  import { LikeC4MantineProvider } from "../LikeC4MantineProvider.mjs";
52
37
  import { LikeC4Styles } from "../LikeC4Styles.mjs";
53
38
  import { TagStylesProvider } from "../context/TagStylesContext.mjs";
54
- export { Base, type BaseEdge, type BaseEdgeData, type BaseEdgeProps, type BaseEdgePropsWithData, type BaseNode, type BaseNodeData, type BaseNodeProps, type BaseNodePropsWithData, CompoundActionButton, CompoundActions, CompoundDeploymentNode, CompoundDeploymentNodeProps, CompoundDeploymentToolbar, CompoundDetailsButton, CompoundDetailsButtonWithHandler, CompoundElementNode, CompoundElementNodeProps, CompoundElementToolbar, CompoundNodeContainer, CompoundTitle, type CurrentViewModel, DefaultHandles, DeploymentElementActions, DeploymentElementToolbar, DeploymentNode, DeploymentNodeProps, type DiagramActorRef, type DiagramMachineSnapshot as DiagramActorSnapshot, type DiagramApi, type Context as DiagramContext, type EmittedEvents as DiagramEmittedEvents, type Events as DiagramEvents, type DiagramNodeWithNavigate, ElementActionButtons, ElementActions, ElementData, ElementDetailsButton, ElementDetailsButtonWithHandler, type ElementIconRenderer, type ElementIconRendererProps, ElementNode, ElementNodeContainer, ElementNodeProps, ElementShape, ElementTag, ElementTags, ElementToolbar, type EnabledFeatures, ErrorBoundary, ErrorFallback, type FeatureName, FramerMotionConfig, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, type LikeC4ColorScheme, type LikeC4DiagramEventHandlers, type LikeC4DiagramProperties, LikeC4MantineProvider, LikeC4Styles, Markdown, type NodeRenderers, type OnCanvasClick, type OnEdgeClick, type OnNavigateTo, type OnNodeClick, type OpenSourceParams, Overlay, type OverlayProps, type PaddingUnit, type PaddingWithUnit, PortalToContainer, SequenceActorNode, SequenceActorNodeProps, SequenceParallelArea, TagStylesProvider, Toolbar, type Types, ViewGroupNode, ViewGroupNodeProps, type ViewPadding, type WhereOperator, type XYStoreState, compoundDeploymentNode, compoundElementNode, deploymentNode, elementNode, memoEdge, memoNode, sequenceActorNode, useCurrentView, useCurrentViewId, useCurrentViewModel, useDiagram, useDiagramActorRef, useDiagramContext, useDiagramEventHandlers, useEnabledFeatures, useHasProjects, useLikeC4Model, useLikeC4Project, useLikeC4ProjectId, useLikeC4Projects, useLikeC4ProjectsContext, useLikeC4Specification, useLikeC4Styles, useLikeC4ViewModel, useOnDiagramEvent, useOptionalCurrentViewModel, useOptionalLikeC4Model, useSetState, useUpdateEffect, viewGroupNode };
39
+ import { CustomizationProvider } from "../customization/CustomizationContext.mjs";
40
+ import { defineCustomComponents } from "../customization/customizable.mjs";
41
+ import { CustomComponents, Customizables } from "../customization/customization-types.mjs";
42
+ export { Base, type BaseEdge, type BaseEdgeData, type BaseEdgeProps, type BaseEdgePropsWithData, type BaseNode, type BaseNodeData, type BaseNodeProps, type BaseNodePropsWithData, CompoundActionButton, CompoundActions, CompoundDeploymentNode, CompoundDeploymentNodeProps, CompoundDeploymentToolbar, CompoundDetailsButton, CompoundDetailsButtonWithHandler, CompoundElementNode, CompoundElementNodeProps, CompoundElementToolbar, CompoundNodeContainer, CompoundTitle, type CustomComponents, type Customizables, CustomizationProvider, DefaultHandles, DeploymentElementActions, DeploymentElementToolbar, DeploymentNode, DeploymentNodeProps, type DiagramNodeWithNavigate, ElementActionButtons, ElementActions, ElementData, ElementDetailsButton, ElementDetailsButtonWithHandler, type ElementIconRenderer, type ElementIconRendererProps, ElementNode, ElementNodeContainer, ElementNodeProps, ElementShape, type ElementShapeProps, ElementTag, type ElementTagProps, ElementTags, type ElementTagsProps, ElementToolbar, type EnabledFeatures, ErrorBoundary, ErrorFallback, FramerMotionConfig, GraphElementNode, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, type LikeC4ColorScheme, type LikeC4DiagramEventHandlers, type LikeC4DiagramProperties, LikeC4MantineProvider, LikeC4Styles, Markdown, NodeDrifts, type NodeRenderers, type OnCanvasClick, type OnEdgeClick, type OnNavigateTo, type OnNodeClick, type OpenSourceParams, Overlay, type OverlayProps, type PaddingUnit, type PaddingWithUnit, PortalToContainer, SequenceActorNode, SequenceActorNodeProps, SequenceParallelArea, SequenceSubflowArea, TagStylesProvider, Toolbar, type Types, ViewGroupNode, ViewGroupNodeProps, type ViewPadding, type WhereOperator, type XYStoreState, compoundDeploymentNode, compoundElementNode, defaultNodeRenderer, defineCustomComponents, defineNode, defineNodes, deploymentNode, elementNode, sequenceActorNode, useEnabledFeatures, viewGroupNode, wrapNode };
@@ -1,20 +1,11 @@
1
- import { useUpdateEffect } from "../hooks/useUpdateEffect.mjs";
1
+ import { compoundDeploymentNode, compoundElementNode, defaultNodeRenderer, defineNode, defineNodes, deploymentNode, elementNode, sequenceActorNode, viewGroupNode, wrapNode } from "./customNodes.mjs";
2
2
  import { Base } from "../base/Base.mjs";
3
- import { useDiagramEventHandlers } from "../context/DiagramEventHandlers.mjs";
4
- import { useSetState } from "../hooks/useSetState.mjs";
5
3
  import { IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, useEnabledFeatures } from "../context/DiagramFeatures.mjs";
6
- import { LikeC4MantineProvider } from "../LikeC4MantineProvider.mjs";
4
+ import { Overlay } from "../overlays/overlay/Overlay.mjs";
5
+ import { PortalToContainer } from "../components/PortalToContainer.mjs";
7
6
  import { FramerMotionConfig } from "../context/FramerMotionConfig.mjs";
8
- import { useDiagram, useDiagramActorRef } from "../hooks/safeContext.mjs";
9
- import { useDiagramContext, useOnDiagramEvent } from "../hooks/useDiagram.mjs";
10
- import { useCurrentView, useCurrentViewId } from "../hooks/useCurrentView.mjs";
11
- import { useOptionalCurrentViewModel, useOptionalLikeC4Model } from "../context/LikeC4ModelContext.mjs";
12
- import { useLikeC4Model, useLikeC4Specification, useLikeC4ViewModel } from "../hooks/useLikeC4Model.mjs";
13
- import { useLikeC4Styles } from "../hooks/useLikeC4Styles.mjs";
14
- import { TagStylesProvider } from "../context/TagStylesContext.mjs";
15
7
  import { ErrorBoundary, ErrorFallback } from "../components/ErrorFallback.mjs";
16
- import { useCurrentViewModel } from "../hooks/useCurrentViewModel.mjs";
17
- import { useHasProjects, useLikeC4Project, useLikeC4ProjectId, useLikeC4Projects, useLikeC4ProjectsContext } from "../hooks/useLikeC4Project.mjs";
8
+ import { LikeC4MantineProvider } from "../LikeC4MantineProvider.mjs";
18
9
  import { CompoundActionButton } from "../base-primitives/compound/CompoundActionButton.mjs";
19
10
  import { CompoundDetailsButton } from "../base-primitives/compound/CompoundDetailsButton.mjs";
20
11
  import { CompoundNodeContainer } from "../base-primitives/compound/CompoundNodeContainer.mjs";
@@ -26,19 +17,20 @@ import { ElementDetailsButton } from "../base-primitives/element/ElementDetailsB
26
17
  import { ElementNodeContainer } from "../base-primitives/element/ElementNodeContainer.mjs";
27
18
  import { ElementShape } from "../base-primitives/element/ElementShape.mjs";
28
19
  import { ElementTag, ElementTags } from "../base-primitives/element/ElementTags.mjs";
29
- import { memoEdge } from "../base-primitives/memoEdge.mjs";
30
- import { memoNode } from "../base-primitives/memoNode.mjs";
31
20
  import { DefaultHandles } from "../base-primitives/NodeHandles.mjs";
32
21
  import { CompoundActions } from "../likec4diagram/custom/nodes/CompoundActions.mjs";
33
22
  import { DeploymentElementActions, ElementActions } from "../likec4diagram/custom/nodes/ElementActions.mjs";
23
+ import { GraphElementNode } from "../likec4diagram/custom/nodes/GraphElementNode.mjs";
24
+ import { NodeDrifts } from "../likec4diagram/custom/nodes/NodeDrifts.mjs";
34
25
  import { Toolbar } from "../likec4diagram/custom/nodes/toolbar/Toolbar.mjs";
35
26
  import { CompoundDeploymentToolbar, CompoundElementToolbar } from "../likec4diagram/custom/nodes/toolbar/CompoundToolbar.mjs";
36
27
  import { DeploymentElementToolbar, ElementToolbar } from "../likec4diagram/custom/nodes/toolbar/ElementToolbar.mjs";
37
28
  import { CompoundDeploymentNode, CompoundDetailsButtonWithHandler, CompoundElementNode, DeploymentNode, ElementDetailsButtonWithHandler, ElementNode, ViewGroupNode } from "../likec4diagram/custom/nodes/nodes.mjs";
38
29
  import { SequenceActorNode, SequenceParallelArea } from "../likec4diagram/custom/nodes/SequenceActorNode.mjs";
39
- import { compoundDeploymentNode, compoundElementNode, deploymentNode, elementNode, sequenceActorNode, viewGroupNode } from "./customNodes.mjs";
40
- import { Overlay } from "../overlays/overlay/Overlay.mjs";
41
- import { PortalToContainer } from "../components/PortalToContainer.mjs";
30
+ import { SequenceSubflowArea } from "../likec4diagram/custom/nodes/SequenceSubFlow.mjs";
42
31
  import { LikeC4Styles } from "../LikeC4Styles.mjs";
32
+ import { TagStylesProvider } from "../context/TagStylesContext.mjs";
33
+ import { CustomizationProvider } from "../customization/CustomizationContext.mjs";
34
+ import { defineCustomComponents } from "../customization/customizable.mjs";
43
35
 
44
- export { Base, CompoundActionButton, CompoundActions, CompoundDeploymentNode, CompoundDeploymentToolbar, CompoundDetailsButton, CompoundDetailsButtonWithHandler, CompoundElementNode, CompoundElementToolbar, CompoundNodeContainer, CompoundTitle, DefaultHandles, DeploymentElementActions, DeploymentElementToolbar, DeploymentNode, ElementActionButtons, ElementActions, ElementData, ElementDetailsButton, ElementDetailsButtonWithHandler, ElementNode, ElementNodeContainer, ElementShape, ElementTag, ElementTags, ElementToolbar, ErrorBoundary, ErrorFallback, FramerMotionConfig, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, LikeC4MantineProvider, LikeC4Styles, Markdown, Overlay, PortalToContainer, SequenceActorNode, SequenceParallelArea, TagStylesProvider, Toolbar, ViewGroupNode, compoundDeploymentNode, compoundElementNode, deploymentNode, elementNode, memoEdge, memoNode, sequenceActorNode, useCurrentView, useCurrentViewId, useCurrentViewModel, useDiagram, useDiagramActorRef, useDiagramContext, useDiagramEventHandlers, useEnabledFeatures, useHasProjects, useLikeC4Model, useLikeC4Project, useLikeC4ProjectId, useLikeC4Projects, useLikeC4ProjectsContext, useLikeC4Specification, useLikeC4Styles, useLikeC4ViewModel, useOnDiagramEvent, useOptionalCurrentViewModel, useOptionalLikeC4Model, useSetState, useUpdateEffect, viewGroupNode };
36
+ export { Base, CompoundActionButton, CompoundActions, CompoundDeploymentNode, CompoundDeploymentToolbar, CompoundDetailsButton, CompoundDetailsButtonWithHandler, CompoundElementNode, CompoundElementToolbar, CompoundNodeContainer, CompoundTitle, CustomizationProvider, DefaultHandles, DeploymentElementActions, DeploymentElementToolbar, DeploymentNode, ElementActionButtons, ElementActions, ElementData, ElementDetailsButton, ElementDetailsButtonWithHandler, ElementNode, ElementNodeContainer, ElementShape, ElementTag, ElementTags, ElementToolbar, ErrorBoundary, ErrorFallback, FramerMotionConfig, GraphElementNode, IfEnabled, IfNotEnabled, IfNotReadOnly, IfReadOnly, LikeC4MantineProvider, LikeC4Styles, Markdown, NodeDrifts, Overlay, PortalToContainer, SequenceActorNode, SequenceParallelArea, SequenceSubflowArea, TagStylesProvider, Toolbar, ViewGroupNode, compoundDeploymentNode, compoundElementNode, defaultNodeRenderer, defineCustomComponents, defineNode, defineNodes, deploymentNode, elementNode, sequenceActorNode, useEnabledFeatures, viewGroupNode, wrapNode };
@@ -6,11 +6,9 @@ import { ElementActionButtons } from "../base-primitives/element/ElementActionBu
6
6
  import { ElementData } from "../base-primitives/element/ElementData.mjs";
7
7
  import { ElementDetailsButton } from "../base-primitives/element/ElementDetailsButton.mjs";
8
8
  import { ElementNodeContainer } from "../base-primitives/element/ElementNodeContainer.mjs";
9
- import { ElementShape } from "../base-primitives/element/ElementShape.mjs";
10
- import { ElementTag, ElementTags } from "../base-primitives/element/ElementTags.mjs";
9
+ import { ElementShape, ElementShapeProps } from "../base-primitives/element/ElementShape.mjs";
10
+ import { ElementTag, ElementTagProps, ElementTags, ElementTagsProps } from "../base-primitives/element/ElementTags.mjs";
11
11
  import { Markdown } from "../base-primitives/Markdown.mjs";
12
- import { memoEdge } from "../base-primitives/memoEdge.mjs";
13
- import { memoNode } from "../base-primitives/memoNode.mjs";
14
12
  import { DefaultHandles } from "../base-primitives/NodeHandles.mjs";
15
13
  import "../base-primitives/index.mjs";
16
- export { CompoundActionButton, CompoundDetailsButton, CompoundNodeContainer, CompoundTitle, DefaultHandles, ElementActionButtons, ElementData, ElementDetailsButton, ElementNodeContainer, ElementShape, ElementTag, ElementTags, Markdown, memoEdge, memoNode };
14
+ export { CompoundActionButton, CompoundDetailsButton, CompoundNodeContainer, CompoundTitle, DefaultHandles, ElementActionButtons, ElementData, ElementDetailsButton, ElementNodeContainer, ElementShape, type ElementShapeProps, ElementTag, type ElementTagProps, ElementTags, type ElementTagsProps, Markdown };
@@ -0,0 +1,50 @@
1
+ import { __name } from "../_virtual/_rolldown/runtime.mjs";
2
+ import { CustomComponents } from "./customization-types.mjs";
3
+ import { PropsWithChildren } from "react";
4
+ type CustomizationProviderProps = {
5
+ /**
6
+ * Slot overrides from {@link defineCustomComponents}.
7
+ * Prefer a module-scoped constant so the map identity stays stable across HMR.
8
+ */
9
+ components?: CustomComponents | undefined;
10
+ };
11
+ /**
12
+ * Provides UI slot overrides for registered customizable components
13
+ * (`LikeC4Diagram`, logos, …).
14
+ *
15
+ * Place this above the diagram tree (`LikeC4Diagram` / `ReactLikeC4` / `LikeC4View`).
16
+ * Ordering relative to `LikeC4ModelProvider` does not matter.
17
+ *
18
+ * Overrides support two modes:
19
+ * - **replace** — pass a component that receives the original props
20
+ * - **wrap** — use `wrap` from {@link defineCustomComponents}; receives `{ Original, ...props }`
21
+ *
22
+ * @experimental
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import {
27
+ * CustomizationProvider,
28
+ * defineCustomComponents,
29
+ * } from 'likec4/react'
30
+ *
31
+ * const components = defineCustomComponents(({ wrap }) => ({
32
+ * LogoSvg: () => <span>Brand</span>,
33
+ * LikeC4Diagram: wrap(({ Original, ...props }) => (
34
+ * <Original {...props} pannable={false} />
35
+ * )),
36
+ * }))
37
+ *
38
+ * function App() {
39
+ * return (
40
+ * <CustomizationProvider components={components}>
41
+ * <LikeC4ModelProvider likec4model={model}>
42
+ * <LikeC4View viewId="index" />
43
+ * </LikeC4ModelProvider>
44
+ * </CustomizationProvider>
45
+ * )
46
+ * }
47
+ * ```
48
+ */
49
+ export declare function CustomizationProvider({ components, children }: PropsWithChildren<CustomizationProviderProps>): import("react").JSX.Element;
50
+ export {};