@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
@@ -6,20 +6,6 @@ const buttonFocused = css.raw({
6
6
  borderColor: "mantine.colors.primary[9]"
7
7
  });
8
8
  const _treenodefocus = ".mantine-Tree-node:focus > .mantine-Tree-label &";
9
- function colors(color, hover) {
10
- return {
11
- color,
12
- _groupHover: {
13
- color: hover
14
- },
15
- _groupFocus: {
16
- color: hover
17
- },
18
- [_treenodefocus]: {
19
- color: hover
20
- }
21
- };
22
- }
23
9
  const button = css.raw({
24
10
  display: "flex",
25
11
  width: "100%",
@@ -27,7 +13,7 @@ const button = css.raw({
27
13
  rounded: "sm",
28
14
  padding: `12px 8px 12px 14px`,
29
15
  minHeight: "60px",
30
- gap: "8",
16
+ gap: 8,
31
17
  // alignItems: 'flex-start',
32
18
  // transition: `all 50ms ${easings.inOut}`,
33
19
  border: `1px solid`,
@@ -65,9 +51,14 @@ const iconSize = {
65
51
  ref: "var(--likec4-icon-size, 24px)"
66
52
  };
67
53
  const icon = css.raw({
68
- ...colors("mantine.colors.dimmed", "mantine.colors.primary[0]"),
69
- _light: {
70
- ...colors("mantine.colors.gray[6]", "mantine.colors.primary[3]")
54
+ color: {
55
+ base: "mantine.colors.dimmed",
56
+ _light: "mantine.colors.gray[5]",
57
+ _groupHover: "mantine.colors.primary[0]",
58
+ _groupFocus: "mantine.colors.primary[0]"
59
+ },
60
+ [_treenodefocus]: {
61
+ color: "mantine.colors.primary[0]"
71
62
  },
72
63
  flex: `0 0 ${iconSize.ref}`,
73
64
  height: iconSize.ref,
@@ -102,23 +93,23 @@ const title = css.raw({
102
93
  [`:where([data-disabled]) &`]: {
103
94
  opacity: 0.4
104
95
  },
105
- // color: 'mantine.colors.dark[1]',
106
- // _groupHover: {
107
- // color: 'mantine.colors.primary[1]',
108
- // },
109
- // _groupFocus: {
110
- // color: 'mantine.colors.primary[1]',
111
- // },
112
- ...colors("mantine.colors.dark[1]", "mantine.colors.primary[1]"),
113
- _light: {
114
- ...colors("mantine.colors.gray[6]", "mantine.colors.primary[3]")
115
- // color: `mantine.colors.gray[6]`,
116
- // _groupHover: {
117
- // color: 'mantine.colors.primary[3]',
118
- // },
119
- // _groupFocus: {
120
- // color: 'mantine.colors.primary[3]',
121
- // },
96
+ color: {
97
+ base: "mantine.colors.dark[1]",
98
+ _light: "mantine.colors.gray[7]",
99
+ _groupHover: {
100
+ base: "mantine.colors.primary[1]",
101
+ _light: "mantine.colors.white"
102
+ },
103
+ _groupFocus: {
104
+ base: "mantine.colors.primary[1]",
105
+ _light: "mantine.colors.white"
106
+ }
107
+ },
108
+ [_treenodefocus]: {
109
+ color: {
110
+ base: "mantine.colors.primary[1]",
111
+ _light: "mantine.colors.white"
112
+ }
122
113
  }
123
114
  });
124
115
  const descriptionColor = css.raw({
@@ -1,6 +1,4 @@
1
1
  export { focusable } from './_shared.css';
2
- export declare const backdrop: string;
3
- export declare const root: string;
4
2
  export declare const input: string;
5
3
  export declare const pickviewBackdrop: string;
6
4
  export declare const pickview: string;
@@ -0,0 +1,60 @@
1
+ import { css } from '@likec4/styles/css';
2
+
3
+ const input = css({
4
+ border: "transparent",
5
+ background: {
6
+ base: "transparent",
7
+ _focusWithin: {
8
+ base: `mantine.colors.gray[4]/55 !important`,
9
+ _dark: `mantine.colors.dark[5]/55 !important`
10
+ },
11
+ _groupHover: {
12
+ base: "mantine.colors.gray[3]/35",
13
+ _dark: "mantine.colors.dark[5]/35"
14
+ }
15
+ }
16
+ });
17
+ const pickviewBackdrop = css({
18
+ position: "absolute",
19
+ inset: 0,
20
+ width: "100%",
21
+ height: "100%",
22
+ backgroundColor: "[rgb(34 34 34 / 0.7)]",
23
+ zIndex: 902,
24
+ backdropFilter: "auto",
25
+ backdropBlur: "10px",
26
+ _light: {
27
+ backgroundColor: "[rgb(255 255 255 / 0.6)]"
28
+ }
29
+ });
30
+ const pickview = css({
31
+ position: "absolute",
32
+ top: "2rem",
33
+ left: "50%",
34
+ width: "100%",
35
+ maxWidth: "600px",
36
+ minWidth: "200px",
37
+ transform: "translateX(-50%)",
38
+ zIndex: 903
39
+ });
40
+ const pickviewGroup = css({
41
+ marginTop: "8px",
42
+ "& + &": {
43
+ marginTop: "32px"
44
+ }
45
+ });
46
+ css({
47
+ height: [
48
+ "100%",
49
+ "100cqh"
50
+ ],
51
+ "& .mantine-ScrollArea-viewport": {
52
+ minHeight: "100%",
53
+ "& > div": {
54
+ minHeight: "100%",
55
+ height: "100%"
56
+ }
57
+ }
58
+ });
59
+
60
+ export { input, pickview, pickviewBackdrop, pickviewGroup };
@@ -1,3 +1,4 @@
1
1
  export declare function stopAndPrevent(e: React.KeyboardEvent | KeyboardEvent): void;
2
2
  export declare function centerY(element: HTMLElement): number;
3
3
  export declare function moveFocusToSearchInput(): void;
4
+ export declare function focusToFirstFoundElement(): void;
@@ -1,3 +1,5 @@
1
+ import { focusable } from './_shared.css.js';
2
+
1
3
  function stopAndPrevent(e) {
2
4
  e.stopPropagation();
3
5
  e.preventDefault();
@@ -16,5 +18,9 @@ function moveFocusToSearchInput() {
16
18
  input.setSelectionRange(length, length);
17
19
  }
18
20
  }
21
+ function focusToFirstFoundElement() {
22
+ let firstFoundElement = document.querySelector(`[data-likec4-search] .${focusable}`);
23
+ firstFoundElement?.focus();
24
+ }
19
25
 
20
- export { centerY, moveFocusToSearchInput, stopAndPrevent };
26
+ export { centerY, focusToFirstFoundElement, moveFocusToSearchInput, stopAndPrevent };
@@ -0,0 +1,16 @@
1
+ import { SearchActorRef } from './searchActor';
2
+ import { Fqn } from '@likec4/core';
3
+ export declare const SearchActorContext: ({ children, value }: {
4
+ value: {
5
+ searchActorRef: SearchActorRef;
6
+ close: (cb?: () => void) => void;
7
+ };
8
+ children: React.ReactNode;
9
+ }) => import("react/jsx-runtime").JSX.Element, useSearchActor: () => {
10
+ searchActorRef: SearchActorRef;
11
+ close: (cb?: () => void) => void;
12
+ };
13
+ export declare function useSearch(): [string, (search: string) => void];
14
+ export declare function useNormalizedSearch(): string;
15
+ export declare function useUpdateSearch(): (search: string) => void;
16
+ export declare function usePickViewFor(): Fqn | null;
@@ -0,0 +1,35 @@
1
+ import { createSafeContext } from '@mantine/core';
2
+ import { useSelector } from '@xstate/react';
3
+ import { useCallback, useDeferredValue } from 'react';
4
+
5
+ const [SearchActorContext, useSearchActor] = createSafeContext("SearchActorContext");
6
+ const selectSearchValue = (s) => s.context.searchValue;
7
+ function useSearch() {
8
+ const { searchActorRef } = useSearchActor();
9
+ const searchValue = useSelector(searchActorRef, selectSearchValue);
10
+ const updateSearch = useCallback((search) => {
11
+ searchActorRef.send({ type: "change.search", search });
12
+ }, [searchActorRef]);
13
+ return [searchValue, updateSearch];
14
+ }
15
+ const selectNormalizedSearchValue = (s) => {
16
+ const v = s.context.searchValue.trim().toLowerCase();
17
+ return v.length > 1 ? v : "";
18
+ };
19
+ function useNormalizedSearch() {
20
+ const { searchActorRef } = useSearchActor();
21
+ return useDeferredValue(useSelector(searchActorRef, selectNormalizedSearchValue));
22
+ }
23
+ function useUpdateSearch() {
24
+ const { searchActorRef } = useSearchActor();
25
+ return useCallback((search) => {
26
+ searchActorRef.send({ type: "change.search", search });
27
+ }, [searchActorRef]);
28
+ }
29
+ const selectPickViewFor = (s) => s.context.pickViewFor;
30
+ function usePickViewFor() {
31
+ const { searchActorRef } = useSearchActor();
32
+ return useSelector(searchActorRef, selectPickViewFor);
33
+ }
34
+
35
+ export { SearchActorContext, useNormalizedSearch, usePickViewFor, useSearch, useSearchActor, useUpdateSearch };
@@ -0,0 +1,90 @@
1
+ import { Fqn } from '@likec4/core/types';
2
+ import { ActorLogicFrom, ActorRefFrom, SnapshotFrom, StateMachine, Values, NonReducibleUnknown, EventObject, MetaObject, ActionFunction } from 'xstate';
3
+ export type SearchActorEvent = {
4
+ type: 'open';
5
+ search?: string | undefined;
6
+ } | {
7
+ type: 'close';
8
+ } | {
9
+ type: 'change.search';
10
+ search: string;
11
+ } | {
12
+ type: 'pickview.open';
13
+ elementFqn: Fqn;
14
+ } | {
15
+ type: 'pickview.close';
16
+ };
17
+ export interface SearchContext {
18
+ openedWithSearch: string | null;
19
+ searchValue: string;
20
+ pickViewFor: Fqn | null;
21
+ }
22
+ declare const _searchActorLogic: StateMachine<SearchContext, SearchActorEvent, {}, never, Values<{
23
+ "change searchValue": {
24
+ type: "change searchValue";
25
+ params: NonReducibleUnknown;
26
+ };
27
+ "reset pickViewFor": {
28
+ type: "reset pickViewFor";
29
+ params: NonReducibleUnknown;
30
+ };
31
+ }>, never, never, "inactive" | "opened" | "pickView", string, NonReducibleUnknown, NonReducibleUnknown, EventObject, MetaObject, {
32
+ readonly id: "search";
33
+ readonly context: {
34
+ readonly openedWithSearch: null;
35
+ readonly searchValue: "";
36
+ readonly pickViewFor: null;
37
+ };
38
+ readonly initial: "inactive";
39
+ readonly on: {
40
+ readonly close: {
41
+ readonly target: ".inactive";
42
+ readonly actions: "reset pickViewFor";
43
+ };
44
+ };
45
+ readonly states: {
46
+ readonly inactive: {
47
+ readonly on: {
48
+ readonly open: {
49
+ readonly target: "opened";
50
+ readonly actions: readonly [ ActionFunction<SearchContext, {
51
+ type: "open";
52
+ search?: string | undefined;
53
+ }, SearchActorEvent, undefined, never, never, never, never, never>];
54
+ };
55
+ };
56
+ };
57
+ readonly opened: {
58
+ readonly on: {
59
+ readonly open: {
60
+ readonly actions: "change searchValue";
61
+ };
62
+ readonly 'change.search': {
63
+ readonly actions: "change searchValue";
64
+ };
65
+ readonly 'pickview.open': {
66
+ readonly target: "pickView";
67
+ readonly actions: ActionFunction<SearchContext, {
68
+ type: "pickview.open";
69
+ elementFqn: Fqn;
70
+ }, SearchActorEvent, undefined, never, never, never, never, never>;
71
+ };
72
+ };
73
+ };
74
+ readonly pickView: {
75
+ readonly on: {
76
+ readonly 'pickview.close': {
77
+ readonly target: "opened";
78
+ readonly actions: "reset pickViewFor";
79
+ };
80
+ };
81
+ };
82
+ };
83
+ }>;
84
+ export interface SearchActorLogic extends ActorLogicFrom<typeof _searchActorLogic> {
85
+ }
86
+ export declare const searchActorLogic: SearchActorLogic;
87
+ export type SearchActorSnapshot = SnapshotFrom<SearchActorLogic>;
88
+ export interface SearchActorRef extends ActorRefFrom<SearchActorLogic> {
89
+ }
90
+ export {};
@@ -0,0 +1,75 @@
1
+ import { setup, assign, assertEvent } from 'xstate';
2
+
3
+ const _searchActorLogic = setup({
4
+ types: {
5
+ context: {},
6
+ events: {}
7
+ },
8
+ actions: {
9
+ "change searchValue": assign({
10
+ searchValue: ({ event, context }) => {
11
+ assertEvent(event, ["change.search", "open"]);
12
+ return event.search ?? context.searchValue;
13
+ }
14
+ }),
15
+ "reset pickViewFor": assign({
16
+ pickViewFor: () => null
17
+ })
18
+ }
19
+ }).createMachine({
20
+ id: "search",
21
+ context: {
22
+ openedWithSearch: null,
23
+ searchValue: "",
24
+ pickViewFor: null
25
+ },
26
+ initial: "inactive",
27
+ on: {
28
+ "close": {
29
+ target: ".inactive",
30
+ actions: "reset pickViewFor"
31
+ }
32
+ },
33
+ states: {
34
+ inactive: {
35
+ on: {
36
+ "open": {
37
+ target: "opened",
38
+ actions: [
39
+ assign({
40
+ openedWithSearch: ({ event }) => event.search ?? null,
41
+ searchValue: ({ event, context }) => event.search ?? context.searchValue
42
+ })
43
+ ]
44
+ }
45
+ }
46
+ },
47
+ opened: {
48
+ on: {
49
+ "open": {
50
+ actions: "change searchValue"
51
+ },
52
+ "change.search": {
53
+ actions: "change searchValue"
54
+ },
55
+ "pickview.open": {
56
+ target: "pickView",
57
+ actions: assign({
58
+ pickViewFor: ({ event }) => event.elementFqn
59
+ })
60
+ }
61
+ }
62
+ },
63
+ pickView: {
64
+ on: {
65
+ "pickview.close": {
66
+ target: "opened",
67
+ actions: "reset pickViewFor"
68
+ }
69
+ }
70
+ }
71
+ }
72
+ });
73
+ const searchActorLogic = _searchActorLogic;
74
+
75
+ export { searchActorLogic };
@@ -1,9 +1,11 @@
1
- import { WhereOperator } from '@likec4/core';
1
+ import { DiagramView, WhereOperator } from '@likec4/core/types';
2
2
  import { PropsWithChildren } from 'react';
3
- import { Input } from './diagram-machine';
4
- type ActorContextInput = Omit<Input, 'xystore' | 'xynodes' | 'xyedges'>;
5
- export declare function DiagramActorProvider({ input: { view, ...inputs }, where, children, }: PropsWithChildren<{
6
- input: ActorContextInput;
7
- where?: WhereOperator<string, string> | undefined;
3
+ import { PaddingWithUnit } from '../LikeC4Diagram.props';
4
+ export declare function DiagramActorProvider({ view, zoomable, pannable, fitViewPadding, nodesSelectable, where, children, }: PropsWithChildren<{
5
+ view: DiagramView;
6
+ zoomable: boolean;
7
+ pannable: boolean;
8
+ fitViewPadding: PaddingWithUnit;
9
+ nodesSelectable: boolean;
10
+ where: WhereOperator | null;
8
11
  }>): import("react/jsx-runtime").JSX.Element;
9
- export {};
@@ -1,30 +1,30 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useDeepCompareEffect } from '@react-hookz/web';
3
2
  import { useActorRef, useSelector } from '@xstate/react';
4
3
  import { useStoreApi } from '@xyflow/react';
5
4
  import { shallowEqual } from 'fast-equals';
6
- import { r as reactExports } from '../_virtual/index.js';
5
+ import { useRef, useEffect } from 'react';
7
6
  import { useDiagramEventHandlersRef } from '../context/DiagramEventHandlers.js';
8
7
  import { useEnabledFeatures, DiagramFeatures } from '../context/DiagramFeatures.js';
9
8
  import { DiagramActorContextProvider } from '../hooks/safeContext.js';
10
- import { useUpdateEffect } from '../hooks/useUpdateEffect.js';
11
9
  import { useViewToNodesEdges } from '../likec4diagram/useViewToNodesEdges.js';
12
10
  import { diagramMachine } from './diagram-machine.js';
13
11
  import { syncManualLayoutActorLogic } from './syncManualLayoutActor.js';
14
12
 
15
13
  const selectToggledFeatures = (state) => state.context.toggledFeatures;
16
14
  function DiagramActorProvider({
17
- input: {
18
- view,
19
- ...inputs
20
- },
15
+ view,
16
+ zoomable,
17
+ pannable,
18
+ fitViewPadding,
19
+ nodesSelectable,
21
20
  where,
22
21
  children
23
22
  }) {
24
23
  const handlersRef = useDiagramEventHandlersRef();
25
24
  const xystore = useStoreApi();
26
- const actorRef = useActorRef(
27
- diagramMachine.provide({
25
+ const machineRef = useRef(null);
26
+ if (!machineRef.current) {
27
+ machineRef.current = diagramMachine.provide({
28
28
  actions: {
29
29
  "trigger:NavigateTo": (_, { viewId }) => {
30
30
  setTimeout(() => {
@@ -47,31 +47,37 @@ function DiagramActorProvider({
47
47
  }
48
48
  })
49
49
  }
50
- }),
50
+ });
51
+ }
52
+ const actorRef = useActorRef(
53
+ machineRef.current,
51
54
  {
52
- id: `diagram:${view.id}`,
55
+ id: `diagram`,
53
56
  systemId: "diagram",
54
57
  // ...inspector,
55
58
  input: {
56
59
  xystore,
57
60
  view,
58
- ...inputs
61
+ zoomable,
62
+ pannable,
63
+ fitViewPadding,
64
+ nodesSelectable
59
65
  }
60
66
  }
61
67
  );
62
68
  const features = useEnabledFeatures();
63
- useUpdateEffect(() => {
64
- actorRef.send({ type: "update.inputs", inputs });
65
- }, [inputs]);
66
- reactExports.useEffect(() => {
69
+ useEffect(() => {
67
70
  actorRef.send({ type: "update.features", features });
68
71
  }, [features]);
72
+ useEffect(() => {
73
+ actorRef.send({ type: "update.inputs", inputs: { zoomable, pannable, fitViewPadding, nodesSelectable } });
74
+ }, [zoomable, pannable, fitViewPadding, nodesSelectable]);
69
75
  const { xyedges, xynodes } = useViewToNodesEdges({
70
76
  view,
71
77
  where,
72
- nodesSelectable: inputs.nodesSelectable
78
+ nodesSelectable
73
79
  });
74
- useDeepCompareEffect(() => {
80
+ useEffect(() => {
75
81
  actorRef.send({ type: "update.view", view, xyedges, xynodes });
76
82
  }, [view, xyedges, xynodes]);
77
83
  const toggledFeatures = useSelector(actorRef, selectToggledFeatures, shallowEqual);
@@ -8,7 +8,6 @@ export declare function lastClickedNode(params: {
8
8
  }): DiagramContext['lastClickedNode'];
9
9
  export declare function mergeXYNodesEdges({ context, event }: ActionArg): Partial<DiagramContext>;
10
10
  export declare function focusNodesEdges(params: ActionArg): Partial<DiagramContext>;
11
- export declare function unfocusNodesEdges({ context }: ActionArg): Partial<DiagramContext>;
12
11
  export declare function updateNavigationHistory({ context, event }: ActionArg): Partial<DiagramContext>;
13
12
  export declare function navigateBack({ context }: ActionArg): Partial<DiagramContext>;
14
13
  export declare function navigateForward({ context }: ActionArg): Partial<DiagramContext>;
@@ -3,8 +3,8 @@ import { getNodeDimensions } from '@xyflow/system';
3
3
  import { deepEqual } from 'fast-equals';
4
4
  import { omit, mergeDeep, isEmpty } from 'remeda';
5
5
  import { assertEvent } from 'xstate';
6
- import { Base } from '../base/types.js';
7
6
  import { VectorImpl, vector } from '../utils/vector.js';
7
+ import { setDimmed, setData } from '../base/types.Base.js';
8
8
 
9
9
  function lastClickedNode(params) {
10
10
  const { lastClickedNode: lastClickedNode2 } = params.context;
@@ -101,31 +101,21 @@ function focusNodesEdges(params) {
101
101
  if (edge.source === focusedNode || edge.target === focusedNode) {
102
102
  focused.add(edge.source);
103
103
  focused.add(edge.target);
104
- return Base.setData(edge, {
104
+ return setData(edge, {
105
105
  dimmed: false,
106
106
  active: true
107
107
  });
108
108
  }
109
- return Base.setData(edge, {
109
+ return setData(edge, {
110
110
  dimmed: true,
111
111
  active: false
112
112
  });
113
113
  });
114
114
  return {
115
- xynodes: _xynodes.map((n) => Base.setDimmed(n, !focused.has(n.id))),
115
+ xynodes: _xynodes.map((n) => setDimmed(n, !focused.has(n.id))),
116
116
  xyedges
117
117
  };
118
118
  }
119
- function unfocusNodesEdges({ context }) {
120
- const { xynodes, xyedges } = context;
121
- return {
122
- xynodes: xynodes.map(Base.setDimmed(false)),
123
- xyedges: xyedges.map(Base.setData({
124
- dimmed: false,
125
- active: false
126
- }))
127
- };
128
- }
129
119
  function updateNavigationHistory({ context, event }) {
130
120
  assertEvent(event, "update.view");
131
121
  let {
@@ -296,8 +286,8 @@ function resetEdgeControlPoints({ context }) {
296
286
  const loopSize = 80;
297
287
  const centerOfTopBoundary = new VectorImpl(0, source.height || 0).mul(-0.5).add(sourceCenter);
298
288
  return [
299
- centerOfTopBoundary.add(new VectorImpl(-80 / 2.5, -80)),
300
- centerOfTopBoundary.add(new VectorImpl(loopSize / 2.5, -80))
289
+ centerOfTopBoundary.add(new VectorImpl(-loopSize / 2.5, -loopSize)),
290
+ centerOfTopBoundary.add(new VectorImpl(loopSize / 2.5, -loopSize))
301
291
  ];
302
292
  }
303
293
  const sourceToTargetVector = targetCenter.sub(sourceCenter);
@@ -332,16 +322,16 @@ function updateActiveWalkthrough({ context }) {
332
322
  return {
333
323
  xyedges: context.xyedges.map((edge) => {
334
324
  const active = stepId === edge.id || !!parallelPrefix && edge.id.startsWith(parallelPrefix);
335
- return Base.setData(edge, {
325
+ return setData(edge, {
336
326
  active,
337
327
  dimmed: !active
338
328
  });
339
329
  }),
340
330
  xynodes: context.xynodes.map((node) => {
341
331
  const dimmed = step.source !== node.id && step.target !== node.id;
342
- return Base.setDimmed(node, dimmed);
332
+ return setDimmed(node, dimmed);
343
333
  })
344
334
  };
345
335
  }
346
336
 
347
- export { focusNodesEdges, lastClickedNode, mergeXYNodesEdges, navigateBack, navigateForward, resetEdgeControlPoints, unfocusNodesEdges, updateActiveWalkthrough, updateEdgeData, updateNavigationHistory, updateNodeData };
337
+ export { focusNodesEdges, lastClickedNode, mergeXYNodesEdges, navigateBack, navigateForward, resetEdgeControlPoints, updateActiveWalkthrough, updateEdgeData, updateNavigationHistory, updateNodeData };