@likec4/diagram 1.34.2 → 1.36.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 (404) hide show
  1. package/bundle/{chunk-Dd7et66b.js → chunk-7MPUJFHj.js} +1102 -1172
  2. package/bundle/custom.js +59 -55
  3. package/bundle/index.js +8918 -5681
  4. package/dist/LikeC4Diagram.js +6 -6
  5. package/dist/LikeC4Diagram.props.d.ts +53 -7
  6. package/dist/LikeC4ModelProvider.d.ts +4 -4
  7. package/dist/LikeC4ProjectsProvider.d.ts +17 -0
  8. package/dist/LikeC4ProjectsProvider.js +22 -0
  9. package/dist/LikeC4Styles.d.ts +1 -0
  10. package/dist/LikeC4Styles.js +94 -0
  11. package/dist/StaticLikeC4Diagram.d.ts +3 -3
  12. package/dist/base/BaseXYFlow.d.ts +2 -2
  13. package/dist/base/BaseXYFlow.js +26 -29
  14. package/dist/base/primitives/MarkdownBlock.d.ts +7 -1
  15. package/dist/base/primitives/MarkdownBlock.js +1 -1
  16. package/dist/base/primitives/compound/CompoundActionButton.js +3 -3
  17. package/dist/base/primitives/compound/CompoundDetailsButton.js +3 -3
  18. package/dist/base/primitives/compound/CompoundNodeContainer.css.js +4 -4
  19. package/dist/base/primitives/compound/CompoundNodeContainer.js +1 -4
  20. package/dist/base/primitives/compound/CompoundTitle.js +9 -8
  21. package/dist/base/primitives/compound/actionbtns.css.js +6 -6
  22. package/dist/base/primitives/edge/EdgeActionButton.js +3 -3
  23. package/dist/base/primitives/edge/EdgeContainer.js +4 -7
  24. package/dist/base/primitives/edge/EdgeLabel.css.d.ts +0 -22
  25. package/dist/base/primitives/edge/EdgeLabel.css.js +6 -84
  26. package/dist/base/primitives/edge/EdgeLabel.js +16 -6
  27. package/dist/base/primitives/edge/EdgeLabelContainer.js +1 -6
  28. package/dist/base/primitives/edge/EdgeMarkers.js +3 -3
  29. package/dist/base/primitives/edge/edge.css.d.ts +0 -2
  30. package/dist/base/primitives/edge/edge.css.js +1 -55
  31. package/dist/base/primitives/element/ElementActionButtons.js +2 -2
  32. package/dist/base/primitives/element/ElementDetailsButton.js +9 -8
  33. package/dist/base/primitives/element/ElementNodeContainer.css.js +4 -4
  34. package/dist/base/primitives/element/ElementNodeContainer.d.ts +3 -3
  35. package/dist/base/primitives/element/ElementNodeContainer.js +1 -4
  36. package/dist/base/primitives/element/ElementShape.css.js +11 -11
  37. package/dist/base/primitives/element/ElementTags.d.ts +1 -0
  38. package/dist/base/primitives/element/ElementTags.js +17 -14
  39. package/dist/base/primitives/element/ElementTitle.js +9 -9
  40. package/dist/bundle/LikeC4View.d.ts +1 -1
  41. package/dist/bundle/LikeC4View.js +10 -4
  42. package/dist/bundle/LikeC4View.props.d.ts +9 -6
  43. package/dist/bundle/ReactLikeC4.d.ts +1 -1
  44. package/dist/bundle/ViewNotFound.js +1 -1
  45. package/dist/bundle/custom.js +1 -0
  46. package/dist/bundle/index.d.ts +2 -1
  47. package/dist/bundle/index.js +2 -0
  48. package/dist/bundle/styles.css.js +1 -1
  49. package/dist/components/ErrorFallback.d.ts +2 -1
  50. package/dist/components/ErrorFallback.js +16 -3
  51. package/dist/components/GithubIcon.d.ts +2 -0
  52. package/dist/components/GithubIcon.js +17 -0
  53. package/dist/components/Link.d.ts +4 -3
  54. package/dist/components/Link.js +86 -89
  55. package/dist/components/NavigationLink.d.ts +6 -0
  56. package/dist/components/NavigationLink.js +25 -0
  57. package/dist/components/SearchControl.css.js +6 -5
  58. package/dist/components/SearchControl.js +1 -1
  59. package/dist/context/ControlsCustomLayout.d.ts +0 -1
  60. package/dist/context/DiagramEventHandlers.d.ts +6 -6
  61. package/dist/context/DiagramEventHandlers.js +4 -7
  62. package/dist/context/DiagramFeatures.d.ts +4 -1
  63. package/dist/context/IconRenderer.js +6 -6
  64. package/dist/custom/customNodes.js +10 -2
  65. package/dist/custom/hooks.d.ts +1 -0
  66. package/dist/custom/index.js +1 -0
  67. package/dist/globals.css.js +3 -0
  68. package/dist/hooks/useDiagram.d.ts +1 -2
  69. package/dist/hooks/useDiagram.js +1 -5
  70. package/dist/hooks/useXYFlow.d.ts +10 -10
  71. package/dist/index.d.ts +1 -0
  72. package/dist/index.js +2 -0
  73. package/dist/likec4diagram/DiagramUI.js +8 -4
  74. package/dist/likec4diagram/DiagramXYFlow.js +1 -1
  75. package/dist/likec4diagram/custom/edges/NotePopover.css.js +2 -2
  76. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +2 -2
  77. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +1 -1
  78. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.css.js +7 -7
  79. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +7 -7
  80. package/dist/likec4diagram/custom/edges/edges.css.js +4 -4
  81. package/dist/likec4diagram/custom/index.d.ts +2 -2
  82. package/dist/likec4diagram/custom/nodes/ElementActions.js +2 -2
  83. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +2 -2
  84. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +2 -2
  85. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  86. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +1 -1
  87. package/dist/likec4diagram/ui/controls/Controls.js +11 -15
  88. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.js +1 -1
  89. package/dist/likec4diagram/ui/controls/ManualLayoutToolsButton.js +9 -9
  90. package/dist/likec4diagram/ui/controls/NavigationButtons.js +4 -2
  91. package/dist/likec4diagram/ui/controls/ToggleReadonly.js +2 -2
  92. package/dist/likec4diagram/ui/controls/styles.css.js +5 -5
  93. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +15 -13
  94. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +11 -11
  95. package/dist/likec4diagram/ui/notation/NotationPanel.js +5 -8
  96. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.js +10 -10
  97. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +4 -4
  98. package/dist/likec4model/LikeC4ModelContext.d.ts +4 -1
  99. package/dist/likec4model/LikeC4ModelContext.js +2 -1
  100. package/dist/likec4model/LikeC4ProjectsContext.d.ts +7 -0
  101. package/dist/likec4model/LikeC4ProjectsContext.js +5 -0
  102. package/dist/likec4model/index.d.ts +2 -0
  103. package/dist/likec4model/useCurrentViewModel.d.ts +2 -0
  104. package/dist/likec4model/useCurrentViewModel.js +12 -0
  105. package/dist/likec4model/useLikeC4Model.d.ts +2 -5
  106. package/dist/likec4model/useLikeC4Model.js +10 -16
  107. package/dist/likec4model/useLikeC4Project.d.ts +22 -0
  108. package/dist/likec4model/useLikeC4Project.js +23 -0
  109. package/dist/navigationpanel/NavigationPanel.d.ts +2 -0
  110. package/dist/navigationpanel/NavigationPanel.js +122 -0
  111. package/dist/navigationpanel/NavigationPanelControls.d.ts +1 -0
  112. package/dist/navigationpanel/NavigationPanelControls.js +147 -0
  113. package/dist/navigationpanel/NavigationPanelDropdown.d.ts +1 -0
  114. package/dist/navigationpanel/NavigationPanelDropdown.js +452 -0
  115. package/dist/navigationpanel/_common.d.ts +15 -0
  116. package/dist/navigationpanel/_common.js +72 -0
  117. package/dist/navigationpanel/actor.d.ts +296 -0
  118. package/dist/navigationpanel/actor.js +239 -0
  119. package/dist/navigationpanel/controls/BurgerButton.d.ts +1 -0
  120. package/dist/navigationpanel/controls/BurgerButton.js +34 -0
  121. package/dist/navigationpanel/controls/NavigationButtons.d.ts +1 -0
  122. package/dist/navigationpanel/controls/NavigationButtons.js +57 -0
  123. package/dist/navigationpanel/controls/OpenSource.d.ts +1 -0
  124. package/dist/navigationpanel/controls/OpenSource.js +27 -0
  125. package/dist/navigationpanel/controls/SearchControl.d.ts +1 -0
  126. package/dist/navigationpanel/controls/SearchControl.js +70 -0
  127. package/dist/navigationpanel/controls/ToggleReadonly.d.ts +1 -0
  128. package/dist/navigationpanel/controls/ToggleReadonly.js +69 -0
  129. package/dist/navigationpanel/controls/ViewDetailsCard.d.ts +2 -0
  130. package/dist/navigationpanel/controls/ViewDetailsCard.js +232 -0
  131. package/dist/navigationpanel/controls/index.d.ts +6 -0
  132. package/dist/navigationpanel/dropdown/ProjectsMenu.d.ts +2 -0
  133. package/dist/navigationpanel/dropdown/ProjectsMenu.js +75 -0
  134. package/dist/navigationpanel/editorpanel/CenterCamera.d.ts +1 -0
  135. package/dist/navigationpanel/editorpanel/CenterCamera.js +12 -0
  136. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.d.ts +1 -0
  137. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +157 -0
  138. package/dist/navigationpanel/editorpanel/EditorPanel.d.ts +1 -0
  139. package/dist/navigationpanel/editorpanel/EditorPanel.js +48 -0
  140. package/dist/navigationpanel/editorpanel/LayoutDriftNotification.d.ts +1 -0
  141. package/dist/navigationpanel/editorpanel/LayoutDriftNotification.js +56 -0
  142. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.d.ts +2 -0
  143. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +173 -0
  144. package/dist/navigationpanel/editorpanel/_common.d.ts +6 -0
  145. package/dist/navigationpanel/editorpanel/_common.js +14 -0
  146. package/dist/navigationpanel/editorpanel/index.d.ts +1 -0
  147. package/dist/navigationpanel/editorpanel/styles.d.ts +8 -0
  148. package/dist/navigationpanel/editorpanel/styles.js +79 -0
  149. package/dist/navigationpanel/hooks.d.ts +20 -0
  150. package/dist/navigationpanel/hooks.js +38 -0
  151. package/dist/navigationpanel/index.d.ts +1 -0
  152. package/dist/navigationpanel/styles.css.d.ts +16 -0
  153. package/dist/navigationpanel/styles.css.js +30 -0
  154. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.d.ts +2 -0
  155. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +162 -0
  156. package/dist/navigationpanel/walkthrough/index.d.ts +1 -0
  157. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.31.0_react@19.1.0 → @tabler_icons-react@3.34.1_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +1 -1
  158. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.31.0_react@19.1.0 → @tabler_icons-react@3.34.1_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +1 -1
  159. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +14 -0
  160. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +14 -0
  161. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +14 -0
  162. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +14 -0
  163. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +14 -0
  164. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +14 -0
  165. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +14 -0
  166. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +14 -0
  167. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +14 -0
  168. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +14 -0
  169. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +14 -0
  170. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +14 -0
  171. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +14 -0
  172. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +14 -0
  173. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +14 -0
  174. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +14 -0
  175. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +14 -0
  176. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +14 -0
  177. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +14 -0
  178. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +14 -0
  179. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +14 -0
  180. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +14 -0
  181. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +14 -0
  182. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +14 -0
  183. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +14 -0
  184. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +14 -0
  185. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +14 -0
  186. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +14 -0
  187. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +14 -0
  188. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +14 -0
  189. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +14 -0
  190. 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 +14 -0
  191. 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 +14 -0
  192. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +14 -0
  193. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +14 -0
  194. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +14 -0
  195. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +14 -0
  196. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +14 -0
  197. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +14 -0
  198. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +14 -0
  199. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +14 -0
  200. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +14 -0
  201. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +14 -0
  202. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +14 -0
  203. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +14 -0
  204. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +14 -0
  205. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +14 -0
  206. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +14 -0
  207. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +14 -0
  208. package/dist/overlays/element-details/ElementDetailsCard.css.js +18 -17
  209. package/dist/overlays/element-details/ElementDetailsCard.js +12 -17
  210. package/dist/overlays/element-details/TabPanelDeployments.css.js +5 -4
  211. package/dist/overlays/element-details/TabPanelDeployments.js +3 -3
  212. package/dist/overlays/element-details/TabPanelRelationships.css.js +7 -7
  213. package/dist/overlays/element-details/TabPanelRelationships.js +3 -3
  214. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  215. package/dist/overlays/overlay/Overlay.css.d.ts +3 -3
  216. package/dist/overlays/overlay/Overlay.css.js +8 -7
  217. package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
  218. package/dist/overlays/relationship-details/SelectEdge.css.js +8 -8
  219. package/dist/overlays/relationship-details/SelectEdge.js +2 -2
  220. package/dist/overlays/relationship-details/custom/ElementActions.js +3 -3
  221. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +3 -3
  222. package/dist/overlays/relationships-browser/SelectElement.css.js +1 -1
  223. package/dist/overlays/relationships-browser/SelectElement.js +2 -2
  224. package/dist/overlays/relationships-browser/custom/ElementActions.js +3 -3
  225. package/dist/search/Search.js +6 -6
  226. package/dist/search/components/ElementsColumn.css.js +5 -5
  227. package/dist/search/components/ElementsColumn.js +1 -1
  228. package/dist/search/components/PickView.js +1 -1
  229. package/dist/search/components/SearchByTags.js +4 -3
  230. package/dist/search/components/SearchInput.js +1 -1
  231. package/dist/search/components/ViewsColum.js +3 -3
  232. package/dist/search/components/ViewsColumn.css.js +1 -1
  233. package/dist/search/components/_shared.css.js +3 -3
  234. package/dist/search/components/styles.css.js +5 -5
  235. package/dist/state/DiagramActorProvider.d.ts +2 -2
  236. package/dist/state/DiagramActorProvider.js +82 -25
  237. package/dist/state/diagram-machine.d.ts +31 -249
  238. package/dist/state/diagram-machine.js +16 -16
  239. package/dist/styles-min.css +1 -1
  240. package/dist/styles.css +1 -1
  241. package/dist/styles.css2.js +1 -1
  242. package/package.json +20 -17
  243. package/panda.buildinfo.json +368 -404
  244. package/src/LikeC4Diagram.props.ts +53 -5
  245. package/src/LikeC4Diagram.tsx +2 -2
  246. package/src/LikeC4ModelProvider.tsx +6 -6
  247. package/src/LikeC4ProjectsProvider.tsx +41 -0
  248. package/src/LikeC4Styles.tsx +107 -0
  249. package/src/StaticLikeC4Diagram.tsx +3 -3
  250. package/src/base/BaseXYFlow.tsx +28 -33
  251. package/src/base/primitives/MarkdownBlock.tsx +11 -3
  252. package/src/base/primitives/compound/CompoundActionButton.tsx +2 -2
  253. package/src/base/primitives/compound/CompoundDetailsButton.tsx +2 -2
  254. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +4 -13
  255. package/src/base/primitives/compound/CompoundNodeContainer.tsx +0 -3
  256. package/src/base/primitives/compound/CompoundTitle.tsx +8 -8
  257. package/src/base/primitives/compound/actionbtns.css.ts +6 -6
  258. package/src/base/primitives/edge/EdgeActionButton.tsx +2 -2
  259. package/src/base/primitives/edge/EdgeContainer.tsx +3 -6
  260. package/src/base/primitives/edge/EdgeLabel.css.ts +4 -83
  261. package/src/base/primitives/edge/EdgeLabel.tsx +16 -10
  262. package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -6
  263. package/src/base/primitives/edge/EdgeMarkers.tsx +3 -3
  264. package/src/base/primitives/edge/edge.css.ts +0 -60
  265. package/src/base/primitives/element/ElementActionButtons.tsx +2 -2
  266. package/src/base/primitives/element/ElementDetailsButton.tsx +7 -7
  267. package/src/base/primitives/element/ElementNodeContainer.css.ts +4 -4
  268. package/src/base/primitives/element/ElementNodeContainer.tsx +2 -5
  269. package/src/base/primitives/element/ElementShape.css.ts +11 -11
  270. package/src/base/primitives/element/ElementTags.tsx +17 -14
  271. package/src/base/primitives/element/ElementTitle.tsx +4 -4
  272. package/src/bundle/LikeC4View.props.ts +15 -6
  273. package/src/bundle/LikeC4View.tsx +12 -5
  274. package/src/bundle/ReactLikeC4.tsx +1 -2
  275. package/src/bundle/ViewNotFound.tsx +1 -1
  276. package/src/bundle/index.ts +2 -1
  277. package/src/bundle/styles.css.ts +1 -1
  278. package/src/components/ErrorFallback.tsx +17 -2
  279. package/src/components/GithubIcon.tsx +16 -0
  280. package/src/components/Link.tsx +102 -113
  281. package/src/components/NavigationLink.tsx +32 -0
  282. package/src/components/SearchControl.css.ts +5 -5
  283. package/src/context/ControlsCustomLayout.ts +0 -1
  284. package/src/context/DiagramEventHandlers.tsx +12 -12
  285. package/src/context/DiagramFeatures.tsx +6 -1
  286. package/src/custom/customNodes.tsx +10 -2
  287. package/src/custom/hooks.ts +3 -0
  288. package/src/globals.css +71 -0
  289. package/src/hooks/useDiagram.ts +0 -8
  290. package/src/index.ts +5 -0
  291. package/src/likec4diagram/DiagramUI.tsx +9 -3
  292. package/src/likec4diagram/DiagramXYFlow.tsx +1 -1
  293. package/src/likec4diagram/custom/edges/NotePopover.css.ts +2 -2
  294. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +1 -1
  295. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.css.ts +7 -7
  296. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +3 -3
  297. package/src/likec4diagram/custom/edges/edges.css.ts +4 -4
  298. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +2 -2
  299. package/src/likec4diagram/ui/controls/Controls.tsx +8 -18
  300. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +2 -0
  301. package/src/likec4diagram/ui/controls/styles.css.ts +5 -5
  302. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +14 -11
  303. package/src/likec4diagram/ui/notation/NotationPanel.css.ts +11 -11
  304. package/src/likec4diagram/ui/notation/NotationPanel.tsx +1 -4
  305. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.ts +10 -10
  306. package/src/likec4model/LikeC4ModelContext.ts +5 -1
  307. package/src/likec4model/LikeC4ProjectsContext.ts +9 -0
  308. package/src/likec4model/index.ts +11 -0
  309. package/src/likec4model/useCurrentViewModel.ts +10 -0
  310. package/src/likec4model/useLikeC4Model.ts +17 -27
  311. package/src/likec4model/useLikeC4Project.ts +61 -0
  312. package/src/navigationpanel/NavigationPanel.tsx +135 -0
  313. package/src/navigationpanel/NavigationPanelControls.tsx +133 -0
  314. package/src/navigationpanel/NavigationPanelDropdown.tsx +539 -0
  315. package/src/navigationpanel/_common.tsx +84 -0
  316. package/src/navigationpanel/actor.ts +320 -0
  317. package/src/navigationpanel/controls/BurgerButton.tsx +30 -0
  318. package/src/navigationpanel/controls/NavigationButtons.tsx +44 -0
  319. package/src/navigationpanel/controls/OpenSource.tsx +28 -0
  320. package/src/navigationpanel/controls/SearchControl.tsx +66 -0
  321. package/src/navigationpanel/controls/ToggleReadonly.tsx +66 -0
  322. package/src/navigationpanel/controls/ViewDetailsCard.tsx +244 -0
  323. package/src/navigationpanel/controls/index.ts +6 -0
  324. package/src/navigationpanel/dropdown/ProjectsMenu.tsx +74 -0
  325. package/src/navigationpanel/editorpanel/CenterCamera.tsx +15 -0
  326. package/src/navigationpanel/editorpanel/ChangeAutoLayoutButton.tsx +199 -0
  327. package/src/navigationpanel/editorpanel/EditorPanel.tsx +49 -0
  328. package/src/navigationpanel/editorpanel/LayoutDriftNotification.tsx +56 -0
  329. package/src/navigationpanel/editorpanel/ManualLayoutToolsButton.tsx +148 -0
  330. package/src/navigationpanel/editorpanel/_common.tsx +14 -0
  331. package/src/navigationpanel/editorpanel/index.ts +1 -0
  332. package/src/navigationpanel/editorpanel/styles.ts +84 -0
  333. package/src/navigationpanel/hooks.tsx +70 -0
  334. package/src/navigationpanel/index.ts +1 -0
  335. package/src/navigationpanel/styles.css.ts +28 -0
  336. package/src/navigationpanel/walkthrough/ActiveWalkthroughControls.tsx +165 -0
  337. package/src/navigationpanel/walkthrough/index.tsx +1 -0
  338. package/src/overlays/element-details/ElementDetailsCard.css.ts +17 -17
  339. package/src/overlays/element-details/ElementDetailsCard.tsx +8 -13
  340. package/src/overlays/element-details/TabPanelDeployments.css.ts +4 -4
  341. package/src/overlays/element-details/TabPanelRelationships.css.ts +7 -7
  342. package/src/overlays/overlay/Overlay.css.ts +7 -7
  343. package/src/overlays/relationship-details/SelectEdge.css.ts +8 -8
  344. package/src/overlays/relationships-browser/SelectElement.css.ts +1 -1
  345. package/src/search/Search.tsx +6 -6
  346. package/src/search/components/ElementsColumn.css.ts +5 -5
  347. package/src/search/components/SearchByTags.tsx +2 -2
  348. package/src/search/components/ViewsColum.tsx +1 -1
  349. package/src/search/components/ViewsColumn.css.ts +1 -1
  350. package/src/search/components/_shared.css.ts +3 -3
  351. package/src/search/components/styles.css.ts +5 -5
  352. package/src/state/DiagramActorProvider.tsx +104 -31
  353. package/src/state/diagram-machine.ts +24 -18
  354. package/dist/LikeC4CustomColors.d.ts +0 -2
  355. package/dist/LikeC4CustomColors.js +0 -45
  356. package/dist/base/primitives/element/ElementTitle.css.d.ts +0 -34
  357. package/dist/base/primitives/element/ElementTitle.css.js +0 -201
  358. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -13
  359. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -13
  360. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -13
  361. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -13
  362. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -13
  363. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -13
  364. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -13
  365. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -13
  366. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -13
  367. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -13
  368. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -13
  369. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -13
  370. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -13
  371. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -13
  372. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -13
  373. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -13
  374. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -13
  375. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -13
  376. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -13
  377. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -13
  378. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -13
  379. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -13
  380. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -13
  381. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -13
  382. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -13
  383. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -13
  384. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -13
  385. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu.js +0 -13
  386. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu2.js +0 -13
  387. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -13
  388. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -13
  389. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -13
  390. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -13
  391. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -13
  392. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -13
  393. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -13
  394. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -13
  395. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -13
  396. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -13
  397. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -13
  398. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -13
  399. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -13
  400. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -13
  401. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -13
  402. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +0 -45
  403. package/src/LikeC4CustomColors.tsx +0 -85
  404. package/src/base/primitives/element/ElementTitle.css.ts +0 -206
@@ -4,8 +4,8 @@ const labelBorderRadius = '4px'
4
4
 
5
5
  export const edgeNoteCloseButton = css({
6
6
  position: 'absolute',
7
- top: 4,
8
- right: 4,
7
+ top: '1',
8
+ right: '1',
9
9
  })
10
10
 
11
11
  export const edgeNoteText = css({
@@ -26,8 +26,8 @@ export const translate = {
26
26
  } as const
27
27
 
28
28
  export const edgeLabelContainer = css({
29
- top: 0,
30
- left: 0,
29
+ top: '0',
30
+ left: '0',
31
31
  position: 'absolute',
32
32
  pointerEvents: 'all',
33
33
  cursor: 'pointer',
@@ -62,82 +62,3 @@ export const edgeLabelContainer = css({
62
62
  display: 'none',
63
63
  },
64
64
  })
65
-
66
- export const labelsva = sva({
67
- slots: ['root', 'stepNumber', 'labelContents', 'labelText', 'labelTechnology'],
68
- base: {
69
- root: {
70
- pointerEvents: 'all',
71
- fontFamily: 'likec4.relation',
72
- padding: '3px 5px 5px 5px',
73
- display: 'flex',
74
- flexDirection: 'column',
75
- alignItems: 'center',
76
- width: 'max-content',
77
- maxWidth: '100%',
78
- gap: '4px',
79
- },
80
- stepNumber: {
81
- alignSelf: 'stretch',
82
- flex: '0 0 auto',
83
- fontWeight: 600,
84
- fontSize: '14px',
85
- lineHeight: '1',
86
- padding: '5px 5px',
87
- textAlign: 'center',
88
- minWidth: '22px',
89
- borderTopLeftRadius: labelBorderRadius,
90
- borderBottomLeftRadius: labelBorderRadius,
91
- background: `[color-mix(in srgb, {colors.likec4.relation.label.bg}, {colors.likec4.mixColor} 10%)]`,
92
- fontVariantNumeric: 'tabular-nums',
93
- // _dark: {
94
- [':where([data-likec4-color="gray"]) &']: {
95
- _dark: {
96
- background: `[color-mix(in srgb, {colors.likec4.relation.label.bg}, {colors.likec4.mixColor} 15%)]`,
97
- },
98
- },
99
- },
100
- labelContents: {
101
- display: 'contents',
102
- _empty: {
103
- display: 'none !important',
104
- },
105
- },
106
- labelText: {
107
- whiteSpaceCollapse: 'preserve-breaks',
108
- fontSize: '14px',
109
- lineHeight: '1.185',
110
- },
111
- labelTechnology: {
112
- textAlign: 'center',
113
- whiteSpaceCollapse: 'preserve-breaks',
114
- fontSize: '11px',
115
- lineHeight: '1',
116
- opacity: 0.75,
117
- },
118
- },
119
- variants: {
120
- isStepEdge: {
121
- false: {},
122
- true: {
123
- root: {
124
- flexDirection: 'row',
125
- gap: '4px',
126
- padding: '0px',
127
- },
128
- labelContents: {
129
- display: 'flex',
130
- flexDirection: 'column',
131
- alignItems: 'center',
132
- padding: '2px 5px 4px 0px',
133
- },
134
- labelText: {
135
- padding: '2px 6px 4px 0px',
136
- },
137
- },
138
- },
139
- },
140
- defaultVariants: {
141
- isStepEdge: false,
142
- },
143
- })
@@ -1,13 +1,13 @@
1
1
  import { extractStep, isStepEdgeId } from '@likec4/core'
2
2
  import type { DiagramEdge } from '@likec4/core/types'
3
- import { cx } from '@likec4/styles/css'
3
+ import { css, cx } from '@likec4/styles/css'
4
4
  import { type BoxProps, Box } from '@likec4/styles/jsx'
5
+ import { edgeLabel } from '@likec4/styles/recipes'
5
6
  import { Text } from '@mantine/core'
6
7
  import { type PropsWithChildren, forwardRef } from 'react'
7
8
  import { isTruthy } from 'remeda'
8
9
  import type { UndefinedOnPartialDeep } from 'type-fest'
9
10
  import type { EdgeProps } from '../../types'
10
- import { labelsva } from './EdgeLabel.css'
11
11
 
12
12
  type Data = UndefinedOnPartialDeep<
13
13
  Pick<
@@ -40,27 +40,33 @@ export const EdgeLabel = forwardRef<HTMLDivElement, EdgeLabelProps>((
40
40
  ref,
41
41
  ) => {
42
42
  const stepNum = isStepEdgeId(id) ? extractStep(id) : null
43
- const classes = labelsva({
43
+ const classes = edgeLabel({
44
44
  isStepEdge: stepNum !== null,
45
45
  })
46
46
 
47
47
  return (
48
- <Box ref={ref} className={cx(classes.root!, className)} {...rest}>
48
+ <Box ref={ref} className={cx(classes.root, className)} {...rest}>
49
49
  {stepNum !== null && (
50
- <Box className={classes.stepNumber!}>
50
+ <Box className={classes.stepNumber}>
51
51
  {stepNum}
52
52
  </Box>
53
53
  )}
54
- <Box className={classes.labelContents!}>
54
+ <Box className={classes.labelContents}>
55
55
  {isTruthy(label) && (
56
- <Text component="div" className={classes.labelText!} lineClamp={5}>
56
+ <Box
57
+ className={cx(
58
+ classes.labelText,
59
+ css({
60
+ lineClamp: 5,
61
+ }),
62
+ )}>
57
63
  {label}
58
- </Text>
64
+ </Box>
59
65
  )}
60
66
  {isTruthy(technology) && (
61
- <Text component="div" className={classes.labelTechnology!}>
67
+ <Box className={classes.labelTechnology}>
62
68
  {'[ ' + technology + ' ]'}
63
- </Text>
69
+ </Box>
64
70
  )}
65
71
  {children}
66
72
  </Box>
@@ -1,12 +1,11 @@
1
1
  import type { DiagramEdge } from '@likec4/core/types'
2
- import { css, cx } from '@likec4/styles/css'
2
+ import { cx } from '@likec4/styles/css'
3
3
  import { EdgeLabelRenderer } from '@xyflow/react'
4
4
  import { type HTMLAttributes } from 'react'
5
5
  import { isNumber } from 'remeda'
6
6
  import type { UndefinedOnPartialDeep } from 'type-fest'
7
7
  import { ZIndexes } from '../../const'
8
8
  import type { EdgeProps } from '../../types'
9
- import { edgeVars } from './edge.css'
10
9
  import { edgeLabelContainer, translate as _translate } from './EdgeLabel.css'
11
10
 
12
11
  type Data = UndefinedOnPartialDeep<
@@ -71,10 +70,6 @@ export function EdgeLabelContainer({
71
70
  <div
72
71
  key={id}
73
72
  className={cx(
74
- css({
75
- likec4RelationPalette: color,
76
- }),
77
- edgeVars,
78
73
  edgeLabelContainer,
79
74
  'nodrag nopan',
80
75
  'likec4-edge-label-container',
@@ -72,7 +72,7 @@ const OArrow = (props: SVGProps<SVGMarkerElement>) => (
72
72
  <path
73
73
  d="M 0 0 L 8 3 L 0 6 L 1 3 z"
74
74
  stroke="context-stroke"
75
- fill="var(--likec4-background-color)"
75
+ fill="context-stroke"
76
76
  strokeWidth={1.25}
77
77
  strokeLinejoin="miter"
78
78
  strokeLinecap={'square'}
@@ -113,7 +113,7 @@ const ODiamond = (props: SVGProps<SVGMarkerElement>) => (
113
113
  <path
114
114
  d="M5,0 L10,4 L5,8 L0,4 Z"
115
115
  stroke="context-stroke"
116
- fill="var(--likec4-background-color)"
116
+ fill="context-stroke"
117
117
  strokeWidth={1.25}
118
118
  strokeLinecap={'round'}
119
119
  />
@@ -149,7 +149,7 @@ const ODot = (props: SVGProps<SVGMarkerElement>) => (
149
149
  <circle
150
150
  strokeWidth={1.25}
151
151
  stroke="context-stroke"
152
- fill="var(--likec4-background-color)"
152
+ fill="context-stroke"
153
153
  cx={4}
154
154
  cy={4}
155
155
  r={3}
@@ -2,31 +2,6 @@ import { css } from '@likec4/styles/css'
2
2
 
3
3
  const isSelected = '.react-flow__edge.selected'
4
4
 
5
- const edgeStroke = '--xy-edge-stroke'
6
- const edgeStrokeSelected = '--xy-edge-stroke-selected'
7
- const labelColor = '--xy-edge-label-color'
8
- const labelBg = '--xy-edge-label-background-color'
9
-
10
- export const edgeVars = css({
11
- [edgeStroke]: '{colors.likec4.relation.stroke}',
12
- [edgeStrokeSelected]: '{colors.likec4.relation.stroke.selected}',
13
- [labelColor]: {
14
- base: '{colors.likec4.relation.label}',
15
- _light: `color-mix(in srgb, {colors.likec4.relation.label}, rgba(255 255 255 / 0.85) 40%)`,
16
- },
17
- [labelBg]: {
18
- _light: `{colors.likec4.relation.label.bg/60}`,
19
- _dark: `{colors.likec4.relation.label.bg/50}`,
20
- },
21
- ['--xy-edge-stroke-width']: '3',
22
- '&:is([data-likec4-hovered=\'true\'],[data-edge-active=\'true\'])': {
23
- [edgeStroke]: '{colors.likec4.relation.stroke.selected}',
24
- _whenSelected: {
25
- ['--xy-edge-stroke-width']: '4',
26
- },
27
- },
28
- })
29
-
30
5
  export const edgeContainer = css({
31
6
  _reduceGraphics: {
32
7
  transition: 'none',
@@ -98,38 +73,3 @@ export const cssEdgePath = css({
98
73
  animationName: 'none',
99
74
  },
100
75
  })
101
-
102
- const aiBg = {
103
- var: '--ai-bg',
104
- ref: 'var(--ai-bg)',
105
- } as const
106
-
107
- export const actionBtn = css({
108
- // zIndex: 'calc(var(--layer-overlays, 1) + 1)',
109
- pointerEvents: 'all',
110
- // color: `xyedge.label`,
111
- cursor: 'pointer',
112
- opacity: 0.75,
113
- transition: 'fast',
114
- // backgroundColor: aiBg.ref,
115
- [aiBg.var]: 'var(--xy-edge-label-background-color)',
116
- '--ai-hover': `color-mix(in srgb , var(--xy-edge-label-background-color), {colors.likec4.mixColor} 10%)`,
117
- '--ai-size': `var(--ai-size-sm)`,
118
- '--ai-radius': `var(--mantine-radius-sm)`,
119
- _hover: {
120
- translateY: '1px',
121
- scale: 1.15,
122
- },
123
- _active: {
124
- translateY: '-1px',
125
- scale: '0.9',
126
- },
127
- _whenHovered: {
128
- opacity: 1,
129
- },
130
- '& .tabler-icon': {
131
- width: '80%',
132
- height: '80%',
133
- strokeWidth: '2',
134
- },
135
- })
@@ -15,9 +15,9 @@ type ElementActionButtonsProps = NodeProps & {
15
15
  const container = css({
16
16
  position: 'absolute',
17
17
  zIndex: 1,
18
- top: `calc(100% - 30px)`,
18
+ top: `[calc(100% - 30px)]`,
19
19
  transform: 'translateX(-50%)',
20
- left: `50%`,
20
+ left: `[50%]`,
21
21
  width: 'auto',
22
22
  minHeight: '30px',
23
23
  display: 'flex',
@@ -15,20 +15,20 @@ type ElementDetailsButtonProps = NodeProps & {
15
15
 
16
16
  const container = css({
17
17
  position: 'absolute',
18
- top: 2,
19
- right: 2,
18
+ top: '0.5',
19
+ right: '0.5',
20
20
  _shapeBrowser: {
21
- right: '5px',
21
+ right: '[5px]',
22
22
  },
23
23
  _shapeCylinder: {
24
- top: '14px',
24
+ top: '[14px]',
25
25
  },
26
26
  _shapeStorage: {
27
- top: '14px',
27
+ top: '[14px]',
28
28
  },
29
29
  _shapeQueue: {
30
- top: '1px',
31
- right: '12px',
30
+ top: '[1px]',
31
+ right: '3', // 12px
32
32
  },
33
33
  _smallZoom: {
34
34
  display: 'none',
@@ -4,8 +4,8 @@ export const container = style({
4
4
  position: 'relative',
5
5
  width: '100%',
6
6
  height: '100%',
7
- padding: 0,
8
- margin: 0,
7
+ padding: '0',
8
+ margin: '0',
9
9
  display: 'flex',
10
10
  alignItems: 'center',
11
11
  justifyContent: 'center',
@@ -13,8 +13,8 @@ export const container = style({
13
13
  _before: {
14
14
  content: '" "',
15
15
  position: 'absolute',
16
- top: 'calc(100% - 4px)',
17
- left: 0,
16
+ top: '[calc(100% - 4px)]',
17
+ left: '0',
18
18
  width: '100%',
19
19
  height: '24px',
20
20
  background: '[transparent]',
@@ -7,7 +7,7 @@ import {
7
7
  DefaultTextSize,
8
8
  } from '@likec4/core/types'
9
9
  import { css, cx } from '@likec4/styles/css'
10
- import type { LayoutProps } from 'motion/react'
10
+ import type { MotionNodeLayoutOptions } from 'motion/react'
11
11
  import * as m from 'motion/react-m'
12
12
  import { type CSSProperties, type ReactNode, forwardRef } from 'react'
13
13
  import type { NodeProps } from '../../types'
@@ -27,7 +27,7 @@ export type ElementNodeContainerProps =
27
27
  style?: CSSProperties | undefined
28
28
  [key: `data-${string}`]: string | undefined
29
29
  }
30
- & LayoutProps
30
+ & MotionNodeLayoutOptions
31
31
 
32
32
  export function nodeSizes({
33
33
  size,
@@ -92,9 +92,6 @@ export const ElementNodeContainer = forwardRef<HTMLDivElement, ElementNodeContai
92
92
  <m.div
93
93
  ref={ref}
94
94
  className={cx(
95
- css({
96
- likec4Palette: data.color,
97
- }),
98
95
  styles.container,
99
96
  'group',
100
97
  'likec4-element-node',
@@ -4,7 +4,7 @@ export const indicator = css({
4
4
  _smallZoom: {
5
5
  visibility: 'hidden',
6
6
  },
7
- stroke: 'likec4.palette.loContrast',
7
+ stroke: 'var(--likec4-palette-loContrast)',
8
8
  fill: '[none]',
9
9
 
10
10
  strokeWidth: 8,
@@ -12,7 +12,7 @@ export const indicator = css({
12
12
  visibility: 'hidden',
13
13
  pointerEvents: 'none',
14
14
  _light: {
15
- stroke: `[color-mix(in srgb, {colors.likec4.palette.fill} 50%,rgb(121, 121, 121))]`,
15
+ stroke: `[color-mix(in srgb, var(--likec4-palette-fill) 50%,rgb(121, 121, 121))]`,
16
16
  },
17
17
  _whenFocused: {
18
18
  visibility: 'visible',
@@ -27,29 +27,29 @@ export const indicator = css({
27
27
  })
28
28
 
29
29
  export const fillElementFill = css({
30
- fill: 'likec4.palette.fill',
30
+ fill: 'var(--likec4-palette-fill)',
31
31
  })
32
32
 
33
33
  export const fillElementStroke = css({
34
- fill: 'likec4.palette.stroke',
34
+ fill: 'var(--likec4-palette-stroke)',
35
35
  })
36
36
 
37
37
  export const fillMixStroke = css({
38
- fill: '[color-mix(in srgb, {colors.likec4.palette.stroke} 90%, {colors.likec4.palette.fill})]',
38
+ fill: '[color-mix(in srgb, var(--likec4-palette-stroke) 90%, var(--likec4-palette-fill))]',
39
39
  '.shape-svg-multiple &': {
40
- fill: 'likec4.palette.fill',
40
+ fill: 'var(--likec4-palette-fill)',
41
41
  },
42
42
  })
43
43
 
44
44
  const shapeBase = css.raw({
45
- top: 0,
46
- left: 0,
45
+ top: '0',
46
+ left: '0',
47
47
  position: 'absolute',
48
48
  width: '100%',
49
49
  height: '100%',
50
50
  pointerEvents: 'none',
51
- fill: 'likec4.palette.fill',
52
- stroke: 'likec4.palette.stroke',
51
+ fill: 'var(--likec4-palette-fill)',
52
+ stroke: 'var(--likec4-palette-stroke)',
53
53
  overflow: 'visible',
54
54
  // zIndex is removed to improve rendering performance
55
55
  // this forces to keep shape in the same layer as the node
@@ -82,7 +82,7 @@ export const shapeSvg = css(shapeBase, {
82
82
  transitionDelay: '0ms',
83
83
  filter: `
84
84
  drop-shadow(0 2px 1px rgba(0, 0, 0, 0.21))
85
- drop-shadow(0 1px 1px color-mix(in srgb, {colors.likec4.palette.stroke} 40%, transparent))
85
+ drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-palette-stroke) 40%, transparent))
86
86
  drop-shadow(0 5px 3px rgba(0, 0, 0, 0.1))
87
87
  `,
88
88
  _whenHovered: {
@@ -15,10 +15,11 @@ import type { NodeProps } from '../../types'
15
15
 
16
16
  export type ElementTagProps = {
17
17
  tag: string
18
+ cursor?: 'pointer' | 'default'
18
19
  } & Omit<BoxProps, 'children'>
19
20
 
20
21
  export const ElementTag = forwardRef<HTMLDivElement, ElementTagProps>(
21
- ({ tag, className, ...props }, ref) => {
22
+ ({ tag, cursor = 'default', className, ...props }, ref) => {
22
23
  const spec = useTagSpecification(tag)
23
24
  return (
24
25
  <Box
@@ -31,8 +32,9 @@ export const ElementTag = forwardRef<HTMLDivElement, ElementTagProps>(
31
32
  className,
32
33
  )}
33
34
  {...props}
35
+ style={{ cursor }}
34
36
  >
35
- <span style={{ opacity: 0.7, fontSize: '1.05em' }}>#</span>
37
+ <span>#</span>
36
38
  <span>{tag}</span>
37
39
  </Box>
38
40
  )
@@ -99,23 +101,23 @@ export const ElementTags = memo(({ id, data: { tags, width, hovered = false } }:
99
101
  'likec4-element-tags',
100
102
  hstack({
101
103
  pointerEvents: 'all',
102
- gap: 4,
104
+ gap: '1',
103
105
  alignItems: 'flex-end',
104
106
  justifyItems: 'stretch',
105
107
  position: 'absolute',
106
108
  width: '100%',
107
- bottom: 0,
108
- left: 0,
109
- padding: 4,
109
+ bottom: '0',
110
+ left: '0',
111
+ padding: '1',
110
112
  _shapeCylinder: {
111
- bottom: 5,
113
+ bottom: '[5px]',
112
114
  },
113
115
  _shapeStorage: {
114
- bottom: 5,
116
+ bottom: '[5px]',
115
117
  },
116
118
  _shapeQueue: {
117
- bottom: 0,
118
- paddingLeft: 14,
119
+ bottom: '0',
120
+ paddingLeft: '[14px]',
119
121
  },
120
122
  }),
121
123
  )}
@@ -147,11 +149,12 @@ export const ElementTags = memo(({ id, data: { tags, width, hovered = false } }:
147
149
  <HStack
148
150
  ref={tagsToolbarRef}
149
151
  css={{
150
- gap: 4,
152
+ gap: '0.5',
153
+ alignItems: 'baseline',
151
154
  flexWrap: 'wrap',
152
155
  pb: 'sm',
153
156
  translate: 'auto',
154
- x: -8,
157
+ x: '[-8px]',
155
158
  maxWidth,
156
159
  }}
157
160
  >
@@ -164,8 +167,8 @@ export const ElementTags = memo(({ id, data: { tags, width, hovered = false } }:
164
167
  cursor: 'pointer',
165
168
  ...(zoomIsLargeEnough && {
166
169
  fontSize: 'lg',
167
- borderRadius: 4,
168
- px: 6,
170
+ borderRadius: '[4px]',
171
+ px: '1.5', // 6px
169
172
  }),
170
173
  })}
171
174
  onClick={e => {
@@ -1,6 +1,7 @@
1
1
  import type { DiagramNode, RichTextOrEmpty } from '@likec4/core/types'
2
2
  import { cx } from '@likec4/styles/css'
3
3
  import { Box } from '@likec4/styles/jsx'
4
+ import { elementNodeData, elementNodeIcon as elementIconRecipe } from '@likec4/styles/recipes'
4
5
  import { Text } from '@mantine/core'
5
6
  import { isEmpty, isNumber, isTruthy } from 'remeda'
6
7
  import type { Simplify } from 'type-fest'
@@ -8,7 +9,6 @@ import { IconRenderer } from '../../../context/IconRenderer'
8
9
  import type { NodeProps, NonOptional } from '../../types'
9
10
  import { MarkdownBlock } from '../MarkdownBlock'
10
11
  import { nodeSizes } from './ElementNodeContainer'
11
- import * as styles from './ElementTitle.css'
12
12
 
13
13
  type Data = Simplify<
14
14
  & NonOptional<
@@ -37,9 +37,9 @@ export function ElementTitle({ id, data, iconSize }: ElementTitleProps) {
37
37
  title: data.title,
38
38
  icon: data.icon,
39
39
  },
40
- className: styles.elementIcon,
40
+ className: elementIconRecipe(),
41
41
  })
42
- const classes = styles.elementTitle({
42
+ const classes = elementNodeData({
43
43
  hasIcon: isTruthy(elementIcon),
44
44
  hasDescription: !!data.description?.nonEmpty,
45
45
  hasTechnology: !isEmpty(data.technology ?? ''),
@@ -56,7 +56,7 @@ export function ElementTitle({ id, data, iconSize }: ElementTitleProps) {
56
56
  style={isNumber(iconSize)
57
57
  ? {
58
58
  // @ts-ignore
59
- [styles.iconSize]: `${iconSize}px`,
59
+ ['--likec4-icon-size']: `${iconSize}px`,
60
60
  }
61
61
  : undefined}
62
62
  >
@@ -1,7 +1,12 @@
1
- import type { WhereOperator } from '@likec4/core/types'
2
- import type * as aux from '@likec4/core/types/_aux'
1
+ import type { aux, WhereOperator } from '@likec4/core/types'
3
2
  import type { CSSProperties } from 'react'
4
- import type { CustomNodes, ElementIconRenderer, OverrideReactFlowProps, PaddingWithUnit } from '../LikeC4Diagram.props'
3
+ import type {
4
+ CustomNodes,
5
+ ElementIconRenderer,
6
+ OverrideReactFlowProps,
7
+ PaddingWithUnit,
8
+ ViewPadding,
9
+ } from '../LikeC4Diagram.props'
5
10
 
6
11
  export interface LikeC4ViewProps<A extends aux.Any> {
7
12
  /**
@@ -69,8 +74,10 @@ export interface LikeC4ViewProps<A extends aux.Any> {
69
74
  /**
70
75
  * Padding around the diagram
71
76
  * @default '8px'
77
+ *
78
+ * @see {@link ViewPadding}
72
79
  */
73
- fitViewPadding?: PaddingWithUnit | undefined
80
+ fitViewPadding?: ViewPadding | undefined
74
81
 
75
82
  /**
76
83
  * Display diagram title / description
@@ -182,9 +189,11 @@ export interface LikeC4BrowserProps {
182
189
 
183
190
  /**
184
191
  * Show/hide panel with top left controls,
185
- * @default true
192
+ * - `next` - show navigation panel (Experimental)
193
+ *
194
+ * @default `next`
186
195
  */
187
- controls?: boolean | undefined
196
+ controls?: boolean | 'next' | undefined
188
197
 
189
198
  /**
190
199
  * Display diagram title / description
@@ -1,5 +1,4 @@
1
- import type { Any, DiagramView } from '@likec4/core/types'
2
- import type * as aux from '@likec4/core/types/_aux'
1
+ import type { Any, aux, DiagramView } from '@likec4/core/types'
3
2
  import { cx } from '@likec4/styles/css'
4
3
  import { ActionIcon, Box } from '@mantine/core'
5
4
  import { shallowEqual } from '@mantine/hooks'
@@ -8,6 +7,7 @@ import { memo, useState } from 'react'
8
7
  import { isBoolean } from 'remeda'
9
8
  import { FramerMotionConfig } from '../context/FramerMotionConfig'
10
9
  import { LikeC4Diagram } from '../LikeC4Diagram'
10
+ import type { ViewPadding } from '../LikeC4Diagram.props'
11
11
  import { useLikeC4Model } from '../likec4model/useLikeC4Model'
12
12
  import { Overlay } from '../overlays/overlay/Overlay'
13
13
  import type { LikeC4ViewProps } from './LikeC4View.props'
@@ -37,6 +37,13 @@ export function LikeC4View<A extends aux.Any = aux.UnknownLayouted>({
37
37
  return <LikeC4ViewInner view={view.$view} {...props} />
38
38
  }
39
39
 
40
+ const DEFAULT_BROWSER_PADDING: ViewPadding = {
41
+ top: '50px',
42
+ bottom: '16px',
43
+ left: '16px',
44
+ right: '16px',
45
+ }
46
+
40
47
  type LikeC4ViewInnerProps<A extends aux.Any> = Omit<LikeC4ViewProps<A>, 'viewId'> & {
41
48
  view: DiagramView<A>
42
49
  }
@@ -69,7 +76,7 @@ const LikeC4ViewInner = memo<LikeC4ViewInnerProps<aux.Any>>(({
69
76
  renderNodes,
70
77
  ...props
71
78
  }) => {
72
- const likec4model = useLikeC4Model('layouted')
79
+ const likec4model = useLikeC4Model()
73
80
  const colorScheme = useColorScheme(explicitColorScheme)
74
81
 
75
82
  const [shadowRootProps, cssstyle] = useShadowRootStyle(keepAspectRatio, view)
@@ -159,10 +166,10 @@ const LikeC4ViewInner = memo<LikeC4ViewInnerProps<aux.Any>>(({
159
166
  enableRelationshipDetails
160
167
  enableSearch
161
168
  enableElementTags
162
- controls
169
+ controls="next"
163
170
  readonly
164
171
  fitView
165
- fitViewPadding={'32px'}
172
+ fitViewPadding={DEFAULT_BROWSER_PADDING}
166
173
  {...props}
167
174
  {...browserProps}
168
175
  showNotations={(browserProps.showNotations ?? true) &&
@@ -1,5 +1,4 @@
1
- import type { Any, DiagramView } from '@likec4/core/types'
2
- import type * as aux from '@likec4/core/types/_aux'
1
+ import type { Any, aux, DiagramView } from '@likec4/core/types'
3
2
  import { cx } from '@likec4/styles/css'
4
3
  import { type CSSProperties } from 'react'
5
4
  import { isFunction, isString } from 'remeda'
@@ -3,7 +3,7 @@ import type { PropsWithChildren } from 'react'
3
3
  export const ErrorMessage = ({ children }: PropsWithChildren) => (
4
4
  <div
5
5
  style={{
6
- margin: '1rem 0',
6
+ margin: '[1rem 0]',
7
7
  }}>
8
8
  <div
9
9
  style={{