@likec4/diagram 1.44.0 → 1.46.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 (270) hide show
  1. package/bundle/index.js +18847 -17876
  2. package/dist/LikeC4Diagram.d.ts +1 -1
  3. package/dist/LikeC4Diagram.js +15 -12
  4. package/dist/LikeC4Diagram.props.d.ts +13 -20
  5. package/dist/LikeC4ProjectsProvider.js +8 -4
  6. package/dist/LikeC4Styles.js +0 -3
  7. package/dist/LikeC4View.d.ts +3 -3
  8. package/dist/LikeC4View.js +8 -8
  9. package/dist/ReactLikeC4.d.ts +3 -6
  10. package/dist/StaticLikeC4Diagram.js +0 -2
  11. package/dist/base/Base.d.ts +1 -1
  12. package/dist/base/updateEdges.js +25 -15
  13. package/dist/base/updateNodes.d.ts +14 -0
  14. package/dist/base/updateNodes.js +51 -18
  15. package/dist/base-primitives/Markdown.d.ts +30 -4
  16. package/dist/base-primitives/Markdown.js +3 -2
  17. package/dist/base-primitives/NodeHandles.d.ts +2 -1
  18. package/dist/base-primitives/NodeHandles.js +22 -18
  19. package/dist/base-primitives/compound/CompoundActionButton.d.ts +3 -2
  20. package/dist/base-primitives/compound/CompoundActionButton.js +1 -1
  21. package/dist/base-primitives/compound/CompoundDetailsButton.d.ts +3 -2
  22. package/dist/base-primitives/compound/CompoundDetailsButton.js +1 -1
  23. package/dist/base-primitives/edge/EdgeActionButton.d.ts +3 -2
  24. package/dist/base-primitives/edge/EdgeActionButton.js +1 -1
  25. package/dist/base-primitives/edge/EdgeContainer.d.ts +1 -1
  26. package/dist/base-primitives/edge/EdgeContainer.js +6 -4
  27. package/dist/base-primitives/edge/EdgeLabel.d.ts +2 -2
  28. package/dist/base-primitives/edge/EdgeLabel.js +16 -16
  29. package/dist/base-primitives/edge/EdgeLabelContainer.d.ts +1 -1
  30. package/dist/base-primitives/edge/EdgeLabelContainer.js +5 -4
  31. package/dist/base-primitives/edge/EdgePath.js +27 -12
  32. package/dist/base-primitives/element/ElementActionButtons.d.ts +3 -2
  33. package/dist/base-primitives/element/ElementActionButtons.js +3 -3
  34. package/dist/base-primitives/element/ElementData.d.ts +3 -3
  35. package/dist/base-primitives/element/ElementData.js +13 -7
  36. package/dist/base-primitives/element/ElementDetailsButton.d.ts +3 -2
  37. package/dist/base-primitives/element/ElementDetailsButton.js +4 -1
  38. package/dist/base-primitives/element/ElementShape.js +5 -5
  39. package/dist/base-primitives/element/ElementTags.d.ts +6 -4
  40. package/dist/components/ErrorFallback.js +1 -1
  41. package/dist/components/Link.js +2 -2
  42. package/dist/context/DiagramEventHandlers.js +0 -1
  43. package/dist/context/DiagramFeatures.d.ts +2 -1
  44. package/dist/context/DiagramFeatures.js +1 -0
  45. package/dist/context/EnsureMantine.js +2 -1
  46. package/dist/context/IconRenderer.js +6 -6
  47. package/dist/context/TagStylesContext.js +1 -1
  48. package/dist/custom/hooks.d.ts +2 -2
  49. package/dist/custom/index.js +1 -1
  50. package/dist/editor/LikeC4EditorProvider.d.ts +22 -0
  51. package/dist/editor/LikeC4EditorProvider.js +12 -0
  52. package/dist/editor/__tests__/fixture.d.ts +205 -0
  53. package/dist/editor/applyChangesToManualLayout.d.ts +8 -0
  54. package/dist/editor/applyChangesToManualLayout.js +182 -0
  55. package/dist/editor/editorActor.actions.d.ts +201 -0
  56. package/dist/editor/editorActor.actions.js +149 -0
  57. package/dist/editor/editorActor.d.ts +653 -0
  58. package/dist/editor/editorActor.js +324 -0
  59. package/dist/editor/hotkeyActor.d.ts +7 -0
  60. package/dist/editor/hotkeyActor.js +19 -0
  61. package/dist/editor/index.d.ts +3 -2
  62. package/dist/editor/useEditorActorLogic.d.ts +565 -0
  63. package/dist/editor/useEditorActorLogic.js +54 -0
  64. package/dist/hooks/index.d.ts +2 -1
  65. package/dist/hooks/safeContext.d.ts +3 -2
  66. package/dist/hooks/safeContext.js +7 -4
  67. package/dist/hooks/useDiagram.d.ts +4 -2
  68. package/dist/hooks/useDiagram.js +19 -8
  69. package/dist/hooks/useDiagramCompareLayout.d.ts +8 -0
  70. package/dist/hooks/useDiagramCompareLayout.js +29 -4
  71. package/dist/hooks/useLikeC4Project.d.ts +6 -1
  72. package/dist/hooks/useLikeC4Project.js +14 -2
  73. package/dist/hooks/useMediaPrint.d.ts +6 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +1 -0
  76. package/dist/likec4diagram/DiagramXYFlow.js +11 -7
  77. package/dist/likec4diagram/custom/edges/EdgeDrifts.d.ts +6 -0
  78. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +34 -0
  79. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +90 -54
  80. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +3 -1
  81. package/dist/likec4diagram/custom/edges/edges.css.d.ts +0 -1
  82. package/dist/likec4diagram/custom/edges/edges.css.js +30 -24
  83. package/dist/likec4diagram/custom/edges/useControlPoints.js +5 -5
  84. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.js +5 -5
  85. package/dist/likec4diagram/custom/nodes/ElementActions.js +2 -2
  86. package/dist/likec4diagram/custom/nodes/NodeDrifts.d.ts +6 -0
  87. package/dist/likec4diagram/custom/nodes/{ElementNodeDrifts.js → NodeDrifts.js} +12 -13
  88. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +4 -2
  89. package/dist/likec4diagram/custom/nodes/index.d.ts +1 -0
  90. package/dist/likec4diagram/custom/nodes/nodes.js +61 -23
  91. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +2 -2
  92. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  93. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +128 -15
  94. package/dist/likec4diagram/relationship-popover/actor.d.ts +1 -1
  95. package/dist/likec4diagram/state/DiagramActorProvider.d.ts +2 -2
  96. package/dist/likec4diagram/state/DiagramActorProvider.js +63 -72
  97. package/dist/likec4diagram/state/assign.d.ts +14 -7
  98. package/dist/likec4diagram/state/assign.js +28 -200
  99. package/dist/likec4diagram/state/createViewChange.js +23 -30
  100. package/dist/likec4diagram/state/diagram-api.d.ts +20 -6
  101. package/dist/likec4diagram/state/diagram-api.js +58 -52
  102. package/dist/likec4diagram/state/hotkeyActor.d.ts +1 -8
  103. package/dist/likec4diagram/state/hotkeyActor.js +13 -17
  104. package/dist/likec4diagram/state/machine.actions.d.ts +1127 -864
  105. package/dist/likec4diagram/state/machine.actions.js +316 -296
  106. package/dist/likec4diagram/state/machine.actions.layout.d.ts +641 -0
  107. package/dist/likec4diagram/state/machine.actions.layout.js +141 -0
  108. package/dist/likec4diagram/state/machine.d.ts +18 -3712
  109. package/dist/likec4diagram/state/machine.js +64 -73
  110. package/dist/likec4diagram/state/machine.setup.d.ts +80 -26
  111. package/dist/likec4diagram/state/machine.setup.js +44 -7
  112. package/dist/likec4diagram/state/machine.state.initializing.d.ts +58 -17
  113. package/dist/likec4diagram/state/machine.state.initializing.js +14 -14
  114. package/dist/likec4diagram/state/machine.state.navigating.d.ts +5 -108
  115. package/dist/likec4diagram/state/machine.state.navigating.js +187 -35
  116. package/dist/likec4diagram/state/machine.state.ready.d.ts +2997 -2598
  117. package/dist/likec4diagram/state/machine.state.ready.focused.d.ts +710 -0
  118. package/dist/likec4diagram/state/machine.state.ready.focused.js +98 -0
  119. package/dist/likec4diagram/state/machine.state.ready.idle.d.ts +540 -0
  120. package/dist/likec4diagram/state/machine.state.ready.idle.js +105 -0
  121. package/dist/likec4diagram/state/machine.state.ready.js +95 -347
  122. package/dist/likec4diagram/state/machine.state.ready.printing.d.ts +140 -0
  123. package/dist/likec4diagram/state/machine.state.ready.printing.js +40 -0
  124. package/dist/likec4diagram/state/machine.state.ready.walkthrough.d.ts +684 -0
  125. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +190 -0
  126. package/dist/likec4diagram/state/mediaPrintActor.d.ts +12 -0
  127. package/dist/likec4diagram/state/mediaPrintActor.js +18 -0
  128. package/dist/likec4diagram/state/types.d.ts +11 -9
  129. package/dist/likec4diagram/state/utils.d.ts +44 -5
  130. package/dist/likec4diagram/state/utils.js +62 -6
  131. package/dist/likec4diagram/types.d.ts +8 -13
  132. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +5 -2
  133. package/dist/likec4diagram/ui/notation/NotationPanel.js +3 -3
  134. package/dist/likec4diagram/useLayoutConstraints.js +104 -103
  135. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +12 -15
  136. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +11 -8
  137. package/dist/navigationpanel/NavigationPanel.js +11 -10
  138. package/dist/navigationpanel/NavigationPanelDropdown.js +7 -7
  139. package/dist/navigationpanel/_common.js +1 -1
  140. package/dist/navigationpanel/actor.d.ts +4 -204
  141. package/dist/navigationpanel/actor.js +1 -1
  142. package/dist/navigationpanel/comparepanel/CompareActionsMenu.d.ts +3 -1
  143. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +40 -14
  144. package/dist/navigationpanel/comparepanel/ComparePanelControls.js +6 -4
  145. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.js +2 -2
  146. package/dist/navigationpanel/controls/DetailsControls.js +2 -2
  147. package/dist/navigationpanel/controls/LayoutWarning.js +2 -1
  148. package/dist/navigationpanel/controls/NavigationButtons.js +2 -2
  149. package/dist/navigationpanel/controls/OpenSource.js +1 -1
  150. package/dist/navigationpanel/controls/SearchControl.js +2 -2
  151. package/dist/navigationpanel/controls/ToggleReadonly.js +32 -19
  152. package/dist/navigationpanel/dropdown/ProjectsMenu.js +1 -1
  153. package/dist/navigationpanel/editorpanel/CenterCamera.js +1 -1
  154. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +1 -1
  155. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +9 -9
  156. package/dist/navigationpanel/editorpanel/ToggleReadonly.js +1 -1
  157. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +3 -3
  158. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +9 -9
  159. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +1 -1
  160. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +4 -3
  161. package/dist/overlays/Overlays.js +24 -12
  162. package/dist/overlays/element-details/ElementDetailsCard.css.js +3 -3
  163. package/dist/overlays/element-details/ElementDetailsCard.js +4 -4
  164. package/dist/overlays/element-details/MetadataValue.d.ts +2 -1
  165. package/dist/overlays/element-details/MetadataValue.js +4 -6
  166. package/dist/overlays/element-details/TabPanelDeployments.js +3 -3
  167. package/dist/overlays/element-details/TabPanelRelationships.js +12 -7
  168. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  169. package/dist/overlays/element-details/actor.d.ts +8 -83
  170. package/dist/overlays/element-details/actor.js +0 -8
  171. package/dist/overlays/overlay/Overlay.js +10 -10
  172. package/dist/overlays/overlaysActor.d.ts +7 -392
  173. package/dist/overlays/overlaysActor.js +73 -49
  174. package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
  175. package/dist/overlays/relationship-details/SelectEdge.js +2 -2
  176. package/dist/overlays/relationship-details/_types.d.ts +3 -4
  177. package/dist/overlays/relationship-details/actor.d.ts +6 -562
  178. package/dist/overlays/relationship-details/actor.js +1 -0
  179. package/dist/overlays/relationship-details/custom/ElementActions.js +3 -3
  180. package/dist/overlays/relationship-details/layout-to-xyflow.js +3 -5
  181. package/dist/overlays/relationship-details/layout.d.ts +3 -3
  182. package/dist/overlays/relationship-details/layout.js +4 -4
  183. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +3 -3
  184. package/dist/overlays/relationships-browser/SelectElement.js +2 -2
  185. package/dist/overlays/relationships-browser/_types.d.ts +2 -3
  186. package/dist/overlays/relationships-browser/actor.d.ts +7 -739
  187. package/dist/overlays/relationships-browser/custom/ElementActions.js +3 -3
  188. package/dist/overlays/relationships-browser/layout.d.ts +2 -2
  189. package/dist/overlays/relationships-browser/layout.js +3 -3
  190. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +0 -3
  191. package/dist/overlays/types.d.ts +12 -13
  192. package/dist/search/components/ElementsColumn.js +7 -3
  193. package/dist/search/components/PickView.js +3 -1
  194. package/dist/search/components/SearchByTags.js +1 -1
  195. package/dist/search/components/SearchInput.js +1 -1
  196. package/dist/search/components/ViewsColum.d.ts +3 -1
  197. package/dist/search/components/ViewsColum.js +13 -7
  198. package/dist/search/components/_shared.css.d.ts +1 -1
  199. package/dist/search/searchActor.d.ts +3 -66
  200. package/dist/shadowroot/ShadowRoot.d.ts +5 -7
  201. package/dist/shadowroot/ShadowRoot.js +7 -5
  202. package/dist/shadowroot/styles.css.js +6 -1
  203. package/dist/styles.css2.js +1 -1
  204. package/dist/utils/index.d.ts +2 -2
  205. package/dist/utils/view-bounds.js +7 -6
  206. package/dist/utils/xyflow.d.ts +6 -5
  207. package/dist/utils/xyflow.js +26 -57
  208. package/package.json +24 -23
  209. package/panda.buildinfo.json +65 -71
  210. package/styles-min.css +1 -1
  211. package/styles.css +1 -1
  212. package/dist/base-primitives/edge/edge.css.d.ts +0 -4
  213. package/dist/base-primitives/edge/edge.css.js +0 -71
  214. package/dist/editor/LikeC4EditorContext.d.ts +0 -21
  215. package/dist/likec4diagram/custom/nodes/ElementNodeDrifts.d.ts +0 -4
  216. package/dist/likec4diagram/state/syncManualLayoutActor.d.ts +0 -280
  217. package/dist/likec4diagram/state/syncManualLayoutActor.js +0 -248
  218. package/dist/utils/vector.d.ts +0 -81
  219. package/dist/utils/vector.js +0 -120
  220. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +0 -0
  221. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +0 -0
  222. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -0
  223. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -0
  224. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +0 -0
  225. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -0
  226. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js +0 -0
  227. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -0
  228. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -0
  229. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +0 -0
  230. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -0
  231. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -0
  232. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -0
  233. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -0
  234. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -0
  235. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.js +0 -0
  236. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -0
  237. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -0
  238. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -0
  239. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +0 -0
  240. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -0
  241. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -0
  242. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -0
  243. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -0
  244. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -0
  245. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -0
  246. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -0
  247. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -0
  248. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -0
  249. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -0
  250. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -0
  251. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -0
  252. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +0 -0
  253. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -0
  254. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -0
  255. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -0
  256. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -0
  257. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -0
  258. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -0
  259. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -0
  260. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -0
  261. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -0
  262. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -0
  263. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -0
  264. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -0
  265. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +0 -0
  266. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -0
  267. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -0
  268. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -0
  269. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -0
  270. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -0
@@ -1,5 +1,5 @@
1
- export { Vector, vector } from './vector';
2
- export type { VectorValue } from './vector';
1
+ export { Vector, vector } from '@likec4/core/geometry';
2
+ export type { VectorValue } from '@likec4/core/geometry';
3
3
  export { bezierControlPoints, bezierPath, distance, distanceBetweenPoints, extractMinimalInternalNode, getNodeCenter, getNodeIntersection, getNodeIntersectionFromCenterToPoint, isEqualMinimalInternalNodes, isInside, isSamePoint, type MinimalInternalNode, nodeToRect, stopPropagation, } from './xyflow';
4
4
  export { roundDpr } from './roundDpr';
5
5
  export { pickViewBounds } from './view-bounds';
@@ -17,12 +17,6 @@ function calcEdgeBounds({ points, controlPoints, labelBBox }) {
17
17
  let minY = Infinity;
18
18
  let maxX = -Infinity;
19
19
  let maxY = -Infinity;
20
- for (const p of points) {
21
- minX = Math.min(minX, p[0]);
22
- minY = Math.min(minY, p[1]);
23
- maxX = Math.max(maxX, p[0]);
24
- maxY = Math.max(maxY, p[1]);
25
- }
26
20
  if (controlPoints) {
27
21
  for (const p of controlPoints) {
28
22
  minX = Math.min(minX, p.x);
@@ -30,6 +24,13 @@ function calcEdgeBounds({ points, controlPoints, labelBBox }) {
30
24
  maxX = Math.max(maxX, p.x);
31
25
  maxY = Math.max(maxY, p.y);
32
26
  }
27
+ } else {
28
+ for (const [x, y] of points) {
29
+ minX = Math.min(minX, x);
30
+ minY = Math.min(minY, y);
31
+ maxX = Math.max(maxX, x);
32
+ maxY = Math.max(maxY, y);
33
+ }
33
34
  }
34
35
  if (labelBBox) {
35
36
  minX = Math.min(minX, labelBBox.x);
@@ -1,7 +1,7 @@
1
- import { NonEmptyArray, Point, BBox } from '@likec4/core';
1
+ import { NonEmptyArray, Point, BBox, Vector } from '@likec4/core';
2
2
  import { InternalNode, Rect, XYPosition, Position } from '@xyflow/react';
3
3
  import { NodeHandle } from '@xyflow/system';
4
- import { Vector } from './vector';
4
+ import { MouseEvent as ReactMouseEvent } from 'react';
5
5
  export declare function distance(a: XYPosition, b: XYPosition): number;
6
6
  /**
7
7
  * Minimal type to access only needed properties of InternalNode
@@ -28,6 +28,7 @@ export type MinimalInternalNode = {
28
28
  */
29
29
  export declare function extractMinimalInternalNode<N extends InternalNode>(nd: N): MinimalInternalNode;
30
30
  export declare function isEqualMinimalInternalNodes(a: MinimalInternalNode, b: MinimalInternalNode): boolean;
31
+ export declare function isEqualRects(a: Rect, b: Rect): boolean;
31
32
  export declare const nodeToRect: (nd: MinimalInternalNode) => Rect;
32
33
  export declare function getNodeCenter(node: MinimalInternalNode): XYPosition;
33
34
  /**
@@ -39,7 +40,7 @@ export declare function getNodeCenter(node: MinimalInternalNode): XYPosition;
39
40
  * @param nodeMargin the margin of the intersectionNode. The point will be placed at nodeMargin distance from the border of the node
40
41
  * @returns coordinates of the intersection point
41
42
  */
42
- export declare function getNodeIntersectionFromCenterToPoint(intersectionNode: MinimalInternalNode, target: XYPosition, nodeMargin?: number): Vector;
43
+ export declare function getNodeIntersectionFromCenterToPoint(intersectionNode: BBox, target: XYPosition, nodeMargin?: number): Vector;
43
44
  /**
44
45
  * Helper function returns the intersection point
45
46
  * of the line between the center of the intersectionNode and the target
@@ -57,10 +58,10 @@ export declare function getNodeIntersection(intersectionNode: MinimalInternalNod
57
58
  * @returns `true` if the `test` rectangle is completely inside the `target` rectangle, otherwise `false`.
58
59
  */
59
60
  export declare const isInside: (test: Rect, target: Rect) => boolean;
60
- export declare function bezierControlPoints(points: NonEmptyArray<Point>): XYPosition[];
61
+ export declare function bezierControlPoints(points: NonEmptyArray<Point>): NonEmptyArray<XYPosition>;
61
62
  export declare function isSamePoint(a: XYPosition | Point, b: XYPosition | Point): boolean;
62
63
  export declare function distanceBetweenPoints(a: XYPosition, b: XYPosition): number;
63
- export declare function stopPropagation(e: React.MouseEvent): void;
64
+ export declare function stopPropagation(e: ReactMouseEvent): void;
64
65
  export declare function bezierPath(bezierSpline: NonEmptyArray<Point>): string;
65
66
  export declare function toXYFlowPosition(position: 'left' | 'right' | 'top' | 'bottom'): Position;
66
67
  export declare function createXYFlowNodeNandles(bbox: BBox): NodeHandle[];
@@ -1,68 +1,36 @@
1
- import '@likec4/core';
1
+ import { BBox } from '@likec4/core';
2
+ import { vector } from '@likec4/core/geometry';
2
3
  import { invariant } from '@likec4/core/utils';
3
4
  import '@xyflow/react';
4
5
  import { getNodeDimensions } from '@xyflow/system';
5
6
  import { Bezier } from 'bezier-js';
6
- import { hasAtLeast, isNumber, isArray } from 'remeda';
7
- import { vector } from './vector.js';
7
+ import { isArray, hasAtLeast } from 'remeda';
8
8
 
9
- function extractMinimalInternalNode(nd) {
10
- const minimal = {
11
- internals: {
12
- positionAbsolute: nd.internals.positionAbsolute
13
- }
14
- };
15
- if (nd.measured) {
16
- minimal.measured = nd.measured;
17
- }
18
- if (isNumber(nd.width)) {
19
- minimal.width = nd.width;
20
- }
21
- if (isNumber(nd.height)) {
22
- minimal.height = nd.height;
23
- }
24
- if (isNumber(nd.initialWidth)) {
25
- minimal.initialWidth = nd.initialWidth;
26
- }
27
- if (isNumber(nd.initialHeight)) {
28
- minimal.initialHeight = nd.initialHeight;
29
- }
30
- return minimal;
31
- }
32
- function isEqualMinimalInternalNodes(a, b) {
33
- const posA = a.internals.positionAbsolute;
34
- const posB = b.internals.positionAbsolute;
35
- if (posA.x !== posB.x || posA.y !== posB.y) {
36
- return false;
37
- }
38
- const widthA = a.measured?.width ?? a.width ?? a.initialWidth ?? 0;
39
- const widthB = b.measured?.width ?? b.width ?? b.initialWidth ?? 0;
40
- if (widthA !== widthB) {
41
- return false;
42
- }
43
- const heightA = a.measured?.height ?? a.height ?? a.initialHeight ?? 0;
44
- const heightB = b.measured?.height ?? b.height ?? b.initialHeight ?? 0;
45
- return heightA === heightB;
9
+ function isEqualRects(a, b) {
10
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
46
11
  }
12
+ const nodeToRect = (nd) => ({
13
+ x: Math.round(nd.internals.positionAbsolute.x),
14
+ y: Math.round(nd.internals.positionAbsolute.y),
15
+ width: nd.measured?.width ?? nd.width ?? nd.initialWidth ?? 0,
16
+ height: nd.measured?.height ?? nd.height ?? nd.initialHeight ?? 0
17
+ });
47
18
  function getNodeCenter(node) {
48
19
  const { width, height } = getNodeDimensions(node);
49
20
  const { x, y } = node.internals.positionAbsolute;
50
21
  return {
51
- x: x + width / 2,
52
- y: y + height / 2
22
+ x: Math.round(x + width / 2),
23
+ y: Math.round(y + height / 2)
53
24
  };
54
25
  }
55
26
  function getNodeIntersectionFromCenterToPoint(intersectionNode, target, nodeMargin = 0) {
56
- const nodeCenter = getNodeCenter(intersectionNode);
57
- const { width, height } = getNodeDimensions(intersectionNode);
27
+ const { width, height } = intersectionNode;
28
+ const nodeCenter = BBox.center(intersectionNode);
58
29
  const v = vector(target.x, target.y).subtract(nodeCenter);
59
- const xScale = (nodeMargin + (width || 0) / 2) / v.x;
60
- const yScale = (nodeMargin + (height || 0) / 2) / v.y;
30
+ const xScale = (nodeMargin + width / 2) / v.x;
31
+ const yScale = (nodeMargin + height / 2) / v.y;
61
32
  const scale = Math.min(Math.abs(xScale), Math.abs(yScale));
62
- return vector(v).multiply(scale).add(nodeCenter);
63
- }
64
- function getNodeIntersection(intersectionNode, targetNode) {
65
- return getNodeIntersectionFromCenterToPoint(intersectionNode, getNodeCenter(targetNode));
33
+ return vector(v).multiply(scale).add(nodeCenter).round();
66
34
  }
67
35
  function bezierControlPoints(points) {
68
36
  let [start, ...bezierPoints] = points;
@@ -88,15 +56,16 @@ function bezierControlPoints(points) {
88
56
  start = end;
89
57
  }
90
58
  invariant(bezierPoints.length === 0, "all points should be consumed");
59
+ invariant(hasAtLeast(handles, 1), "at least one control point should be generated");
91
60
  return handles;
92
61
  }
93
- const isClose = (a, b) => {
94
- return Math.abs(a - b) < 3.1;
95
- };
96
62
  function isSamePoint(a, b) {
97
- const [ax, ay] = isArray(a) ? a : [a.x, a.y];
98
- const [bx, by] = isArray(b) ? b : [b.x, b.y];
99
- return isClose(ax, bx) && isClose(ay, by);
63
+ const pointA = isArray(a) ? { x: a[0], y: a[1] } : a;
64
+ const pointB = isArray(b) ? { x: b[0], y: b[1] } : b;
65
+ return distanceBetweenPoints(pointA, pointB) < 2.1;
66
+ }
67
+ function distanceBetweenPoints(a, b) {
68
+ return Math.hypot(b.x - a.x, b.y - a.y);
100
69
  }
101
70
  function stopPropagation(e) {
102
71
  return e.stopPropagation();
@@ -114,4 +83,4 @@ function bezierPath(bezierSpline) {
114
83
  return path;
115
84
  }
116
85
 
117
- export { bezierControlPoints, bezierPath, extractMinimalInternalNode, getNodeCenter, getNodeIntersection, getNodeIntersectionFromCenterToPoint, isEqualMinimalInternalNodes, isSamePoint, stopPropagation };
86
+ export { bezierControlPoints, bezierPath, distanceBetweenPoints, getNodeCenter, getNodeIntersectionFromCenterToPoint, isEqualRects, isSamePoint, nodeToRect, stopPropagation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/diagram",
3
- "version": "1.44.0",
3
+ "version": "1.46.0",
4
4
  "license": "MIT",
5
5
  "bugs": "https://github.com/likec4/likec4/issues",
6
6
  "homepage": "https://likec4.dev",
@@ -62,33 +62,34 @@
62
62
  "./package.json": "./package.json"
63
63
  },
64
64
  "dependencies": {
65
- "@dagrejs/dagre": "1.1.5",
65
+ "@dagrejs/dagre": "1.1.8",
66
66
  "@floating-ui/dom": "^1.7.4",
67
67
  "@lume/kiwi": "^0.4.4",
68
- "@mantine/core": "8.3.7",
69
- "@mantine/hooks": "8.3.7",
68
+ "@mantine/core": "8.3.9",
69
+ "@mantine/hooks": "8.3.9",
70
70
  "@nanostores/react": "1.0.0",
71
+ "@nanostores/media-query": "0.1.2",
71
72
  "@react-hookz/web": "^25.2.0",
72
73
  "@xstate/react": "6.0.0",
73
- "@xyflow/react": "12.9.0",
74
- "@xyflow/system": "0.0.71",
74
+ "@xyflow/react": "12.10.0",
75
+ "@xyflow/system": "0.0.74",
75
76
  "immer": "^10.2.0",
76
77
  "bezier-js": "^6.1.4",
77
78
  "d3-shape": "^3.2.0",
78
- "fast-equals": "^5.3.2",
79
+ "fast-equals": "^5.3.3",
79
80
  "khroma": "2.1.0",
80
- "motion": "^12.23.24",
81
- "nanostores": "1.0.1",
81
+ "motion": "^12.23.25",
82
+ "nanostores": "1.1.0",
82
83
  "react-error-boundary": "^6.0.0",
83
84
  "react-shadow": "^20.6.0",
84
85
  "remeda": "^2.32.0",
85
86
  "type-fest": "^4.41.0",
86
87
  "xstate": "5.24.0",
87
- "@likec4/core": "1.44.0",
88
- "@likec4/styles": "1.44.0"
88
+ "@likec4/core": "1.46.0",
89
+ "@likec4/styles": "1.46.0"
89
90
  },
90
91
  "peerDependencies": {
91
- "@pandacss/dev": "^1.4.3",
92
+ "@pandacss/dev": "^1.6.1",
92
93
  "@types/react": "^18.x || ^19.x",
93
94
  "@types/react-dom": "^18.x || ^19.x",
94
95
  "react": "^18.x || ^19.x",
@@ -106,27 +107,27 @@
106
107
  }
107
108
  },
108
109
  "devDependencies": {
109
- "@pandacss/dev": "^1.4.3",
110
+ "@pandacss/dev": "^1.6.1",
110
111
  "@statelyai/inspect": "^0.4.0",
111
112
  "@tabler/icons-react": "3.35.0",
112
113
  "@types/bezier-js": "^4.1.3",
113
114
  "@types/d3-shape": "^3.1.7",
114
- "@types/node": "~20.19.22",
115
- "@types/react": "19.2.2",
116
- "@types/react-dom": "19.2.2",
117
- "@vitejs/plugin-react": "^5.1.0",
118
- "oxlint": "1.28.0",
115
+ "@types/node": "~22.19.1",
116
+ "@types/react": "19.2.7",
117
+ "@types/react-dom": "19.2.3",
118
+ "@vitejs/plugin-react": "^5.1.1",
119
+ "oxlint": "1.31.0",
119
120
  "postcss": "8.5.6",
120
- "react": "19.2.0",
121
- "react-dom": "19.2.0",
121
+ "react": "19.2.1",
122
+ "react-dom": "19.2.1",
122
123
  "typescript": "5.9.3",
123
- "vite": "^7.2.2",
124
+ "vite": "^7.2.6",
124
125
  "vite-plugin-dts": "^4.5.4",
125
- "vitest": "4.0.8",
126
+ "vitest": "4.0.15",
126
127
  "wireit": "0.14.12",
127
128
  "zx": "8.8.5",
128
129
  "@likec4/devops": "1.42.0",
129
- "@likec4/tsconfig": "1.44.0"
130
+ "@likec4/tsconfig": "1.46.0"
130
131
  },
131
132
  "scripts": {
132
133
  "typecheck": "tsc --build --verbose",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "1.4.3",
2
+ "schemaVersion": "1.6.1",
3
3
  "styles": {
4
4
  "atomic": [
5
5
  "background]___[value:dots",
@@ -118,6 +118,7 @@
118
118
  "width]___[value:max-content]___[cond:@/sm",
119
119
  "maxWidth]___[value:calc(100vw - 2 * {spacing.md})]___[cond:@/sm",
120
120
  "maxWidth]___[value:calc(100cqw - 2 * {spacing.md})]___[cond:@/sm<___>xs",
121
+ "display]___[value:none]___[cond:_print",
121
122
  "mainAxis]___[value:4",
122
123
  "position]___[value:bottom-start",
123
124
  "layerStyle]___[value:likec4.panel",
@@ -216,40 +217,12 @@
216
217
  "transitionDelay]___[value:0s]___[cond:_hover",
217
218
  "lineClamp]___[value:5",
218
219
  "fill]___[value:none",
219
- "transition]___[value:none]___[cond:_reduceGraphics",
220
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 2)",
221
- "strokeOpacity]___[value:0.08",
222
- "transitionProperty]___[value:stroke-width, stroke-opacity]___[cond:_noReduceGraphics",
223
- "transitionDuration]___[value:fast]___[cond:_noReduceGraphics",
224
- "transitionTimingFunction]___[value:inOut]___[cond:_noReduceGraphics",
225
- "transitionTimingFunction]___[value:out]___[cond:_whenHovered",
226
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 4)]___[cond:_whenHovered",
227
- "strokeOpacity]___[value:0.2]___[cond:_whenHovered",
228
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 6)]___[cond:_whenSelected",
229
- "strokeOpacity]___[value:0.25]___[cond:_whenSelected",
230
- "strokeOpacity]___[value:0.4]___[cond:_whenSelected<___>_whenHovered",
231
- "fill]___[value:[var(--xy-edge-stroke)]",
232
- "stroke]___[value:[var(--xy-edge-stroke)]",
233
- "strokeDashoffset]___[value:0",
234
- "animationStyle]___[value:xyedgeAnimated]___[cond:_noReduceGraphics",
235
- "animationPlayState]___[value:paused]___[cond:_noReduceGraphics",
236
- "transition]___[value:stroke 130ms ease-out,stroke-width 130ms ease-out]___[cond:_noReduceGraphics",
237
- "animationDirection]___[value:reverse]___[cond::where([data-edge-dir='back']) &",
238
- "animationPlayState]___[value:running]___[cond:_whenHovered<___>_noReduceGraphics",
239
- "animationDelay]___[value:450ms]___[cond:_whenHovered<___>_noReduceGraphics",
240
- "animationPlayState]___[value:running]___[cond::where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-animated='true']) &<___>_noReduceGraphics",
241
- "animationDelay]___[value:0ms]___[cond::where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-animated='true']) &<___>_noReduceGraphics",
242
- "animationPlayState]___[value:paused]___[cond:_whenDimmed",
243
- "animationName]___[value:none]___[cond:_smallZoom",
244
- "strokeDasharray]___[value:none !important]___[cond:_whenPanning",
245
- "animationPlayState]___[value:paused]___[cond:_whenPanning",
246
220
  "justifyContent]___[value:center",
247
221
  "zIndex]___[value:1",
248
222
  "display]___[value:none]___[cond:_smallZoom",
249
223
  "gap]___[value:1.5",
250
224
  "lineClamp]___[value:2",
251
225
  "lineClamp]___[value:3",
252
- "maxHeight]___[value:8rem ",
253
226
  "top]___[value:0.5",
254
227
  "right]___[value:0.5",
255
228
  "right]___[value:[5px]]___[cond:_shapeBrowser",
@@ -301,6 +274,7 @@
301
274
  "paddingTop]___[value:2",
302
275
  "marginTop]___[value:2",
303
276
  "marginTop]___[value:0",
277
+ "color]___[value:orange",
304
278
  "--bleed-x]___[value:token(spacing.2, 2)",
305
279
  "--bleed-y]___[value:token(spacing.2, 2)",
306
280
  "marginInline]___[value:calc(var(--bleed-x, 0) * -1)",
@@ -311,12 +285,18 @@
311
285
  "gap]___[value:2",
312
286
  "offset]___[value:2",
313
287
  "position]___[value:top-start",
288
+ "width]___[value:350",
289
+ "position]___[value:right",
290
+ "offset]___[value:10",
291
+ "background]___[value:white",
314
292
  "opacity]___[value:0.65",
293
+ "display]___[value:inline-flex",
315
294
  "paddingLeft]___[value:2.5",
316
295
  "paddingBlock]___[value:1.5",
317
296
  "borderLeft]___[value:2px dotted",
318
297
  "borderLeftColor]___[value:mantine.colors.gray[3]",
319
298
  "borderLeftColor]___[value:mantine.colors.dark[4]]___[cond:_dark",
299
+ "opacity]___[value:0.5",
320
300
  "display]___[value:block",
321
301
  "fontSize]___[value:xxs",
322
302
  "lineHeight]___[value:sm",
@@ -342,10 +322,12 @@
342
322
  "transform]___[value:translateY(-3px)]___[cond:_active",
343
323
  "boxShadow]___[value:lg",
344
324
  "textStyle]___[value:xs",
325
+ "layerStyle]___[value:likec4.panel.action",
326
+ "position]___[value:right-start",
327
+ "stroke]___[value:1.7",
345
328
  "paddingBlock]___[value:1",
346
329
  "paddingLeft]___[value:3",
347
330
  "color]___[value:likec4.panel.text",
348
- "color]___[value:orange",
349
331
  "color]___[value:green",
350
332
  "padding]___[value:0.5",
351
333
  "width]___[value:[20px]",
@@ -372,14 +354,15 @@
372
354
  "overflow]___[value:visible",
373
355
  "color]___[value:mantine.colors.gray[4]]___[cond:_dark",
374
356
  "color]___[value:mantine.colors.gray[8]]___[cond:_light",
375
- "opacity]___[value:0.5",
376
357
  "marginInlineEnd]___[value:0.5",
377
358
  "crossAxis]___[value:-22",
378
359
  "padding]___[value:1.5",
379
360
  "marginTop]___[value:4",
380
361
  "marginTop]___[value:xs",
381
- "layerStyle]___[value:likec4.panel.action",
362
+ "layerStyle]___[value:likec4.panel.action.filled",
382
363
  "paddingInline]___[value:xxs",
364
+ "backgroundColor]___[value:none",
365
+ "backgroundColor]___[value:likec4.panel.action.bg.hover]___[cond:_notDisabled<___>_hover",
383
366
  "fontWeight]___[value:400",
384
367
  "boxShadow]___[value:md",
385
368
  "mainAxis]___[value:2",
@@ -387,7 +370,6 @@
387
370
  "lineHeight]___[value:1.1",
388
371
  "color]___[value:mantine.colors.gray[9]]___[cond:_light",
389
372
  "marginInlineStart]___[value:1]___[cond:&:is([data-position=\"right\"])",
390
- "position]___[value:right-start",
391
373
  "mainAxis]___[value:10",
392
374
  "opacity]___[value:0.6",
393
375
  "padding]___[value:8",
@@ -401,7 +383,6 @@
401
383
  "position]___[value:top",
402
384
  "width]___[value:70%]___[cond:& > svg",
403
385
  "height]___[value:70%]___[cond:& > svg",
404
- "position]___[value:right",
405
386
  "mainAxis]___[value:12",
406
387
  "top]___[value:md",
407
388
  "left]___[value:md",
@@ -458,7 +439,7 @@
458
439
  "backgroundColor]___[value:mantine.colors.body",
459
440
  "backgroundColor]___[value:mantine.colors.dark[6]]___[cond:_dark",
460
441
  "border]___[value:none",
461
- "backgroundImage]___[value: linear-gradient(180deg, color-mix(in srgb, var(--likec4-palette-fill) 60%, transparent), color-mix(in srgb, var(--likec4-palette-fill) 20%, transparent) 8px, color-mix(in srgb, var(--likec4-palette-fill) 14%, transparent) 20px, transparent 80px ), linear-gradient(180deg, var(--likec4-palette-fill), var(--likec4-palette-fill) 4px, transparent 4px) ",
442
+ "backgroundImage]___[value: linear-gradient(180deg, color-mix(in oklab, var(--likec4-palette-fill) 60%, transparent), color-mix(in oklab, var(--likec4-palette-fill) 20%, transparent) 8px, color-mix(in oklab, var(--likec4-palette-fill) 14%, transparent) 20px, transparent 80px ), linear-gradient(180deg, var(--likec4-palette-fill), var(--likec4-palette-fill) 4px, transparent 4px) ",
462
443
  "display]___[value:none]___[cond:& .react-flow__attribution",
463
444
  "flex]___[value:0",
464
445
  "cursor]___[value:move",
@@ -629,7 +610,6 @@
629
610
  "paddingInline]___[value:md",
630
611
  "paddingBlock]___[value:xs",
631
612
  "marginTop]___[value:sm",
632
- "display]___[value:inline-flex",
633
613
  "borderStyle]___[value:solid]___[cond:_hover",
634
614
  "transitionTimingFunction]___[value:out]___[cond:_hover<___>& > *",
635
615
  "transform]___[value:translateX(1px)]___[cond:_hover<___>& > *",
@@ -768,34 +748,42 @@
768
748
  "transform]___[value:translateX(-50%)",
769
749
  "zIndex]___[value:903",
770
750
  "marginTop]___[value:[32px]]___[cond:& + &",
771
- "mixBlendMode]___[value:normal",
772
- "fill]___[value:var(--likec4-palette-relation-stroke)",
773
- "stroke]___[value:var(--likec4-palette-relation-stroke)",
774
- "fillOpacity]___[value:0.75",
775
- "strokeWidth]___[value:1",
751
+ "stroke]___[value:likec4.compare.manual.outline",
752
+ "strokeWidth]___[value:8px",
753
+ "strokeWidth]___[value:12px]___[cond:_whenHovered",
754
+ "strokeOpacity]___[value:0.5",
755
+ "cursor]___[value:copy]___[cond:& .react-flow__edge-interaction",
756
+ "zIndex]___[value:9999",
757
+ "mixBlendMode]___[value:screen]___[cond:_dark",
758
+ "mixBlendMode]___[value:multiply]___[cond:_light",
759
+ "fill]___[value:[var(--xy-edge-stroke)]",
760
+ "stroke]___[value:transparent",
761
+ "fillOpacity]___[value:0.5",
762
+ "strokeWidth]___[value:10",
763
+ "r]___[value:4",
776
764
  "cursor]___[value:grab",
777
- "pointerEvents]___[value:auto",
778
765
  "visibility]___[value:hidden",
779
- "fillOpacity]___[value:1]___[cond:_hover",
780
- "stroke]___[value:mantine.colors.primary.filledHover]___[cond:_hover",
781
- "strokeWidth]___[value:18]___[cond:_hover",
782
- "transition]___[value:stroke 100ms ease-out, stroke-width 100ms ease-out]___[cond:_hover",
766
+ "transitionDuration]___[value:120ms",
767
+ "transitionProperty]___[value:visibility, fill, fill-opacity, r",
768
+ "transitionTimingFunction]___[value:inOut",
769
+ "transitionDelay]___[value:20ms",
783
770
  "visibility]___[value:visible]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
784
- "transition]___[value:fill-opacity 150ms ease-out, stroke 150ms ease-out, stroke-width 150ms ease-out]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
785
- "transitionDelay]___[value:50ms]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
786
771
  "fillOpacity]___[value:1]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
787
- "strokeWidth]___[value:12]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
788
- "cursor]___[value:grabbing",
789
- "cursor]___[value:grabbing !important]___[cond:& *",
790
- "cursor]___[value:grabbing !important]___[cond:& .react-flow__edge-interaction",
772
+ "transitionTimingFunction]___[value:out]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
773
+ "transitionDelay]___[value:0ms]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
774
+ "r]___[value:6]___[cond::where([data-likec4-selected='true']) &",
775
+ "r]___[value:8]___[cond::is([data-likec4-hovered='true']) &",
776
+ "fill]___[value:mantine.colors.primary.filledHover]___[cond:_hover",
777
+ "r]___[value:10]___[cond:_hover",
778
+ "transitionDuration]___[value:100ms]___[cond:_hover",
779
+ "cursor]___[value:grabbing]___[cond:_groupActive",
791
780
  "outlineColor]___[value:likec4.compare.manual.outline]___[cond:& + .likec4-element-shape",
792
- "outlineWidth]___[value:2px]___[cond:& + .likec4-element-shape",
793
- "outlineWidth]___[value:4px]___[cond:& + .likec4-element-shape<___>_light",
794
- "outlineStyle]___[value:solid]___[cond:& + .likec4-element-shape",
795
- "outlineOffset]___[value:1]___[cond:& + .likec4-element-shape",
781
+ "outlineWidth]___[value:4px]___[cond:& + .likec4-element-shape",
782
+ "outlineStyle]___[value:dashed]___[cond:& + .likec4-element-shape",
783
+ "outlineOffset]___[value:1.5]___[cond:& + .likec4-element-shape",
796
784
  "borderWidth]___[value:1",
797
785
  "--_color]___[value:var(--likec4-palette-stroke)",
798
- "--_color]___[value:[color-mix(in srgb, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))]]___[cond:_dark",
786
+ "--_color]___[value:[color-mix(in oklab, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))]]___[cond:_dark",
799
787
  "borderColor]___[value:[var(--_color)/30]",
800
788
  "backgroundColor]___[value:var(--likec4-palette-fill)/15",
801
789
  "paddingLeft]___[value:2",
@@ -810,6 +798,10 @@
810
798
  "translateX]___[value:-1/2",
811
799
  "translateY]___[value:-1/2",
812
800
  "top]___[value:1",
801
+ "outlineColor]___[value:likec4.compare.manual.outline",
802
+ "outlineWidth]___[value:4px",
803
+ "outlineStyle]___[value:dashed",
804
+ "outlineOffset]___[value:1.5",
813
805
  "right]___[value:0",
814
806
  "padding]___[value:2",
815
807
  "width]___[value:min-content",
@@ -829,6 +821,7 @@
829
821
  "backgroundColor]___[value:mantine.colors.dark[3]/40]___[cond:_dark<___>_hover",
830
822
  "fill]___[value:var(--likec4-palette-fill)",
831
823
  "stroke]___[value:var(--likec4-palette-stroke)",
824
+ "strokeWidth]___[value:1",
832
825
  "filter]___[value: drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) drop-shadow(0 1px 8px rgb(0 0 0 / 10%)) ",
833
826
  "letterSpacing]___[value:0.2px",
834
827
  "paddingTop]___[value:0",
@@ -864,6 +857,20 @@
864
857
  "maxWidth]___[value:220px"
865
858
  ],
866
859
  "recipes": {
860
+ "edgeLabel": [
861
+ "pointerEvents]___[value:all]___[recipe:edgeLabel",
862
+ "isStepEdge]___[value:false]___[recipe:edgeLabel",
863
+ "cursor]___[value:default]___[recipe:edgeLabel",
864
+ "cursor]___[value:pointer]___[recipe:edgeLabel",
865
+ "*]___[value:false]___[recipe:edgeLabel",
866
+ "isStepEdge]___[value:true]___[recipe:edgeLabel",
867
+ "*]___[value:true]___[recipe:edgeLabel",
868
+ "*]___[value:pointer]___[recipe:edgeLabel",
869
+ "*]___[value:default]___[recipe:edgeLabel",
870
+ "pointerEvents]___[value:none]___[recipe:edgeLabel",
871
+ "*]___[value:none]___[recipe:edgeLabel",
872
+ "*]___[value:all]___[recipe:edgeLabel"
873
+ ],
867
874
  "overlay": [
868
875
  "fullscreen]___[value:false]___[recipe:overlay",
869
876
  "withBackdrop]___[value:true]___[recipe:overlay",
@@ -918,20 +925,7 @@
918
925
  "borderStyle]___[value:dotted]___[recipe:compoundNode"
919
926
  ],
920
927
  "edgeActionBtn": [],
921
- "edgeLabel": [
922
- "pointerEvents]___[value:all]___[recipe:edgeLabel",
923
- "isStepEdge]___[value:false]___[recipe:edgeLabel",
924
- "cursor]___[value:pointer]___[recipe:edgeLabel",
925
- "cursor]___[value:default]___[recipe:edgeLabel",
926
- "pointerEvents]___[value:none]___[recipe:edgeLabel",
927
- "*]___[value:false]___[recipe:edgeLabel",
928
- "isStepEdge]___[value:true]___[recipe:edgeLabel",
929
- "*]___[value:true]___[recipe:edgeLabel",
930
- "*]___[value:pointer]___[recipe:edgeLabel",
931
- "*]___[value:default]___[recipe:edgeLabel",
932
- "*]___[value:none]___[recipe:edgeLabel",
933
- "*]___[value:all]___[recipe:edgeLabel"
934
- ],
928
+ "edgePath": [],
935
929
  "elementNodeData": [],
936
930
  "elementShapeRecipe": [
937
931
  "shapetype]___[value:html]___[recipe:elementShapeRecipe",