@likec4/diagram 1.55.0 → 1.56.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 (345) hide show
  1. package/dist/LikeC4Diagram.js +148 -194
  2. package/dist/LikeC4ModelProvider.js +13 -9
  3. package/dist/LikeC4ProjectsOverview.js +24 -30
  4. package/dist/LikeC4ProjectsProvider.js +33 -26
  5. package/dist/LikeC4Styles.js +40 -57
  6. package/dist/LikeC4View.js +156 -196
  7. package/dist/ReactLikeC4.js +43 -65
  8. package/dist/StaticLikeC4Diagram.js +36 -41
  9. package/dist/_virtual/_rolldown/runtime.js +17 -0
  10. package/dist/adhoc-editor/EditorPanel.js +102 -101
  11. package/dist/adhoc-editor/ElementsTree.js +113 -139
  12. package/dist/adhoc-editor/LikeC4AdHocViewEditor.js +77 -70
  13. package/dist/adhoc-editor/components/Tree.d.ts +2 -2
  14. package/dist/adhoc-editor/components/Tree.js +205 -288
  15. package/dist/adhoc-editor/hooks.js +28 -23
  16. package/dist/adhoc-editor/index.js +2 -1
  17. package/dist/adhoc-editor/state/ActorProvider.js +33 -36
  18. package/dist/adhoc-editor/state/actor.editor.js +148 -186
  19. package/dist/adhoc-editor/state/actor.js +12 -14
  20. package/dist/adhoc-editor/state/actor.layouter.js +49 -65
  21. package/dist/adhoc-editor/state/actor.types.js +19 -23
  22. package/dist/adhoc-editor/state/panel.js +112 -127
  23. package/dist/adhoc-editor/state/utils.js +22 -29
  24. package/dist/adhoc-editor/useElementsTree.js +89 -121
  25. package/dist/base/Background.js +26 -29
  26. package/dist/base/Base.js +34 -41
  27. package/dist/base/BaseXYFlow.js +135 -165
  28. package/dist/base/const.js +18 -19
  29. package/dist/base/updateEdges.js +38 -57
  30. package/dist/base/updateNodes.js +46 -65
  31. package/dist/base-primitives/Markdown.d.ts +1 -1
  32. package/dist/base-primitives/Markdown.js +32 -47
  33. package/dist/base-primitives/NodeHandles.js +39 -49
  34. package/dist/base-primitives/compound/CompoundActionButton.js +49 -69
  35. package/dist/base-primitives/compound/CompoundDetailsButton.js +39 -64
  36. package/dist/base-primitives/compound/CompoundNodeContainer.js +46 -66
  37. package/dist/base-primitives/compound/CompoundTitle.js +15 -12
  38. package/dist/base-primitives/compound/actionbtns.css.js +9 -18
  39. package/dist/base-primitives/edge/EdgeActionButton.js +17 -19
  40. package/dist/base-primitives/edge/EdgeContainer.js +29 -48
  41. package/dist/base-primitives/edge/EdgeLabel.js +44 -65
  42. package/dist/base-primitives/edge/EdgeLabelContainer.d.ts +1 -1
  43. package/dist/base-primitives/edge/EdgeLabelContainer.js +35 -72
  44. package/dist/base-primitives/edge/EdgeMarkers.js +157 -215
  45. package/dist/base-primitives/edge/EdgePath.js +62 -115
  46. package/dist/base-primitives/element/ElementActionButtons.js +92 -81
  47. package/dist/base-primitives/element/ElementData.js +107 -126
  48. package/dist/base-primitives/element/ElementDetailsButton.js +78 -98
  49. package/dist/base-primitives/element/ElementNodeContainer.js +51 -82
  50. package/dist/base-primitives/element/ElementShape.js +331 -317
  51. package/dist/base-primitives/element/ElementTags.d.ts +1 -1
  52. package/dist/base-primitives/element/ElementTags.js +133 -193
  53. package/dist/base-primitives/memoEdge.js +11 -10
  54. package/dist/base-primitives/memoNode.js +16 -20
  55. package/dist/components/ErrorFallback.js +111 -75
  56. package/dist/components/GithubIcon.js +14 -16
  57. package/dist/components/Link.js +99 -113
  58. package/dist/components/Logo.js +38 -41
  59. package/dist/components/NavigationLink.js +15 -23
  60. package/dist/components/NavigationPanel.js +26 -47
  61. package/dist/components/PortalToContainer.js +16 -10
  62. package/dist/components/RootContainer.js +35 -31
  63. package/dist/components/SearchControl.css.js +65 -75
  64. package/dist/components/SearchControl.js +36 -14
  65. package/dist/components/ViewNotFound.js +22 -29
  66. package/dist/context/CurrentViewModelProvider.js +11 -9
  67. package/dist/context/DefaultMantineProvider.js +45 -72
  68. package/dist/context/DiagramEventHandlers.js +43 -48
  69. package/dist/context/DiagramFeatures.js +73 -69
  70. package/dist/context/EnsureMantine.js +13 -16
  71. package/dist/context/FramerMotionConfig.js +17 -11
  72. package/dist/context/IconRenderer.js +90 -106
  73. package/dist/context/LikeC4ModelContext.js +14 -10
  74. package/dist/context/LikeC4ProjectsContext.js +7 -6
  75. package/dist/context/RootContainerContext.d.ts +2 -5
  76. package/dist/context/RootContainerContext.js +24 -26
  77. package/dist/context/TagStylesContext.js +49 -57
  78. package/dist/custom/customNodes.js +224 -28
  79. package/dist/custom/index.js +41 -40
  80. package/dist/editor/LikeC4EditorCallbacks.js +4 -2
  81. package/dist/editor/LikeC4EditorProvider.js +32 -7
  82. package/dist/editor/applyChangesToManualLayout.js +144 -163
  83. package/dist/editor/editorActor.actions.js +122 -138
  84. package/dist/editor/editorActor.setup.js +30 -36
  85. package/dist/editor/editorActor.states.js +209 -263
  86. package/dist/editor/hotkeyActor.js +18 -17
  87. package/dist/editor/useEditorActorLogic.js +31 -43
  88. package/dist/hooks/safeContext.js +17 -17
  89. package/dist/hooks/useCallbackRef.js +18 -11
  90. package/dist/hooks/useCurrentView.js +16 -7
  91. package/dist/hooks/useCurrentViewModel.js +14 -9
  92. package/dist/hooks/useDiagram.js +55 -37
  93. package/dist/hooks/useDiagramCompareLayout.js +77 -81
  94. package/dist/hooks/useId.js +8 -6
  95. package/dist/hooks/useLikeC4ElementsTree.js +22 -21
  96. package/dist/hooks/useLikeC4Model.js +21 -20
  97. package/dist/hooks/useLikeC4Project.js +40 -29
  98. package/dist/hooks/useLikeC4Styles.js +6 -6
  99. package/dist/hooks/useMantinePortalProps.js +10 -6
  100. package/dist/hooks/useOverlaysActor.js +7 -6
  101. package/dist/hooks/useSearchActor.js +7 -6
  102. package/dist/hooks/useSetState.js +21 -19
  103. package/dist/hooks/useUpdateEffect.js +18 -29
  104. package/dist/hooks/useXYFlow.js +13 -15
  105. package/dist/index.js +24 -23
  106. package/dist/likec4diagram/DiagramUI.js +33 -37
  107. package/dist/likec4diagram/DiagramXYFlow.js +215 -224
  108. package/dist/likec4diagram/convert-to-xyflow.js +21 -22
  109. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +22 -32
  110. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +275 -372
  111. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +71 -75
  112. package/dist/likec4diagram/custom/edges/edges.css.js +41 -47
  113. package/dist/likec4diagram/custom/edges/useControlPoints.js +52 -56
  114. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.js +54 -76
  115. package/dist/likec4diagram/custom/index.js +17 -17
  116. package/dist/likec4diagram/custom/nodes/CompoundActions.js +19 -26
  117. package/dist/likec4diagram/custom/nodes/ElementActions.js +131 -82
  118. package/dist/likec4diagram/custom/nodes/NodeDrifts.js +20 -26
  119. package/dist/likec4diagram/custom/nodes/NodeNotes.js +215 -273
  120. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +131 -147
  121. package/dist/likec4diagram/custom/nodes/nodes.js +135 -146
  122. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +155 -159
  123. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +58 -86
  124. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +108 -164
  125. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +56 -68
  126. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -6
  127. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +97 -102
  128. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.js +13 -13
  129. package/dist/likec4diagram/custom/nodes/toolbar/types.js +6 -5
  130. package/dist/likec4diagram/custom/nodes/toolbar/useHandlers.js +36 -41
  131. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +510 -534
  132. package/dist/likec4diagram/relationship-popover/actor.js +113 -152
  133. package/dist/likec4diagram/relationship-popover/components.js +39 -37
  134. package/dist/likec4diagram/state/DiagramActorProvider.js +135 -136
  135. package/dist/likec4diagram/state/aligners.js +283 -360
  136. package/dist/likec4diagram/state/assign.js +84 -108
  137. package/dist/likec4diagram/state/createViewChange.js +72 -92
  138. package/dist/likec4diagram/state/diagram-api.js +224 -152
  139. package/dist/likec4diagram/state/hotkeyActor.js +54 -45
  140. package/dist/likec4diagram/state/machine.actions.js +709 -821
  141. package/dist/likec4diagram/state/machine.actions.layout.js +154 -183
  142. package/dist/likec4diagram/state/machine.js +113 -134
  143. package/dist/likec4diagram/state/machine.setup.js +104 -113
  144. package/dist/likec4diagram/state/machine.state.initializing.js +54 -54
  145. package/dist/likec4diagram/state/machine.state.navigating.js +192 -227
  146. package/dist/likec4diagram/state/machine.state.ready.focused.js +72 -88
  147. package/dist/likec4diagram/state/machine.state.ready.idle.js +79 -98
  148. package/dist/likec4diagram/state/machine.state.ready.js +126 -202
  149. package/dist/likec4diagram/state/machine.state.ready.printing.js +38 -39
  150. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +153 -193
  151. package/dist/likec4diagram/state/mediaPrintActor.js +20 -16
  152. package/dist/likec4diagram/state/persistence.js +20 -21
  153. package/dist/likec4diagram/state/utils.js +131 -162
  154. package/dist/likec4diagram/ui/LayoutDriftFrame.js +53 -64
  155. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +58 -80
  156. package/dist/likec4diagram/ui/notation/NotationPanel.js +183 -214
  157. package/dist/likec4diagram/useLayoutConstraints.js +386 -433
  158. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +216 -227
  159. package/dist/likec4diagram/xyflow-sequence/const.js +11 -7
  160. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +177 -180
  161. package/dist/navigationpanel/NavigationPanel.js +113 -123
  162. package/dist/navigationpanel/NavigationPanelControls.js +124 -150
  163. package/dist/navigationpanel/NavigationPanelDropdown.js +365 -477
  164. package/dist/navigationpanel/_common.d.ts +4 -10
  165. package/dist/navigationpanel/_common.js +57 -70
  166. package/dist/navigationpanel/actor.js +153 -236
  167. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +66 -83
  168. package/dist/navigationpanel/comparepanel/ComparePanel.js +135 -164
  169. package/dist/navigationpanel/comparepanel/ComparePanelControls.js +50 -58
  170. package/dist/navigationpanel/comparepanel/DriftsSummary.js +207 -254
  171. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.js +33 -35
  172. package/dist/navigationpanel/controls/DetailsControls.js +219 -246
  173. package/dist/navigationpanel/controls/LayoutWarning.js +89 -100
  174. package/dist/navigationpanel/controls/LogoButton.js +46 -70
  175. package/dist/navigationpanel/controls/NavigationButtons.js +35 -52
  176. package/dist/navigationpanel/controls/OpenSource.js +27 -25
  177. package/dist/navigationpanel/controls/SearchControl.js +50 -61
  178. package/dist/navigationpanel/controls/ToggleReadonly.js +84 -81
  179. package/dist/navigationpanel/dropdown/ProjectsMenu.js +69 -87
  180. package/dist/navigationpanel/editorpanel/CenterCamera.js +17 -13
  181. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +182 -154
  182. package/dist/navigationpanel/editorpanel/EditorPanel.js +47 -45
  183. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +122 -173
  184. package/dist/navigationpanel/editorpanel/ToggleReadonly.js +20 -13
  185. package/dist/navigationpanel/editorpanel/_common.d.ts +3 -6
  186. package/dist/navigationpanel/editorpanel/_common.js +13 -13
  187. package/dist/navigationpanel/editorpanel/styles.js +58 -75
  188. package/dist/navigationpanel/hooks.js +35 -29
  189. package/dist/navigationpanel/styles.css.js +20 -28
  190. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +107 -134
  191. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +8 -8
  192. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +105 -120
  193. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +75 -83
  194. package/dist/overlays/Overlays.js +94 -112
  195. package/dist/overlays/element-details/ElementDetails.js +22 -28
  196. package/dist/overlays/element-details/ElementDetailsCard.css.js +198 -219
  197. package/dist/overlays/element-details/ElementDetailsCard.js +517 -490
  198. package/dist/overlays/element-details/MetadataValue.js +210 -250
  199. package/dist/overlays/element-details/TabPanelDeployments.css.js +40 -60
  200. package/dist/overlays/element-details/TabPanelDeployments.js +185 -178
  201. package/dist/overlays/element-details/TabPanelRelationships.css.js +63 -71
  202. package/dist/overlays/element-details/TabPanelRelationships.js +155 -140
  203. package/dist/overlays/element-details/TabPanelStructure.css.js +29 -33
  204. package/dist/overlays/element-details/TabPanelStructure.js +93 -93
  205. package/dist/overlays/element-details/actor.js +45 -55
  206. package/dist/overlays/element-details/actorContext.js +12 -10
  207. package/dist/overlays/overlay/Overlay.js +104 -144
  208. package/dist/overlays/overlaysActor.js +213 -264
  209. package/dist/overlays/relationship-details/RelationshipDetails.js +270 -253
  210. package/dist/overlays/relationship-details/SelectEdge.css.js +62 -74
  211. package/dist/overlays/relationship-details/SelectEdge.js +146 -126
  212. package/dist/overlays/relationship-details/actor.js +242 -303
  213. package/dist/overlays/relationship-details/compute.js +109 -135
  214. package/dist/overlays/relationship-details/custom/ElementActions.js +43 -56
  215. package/dist/overlays/relationship-details/custom/edgeTypes.js +43 -49
  216. package/dist/overlays/relationship-details/custom/nodeTypes.js +93 -119
  217. package/dist/overlays/relationship-details/hooks.js +44 -38
  218. package/dist/overlays/relationship-details/layout-to-xyflow.js +119 -141
  219. package/dist/overlays/relationship-details/layout.js +275 -304
  220. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +319 -321
  221. package/dist/overlays/relationships-browser/SelectElement.css.js +18 -21
  222. package/dist/overlays/relationships-browser/SelectElement.js +192 -218
  223. package/dist/overlays/relationships-browser/actor.js +364 -462
  224. package/dist/overlays/relationships-browser/const.js +7 -6
  225. package/dist/overlays/relationships-browser/custom/ElementActions.js +60 -63
  226. package/dist/overlays/relationships-browser/custom/EmptyNode.js +25 -29
  227. package/dist/overlays/relationships-browser/custom/edgeTypes.js +66 -99
  228. package/dist/overlays/relationships-browser/custom/nodeTypes.js +98 -123
  229. package/dist/overlays/relationships-browser/hooks.js +49 -51
  230. package/dist/overlays/relationships-browser/layout.js +413 -465
  231. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +141 -157
  232. package/dist/projects-overview/ProjectsOverview.js +56 -55
  233. package/dist/projects-overview/ProjectsOverviewXY.js +105 -94
  234. package/dist/projects-overview/actor.js +252 -345
  235. package/dist/projects-overview/context.js +8 -7
  236. package/dist/projects-overview/custom/edgeTypes.js +22 -21
  237. package/dist/projects-overview/custom/nodeTypes.js +38 -42
  238. package/dist/projects-overview/hooks.js +9 -9
  239. package/dist/projects-overview/layouted-to-xyflow.js +46 -42
  240. package/dist/projects-overview/panel/ProjectsOverviewPanel.js +7 -9
  241. package/dist/projects-overview/persistence.js +22 -22
  242. package/dist/search/Search.js +199 -181
  243. package/dist/search/SearchContext.js +16 -15
  244. package/dist/search/XStateSearchAdapter.js +68 -62
  245. package/dist/search/components/ElementsColumn.css.js +50 -68
  246. package/dist/search/components/ElementsColumn.js +248 -290
  247. package/dist/search/components/PickView.js +116 -140
  248. package/dist/search/components/SearchByTags.js +76 -94
  249. package/dist/search/components/SearchInput.js +187 -209
  250. package/dist/search/components/ViewsColum.js +151 -141
  251. package/dist/search/components/ViewsColumn.css.js +12 -26
  252. package/dist/search/components/_shared.css.js +127 -153
  253. package/dist/search/components/styles.css.js +47 -53
  254. package/dist/search/components/utils.js +44 -47
  255. package/dist/search/hooks.js +10 -10
  256. package/dist/search/searchActor.js +93 -128
  257. package/dist/shadowroot/ShadowRoot.js +66 -78
  258. package/dist/shadowroot/styles.css.js +56 -66
  259. package/dist/styles-font2.js +4 -0
  260. package/dist/styles2.js +4 -0
  261. package/dist/utils/index.js +5 -0
  262. package/dist/utils/roundDpr.js +19 -15
  263. package/dist/utils/view-bounds.js +48 -55
  264. package/dist/utils/xyflow.js +143 -113
  265. package/package.json +15 -16
  266. package/panda.buildinfo.json +6 -3
  267. package/styles-font.css +1 -1
  268. package/styles-min.css +1 -1
  269. package/styles-xyflow.css +1 -1
  270. package/styles.css +1 -1
  271. package/dist/_virtual/_commonjsHelpers.js +0 -3
  272. package/dist/_virtual/assign-f10db67b.cjs.js +0 -3
  273. package/dist/_virtual/log-30abbb83.cjs.js +0 -3
  274. package/dist/_virtual/raise-f051f097.cjs.js +0 -3
  275. package/dist/_virtual/store-cfe7da62.cjs.js +0 -3
  276. package/dist/_virtual/xstate-actions.cjs.js +0 -5
  277. package/dist/_virtual/xstate-actions.cjs2.js +0 -3
  278. package/dist/_virtual/xstate-dev.cjs.js +0 -3
  279. package/dist/_virtual/xstate-guards.cjs.js +0 -5
  280. package/dist/_virtual/xstate-guards.cjs2.js +0 -3
  281. package/dist/_virtual/xstate-store-react.cjs.js +0 -5
  282. package/dist/_virtual/xstate-store-react.cjs2.js +0 -3
  283. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +0 -41
  284. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +0 -30
  285. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -14
  286. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -14
  287. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +0 -14
  288. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -14
  289. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js +0 -14
  290. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -14
  291. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -14
  292. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +0 -14
  293. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -14
  294. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -14
  295. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -14
  296. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -14
  297. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -14
  298. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.js +0 -14
  299. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -14
  300. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -14
  301. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.js +0 -14
  302. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -14
  303. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +0 -14
  304. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -14
  305. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -14
  306. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -14
  307. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -14
  308. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -14
  309. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -14
  310. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -14
  311. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -14
  312. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -14
  313. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -14
  314. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -14
  315. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -14
  316. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +0 -14
  317. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -14
  318. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -14
  319. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -14
  320. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -14
  321. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -14
  322. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -14
  323. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -14
  324. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -14
  325. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -14
  326. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -14
  327. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -14
  328. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -14
  329. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +0 -14
  330. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -14
  331. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -14
  332. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js +0 -14
  333. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -14
  334. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -14
  335. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -14
  336. package/dist/node_modules/.pnpm/@xstate_store@3.17.1_react@19.2.4/node_modules/@xstate/store/dist/store-cfe7da62.cjs.js +0 -761
  337. package/dist/node_modules/.pnpm/@xstate_store@3.17.1_react@19.2.4/node_modules/@xstate/store/react/dist/xstate-store-react.cjs.js +0 -180
  338. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/actions/dist/xstate-actions.cjs.js +0 -37
  339. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dev/dist/xstate-dev.cjs.js +0 -59
  340. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/assign-f10db67b.cjs.js +0 -140
  341. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/log-30abbb83.cjs.js +0 -401
  342. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/raise-f051f097.cjs.js +0 -2830
  343. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/guards/dist/xstate-guards.cjs.js +0 -26
  344. package/dist/styles-font.css2.js +0 -3
  345. package/dist/styles.css2.js +0 -3
@@ -0,0 +1,5 @@
1
+ import "./roundDpr.js";
2
+ import "./xyflow.js";
3
+ import "./view-bounds.js";
4
+ import { vector as vector$1 } from "@likec4/core/geometry";
5
+ export { vector$1 as vector };
@@ -1,20 +1,24 @@
1
- import { clamp } from 'remeda';
2
-
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { clamp } from "remeda";
3
+ //#region src/utils/roundDpr.ts
4
+ /**
5
+ * Returns the current device pixel ratio (DPR) given the passed options
6
+ *
7
+ * @param options
8
+ * @returns current device pixel ratio
9
+ */
3
10
  function getDevicePixelRatio() {
4
- const hasDprProp = typeof window !== "undefined" && typeof window.devicePixelRatio === "number";
5
- const dpr = hasDprProp ? window.devicePixelRatio : 1;
6
- return clamp(Math.floor(dpr), {
7
- min: 1,
8
- max: 4
9
- });
11
+ const dpr = typeof window !== "undefined" && typeof window.devicePixelRatio === "number" ? window.devicePixelRatio : 1;
12
+ return clamp(Math.floor(dpr), {
13
+ min: 1,
14
+ max: 4
15
+ });
10
16
  }
11
- let knownDpr;
17
+ var knownDpr;
12
18
  function roundDpr(v) {
13
- knownDpr ??= getDevicePixelRatio();
14
- if (knownDpr < 2) {
15
- return Math.round(v);
16
- }
17
- return Math.round(v * knownDpr) / knownDpr;
19
+ knownDpr ??= getDevicePixelRatio();
20
+ if (knownDpr < 2) return Math.round(v);
21
+ return Math.round(v * knownDpr) / knownDpr;
18
22
  }
19
-
23
+ //#endregion
20
24
  export { roundDpr };
@@ -1,62 +1,55 @@
1
- import { invariant } from '@likec4/core';
2
- import { BBox } from '@likec4/core/geometry';
3
-
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { invariant } from "@likec4/core";
3
+ import { BBox as BBox$1 } from "@likec4/core/geometry";
4
+ //#region src/utils/view-bounds.ts
5
+ /**
6
+ * Picks appropriate bounds from the view,
7
+ * depending on its type and dynamic variant
8
+ */
4
9
  function pickViewBounds(view, dynamicVariant) {
5
- if (view._type === "dynamic") {
6
- try {
7
- const variant = dynamicVariant ?? view.variant;
8
- if (variant === "sequence") {
9
- invariant(view.sequenceLayout, "Sequence layout is not available");
10
- invariant(view.sequenceLayout.bounds, "Sequence layout bounds are not available");
11
- return view.sequenceLayout.bounds;
12
- }
13
- } catch (error) {
14
- console.error(error);
15
- }
16
- }
17
- return view.bounds;
10
+ if (view._type === "dynamic") try {
11
+ if ((dynamicVariant ?? view.variant) === "sequence") {
12
+ invariant(view.sequenceLayout, "Sequence layout is not available");
13
+ invariant(view.sequenceLayout.bounds, "Sequence layout bounds are not available");
14
+ return view.sequenceLayout.bounds;
15
+ }
16
+ } catch (error) {
17
+ console.error(error);
18
+ }
19
+ return view.bounds;
18
20
  }
19
21
  function calcEdgeBounds({ points, controlPoints, labelBBox }) {
20
- let minX = Infinity;
21
- let minY = Infinity;
22
- let maxX = -Infinity;
23
- let maxY = -Infinity;
24
- if (controlPoints) {
25
- for (const p of controlPoints) {
26
- minX = Math.min(minX, p.x);
27
- minY = Math.min(minY, p.y);
28
- maxX = Math.max(maxX, p.x);
29
- maxY = Math.max(maxY, p.y);
30
- }
31
- } else {
32
- for (const [x, y] of points) {
33
- minX = Math.min(minX, x);
34
- minY = Math.min(minY, y);
35
- maxX = Math.max(maxX, x);
36
- maxY = Math.max(maxY, y);
37
- }
38
- }
39
- if (labelBBox) {
40
- minX = Math.min(minX, labelBBox.x);
41
- minY = Math.min(minY, labelBBox.y);
42
- maxX = Math.max(maxX, labelBBox.x + labelBBox.width);
43
- maxY = Math.max(maxY, labelBBox.y + labelBBox.height);
44
- }
45
- return {
46
- x: minX,
47
- y: minY,
48
- width: maxX - minX,
49
- height: maxY - minY
50
- };
22
+ let minX = Infinity;
23
+ let minY = Infinity;
24
+ let maxX = -Infinity;
25
+ let maxY = -Infinity;
26
+ if (controlPoints) for (const p of controlPoints) {
27
+ minX = Math.min(minX, p.x);
28
+ minY = Math.min(minY, p.y);
29
+ maxX = Math.max(maxX, p.x);
30
+ maxY = Math.max(maxY, p.y);
31
+ }
32
+ else for (const [x, y] of points) {
33
+ minX = Math.min(minX, x);
34
+ minY = Math.min(minY, y);
35
+ maxX = Math.max(maxX, x);
36
+ maxY = Math.max(maxY, y);
37
+ }
38
+ if (labelBBox) {
39
+ minX = Math.min(minX, labelBBox.x);
40
+ minY = Math.min(minY, labelBBox.y);
41
+ maxX = Math.max(maxX, labelBBox.x + labelBBox.width);
42
+ maxY = Math.max(maxY, labelBBox.y + labelBBox.height);
43
+ }
44
+ return {
45
+ x: minX,
46
+ y: minY,
47
+ width: maxX - minX,
48
+ height: maxY - minY
49
+ };
51
50
  }
52
51
  function calcViewBounds({ nodes, edges }) {
53
- return BBox.expand(
54
- BBox.merge(
55
- ...nodes,
56
- ...edges.map(calcEdgeBounds).filter((box) => isFinite(box.x) && isFinite(box.y))
57
- ),
58
- 20
59
- );
52
+ return BBox$1.expand(BBox$1.merge(...nodes, ...edges.map(calcEdgeBounds).filter((box) => isFinite(box.x) && isFinite(box.y))), 20);
60
53
  }
61
-
54
+ //#endregion
62
55
  export { calcEdgeBounds, calcViewBounds, pickViewBounds };
@@ -1,131 +1,161 @@
1
- import { BBox, vector } from '@likec4/core/geometry';
2
- import { invariant } from '@likec4/core/utils';
3
- import '@xyflow/react';
4
- import { getNodeDimensions } from '@xyflow/system';
5
- import { Bezier } from 'bezier-js';
6
- import { isArray, hasAtLeast } from 'remeda';
7
-
8
- function nodeToRect(nd) {
9
- return {
10
- x: Math.trunc(nd.internals.positionAbsolute.x),
11
- y: Math.trunc(nd.internals.positionAbsolute.y),
12
- width: Math.round(nd.measured?.width ?? nd.width ?? nd.initialWidth ?? 0),
13
- height: Math.round(nd.measured?.height ?? nd.height ?? nd.initialHeight ?? 0)
14
- };
1
+ import { __name } from "../_virtual/_rolldown/runtime.js";
2
+ import "@xyflow/react";
3
+ import { hasAtLeast, isArray } from "remeda";
4
+ import { BBox, vector } from "@likec4/core/geometry";
5
+ import { invariant } from "@likec4/core/utils";
6
+ import { getNodeDimensions } from "@xyflow/system";
7
+ import { Bezier } from "bezier-js";
8
+ //#region src/utils/xyflow.ts
9
+ function nodeToRect$1(nd) {
10
+ return {
11
+ x: Math.trunc(nd.internals.positionAbsolute.x),
12
+ y: Math.trunc(nd.internals.positionAbsolute.y),
13
+ width: Math.round(nd.measured?.width ?? nd.width ?? nd.initialWidth ?? 0),
14
+ height: Math.round(nd.measured?.height ?? nd.height ?? nd.initialHeight ?? 0)
15
+ };
15
16
  }
17
+ __name(nodeToRect$1, "nodeToRect");
16
18
  function getNodeCenter(node) {
17
- const { width, height } = getNodeDimensions(node);
18
- const { x, y } = node.internals.positionAbsolute;
19
- return {
20
- x: Math.round(x + width / 2),
21
- y: Math.round(y + height / 2)
22
- };
19
+ const { width, height } = getNodeDimensions(node);
20
+ const { x, y } = node.internals.positionAbsolute;
21
+ return {
22
+ x: Math.round(x + width / 2),
23
+ y: Math.round(y + height / 2)
24
+ };
23
25
  }
26
+ /**
27
+ * Helper function returns the intersection point
28
+ * of the line between the center of the intersectionNode and the target
29
+ *
30
+ * @param intersectionNode the node that is the center of the line
31
+ * @param target position of the target
32
+ * @param nodeMargin the margin of the intersectionNode. The point will be placed at nodeMargin distance from the border of the node
33
+ * @returns coordinates of the intersection point
34
+ */
24
35
  function getNodeIntersectionFromCenterToPoint(intersectionNode, target, nodeMargin = 0) {
25
- const { width, height } = intersectionNode;
26
- const nodeCenter = BBox.center(intersectionNode);
27
- const v = vector(target.x, target.y).subtract(nodeCenter);
28
- const xScale = (nodeMargin + width / 2) / v.x;
29
- const yScale = (nodeMargin + height / 2) / v.y;
30
- const scale = Math.min(Math.abs(xScale), Math.abs(yScale));
31
- return vector(v).multiply(scale).add(nodeCenter).trunc().toObject();
36
+ const { width, height } = intersectionNode;
37
+ const nodeCenter = BBox.center(intersectionNode);
38
+ const v = vector(target.x, target.y).subtract(nodeCenter);
39
+ const xScale = (nodeMargin + width / 2) / v.x;
40
+ const yScale = (nodeMargin + height / 2) / v.y;
41
+ const scale = Math.min(Math.abs(xScale), Math.abs(yScale));
42
+ return vector(v).multiply(scale).add(nodeCenter).trunc().toObject();
32
43
  }
33
44
  function bezierControlPoints(points) {
34
- let [start, ...bezierPoints] = points;
35
- invariant(start, "start should be defined");
36
- const handles = [
37
- // start
38
- ];
39
- while (hasAtLeast(bezierPoints, 3)) {
40
- const [cp1, cp2, end, ...rest] = bezierPoints;
41
- const bezier = new Bezier(start[0], start[1], cp1[0], cp1[1], cp2[0], cp2[1], end[0], end[1]);
42
- const inflections = bezier.inflections();
43
- if (inflections.length === 0) {
44
- inflections.push(0.5);
45
- }
46
- inflections.forEach((t) => {
47
- const { x, y } = bezier.get(t);
48
- handles.push({
49
- x: Math.trunc(x),
50
- y: Math.trunc(y)
51
- });
52
- });
53
- bezierPoints = rest;
54
- start = end;
55
- }
56
- invariant(bezierPoints.length === 0, "all points should be consumed");
57
- invariant(hasAtLeast(handles, 1), "at least one control point should be generated");
58
- return handles;
45
+ let [start, ...bezierPoints] = points;
46
+ invariant(start, "start should be defined");
47
+ const handles = [];
48
+ while (hasAtLeast(bezierPoints, 3)) {
49
+ const [cp1, cp2, end, ...rest] = bezierPoints;
50
+ const bezier = new Bezier(start[0], start[1], cp1[0], cp1[1], cp2[0], cp2[1], end[0], end[1]);
51
+ const inflections = bezier.inflections();
52
+ if (inflections.length === 0) inflections.push(.5);
53
+ inflections.forEach((t) => {
54
+ const { x, y } = bezier.get(t);
55
+ handles.push({
56
+ x: Math.trunc(x),
57
+ y: Math.trunc(y)
58
+ });
59
+ });
60
+ bezierPoints = rest;
61
+ start = end;
62
+ }
63
+ invariant(bezierPoints.length === 0, "all points should be consumed");
64
+ invariant(hasAtLeast(handles, 1), "at least one control point should be generated");
65
+ return handles;
59
66
  }
67
+ /**
68
+ * Checks if two points are the same, considering both XYPoint (object ) and Point (tuple) formats.
69
+ * @returns `true` If points are within 2px
70
+ */
60
71
  function isSamePoint(a, b) {
61
- if (a === b) {
62
- return true;
63
- }
64
- const [ax, ay] = isArray(a) ? a : [a.x, a.y];
65
- const [bx, by] = isArray(b) ? b : [b.x, b.y];
66
- return Math.hypot(bx - ax, by - ay) < 2.1;
72
+ if (a === b) return true;
73
+ const [ax, ay] = isArray(a) ? a : [a.x, a.y];
74
+ const [bx, by] = isArray(b) ? b : [b.x, b.y];
75
+ return Math.hypot(bx - ax, by - ay) < 2.1;
67
76
  }
68
77
  function stopPropagation(e) {
69
- e.nativeEvent.stopImmediatePropagation();
70
- e.stopPropagation();
78
+ e.nativeEvent.stopImmediatePropagation();
79
+ e.stopPropagation();
71
80
  }
72
- const printPoint = (point) => {
73
- return `${Math.trunc(point[0])},${Math.trunc(point[1])}`;
81
+ var printPoint = (point) => {
82
+ return `${Math.trunc(point[0])},${Math.trunc(point[1])}`;
74
83
  };
75
84
  function bezierPath(bezierSpline) {
76
- let [start, ...points] = bezierSpline;
77
- invariant(start, "start should be defined");
78
- let path = `M ${printPoint(start)}`;
79
- while (hasAtLeast(points, 3)) {
80
- const [cp1, cp2, end, ...rest] = points;
81
- path = path + ` C ${printPoint(cp1)} ${printPoint(cp2)} ${printPoint(end)}`;
82
- points = rest;
83
- }
84
- invariant(points.length === 0, "all points should be consumed");
85
- return path;
85
+ let [start, ...points] = bezierSpline;
86
+ invariant(start, "start should be defined");
87
+ let path = `M ${printPoint(start)}`;
88
+ while (hasAtLeast(points, 3)) {
89
+ const [cp1, cp2, end, ...rest] = points;
90
+ path = path + ` C ${printPoint(cp1)} ${printPoint(cp2)} ${printPoint(end)}`;
91
+ points = rest;
92
+ }
93
+ invariant(points.length === 0, "all points should be consumed");
94
+ return path;
86
95
  }
96
+ /**
97
+ * Parses a single padding value to a number
98
+ * @internal
99
+ * @param padding - Padding to parse
100
+ * @param viewport - Width or height of the viewport
101
+ * @returns The padding in pixels
102
+ */
87
103
  function parsePadding(padding, viewport) {
88
- if (typeof padding === "number") {
89
- return Math.floor((viewport - viewport / (1 + padding)) * 0.5);
90
- }
91
- if (typeof padding === "string" && padding.endsWith("px")) {
92
- const paddingValue = parseFloat(padding);
93
- if (!Number.isNaN(paddingValue)) {
94
- return Math.floor(paddingValue);
95
- }
96
- }
97
- if (typeof padding === "string" && padding.endsWith("%")) {
98
- const paddingValue = parseFloat(padding);
99
- if (!Number.isNaN(paddingValue)) {
100
- return Math.floor(viewport * paddingValue * 0.01);
101
- }
102
- }
103
- console.error(
104
- `[React Flow] The padding value "${padding}" is invalid. Please provide a number or a string with a valid unit (px or %).`
105
- );
106
- return 0;
104
+ if (typeof padding === "number") return Math.floor((viewport - viewport / (1 + padding)) * .5);
105
+ if (typeof padding === "string" && padding.endsWith("px")) {
106
+ const paddingValue = parseFloat(padding);
107
+ if (!Number.isNaN(paddingValue)) return Math.floor(paddingValue);
108
+ }
109
+ if (typeof padding === "string" && padding.endsWith("%")) {
110
+ const paddingValue = parseFloat(padding);
111
+ if (!Number.isNaN(paddingValue)) return Math.floor(viewport * paddingValue * .01);
112
+ }
113
+ console.error(`[React Flow] The padding value "${padding}" is invalid. Please provide a number or a string with a valid unit (px or %).`);
114
+ return 0;
107
115
  }
116
+ /**
117
+ * Parses the paddings to an object with top, right, bottom, left, x and y paddings
118
+ * @internal
119
+ * @param padding - Padding to parse
120
+ * @param width - Width of the viewport
121
+ * @param height - Height of the viewport
122
+ * @returns An object with the paddings in pixels
123
+ */
108
124
  function parsePaddings(padding, width, height) {
109
- if (typeof padding === "string" || typeof padding === "number") {
110
- const paddingY = parsePadding(padding, height);
111
- const paddingX = parsePadding(padding, width);
112
- return {
113
- top: paddingY,
114
- right: paddingX,
115
- bottom: paddingY,
116
- left: paddingX,
117
- x: paddingX * 2,
118
- y: paddingY * 2
119
- };
120
- }
121
- if (typeof padding === "object") {
122
- const top = parsePadding(padding.top ?? padding.y ?? 0, height);
123
- const bottom = parsePadding(padding.bottom ?? padding.y ?? 0, height);
124
- const left = parsePadding(padding.left ?? padding.x ?? 0, width);
125
- const right = parsePadding(padding.right ?? padding.x ?? 0, width);
126
- return { top, right, bottom, left, x: left + right, y: top + bottom };
127
- }
128
- return { top: 0, right: 0, bottom: 0, left: 0, x: 0, y: 0 };
125
+ if (typeof padding === "string" || typeof padding === "number") {
126
+ const paddingY = parsePadding(padding, height);
127
+ const paddingX = parsePadding(padding, width);
128
+ return {
129
+ top: paddingY,
130
+ right: paddingX,
131
+ bottom: paddingY,
132
+ left: paddingX,
133
+ x: paddingX * 2,
134
+ y: paddingY * 2
135
+ };
136
+ }
137
+ if (typeof padding === "object") {
138
+ const top = parsePadding(padding.top ?? padding.y ?? 0, height);
139
+ const bottom = parsePadding(padding.bottom ?? padding.y ?? 0, height);
140
+ const left = parsePadding(padding.left ?? padding.x ?? 0, width);
141
+ const right = parsePadding(padding.right ?? padding.x ?? 0, width);
142
+ return {
143
+ top,
144
+ right,
145
+ bottom,
146
+ left,
147
+ x: left + right,
148
+ y: top + bottom
149
+ };
150
+ }
151
+ return {
152
+ top: 0,
153
+ right: 0,
154
+ bottom: 0,
155
+ left: 0,
156
+ x: 0,
157
+ y: 0
158
+ };
129
159
  }
130
-
131
- export { bezierControlPoints, bezierPath, getNodeCenter, getNodeIntersectionFromCenterToPoint, isSamePoint, nodeToRect, parsePaddings, stopPropagation };
160
+ //#endregion
161
+ export { bezierControlPoints, bezierPath, getNodeCenter, getNodeIntersectionFromCenterToPoint, isSamePoint, nodeToRect$1 as nodeToRect, parsePaddings, stopPropagation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/diagram",
3
- "version": "1.55.0",
3
+ "version": "1.56.0",
4
4
  "license": "MIT",
5
5
  "bugs": "https://github.com/likec4/likec4/issues",
6
6
  "homepage": "https://likec4.dev",
@@ -65,15 +65,15 @@
65
65
  "@dagrejs/dagre": "1.1.8",
66
66
  "@floating-ui/dom": "^1.7.6",
67
67
  "@lume/kiwi": "^0.4.4",
68
- "@mantine/core": "8.3.18",
69
- "@mantine/hooks": "8.3.18",
68
+ "@mantine/core": "9.1.0",
69
+ "@mantine/hooks": "9.1.0",
70
70
  "@nanostores/media-query": "0.1.2",
71
71
  "@nanostores/react": "1.1.0",
72
72
  "@react-hookz/web": "^25.2.0",
73
73
  "@xstate/react": "6.1.0",
74
74
  "@xstate/store": "3.17.1",
75
- "@xyflow/react": "12.10.1",
76
- "@xyflow/system": "0.0.75",
75
+ "@xyflow/react": "12.10.2",
76
+ "@xyflow/system": "0.0.76",
77
77
  "@zag-js/collection": "^1.33.1",
78
78
  "@zag-js/react": "^1.33.1",
79
79
  "@zag-js/tree-view": "^1.33.1",
@@ -89,8 +89,9 @@
89
89
  "remeda": "^2.33.7",
90
90
  "type-fest": "^4.41.0",
91
91
  "xstate": "5.30.0",
92
- "@likec4/core": "1.55.0",
93
- "@likec4/styles": "1.55.0"
92
+ "@tabler/icons-react": "3.40.0",
93
+ "@likec4/core": "1.56.0",
94
+ "@likec4/styles": "1.56.0"
94
95
  },
95
96
  "peerDependencies": {
96
97
  "@pandacss/dev": "^1.9.1",
@@ -105,25 +106,23 @@
105
106
  "devDependencies": {
106
107
  "@pandacss/dev": "^1.9.1",
107
108
  "@statelyai/inspect": "^0.4.0",
108
- "@tabler/icons-react": "3.40.0",
109
109
  "@types/bezier-js": "^4.1.3",
110
110
  "@types/d3-shape": "^3.1.8",
111
- "@types/node": "~22.19.15",
111
+ "@types/node": "~22.19.17",
112
112
  "@types/react": "19.2.14",
113
113
  "@types/react-dom": "19.2.3",
114
- "@vitejs/plugin-react": "^5.2.0",
114
+ "@vitejs/plugin-react": "^6.0.1",
115
115
  "oxlint": "1.59.0",
116
- "postcss": "8.5.8",
116
+ "postcss": "8.5.10",
117
117
  "react": "19.2.4",
118
118
  "react-dom": "19.2.4",
119
119
  "typescript": "5.9.3",
120
- "vite": "^7.3.1",
121
- "vite-plugin-dts": "^4.5.4",
120
+ "vite": "^8.0.10",
121
+ "vite-plugin-dts": "5.0.0-beta.6",
122
122
  "vitest": "4.1.3",
123
- "wireit": "0.14.12",
124
123
  "zx": "8.8.5",
125
- "@likec4/tsconfig": "1.55.0",
126
- "@likec4/devops": "1.42.0"
124
+ "@likec4/devops": "1.42.0",
125
+ "@likec4/tsconfig": "1.56.0"
127
126
  },
128
127
  "scripts": {
129
128
  "typecheck": "tsc --build --verbose",
@@ -340,6 +340,8 @@
340
340
  "borderBlockEndWidth]___[value:var(--thickness)",
341
341
  "pointerEvents]___[value:none]___[cond:_whenPanning",
342
342
  "width]___[value:max-content",
343
+ "wordBreak]___[value:break-word",
344
+ "minWidth]___[value:0",
343
345
  "gap]___[value:3",
344
346
  "paddingTop]___[value:2",
345
347
  "marginTop]___[value:2",
@@ -369,6 +371,8 @@
369
371
  "fontSize]___[value:xxs",
370
372
  "lineHeight]___[value:sm",
371
373
  "whiteSpace]___[value:nowrap",
374
+ "textOverflow]___[value:ellipsis",
375
+ "maxWidth]___[value:160px",
372
376
  "paddingBlock]___[value:0.5",
373
377
  "borderRadius]___[value:xs",
374
378
  "background]___[value:var(--likec4-palette-fill)/90]___[cond:_light",
@@ -376,6 +380,7 @@
376
380
  "color]___[value:var(--likec4-palette-hiContrast)]___[cond:_light",
377
381
  "color]___[value:var(--likec4-palette-loContrast)]___[cond:_dark",
378
382
  "whiteSpaceCollapse]___[value:preserve-breaks",
383
+ "overflowWrap]___[value:anywhere",
379
384
  "height]___[value:full",
380
385
  "borderWidth]___[value:4",
381
386
  "borderBottomLeftRadius]___[value:sm",
@@ -517,6 +522,7 @@
517
522
  "fontStyle]___[value:normal",
518
523
  "fontSize]___[value:24px",
519
524
  "lineHeight]___[value:xs",
525
+ "lineClamp]___[value:2",
520
526
  "flex]___[value:0 0 40px",
521
527
  "height]___[value:40px",
522
528
  "width]___[value:40px",
@@ -597,11 +603,8 @@
597
603
  "width]___[value:300",
598
604
  "whiteSpace]___[value:pre-wrap",
599
605
  "textOverflow]___[value:unset",
600
- "textOverflow]___[value:ellipsis",
601
- "wordBreak]___[value:break-word",
602
606
  "wordBreak]___[value:normal",
603
607
  "padding]___[value:xs",
604
- "minWidth]___[value:0",
605
608
  "minHeight]___[value:32px",
606
609
  "padding]___[value:[4px 8px]",
607
610
  "backgroundColor]___[value:white",
package/styles-font.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/cyrillic-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/greek-wght-normal.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/vietnamese-wght-normal.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
1
+ @font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans:vf@latest/vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}