@likec4/diagram 1.30.0 → 1.32.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 (403) hide show
  1. package/README.md +324 -5
  2. package/bundle/chunk-BvTQaUYl.js +21851 -0
  3. package/bundle/custom.js +65 -0
  4. package/bundle/index.js +19910 -40570
  5. package/dist/LikeC4CustomColors.d.ts +2 -7
  6. package/dist/LikeC4CustomColors.js +17 -6
  7. package/dist/LikeC4Diagram.d.ts +3 -2
  8. package/dist/LikeC4Diagram.js +14 -16
  9. package/dist/LikeC4Diagram.props.d.ts +34 -23
  10. package/dist/LikeC4ModelProvider.d.ts +5 -4
  11. package/dist/LikeC4ModelProvider.js +0 -1
  12. package/dist/StaticLikeC4Diagram.d.ts +3 -2
  13. package/dist/StaticLikeC4Diagram.js +2 -2
  14. package/dist/base/BaseXYFlow.js +8 -8
  15. package/dist/base/const.d.ts +1 -1
  16. package/dist/base/const.js +1 -1
  17. package/dist/base/index.d.ts +2 -1
  18. package/dist/base/primitives/compound/CompoundActionButton.d.ts +3 -2
  19. package/dist/base/primitives/compound/CompoundActionButton.js +2 -1
  20. package/dist/base/primitives/compound/CompoundDetailsButton.d.ts +3 -2
  21. package/dist/base/primitives/compound/CompoundDetailsButton.js +2 -1
  22. package/dist/base/primitives/compound/CompoundNodeContainer.d.ts +7 -3
  23. package/dist/base/primitives/compound/CompoundNodeContainer.js +3 -2
  24. package/dist/base/primitives/compound/CompoundTitle.d.ts +1 -1
  25. package/dist/base/primitives/compound/CompoundTitle.js +2 -1
  26. package/dist/base/primitives/customEdge.d.ts +2 -35
  27. package/dist/base/primitives/customEdge.js +2 -2
  28. package/dist/base/primitives/customNode.d.ts +2 -2
  29. package/dist/base/primitives/customNode.js +9 -2
  30. package/dist/base/primitives/edge/EdgeContainer.d.ts +1 -1
  31. package/dist/base/primitives/edge/EdgeContainer.js +0 -1
  32. package/dist/base/primitives/edge/EdgeLabel.css.js +1 -0
  33. package/dist/base/primitives/edge/EdgeLabel.d.ts +3 -3
  34. package/dist/base/primitives/edge/EdgeLabel.js +6 -5
  35. package/dist/base/primitives/edge/EdgeLabelContainer.d.ts +1 -1
  36. package/dist/base/primitives/edge/EdgeLabelContainer.js +0 -2
  37. package/dist/base/primitives/edge/EdgeMarkers.d.ts +1 -1
  38. package/dist/base/primitives/edge/EdgePath.d.ts +1 -1
  39. package/dist/base/primitives/edge/EdgePath.js +2 -2
  40. package/dist/base/primitives/element/ElementActionButtons.js +10 -9
  41. package/dist/base/primitives/element/ElementDetailsButton.js +2 -1
  42. package/dist/base/primitives/element/ElementNodeContainer.d.ts +24 -22
  43. package/dist/base/primitives/element/ElementNodeContainer.js +66 -68
  44. package/dist/base/primitives/element/ElementShape.d.ts +8 -4
  45. package/dist/base/primitives/element/ElementShape.js +4 -3
  46. package/dist/base/primitives/element/ElementTags.d.ts +14 -0
  47. package/dist/base/primitives/element/ElementTags.js +176 -0
  48. package/dist/base/primitives/element/ElementTitle.css.d.ts +1 -1
  49. package/dist/base/primitives/element/ElementTitle.d.ts +5 -4
  50. package/dist/base/primitives/element/ElementTitle.js +6 -7
  51. package/dist/base/primitives/index.d.ts +1 -0
  52. package/dist/base/types.Base.d.ts +54 -0
  53. package/dist/base/types.Base.js +48 -0
  54. package/dist/base/types.d.ts +3 -53
  55. package/dist/bundle/LikeC4View.d.ts +2 -1
  56. package/dist/bundle/LikeC4View.js +13 -8
  57. package/dist/bundle/LikeC4View.props.d.ts +20 -5
  58. package/dist/bundle/ReactLikeC4.d.ts +4 -7
  59. package/dist/bundle/ReactLikeC4.js +4 -4
  60. package/dist/bundle/ShadowRoot.js +3 -3
  61. package/dist/bundle/custom.d.ts +1 -0
  62. package/dist/bundle/index.d.ts +3 -1
  63. package/dist/bundle/index.js +9 -0
  64. package/dist/bundle/styles.css.js +5 -5
  65. package/dist/components/ErrorFallback.d.ts +2 -0
  66. package/dist/components/ErrorFallback.js +29 -0
  67. package/dist/components/SearchControl.js +2 -2
  68. package/dist/context/ControlsCustomLayout.js +0 -1
  69. package/dist/context/DiagramEventHandlers.d.ts +6 -5
  70. package/dist/context/DiagramEventHandlers.js +5 -5
  71. package/dist/context/DiagramFeatures.d.ts +3 -5
  72. package/dist/context/DiagramFeatures.js +11 -40
  73. package/dist/context/EnsureMantine.js +9 -4
  74. package/dist/context/FramerMotionConfig.js +0 -1
  75. package/dist/context/IconRenderer.js +8 -11
  76. package/dist/context/ReduceGraphics.js +6 -6
  77. package/dist/context/RootContainer.js +10 -6
  78. package/dist/context/TagStylesContext.d.ts +7 -0
  79. package/dist/context/TagStylesContext.js +85 -0
  80. package/dist/context/index.d.ts +1 -1
  81. package/dist/custom/components.d.ts +5 -0
  82. package/dist/custom/customNodes.d.ts +228 -0
  83. package/dist/custom/hooks.d.ts +10 -0
  84. package/dist/custom/index.d.ts +4 -0
  85. package/dist/hooks/index.d.ts +1 -1
  86. package/dist/hooks/safeContext.js +3 -3
  87. package/dist/hooks/useCurrentViewId.d.ts +5 -1
  88. package/dist/hooks/useCurrentViewId.js +1 -2
  89. package/dist/hooks/useDiagram.d.ts +77 -12572
  90. package/dist/hooks/useDiagram.js +9 -7
  91. package/dist/hooks/useMantinePortalProps.d.ts +2 -2
  92. package/dist/hooks/useMantinePortalProps.js +2 -2
  93. package/dist/hooks/useSearchActor.d.ts +2 -0
  94. package/dist/hooks/useSearchActor.js +10 -0
  95. package/dist/hooks/useSetState.js +3 -3
  96. package/dist/hooks/useUpdateEffect.js +3 -1
  97. package/dist/hooks/useXYFlow.d.ts +75 -73
  98. package/dist/hooks/useXYFlow.js +7 -3
  99. package/dist/index.d.ts +2 -4
  100. package/dist/index.js +8 -3
  101. package/dist/likec4diagram/DiagramUI.js +9 -4
  102. package/dist/likec4diagram/DiagramXYFlow.d.ts +4 -3
  103. package/dist/likec4diagram/DiagramXYFlow.js +124 -109
  104. package/dist/likec4diagram/custom/edges/NotePopover.js +2 -2
  105. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +12 -15
  106. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +16 -8
  107. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +19 -15
  108. package/dist/likec4diagram/custom/index.d.ts +18 -21
  109. package/dist/likec4diagram/custom/index.js +3 -3
  110. package/dist/likec4diagram/custom/nodes/CompoundActions.js +2 -2
  111. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +27 -4
  112. package/dist/likec4diagram/custom/nodes/ElementActions.js +67 -53
  113. package/dist/likec4diagram/custom/nodes/index.d.ts +8 -0
  114. package/dist/likec4diagram/custom/nodes/nodes.d.ts +10 -0
  115. package/dist/likec4diagram/custom/nodes/nodes.js +105 -0
  116. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +2 -2
  117. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +6 -7
  118. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +3 -3
  119. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +3 -2
  120. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +2 -2
  121. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +5 -5
  122. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  123. package/dist/likec4diagram/types.d.ts +18 -10
  124. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +4 -4
  125. package/dist/likec4diagram/ui/controls/Controls.js +14 -6
  126. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +2 -2
  127. package/dist/likec4diagram/ui/notation/NotationPanel.js +7 -9
  128. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +4 -4
  129. package/dist/likec4diagram/useLayoutConstraints.js +3 -4
  130. package/dist/likec4diagram/useViewToNodesEdges.d.ts +5 -3
  131. package/dist/likec4diagram/useViewToNodesEdges.js +22 -30
  132. package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
  133. package/dist/likec4model/LikeC4ModelContext.js +2 -2
  134. package/dist/likec4model/useLikeC4ElementsTree.d.ts +1 -1
  135. package/dist/likec4model/useLikeC4ElementsTree.js +4 -4
  136. package/dist/likec4model/useLikeC4Model.d.ts +22 -10
  137. package/dist/likec4model/useLikeC4Model.js +13 -9
  138. package/dist/overlays/Overlays.d.ts +2 -3
  139. package/dist/overlays/Overlays.js +9 -33
  140. package/dist/overlays/element-details/ElementDetailsCard.css.js +13 -9
  141. package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
  142. package/dist/overlays/element-details/ElementDetailsCard.js +110 -110
  143. package/dist/overlays/element-details/TabPanelDeployments.d.ts +1 -1
  144. package/dist/overlays/element-details/TabPanelDeployments.js +5 -5
  145. package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
  146. package/dist/overlays/element-details/TabPanelRelationships.js +2 -2
  147. package/dist/overlays/element-details/TabPanelStructure.d.ts +1 -1
  148. package/dist/overlays/element-details/TabPanelStructure.js +3 -3
  149. package/dist/overlays/element-details/actor.d.ts +5482 -18265
  150. package/dist/overlays/element-details/actor.js +0 -2
  151. package/dist/overlays/element-details/actorContext.js +3 -3
  152. package/dist/overlays/overlay/Overlay.css.d.ts +57 -2
  153. package/dist/overlays/overlay/Overlay.css.js +76 -39
  154. package/dist/overlays/overlay/Overlay.d.ts +23 -1
  155. package/dist/overlays/overlay/Overlay.js +40 -29
  156. package/dist/overlays/overlaysActor.d.ts +5 -3
  157. package/dist/overlays/overlaysActor.js +2 -1
  158. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +6 -9
  159. package/dist/overlays/relationship-details/RelationshipDetails.js +15 -15
  160. package/dist/overlays/relationship-details/SelectEdge.js +2 -3
  161. package/dist/overlays/relationship-details/_types.d.ts +7 -6
  162. package/dist/overlays/relationship-details/actor.d.ts +3 -3
  163. package/dist/overlays/relationship-details/actor.js +7 -7
  164. package/dist/overlays/relationship-details/compute.js +3 -3
  165. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +6 -9
  166. package/dist/overlays/relationship-details/custom/edgeTypes.js +2 -2
  167. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +3 -31
  168. package/dist/overlays/relationship-details/custom/nodeTypes.js +4 -0
  169. package/dist/overlays/relationship-details/hooks.d.ts +28 -27
  170. package/dist/overlays/relationship-details/hooks.js +4 -4
  171. package/dist/overlays/relationship-details/layout-to-xyflow.js +1 -0
  172. package/dist/overlays/relationship-details/layout.js +5 -4
  173. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +6 -9
  174. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +8 -8
  175. package/dist/overlays/relationships-browser/SelectElement.js +6 -6
  176. package/dist/overlays/relationships-browser/_types.d.ts +7 -6
  177. package/dist/overlays/relationships-browser/actor.d.ts +64 -429
  178. package/dist/overlays/relationships-browser/actor.js +7 -7
  179. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +6 -9
  180. package/dist/overlays/relationships-browser/custom/edgeTypes.js +2 -2
  181. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +17 -18
  182. package/dist/overlays/relationships-browser/custom/nodeTypes.js +5 -2
  183. package/dist/overlays/relationships-browser/hooks.d.ts +4 -61
  184. package/dist/overlays/relationships-browser/hooks.js +4 -4
  185. package/dist/overlays/relationships-browser/layout.d.ts +2 -2
  186. package/dist/overlays/relationships-browser/layout.js +13 -10
  187. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +4 -3
  188. package/dist/search/Search.d.ts +5 -0
  189. package/dist/search/Search.js +192 -0
  190. package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.js +0 -1
  191. package/dist/search/components/ElementsColumn.d.ts +2 -0
  192. package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.js +26 -25
  193. package/dist/search/components/PickView.d.ts +4 -0
  194. package/dist/search/components/PickView.js +135 -0
  195. package/dist/search/components/SearchByTags.d.ts +1 -0
  196. package/dist/search/components/SearchByTags.js +116 -0
  197. package/dist/search/components/SearchInput.d.ts +2 -0
  198. package/dist/{likec4diagram/ui/search → search/components}/SearchInput.js +53 -35
  199. package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.d.ts +3 -2
  200. package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.js +14 -13
  201. package/dist/search/components/_shared.css.d.ts +4 -0
  202. package/dist/{likec4diagram/ui/search → search/components}/_shared.css.js +26 -35
  203. package/dist/{likec4diagram/ui/search/LikeC4Search.css.d.ts → search/components/styles.css.d.ts} +0 -2
  204. package/dist/search/components/styles.css.js +60 -0
  205. package/dist/{likec4diagram/ui/search → search/components}/utils.d.ts +1 -0
  206. package/dist/{likec4diagram/ui/search → search/components}/utils.js +7 -1
  207. package/dist/search/hooks.d.ts +16 -0
  208. package/dist/search/hooks.js +35 -0
  209. package/dist/search/searchActor.d.ts +90 -0
  210. package/dist/search/searchActor.js +75 -0
  211. package/dist/state/DiagramActorProvider.d.ts +9 -7
  212. package/dist/state/DiagramActorProvider.js +24 -18
  213. package/dist/state/assign.d.ts +0 -1
  214. package/dist/state/assign.js +9 -19
  215. package/dist/state/diagram-machine.d.ts +749 -10678
  216. package/dist/state/diagram-machine.js +121 -55
  217. package/dist/state/hotkeyActor.d.ts +4 -2
  218. package/dist/state/syncManualLayoutActor.d.ts +15 -4
  219. package/dist/state/syncManualLayoutActor.js +2 -1
  220. package/dist/state/types.d.ts +7 -4
  221. package/dist/state/utils.d.ts +3 -1
  222. package/dist/state/utils.js +3 -0
  223. package/dist/styles-font.css +1 -0
  224. package/dist/styles-min.css +1 -0
  225. package/dist/styles-xyflow.css +1 -0
  226. package/dist/styles.css +1 -0
  227. package/dist/styles.css2.js +3 -0
  228. package/package.json +50 -25
  229. package/panda.buildinfo.json +1002 -0
  230. package/src/LikeC4CustomColors.tsx +21 -6
  231. package/src/LikeC4Diagram.props.ts +42 -31
  232. package/src/LikeC4Diagram.tsx +21 -20
  233. package/src/LikeC4ModelProvider.tsx +7 -6
  234. package/src/StaticLikeC4Diagram.tsx +9 -6
  235. package/src/base/Background.tsx +0 -4
  236. package/src/base/const.ts +1 -1
  237. package/src/base/index.ts +2 -1
  238. package/src/base/primitives/compound/CompoundActionButton.tsx +9 -5
  239. package/src/base/primitives/compound/CompoundDetailsButton.tsx +9 -5
  240. package/src/base/primitives/compound/CompoundNodeContainer.tsx +8 -7
  241. package/src/base/primitives/compound/CompoundTitle.tsx +3 -2
  242. package/src/base/primitives/customEdge.ts +1 -1
  243. package/src/base/primitives/{customNode.ts → customNode.tsx} +11 -3
  244. package/src/base/primitives/edge/EdgeContainer.tsx +2 -1
  245. package/src/base/primitives/edge/EdgeLabel.css.ts +1 -0
  246. package/src/base/primitives/edge/EdgeLabel.tsx +20 -15
  247. package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -1
  248. package/src/base/primitives/edge/EdgeMarkers.tsx +2 -1
  249. package/src/base/primitives/edge/EdgePath.tsx +1 -1
  250. package/src/base/primitives/element/ElementActionButtons.tsx +11 -10
  251. package/src/base/primitives/element/ElementDetailsButton.tsx +2 -1
  252. package/src/base/primitives/element/ElementNodeContainer.tsx +87 -80
  253. package/src/base/primitives/element/ElementShape.tsx +12 -10
  254. package/src/base/primitives/element/ElementTags.tsx +182 -0
  255. package/src/base/primitives/element/ElementTitle.tsx +21 -15
  256. package/src/base/primitives/index.ts +1 -0
  257. package/src/base/types.Base.ts +104 -0
  258. package/src/base/types.ts +4 -106
  259. package/src/bundle/LikeC4View.props.ts +23 -5
  260. package/src/bundle/LikeC4View.tsx +20 -19
  261. package/src/bundle/ReactLikeC4.tsx +15 -27
  262. package/src/bundle/custom.ts +1 -0
  263. package/src/bundle/index.ts +20 -1
  264. package/src/bundle/styles.css.ts +1 -1
  265. package/src/components/ErrorFallback.tsx +30 -0
  266. package/src/components/SearchControl.tsx +1 -1
  267. package/src/context/DiagramEventHandlers.tsx +5 -4
  268. package/src/context/DiagramFeatures.tsx +15 -30
  269. package/src/context/EnsureMantine.tsx +13 -3
  270. package/src/context/IconRenderer.tsx +2 -5
  271. package/src/context/ReduceGraphics.tsx +6 -6
  272. package/src/context/RootContainer.tsx +9 -3
  273. package/src/context/TagStylesContext.tsx +96 -0
  274. package/src/context/index.ts +0 -1
  275. package/src/custom/components.ts +49 -0
  276. package/src/custom/customNodes.tsx +254 -0
  277. package/src/custom/hooks.ts +36 -0
  278. package/src/custom/index.ts +5 -0
  279. package/src/hooks/index.ts +1 -1
  280. package/src/hooks/useCurrentViewId.ts +6 -1
  281. package/src/hooks/useDiagram.ts +131 -18
  282. package/src/hooks/useMantinePortalProps.ts +10 -1
  283. package/src/hooks/useSearchActor.ts +11 -0
  284. package/src/hooks/useUpdateEffect.ts +7 -4
  285. package/src/hooks/useXYFlow.ts +5 -0
  286. package/src/index.ts +4 -8
  287. package/src/likec4diagram/DiagramUI.tsx +5 -0
  288. package/src/likec4diagram/DiagramXYFlow.tsx +135 -115
  289. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +10 -1
  290. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +17 -14
  291. package/src/likec4diagram/custom/{index.tsx → index.ts} +2 -2
  292. package/src/likec4diagram/custom/nodes/CompoundActions.tsx +2 -2
  293. package/src/likec4diagram/custom/nodes/ElementActions.tsx +100 -57
  294. package/src/likec4diagram/custom/nodes/index.ts +17 -0
  295. package/src/likec4diagram/custom/nodes/nodes.tsx +127 -0
  296. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +3 -4
  297. package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +3 -3
  298. package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +5 -4
  299. package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +11 -3
  300. package/src/likec4diagram/types.ts +24 -12
  301. package/src/likec4diagram/ui/controls/Controls.tsx +11 -4
  302. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +1 -1
  303. package/src/likec4diagram/ui/notation/NotationPanel.tsx +3 -4
  304. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.tsx +1 -1
  305. package/src/likec4diagram/useViewToNodesEdges.ts +36 -36
  306. package/src/likec4model/LikeC4ModelContext.ts +2 -2
  307. package/src/likec4model/useLikeC4ElementsTree.ts +4 -2
  308. package/src/likec4model/useLikeC4Model.ts +18 -16
  309. package/src/overlays/Overlays.tsx +7 -35
  310. package/src/overlays/element-details/ElementDetailsCard.css.ts +14 -22
  311. package/src/overlays/element-details/ElementDetailsCard.tsx +43 -34
  312. package/src/overlays/element-details/TabPanelDeployments.tsx +3 -2
  313. package/src/overlays/element-details/TabPanelRelationships.tsx +2 -1
  314. package/src/overlays/element-details/TabPanelStructure.tsx +1 -1
  315. package/src/overlays/element-details/actor.ts +2 -2
  316. package/src/overlays/overlay/Overlay.css.ts +75 -38
  317. package/src/overlays/overlay/Overlay.tsx +45 -29
  318. package/src/overlays/overlaysActor.ts +5 -4
  319. package/src/overlays/relationship-details/RelationshipDetails.tsx +5 -5
  320. package/src/overlays/relationship-details/SelectEdge.tsx +0 -2
  321. package/src/overlays/relationship-details/_types.ts +18 -14
  322. package/src/overlays/relationship-details/custom/edgeTypes.tsx +2 -2
  323. package/src/overlays/relationship-details/custom/nodeTypes.tsx +4 -0
  324. package/src/overlays/relationship-details/layout-to-xyflow.ts +1 -0
  325. package/src/overlays/relationship-details/layout.ts +3 -1
  326. package/src/overlays/relationships-browser/SelectElement.tsx +1 -1
  327. package/src/overlays/relationships-browser/_types.ts +20 -16
  328. package/src/overlays/relationships-browser/actor.ts +2 -2
  329. package/src/overlays/relationships-browser/custom/edgeTypes.tsx +2 -2
  330. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +5 -2
  331. package/src/overlays/relationships-browser/layout.ts +12 -7
  332. package/src/overlays/relationships-browser/useViewToNodesEdges.ts +4 -4
  333. package/src/search/Search.tsx +237 -0
  334. package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.css.ts +0 -29
  335. package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.tsx +25 -25
  336. package/src/search/components/PickView.tsx +140 -0
  337. package/src/search/components/SearchByTags.tsx +109 -0
  338. package/src/{likec4diagram/ui/search → search/components}/SearchInput.tsx +63 -36
  339. package/src/{likec4diagram/ui/search → search/components}/ViewsColum.tsx +17 -18
  340. package/src/{likec4diagram/ui/search → search/components}/_shared.css.ts +26 -37
  341. package/src/{likec4diagram/ui/search/LikeC4Search.css.ts → search/components/styles.css.ts} +9 -36
  342. package/src/{likec4diagram/ui/search → search/components}/utils.ts +7 -0
  343. package/src/search/hooks.ts +41 -0
  344. package/src/search/searchActor.ts +99 -0
  345. package/src/state/DiagramActorProvider.tsx +36 -25
  346. package/src/state/assign.ts +10 -10
  347. package/src/state/diagram-machine.ts +128 -60
  348. package/src/state/hotkeyActor.ts +4 -2
  349. package/src/state/syncManualLayoutActor.ts +10 -4
  350. package/src/state/types.ts +11 -3
  351. package/src/state/utils.ts +7 -3
  352. package/src/styles-min.css +2 -0
  353. package/src/styles-xyflow.css +1 -0
  354. package/dist/_virtual/_commonjsHelpers.js +0 -5
  355. package/dist/_virtual/default-map.js +0 -7
  356. package/dist/_virtual/index.js +0 -5
  357. package/dist/_virtual/index2.js +0 -3
  358. package/dist/_virtual/react.production.js +0 -3
  359. package/dist/_virtual/set.js +0 -5
  360. package/dist/_virtual/set2.js +0 -3
  361. package/dist/base/types.js +0 -54
  362. package/dist/base/xyflowMachine.d.ts +0 -212
  363. package/dist/likec4diagram/custom/nodes/nodeTypes.d.ts +0 -8
  364. package/dist/likec4diagram/custom/nodes/nodeTypes.js +0 -92
  365. package/dist/likec4diagram/ui/search/ElementsColumn.d.ts +0 -1
  366. package/dist/likec4diagram/ui/search/LikeC4Search.css.js +0 -87
  367. package/dist/likec4diagram/ui/search/LikeC4Search.d.ts +0 -2
  368. package/dist/likec4diagram/ui/search/LikeC4Search.js +0 -267
  369. package/dist/likec4diagram/ui/search/SearchInput.d.ts +0 -1
  370. package/dist/likec4diagram/ui/search/_shared.css.d.ts +0 -4
  371. package/dist/likec4diagram/ui/search/state.d.ts +0 -19
  372. package/dist/likec4diagram/ui/search/state.js +0 -64
  373. package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/default-map.js +0 -172
  374. package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/set.js +0 -369
  375. package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react.production.js +0 -556
  376. package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/index.js +0 -15
  377. package/dist/packages/core/src/compute-view/relationships-view/compute.js +0 -123
  378. package/dist/packages/core/src/compute-view/relationships-view/utils.js +0 -68
  379. package/dist/packages/core/src/errors/index.js +0 -15
  380. package/dist/packages/core/src/model/connection/model/ConnectionModel.js +0 -121
  381. package/dist/packages/core/src/model/connection/model/find.js +0 -39
  382. package/dist/packages/core/src/model/connection/ops.js +0 -7
  383. package/dist/packages/core/src/utils/const.js +0 -3
  384. package/dist/packages/core/src/utils/fqn.js +0 -51
  385. package/dist/packages/core/src/utils/guards.js +0 -7
  386. package/dist/packages/core/src/utils/iterable/filter.js +0 -21
  387. package/dist/packages/core/src/utils/iterable/find.js +0 -21
  388. package/dist/packages/core/src/utils/iterable/map.js +0 -18
  389. package/dist/packages/core/src/utils/iterable/some.js +0 -21
  390. package/dist/packages/core/src/utils/iterable/to.js +0 -14
  391. package/dist/packages/core/src/utils/set.js +0 -48
  392. package/dist/packages/core/src/utils/string-hash.js +0 -13
  393. package/dist/styles.css.js +0 -3
  394. package/src/base/xyflowMachine.ts +0 -75
  395. package/src/likec4diagram/custom/nodes/nodeTypes.tsx +0 -109
  396. package/src/likec4diagram/ui/search/LikeC4Search.tsx +0 -301
  397. package/src/likec4diagram/ui/search/state.ts +0 -78
  398. /package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.d.ts +0 -0
  399. /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.d.ts +0 -0
  400. /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.js +0 -0
  401. /package/dist/{bundle/font.css.js → styles-font.css2.js} +0 -0
  402. /package/src/{likec4diagram/ui/search → search/components}/ViewsColumn.css.ts +0 -0
  403. /package/src/{bundle/font.css → styles-font.css} +0 -0
@@ -1,5 +1,3 @@
1
- import '@likec4/core';
2
- import '@xyflow/system';
3
1
  import { setup, assign, sendTo, stopChild, spawnChild } from 'xstate';
4
2
  import { relationshipsBrowserLogic } from '../relationships-browser/actor.js';
5
3
 
@@ -1,9 +1,9 @@
1
- import { r as reactExports } from '../../_virtual/index.js';
1
+ import { createContext, useContext } from 'react';
2
2
 
3
- const ElementDetailsActorContext = reactExports.createContext(null);
3
+ const ElementDetailsActorContext = createContext(null);
4
4
  ElementDetailsActorContext.displayName = "ElementDetailsActorContext";
5
5
  const useElementDetailsActorRef = () => {
6
- const ctx = reactExports.useContext(ElementDetailsActorContext);
6
+ const ctx = useContext(ElementDetailsActorContext);
7
7
  if (ctx === null) {
8
8
  throw new Error("ElementDetailsActorRef is not provided");
9
9
  }
@@ -1,5 +1,60 @@
1
- import { SlotRecipeRuntimeFn, SlotRecipeVariantRecord } from '@likec4/styles/types';
1
+ import { SlotRecipeRuntimeFn } from '@likec4/styles/types';
2
2
  export declare const backdropBlur = "--_blur";
3
3
  export declare const backdropOpacity = "--_opacity";
4
4
  export declare const level = "--_level";
5
- export declare const overlay: SlotRecipeRuntimeFn<"body" | "dialog", SlotRecipeVariantRecord<"body" | "dialog">>;
5
+ export declare const overlay: SlotRecipeRuntimeFn<"body" | "dialog", {
6
+ fullscreen: {
7
+ false: {
8
+ dialog: {
9
+ sm: {
10
+ inset: "[var(--_inset) var(--_inset) var(--_offset) var(--_inset)]";
11
+ width: "calc(100vw - 2 * var(--_inset))";
12
+ height: "calc(100vh - var(--_offset) - var(--_inset))";
13
+ "--_border-radius": "6px";
14
+ padding: "6px";
15
+ "--_offset": "1rem";
16
+ };
17
+ md: {
18
+ "--_offset": "1rem";
19
+ };
20
+ lg: {
21
+ "--_offset": "2rem";
22
+ };
23
+ xl: {
24
+ "--_offset": "4rem";
25
+ };
26
+ };
27
+ body: {
28
+ sm: {
29
+ borderRadius: "calc(var(--_border-radius) - 2px)";
30
+ };
31
+ };
32
+ };
33
+ true: {
34
+ dialog: {
35
+ inset: number;
36
+ padding: number;
37
+ };
38
+ };
39
+ };
40
+ withBackdrop: {
41
+ false: {
42
+ dialog: {
43
+ _backdrop: {
44
+ display: "none";
45
+ };
46
+ };
47
+ };
48
+ true: {
49
+ dialog: {
50
+ _backdrop: {
51
+ backdropFilter: "blur(var(--_blur))";
52
+ backgroundColor: {
53
+ _dark: "[rgb(34 34 34 / var(--_opacity))]";
54
+ _light: "[rgb(15 15 15/ var(--_opacity))]";
55
+ };
56
+ };
57
+ };
58
+ };
59
+ };
60
+ }>;
@@ -10,8 +10,8 @@ const dialog = css.raw({
10
10
  boxSizing: "border-box",
11
11
  margin: 0,
12
12
  position: "fixed",
13
- width: "auto",
14
- height: "auto",
13
+ width: "100vw",
14
+ height: "100vh",
15
15
  maxWidth: "100vw",
16
16
  maxHeight: "100vh",
17
17
  background: `mantine.colors.defaultBorder/50`,
@@ -24,60 +24,97 @@ const dialog = css.raw({
24
24
  [offset]: "0px",
25
25
  [inset]: "calc((1 + var(--_level) * 0.75) * var(--_offset))",
26
26
  [backdropOpacity]: "0%",
27
+ [borderRadius]: "0px",
27
28
  _backdrop: {
28
- cursor: "zoom-out",
29
- backdropFilter: `blur(var(${backdropBlur}))`,
30
- backgroundColor: {
31
- _dark: `[rgb(34 34 34 / var(${backdropOpacity}))]`,
32
- _light: `[rgb(15 15 15/ var(${backdropOpacity}))]`
33
- }
34
- },
35
- smDown: {
36
- [borderRadius]: "0px",
37
- border: "none",
38
- inset: 0,
39
- padding: 0,
40
- // [offset]: '0px',
41
- // [inset]: '0px',
42
- width: "100vw",
43
- height: "100vh"
44
- },
45
- sm: {
46
- inset: "[var(--_inset) var(--_inset) var(--_offset) var(--_inset)]",
47
- width: "calc(100vw - 2 * var(--_inset))",
48
- height: "calc(100vh - var(--_offset) - var(--_inset))",
49
- [borderRadius]: "6px",
50
- padding: "6px",
51
- [offset]: "1rem"
52
- },
53
- md: {
54
- [offset]: "1rem"
55
- },
56
- lg: {
57
- [offset]: "2rem"
29
+ cursor: "zoom-out"
58
30
  },
59
- xl: {
60
- [offset]: "4rem"
61
- }
31
+ inset: 0,
32
+ padding: 0
62
33
  });
63
34
  const body = css.raw({
64
35
  position: "relative",
65
36
  containerName: "overlay-dialog",
66
37
  containerType: "size",
67
38
  border: `0 solid transparent`,
68
- background: "mantine.colors.body",
69
39
  overflow: "hidden",
70
40
  width: "100%",
71
41
  height: "100%",
72
- sm: {
73
- borderRadius: `calc(var(${borderRadius}) - 2px)`
74
- }
42
+ background: "mantine.colors.body"
75
43
  });
76
44
  const overlay = sva({
77
45
  slots: ["dialog", "body"],
78
46
  base: {
79
47
  dialog,
80
48
  body
49
+ },
50
+ variants: {
51
+ fullscreen: {
52
+ false: {
53
+ dialog: {
54
+ sm: {
55
+ inset: "[var(--_inset) var(--_inset) var(--_offset) var(--_inset)]",
56
+ width: "calc(100vw - 2 * var(--_inset))",
57
+ height: "calc(100vh - var(--_offset) - var(--_inset))",
58
+ [borderRadius]: "6px",
59
+ padding: "6px",
60
+ [offset]: "1rem"
61
+ },
62
+ md: {
63
+ [offset]: "1rem"
64
+ },
65
+ lg: {
66
+ [offset]: "2rem"
67
+ },
68
+ xl: {
69
+ [offset]: "4rem"
70
+ }
71
+ },
72
+ body: {
73
+ sm: {
74
+ borderRadius: `calc(var(${borderRadius}) - 2px)`
75
+ }
76
+ }
77
+ },
78
+ true: {
79
+ dialog: {
80
+ inset: 0,
81
+ padding: 0
82
+ }
83
+ }
84
+ },
85
+ // transparent: {
86
+ // false: {
87
+ // },
88
+ // true: {
89
+ // dialog: {
90
+ // background: 'transparent',
91
+ // },
92
+ // },
93
+ // },
94
+ withBackdrop: {
95
+ false: {
96
+ dialog: {
97
+ _backdrop: {
98
+ display: "none"
99
+ }
100
+ }
101
+ },
102
+ true: {
103
+ dialog: {
104
+ _backdrop: {
105
+ backdropFilter: `blur(var(${backdropBlur}))`,
106
+ backgroundColor: {
107
+ _dark: `[rgb(34 34 34 / var(${backdropOpacity}))]`,
108
+ _light: `[rgb(15 15 15/ var(${backdropOpacity}))]`
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ },
115
+ defaultVariants: {
116
+ fullscreen: false,
117
+ withBackdrop: true
81
118
  }
82
119
  });
83
120
 
@@ -1,11 +1,33 @@
1
- import { ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
1
+ import { PropsWithChildren, ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
2
+ export type OverlayProps = PropsWithChildren<{
3
+ fullscreen?: boolean | undefined;
4
+ withBackdrop?: boolean | undefined;
5
+ overlayLevel?: number;
6
+ className?: string;
7
+ classes?: {
8
+ dialog?: string;
9
+ body?: string;
10
+ };
11
+ backdrop?: {
12
+ opacity?: number;
13
+ };
14
+ openDelay?: number;
15
+ onClose: () => void;
16
+ onClick?: never;
17
+ }>;
2
18
  export declare const Overlay: ForwardRefExoticComponent<{
19
+ fullscreen?: boolean | undefined;
20
+ withBackdrop?: boolean | undefined;
3
21
  overlayLevel?: number;
4
22
  className?: string;
5
23
  classes?: {
6
24
  dialog?: string;
7
25
  body?: string;
8
26
  };
27
+ backdrop?: {
28
+ opacity?: number;
29
+ };
30
+ openDelay?: number;
9
31
  onClose: () => void;
10
32
  onClick?: never;
11
33
  } & {
@@ -1,26 +1,31 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { cx } from '@likec4/styles/css';
3
- import { RemoveScroll, Box } from '@mantine/core';
3
+ import { RemoveScroll } from '@mantine/core';
4
4
  import { useMergedRef } from '@mantine/hooks';
5
- import { useSyncedRef, useDebouncedCallback, useTimeoutEffect } from '@react-hookz/web';
5
+ import { useDebouncedCallback, useTimeoutEffect } from '@react-hookz/web';
6
6
  import { useReducedMotionConfig, m } from 'motion/react';
7
- import { r as reactExports } from '../../_virtual/index.js';
7
+ import { forwardRef, useState, useRef, useLayoutEffect } from 'react';
8
8
  import { overlay, backdropOpacity, backdropBlur, level } from './Overlay.css.js';
9
9
  import { stopPropagation } from '../../utils/xyflow.js';
10
10
 
11
- const Overlay = reactExports.forwardRef(({
11
+ const Overlay = forwardRef(({
12
12
  onClose,
13
13
  className,
14
14
  classes,
15
15
  overlayLevel = 0,
16
16
  children,
17
+ fullscreen = false,
18
+ withBackdrop = true,
19
+ backdrop,
20
+ openDelay = 130,
17
21
  ...rest
18
22
  }, ref) => {
19
- const [opened, setOpened] = reactExports.useState(false);
20
- const dialogRef = reactExports.useRef(null);
21
- const isClosingRef = reactExports.useRef(false);
23
+ const [opened, setOpened] = useState(openDelay === 0);
24
+ const dialogRef = useRef(null);
25
+ const isClosingRef = useRef(false);
22
26
  const motionNotReduced = useReducedMotionConfig() !== true;
23
- const onCloseRef = useSyncedRef(onClose);
27
+ const onCloseRef = useRef(onClose);
28
+ onCloseRef.current = onClose;
24
29
  const close = useDebouncedCallback(
25
30
  () => {
26
31
  if (isClosingRef.current) return;
@@ -30,33 +35,27 @@ const Overlay = reactExports.forwardRef(({
30
35
  [],
31
36
  50
32
37
  );
33
- reactExports.useEffect(() => {
34
- const cancel = (e) => {
35
- e.preventDefault();
36
- e.stopPropagation();
37
- close();
38
- };
39
- dialogRef.current?.addEventListener("cancel", cancel, { capture: true });
40
- return () => {
41
- dialogRef.current?.removeEventListener("cancel", cancel, { capture: true });
42
- };
43
- }, []);
44
- useTimeoutEffect(() => {
38
+ useLayoutEffect(() => {
45
39
  if (!dialogRef.current?.open) {
46
40
  dialogRef.current?.showModal();
47
41
  }
48
- }, 30);
42
+ }, []);
49
43
  useTimeoutEffect(() => {
50
44
  setOpened(true);
51
- }, 120);
45
+ }, openDelay > 0 ? openDelay : void 0);
52
46
  const styles = overlay({
53
- level: overlayLevel
47
+ fullscreen,
48
+ withBackdrop
54
49
  });
50
+ let targetBackdropOpacity = overlayLevel > 0 ? "50%" : "60%";
51
+ if (backdrop?.opacity !== void 0) {
52
+ targetBackdropOpacity = `${backdrop.opacity * 100}%`;
53
+ }
55
54
  return /* @__PURE__ */ jsx(
56
55
  m.dialog,
57
56
  {
58
57
  ref: useMergedRef(dialogRef, ref),
59
- className: cx(RemoveScroll.classNames.fullWidth, styles.dialog, classes?.dialog, className),
58
+ className: cx(RemoveScroll.classNames.fullWidth, classes?.dialog, className, styles.dialog),
60
59
  layout: true,
61
60
  style: {
62
61
  // @ts-ignore
@@ -66,28 +65,35 @@ const Overlay = reactExports.forwardRef(({
66
65
  initial: {
67
66
  [backdropBlur]: "0px",
68
67
  [backdropOpacity]: "0%",
69
- scale: overlayLevel > 0 ? 0.9 : 1.075,
68
+ scale: 0.95,
69
+ originY: 0,
70
+ translateY: -20,
70
71
  opacity: 0
71
72
  },
72
73
  animate: {
73
74
  [backdropBlur]: overlayLevel > 0 ? "4px" : "8px",
74
- [backdropOpacity]: overlayLevel > 0 ? "50%" : "60%",
75
+ [backdropOpacity]: targetBackdropOpacity,
75
76
  scale: 1,
76
77
  opacity: 1,
78
+ translateY: 0,
77
79
  transition: {
78
80
  delay: 0.075
79
81
  }
80
82
  },
81
83
  exit: {
82
- scale: 1.2,
83
84
  opacity: 0,
85
+ scale: 0.98,
86
+ translateY: -20,
87
+ transition: {
88
+ duration: 0.1
89
+ },
84
90
  [backdropBlur]: "0px",
85
91
  [backdropOpacity]: "0%"
86
92
  }
87
93
  } : {
88
94
  initial: {
89
95
  [backdropBlur]: "8px",
90
- [backdropOpacity]: "60%"
96
+ [backdropOpacity]: targetBackdropOpacity
91
97
  }
92
98
  },
93
99
  onClick: (e) => {
@@ -97,6 +103,11 @@ const Overlay = reactExports.forwardRef(({
97
103
  return;
98
104
  }
99
105
  },
106
+ onCancel: (e) => {
107
+ e.preventDefault();
108
+ e.stopPropagation();
109
+ close();
110
+ },
100
111
  onDoubleClick: stopPropagation,
101
112
  onPointerDown: stopPropagation,
102
113
  onClose: (e) => {
@@ -104,7 +115,7 @@ const Overlay = reactExports.forwardRef(({
104
115
  close();
105
116
  },
106
117
  ...rest,
107
- children: /* @__PURE__ */ jsx(RemoveScroll, { forwardProps: true, removeScrollBar: false, children: /* @__PURE__ */ jsx(Box, { className: cx(styles.body, "overlay-body", classes?.body), children: opened && /* @__PURE__ */ jsx(Fragment, { children }) }) })
118
+ children: /* @__PURE__ */ jsx(RemoveScroll, { forwardProps: true, removeScrollBar: false, children: /* @__PURE__ */ jsx("div", { className: cx(classes?.body, styles.body, "overlay-body"), children: opened && /* @__PURE__ */ jsx(Fragment, { children }) }) })
108
119
  }
109
120
  );
110
121
  });
@@ -1,4 +1,4 @@
1
- import { Fqn } from '@likec4/core';
1
+ import { Fqn } from '@likec4/core/types';
2
2
  import { ActorLogicFrom, ActorRefFrom, SnapshotFrom, StateMachine, ActorRefFromLogic, CallbackActorLogic, EventObject, NonReducibleUnknown, Values, MetaObject } from 'xstate';
3
3
  import { Overlays } from './types';
4
4
  import { ElementDetailsLogic } from './element-details/actor';
@@ -38,7 +38,7 @@ export type OverlayActorEmitedEvent = {
38
38
  } | {
39
39
  type: 'idle';
40
40
  };
41
- export declare const overlaysActorLogic: StateMachine<OverlaysContext, OverlayActorEvent, {
41
+ declare const _overlaysActorLogic: StateMachine<OverlaysContext, OverlayActorEvent, {
42
42
  [x: `elementDetails-${number}`]: ActorRefFromLogic<ElementDetailsLogic> | undefined;
43
43
  [x: `relationshipsBrowser-${number}`]: ActorRefFromLogic<Overlays.RelationshipsBrowser.Logic> | undefined;
44
44
  [x: `relationshipDetails-${number}`]: ActorRefFromLogic<Overlays.RelationshipDetails.Logic> | undefined;
@@ -183,8 +183,10 @@ export declare const overlaysActorLogic: StateMachine<OverlaysContext, OverlayAc
183
183
  };
184
184
  readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
185
185
  }>;
186
- export interface OverlaysActorLogic extends ActorLogicFrom<typeof overlaysActorLogic> {
186
+ export interface OverlaysActorLogic extends ActorLogicFrom<typeof _overlaysActorLogic> {
187
187
  }
188
+ export declare const overlaysActorLogic: OverlaysActorLogic;
188
189
  export type OverlaysActorSnapshot = SnapshotFrom<OverlaysActorLogic>;
189
190
  export interface OverlaysActorRef extends ActorRefFrom<OverlaysActorLogic> {
190
191
  }
192
+ export {};
@@ -19,7 +19,7 @@ const hotkeyLogic = fromCallback(({ sendBack }) => {
19
19
  document.body.removeEventListener("keydown", handler, { capture: true });
20
20
  };
21
21
  });
22
- const overlaysActorLogic = setup({
22
+ const _overlaysActorLogic = setup({
23
23
  types: {
24
24
  context: {},
25
25
  events: {},
@@ -231,5 +231,6 @@ const overlaysActorLogic = setup({
231
231
  "closeAllOverlays"
232
232
  ]
233
233
  });
234
+ const overlaysActorLogic = _overlaysActorLogic;
234
235
 
235
236
  export { overlaysActorLogic };
@@ -1,17 +1,18 @@
1
1
  import { RelationshipDetailsActorRef } from './actor';
2
- import { NamedExoticComponent, CSSProperties, ReactNode } from 'react';
2
+ import { FunctionComponent, CSSProperties, ReactNode } from 'react';
3
3
  import { Position } from '@xyflow/system';
4
+ import { EdgeData, Dimmed } from '../../base/types.Base';
4
5
  import { RelationId, Color, ViewId, RelationshipLineType } from '@likec4/core';
5
6
  export declare const edgeTypes: {
6
- relationship: NamedExoticComponent<{
7
+ relationship: FunctionComponent<{
7
8
  id: string;
8
9
  selected?: boolean;
9
10
  selectable?: boolean;
10
11
  deletable?: boolean;
11
12
  style?: CSSProperties;
13
+ animated?: boolean;
12
14
  source: string;
13
15
  target: string;
14
- animated?: boolean;
15
16
  sourceX: number;
16
17
  sourceY: number;
17
18
  targetX: number;
@@ -30,11 +31,10 @@ export declare const edgeTypes: {
30
31
  markerEnd?: string;
31
32
  pathOptions?: any;
32
33
  interactionWidth?: number;
33
- data: {
34
+ data: EdgeData & {
34
35
  hovered?: boolean;
35
36
  active?: boolean;
36
- dimmed?: import("../../base").Base.Dimmed;
37
- } & {
37
+ dimmed?: Dimmed;
38
38
  relationId: RelationId;
39
39
  color: Color | undefined;
40
40
  label: string | null;
@@ -42,9 +42,6 @@ export declare const edgeTypes: {
42
42
  description?: string | undefined | undefined;
43
43
  navigateTo: ViewId | null;
44
44
  line: RelationshipLineType;
45
- hovered?: boolean;
46
- active?: boolean;
47
- dimmed?: import("../../base").Base.Dimmed;
48
45
  };
49
46
  }>;
50
47
  };
@@ -1,14 +1,14 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { invariant, nonNullable, isAncestor } from '@likec4/core';
3
+ import { cx } from '@likec4/styles/css';
3
4
  import { ActionIcon, Group } from '@mantine/core';
4
5
  import { useCallbackRef, useStateHistory } from '@mantine/hooks';
5
6
  import { IconX, IconChevronLeft, IconChevronRight } from '@tabler/icons-react';
6
7
  import { useSelector } from '@xstate/react';
7
8
  import { ReactFlowProvider, Panel, useStoreApi, useReactFlow } from '@xyflow/react';
8
- import clsx from 'clsx';
9
9
  import { deepEqual } from 'fast-equals';
10
10
  import { LayoutGroup, AnimatePresence, m } from 'motion/react';
11
- import { r as reactExports } from '../../_virtual/index.js';
11
+ import { useRef, memo, useMemo, useEffect } from 'react';
12
12
  import { isTruthy, find } from 'remeda';
13
13
  import { BaseXYFlow } from '../../base/BaseXYFlow.js';
14
14
  import { useLikeC4Model } from '../../likec4model/useLikeC4Model.js';
@@ -27,7 +27,7 @@ const edgeTypes = {
27
27
  relationship: RelationshipEdge
28
28
  };
29
29
  function RelationshipDetails({ actorRef }) {
30
- const initialRef = reactExports.useRef(null);
30
+ const initialRef = useRef(null);
31
31
  if (initialRef.current == null) {
32
32
  initialRef.current = {
33
33
  defaultNodes: [],
@@ -43,12 +43,12 @@ const selectSubject = (state) => ({
43
43
  ...state.context.subject,
44
44
  viewId: state.context.viewId
45
45
  });
46
- const SyncRelationshipDetailsXYFlow = reactExports.memo(() => {
46
+ const SyncRelationshipDetailsXYFlow = memo(() => {
47
47
  const actor = useRelationshipDetailsActor();
48
48
  const subject = useSelector(actor, selectSubject, deepEqual);
49
- const likec4model = useLikeC4Model(true);
49
+ const likec4model = useLikeC4Model();
50
50
  const view = likec4model.findView(subject.viewId) ?? null;
51
- const data = reactExports.useMemo(() => {
51
+ const data = useMemo(() => {
52
52
  let data2;
53
53
  if ("edgeId" in subject && isTruthy(subject.edgeId)) {
54
54
  invariant(view, `view ${subject.viewId} not found`);
@@ -70,12 +70,12 @@ const SyncRelationshipDetailsXYFlow = reactExports.memo(() => {
70
70
  ]);
71
71
  const store = useStoreApi();
72
72
  const instance = useReactFlow();
73
- reactExports.useEffect(() => {
73
+ useEffect(() => {
74
74
  if (instance.viewportInitialized) {
75
75
  actor.send({ type: "xyflow.init", instance, store });
76
76
  }
77
77
  }, [store, instance.viewportInitialized, actor]);
78
- reactExports.useEffect(() => {
78
+ useEffect(() => {
79
79
  if (data !== null) {
80
80
  actor.send({ type: "update.layoutData", data });
81
81
  }
@@ -89,7 +89,7 @@ const selector = ({ context }) => ({
89
89
  nodes: context.xynodes,
90
90
  edges: context.xyedges
91
91
  });
92
- const RelationshipDetailsInner = reactExports.memo(() => {
92
+ const RelationshipDetailsInner = memo(() => {
93
93
  const browser = useRelationshipDetails();
94
94
  const {
95
95
  initialized,
@@ -102,7 +102,7 @@ const RelationshipDetailsInner = reactExports.memo(() => {
102
102
  id: browser.rootElementId,
103
103
  nodes,
104
104
  edges,
105
- className: clsx(initialized ? "initialized" : "not-initialized"),
105
+ className: cx(initialized ? "initialized" : "not-initialized"),
106
106
  nodeTypes,
107
107
  edgeTypes,
108
108
  onNodesChange: useCallbackRef((changes) => {
@@ -168,16 +168,16 @@ const topLeftPanelselector = ({ context }) => ({
168
168
  subject: context.subject,
169
169
  viewId: context.viewId
170
170
  });
171
- const TopLeftPanel = reactExports.memo(() => {
171
+ const TopLeftPanel = memo(() => {
172
172
  const { subject, viewId } = useRelationshipDetailsState(topLeftPanelselector, deepEqual);
173
- const likec4model = useLikeC4Model(true);
173
+ const likec4model = useLikeC4Model();
174
174
  const view = likec4model.findView(viewId);
175
175
  if (!view || !view.isDiagram()) {
176
176
  return null;
177
177
  }
178
178
  const edges = [...view.edges()];
179
179
  let edge = "edgeId" in subject && isTruthy(subject.edgeId) ? edges.find((e) => e.id === subject.edgeId) : find(edges, (e) => e.source.element?.id === subject.source && e.target.element?.id === subject.target) || find(edges, (e) => {
180
- return (e.source.element?.id === subject.source || isAncestor(e.source.element?.id ?? "--", subject.source ?? "__")) && (e.target.element?.id === subject.target || isAncestor(e.target.element?.id ?? "", subject.target ?? "__"));
180
+ return (e.source.element?.id === subject.source || isAncestor(e.source.element?.id ?? "__", subject.source ?? "__")) && (e.target.element?.id === subject.target || isAncestor(e.target.element?.id ?? "__", subject.target ?? "__"));
181
181
  });
182
182
  if (!edge) {
183
183
  return null;
@@ -188,12 +188,12 @@ const TopLeftPanelInner = ({ edge, view }) => {
188
188
  const browser = useRelationshipDetails();
189
189
  const edgeId = edge.id;
190
190
  const [historyEdgeId, historyOps, { history, current }] = useStateHistory(edge.id);
191
- reactExports.useEffect(() => {
191
+ useEffect(() => {
192
192
  if (historyEdgeId !== edgeId) {
193
193
  historyOps.set(edgeId);
194
194
  }
195
195
  }, [edgeId]);
196
- reactExports.useEffect(() => {
196
+ useEffect(() => {
197
197
  if (historyEdgeId !== edgeId) {
198
198
  browser.navigateTo(historyEdgeId);
199
199
  }
@@ -1,8 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import '@likec4/core';
3
2
  import { Popover, PopoverTarget, Button, Box, Text, ThemeIcon, PopoverDropdown, ScrollAreaAutosize } from '@mantine/core';
4
3
  import { IconArrowRight, IconSelector } from '@tabler/icons-react';
5
- import { r as reactExports } from '../../_virtual/index.js';
4
+ import { useRef } from 'react';
6
5
  import { useRelationshipDetails } from './hooks.js';
7
6
  import { edgeSource, edgeTarget, scrollArea, edgeGrid, edgeRow, edgeArrow, edgeLabel } from './SelectEdge.css.js';
8
7
 
@@ -11,7 +10,7 @@ const SelectEdge = ({
11
10
  view
12
11
  }) => {
13
12
  const browser = useRelationshipDetails();
14
- const viewport = reactExports.useRef(null);
13
+ const viewport = useRef(null);
15
14
  const edgeSource$1 = view.nodes.find((n) => n.id === edge.source);
16
15
  const edgeTarget$1 = view.nodes.find((n) => n.id === edge.target);
17
16
  const edges = view.edges.flatMap((edge2) => {
@@ -1,4 +1,5 @@
1
- import { Color, DiagramNode, Fqn, IconUrl, RelationId, RelationshipLineType, ViewId } from '@likec4/core';
1
+ import { Color, DiagramNode, Fqn, IconUrl, RelationId, RelationshipLineType, ViewId } from '@likec4/core/types';
2
+ import { Simplify } from 'type-fest';
2
3
  import { Base, NonOptional, ReactFlowEdge, ReactFlowNode } from '../../base/types';
3
4
  export declare namespace RelationshipDetailsTypes {
4
5
  type Column = 'sources' | 'targets';
@@ -9,24 +10,24 @@ export declare namespace RelationshipDetailsTypes {
9
10
  in: string[];
10
11
  out: string[];
11
12
  };
12
- type ElementNodeData = Base.NodeData<NonOptional<Pick<DiagramNode, 'title' | 'technology' | 'description' | 'color' | 'shape' | 'width' | 'height' | 'navigateTo' | 'style'>> & {
13
+ type ElementNodeData = Base.NodeData & NonOptional<Pick<DiagramNode, 'title' | 'technology' | 'description' | 'color' | 'shape' | 'width' | 'height' | 'navigateTo' | 'style' | 'tags'>> & {
13
14
  column: Column;
14
15
  fqn: Fqn;
15
16
  icon: IconUrl;
16
17
  ports: Ports;
17
- }>;
18
- type CompoundNodeData = Base.NodeData<NonOptional<Pick<DiagramNode, 'title' | 'color' | 'style'>> & {
18
+ };
19
+ type CompoundNodeData = Base.NodeData & NonOptional<Pick<DiagramNode, 'title' | 'color' | 'style'>> & {
19
20
  column: Column;
20
21
  fqn: Fqn;
21
22
  depth: number;
22
23
  icon?: IconUrl;
23
24
  ports: Ports;
24
- }>;
25
+ };
25
26
  type ElementNode = ReactFlowNode<ElementNodeData, 'element'>;
26
27
  type CompoundNode = ReactFlowNode<CompoundNodeData, 'compound'>;
27
28
  type Node = ElementNode | CompoundNode;
28
29
  type NodeData = Node['data'];
29
- type EdgeData = Base.EdgeData<{
30
+ type EdgeData = Simplify<Base.EdgeData & {
30
31
  relationId: RelationId;
31
32
  color: Color | undefined;
32
33
  label: string | null;