@likec4/diagram 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/bundle/{chunk-BBzMXzCg.js → chunk-BvTQaUYl.js} +1675 -1207
  2. package/bundle/custom.js +50 -47
  3. package/bundle/index.js +2482 -2438
  4. package/dist/LikeC4CustomColors.d.ts +2 -7
  5. package/dist/LikeC4CustomColors.js +17 -6
  6. package/dist/LikeC4Diagram.d.ts +3 -2
  7. package/dist/LikeC4Diagram.js +10 -14
  8. package/dist/LikeC4Diagram.props.d.ts +28 -22
  9. package/dist/LikeC4ModelProvider.d.ts +5 -4
  10. package/dist/StaticLikeC4Diagram.d.ts +3 -2
  11. package/dist/StaticLikeC4Diagram.js +2 -2
  12. package/dist/base/BaseXYFlow.js +5 -5
  13. package/dist/base/const.d.ts +1 -1
  14. package/dist/base/const.js +1 -1
  15. package/dist/base/index.d.ts +2 -1
  16. package/dist/base/primitives/compound/CompoundActionButton.js +2 -1
  17. package/dist/base/primitives/compound/CompoundDetailsButton.js +2 -1
  18. package/dist/base/primitives/compound/CompoundTitle.d.ts +1 -1
  19. package/dist/base/primitives/compound/CompoundTitle.js +2 -1
  20. package/dist/base/primitives/edge/EdgeContainer.d.ts +1 -1
  21. package/dist/base/primitives/edge/EdgeLabel.css.js +1 -0
  22. package/dist/base/primitives/edge/EdgeLabel.d.ts +3 -3
  23. package/dist/base/primitives/edge/EdgeLabel.js +6 -4
  24. package/dist/base/primitives/edge/EdgeLabelContainer.d.ts +1 -1
  25. package/dist/base/primitives/edge/EdgeMarkers.d.ts +1 -1
  26. package/dist/base/primitives/edge/EdgePath.d.ts +1 -1
  27. package/dist/base/primitives/element/ElementActionButtons.js +10 -9
  28. package/dist/base/primitives/element/ElementDetailsButton.js +2 -1
  29. package/dist/base/primitives/element/ElementShape.d.ts +1 -1
  30. package/dist/base/primitives/element/ElementTags.d.ts +14 -0
  31. package/dist/base/primitives/element/ElementTags.js +176 -0
  32. package/dist/base/primitives/element/ElementTitle.d.ts +5 -4
  33. package/dist/base/primitives/element/ElementTitle.js +6 -6
  34. package/dist/base/primitives/index.d.ts +1 -0
  35. package/dist/base/types.Base.d.ts +54 -0
  36. package/dist/base/types.Base.js +48 -0
  37. package/dist/base/types.d.ts +2 -52
  38. package/dist/bundle/LikeC4View.d.ts +2 -1
  39. package/dist/bundle/LikeC4View.js +8 -6
  40. package/dist/bundle/LikeC4View.props.d.ts +15 -4
  41. package/dist/bundle/ReactLikeC4.d.ts +4 -7
  42. package/dist/bundle/ReactLikeC4.js +3 -2
  43. package/dist/bundle/index.js +1 -1
  44. package/dist/components/ErrorFallback.d.ts +2 -0
  45. package/dist/components/ErrorFallback.js +29 -0
  46. package/dist/context/DiagramEventHandlers.d.ts +6 -5
  47. package/dist/context/DiagramFeatures.d.ts +2 -2
  48. package/dist/context/DiagramFeatures.js +3 -31
  49. package/dist/context/EnsureMantine.js +1 -1
  50. package/dist/context/IconRenderer.js +1 -4
  51. package/dist/context/RootContainer.js +5 -1
  52. package/dist/context/TagStylesContext.d.ts +7 -0
  53. package/dist/context/TagStylesContext.js +85 -0
  54. package/dist/custom/components.d.ts +1 -1
  55. package/dist/custom/customNodes.d.ts +27 -17
  56. package/dist/custom/hooks.d.ts +1 -1
  57. package/dist/hooks/index.d.ts +1 -1
  58. package/dist/hooks/useDiagram.d.ts +73 -38
  59. package/dist/hooks/useDiagram.js +7 -3
  60. package/dist/hooks/useMantinePortalProps.d.ts +2 -2
  61. package/dist/hooks/useSearchActor.d.ts +2 -0
  62. package/dist/hooks/useSearchActor.js +10 -0
  63. package/dist/hooks/useUpdateEffect.js +3 -0
  64. package/dist/hooks/useXYFlow.d.ts +39 -37
  65. package/dist/hooks/useXYFlow.js +5 -1
  66. package/dist/index.js +1 -1
  67. package/dist/likec4diagram/DiagramUI.js +7 -2
  68. package/dist/likec4diagram/DiagramXYFlow.d.ts +4 -3
  69. package/dist/likec4diagram/DiagramXYFlow.js +104 -107
  70. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +7 -6
  71. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -0
  72. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +7 -5
  73. package/dist/likec4diagram/custom/index.d.ts +7 -6
  74. package/dist/likec4diagram/custom/nodes/nodes.js +39 -26
  75. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -3
  76. package/dist/likec4diagram/types.d.ts +5 -5
  77. package/dist/likec4diagram/ui/controls/Controls.js +12 -4
  78. package/dist/likec4diagram/ui/notation/NotationPanel.js +1 -1
  79. package/dist/likec4diagram/useViewToNodesEdges.d.ts +5 -3
  80. package/dist/likec4diagram/useViewToNodesEdges.js +20 -30
  81. package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
  82. package/dist/likec4model/useLikeC4ElementsTree.js +1 -1
  83. package/dist/likec4model/useLikeC4Model.d.ts +22 -10
  84. package/dist/likec4model/useLikeC4Model.js +11 -7
  85. package/dist/overlays/Overlays.js +4 -27
  86. package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
  87. package/dist/overlays/element-details/ElementDetailsCard.js +19 -12
  88. package/dist/overlays/element-details/TabPanelDeployments.d.ts +1 -1
  89. package/dist/overlays/element-details/TabPanelDeployments.js +1 -1
  90. package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
  91. package/dist/overlays/element-details/TabPanelStructure.d.ts +1 -1
  92. package/dist/overlays/element-details/actor.d.ts +288 -286
  93. package/dist/overlays/overlay/Overlay.css.d.ts +57 -2
  94. package/dist/overlays/overlay/Overlay.css.js +76 -39
  95. package/dist/overlays/overlay/Overlay.d.ts +12 -0
  96. package/dist/overlays/overlay/Overlay.js +36 -25
  97. package/dist/overlays/overlaysActor.d.ts +1 -1
  98. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +3 -2
  99. package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
  100. package/dist/overlays/relationship-details/_types.d.ts +2 -2
  101. package/dist/overlays/relationship-details/actor.js +7 -7
  102. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +3 -2
  103. package/dist/overlays/relationship-details/custom/nodeTypes.js +4 -0
  104. package/dist/overlays/relationship-details/hooks.d.ts +10 -9
  105. package/dist/overlays/relationship-details/layout-to-xyflow.js +1 -0
  106. package/dist/overlays/relationship-details/layout.js +3 -1
  107. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +3 -2
  108. package/dist/overlays/relationships-browser/SelectElement.js +1 -1
  109. package/dist/overlays/relationships-browser/_types.d.ts +2 -2
  110. package/dist/overlays/relationships-browser/actor.d.ts +1 -1
  111. package/dist/overlays/relationships-browser/actor.js +7 -7
  112. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +3 -2
  113. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +8 -5
  114. package/dist/overlays/relationships-browser/custom/nodeTypes.js +4 -0
  115. package/dist/overlays/relationships-browser/layout.d.ts +2 -2
  116. package/dist/overlays/relationships-browser/layout.js +10 -6
  117. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +4 -3
  118. package/dist/search/Search.d.ts +5 -0
  119. package/dist/search/Search.js +192 -0
  120. package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.js +0 -1
  121. package/dist/search/components/ElementsColumn.d.ts +2 -0
  122. package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.js +21 -19
  123. package/dist/search/components/PickView.d.ts +4 -0
  124. package/dist/search/components/PickView.js +135 -0
  125. package/dist/search/components/SearchByTags.d.ts +1 -0
  126. package/dist/search/components/SearchByTags.js +116 -0
  127. package/dist/search/components/SearchInput.d.ts +2 -0
  128. package/dist/{likec4diagram/ui/search → search/components}/SearchInput.js +53 -34
  129. package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.d.ts +3 -2
  130. package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.js +14 -13
  131. package/dist/{likec4diagram/ui/search → search/components}/_shared.css.js +26 -35
  132. package/dist/{likec4diagram/ui/search/LikeC4Search.css.d.ts → search/components/styles.css.d.ts} +0 -2
  133. package/dist/search/components/styles.css.js +60 -0
  134. package/dist/{likec4diagram/ui/search → search/components}/utils.d.ts +1 -0
  135. package/dist/{likec4diagram/ui/search → search/components}/utils.js +7 -1
  136. package/dist/search/hooks.d.ts +16 -0
  137. package/dist/search/hooks.js +35 -0
  138. package/dist/search/searchActor.d.ts +90 -0
  139. package/dist/search/searchActor.js +75 -0
  140. package/dist/state/DiagramActorProvider.d.ts +9 -7
  141. package/dist/state/DiagramActorProvider.js +24 -18
  142. package/dist/state/assign.d.ts +0 -1
  143. package/dist/state/assign.js +9 -19
  144. package/dist/state/diagram-machine.d.ts +430 -176
  145. package/dist/state/diagram-machine.js +119 -54
  146. package/dist/state/syncManualLayoutActor.d.ts +2 -2
  147. package/dist/state/types.d.ts +2 -0
  148. package/dist/state/utils.d.ts +2 -0
  149. package/dist/state/utils.js +3 -0
  150. package/dist/styles-min.css +1 -1
  151. package/dist/styles-xyflow.css +1 -1
  152. package/dist/styles.css +1 -1
  153. package/dist/styles.css2.js +1 -1
  154. package/package.json +18 -18
  155. package/panda.buildinfo.json +171 -148
  156. package/src/LikeC4CustomColors.tsx +21 -6
  157. package/src/LikeC4Diagram.props.ts +35 -30
  158. package/src/LikeC4Diagram.tsx +19 -20
  159. package/src/LikeC4ModelProvider.tsx +6 -5
  160. package/src/StaticLikeC4Diagram.tsx +8 -6
  161. package/src/base/const.ts +1 -1
  162. package/src/base/index.ts +2 -1
  163. package/src/base/primitives/compound/CompoundActionButton.tsx +2 -1
  164. package/src/base/primitives/compound/CompoundDetailsButton.tsx +2 -1
  165. package/src/base/primitives/compound/CompoundTitle.tsx +3 -2
  166. package/src/base/primitives/edge/EdgeContainer.tsx +2 -1
  167. package/src/base/primitives/edge/EdgeLabel.css.ts +1 -0
  168. package/src/base/primitives/edge/EdgeLabel.tsx +20 -15
  169. package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -1
  170. package/src/base/primitives/edge/EdgeMarkers.tsx +2 -1
  171. package/src/base/primitives/edge/EdgePath.tsx +1 -1
  172. package/src/base/primitives/element/ElementActionButtons.tsx +11 -10
  173. package/src/base/primitives/element/ElementDetailsButton.tsx +2 -1
  174. package/src/base/primitives/element/ElementShape.tsx +2 -1
  175. package/src/base/primitives/element/ElementTags.tsx +182 -0
  176. package/src/base/primitives/element/ElementTitle.tsx +21 -15
  177. package/src/base/primitives/index.ts +1 -0
  178. package/src/base/types.Base.ts +104 -0
  179. package/src/base/types.ts +2 -99
  180. package/src/bundle/LikeC4View.props.ts +17 -4
  181. package/src/bundle/LikeC4View.tsx +17 -19
  182. package/src/bundle/ReactLikeC4.tsx +14 -26
  183. package/src/components/ErrorFallback.tsx +30 -0
  184. package/src/context/DiagramEventHandlers.tsx +5 -4
  185. package/src/context/DiagramFeatures.tsx +3 -22
  186. package/src/context/EnsureMantine.tsx +1 -1
  187. package/src/context/IconRenderer.tsx +1 -4
  188. package/src/context/RootContainer.tsx +9 -3
  189. package/src/context/TagStylesContext.tsx +96 -0
  190. package/src/custom/components.ts +2 -0
  191. package/src/custom/customNodes.tsx +24 -14
  192. package/src/custom/hooks.ts +1 -0
  193. package/src/hooks/index.ts +1 -1
  194. package/src/hooks/useCurrentViewId.ts +1 -4
  195. package/src/hooks/useDiagram.ts +104 -12
  196. package/src/hooks/useMantinePortalProps.ts +10 -1
  197. package/src/hooks/useSearchActor.ts +11 -0
  198. package/src/hooks/useUpdateEffect.ts +7 -4
  199. package/src/hooks/useXYFlow.ts +5 -0
  200. package/src/likec4diagram/DiagramUI.tsx +5 -0
  201. package/src/likec4diagram/DiagramXYFlow.tsx +115 -118
  202. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +9 -0
  203. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +10 -9
  204. package/src/likec4diagram/custom/nodes/nodes.tsx +45 -43
  205. package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +11 -3
  206. package/src/likec4diagram/types.ts +5 -3
  207. package/src/likec4diagram/ui/controls/Controls.tsx +11 -4
  208. package/src/likec4diagram/ui/notation/NotationPanel.tsx +2 -2
  209. package/src/likec4diagram/useViewToNodesEdges.ts +34 -36
  210. package/src/likec4model/LikeC4ModelContext.ts +2 -2
  211. package/src/likec4model/useLikeC4ElementsTree.ts +1 -1
  212. package/src/likec4model/useLikeC4Model.ts +18 -16
  213. package/src/overlays/Overlays.tsx +5 -32
  214. package/src/overlays/element-details/ElementDetailsCard.tsx +25 -18
  215. package/src/overlays/element-details/TabPanelDeployments.tsx +3 -2
  216. package/src/overlays/element-details/TabPanelRelationships.tsx +2 -1
  217. package/src/overlays/element-details/TabPanelStructure.tsx +1 -1
  218. package/src/overlays/element-details/actor.ts +2 -2
  219. package/src/overlays/overlay/Overlay.css.ts +75 -38
  220. package/src/overlays/overlay/Overlay.tsx +43 -26
  221. package/src/overlays/overlaysActor.ts +1 -1
  222. package/src/overlays/relationship-details/RelationshipDetails.tsx +4 -4
  223. package/src/overlays/relationship-details/_types.ts +2 -1
  224. package/src/overlays/relationship-details/custom/nodeTypes.tsx +4 -0
  225. package/src/overlays/relationship-details/layout-to-xyflow.ts +1 -0
  226. package/src/overlays/relationship-details/layout.ts +3 -1
  227. package/src/overlays/relationships-browser/SelectElement.tsx +1 -1
  228. package/src/overlays/relationships-browser/_types.ts +2 -1
  229. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +4 -0
  230. package/src/overlays/relationships-browser/layout.ts +12 -7
  231. package/src/overlays/relationships-browser/useViewToNodesEdges.ts +4 -4
  232. package/src/search/Search.tsx +237 -0
  233. package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.css.ts +0 -29
  234. package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.tsx +24 -22
  235. package/src/search/components/PickView.tsx +140 -0
  236. package/src/search/components/SearchByTags.tsx +109 -0
  237. package/src/{likec4diagram/ui/search → search/components}/SearchInput.tsx +63 -36
  238. package/src/{likec4diagram/ui/search → search/components}/ViewsColum.tsx +17 -18
  239. package/src/{likec4diagram/ui/search → search/components}/_shared.css.ts +26 -37
  240. package/src/{likec4diagram/ui/search/LikeC4Search.css.ts → search/components/styles.css.ts} +9 -36
  241. package/src/{likec4diagram/ui/search → search/components}/utils.ts +7 -0
  242. package/src/search/hooks.ts +41 -0
  243. package/src/search/searchActor.ts +99 -0
  244. package/src/state/DiagramActorProvider.tsx +36 -25
  245. package/src/state/assign.ts +10 -10
  246. package/src/state/diagram-machine.ts +115 -52
  247. package/src/state/syncManualLayoutActor.ts +1 -1
  248. package/src/state/types.ts +2 -0
  249. package/src/state/utils.ts +4 -0
  250. package/dist/base/types.js +0 -54
  251. package/dist/likec4diagram/ui/search/ElementsColumn.d.ts +0 -1
  252. package/dist/likec4diagram/ui/search/LikeC4Search.css.js +0 -87
  253. package/dist/likec4diagram/ui/search/LikeC4Search.d.ts +0 -2
  254. package/dist/likec4diagram/ui/search/LikeC4Search.js +0 -267
  255. package/dist/likec4diagram/ui/search/SearchInput.d.ts +0 -1
  256. package/dist/likec4diagram/ui/search/state.d.ts +0 -19
  257. package/dist/likec4diagram/ui/search/state.js +0 -63
  258. package/src/likec4diagram/ui/search/LikeC4Search.tsx +0 -301
  259. package/src/likec4diagram/ui/search/state.ts +0 -78
  260. /package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.d.ts +0 -0
  261. /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.d.ts +0 -0
  262. /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.js +0 -0
  263. /package/dist/{likec4diagram/ui/search → search/components}/_shared.css.d.ts +0 -0
  264. /package/src/{likec4diagram/ui/search → search/components}/ViewsColumn.css.ts +0 -0
@@ -1,7 +1,2 @@
1
- import { CustomColorDefinitions } from '@likec4/core';
2
- import { NamedExoticComponent } from 'react';
3
- interface LikeC4CustomColorsProperties {
4
- customColors: CustomColorDefinitions;
5
- }
6
- export declare const LikeC4CustomColors: NamedExoticComponent<LikeC4CustomColorsProperties>;
7
- export {};
1
+ import { MemoExoticComponent } from 'react';
2
+ export declare const LikeC4CustomColors: MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
@@ -1,9 +1,10 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
2
  import '@likec4/core';
3
3
  import { useMantineStyleNonce } from '@mantine/core';
4
- import { deepEqual } from 'fast-equals';
5
- import { memo } from 'react';
6
- import { entries } from 'remeda';
4
+ import { memo, useState } from 'react';
5
+ import { isEmpty, entries } from 'remeda';
6
+ import { useLikeC4Specification } from './likec4model/useLikeC4Model.js';
7
+ import { useUpdateEffect } from './hooks/useUpdateEffect.js';
7
8
 
8
9
  function toStyle(name, colors) {
9
10
  const darken = (color) => `color-mix(in srgb, ${color} 80%, black)`;
@@ -24,11 +25,21 @@ function toStyle(name, colors) {
24
25
  }
25
26
  `;
26
27
  }
27
- const LikeC4CustomColors = memo(({ customColors }) => {
28
- const styles = entries(customColors).map(([name, color]) => toStyle(name, color)).join("\n");
28
+ function generateCustomColorStyles(customColors) {
29
+ return entries(customColors).map(([name, color]) => toStyle(name, color)).join("\n").trim();
30
+ }
31
+ const LikeC4CustomColors = memo(() => {
32
+ const customColors = useLikeC4Specification().customColors ?? {};
33
+ const [styles, setStyles] = useState(() => generateCustomColorStyles(customColors));
34
+ useUpdateEffect(() => {
35
+ setStyles(generateCustomColorStyles(customColors));
36
+ }, [customColors]);
29
37
  const nonce = useMantineStyleNonce()?.();
38
+ if (isEmpty(customColors)) {
39
+ return null;
40
+ }
30
41
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("style", { type: "text/css", dangerouslySetInnerHTML: { __html: styles }, nonce }) });
31
- }, deepEqual);
42
+ });
32
43
  LikeC4CustomColors.displayName = "LikeC4CustomColors";
33
44
 
34
45
  export { LikeC4CustomColors };
@@ -1,4 +1,5 @@
1
+ import { Any } from '@likec4/core/types';
1
2
  import { PropsWithChildren } from 'react';
2
3
  import { LikeC4DiagramEventHandlers, LikeC4DiagramProperties } from './LikeC4Diagram.props';
3
- export type LikeC4DiagramProps = PropsWithChildren<LikeC4DiagramProperties & LikeC4DiagramEventHandlers>;
4
- export declare function LikeC4Diagram({ onCanvasClick, onCanvasContextMenu, onCanvasDblClick, onEdgeClick, onChange, onEdgeContextMenu, onNavigateTo, onNodeClick, onNodeContextMenu, onOpenSource, onBurgerMenuClick, view, className, fitView, fitViewPadding, readonly, pannable, zoomable, background, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, controls, showDiagramTitle, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, renderControls, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps): import("react/jsx-runtime").JSX.Element;
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, fitView, fitViewPadding, readonly, pannable, zoomable, background, enableElementTags, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, controls, showDiagramTitle, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, renderControls, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,11 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { ReactFlowProvider } from '@xyflow/react';
3
3
  import { useRef } from 'react';
4
- import { isEmpty } from 'remeda';
5
4
  import { ControlsCustomLayoutProvider } from './context/ControlsCustomLayout.js';
6
5
  import { ReduceGraphicsContext } from './context/ReduceGraphics.js';
7
6
  import { LikeC4CustomColors } from './LikeC4CustomColors.js';
8
7
  import { LikeC4DiagramXYFlow } from './likec4diagram/DiagramXYFlow.js';
9
8
  import { DiagramActorProvider } from './state/DiagramActorProvider.js';
10
- import { useLikeC4Model } from './likec4model/useLikeC4Model.js';
11
9
  import { EnsureMantine } from './context/EnsureMantine.js';
12
10
  import { FramerMotionConfig } from './context/FramerMotionConfig.js';
13
11
  import { IconRendererProvider } from './context/IconRenderer.js';
@@ -35,6 +33,7 @@ function LikeC4Diagram({
35
33
  pannable = true,
36
34
  zoomable = true,
37
35
  background = "dots",
36
+ enableElementTags = true,
38
37
  enableFocusMode = false,
39
38
  enableElementDetails = false,
40
39
  enableRelationshipDetails = enableElementDetails,
@@ -58,9 +57,7 @@ function LikeC4Diagram({
58
57
  renderNodes,
59
58
  children
60
59
  }) {
61
- const hasLikec4model = !!useLikeC4Model();
62
60
  const initialRef = useRef(null);
63
- const isDynamicView = view.__ === "dynamic";
64
61
  if (initialRef.current == null) {
65
62
  initialRef.current = {
66
63
  defaultEdges: [],
@@ -87,13 +84,13 @@ function LikeC4Diagram({
87
84
  enableRelationshipBrowser,
88
85
  enableSearch,
89
86
  enableNavigationButtons: showNavigationButtons && !!onNavigateTo,
90
- enableDynamicViewWalkthrough: isDynamicView && enableDynamicViewWalkthrough,
87
+ enableDynamicViewWalkthrough: view._type === "dynamic" && enableDynamicViewWalkthrough,
91
88
  enableEdgeEditing: experimentalEdgeEditing,
92
89
  enableNotations: showNotations,
93
90
  enableVscode: !!onOpenSource,
94
91
  enableControls: controls,
95
92
  enableViewTitle: showDiagramTitle,
96
- enableLikeC4Model: hasLikec4model
93
+ enableElementTags
97
94
  },
98
95
  children: /* @__PURE__ */ jsx(
99
96
  DiagramEventHandlers,
@@ -112,7 +109,7 @@ function LikeC4Diagram({
112
109
  onBurgerMenuClick
113
110
  },
114
111
  children: /* @__PURE__ */ jsx(ReduceGraphicsContext, { reduceGraphics: isReducedGraphicsMode, children: /* @__PURE__ */ jsxs(RootContainer, { className, reduceGraphics: isReducedGraphicsMode, children: [
115
- !isEmpty(view.customColorDefinitions) && /* @__PURE__ */ jsx(LikeC4CustomColors, { customColors: view.customColorDefinitions }),
112
+ /* @__PURE__ */ jsx(LikeC4CustomColors, {}),
116
113
  /* @__PURE__ */ jsx(
117
114
  ReactFlowProvider,
118
115
  {
@@ -121,13 +118,12 @@ function LikeC4Diagram({
121
118
  children: /* @__PURE__ */ jsx(
122
119
  DiagramActorProvider,
123
120
  {
124
- input: {
125
- view,
126
- pannable,
127
- zoomable,
128
- nodesSelectable,
129
- fitViewPadding
130
- },
121
+ view,
122
+ zoomable,
123
+ pannable,
124
+ fitViewPadding,
125
+ nodesSelectable,
126
+ where: where ?? null,
131
127
  children: /* @__PURE__ */ jsx(ControlsCustomLayoutProvider, { value: renderControls ?? null, children: /* @__PURE__ */ jsx(
132
128
  LikeC4DiagramXYFlow,
133
129
  {
@@ -1,23 +1,24 @@
1
- import { DiagramEdge, DiagramNode, DiagramView, Fqn, RelationId, ViewChange, ViewId, WhereOperator } from '@likec4/core';
1
+ import { Any, DiagramEdge, DiagramNode, LayoutedView, ViewChange, WhereOperator } from '@likec4/core/types';
2
2
  import { ReactFlowProps as XYFlowProps } from '@xyflow/react';
3
3
  import { MouseEvent as ReactMouseEvent, ReactNode } from 'react';
4
+ import { SetRequired } from 'type-fest';
4
5
  import { ControlsCustomLayout } from './context/ControlsCustomLayout';
5
6
  import { CustomNodes } from './custom/customNodes';
7
+ import type * as aux from '@likec4/core/types/aux';
6
8
  export type { CustomNodes, WhereOperator };
7
- export type DiagramNodeWithNavigate<ID = ViewId> = Omit<DiagramNode, 'navigateTo'> & {
8
- navigateTo: ID;
9
- };
9
+ export type DiagramNodeWithNavigate<A extends Any> = SetRequired<DiagramNode<A>, 'navigateTo'>;
10
10
  type ElementIconRendererProps = {
11
11
  node: {
12
12
  id: string;
13
13
  title: string;
14
14
  icon?: string | null | undefined;
15
15
  };
16
+ className?: string;
16
17
  };
17
18
  export type ElementIconRenderer = (props: ElementIconRendererProps) => ReactNode;
18
- export type OnNavigateTo<ID = ViewId> = (to: ID, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<ID>) => void;
19
- export type OnNodeClick = (node: DiagramNode, event: ReactMouseEvent) => void;
20
- export type OnEdgeClick = (edge: DiagramEdge, event: ReactMouseEvent) => void;
19
+ export type OnNavigateTo<A extends Any> = (to: aux.ViewId<A>, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<A>) => void;
20
+ export type OnNodeClick<A extends Any> = (node: DiagramNode<A>, event: ReactMouseEvent) => void;
21
+ export type OnEdgeClick<A extends Any> = (edge: DiagramEdge<A>, event: ReactMouseEvent) => void;
21
22
  /**
22
23
  * On pane/canvas click (not on any node or edge)
23
24
  */
@@ -30,8 +31,8 @@ export type LikeC4ColorScheme = 'light' | 'dark';
30
31
  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'>;
31
32
  export type PaddingUnit = 'px' | '%';
32
33
  export type PaddingWithUnit = `${number}${PaddingUnit}` | number;
33
- export interface LikeC4DiagramProperties {
34
- view: DiagramView;
34
+ export interface LikeC4DiagramProperties<A extends aux.Any> {
35
+ view: LayoutedView<A>;
35
36
  className?: string | undefined;
36
37
  /**
37
38
  * Enable/disable panning
@@ -125,6 +126,11 @@ export interface LikeC4DiagramProperties {
125
126
  * @default false
126
127
  */
127
128
  enableDynamicViewWalkthrough?: boolean | undefined;
129
+ /**
130
+ * Display element tags in the bottom left corner
131
+ * @default true
132
+ */
133
+ enableElementTags?: boolean | undefined;
128
134
  /**
129
135
  * Experimental feature to enable edge editing
130
136
  * @default false
@@ -152,33 +158,33 @@ export interface LikeC4DiagramProperties {
152
158
  /**
153
159
  * Dynamic filter, applies both to nodes and edges
154
160
  */
155
- where?: WhereOperator<string, string> | undefined;
161
+ where?: WhereOperator<A> | undefined;
156
162
  /**
157
163
  * Override ReactFlow props
158
164
  */
159
165
  reactFlowProps?: OverrideReactFlowProps | undefined;
160
166
  }
161
- export type OpenSourceParams = {
162
- element: Fqn;
167
+ export type OpenSourceParams<A extends aux.Any = aux.Any> = {
168
+ element: aux.Fqn<A>;
163
169
  property?: string;
164
170
  } | {
165
- relation: RelationId;
171
+ relation: aux.RelationId;
166
172
  } | {
167
- deployment: Fqn;
173
+ deployment: aux.DeploymentFqn<A>;
168
174
  property?: string;
169
175
  } | {
170
- view: ViewId;
176
+ view: aux.StrictViewId<A>;
171
177
  };
172
- export interface LikeC4DiagramEventHandlers {
178
+ export interface LikeC4DiagramEventHandlers<A extends aux.Any> {
173
179
  onChange?: OnChange | null | undefined;
174
- onNavigateTo?: OnNavigateTo | null | undefined;
175
- onNodeClick?: OnNodeClick | null | undefined;
176
- onNodeContextMenu?: OnNodeClick | null | undefined;
180
+ onNavigateTo?: OnNavigateTo<A> | null | undefined;
181
+ onNodeClick?: OnNodeClick<A> | null | undefined;
182
+ onNodeContextMenu?: OnNodeClick<A> | null | undefined;
177
183
  onCanvasContextMenu?: OnCanvasClick | null | undefined;
178
- onEdgeClick?: OnEdgeClick | null | undefined;
179
- onEdgeContextMenu?: OnEdgeClick | null | undefined;
184
+ onEdgeClick?: OnEdgeClick<A> | null | undefined;
185
+ onEdgeContextMenu?: OnEdgeClick<A> | null | undefined;
180
186
  onCanvasClick?: OnCanvasClick | null | undefined;
181
187
  onCanvasDblClick?: OnCanvasClick | null | undefined;
182
188
  onBurgerMenuClick?: null | undefined | (() => void);
183
- onOpenSource?: null | undefined | ((params: OpenSourceParams) => void);
189
+ onOpenSource?: null | undefined | ((params: OpenSourceParams<A>) => void);
184
190
  }
@@ -1,9 +1,10 @@
1
- import { AnyAux, LikeC4Model } from '@likec4/core/model';
1
+ import { LikeC4Model } from '@likec4/core/model';
2
+ import { Any, Unknown } from '@likec4/core/types';
2
3
  import { PropsWithChildren } from 'react';
3
- export type LikeC4ModelProviderProps = PropsWithChildren<{
4
- likec4model: LikeC4Model<AnyAux>;
4
+ export type LikeC4ModelProviderProps<A extends Any> = PropsWithChildren<{
5
+ likec4model: LikeC4Model<A>;
5
6
  }>;
6
7
  /**
7
8
  * Ensures LikeC4Model context
8
9
  */
9
- export declare function LikeC4ModelProvider({ children, likec4model, }: LikeC4ModelProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function LikeC4ModelProvider<A extends Any = Unknown>({ children, likec4model, }: LikeC4ModelProviderProps<A>): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
1
  import { LikeC4DiagramProperties } from './LikeC4Diagram.props';
2
- export type StaticLikeC4DiagramProps = Pick<LikeC4DiagramProperties, 'view' | 'className' | 'fitView' | 'fitViewPadding' | 'background' | 'enableElementDetails' | 'enableRelationshipDetails' | 'enableRelationshipBrowser' | 'reduceGraphics' | 'initialWidth' | 'initialHeight' | 'renderIcon' | 'renderNodes' | 'where'>;
3
- export declare function StaticLikeC4Diagram({ view, fitView, fitViewPadding, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, background, ...rest }: StaticLikeC4DiagramProps): import("react/jsx-runtime").JSX.Element;
2
+ import type * as aux from '@likec4/core/types/aux';
3
+ export type StaticLikeC4DiagramProps<A extends aux.Any> = Pick<LikeC4DiagramProperties<A>, 'view' | 'className' | 'fitView' | 'fitViewPadding' | 'background' | 'enableElementDetails' | 'enableRelationshipDetails' | 'enableRelationshipBrowser' | 'enableElementTags' | 'reduceGraphics' | 'initialWidth' | 'initialHeight' | 'renderIcon' | 'renderNodes' | 'where'>;
4
+ export declare function StaticLikeC4Diagram<A extends aux.Any = aux.UnknownLayouted>({ view, fitView, fitViewPadding, enableRelationshipDetails, enableRelationshipBrowser, background, ...rest }: StaticLikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,6 @@ function StaticLikeC4Diagram({
5
5
  view,
6
6
  fitView = true,
7
7
  fitViewPadding = "8px",
8
- enableElementDetails = false,
9
8
  enableRelationshipDetails = false,
10
9
  enableRelationshipBrowser = enableRelationshipDetails,
11
10
  background = "transparent",
@@ -24,7 +23,7 @@ function StaticLikeC4Diagram({
24
23
  background,
25
24
  showDiagramTitle: false,
26
25
  showNotations: false,
27
- enableElementDetails,
26
+ enableElementDetails: false,
28
27
  enableRelationshipDetails,
29
28
  enableRelationshipBrowser,
30
29
  enableDynamicViewWalkthrough: false,
@@ -34,6 +33,7 @@ function StaticLikeC4Diagram({
34
33
  enableSearch: false,
35
34
  nodesSelectable: false,
36
35
  nodesDraggable: false,
36
+ enableElementTags: false,
37
37
  ...rest
38
38
  }
39
39
  );
@@ -8,7 +8,7 @@ import { useIsZoomTooSmall, useXYStoreApi } from '../hooks/useXYFlow.js';
8
8
  import { stopPropagation } from '../utils/xyflow.js';
9
9
  import { Background } from './Background.js';
10
10
  import { MinZoom, MaxZoom } from './const.js';
11
- import { Base } from './types.js';
11
+ import { setHovered } from './types.Base.js';
12
12
 
13
13
  const cssTransparentBg = css({
14
14
  background: "transparent !important",
@@ -121,7 +121,7 @@ const BaseXYFlow = ({
121
121
  onNodesChange([{
122
122
  id: node.id,
123
123
  type: "replace",
124
- item: Base.setHovered(node, true)
124
+ item: setHovered(node, true)
125
125
  }]);
126
126
  }
127
127
  }),
@@ -130,7 +130,7 @@ const BaseXYFlow = ({
130
130
  onNodesChange([{
131
131
  id: node.id,
132
132
  type: "replace",
133
- item: Base.setHovered(node, false)
133
+ item: setHovered(node, false)
134
134
  }]);
135
135
  }
136
136
  }),
@@ -139,7 +139,7 @@ const BaseXYFlow = ({
139
139
  onEdgesChange([{
140
140
  id: edge.id,
141
141
  type: "replace",
142
- item: Base.setHovered(edge, true)
142
+ item: setHovered(edge, true)
143
143
  }]);
144
144
  }
145
145
  }),
@@ -148,7 +148,7 @@ const BaseXYFlow = ({
148
148
  onEdgesChange([{
149
149
  id: edge.id,
150
150
  type: "replace",
151
- item: Base.setHovered(edge, false)
151
+ item: setHovered(edge, false)
152
152
  }]);
153
153
  }
154
154
  }),
@@ -5,4 +5,4 @@ export declare const ZIndexes: {
5
5
  readonly Max: 8;
6
6
  };
7
7
  export declare const MinZoom = 0.05;
8
- export declare const MaxZoom = 2;
8
+ export declare const MaxZoom = 3;
@@ -5,6 +5,6 @@ const ZIndexes = {
5
5
  Max: 8
6
6
  };
7
7
  const MinZoom = 0.05;
8
- const MaxZoom = 2;
8
+ const MaxZoom = 3;
9
9
 
10
10
  export { MaxZoom, MinZoom, ZIndexes };
@@ -1,2 +1,3 @@
1
1
  export { BaseXYFlow, type BaseXYFlowProps } from './BaseXYFlow';
2
- export { Base, type EdgeProps, type NodeProps, type NonOptional, type ReactFlowEdge, type ReactFlowNode, } from './types';
2
+ export { type EdgeProps, type NodeProps, type NonOptional, type ReactFlowEdge, type ReactFlowNode, } from './types';
3
+ export * as Base from './types.Base';
@@ -1,7 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { cx, css } from '@likec4/styles/css';
3
+ import { Box } from '@likec4/styles/jsx';
3
4
  import { actionBtn } from '@likec4/styles/recipes';
4
- import { Box, ActionIcon } from '@mantine/core';
5
+ import { ActionIcon } from '@mantine/core';
5
6
  import { useDebouncedValue } from '@mantine/hooks';
6
7
  import { IconZoomScan } from '@tabler/icons-react';
7
8
  import * as m from 'motion/react-m';
@@ -1,7 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { cx, css } from '@likec4/styles/css';
3
+ import { Box } from '@likec4/styles/jsx';
3
4
  import { actionBtn } from '@likec4/styles/recipes';
4
- import { Box, ActionIcon } from '@mantine/core';
5
+ import { ActionIcon } from '@mantine/core';
5
6
  import { useDebouncedValue } from '@mantine/hooks';
6
7
  import { IconId } from '@tabler/icons-react';
7
8
  import * as m from 'motion/react-m';
@@ -1,4 +1,4 @@
1
- import { DiagramNode } from '@likec4/core';
1
+ import { DiagramNode } from '@likec4/core/types';
2
2
  import { NodeProps } from '../../types';
3
3
  type Data = Pick<DiagramNode, 'color' | 'title' | 'icon' | 'style'>;
4
4
  type CompoundTitleProps = NodeProps<Data>;
@@ -1,6 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { cx, css } from '@likec4/styles/css';
3
- import { Box, Text } from '@mantine/core';
3
+ import { Box } from '@likec4/styles/jsx';
4
+ import { Text } from '@mantine/core';
4
5
  import { IconRenderer } from '../../../context/IconRenderer.js';
5
6
 
6
7
  const titleContainer = css({
@@ -1,4 +1,4 @@
1
- import { DiagramEdge } from '@likec4/core';
1
+ import { DiagramEdge } from '@likec4/core/types';
2
2
  import { PropsWithChildren } from 'react';
3
3
  import { UndefinedOnPartialDeep } from 'type-fest';
4
4
  import { EdgeProps } from '../../types';
@@ -57,6 +57,7 @@ const labelsva = sva({
57
57
  slots: ["root", "stepNumber", "labelContents", "labelText", "labelTechnology"],
58
58
  base: {
59
59
  root: {
60
+ pointerEvents: "all",
60
61
  fontFamily: "likec4.relation",
61
62
  padding: "3px 5px 5px 5px",
62
63
  display: "flex",
@@ -1,11 +1,11 @@
1
- import { DiagramEdge } from '@likec4/core';
1
+ import { DiagramEdge } from '@likec4/core/types';
2
2
  import { BoxProps } from '@likec4/styles/jsx';
3
- import { PropsWithChildren } from 'react';
3
+ import { PropsWithChildren, ForwardRefExoticComponent, RefAttributes } from 'react';
4
4
  import { UndefinedOnPartialDeep } from 'type-fest';
5
5
  import { EdgeProps } from '../../types';
6
6
  type Data = UndefinedOnPartialDeep<Pick<DiagramEdge, 'label' | 'technology'>>;
7
7
  type EdgeLabelProps = PropsWithChildren<BoxProps & {
8
8
  edgeProps: EdgeProps<Data>;
9
9
  }>;
10
- export declare function EdgeLabel({ edgeProps: { id, data: { label, technology, }, }, className, style, children, ...rest }: EdgeLabelProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare const EdgeLabel: ForwardRefExoticComponent<Omit<EdgeLabelProps, "ref"> & RefAttributes<HTMLDivElement>>;
11
11
  export {};
@@ -3,10 +3,11 @@ import { isStepEdgeId, extractStep } from '@likec4/core';
3
3
  import { cx } from '@likec4/styles/css';
4
4
  import { Box } from '@likec4/styles/jsx';
5
5
  import { Text } from '@mantine/core';
6
+ import { forwardRef } from 'react';
6
7
  import { isTruthy } from 'remeda';
7
8
  import { labelsva } from './EdgeLabel.css.js';
8
9
 
9
- function EdgeLabel({
10
+ const EdgeLabel = forwardRef(({
10
11
  edgeProps: {
11
12
  id,
12
13
  data: {
@@ -18,12 +19,12 @@ function EdgeLabel({
18
19
  style,
19
20
  children,
20
21
  ...rest
21
- }) {
22
+ }, ref) => {
22
23
  const stepNum = isStepEdgeId(id) ? extractStep(id) : null;
23
24
  const classes = labelsva({
24
25
  isStepEdge: stepNum !== null
25
26
  });
26
- return /* @__PURE__ */ jsxs(Box, { className: cx(classes.root, className), ...rest, children: [
27
+ return /* @__PURE__ */ jsxs(Box, { ref, className: cx(classes.root, className), ...rest, children: [
27
28
  stepNum !== null && /* @__PURE__ */ jsx(Box, { className: classes.stepNumber, children: stepNum }),
28
29
  /* @__PURE__ */ jsxs(Box, { className: classes.labelContents, children: [
29
30
  isTruthy(label) && /* @__PURE__ */ jsx(Text, { component: "div", className: classes.labelText, lineClamp: 5, children: label }),
@@ -31,6 +32,7 @@ function EdgeLabel({
31
32
  children
32
33
  ] })
33
34
  ] });
34
- }
35
+ });
36
+ EdgeLabel.displayName = "EdgeLabel";
35
37
 
36
38
  export { EdgeLabel };
@@ -1,4 +1,4 @@
1
- import { DiagramEdge } from '@likec4/core';
1
+ import { DiagramEdge } from '@likec4/core/types';
2
2
  import { HTMLAttributes } from 'react';
3
3
  import { UndefinedOnPartialDeep } from 'type-fest';
4
4
  import { EdgeProps } from '../../types';
@@ -1,4 +1,4 @@
1
- import { RelationshipArrowType } from '@likec4/core';
1
+ import { RelationshipArrowType } from '@likec4/core/types';
2
2
  import { SVGProps } from 'react';
3
3
  export declare const EdgeMarkers: {
4
4
  Arrow: (props: SVGProps<SVGMarkerElement>) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { DiagramEdge } from '@likec4/core';
1
+ import { DiagramEdge } from '@likec4/core/types';
2
2
  import { PointerEventHandler, ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { UndefinedOnPartialDeep } from 'type-fest';
4
4
  import { EdgeProps } from '../../types';
@@ -1,7 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { css, cx } from '@likec4/styles/css';
3
+ import { Box } from '@likec4/styles/jsx';
3
4
  import { actionBtn } from '@likec4/styles/recipes';
4
- import { Box, ActionIcon } from '@mantine/core';
5
+ import { ActionIcon } from '@mantine/core';
5
6
  import { useId } from '@mantine/hooks';
6
7
  import * as m from 'motion/react-m';
7
8
  import { useIsZoomTooSmall } from '../../../hooks/useXYFlow.js';
@@ -9,11 +10,12 @@ import { stopPropagation } from '../../../utils/xyflow.js';
9
10
 
10
11
  const container = css({
11
12
  position: "absolute",
12
- top: `calc(100% - 28px)`,
13
- // transform: 'translateY(-100%)',
14
- left: 0,
15
- width: "100%",
16
- minHeight: "28px",
13
+ zIndex: 1,
14
+ top: `calc(100% - 30px)`,
15
+ transform: "translateX(-50%)",
16
+ left: `50%`,
17
+ width: "auto",
18
+ minHeight: "30px",
17
19
  display: "flex",
18
20
  justifyContent: "center",
19
21
  alignItems: "center",
@@ -40,14 +42,13 @@ function ElementActionButtons({
40
42
  return null;
41
43
  }
42
44
  return /* @__PURE__ */ jsx(Box, { className: container, children: /* @__PURE__ */ jsx(
43
- Box,
45
+ m.div,
44
46
  {
45
- component: m.div,
46
47
  layoutRoot: true,
47
48
  initial: false,
48
49
  style: {
49
50
  originY: 0,
50
- gap: "8px"
51
+ gap: 6
51
52
  },
52
53
  animate: {
53
54
  opacity: isHovered || selected ? 1 : 0.75,
@@ -1,7 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { cx, css } from '@likec4/styles/css';
3
+ import { Box } from '@likec4/styles/jsx';
3
4
  import { actionBtn } from '@likec4/styles/recipes';
4
- import { Box, ActionIcon } from '@mantine/core';
5
+ import { ActionIcon } from '@mantine/core';
5
6
  import { useId } from '@mantine/hooks';
6
7
  import { IconId } from '@tabler/icons-react';
7
8
  import * as m from 'motion/react-m';
@@ -1,4 +1,4 @@
1
- import { ElementShape, ElementStyle } from '@likec4/core';
1
+ import { ElementShape, ElementStyle } from '@likec4/core/types';
2
2
  export declare function cylinderSVGPath(diameter: number, height: number, tilt?: number): {
3
3
  path: string;
4
4
  ry: number;
@@ -0,0 +1,14 @@
1
+ import { BoxProps } from '@likec4/styles/jsx';
2
+ import { NodeProps } from '../../types';
3
+ import { ForwardRefExoticComponent, RefAttributes, MemoExoticComponent } from 'react';
4
+ export type ElementTagProps = {
5
+ tag: string;
6
+ } & Omit<BoxProps, 'children'>;
7
+ export declare const ElementTag: ForwardRefExoticComponent<Omit<ElementTagProps, "ref"> & RefAttributes<HTMLDivElement>>;
8
+ type Data = {
9
+ tags: readonly string[] | null | undefined;
10
+ width: number;
11
+ };
12
+ type ElementTagsProps = NodeProps<Data>;
13
+ export declare const ElementTags: MemoExoticComponent<({ id, data: { tags, width } }: ElementTagsProps) => import("react/jsx-runtime").JSX.Element | null>;
14
+ export {};