@likec4/diagram 1.41.0 → 1.42.1

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 (624) hide show
  1. package/README.md +1 -1
  2. package/bundle/index.js +44390 -25365
  3. package/bundle/package.json +4 -0
  4. package/custom/package.json +4 -0
  5. package/dist/LikeC4Diagram.d.ts +7 -1
  6. package/dist/LikeC4Diagram.js +66 -33
  7. package/dist/LikeC4Diagram.props.d.ts +40 -40
  8. package/dist/LikeC4ModelProvider.js +1 -1
  9. package/dist/LikeC4ProjectsProvider.js +1 -1
  10. package/dist/LikeC4Styles.d.ts +6 -2
  11. package/dist/LikeC4Styles.js +22 -54
  12. package/dist/{bundle/LikeC4View.props.d.ts → LikeC4View.d.ts} +29 -25
  13. package/dist/LikeC4View.js +173 -0
  14. package/dist/{bundle/ReactLikeC4.d.ts → ReactLikeC4.d.ts} +15 -9
  15. package/dist/ReactLikeC4.js +65 -0
  16. package/dist/StaticLikeC4Diagram.d.ts +7 -1
  17. package/dist/StaticLikeC4Diagram.js +0 -1
  18. package/dist/base/BaseXYFlow.d.ts +3 -3
  19. package/dist/base/BaseXYFlow.js +11 -9
  20. package/dist/base/index.d.ts +1 -1
  21. package/dist/base/types.d.ts +65 -65
  22. package/dist/base/types.js +44 -45
  23. package/dist/base/updateEdges.d.ts +3 -3
  24. package/dist/base/updateNodes.d.ts +3 -3
  25. package/dist/{base/primitives/MarkdownBlock.d.ts → base-primitives/Markdown.d.ts} +4 -4
  26. package/dist/{base/primitives/MarkdownBlock.js → base-primitives/Markdown.js} +6 -5
  27. package/dist/{base/primitives → base-primitives}/NodeHandles.js +8 -1
  28. package/dist/{base/primitives → base-primitives}/compound/CompoundActionButton.d.ts +2 -2
  29. package/dist/{base/primitives → base-primitives}/compound/CompoundActionButton.js +2 -2
  30. package/dist/{base/primitives → base-primitives}/compound/CompoundDetailsButton.d.ts +2 -2
  31. package/dist/{base/primitives → base-primitives}/compound/CompoundDetailsButton.js +2 -2
  32. package/dist/{base/primitives → base-primitives}/compound/CompoundNodeContainer.d.ts +3 -3
  33. package/dist/{base/primitives → base-primitives}/compound/CompoundNodeContainer.js +1 -2
  34. package/dist/base-primitives/compound/CompoundTitle.d.ts +13 -0
  35. package/dist/{base/primitives → base-primitives}/compound/CompoundTitle.js +3 -7
  36. package/dist/{base/primitives → base-primitives}/compound/actionbtns.css.d.ts +1 -1
  37. package/dist/{base/primitives → base-primitives}/edge/EdgeActionButton.js +2 -2
  38. package/dist/{base/primitives → base-primitives}/edge/EdgeContainer.d.ts +2 -2
  39. package/dist/{base/primitives → base-primitives}/edge/EdgeLabel.d.ts +2 -2
  40. package/dist/{base/primitives → base-primitives}/edge/EdgeLabel.js +2 -1
  41. package/dist/{base/primitives → base-primitives}/edge/EdgeLabelContainer.d.ts +2 -2
  42. package/dist/{base/primitives → base-primitives}/edge/EdgeLabelContainer.js +2 -2
  43. package/dist/{base/primitives → base-primitives}/edge/EdgePath.d.ts +2 -2
  44. package/dist/base-primitives/element/ElementActionButtons.d.ts +40 -0
  45. package/dist/base-primitives/element/ElementActionButtons.js +86 -0
  46. package/dist/base-primitives/element/ElementData.d.ts +65 -0
  47. package/dist/base-primitives/element/ElementData.js +121 -0
  48. package/dist/{base/primitives → base-primitives}/element/ElementDetailsButton.d.ts +4 -2
  49. package/dist/{base/primitives → base-primitives}/element/ElementDetailsButton.js +2 -2
  50. package/dist/{base/primitives → base-primitives}/element/ElementNodeContainer.d.ts +8 -13
  51. package/dist/base-primitives/element/ElementShape.d.ts +18 -0
  52. package/dist/{base/primitives → base-primitives}/element/ElementShape.js +31 -43
  53. package/dist/{base/primitives → base-primitives}/element/ElementTags.d.ts +2 -2
  54. package/dist/{base/primitives → base-primitives}/element/ElementTags.js +4 -4
  55. package/dist/{base/primitives → base-primitives}/index.d.ts +4 -4
  56. package/dist/base-primitives/memoEdge.d.ts +3 -0
  57. package/dist/{base/primitives/customEdge.js → base-primitives/memoEdge.js} +2 -2
  58. package/dist/base-primitives/memoNode.d.ts +3 -0
  59. package/dist/{base/primitives/customNode.js → base-primitives/memoNode.js} +12 -3
  60. package/dist/bundle/index.d.ts +1 -8
  61. package/dist/components/ErrorFallback.js +36 -17
  62. package/dist/components/Link.js +2 -2
  63. package/dist/components/Logo.d.ts +5 -0
  64. package/dist/components/Logo.js +42 -0
  65. package/dist/components/PortalToContainer.d.ts +6 -0
  66. package/dist/components/PortalToContainer.js +14 -0
  67. package/dist/{context → components}/RootContainer.d.ts +1 -6
  68. package/dist/components/RootContainer.js +43 -0
  69. package/dist/{bundle → components}/ViewNotFound.js +2 -2
  70. package/dist/context/DiagramEventHandlers.d.ts +3 -3
  71. package/dist/context/DiagramEventHandlers.js +20 -16
  72. package/dist/context/DiagramFeatures.d.ts +1 -1
  73. package/dist/context/DiagramFeatures.js +0 -1
  74. package/dist/context/IconRenderer.d.ts +4 -3
  75. package/dist/context/IconRenderer.js +10 -8
  76. package/dist/context/RootContainerContext.d.ts +22 -0
  77. package/dist/context/RootContainerContext.js +31 -0
  78. package/dist/context/TagStylesContext.js +22 -25
  79. package/dist/context/index.d.ts +1 -1
  80. package/dist/custom/builtins.d.ts +1 -0
  81. package/dist/custom/customNodes.d.ts +30 -43
  82. package/dist/custom/customNodes.js +21 -10
  83. package/dist/custom/hooks.d.ts +5 -6
  84. package/dist/custom/index.d.ts +11 -1
  85. package/dist/custom/index.js +25 -20
  86. package/dist/custom/primitives.d.ts +1 -0
  87. package/dist/hooks/index.d.ts +6 -0
  88. package/dist/hooks/safeContext.d.ts +1 -1
  89. package/dist/{likec4model → hooks}/useCurrentViewModel.d.ts +2 -1
  90. package/dist/hooks/useCurrentViewModel.js +12 -0
  91. package/dist/hooks/useDiagram.d.ts +23 -15
  92. package/dist/hooks/useDiagram.js +1 -1
  93. package/dist/{likec4model → hooks}/useLikeC4Model.d.ts +1 -0
  94. package/dist/{likec4model → hooks}/useLikeC4Model.js +5 -2
  95. package/dist/{likec4model → hooks}/useLikeC4Project.d.ts +1 -1
  96. package/dist/{likec4model → hooks}/useLikeC4Project.js +2 -2
  97. package/dist/hooks/useLikeC4Styles.d.ts +2 -0
  98. package/dist/hooks/useLikeC4Styles.js +18 -0
  99. package/dist/hooks/useMantinePortalProps.js +2 -2
  100. package/dist/hooks/useReducedGraphics.d.ts +1 -1
  101. package/dist/hooks/useXYFlow.d.ts +10 -10
  102. package/dist/hooks/useXYFlow.js +11 -5
  103. package/dist/index.d.ts +14 -6
  104. package/dist/index.js +9 -13
  105. package/dist/likec4diagram/DiagramUI.d.ts +1 -1
  106. package/dist/likec4diagram/DiagramUI.js +10 -16
  107. package/dist/likec4diagram/DiagramXYFlow.js +130 -118
  108. package/dist/likec4diagram/convert-to-xyflow.js +2 -2
  109. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +3 -51
  110. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -9
  111. package/dist/likec4diagram/custom/edges/SequenceStepEdge.d.ts +1 -2
  112. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +5 -5
  113. package/dist/likec4diagram/custom/index.d.ts +16 -0
  114. package/dist/likec4diagram/custom/index.js +12 -12
  115. package/dist/likec4diagram/custom/nodes/CompoundActions.d.ts +1 -2
  116. package/dist/likec4diagram/custom/nodes/CompoundActions.js +1 -1
  117. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +61 -5
  118. package/dist/likec4diagram/custom/nodes/ElementActions.js +8 -8
  119. package/dist/likec4diagram/custom/nodes/SequenceActorNode.d.ts +2 -3
  120. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +12 -24
  121. package/dist/likec4diagram/custom/nodes/nodes.d.ts +10 -10
  122. package/dist/likec4diagram/custom/nodes/nodes.js +25 -28
  123. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.d.ts +3 -2
  124. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +17 -12
  125. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.d.ts +2 -6
  126. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.d.ts +2 -6
  127. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +3 -3
  128. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +2 -3
  129. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +5 -19
  130. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +11 -22
  131. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +50 -49
  132. package/dist/likec4diagram/relationship-popover/actor.d.ts +1 -1
  133. package/dist/{state → likec4diagram/state}/DiagramActorProvider.d.ts +1 -1
  134. package/dist/{state → likec4diagram/state}/DiagramActorProvider.js +39 -13
  135. package/dist/{state → likec4diagram/state}/assign.d.ts +1 -1
  136. package/dist/{state → likec4diagram/state}/assign.js +3 -4
  137. package/dist/{state → likec4diagram/state}/diagram-machine.d.ts +178 -138
  138. package/dist/{state → likec4diagram/state}/diagram-machine.js +34 -24
  139. package/dist/{state → likec4diagram/state}/persistence.d.ts +1 -1
  140. package/dist/{state → likec4diagram/state}/syncManualLayoutActor.d.ts +1 -1
  141. package/dist/{state → likec4diagram/state}/syncManualLayoutActor.js +2 -2
  142. package/dist/{state → likec4diagram/state}/types.d.ts +2 -2
  143. package/dist/{state → likec4diagram/state}/utils.d.ts +2 -2
  144. package/dist/likec4diagram/types.d.ts +51 -34
  145. package/dist/likec4diagram/ui/index.d.ts +0 -3
  146. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +4 -1
  147. package/dist/likec4diagram/ui/notation/NotationPanel.js +6 -6
  148. package/dist/likec4diagram/useLayoutConstraints.d.ts +1 -1
  149. package/dist/likec4diagram/xyflow-diagram/diagram-view.d.ts +1 -1
  150. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +12 -9
  151. package/dist/likec4diagram/xyflow-sequence/const.js +1 -8
  152. package/dist/likec4diagram/xyflow-sequence/sequence-layout.d.ts +7 -0
  153. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +181 -0
  154. package/dist/navigationpanel/NavigationPanel.js +5 -6
  155. package/dist/navigationpanel/NavigationPanelControls.js +3 -4
  156. package/dist/navigationpanel/NavigationPanelDropdown.js +37 -13
  157. package/dist/navigationpanel/_common.js +1 -1
  158. package/dist/navigationpanel/actor.d.ts +1 -1
  159. package/dist/navigationpanel/controls/BurgerButton.js +46 -8
  160. package/dist/navigationpanel/controls/NavigationButtons.js +2 -2
  161. package/dist/navigationpanel/controls/OpenSource.js +1 -1
  162. package/dist/navigationpanel/controls/SearchControl.js +1 -1
  163. package/dist/navigationpanel/controls/ToggleReadonly.js +2 -2
  164. package/dist/navigationpanel/controls/ViewDetailsCard.js +8 -10
  165. package/dist/navigationpanel/dropdown/ProjectsMenu.js +2 -2
  166. package/dist/navigationpanel/editorpanel/CenterCamera.js +1 -1
  167. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +1 -1
  168. package/dist/navigationpanel/editorpanel/LayoutDriftNotification.js +1 -1
  169. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +9 -9
  170. package/dist/navigationpanel/hooks.d.ts +3 -3
  171. package/dist/navigationpanel/hooks.js +2 -2
  172. package/dist/navigationpanel/styles.css.d.ts +1 -1
  173. package/dist/navigationpanel/styles.css.js +1 -1
  174. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +3 -3
  175. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +107 -107
  176. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +3 -13
  177. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +2 -2
  178. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +1 -1
  179. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +1 -1
  180. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +1 -1
  181. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +1 -1
  182. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +1 -1
  183. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +1 -1
  184. package/dist/node_modules/.pnpm/@tabler_icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js +14 -0
  185. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +1 -1
  186. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +1 -1
  187. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +1 -1
  188. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +1 -1
  189. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +1 -1
  190. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +1 -1
  191. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +1 -1
  192. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +1 -1
  193. package/dist/node_modules/.pnpm/@tabler_icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.js +14 -0
  194. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +1 -1
  195. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +1 -1
  196. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +1 -1
  197. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +1 -1
  198. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +1 -1
  199. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +1 -1
  200. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +1 -1
  201. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +1 -1
  202. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +1 -1
  203. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +1 -1
  204. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +1 -1
  205. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +1 -1
  206. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +1 -1
  207. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +1 -1
  208. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +1 -1
  209. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +1 -1
  210. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +1 -1
  211. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +1 -1
  212. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +1 -1
  213. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +1 -1
  214. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +1 -1
  215. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +1 -1
  216. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +1 -1
  217. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +1 -1
  218. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +1 -1
  219. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +1 -1
  220. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +1 -1
  221. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +1 -1
  222. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +1 -1
  223. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +1 -1
  224. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +1 -1
  225. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +1 -1
  226. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +1 -1
  227. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +1 -1
  228. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.34.1_react@19.1.1 → @tabler_icons-react@3.35.0_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +1 -1
  229. package/dist/overlays/element-details/ElementDetailsCard.css.js +1 -1
  230. package/dist/overlays/element-details/ElementDetailsCard.js +31 -27
  231. package/dist/overlays/element-details/TabPanelDeployments.js +4 -4
  232. package/dist/overlays/element-details/TabPanelRelationships.js +5 -7
  233. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  234. package/dist/overlays/element-details/actor.d.ts +14 -16620
  235. package/dist/overlays/element-details/actor.js +2 -1
  236. package/dist/overlays/overlay/Overlay.js +9 -6
  237. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +3 -43
  238. package/dist/overlays/relationship-details/RelationshipDetails.js +6 -6
  239. package/dist/overlays/relationship-details/SelectEdge.js +2 -2
  240. package/dist/overlays/relationship-details/_types.d.ts +29 -12
  241. package/dist/overlays/relationship-details/actor.d.ts +14 -54
  242. package/dist/overlays/relationship-details/actor.js +4 -3
  243. package/dist/overlays/relationship-details/compute.d.ts +2 -1
  244. package/dist/overlays/relationship-details/custom/ElementActions.d.ts +1 -4
  245. package/dist/overlays/relationship-details/custom/ElementActions.js +4 -4
  246. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +3 -43
  247. package/dist/overlays/relationship-details/custom/edgeTypes.js +7 -9
  248. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +10 -0
  249. package/dist/overlays/relationship-details/custom/nodeTypes.js +19 -17
  250. package/dist/overlays/relationship-details/hooks.d.ts +5 -377
  251. package/dist/overlays/relationship-details/layout-to-xyflow.js +11 -10
  252. package/dist/overlays/relationship-details/layout.d.ts +2 -2
  253. package/dist/overlays/relationship-details/layout.js +6 -6
  254. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +3 -44
  255. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +12 -8
  256. package/dist/overlays/relationships-browser/SelectElement.js +4 -4
  257. package/dist/overlays/relationships-browser/_types.d.ts +30 -13
  258. package/dist/overlays/relationships-browser/actor.d.ts +17 -523
  259. package/dist/overlays/relationships-browser/actor.js +5 -4
  260. package/dist/overlays/relationships-browser/const.d.ts +6 -2
  261. package/dist/overlays/relationships-browser/custom/ElementActions.d.ts +1 -4
  262. package/dist/overlays/relationships-browser/custom/ElementActions.js +4 -4
  263. package/dist/overlays/relationships-browser/custom/EmptyNode.d.ts +1 -4
  264. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +3 -44
  265. package/dist/overlays/relationships-browser/custom/edgeTypes.js +7 -8
  266. package/dist/overlays/relationships-browser/custom/index.d.ts +2 -1
  267. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +5 -12
  268. package/dist/overlays/relationships-browser/custom/nodeTypes.js +16 -21
  269. package/dist/overlays/relationships-browser/layout.js +12 -11
  270. package/dist/overlays/relationships-browser/useViewToNodesEdges.d.ts +2 -2
  271. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +11 -10
  272. package/dist/search/components/ElementsColumn.js +5 -4
  273. package/dist/search/components/PickView.js +2 -2
  274. package/dist/search/components/SearchByTags.js +3 -3
  275. package/dist/search/components/SearchInput.js +2 -2
  276. package/dist/search/components/ViewsColum.js +4 -4
  277. package/dist/search/components/_shared.css.d.ts +2 -2
  278. package/dist/{bundle → shadowroot}/ShadowRoot.d.ts +5 -1
  279. package/dist/shadowroot/ShadowRoot.js +69 -0
  280. package/dist/{bundle → shadowroot}/styles.css.d.ts +4 -4
  281. package/dist/{bundle → shadowroot}/styles.css.js +17 -24
  282. package/dist/styles.css2.js +1 -1
  283. package/dist/utils/get-view-bounds.d.ts +3 -0
  284. package/dist/utils/get-view-bounds.js +14 -0
  285. package/dist/utils/index.d.ts +1 -0
  286. package/dist/utils/xyflow.d.ts +5 -2
  287. package/dist/utils/xyflow.js +2 -0
  288. package/package.json +48 -39
  289. package/panda.buildinfo.json +129 -180
  290. package/{dist/styles-min.css → styles-min.css} +1 -1
  291. package/styles.css +1 -0
  292. package/bundle/chunk-FGcODVxo.js +0 -21865
  293. package/bundle/custom.js +0 -82
  294. package/dist/base/primitives/compound/CompoundTitle.d.ts +0 -6
  295. package/dist/base/primitives/customEdge.d.ts +0 -4
  296. package/dist/base/primitives/customNode.d.ts +0 -4
  297. package/dist/base/primitives/edge/xyvars.d.ts +0 -24
  298. package/dist/base/primitives/element/ElementActionButtons.d.ts +0 -13
  299. package/dist/base/primitives/element/ElementActionButtons.js +0 -79
  300. package/dist/base/primitives/element/ElementShape.d.ts +0 -32
  301. package/dist/base/primitives/element/ElementTitle.d.ts +0 -12
  302. package/dist/base/primitives/element/ElementTitle.js +0 -76
  303. package/dist/bundle/LikeC4ModelProvider.d.ts +0 -9
  304. package/dist/bundle/LikeC4ModelProvider.js +0 -5
  305. package/dist/bundle/LikeC4View.d.ts +0 -3
  306. package/dist/bundle/LikeC4View.js +0 -186
  307. package/dist/bundle/ReactLikeC4.js +0 -91
  308. package/dist/bundle/ShadowRoot.js +0 -46
  309. package/dist/bundle/custom.d.ts +0 -1
  310. package/dist/bundle/custom.js +0 -33
  311. package/dist/bundle/index.js +0 -17
  312. package/dist/components/SearchControl.css.js +0 -79
  313. package/dist/components/SearchControl.js +0 -17
  314. package/dist/context/ControlsCustomLayout.d.ts +0 -12
  315. package/dist/context/ControlsCustomLayout.js +0 -8
  316. package/dist/context/ReduceGraphics.d.ts +0 -12
  317. package/dist/context/ReduceGraphics.js +0 -26
  318. package/dist/context/RootContainer.js +0 -39
  319. package/dist/custom/components.d.ts +0 -5
  320. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.d.ts +0 -2
  321. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +0 -159
  322. package/dist/likec4diagram/ui/controls/Controls.d.ts +0 -2
  323. package/dist/likec4diagram/ui/controls/Controls.js +0 -154
  324. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.d.ts +0 -2
  325. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.js +0 -50
  326. package/dist/likec4diagram/ui/controls/ManualLayoutToolsButton.d.ts +0 -2
  327. package/dist/likec4diagram/ui/controls/ManualLayoutToolsButton.js +0 -145
  328. package/dist/likec4diagram/ui/controls/NavigationButtons.d.ts +0 -1
  329. package/dist/likec4diagram/ui/controls/NavigationButtons.js +0 -61
  330. package/dist/likec4diagram/ui/controls/ToggleReadonly.d.ts +0 -1
  331. package/dist/likec4diagram/ui/controls/ToggleReadonly.js +0 -29
  332. package/dist/likec4diagram/ui/controls/_shared.d.ts +0 -7
  333. package/dist/likec4diagram/ui/controls/_shared.js +0 -22
  334. package/dist/likec4diagram/ui/controls/styles.css.d.ts +0 -8
  335. package/dist/likec4diagram/ui/controls/styles.css.js +0 -79
  336. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.d.ts +0 -3
  337. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.js +0 -49
  338. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.d.ts +0 -1
  339. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +0 -164
  340. package/dist/likec4diagram/ui/diagram-title/Link.d.ts +0 -4
  341. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.d.ts +0 -4
  342. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.js +0 -67
  343. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.d.ts +0 -1
  344. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +0 -124
  345. package/dist/likec4diagram/xyflow-sequence/layouter.js +0 -408
  346. package/dist/likec4diagram/xyflow-sequence/sequence-view.js +0 -273
  347. package/dist/likec4diagram/xyflow-sequence/utils.js +0 -92
  348. package/dist/likec4model/index.d.ts +0 -4
  349. package/dist/likec4model/useCurrentViewModel.js +0 -15
  350. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu.js +0 -14
  351. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu2.js +0 -14
  352. package/dist/overlays/overlay/Overlay.css.d.ts +0 -60
  353. package/dist/overlays/overlay/Overlay.css.js +0 -122
  354. package/dist/src/index.ts.d.ts +0 -2
  355. package/dist/styles.css +0 -1
  356. package/src/LikeC4Diagram.props.ts +0 -350
  357. package/src/LikeC4Diagram.tsx +0 -172
  358. package/src/LikeC4ModelProvider.tsx +0 -22
  359. package/src/LikeC4ProjectsProvider.tsx +0 -41
  360. package/src/LikeC4Styles.tsx +0 -137
  361. package/src/StaticLikeC4Diagram.tsx +0 -62
  362. package/src/base/Background.tsx +0 -31
  363. package/src/base/BaseXYFlow.tsx +0 -218
  364. package/src/base/const.ts +0 -22
  365. package/src/base/index.ts +0 -12
  366. package/src/base/primitives/MarkdownBlock.tsx +0 -82
  367. package/src/base/primitives/NodeHandles.tsx +0 -18
  368. package/src/base/primitives/compound/CompoundActionButton.tsx +0 -62
  369. package/src/base/primitives/compound/CompoundDetailsButton.tsx +0 -56
  370. package/src/base/primitives/compound/CompoundNodeContainer.tsx +0 -83
  371. package/src/base/primitives/compound/CompoundTitle.tsx +0 -34
  372. package/src/base/primitives/compound/actionbtns.css.ts +0 -18
  373. package/src/base/primitives/customEdge.ts +0 -34
  374. package/src/base/primitives/customNode.tsx +0 -29
  375. package/src/base/primitives/edge/EdgeActionButton.tsx +0 -24
  376. package/src/base/primitives/edge/EdgeContainer.tsx +0 -68
  377. package/src/base/primitives/edge/EdgeLabel.tsx +0 -94
  378. package/src/base/primitives/edge/EdgeLabelContainer.tsx +0 -102
  379. package/src/base/primitives/edge/EdgeMarkers.tsx +0 -198
  380. package/src/base/primitives/edge/EdgePath.tsx +0 -126
  381. package/src/base/primitives/edge/edge.css.ts +0 -74
  382. package/src/base/primitives/edge/xyvars.ts +0 -31
  383. package/src/base/primitives/element/ElementActionButtons.tsx +0 -95
  384. package/src/base/primitives/element/ElementDetailsButton.tsx +0 -80
  385. package/src/base/primitives/element/ElementNodeContainer.css.ts +0 -51
  386. package/src/base/primitives/element/ElementNodeContainer.tsx +0 -98
  387. package/src/base/primitives/element/ElementShape.tsx +0 -250
  388. package/src/base/primitives/element/ElementTags.tsx +0 -190
  389. package/src/base/primitives/element/ElementTitle.tsx +0 -94
  390. package/src/base/primitives/index.ts +0 -20
  391. package/src/base/types.ts +0 -174
  392. package/src/base/updateEdges.ts +0 -38
  393. package/src/base/updateNodes.ts +0 -43
  394. package/src/bundle/LikeC4ModelProvider.tsx +0 -12
  395. package/src/bundle/LikeC4View.props.ts +0 -288
  396. package/src/bundle/LikeC4View.tsx +0 -194
  397. package/src/bundle/ReactLikeC4.tsx +0 -127
  398. package/src/bundle/ShadowRoot.tsx +0 -54
  399. package/src/bundle/ViewNotFound.tsx +0 -25
  400. package/src/bundle/custom.ts +0 -1
  401. package/src/bundle/index.ts +0 -27
  402. package/src/bundle/react-dom-server-mock.ts +0 -3
  403. package/src/bundle/styles.css.ts +0 -172
  404. package/src/components/ErrorFallback.tsx +0 -45
  405. package/src/components/GithubIcon.tsx +0 -16
  406. package/src/components/Link.tsx +0 -112
  407. package/src/components/NavigationLink.tsx +0 -32
  408. package/src/components/SearchControl.css.ts +0 -79
  409. package/src/components/SearchControl.tsx +0 -30
  410. package/src/context/ControlsCustomLayout.ts +0 -15
  411. package/src/context/DiagramEventHandlers.tsx +0 -68
  412. package/src/context/DiagramFeatures.tsx +0 -141
  413. package/src/context/EnsureMantine.tsx +0 -25
  414. package/src/context/FramerMotionConfig.tsx +0 -25
  415. package/src/context/IconRenderer.tsx +0 -117
  416. package/src/context/ReduceGraphics.tsx +0 -42
  417. package/src/context/RootContainer.tsx +0 -54
  418. package/src/context/TagStylesContext.tsx +0 -98
  419. package/src/context/index.ts +0 -13
  420. package/src/custom/components.ts +0 -51
  421. package/src/custom/customNodes.ts +0 -282
  422. package/src/custom/hooks.ts +0 -52
  423. package/src/custom/index.ts +0 -5
  424. package/src/hooks/index.ts +0 -6
  425. package/src/hooks/safeContext.tsx +0 -18
  426. package/src/hooks/useCurrentViewId.ts +0 -15
  427. package/src/hooks/useDiagram.ts +0 -310
  428. package/src/hooks/useId.ts +0 -5
  429. package/src/hooks/useMantinePortalProps.ts +0 -17
  430. package/src/hooks/useOverlaysActor.ts +0 -11
  431. package/src/hooks/useReducedGraphics.ts +0 -1
  432. package/src/hooks/useSearchActor.ts +0 -11
  433. package/src/hooks/useSetState.ts +0 -19
  434. package/src/hooks/useUpdateEffect.ts +0 -46
  435. package/src/hooks/useXYFlow.ts +0 -41
  436. package/src/index.ts +0 -50
  437. package/src/likec4diagram/DiagramUI.tsx +0 -46
  438. package/src/likec4diagram/DiagramXYFlow.tsx +0 -240
  439. package/src/likec4diagram/convert-to-xyflow.ts +0 -45
  440. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +0 -373
  441. package/src/likec4diagram/custom/edges/SequenceStepEdge.tsx +0 -65
  442. package/src/likec4diagram/custom/edges/edges.css.ts +0 -45
  443. package/src/likec4diagram/custom/edges/utils.ts +0 -125
  444. package/src/likec4diagram/custom/index.ts +0 -28
  445. package/src/likec4diagram/custom/nodes/CompoundActions.tsx +0 -27
  446. package/src/likec4diagram/custom/nodes/ElementActions.tsx +0 -120
  447. package/src/likec4diagram/custom/nodes/SequenceActorNode.tsx +0 -175
  448. package/src/likec4diagram/custom/nodes/index.ts +0 -18
  449. package/src/likec4diagram/custom/nodes/nodes.tsx +0 -129
  450. package/src/likec4diagram/custom/nodes/toolbar/ColorButton.tsx +0 -175
  451. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +0 -122
  452. package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +0 -140
  453. package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +0 -82
  454. package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +0 -151
  455. package/src/likec4diagram/custom/nodes/toolbar/styles.css.ts +0 -13
  456. package/src/likec4diagram/relationship-popover/RelationshipPopover.tsx +0 -549
  457. package/src/likec4diagram/relationship-popover/actor.ts +0 -192
  458. package/src/likec4diagram/relationship-popover/styles.css.ts +0 -27
  459. package/src/likec4diagram/types.ts +0 -240
  460. package/src/likec4diagram/ui/controls/ChangeAutoLayoutButton.tsx +0 -202
  461. package/src/likec4diagram/ui/controls/Controls.tsx +0 -153
  462. package/src/likec4diagram/ui/controls/LayoutDriftNotification.tsx +0 -50
  463. package/src/likec4diagram/ui/controls/ManualLayoutToolsButton.tsx +0 -125
  464. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +0 -61
  465. package/src/likec4diagram/ui/controls/ToggleReadonly.tsx +0 -30
  466. package/src/likec4diagram/ui/controls/_shared.ts +0 -21
  467. package/src/likec4diagram/ui/controls/styles.css.ts +0 -84
  468. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.ts +0 -51
  469. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +0 -175
  470. package/src/likec4diagram/ui/diagram-title/Link.tsx +0 -40
  471. package/src/likec4diagram/ui/index.ts +0 -4
  472. package/src/likec4diagram/ui/notation/NotationPanel.css.ts +0 -99
  473. package/src/likec4diagram/ui/notation/NotationPanel.tsx +0 -252
  474. package/src/likec4diagram/ui/notation/index.ts +0 -1
  475. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.ts +0 -70
  476. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.tsx +0 -130
  477. package/src/likec4diagram/useLayoutConstraints.ts +0 -281
  478. package/src/likec4diagram/xyflow-diagram/diagram-view.ts +0 -275
  479. package/src/likec4diagram/xyflow-sequence/_types.ts +0 -45
  480. package/src/likec4diagram/xyflow-sequence/const.ts +0 -37
  481. package/src/likec4diagram/xyflow-sequence/layouter.ts +0 -567
  482. package/src/likec4diagram/xyflow-sequence/sequence-view.ts +0 -337
  483. package/src/likec4diagram/xyflow-sequence/utils.ts +0 -112
  484. package/src/likec4model/LikeC4ModelContext.tsx +0 -19
  485. package/src/likec4model/LikeC4ProjectsContext.ts +0 -9
  486. package/src/likec4model/index.ts +0 -19
  487. package/src/likec4model/useCurrentViewModel.ts +0 -14
  488. package/src/likec4model/useLikeC4ElementsTree.ts +0 -39
  489. package/src/likec4model/useLikeC4Model.ts +0 -35
  490. package/src/likec4model/useLikeC4Project.ts +0 -61
  491. package/src/navigationpanel/NavigationPanel.tsx +0 -136
  492. package/src/navigationpanel/NavigationPanelControls.tsx +0 -133
  493. package/src/navigationpanel/NavigationPanelDropdown.tsx +0 -547
  494. package/src/navigationpanel/_common.tsx +0 -84
  495. package/src/navigationpanel/actor.ts +0 -320
  496. package/src/navigationpanel/controls/BurgerButton.tsx +0 -30
  497. package/src/navigationpanel/controls/NavigationButtons.tsx +0 -40
  498. package/src/navigationpanel/controls/OpenSource.tsx +0 -28
  499. package/src/navigationpanel/controls/SearchControl.tsx +0 -66
  500. package/src/navigationpanel/controls/ToggleReadonly.tsx +0 -66
  501. package/src/navigationpanel/controls/ViewDetailsCard.tsx +0 -263
  502. package/src/navigationpanel/controls/index.ts +0 -6
  503. package/src/navigationpanel/dropdown/ProjectsMenu.tsx +0 -78
  504. package/src/navigationpanel/editorpanel/CenterCamera.tsx +0 -15
  505. package/src/navigationpanel/editorpanel/ChangeAutoLayoutButton.tsx +0 -199
  506. package/src/navigationpanel/editorpanel/EditorPanel.tsx +0 -49
  507. package/src/navigationpanel/editorpanel/LayoutDriftNotification.tsx +0 -56
  508. package/src/navigationpanel/editorpanel/ManualLayoutToolsButton.tsx +0 -148
  509. package/src/navigationpanel/editorpanel/_common.tsx +0 -14
  510. package/src/navigationpanel/editorpanel/index.ts +0 -1
  511. package/src/navigationpanel/editorpanel/styles.ts +0 -84
  512. package/src/navigationpanel/hooks.tsx +0 -70
  513. package/src/navigationpanel/index.ts +0 -1
  514. package/src/navigationpanel/styles.css.ts +0 -28
  515. package/src/navigationpanel/walkthrough/ActiveWalkthroughControls.tsx +0 -132
  516. package/src/navigationpanel/walkthrough/DynamicViewControls.tsx +0 -125
  517. package/src/navigationpanel/walkthrough/WalkthroughPanel.css.ts +0 -21
  518. package/src/navigationpanel/walkthrough/WalkthroughPanel.tsx +0 -88
  519. package/src/navigationpanel/walkthrough/index.tsx +0 -2
  520. package/src/overlays/Overlays.tsx +0 -121
  521. package/src/overlays/element-details/ElementDetails.tsx +0 -33
  522. package/src/overlays/element-details/ElementDetailsCard.css.ts +0 -263
  523. package/src/overlays/element-details/ElementDetailsCard.tsx +0 -665
  524. package/src/overlays/element-details/TabPanelDeployments.css.ts +0 -64
  525. package/src/overlays/element-details/TabPanelDeployments.tsx +0 -220
  526. package/src/overlays/element-details/TabPanelRelationships.css.ts +0 -102
  527. package/src/overlays/element-details/TabPanelRelationships.tsx +0 -186
  528. package/src/overlays/element-details/TabPanelStructure.css.ts +0 -36
  529. package/src/overlays/element-details/TabPanelStructure.tsx +0 -121
  530. package/src/overlays/element-details/actor.ts +0 -104
  531. package/src/overlays/element-details/actorContext.tsx +0 -16
  532. package/src/overlays/overlay/Overlay.css.ts +0 -123
  533. package/src/overlays/overlay/Overlay.tsx +0 -169
  534. package/src/overlays/overlaysActor.ts +0 -284
  535. package/src/overlays/relationship-details/RelationshipDetails.tsx +0 -334
  536. package/src/overlays/relationship-details/SelectEdge.css.ts +0 -88
  537. package/src/overlays/relationship-details/SelectEdge.tsx +0 -141
  538. package/src/overlays/relationship-details/_types.ts +0 -88
  539. package/src/overlays/relationship-details/actor.ts +0 -397
  540. package/src/overlays/relationship-details/compute.ts +0 -177
  541. package/src/overlays/relationship-details/custom/ElementActions.tsx +0 -53
  542. package/src/overlays/relationship-details/custom/edgeTypes.tsx +0 -49
  543. package/src/overlays/relationship-details/custom/index.ts +0 -2
  544. package/src/overlays/relationship-details/custom/nodeTypes.tsx +0 -126
  545. package/src/overlays/relationship-details/custom/styles.css.ts +0 -13
  546. package/src/overlays/relationship-details/hooks.ts +0 -51
  547. package/src/overlays/relationship-details/layout-to-xyflow.ts +0 -173
  548. package/src/overlays/relationship-details/layout.ts +0 -477
  549. package/src/overlays/relationships-browser/RelationshipsBrowser.tsx +0 -282
  550. package/src/overlays/relationships-browser/SelectElement.css.ts +0 -22
  551. package/src/overlays/relationships-browser/SelectElement.tsx +0 -229
  552. package/src/overlays/relationships-browser/_types.ts +0 -102
  553. package/src/overlays/relationships-browser/actor.ts +0 -592
  554. package/src/overlays/relationships-browser/const.ts +0 -8
  555. package/src/overlays/relationships-browser/custom/ElementActions.tsx +0 -57
  556. package/src/overlays/relationships-browser/custom/EmptyNode.tsx +0 -18
  557. package/src/overlays/relationships-browser/custom/edgeTypes.tsx +0 -103
  558. package/src/overlays/relationships-browser/custom/index.ts +0 -2
  559. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +0 -146
  560. package/src/overlays/relationships-browser/custom/styles.css.ts +0 -12
  561. package/src/overlays/relationships-browser/hooks.ts +0 -63
  562. package/src/overlays/relationships-browser/layout.ts +0 -630
  563. package/src/overlays/relationships-browser/useViewToNodesEdges.ts +0 -210
  564. package/src/overlays/types.ts +0 -39
  565. package/src/search/Search.tsx +0 -220
  566. package/src/search/components/ElementsColumn.css.ts +0 -84
  567. package/src/search/components/ElementsColumn.tsx +0 -318
  568. package/src/search/components/PickView.tsx +0 -134
  569. package/src/search/components/SearchByTags.tsx +0 -112
  570. package/src/search/components/SearchInput.tsx +0 -265
  571. package/src/search/components/ViewsColum.tsx +0 -167
  572. package/src/search/components/ViewsColumn.css.ts +0 -34
  573. package/src/search/components/_shared.css.ts +0 -176
  574. package/src/search/components/styles.css.ts +0 -72
  575. package/src/search/components/utils.ts +0 -64
  576. package/src/search/hooks.ts +0 -38
  577. package/src/search/searchActor.ts +0 -99
  578. package/src/state/DiagramActorProvider.tsx +0 -160
  579. package/src/state/aligners.ts +0 -500
  580. package/src/state/assign.ts +0 -425
  581. package/src/state/diagram-machine.ts +0 -1422
  582. package/src/state/hotkeyActor.ts +0 -41
  583. package/src/state/inspector.ts +0 -5
  584. package/src/state/persistence.ts +0 -22
  585. package/src/state/syncManualLayoutActor.ts +0 -218
  586. package/src/state/types.ts +0 -34
  587. package/src/state/utils.ts +0 -152
  588. package/src/styles-font.css +0 -251
  589. package/src/styles-min.css +0 -2
  590. package/src/styles-xyflow.css +0 -1
  591. package/src/styles.css +0 -3
  592. package/src/utils/css.ts +0 -7
  593. package/src/utils/index.ts +0 -15
  594. package/src/utils/roundDpr.ts +0 -27
  595. package/src/utils/vector.ts +0 -57
  596. package/src/utils/xyflow.ts +0 -105
  597. /package/dist/{base/primitives → base-primitives}/NodeHandles.d.ts +0 -0
  598. /package/dist/{base/primitives → base-primitives}/compound/actionbtns.css.js +0 -0
  599. /package/dist/{base/primitives → base-primitives}/edge/EdgeActionButton.d.ts +0 -0
  600. /package/dist/{base/primitives → base-primitives}/edge/EdgeContainer.js +0 -0
  601. /package/dist/{base/primitives → base-primitives}/edge/EdgeMarkers.d.ts +0 -0
  602. /package/dist/{base/primitives → base-primitives}/edge/EdgeMarkers.js +0 -0
  603. /package/dist/{base/primitives → base-primitives}/edge/EdgePath.js +0 -0
  604. /package/dist/{base/primitives → base-primitives}/edge/edge.css.d.ts +0 -0
  605. /package/dist/{base/primitives → base-primitives}/edge/edge.css.js +0 -0
  606. /package/dist/{base/primitives → base-primitives}/element/ElementNodeContainer.css.d.ts +0 -0
  607. /package/dist/{base/primitives → base-primitives}/element/ElementNodeContainer.css.js +0 -0
  608. /package/dist/{base/primitives → base-primitives}/element/ElementNodeContainer.js +0 -0
  609. /package/dist/{bundle → components}/ViewNotFound.d.ts +0 -0
  610. /package/dist/{likec4model → context}/LikeC4ModelContext.d.ts +0 -0
  611. /package/dist/{likec4model → context}/LikeC4ModelContext.js +0 -0
  612. /package/dist/{likec4model → context}/LikeC4ProjectsContext.d.ts +0 -0
  613. /package/dist/{likec4model → context}/LikeC4ProjectsContext.js +0 -0
  614. /package/dist/{likec4model → hooks}/useLikeC4ElementsTree.d.ts +0 -0
  615. /package/dist/{likec4model → hooks}/useLikeC4ElementsTree.js +0 -0
  616. /package/dist/{state → likec4diagram/state}/aligners.d.ts +0 -0
  617. /package/dist/{state → likec4diagram/state}/aligners.js +0 -0
  618. /package/dist/{state → likec4diagram/state}/hotkeyActor.d.ts +0 -0
  619. /package/dist/{state → likec4diagram/state}/hotkeyActor.js +0 -0
  620. /package/dist/{state → likec4diagram/state}/inspector.d.ts +0 -0
  621. /package/dist/{state → likec4diagram/state}/persistence.js +0 -0
  622. /package/dist/{state → likec4diagram/state}/utils.js +0 -0
  623. /package/{dist/styles-font.css → styles-font.css} +0 -0
  624. /package/{dist/styles-xyflow.css → styles-xyflow.css} +0 -0
@@ -0,0 +1,4 @@
1
+ {
2
+ "types": "../dist/index.d.ts",
3
+ "module": "index.js"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "types": "../dist/custom/index.d.ts",
3
+ "module": "../dist/custom/index.js"
4
+ }
@@ -2,4 +2,10 @@ import { Any } from '@likec4/core/types';
2
2
  import { PropsWithChildren } from 'react';
3
3
  import { LikeC4DiagramEventHandlers, LikeC4DiagramProperties } from './LikeC4Diagram.props';
4
4
  export type LikeC4DiagramProps<A extends Any = Any> = PropsWithChildren<LikeC4DiagramProperties<A> & LikeC4DiagramEventHandlers<A>>;
5
- export declare function LikeC4Diagram<A extends Any = Any>({ onCanvasClick, onCanvasContextMenu, onCanvasDblClick, onEdgeClick, onChange, onEdgeContextMenu, onNavigateTo, onNodeClick, onNodeContextMenu, onOpenSource, onBurgerMenuClick, view, className, readonly, controls, fitView, fitViewPadding, pannable, zoomable, background, enableElementTags, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, showDiagramTitle, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, dynamicViewVariant, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, renderControls, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
5
+ /**
6
+ * Low-level component to display LikeC4 view
7
+ * Expects CSS to be injected
8
+ *
9
+ * Use {@link ReactLikeC4} or {@link LikeC4View} for ready-to-use component
10
+ */
11
+ export declare function LikeC4Diagram<A extends Any = Any>({ onCanvasClick, onCanvasContextMenu, onCanvasDblClick, onEdgeClick, onChange, onEdgeContextMenu, onNavigateTo, onNodeClick, onNodeContextMenu, onOpenSource, onBurgerMenuClick, onInitialized, view, className, readonly, controls, fitView, fitViewPadding: _fitViewPadding, pannable, zoomable, background, enableElementTags, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, dynamicViewVariant, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
@@ -1,19 +1,23 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useCustomCompareMemo } from '@react-hookz/web';
2
3
  import { ReactFlowProvider } from '@xyflow/react';
4
+ import { deepEqual } from 'fast-equals';
3
5
  import { useRef } from 'react';
4
- import { ControlsCustomLayoutProvider } from './context/ControlsCustomLayout.js';
5
- import { ReduceGraphicsContext } from './context/ReduceGraphics.js';
6
+ import { isPlainObject, mapValues } from 'remeda';
7
+ import { RootContainer } from './components/RootContainer.js';
8
+ import { TagStylesProvider } from './context/TagStylesContext.js';
6
9
  import { useId } from './hooks/useId.js';
10
+ import { LikeC4DiagramUI } from './likec4diagram/DiagramUI.js';
7
11
  import { LikeC4DiagramXYFlow } from './likec4diagram/DiagramXYFlow.js';
12
+ import { DiagramActorProvider } from './likec4diagram/state/DiagramActorProvider.js';
8
13
  import { LikeC4Styles } from './LikeC4Styles.js';
9
- import { DiagramActorProvider } from './state/DiagramActorProvider.js';
14
+ import { getViewBounds } from './utils/get-view-bounds.js';
15
+ import { MinZoom, MaxZoom, FitViewPaddings } from './base/const.js';
10
16
  import { EnsureMantine } from './context/EnsureMantine.js';
11
17
  import { FramerMotionConfig } from './context/FramerMotionConfig.js';
12
18
  import { IconRendererProvider } from './context/IconRenderer.js';
13
19
  import { DiagramFeatures } from './context/DiagramFeatures.js';
14
20
  import { DiagramEventHandlers } from './context/DiagramEventHandlers.js';
15
- import { RootContainer } from './context/RootContainer.js';
16
- import { FitViewPaddings } from './base/const.js';
17
21
 
18
22
  function LikeC4Diagram({
19
23
  onCanvasClick,
@@ -27,34 +31,33 @@ function LikeC4Diagram({
27
31
  onNodeContextMenu,
28
32
  onOpenSource,
29
33
  onBurgerMenuClick,
34
+ onInitialized,
30
35
  view,
31
36
  className,
32
37
  readonly = true,
33
38
  controls = !readonly,
34
39
  fitView = true,
35
- fitViewPadding = controls === "next" ? FitViewPaddings.withControls : FitViewPaddings.default,
40
+ fitViewPadding: _fitViewPadding = controls ? FitViewPaddings.withControls : FitViewPaddings.default,
36
41
  pannable = true,
37
42
  zoomable = true,
38
43
  background = "dots",
39
44
  enableElementTags = false,
40
45
  enableFocusMode = false,
41
46
  enableElementDetails = false,
42
- enableRelationshipDetails = enableElementDetails,
43
- enableRelationshipBrowser = enableRelationshipDetails,
47
+ enableRelationshipDetails = false,
48
+ enableRelationshipBrowser = false,
44
49
  nodesDraggable = !readonly,
45
50
  nodesSelectable = !readonly || enableFocusMode || !!onNavigateTo || !!onNodeClick,
46
- showDiagramTitle = true,
47
51
  showNotations = true,
48
52
  showNavigationButtons = !!onNavigateTo,
49
53
  enableDynamicViewWalkthrough = false,
50
54
  dynamicViewVariant,
51
- enableSearch = true,
55
+ enableSearch = false,
52
56
  initialWidth,
53
57
  initialHeight,
54
58
  experimentalEdgeEditing = !readonly,
55
59
  reduceGraphics = "auto",
56
60
  renderIcon,
57
- renderControls,
58
61
  where,
59
62
  reactFlowProps,
60
63
  renderNodes,
@@ -62,15 +65,24 @@ function LikeC4Diagram({
62
65
  }) {
63
66
  const id = useId();
64
67
  const initialRef = useRef(null);
68
+ const bounds = getViewBounds(view, dynamicViewVariant);
69
+ const fitViewPadding = useNormalizedViewPadding(_fitViewPadding);
65
70
  if (initialRef.current == null) {
66
71
  initialRef.current = {
67
72
  defaultEdges: [],
68
73
  defaultNodes: [],
69
- initialWidth: initialWidth ?? view.bounds.width,
70
- initialHeight: initialHeight ?? view.bounds.height
74
+ initialWidth: initialWidth ?? bounds.width,
75
+ initialHeight: initialHeight ?? bounds.height,
76
+ initialFitViewOptions: {
77
+ maxZoom: MaxZoom,
78
+ minZoom: MinZoom,
79
+ padding: fitViewPadding
80
+ },
81
+ initialMaxZoom: MaxZoom,
82
+ initialMinZoom: MinZoom
71
83
  };
72
84
  }
73
- const isReducedGraphicsMode = reduceGraphics === "auto" ? pannable && (view.bounds?.width ?? 1) * (view.bounds?.height ?? 1) > 6e6 : reduceGraphics;
85
+ const isReducedGraphicsMode = reduceGraphics === "auto" ? pannable && (bounds.width ?? 1) * (bounds.height ?? 1) > 6e6 && view.nodes.some((n) => n.children?.length > 0) : reduceGraphics;
74
86
  return /* @__PURE__ */ jsx(EnsureMantine, { children: /* @__PURE__ */ jsx(
75
87
  FramerMotionConfig,
76
88
  {
@@ -93,10 +105,9 @@ function LikeC4Diagram({
93
105
  enableNotations: showNotations,
94
106
  enableVscode: !!onOpenSource,
95
107
  enableControls: controls,
96
- enableViewTitle: showDiagramTitle,
97
108
  enableElementTags
98
109
  },
99
- children: /* @__PURE__ */ jsx(
110
+ children: /* @__PURE__ */ jsxs(
100
111
  DiagramEventHandlers,
101
112
  {
102
113
  handlers: {
@@ -110,16 +121,17 @@ function LikeC4Diagram({
110
121
  onNodeClick,
111
122
  onNodeContextMenu,
112
123
  onOpenSource,
113
- onBurgerMenuClick
124
+ onBurgerMenuClick,
125
+ onInitialized
114
126
  },
115
- children: /* @__PURE__ */ jsxs(ReduceGraphicsContext, { reduceGraphics: isReducedGraphicsMode, children: [
127
+ children: [
116
128
  /* @__PURE__ */ jsx(LikeC4Styles, { id }),
117
- /* @__PURE__ */ jsx(RootContainer, { id, className, reduceGraphics: isReducedGraphicsMode, children: /* @__PURE__ */ jsx(
129
+ /* @__PURE__ */ jsx(TagStylesProvider, { rootSelector: `#${id}`, children: /* @__PURE__ */ jsx(RootContainer, { id, className, reduceGraphics: isReducedGraphicsMode, children: /* @__PURE__ */ jsx(
118
130
  ReactFlowProvider,
119
131
  {
120
132
  fitView,
121
133
  ...initialRef.current,
122
- children: /* @__PURE__ */ jsx(
134
+ children: /* @__PURE__ */ jsxs(
123
135
  DiagramActorProvider,
124
136
  {
125
137
  view,
@@ -129,22 +141,25 @@ function LikeC4Diagram({
129
141
  nodesSelectable,
130
142
  where: where ?? null,
131
143
  dynamicViewVariant,
132
- children: /* @__PURE__ */ jsx(ControlsCustomLayoutProvider, { value: renderControls ?? null, children: /* @__PURE__ */ jsx(
133
- LikeC4DiagramXYFlow,
134
- {
135
- nodesDraggable,
136
- nodesSelectable,
137
- background,
138
- reactFlowProps,
139
- renderNodes,
140
- children
141
- }
142
- ) })
144
+ children: [
145
+ /* @__PURE__ */ jsx(
146
+ LikeC4DiagramXYFlow,
147
+ {
148
+ nodesDraggable,
149
+ nodesSelectable,
150
+ background,
151
+ reactFlowProps,
152
+ renderNodes,
153
+ children
154
+ }
155
+ ),
156
+ /* @__PURE__ */ jsx(LikeC4DiagramUI, {})
157
+ ]
143
158
  }
144
159
  )
145
160
  }
146
- ) })
147
- ] })
161
+ ) }) })
162
+ ]
148
163
  }
149
164
  )
150
165
  }
@@ -152,5 +167,23 @@ function LikeC4Diagram({
152
167
  }
153
168
  ) });
154
169
  }
170
+ const toLiteralPaddingWithUnit = (value) => {
171
+ if (typeof value === "number") {
172
+ return `${value}px`;
173
+ }
174
+ return value;
175
+ };
176
+ function useNormalizedViewPadding(raw) {
177
+ return useCustomCompareMemo(
178
+ () => {
179
+ if (isPlainObject(raw)) {
180
+ return mapValues(raw, toLiteralPaddingWithUnit);
181
+ }
182
+ return toLiteralPaddingWithUnit(raw);
183
+ },
184
+ [raw],
185
+ deepEqual
186
+ );
187
+ }
155
188
 
156
189
  export { LikeC4Diagram };
@@ -1,18 +1,21 @@
1
1
  import { DiagramEdge, DiagramNode, DynamicViewDisplayVariant, LayoutedView, ViewChange, WhereOperator } from '@likec4/core/types';
2
- import { ReactFlowProps as XYFlowProps } from '@xyflow/react';
2
+ import { ReactFlowProps } from '@xyflow/react';
3
3
  import { MouseEvent as ReactMouseEvent, ReactNode } from 'react';
4
- import { SetRequired } from 'type-fest';
5
- import { ControlsCustomLayout } from './context/ControlsCustomLayout';
6
- import { CustomNodes } from './custom/customNodes';
4
+ import { CamelCasedProperties, SetRequired } from 'type-fest';
5
+ import { DiagramApi } from './hooks/useDiagram';
6
+ import { XYFlowInstance } from './hooks/useXYFlow';
7
+ import { Types } from './likec4diagram/types';
7
8
  import type * as t from '@likec4/core/types';
8
9
  type Any = t.aux.Any;
10
+ type Unknown = t.aux.UnknownLayouted;
9
11
  type ViewId<A> = t.aux.ViewId<A>;
10
12
  type Fqn<A> = t.aux.Fqn<A>;
11
13
  type RelationId = t.aux.RelationId;
12
14
  type DeploymentFqn<A> = t.aux.DeploymentFqn<A>;
13
15
  type StrictViewId<A> = t.aux.StrictViewId<A>;
14
- export type { CustomNodes, WhereOperator };
15
- export type DiagramNodeWithNavigate<A extends Any> = SetRequired<DiagramNode<A>, 'navigateTo'>;
16
+ export type NodeRenderers = Partial<CamelCasedProperties<Types.NodeRenderers>>;
17
+ export type { WhereOperator };
18
+ export type DiagramNodeWithNavigate<A extends Any = Unknown> = SetRequired<DiagramNode<A>, 'navigateTo'>;
16
19
  export type ElementIconRendererProps = {
17
20
  node: {
18
21
  id: string;
@@ -22,19 +25,8 @@ export type ElementIconRendererProps = {
22
25
  className?: string;
23
26
  };
24
27
  export type ElementIconRenderer = (props: ElementIconRendererProps) => ReactNode;
25
- export type OnNavigateTo<A extends Any = Any> = (to: ViewId<A>, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<A>) => void;
26
- export type OnNodeClick<A extends Any = Any> = (node: DiagramNode<A>, event: ReactMouseEvent) => void;
27
- export type OnEdgeClick<A extends Any = Any> = (edge: DiagramEdge<A>, event: ReactMouseEvent) => void;
28
- /**
29
- * On pane/canvas click (not on any node or edge)
30
- */
31
- export type OnCanvasClick = (event: ReactMouseEvent) => void;
32
- export type ChangeEvent = {
33
- change: ViewChange;
34
- };
35
- export type OnChange = (event: ChangeEvent) => void;
36
28
  export type LikeC4ColorScheme = 'light' | 'dark';
37
- export type OverrideReactFlowProps = Pick<XYFlowProps, 'paneClickDistance' | 'nodeClickDistance' | 'selectionKeyCode' | 'panActivationKeyCode' | 'multiSelectionKeyCode' | 'zoomActivationKeyCode' | 'snapToGrid' | 'snapGrid' | 'onlyRenderVisibleElements' | 'nodesDraggable' | 'nodesFocusable' | 'elementsSelectable' | 'selectNodesOnDrag' | 'panOnDrag' | 'preventScrolling' | 'zoomOnScroll' | 'zoomOnPinch' | 'panOnScroll' | 'panOnScrollSpeed' | 'panOnScrollMode' | 'zoomOnDoubleClick' | 'nodeDragThreshold'>;
29
+ export type OverrideReactFlowProps = Pick<ReactFlowProps<Types.AnyNode, Types.AnyEdge>, 'paneClickDistance' | 'nodeClickDistance' | 'selectionKeyCode' | 'panActivationKeyCode' | 'multiSelectionKeyCode' | 'zoomActivationKeyCode' | 'snapToGrid' | 'snapGrid' | 'onlyRenderVisibleElements' | 'nodesDraggable' | 'nodesFocusable' | 'elementsSelectable' | 'selectNodesOnDrag' | 'panOnDrag' | 'preventScrolling' | 'zoomOnScroll' | 'zoomOnPinch' | 'panOnScroll' | 'panOnScrollSpeed' | 'panOnScrollMode' | 'zoomOnDoubleClick' | 'nodeDragThreshold'>;
38
30
  export type PaddingUnit = 'px' | '%';
39
31
  export type PaddingWithUnit = `${number}${PaddingUnit}` | number;
40
32
  /**
@@ -56,7 +48,7 @@ export type ViewPadding = PaddingWithUnit | {
56
48
  x?: PaddingWithUnit;
57
49
  y?: PaddingWithUnit;
58
50
  };
59
- export interface LikeC4DiagramProperties<A extends Any = Any> {
51
+ export interface LikeC4DiagramProperties<A extends Any = Unknown> {
60
52
  view: LayoutedView<A>;
61
53
  className?: string | undefined;
62
54
  /**
@@ -75,12 +67,11 @@ export interface LikeC4DiagramProperties<A extends Any = Any> {
75
67
  */
76
68
  readonly?: boolean | undefined;
77
69
  /**
78
- * Show/hide panel with top left controls,
79
- * - `next` - Experimental navigation panel
70
+ * Show/hide panel with top left controls
80
71
  *
81
72
  * @default true if not readonly
82
73
  */
83
- controls?: boolean | 'next' | undefined;
74
+ controls?: boolean | undefined;
84
75
  /**
85
76
  * If set, initial viewport will show all nodes & edges
86
77
  * @default true
@@ -135,11 +126,6 @@ export interface LikeC4DiagramProperties<A extends Any = Any> {
135
126
  * @default 'dots'
136
127
  */
137
128
  background?: 'transparent' | 'solid' | 'dots' | 'lines' | 'cross' | undefined;
138
- /**
139
- * Display webview with diagram title / description
140
- * @default true
141
- */
142
- showDiagramTitle?: boolean | undefined;
143
129
  /**
144
130
  * Show back/forward history navigation buttons
145
131
  * @default true if `onNavigateTo` is set
@@ -211,19 +197,10 @@ export interface LikeC4DiagramProperties<A extends Any = Any> {
211
197
  * By default, if icon is http:// or https://, it will be rendered as an image
212
198
  */
213
199
  renderIcon?: ElementIconRenderer | undefined;
214
- /**
215
- * Customize layout of the controls on the top left
216
- *
217
- * @note
218
- * Ignored if `controls="next"`
219
- *
220
- * @see {@link controls}
221
- */
222
- renderControls?: ControlsCustomLayout | undefined;
223
200
  /**
224
201
  * Override node renderers
225
202
  */
226
- renderNodes?: CustomNodes | undefined;
203
+ renderNodes?: NodeRenderers | undefined;
227
204
  /**
228
205
  * Dynamic filter, applies both to nodes and edges
229
206
  */
@@ -233,7 +210,7 @@ export interface LikeC4DiagramProperties<A extends Any = Any> {
233
210
  */
234
211
  reactFlowProps?: OverrideReactFlowProps | undefined;
235
212
  }
236
- export type OpenSourceParams<A extends Any = Any> = {
213
+ export type OpenSourceParams<A extends Any = Unknown> = {
237
214
  element: Fqn<A>;
238
215
  property?: string;
239
216
  } | {
@@ -243,8 +220,30 @@ export type OpenSourceParams<A extends Any = Any> = {
243
220
  property?: string;
244
221
  } | {
245
222
  view: StrictViewId<A>;
223
+ } | {
224
+ view: StrictViewId<A>;
225
+ astPath: string;
246
226
  };
247
- export interface LikeC4DiagramEventHandlers<A extends Any = Any> {
227
+ /**
228
+ * "Go to source" action
229
+ */
230
+ export type OnOpenSource<A extends Any = Unknown> = (params: OpenSourceParams<A>) => void;
231
+ export type OnNavigateTo<A extends Any = Unknown> = (to: ViewId<A>, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<A>) => void;
232
+ export type OnNodeClick<A extends Any = Unknown> = (node: DiagramNode<A>, event: ReactMouseEvent) => void;
233
+ export type OnEdgeClick<A extends Any = Unknown> = (edge: DiagramEdge<A>, event: ReactMouseEvent) => void;
234
+ /**
235
+ * On pane/canvas click (not on any node or edge)
236
+ */
237
+ export type OnCanvasClick = (event: ReactMouseEvent) => void;
238
+ export type ChangeEvent = {
239
+ change: ViewChange;
240
+ };
241
+ export type OnChange = (event: ChangeEvent) => void;
242
+ export type OnInitialized = (params: {
243
+ diagram: DiagramApi;
244
+ xyflow: XYFlowInstance;
245
+ }) => void;
246
+ export interface LikeC4DiagramEventHandlers<A extends Any = Unknown> {
248
247
  onChange?: OnChange | null | undefined;
249
248
  onNavigateTo?: OnNavigateTo<A> | null | undefined;
250
249
  onNodeClick?: OnNodeClick<A> | null | undefined;
@@ -255,5 +254,6 @@ export interface LikeC4DiagramEventHandlers<A extends Any = Any> {
255
254
  onCanvasClick?: OnCanvasClick | null | undefined;
256
255
  onCanvasDblClick?: OnCanvasClick | null | undefined;
257
256
  onBurgerMenuClick?: null | undefined | (() => void);
258
- onOpenSource?: null | undefined | ((params: OpenSourceParams<A>) => void);
257
+ onOpenSource?: OnOpenSource<A> | null | undefined;
258
+ onInitialized?: OnInitialized | null | undefined;
259
259
  }
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { LikeC4ModelContext } from './likec4model/LikeC4ModelContext.js';
2
+ import { LikeC4ModelContext } from './context/LikeC4ModelContext.js';
3
3
 
4
4
  function LikeC4ModelProvider({
5
5
  children,
@@ -3,7 +3,7 @@ import { useCallbackRef } from '@mantine/hooks';
3
3
  import { useCustomCompareMemo } from '@react-hookz/web';
4
4
  import { shallowEqual } from 'fast-equals';
5
5
  import { useContext } from 'react';
6
- import { LikeC4ProjectsContext } from './likec4model/LikeC4ProjectsContext.js';
6
+ import { LikeC4ProjectsContext } from './context/LikeC4ProjectsContext.js';
7
7
 
8
8
  function LikeC4ProjectsProvider({
9
9
  children,
@@ -1,3 +1,7 @@
1
- export declare function LikeC4Styles({ id }: {
1
+ import { NamedExoticComponent } from 'react';
2
+ export declare const LikeC4Styles: NamedExoticComponent<{
2
3
  id: string;
3
- }): import("react/jsx-runtime").JSX.Element;
4
+ }>;
5
+ /**
6
+ * @internal Memoized styles gives a performance boost during development
7
+ */
@@ -1,10 +1,9 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { ThemeColors, defaultTheme } from '@likec4/core';
1
+ import { jsx } from 'react/jsx-runtime';
3
2
  import { useMantineStyleNonce } from '@mantine/core';
4
3
  import { toRgba, mix, toHex, scale } from 'khroma';
5
4
  import { memo } from 'react';
6
5
  import { pipe, entries, map, join, range } from 'remeda';
7
- import { useLikeC4Specification } from './likec4model/useLikeC4Model.js';
6
+ import { useLikeC4Styles } from './hooks/useLikeC4Styles.js';
8
7
 
9
8
  const scheme = (scheme2) => `[data-mantine-color-scheme="${scheme2}"]`;
10
9
  const whenDark = scheme("dark");
@@ -36,83 +35,52 @@ ${whenDark} ${selector} {
36
35
  `.trim();
37
36
  };
38
37
  function toStyle(rootSelector, name, colors) {
38
+ const { elements, relationships } = colors;
39
39
  const selector = `:where(${rootSelector} [data-likec4-color=${name}])`;
40
40
  return [
41
41
  `
42
42
  ${selector} {
43
- --likec4-palette-fill: ${colors.elements.fill};
44
- --likec4-palette-stroke: ${colors.elements.stroke};
45
- --likec4-palette-hiContrast: ${colors.elements.hiContrast};
46
- --likec4-palette-loContrast: ${colors.elements.loContrast};
47
- --likec4-palette-relation-stroke: ${colors.relationships.lineColor};
48
- --likec4-palette-relation-label: ${colors.relationships.labelColor};
49
- --likec4-palette-relation-label-bg: ${colors.relationships.labelBgColor};
43
+ --likec4-palette-fill: ${elements.fill};
44
+ --likec4-palette-stroke: ${elements.stroke};
45
+ --likec4-palette-hiContrast: ${elements.hiContrast};
46
+ --likec4-palette-loContrast: ${elements.loContrast};
47
+ --likec4-palette-relation-stroke: ${relationships.line};
48
+ --likec4-palette-relation-label: ${relationships.label};
49
+ --likec4-palette-relation-label-bg: ${relationships.labelBg};
50
50
  }
51
51
  ${whenLight} ${selector} {
52
- --likec4-palette-relation-stroke-selected: ${toRgba(mix(colors.relationships.lineColor, "black", 85))};
52
+ --likec4-palette-relation-stroke-selected: ${toRgba(mix(relationships.line, "black", 85))};
53
53
  }
54
54
  ${whenDark} ${selector} {
55
- --likec4-palette-relation-stroke-selected: ${toRgba(mix(colors.relationships.lineColor, "white", 70))};
55
+ --likec4-palette-relation-stroke-selected: ${toRgba(mix(relationships.line, "white", 70))};
56
56
  }
57
57
 
58
58
  `.trim(),
59
59
  ...range(1, MAX_DEPTH + 1).map((depth) => generateCompoundColors(rootSelector, name, colors, depth))
60
60
  ].join("\n");
61
61
  }
62
- function generateCustomColorStyles(customColors, rootSelector) {
62
+ function generateBuiltInColorStyles(rootSelector, theme) {
63
63
  return pipe(
64
- entries(customColors),
65
- map(([name, color]) => toStyle(rootSelector, name, color)),
64
+ theme.colors,
65
+ entries(),
66
+ map(([color, values]) => toStyle(rootSelector, color, values)),
66
67
  join("\n")
67
68
  );
68
69
  }
69
- function generateBuiltInColorStyles(rootSelector) {
70
- return pipe(
71
- ThemeColors,
72
- map(
73
- (color) => toStyle(rootSelector, color, {
74
- elements: defaultTheme.elements[color],
75
- relationships: defaultTheme.relationships[color]
76
- })
77
- ),
78
- join("\n")
79
- );
80
- }
81
- function LikeC4Styles({ id }) {
70
+ const LikeC4Styles = memo(({ id }) => {
82
71
  const rootSelector = `#${id}`;
83
72
  const nonce = useMantineStyleNonce()?.();
84
- const { customColors } = useLikeC4Specification();
85
- const customColorsStyles = customColors ? generateCustomColorStyles(customColors, rootSelector) : "";
86
- const builtInColors = generateBuiltInColorStyles(rootSelector);
73
+ const { theme } = useLikeC4Styles();
74
+ const colorsStyles = generateBuiltInColorStyles(rootSelector, theme);
87
75
  return /* @__PURE__ */ jsx(
88
- MemoizedStyles,
89
- {
90
- id,
91
- nonce,
92
- customColorsStyles,
93
- builtInColors
94
- }
95
- );
96
- }
97
- const MemoizedStyles = memo(({ id, nonce, customColorsStyles, builtInColors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
98
- /* @__PURE__ */ jsx(
99
76
  "style",
100
77
  {
101
78
  type: "text/css",
102
79
  "data-likec4-colors": id,
103
- dangerouslySetInnerHTML: { __html: builtInColors },
80
+ dangerouslySetInnerHTML: { __html: colorsStyles },
104
81
  nonce
105
82
  }
106
- ),
107
- customColorsStyles && /* @__PURE__ */ jsx(
108
- "style",
109
- {
110
- type: "text/css",
111
- "data-likec4-custom-colors": id,
112
- dangerouslySetInnerHTML: { __html: customColorsStyles },
113
- nonce
114
- }
115
- )
116
- ] }));
83
+ );
84
+ });
117
85
 
118
86
  export { LikeC4Styles };
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties } from 'react';
2
- import { CustomNodes, ElementIconRenderer, OverrideReactFlowProps, PaddingWithUnit, ViewPadding } from '../LikeC4Diagram.props';
2
+ import { ElementIconRenderer, NodeRenderers, OverrideReactFlowProps, PaddingWithUnit, ViewPadding } from './LikeC4Diagram.props';
3
3
  import type * as t from '@likec4/core/types';
4
4
  export interface LikeC4ViewProps<A extends t.aux.Any = t.aux.UnknownLayouted> {
5
5
  /**
@@ -62,13 +62,7 @@ export interface LikeC4ViewProps<A extends t.aux.Any = t.aux.UnknownLayouted> {
62
62
  */
63
63
  fitViewPadding?: ViewPadding | undefined;
64
64
  /**
65
- * Display diagram title / description
66
- *
67
- * @default false
68
- */
69
- showDiagramTitle?: boolean | undefined;
70
- /**
71
- * Show back/forward navigation buttons
65
+ * Show back/forward navigation buttons in controls panel
72
66
  * @default false
73
67
  */
74
68
  showNavigationButtons?: undefined | boolean;
@@ -104,17 +98,17 @@ export interface LikeC4ViewProps<A extends t.aux.Any = t.aux.UnknownLayouted> {
104
98
  * @default false
105
99
  */
106
100
  enableElementTags?: boolean | undefined;
107
- /**
108
- * Experimental feature to browse relationships
109
- *
110
- * @default enableElementDetails
111
- */
112
- enableRelationshipBrowser?: boolean | undefined;
113
101
  /**
114
102
  * Display dropdown with details on relationship's label click
115
- * @default enableRelationshipBrowser
103
+ * @default false
116
104
  */
117
105
  enableRelationshipDetails?: boolean | undefined;
106
+ /**
107
+ * Allow popup to browse relationships
108
+ *
109
+ * @default enableRelationshipDetails
110
+ */
111
+ enableRelationshipBrowser?: boolean | undefined;
118
112
  /**
119
113
  * Improve performance by hiding certain elements and reducing visual effects (disable mix-blend, shadows, animations)
120
114
  *
@@ -137,12 +131,16 @@ export interface LikeC4ViewProps<A extends t.aux.Any = t.aux.UnknownLayouted> {
137
131
  /**
138
132
  * Override node renderers
139
133
  */
140
- renderNodes?: CustomNodes | undefined;
134
+ renderNodes?: NodeRenderers | undefined;
141
135
  /**
142
136
  * Render custom icon for a node
143
137
  * By default, if icon is http:// or https://, it will be rendered as an image
144
138
  */
145
139
  renderIcon?: ElementIconRenderer | undefined;
140
+ /**
141
+ * Children to render inside the diagram (not inside the browser overlay)
142
+ */
143
+ children?: React.ReactNode | undefined;
146
144
  }
147
145
  export interface LikeC4BrowserProps {
148
146
  /**
@@ -157,17 +155,10 @@ export interface LikeC4BrowserProps {
157
155
  fitViewPadding?: PaddingWithUnit | undefined;
158
156
  /**
159
157
  * Show/hide panel with top left controls,
160
- * - `next` - show navigation panel (Experimental)
161
- *
162
- * @default `next`
163
- */
164
- controls?: boolean | 'next' | undefined;
165
- /**
166
- * Display diagram title / description
167
158
  *
168
159
  * @default true
169
160
  */
170
- showDiagramTitle?: boolean | undefined;
161
+ controls?: boolean | undefined;
171
162
  /**
172
163
  * Show back/forward navigation buttons
173
164
  * @default true
@@ -202,7 +193,7 @@ export interface LikeC4BrowserProps {
202
193
  /**
203
194
  * Experimental feature to browse relationships
204
195
  *
205
- * @default enableElementDetails
196
+ * @default true
206
197
  */
207
198
  enableRelationshipBrowser?: boolean | undefined;
208
199
  /**
@@ -232,4 +223,17 @@ export interface LikeC4BrowserProps {
232
223
  * Override some react flow props
233
224
  */
234
225
  reactFlowProps?: OverrideReactFlowProps | undefined;
226
+ /**
227
+ * Children to render inside the browser overlay
228
+ */
229
+ children?: React.ReactNode | undefined;
235
230
  }
231
+ /**
232
+ * Ready-to-use component to display embedded LikeC4 view,
233
+ * OnClick allows to browse the model.
234
+ *
235
+ * {@link ReactLikeC4} gives you more control.
236
+ *
237
+ * Component is wrapped in ShadowRoot to isolate styles.
238
+ */
239
+ export declare function LikeC4View<A extends t.aux.Any = t.aux.UnknownLayouted>({ viewId, className, pannable, zoomable, keepAspectRatio, colorScheme, injectFontCss, controls, background, browser, showNavigationButtons, showNotations, enableFocusMode, enableDynamicViewWalkthrough, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, reduceGraphics, mantineTheme, styleNonce, style, reactFlowProps, renderNodes, children, ...props }: LikeC4ViewProps<A>): import("react/jsx-runtime").JSX.Element;