@likec4/diagram 1.24.1 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/LikeC4Diagram.css.d.ts +0 -2
  2. package/dist/LikeC4Diagram.css.js +0 -1
  3. package/dist/LikeC4Diagram.d.ts +3 -2
  4. package/dist/LikeC4Diagram.js +73 -63
  5. package/dist/LikeC4Diagram.props.d.ts +5 -0
  6. package/dist/StaticLikeC4Diagram.d.ts +1 -1
  7. package/dist/base/BaseXYFlow.d.ts +1 -1
  8. package/dist/base/BaseXYFlow.js +19 -25
  9. package/dist/base/const.d.ts +3 -3
  10. package/dist/base/const.js +3 -3
  11. package/dist/base/example/custom.d.ts +2 -2
  12. package/dist/base/primitives/compound/CompoundActionButton.css.d.ts +0 -1
  13. package/dist/base/primitives/compound/CompoundActionButton.css.js +1 -4
  14. package/dist/base/primitives/compound/CompoundActionButton.js +9 -15
  15. package/dist/base/primitives/compound/CompoundDetailsButton.css.js +0 -3
  16. package/dist/base/primitives/compound/CompoundDetailsButton.js +8 -14
  17. package/dist/base/primitives/compound/CompoundNodeContainer.css.js +0 -2
  18. package/dist/base/primitives/compound/CompoundNodeContainer.js +3 -3
  19. package/dist/base/primitives/compound/CompoundTitle.css.js +0 -1
  20. package/dist/base/primitives/compound/CompoundTitle.js +1 -1
  21. package/dist/base/primitives/customEdge.d.ts +3 -7
  22. package/dist/base/primitives/customNode.d.ts +1 -4
  23. package/dist/base/primitives/customNode.js +1 -1
  24. package/dist/base/primitives/edge/EdgeContainer.d.ts +2 -1
  25. package/dist/base/primitives/edge/EdgeContainer.js +20 -17
  26. package/dist/base/primitives/edge/EdgeLabel.css.js +0 -1
  27. package/dist/base/primitives/edge/EdgeLabel.js +5 -8
  28. package/dist/base/primitives/edge/EdgePath.d.ts +2 -2
  29. package/dist/base/primitives/edge/EdgePath.js +23 -4
  30. package/dist/base/primitives/edge/edge.css.d.ts +1 -0
  31. package/dist/base/primitives/edge/edge.css.js +1 -2
  32. package/dist/base/primitives/element/ElementActionButtons.css.js +0 -1
  33. package/dist/base/primitives/element/ElementDetailsButton.css.js +0 -3
  34. package/dist/base/primitives/element/ElementDetailsButton.js +9 -15
  35. package/dist/base/primitives/element/ElementNodeContainer.css.js +0 -2
  36. package/dist/base/primitives/element/ElementNodeContainer.js +1 -3
  37. package/dist/base/primitives/element/ElementShape.css.js +1 -1
  38. package/dist/base/primitives/element/ElementTitle.css.d.ts +2 -0
  39. package/dist/base/primitives/element/ElementTitle.css.js +2 -4
  40. package/dist/base/primitives/element/ElementTitle.js +7 -7
  41. package/dist/components/SearchControl.css.d.ts +1 -0
  42. package/dist/components/SearchControl.css.js +3 -3
  43. package/dist/components/SearchControl.js +3 -3
  44. package/dist/context/ControlsCustomLayout.d.ts +13 -0
  45. package/dist/context/ControlsCustomLayout.js +10 -0
  46. package/dist/context/DiagramFeatures.js +15 -14
  47. package/dist/context/ReduceGraphics.d.ts +13 -0
  48. package/dist/context/ReduceGraphics.js +61 -0
  49. package/dist/context/RootContainer.d.ts +2 -1
  50. package/dist/context/RootContainer.js +2 -3
  51. package/dist/diagram.css +1 -1
  52. package/dist/hooks/useDiagram.d.ts +155 -756
  53. package/dist/hooks/useDiagram.js +6 -1
  54. package/dist/hooks/useReducedGraphics.d.ts +1 -0
  55. package/dist/index.d.ts +1 -0
  56. package/dist/index.js +1 -1
  57. package/dist/likec4diagram/DiagramXYFlow.d.ts +7 -0
  58. package/dist/likec4diagram/{XYFlow.js → DiagramXYFlow.js} +15 -6
  59. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +2 -2
  60. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +30 -25
  61. package/dist/likec4diagram/custom/edges/edges.css.d.ts +1 -0
  62. package/dist/likec4diagram/custom/edges/edges.css.js +5 -3
  63. package/dist/likec4diagram/custom/index.d.ts +11 -3
  64. package/dist/likec4diagram/custom/index.js +10 -1
  65. package/dist/likec4diagram/custom/nodes/nodeTypes.d.ts +5 -7
  66. package/dist/likec4diagram/custom/nodes/nodeTypes.js +60 -58
  67. package/dist/likec4diagram/ui/controls/Controls.js +110 -71
  68. package/dist/likec4diagram/ui/controls/NavigationButtons.js +14 -22
  69. package/dist/likec4diagram/ui/controls/_shared.js +1 -1
  70. package/dist/likec4diagram/ui/controls/styles.css.js +0 -2
  71. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.d.ts +0 -1
  72. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.js +3 -7
  73. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +2 -3
  74. package/dist/likec4diagram/ui/notation/NotationPanel.css.d.ts +1 -0
  75. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +6 -4
  76. package/dist/likec4diagram/ui/notation/NotationPanel.js +2 -2
  77. package/dist/likec4diagram/ui/search/LikeC4Search.css.js +0 -2
  78. package/dist/likec4diagram/ui/search/SearchInput.js +1 -1
  79. package/dist/likec4diagram/ui/search/ViewsColum.js +1 -2
  80. package/dist/likec4diagram/ui/search/ViewsColumn.css.d.ts +1 -1
  81. package/dist/likec4diagram/ui/search/ViewsColumn.css.js +2 -0
  82. package/dist/likec4diagram/ui/search/_shared.css.d.ts +3 -1
  83. package/dist/likec4model/useLikeC4Model.js +0 -1
  84. package/dist/node_modules/.pnpm/@mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/VisuallyHidden/VisuallyHidden.module.css.mjs.vanilla.css.js +1 -0
  85. package/dist/overlays/element-details/ElementDetailsCard.css.d.ts +2 -0
  86. package/dist/overlays/element-details/ElementDetailsCard.css.js +18 -14
  87. package/dist/overlays/element-details/ElementDetailsCard.js +10 -7
  88. package/dist/overlays/overlay/Overlay.css.d.ts +2 -0
  89. package/dist/overlays/overlay/Overlay.css.js +93 -89
  90. package/dist/overlays/overlay/Overlay.js +10 -7
  91. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +2 -2
  92. package/dist/overlays/relationship-details/useLayoutedDetails.js +4 -3
  93. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +2 -2
  94. package/dist/state/assign.js +15 -1
  95. package/dist/state/diagram-machine.d.ts +159 -756
  96. package/dist/state/diagram-machine.js +46 -41
  97. package/dist/state/persistence.js +1 -1
  98. package/dist/theme-vars.css.d.ts +0 -9
  99. package/dist/theme-vars.d.ts +14 -1
  100. package/dist/theme-vars.js +3 -1
  101. package/dist/utils/css.d.ts +1 -0
  102. package/dist/utils/css.js +10 -0
  103. package/package.json +23 -15
  104. package/src/LikeC4Diagram.css.ts +134 -4
  105. package/src/LikeC4Diagram.props.ts +6 -0
  106. package/src/LikeC4Diagram.tsx +25 -15
  107. package/src/StaticLikeC4Diagram.tsx +1 -0
  108. package/src/base/BaseXYFlow.tsx +26 -39
  109. package/src/base/const.ts +3 -3
  110. package/src/base/primitives/compound/CompoundActionButton.css.ts +5 -14
  111. package/src/base/primitives/compound/CompoundActionButton.tsx +10 -14
  112. package/src/base/primitives/compound/CompoundDetailsButton.css.ts +0 -2
  113. package/src/base/primitives/compound/CompoundDetailsButton.tsx +8 -12
  114. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +4 -3
  115. package/src/base/primitives/compound/CompoundNodeContainer.tsx +3 -3
  116. package/src/base/primitives/compound/CompoundTitle.css.ts +2 -2
  117. package/src/base/primitives/customNode.ts +1 -1
  118. package/src/base/primitives/edge/EdgeContainer.tsx +27 -14
  119. package/src/base/primitives/edge/EdgeLabel.css.ts +19 -15
  120. package/src/base/primitives/edge/EdgeLabel.tsx +6 -9
  121. package/src/base/primitives/edge/EdgePath.tsx +38 -14
  122. package/src/base/primitives/edge/edge.css.ts +35 -17
  123. package/src/base/primitives/element/ElementActionButtons.css.ts +1 -1
  124. package/src/base/primitives/element/ElementActionButtons.tsx +0 -1
  125. package/src/base/primitives/element/ElementDetailsButton.css.ts +0 -2
  126. package/src/base/primitives/element/ElementDetailsButton.tsx +9 -13
  127. package/src/base/primitives/element/ElementNodeContainer.css.ts +53 -4
  128. package/src/base/primitives/element/ElementNodeContainer.tsx +1 -3
  129. package/src/base/primitives/element/ElementShape.css.ts +16 -3
  130. package/src/base/primitives/element/ElementTitle.css.ts +4 -1
  131. package/src/base/primitives/element/ElementTitle.tsx +5 -4
  132. package/src/base/primitives/element/vars.css.ts +5 -0
  133. package/src/components/Link.css.ts +1 -1
  134. package/src/components/SearchControl.css.ts +15 -7
  135. package/src/components/SearchControl.tsx +2 -2
  136. package/src/context/ControlsCustomLayout.ts +16 -0
  137. package/src/context/DiagramFeatures.tsx +15 -14
  138. package/src/context/ReduceGraphics.tsx +80 -0
  139. package/src/context/RootContainer.tsx +6 -4
  140. package/src/hooks/useReducedGraphics.ts +1 -0
  141. package/src/index.ts +1 -0
  142. package/src/likec4diagram/{XYFlow.tsx → DiagramXYFlow.tsx} +11 -3
  143. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +32 -21
  144. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +1 -1
  145. package/src/likec4diagram/custom/edges/edges.css.ts +15 -0
  146. package/src/likec4diagram/custom/index.tsx +14 -1
  147. package/src/likec4diagram/custom/nodes/nodeTypes.tsx +61 -59
  148. package/src/likec4diagram/ui/controls/Controls.tsx +102 -61
  149. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +19 -20
  150. package/src/likec4diagram/ui/controls/styles.css.ts +8 -3
  151. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.ts +4 -9
  152. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +1 -2
  153. package/src/likec4diagram/ui/notation/NotationPanel.css.ts +14 -1
  154. package/src/likec4diagram/ui/notation/NotationPanel.tsx +1 -1
  155. package/src/likec4diagram/ui/search/ElementsColumn.css.ts +1 -2
  156. package/src/likec4diagram/ui/search/ElementsColumn.tsx +1 -1
  157. package/src/likec4diagram/ui/search/LikeC4Search.css.ts +1 -3
  158. package/src/likec4diagram/ui/search/SearchInput.tsx +1 -1
  159. package/src/likec4diagram/ui/search/ViewsColum.tsx +1 -2
  160. package/src/likec4diagram/ui/search/ViewsColumn.css.ts +1 -1
  161. package/src/likec4diagram/ui/search/_shared.css.ts +2 -3
  162. package/src/likec4model/useLikeC4Model.ts +1 -1
  163. package/src/overlays/element-details/ElementDetailsCard.css.ts +8 -5
  164. package/src/overlays/element-details/ElementDetailsCard.tsx +11 -7
  165. package/src/overlays/overlay/Overlay.css.ts +11 -7
  166. package/src/overlays/overlay/Overlay.tsx +10 -6
  167. package/src/overlays/relationship-details/RelationshipDetails.tsx +1 -5
  168. package/src/overlays/relationship-details/useLayoutedDetails.ts +4 -4
  169. package/src/state/DiagramActorProvider.tsx +0 -1
  170. package/src/state/assign.ts +15 -1
  171. package/src/state/diagram-machine.ts +45 -38
  172. package/src/state/persistence.ts +1 -1
  173. package/src/theme-vars.css.ts +0 -12
  174. package/src/theme-vars.ts +17 -4
  175. package/src/utils/css.ts +7 -0
  176. package/dist/base/primitives/element/styles.css.js +0 -8
  177. package/dist/globals.css.d.ts +0 -3
  178. package/dist/globals.css.js +0 -5
  179. package/dist/hooks/useIsReducedGraphics.d.ts +0 -4
  180. package/dist/hooks/useIsReducedGraphics.js +0 -8
  181. package/dist/likec4diagram/XYFlow.d.ts +0 -11
  182. package/dist/likec4diagram/ui/search/_shared.css.js +0 -5
  183. package/src/base/primitives/element/styles.css.ts +0 -52
  184. package/src/globals.css.ts +0 -131
  185. package/src/hooks/useIsReducedGraphics.ts +0 -5
  186. /package/dist/base/primitives/element/{styles.css.d.ts → vars.css.d.ts} +0 -0
  187. /package/dist/{node_modules/.pnpm/@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Accordion/Accordion.module.css.mjs.vanilla.css.js → base/primitives/element/vars.css.ts.vanilla.css.js} +0 -0
  188. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Accordion/Accordion.module.css.mjs.vanilla.css.js} +0 -0
  189. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Affix/Affix.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ActionIcon/ActionIcon.module.css.mjs.vanilla.css.js} +0 -0
  190. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Alert/Alert.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Affix/Affix.module.css.mjs.vanilla.css.js} +0 -0
  191. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Anchor/Anchor.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Alert/Alert.module.css.mjs.vanilla.css.js} +0 -0
  192. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/AngleSlider/AngleSlider.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Anchor/Anchor.module.css.mjs.vanilla.css.js} +0 -0
  193. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/AppShell/AppShell.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/AngleSlider/AngleSlider.module.css.mjs.vanilla.css.js} +0 -0
  194. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/AspectRatio/AspectRatio.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/AppShell/AppShell.module.css.mjs.vanilla.css.js} +0 -0
  195. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Avatar/Avatar.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/AspectRatio/AspectRatio.module.css.mjs.vanilla.css.js} +0 -0
  196. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/BackgroundImage/BackgroundImage.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Avatar/Avatar.module.css.mjs.vanilla.css.js} +0 -0
  197. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Badge/Badge.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/BackgroundImage/BackgroundImage.module.css.mjs.vanilla.css.js} +0 -0
  198. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Blockquote/Blockquote.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Badge/Badge.module.css.mjs.vanilla.css.js} +0 -0
  199. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Breadcrumbs/Breadcrumbs.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Blockquote/Blockquote.module.css.mjs.vanilla.css.js} +0 -0
  200. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Burger/Burger.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Breadcrumbs/Breadcrumbs.module.css.mjs.vanilla.css.js} +0 -0
  201. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Button/Button.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Burger/Burger.module.css.mjs.vanilla.css.js} +0 -0
  202. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Card/Card.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Button/Button.module.css.mjs.vanilla.css.js} +0 -0
  203. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Center/Center.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Card/Card.module.css.mjs.vanilla.css.js} +0 -0
  204. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Checkbox/Checkbox.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Center/Center.module.css.mjs.vanilla.css.js} +0 -0
  205. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Checkbox/CheckboxCard/CheckboxCard.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Checkbox/Checkbox.module.css.mjs.vanilla.css.js} +0 -0
  206. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Checkbox/CheckboxCard/CheckboxCard.module.css.mjs.vanilla.css.js} +0 -0
  207. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Chip/Chip.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.css.mjs.vanilla.css.js} +0 -0
  208. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/CloseButton/CloseButton.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Chip/Chip.module.css.mjs.vanilla.css.js} +0 -0
  209. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Code/Code.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/CloseButton/CloseButton.module.css.mjs.vanilla.css.js} +0 -0
  210. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ColorInput/ColorInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Code/Code.module.css.mjs.vanilla.css.js} +0 -0
  211. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ColorPicker/ColorPicker.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ColorInput/ColorInput.module.css.mjs.vanilla.css.js} +0 -0
  212. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ColorSwatch/ColorSwatch.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ColorPicker/ColorPicker.module.css.mjs.vanilla.css.js} +0 -0
  213. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Combobox/Combobox.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ColorSwatch/ColorSwatch.module.css.mjs.vanilla.css.js} +0 -0
  214. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Container/Container.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Combobox/Combobox.module.css.mjs.vanilla.css.js} +0 -0
  215. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Dialog/Dialog.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Container/Container.module.css.mjs.vanilla.css.js} +0 -0
  216. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Divider/Divider.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Dialog/Dialog.module.css.mjs.vanilla.css.js} +0 -0
  217. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Drawer/Drawer.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Divider/Divider.module.css.mjs.vanilla.css.js} +0 -0
  218. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Fieldset/Fieldset.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Drawer/Drawer.module.css.mjs.vanilla.css.js} +0 -0
  219. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Flex/Flex.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Fieldset/Fieldset.module.css.mjs.vanilla.css.js} +0 -0
  220. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/FloatingIndicator/FloatingIndicator.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Flex/Flex.module.css.mjs.vanilla.css.js} +0 -0
  221. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Grid/Grid.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/FloatingIndicator/FloatingIndicator.module.css.mjs.vanilla.css.js} +0 -0
  222. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Group/Group.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Grid/Grid.module.css.mjs.vanilla.css.js} +0 -0
  223. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Image/Image.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Group/Group.module.css.mjs.vanilla.css.js} +0 -0
  224. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Indicator/Indicator.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Image/Image.module.css.mjs.vanilla.css.js} +0 -0
  225. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/InlineInput/InlineInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Indicator/Indicator.module.css.mjs.vanilla.css.js} +0 -0
  226. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Input/Input.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/InlineInput/InlineInput.module.css.mjs.vanilla.css.js} +0 -0
  227. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Kbd/Kbd.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Input/Input.module.css.mjs.vanilla.css.js} +0 -0
  228. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/List/List.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Kbd/Kbd.module.css.mjs.vanilla.css.js} +0 -0
  229. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Loader/Loader.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/List/List.module.css.mjs.vanilla.css.js} +0 -0
  230. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/LoadingOverlay/LoadingOverlay.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Loader/Loader.module.css.mjs.vanilla.css.js} +0 -0
  231. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Mark/Mark.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/LoadingOverlay/LoadingOverlay.module.css.mjs.vanilla.css.js} +0 -0
  232. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Menu/Menu.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Mark/Mark.module.css.mjs.vanilla.css.js} +0 -0
  233. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Modal/Modal.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Menu/Menu.module.css.mjs.vanilla.css.js} +0 -0
  234. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ModalBase/ModalBase.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Modal/Modal.module.css.mjs.vanilla.css.js} +0 -0
  235. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/NavLink/NavLink.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ModalBase/ModalBase.module.css.mjs.vanilla.css.js} +0 -0
  236. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Notification/Notification.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/NavLink/NavLink.module.css.mjs.vanilla.css.js} +0 -0
  237. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/NumberInput/NumberInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Notification/Notification.module.css.mjs.vanilla.css.js} +0 -0
  238. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Overlay/Overlay.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/NumberInput/NumberInput.module.css.mjs.vanilla.css.js} +0 -0
  239. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Pagination/Pagination.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Overlay/Overlay.module.css.mjs.vanilla.css.js} +0 -0
  240. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Paper/Paper.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Pagination/Pagination.module.css.mjs.vanilla.css.js} +0 -0
  241. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/PasswordInput/PasswordInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Paper/Paper.module.css.mjs.vanilla.css.js} +0 -0
  242. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Pill/Pill.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/PasswordInput/PasswordInput.module.css.mjs.vanilla.css.js} +0 -0
  243. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/PillsInput/PillsInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Pill/Pill.module.css.mjs.vanilla.css.js} +0 -0
  244. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/PinInput/PinInput.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/PillsInput/PillsInput.module.css.mjs.vanilla.css.js} +0 -0
  245. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Popover/Popover.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/PinInput/PinInput.module.css.mjs.vanilla.css.js} +0 -0
  246. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Progress/Progress.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Popover/Popover.module.css.mjs.vanilla.css.js} +0 -0
  247. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Radio/Radio.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Progress/Progress.module.css.mjs.vanilla.css.js} +0 -0
  248. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Radio/RadioCard/RadioCard.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Radio/Radio.module.css.mjs.vanilla.css.js} +0 -0
  249. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Radio/RadioIndicator/RadioIndicator.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Radio/RadioCard/RadioCard.module.css.mjs.vanilla.css.js} +0 -0
  250. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Rating/Rating.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Radio/RadioIndicator/RadioIndicator.module.css.mjs.vanilla.css.js} +0 -0
  251. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/RingProgress/RingProgress.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Rating/Rating.module.css.mjs.vanilla.css.js} +0 -0
  252. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/RingProgress/RingProgress.module.css.mjs.vanilla.css.js} +0 -0
  253. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/SegmentedControl/SegmentedControl.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ScrollArea/ScrollArea.module.css.mjs.vanilla.css.js} +0 -0
  254. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/SemiCircleProgress/SemiCircleProgress.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/SegmentedControl/SegmentedControl.module.css.mjs.vanilla.css.js} +0 -0
  255. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/SimpleGrid/SimpleGrid.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/SemiCircleProgress/SemiCircleProgress.module.css.mjs.vanilla.css.js} +0 -0
  256. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Skeleton/Skeleton.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/SimpleGrid/SimpleGrid.module.css.mjs.vanilla.css.js} +0 -0
  257. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Slider/Slider.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Skeleton/Skeleton.module.css.mjs.vanilla.css.js} +0 -0
  258. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Spoiler/Spoiler.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Slider/Slider.module.css.mjs.vanilla.css.js} +0 -0
  259. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Stack/Stack.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Spoiler/Spoiler.module.css.mjs.vanilla.css.js} +0 -0
  260. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Stepper/Stepper.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Stack/Stack.module.css.mjs.vanilla.css.js} +0 -0
  261. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Switch/Switch.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Stepper/Stepper.module.css.mjs.vanilla.css.js} +0 -0
  262. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Table/Table.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Switch/Switch.module.css.mjs.vanilla.css.js} +0 -0
  263. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/TableOfContents/TableOfContents.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Table/Table.module.css.mjs.vanilla.css.js} +0 -0
  264. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Tabs/Tabs.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/TableOfContents/TableOfContents.module.css.mjs.vanilla.css.js} +0 -0
  265. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Text/Text.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Tabs/Tabs.module.css.mjs.vanilla.css.js} +0 -0
  266. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Text/Text.module.css.mjs.vanilla.css.js} +0 -0
  267. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Timeline/Timeline.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.module.css.mjs.vanilla.css.js} +0 -0
  268. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Title/Title.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Timeline/Timeline.module.css.mjs.vanilla.css.js} +0 -0
  269. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Tooltip/Tooltip.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Title/Title.module.css.mjs.vanilla.css.js} +0 -0
  270. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/Tree/Tree.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Tooltip/Tooltip.module.css.mjs.vanilla.css.js} +0 -0
  271. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/TypographyStylesProvider/TypographyStylesProvider.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/Tree/Tree.module.css.mjs.vanilla.css.js} +0 -0
  272. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/TypographyStylesProvider/TypographyStylesProvider.module.css.mjs.vanilla.css.js} +0 -0
  273. /package/dist/node_modules/.pnpm/{@mantine_core@7.17.0_@mantine_hooks@7.17.0_react@19.0.0__@types_react@19.0.8_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@mantine/core/esm/components/VisuallyHidden/VisuallyHidden.module.css.mjs.vanilla.css.js → @mantine_core@7.17.1_@mantine_hooks@7.17.1_react@19.0.0__@types_react@19.0.10_react-dom_fbfa2b80048a2180882527b4a447e1ea/node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.module.css.mjs.vanilla.css.js} +0 -0
@@ -2,10 +2,11 @@ import { type EdgeId, type NodeId, nonNullable } from '@likec4/core'
2
2
  import { useCallbackRef } from '@mantine/hooks'
3
3
  import clsx from 'clsx'
4
4
  import { shallowEqual } from 'fast-equals'
5
- import { memo } from 'react'
5
+ import { type PropsWithChildren, memo } from 'react'
6
6
  import type { EnforceOptional } from 'type-fest/source/enforce-optional'
7
7
  import { BaseXYFlow } from '../base/BaseXYFlow'
8
8
  import { useDiagramEventHandlers } from '../context'
9
+ import { ReduceGraphicsViewportListener } from '../context/ReduceGraphics'
9
10
  import { useDiagram, useDiagramContext } from '../hooks/useDiagram'
10
11
  import type { LikeC4DiagramProperties } from '../LikeC4Diagram.props'
11
12
  import type { DiagramContext } from '../state/types'
@@ -50,9 +51,14 @@ type Picked = EnforceOptional<
50
51
  | 'nodesSelectable'
51
52
  >
52
53
  >
53
- export type LikeC4DiagramXYFlowProps = Required<Picked>
54
+ export type LikeC4DiagramXYFlowProps = PropsWithChildren<Required<Picked>>
54
55
 
55
- export const LikeC4DiagramXYFlow = memo<LikeC4DiagramXYFlowProps>(({ background, nodesDraggable, nodesSelectable }) => {
56
+ export const LikeC4DiagramXYFlow = memo<LikeC4DiagramXYFlowProps>(({
57
+ background,
58
+ nodesDraggable,
59
+ nodesSelectable,
60
+ children,
61
+ }) => {
56
62
  const diagram = useDiagram()
57
63
  const {
58
64
  initialized,
@@ -149,7 +155,9 @@ export const LikeC4DiagramXYFlow = memo<LikeC4DiagramXYFlowProps>(({ background,
149
155
  nodesSelectable={nodesSelectable}
150
156
  {...(notReadOnly && nodesDraggable && layoutConstraints)}
151
157
  {...props}>
158
+ <ReduceGraphicsViewportListener />
152
159
  <DiagramUI />
160
+ {children}
153
161
  </BaseXYFlow>
154
162
  )
155
163
  }, shallowEqual)
@@ -5,6 +5,7 @@ import {
5
5
  } from '@likec4/core'
6
6
  import { useDebouncedEffect } from '@react-hookz/web'
7
7
  import type { XYPosition } from '@xyflow/react'
8
+ import { EdgeLabelRenderer } from '@xyflow/react'
8
9
  import clsx from 'clsx'
9
10
  import { curveCatmullRomOpen, line as d3line } from 'd3-shape'
10
11
  import { type PointerEvent as ReactPointerEvent, useEffect, useRef, useState } from 'react'
@@ -13,6 +14,7 @@ import { customEdge, EdgeActionButton, EdgeContainer, EdgeLabel, EdgePath } from
13
14
  import { useEnabledFeature } from '../../../context'
14
15
  import { useXYFlow, useXYInternalNode, useXYStoreApi } from '../../../hooks'
15
16
  import { useDiagram } from '../../../hooks/useDiagram'
17
+ import { useLooseReducedGraphics } from '../../../hooks/useReducedGraphics'
16
18
  import { vector, VectorImpl } from '../../../utils/vector'
17
19
  import { bezierControlPoints, bezierPath, isSamePoint } from '../../../utils/xyflow'
18
20
  import type { Types } from '../../types'
@@ -27,6 +29,7 @@ const curve = d3line<XYPosition>()
27
29
  .y(d => d.y)
28
30
 
29
31
  export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) => {
32
+ const isReducedGraphicsMode = useLooseReducedGraphics()
30
33
  const [isControlPointDragging, setIsControlPointDragging] = useState(false)
31
34
  const xyflowStore = useXYStoreApi()
32
35
  const xyflow = useXYFlow()
@@ -44,10 +47,11 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
44
47
  target,
45
48
  targetX,
46
49
  targetY,
50
+ selected = false,
47
51
  data: {
48
52
  id: edgeId,
49
- navigateTo,
50
53
  points,
54
+ hovered = false,
51
55
  active = false,
52
56
  dimmed = false,
53
57
  labelBBox,
@@ -56,6 +60,8 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
56
60
  },
57
61
  } = props
58
62
 
63
+ const navigateTo = enableNavigateTo ? data.navigateTo : undefined
64
+
59
65
  const sourceNode = nonNullable(useXYInternalNode(source)!, `source node ${source} not found`)
60
66
  const targetNode = nonNullable(useXYInternalNode(target)!, `target node ${target} not found`)
61
67
 
@@ -297,7 +303,7 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
297
303
  <div {...props} />
298
304
  </NotePopover>
299
305
  )
300
- } else if (enableRelationshipDetails) {
306
+ } else if (enableRelationshipDetails && (!isReducedGraphicsMode || hovered || selected || active)) {
301
307
  renderLabel = (props: any) => (
302
308
  <RelationshipsDropdownMenu
303
309
  disabled={!!dimmed}
@@ -313,24 +319,6 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
313
319
  return (
314
320
  <EdgeContainer {...props} className={clsx(isControlPointDragging && edgesCss.controlDragging)}>
315
321
  <EdgePath {...props} svgPath={edgePath} ref={svgPathRef} onEdgePointerDown={onEdgePointerDown} />
316
- {enableEdgeEditing && (
317
- <g
318
- onContextMenu={e => {
319
- e.preventDefault()
320
- e.stopPropagation()
321
- }}>
322
- {controlPoints.map((p, i) => (
323
- <circle
324
- onPointerDown={e => onControlPointerDown(i, e)}
325
- className={edgesCss.controlPoint}
326
- key={i}
327
- cx={p.x}
328
- cy={p.y}
329
- r={3}
330
- />
331
- ))}
332
- </g>
333
- )}
334
322
  <EdgeLabel
335
323
  edgeProps={props}
336
324
  labelPosition={{
@@ -340,7 +328,7 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
340
328
  }}
341
329
  {...renderLabel && { renderRoot: renderLabel }}
342
330
  >
343
- {!isControlPointDragging && enableNavigateTo && navigateTo && (
331
+ {!isControlPointDragging && navigateTo && (
344
332
  <EdgeActionButton
345
333
  {...props}
346
334
  onClick={e => {
@@ -349,6 +337,29 @@ export const RelationshipEdge = customEdge<Types.RelationshipEdgeData>((props) =
349
337
  }} />
350
338
  )}
351
339
  </EdgeLabel>
340
+ {/* Render control points above edge label */}
341
+ {enableEdgeEditing && controlPoints.length > 0 && (
342
+ <EdgeLabelRenderer>
343
+ <EdgeContainer component="svg" className={edgesCss.controlPointsContainer} {...props}>
344
+ <g
345
+ onContextMenu={e => {
346
+ e.preventDefault()
347
+ e.stopPropagation()
348
+ }}>
349
+ {controlPoints.map((p, i) => (
350
+ <circle
351
+ onPointerDown={e => onControlPointerDown(i, e)}
352
+ className={clsx('nodrag nopan', edgesCss.controlPoint)}
353
+ key={i}
354
+ cx={Math.round(p.x)}
355
+ cy={Math.round(p.y)}
356
+ r={3}
357
+ />
358
+ ))}
359
+ </g>
360
+ </EdgeContainer>
361
+ </EdgeLabelRenderer>
362
+ )}
352
363
  </EdgeContainer>
353
364
  )
354
365
  })
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  type DiagramEdge,
3
3
  type EdgeId,
4
+ type LikeC4Model,
4
5
  type NodeId,
5
6
  DiagramNode,
6
- LikeC4Model,
7
7
  nameFromFqn,
8
8
  } from '@likec4/core'
9
9
  import {
@@ -1,8 +1,23 @@
1
1
  import { globalStyle, style } from '@vanilla-extract/css'
2
+ import { ZIndexes } from '../../../base/const'
2
3
  import { mantine, xyvars } from '../../../theme-vars'
3
4
 
4
5
  const isSelected = '.react-flow__edge.selected'
5
6
 
7
+ export const controlPointsContainer = style({
8
+ overflow: 'visible',
9
+ position: 'absolute',
10
+ pointerEvents: 'none',
11
+ top: 0,
12
+ left: 0,
13
+ zIndex: ZIndexes.Edge,
14
+ selectors: {
15
+ [`&:is([data-edge-hovered='true'])`]: {
16
+ zIndex: ZIndexes.Edge + 1,
17
+ },
18
+ },
19
+ })
20
+
6
21
  export const controlPoint = style({
7
22
  fill: xyvars.edge.stroke,
8
23
  stroke: xyvars.edge.stroke,
@@ -1,7 +1,20 @@
1
1
  import type { Types } from '../types'
2
2
  import { RelationshipEdge } from './edges/RelationshipEdge'
3
+ import {
4
+ CompoundDeploymentNode,
5
+ CompoundElementNode,
6
+ DeploymentNode,
7
+ ElementNode,
8
+ ViewGroupNode,
9
+ } from './nodes/nodeTypes'
3
10
 
4
- export { nodeTypes } from './nodes/nodeTypes'
11
+ export const nodeTypes = {
12
+ element: ElementNode,
13
+ deployment: DeploymentNode,
14
+ 'compound-element': CompoundElementNode,
15
+ 'compound-deployment': CompoundDeploymentNode,
16
+ 'view-group': ViewGroupNode,
17
+ } satisfies { [key in Types.Node['type']]: any }
5
18
 
6
19
  export const edgeTypes = {
7
20
  relationship: RelationshipEdge,
@@ -36,72 +36,74 @@ const ElementDetailsButtonWithHandler = ({ fqn, ...props }: NodeProps<Types.Node
36
36
  )
37
37
  }
38
38
 
39
- export const nodeTypes = {
40
- element: customNode<Types.ElementNodeData>((props) => (
41
- <ElementNodeContainer nodeProps={props}>
42
- <ElementShape {...props} isMultiple={props.data.isMultiple} withSelectedIndicator={props.selected} />
43
- <ElementTitle {...props} />
44
- <ElementActions {...props} />
39
+ export const ElementNode = customNode<Types.ElementNodeData>((props) => (
40
+ <ElementNodeContainer nodeProps={props}>
41
+ <ElementShape {...props} isMultiple={props.data.isMultiple} withSelectedIndicator={props.selected} />
42
+ <ElementTitle {...props} />
43
+ <ElementActions {...props} />
44
+ <ElementDetailsButtonWithHandler
45
+ fqn={props.data.modelFqn}
46
+ {...props} />
47
+ <IfNotEnabled feature="ReadOnly">
48
+ <ElementToolbar {...props} />
49
+ </IfNotEnabled>
50
+ <DefaultHandles />
51
+ </ElementNodeContainer>
52
+ ))
53
+
54
+ export const DeploymentNode = customNode<Types.DeploymentElementNodeData>((props) => (
55
+ <ElementNodeContainer nodeProps={props}>
56
+ <ElementShape {...props} isMultiple={props.data.isMultiple} withSelectedIndicator={props.selected} />
57
+ <ElementTitle {...props} />
58
+ <DeploymentElementActions {...props} />
59
+ {!!props.data.modelFqn && (
45
60
  <ElementDetailsButtonWithHandler
46
61
  fqn={props.data.modelFqn}
47
62
  {...props} />
48
- <IfNotEnabled feature="ReadOnly">
49
- <ElementToolbar {...props} />
50
- </IfNotEnabled>
51
- <DefaultHandles />
52
- </ElementNodeContainer>
53
- )),
54
- deployment: customNode<Types.DeploymentElementNodeData>((props) => (
55
- <ElementNodeContainer nodeProps={props}>
56
- <ElementShape {...props} isMultiple={props.data.isMultiple} withSelectedIndicator={props.selected} />
57
- <ElementTitle {...props} />
58
- <DeploymentElementActions {...props} />
59
- {!!props.data.modelFqn && (
60
- <ElementDetailsButtonWithHandler
61
- fqn={props.data.modelFqn}
62
- {...props} />
63
- )}
64
- <IfNotEnabled feature="ReadOnly">
65
- <DeploymentElementToolbar {...props} />
66
- </IfNotEnabled>
67
- <DefaultHandles />
68
- </ElementNodeContainer>
69
- )),
70
- 'compound-element': customNode<Types.CompoundElementNodeData>((props) => {
71
- const diagram = useDiagram()
72
- return (
73
- <CompoundNodeContainer nodeProps={props}>
74
- <CompoundTitle {...props} />
75
- <CompoundActions {...props} />
76
- <IfEnabled feature="ElementDetails">
77
- <CompoundDetailsButton
78
- {...props}
79
- onClick={e => {
80
- e.stopPropagation()
81
- diagram.openElementDetails(props.data.modelFqn, props.id as NodeId)
82
- }} />
83
- </IfEnabled>
84
- <IfNotEnabled feature="ReadOnly">
85
- <CompoundElementToolbar {...props} />
86
- </IfNotEnabled>
87
- <DefaultHandles />
88
- </CompoundNodeContainer>
89
- )
90
- }),
91
- 'compound-deployment': customNode<Types.CompoundDeploymentNodeData>((props) => (
63
+ )}
64
+ <IfNotEnabled feature="ReadOnly">
65
+ <DeploymentElementToolbar {...props} />
66
+ </IfNotEnabled>
67
+ <DefaultHandles />
68
+ </ElementNodeContainer>
69
+ ))
70
+
71
+ export const CompoundElementNode = customNode<Types.CompoundElementNodeData>((props) => {
72
+ const diagram = useDiagram()
73
+ return (
92
74
  <CompoundNodeContainer nodeProps={props}>
93
75
  <CompoundTitle {...props} />
94
76
  <CompoundActions {...props} />
77
+ <IfEnabled feature="ElementDetails">
78
+ <CompoundDetailsButton
79
+ {...props}
80
+ onClick={e => {
81
+ e.stopPropagation()
82
+ diagram.openElementDetails(props.data.modelFqn, props.id as NodeId)
83
+ }} />
84
+ </IfEnabled>
95
85
  <IfNotEnabled feature="ReadOnly">
96
- <CompoundDeploymentToolbar {...props} />
86
+ <CompoundElementToolbar {...props} />
97
87
  </IfNotEnabled>
98
88
  <DefaultHandles />
99
89
  </CompoundNodeContainer>
100
- )),
101
- 'view-group': customNode<Types.ViewGroupNodeData>((props) => (
102
- <CompoundNodeContainer nodeProps={props}>
103
- <CompoundTitle {...props} />
104
- <DefaultHandles />
105
- </CompoundNodeContainer>
106
- )),
107
- } satisfies { [key in Types.Node['type']]: any }
90
+ )
91
+ })
92
+
93
+ export const CompoundDeploymentNode = customNode<Types.CompoundDeploymentNodeData>((props) => (
94
+ <CompoundNodeContainer nodeProps={props}>
95
+ <CompoundTitle {...props} />
96
+ <CompoundActions {...props} />
97
+ <IfNotEnabled feature="ReadOnly">
98
+ <CompoundDeploymentToolbar {...props} />
99
+ </IfNotEnabled>
100
+ <DefaultHandles />
101
+ </CompoundNodeContainer>
102
+ ))
103
+
104
+ export const ViewGroupNode = customNode<Types.ViewGroupNodeData>((props) => (
105
+ <CompoundNodeContainer nodeProps={props}>
106
+ <CompoundTitle {...props} />
107
+ <DefaultHandles />
108
+ </CompoundNodeContainer>
109
+ ))
@@ -1,9 +1,10 @@
1
- import { ActionIconGroup, Badge, Group, Loader, Stack } from '@mantine/core'
1
+ import { ActionIconGroup, Badge, Box, Group, Loader, Stack } from '@mantine/core'
2
2
  import { IconFileSymlink, IconFocusCentered, IconMenu2 } from '@tabler/icons-react'
3
3
  import { clsx } from 'clsx'
4
- import { LayoutGroup } from 'framer-motion'
4
+ import { AnimatePresence, LayoutGroup, m } from 'framer-motion'
5
5
  import { memo } from 'react'
6
6
  import { useDiagramEventHandlers, useEnabledFeatures } from '../../../context'
7
+ import { type ControlsCustomLayout, useControlsCustomLayout } from '../../../context/ControlsCustomLayout'
7
8
  import { useMantinePortalProps } from '../../../hooks'
8
9
  import { useDiagram, useDiagramContext, useDiagramSyncLayoutState } from '../../../hooks/useDiagram'
9
10
  import { stopPropagation } from '../../../utils'
@@ -16,11 +17,62 @@ import { NavigationButtons } from './NavigationButtons'
16
17
  import * as css from './styles.css'
17
18
  import { ToggleReadonly } from './ToggleReadonly'
18
19
 
20
+ const ControlsDefaultLayout: ControlsCustomLayout = ({
21
+ burgerMenu,
22
+ navigationButtons,
23
+ search,
24
+ actionsGroup,
25
+ }) => (
26
+ <Group
27
+ component={m.div}
28
+ // @ts-expect-error group component not fully polymorphic
29
+ initial={{
30
+ opacity: 0.05,
31
+ translateX: -30,
32
+ translateY: -16,
33
+ }}
34
+ animate={{
35
+ opacity: 1,
36
+ translateX: 0,
37
+ translateY: 0,
38
+ }}
39
+ exit={{
40
+ opacity: 0.05,
41
+ translateX: -30,
42
+ translateY: -10,
43
+ }}
44
+ align="flex-start"
45
+ className={clsx(
46
+ 'react-flow__panel',
47
+ css.panel,
48
+ 'likec4-top-left-panel',
49
+ )}
50
+ gap="xs"
51
+ onClick={stopPropagation}
52
+ >
53
+ <Stack align="flex-start" gap="xs">
54
+ <LayoutGroup>
55
+ <Group
56
+ className={clsx(css.navigationButtons, 'likec4-navigation-webview')}
57
+ gap={'xs'}>
58
+ {burgerMenu}
59
+ {navigationButtons}
60
+ </Group>
61
+ </LayoutGroup>
62
+ {actionsGroup}
63
+ </Stack>
64
+ <Box>
65
+ {search}
66
+ </Box>
67
+ </Group>
68
+ )
69
+
19
70
  export const Controls = memo(() => {
20
- const { viewId, hasLayoutDrift, viewportChanged } = useDiagramContext(c => ({
71
+ const { viewId, hasLayoutDrift, viewportChanged, isNotActiveWalkthrough } = useDiagramContext(c => ({
21
72
  viewId: c.view.id,
22
73
  hasLayoutDrift: c.view.hasLayoutDrift ?? false,
23
74
  viewportChanged: c.viewportChangedManually,
75
+ isNotActiveWalkthrough: c.activeWalkthrough === null,
24
76
  }))
25
77
  const diagram = useDiagram()
26
78
  const {
@@ -36,24 +88,13 @@ export const Controls = memo(() => {
36
88
  } = useEnabledFeatures()
37
89
  const notReadOnly = !enableReadOnly
38
90
  const portalProps = useMantinePortalProps()
39
-
91
+ const ControlsLayout = useControlsCustomLayout() ?? ControlsDefaultLayout
40
92
  return (
41
- <Group
42
- align="flex-start"
43
- className={clsx(
44
- 'react-flow__panel',
45
- css.panel,
46
- 'likec4-top-left-panel',
47
- )}
48
- gap="xs"
49
- onClick={stopPropagation}
50
- >
51
- <Stack align="flex-start" gap="xs">
52
- <LayoutGroup>
53
- <Group
54
- className={clsx(css.navigationButtons, 'likec4-navigation-webview')}
55
- gap={'xs'}>
56
- {onBurgerMenuClick && (
93
+ <LayoutGroup inherit={false}>
94
+ <AnimatePresence initial={false} mode="wait">
95
+ {isNotActiveWalkthrough && (
96
+ <ControlsLayout
97
+ burgerMenu={onBurgerMenuClick && (
57
98
  <ActionIcon
58
99
  onClick={e => {
59
100
  e.stopPropagation()
@@ -62,47 +103,47 @@ export const Controls = memo(() => {
62
103
  <IconMenu2 />
63
104
  </ActionIcon>
64
105
  )}
65
- {enableNavigationButtons && <NavigationButtons />}
66
- </Group>
67
- </LayoutGroup>
68
- <ActionIconGroup className={css.actionIconGroup} orientation="vertical">
69
- {enableVscode && (
70
- <Tooltip label="Open source" {...portalProps}>
71
- <ActionIcon
72
- onClick={e => {
73
- e.stopPropagation()
74
- onOpenSource?.({ view: viewId })
75
- }}>
76
- <IconFileSymlink stroke={1.5} />
77
- </ActionIcon>
78
- </Tooltip>
79
- )}
80
- {enableControls && <ToggleReadonly />}
81
- {enableControls && hasLayoutDrift && <LayoutDriftNotification {...portalProps} />}
82
- {enableControls && notReadOnly && (
83
- <>
84
- <ChangeAutoLayoutButton {...portalProps} />
85
- <ManualLayoutToolsButton {...portalProps} />
86
- </>
87
- )}
88
- {enableControls && (
89
- <Tooltip label={viewportChanged ? 'Center camera' : 'Camera is centered'} {...portalProps}>
90
- <ActionIcon
91
- onClick={e => {
92
- e.stopPropagation()
93
- diagram.fitDiagram()
94
- }}>
95
- <IconFocusCentered />
96
- </ActionIcon>
97
- </Tooltip>
98
- )}
99
- </ActionIconGroup>
100
- </Stack>
101
- <Group>
102
- {enableSearch && <LikeC4Search />}
103
- {/* {notReadOnly && <SyncLayoutBadge />} */}
104
- </Group>
105
- </Group>
106
+ navigationButtons={enableNavigationButtons && <NavigationButtons />}
107
+ search={enableSearch && <LikeC4Search />}
108
+ syncInProgressBadge={<SyncLayoutBadge />}
109
+ actionsGroup={
110
+ <ActionIconGroup className={css.actionIconGroup} orientation="vertical">
111
+ {enableVscode && (
112
+ <Tooltip label="Open source" {...portalProps}>
113
+ <ActionIcon
114
+ onClick={e => {
115
+ e.stopPropagation()
116
+ onOpenSource?.({ view: viewId })
117
+ }}>
118
+ <IconFileSymlink stroke={1.5} />
119
+ </ActionIcon>
120
+ </Tooltip>
121
+ )}
122
+ {enableControls && <ToggleReadonly />}
123
+ {enableControls && hasLayoutDrift && <LayoutDriftNotification {...portalProps} />}
124
+ {enableControls && notReadOnly && (
125
+ <>
126
+ <ChangeAutoLayoutButton {...portalProps} />
127
+ <ManualLayoutToolsButton {...portalProps} />
128
+ </>
129
+ )}
130
+ {enableControls && (
131
+ <Tooltip label={viewportChanged ? 'Center camera' : 'Camera is centered'} {...portalProps}>
132
+ <ActionIcon
133
+ onClick={e => {
134
+ e.stopPropagation()
135
+ diagram.fitDiagram()
136
+ }}>
137
+ <IconFocusCentered />
138
+ </ActionIcon>
139
+ </Tooltip>
140
+ )}
141
+ </ActionIconGroup>
142
+ }
143
+ />
144
+ )}
145
+ </AnimatePresence>
146
+ </LayoutGroup>
106
147
  )
107
148
  })
108
149
 
@@ -18,7 +18,12 @@ export const NavigationButtons = () => {
18
18
  return (
19
19
  <AnimatePresence>
20
20
  {hasStepBack && (
21
- <m.div
21
+ <ActionIcon
22
+ component={m.button}
23
+ onClick={e => {
24
+ e.stopPropagation()
25
+ diagram.navigate('back')
26
+ }}
22
27
  layout
23
28
  initial={{ opacity: 0.05, transform: 'translateX(-10px)' }}
24
29
  animate={{ opacity: 1, transform: 'translateX(0)' }}
@@ -26,18 +31,14 @@ export const NavigationButtons = () => {
26
31
  opacity: 0.05,
27
32
  transform: 'translateX(-10px)',
28
33
  }}
29
- key={'back'}>
30
- <ActionIcon
31
- onClick={e => {
32
- e.stopPropagation()
33
- diagram.navigate('back')
34
- }}>
35
- <IconChevronLeft />
36
- </ActionIcon>
37
- </m.div>
34
+ key={'back'}
35
+ >
36
+ <IconChevronLeft />
37
+ </ActionIcon>
38
38
  )}
39
39
  {hasStepForward && (
40
- <m.div
40
+ <ActionIcon
41
+ component={m.button}
41
42
  layout
42
43
  initial={{ opacity: 0.05, transform: 'translateX(10px)' }}
43
44
  animate={{ opacity: 1, transform: 'translateX(0)' }}
@@ -45,15 +46,13 @@ export const NavigationButtons = () => {
45
46
  opacity: 0,
46
47
  transform: 'translateX(10px)',
47
48
  }}
48
- key={'forward'}>
49
- <ActionIcon
50
- onClick={e => {
51
- e.stopPropagation()
52
- diagram.navigate('forward')
53
- }}>
54
- <IconChevronRight />
55
- </ActionIcon>
56
- </m.div>
49
+ key={'forward'}
50
+ onClick={e => {
51
+ e.stopPropagation()
52
+ diagram.navigate('forward')
53
+ }}>
54
+ <IconChevronRight />
55
+ </ActionIcon>
57
56
  )}
58
57
  </AnimatePresence>
59
58
  )
@@ -1,8 +1,7 @@
1
1
  import { rem } from '@mantine/core'
2
2
  import { fallbackVar, globalStyle, style } from '@vanilla-extract/css'
3
3
  import { calc } from '@vanilla-extract/css-utils'
4
- import { whereNotReducedGraphics } from '../../../LikeC4Diagram.css'
5
- import { mantine, vars } from '../../../theme-vars'
4
+ import { mantine, vars, whereNotReducedGraphics, whereReducedGraphics } from '../../../theme-vars'
6
5
 
7
6
  export const navigationButtons = style({
8
7
  gap: calc(mantine.spacing.xs).divide(1.5).toString(),
@@ -18,10 +17,16 @@ export const panel = style({
18
17
  pointerEvents: 'none',
19
18
  })
20
19
 
21
- globalStyle(`${panel} :where(button, .action-icon)`, {
20
+ globalStyle(`${panel} :where(button, .action-icon, [role="dialog"])`, {
22
21
  pointerEvents: 'all',
23
22
  })
24
23
 
24
+ globalStyle(`${whereReducedGraphics} ${panel} .action-icon`, {
25
+ vars: {
26
+ '--ai-radius': '0px',
27
+ },
28
+ })
29
+
25
30
  globalStyle(`.likec4-top-left-panel .action-icon`, {
26
31
  vars: {
27
32
  ['--ai-size']: '2rem',
@@ -1,19 +1,13 @@
1
1
  import { fallbackVar, style } from '@vanilla-extract/css'
2
- import { whereNotReducedGraphics } from '../../../LikeC4Diagram.css'
3
- import { mantine, vars, whereDark } from '../../../theme-vars'
4
-
5
- export const container = style({
6
- bottom: 0,
7
- left: 0,
8
- padding: 8,
9
- margin: 0,
10
- })
2
+ import { mantine, vars, whereDark, whereNotReducedGraphics } from '../../../theme-vars'
11
3
 
12
4
  export const card = style({
13
5
  cursor: 'default',
14
6
  minWidth: 200,
15
7
  maxWidth: 'calc(100vw - 16px)',
8
+ width: 'auto',
16
9
  backgroundColor: mantine.colors.body,
10
+ borderRadius: '0px',
17
11
  '@media': {
18
12
  [mantine.largerThan('sm')]: {
19
13
  minWidth: 250,
@@ -29,6 +23,7 @@ export const card = style({
29
23
  backgroundColor: mantine.colors.dark[6],
30
24
  },
31
25
  [`${whereNotReducedGraphics} &`]: {
26
+ borderRadius: mantine.radius.sm,
32
27
  backgroundColor: `color-mix(in srgb, ${mantine.colors.body}, transparent 20%)`,
33
28
  WebkitBackdropFilter: fallbackVar(vars.safariAnimationHook, 'blur(8px)'),
34
29
  backdropFilter: fallbackVar(vars.safariAnimationHook, 'blur(8px)'),