@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
@@ -3,17 +3,14 @@ import {
3
3
  type ReactFlowProps,
4
4
  type ReactFlowState,
5
5
  ReactFlow,
6
- useOnViewportChange,
7
6
  useStore,
8
- useStoreApi,
9
7
  } from '@xyflow/react'
10
8
  import clsx from 'clsx'
11
- import { shallowEqual } from 'fast-equals'
12
9
  import { useMemo } from 'react'
13
10
  import type { SetRequired, Simplify } from 'type-fest'
14
- import { useIsReducedGraphics } from '../hooks/useIsReducedGraphics'
11
+ import { useIsReducedGraphics } from '../hooks/useReducedGraphics'
15
12
  import { useUpdateEffect } from '../hooks/useUpdateEffect'
16
- import { useIsZoomTooSmall } from '../hooks/useXYFlow'
13
+ import { useIsZoomTooSmall, useXYStoreApi } from '../hooks/useXYFlow'
17
14
  import * as css from '../LikeC4Diagram.css'
18
15
  import { stopPropagation } from '../utils/xyflow'
19
16
  import { type XYBackground, Background } from './Background'
@@ -75,11 +72,15 @@ export const BaseXYFlow = <
75
72
  fitView = true,
76
73
  zoomOnDoubleClick = false,
77
74
  onViewportResize,
75
+ onMoveEnd,
78
76
  ...props
79
77
  }: BaseXYFlowProps<NodeType, EdgeType>) => {
80
78
  const isBgWithPattern = background !== 'transparent' && background !== 'solid'
81
79
  const isZoomTooSmall = useIsZoomTooSmall()
82
80
  const reduceGraphics = useIsReducedGraphics()
81
+
82
+ const xystore = useXYStoreApi()
83
+
83
84
  return (
84
85
  <ReactFlow<NodeType, EdgeType>
85
86
  colorMode={colorMode}
@@ -118,10 +119,10 @@ export const BaseXYFlow = <
118
119
  noPanClassName="nopan"
119
120
  panOnScroll={pannable}
120
121
  panOnDrag={pannable}
122
+ panActivationKeyCode={null}
121
123
  {...(!pannable && {
122
124
  selectionKeyCode: null,
123
125
  })}
124
- onlyRenderVisibleElements={reduceGraphics}
125
126
  elementsSelectable={nodesSelectable}
126
127
  nodesFocusable={nodesDraggable || nodesSelectable}
127
128
  edgesFocusable={false}
@@ -133,6 +134,20 @@ export const BaseXYFlow = <
133
134
  selectNodesOnDrag={false}
134
135
  onNodesChange={onNodesChange}
135
136
  onEdgesChange={onEdgesChange}
137
+ onMoveEnd={useCallbackRef((event, { x, y, zoom }) => {
138
+ /**
139
+ * WORKAROUND
140
+ * Viewport transform is not rounded to integers which results in blurry nodes on some resolution
141
+ * https://github.com/xyflow/xyflow/issues/3282
142
+ * https://github.com/likec4/likec4/issues/734
143
+ */
144
+ const roundedX = Math.round(x),
145
+ roundedY = Math.round(y)
146
+ if (x !== roundedX || y !== roundedY) {
147
+ xystore.setState({ transform: [roundedX, roundedY, zoom] })
148
+ }
149
+ onMoveEnd?.(event, { x: roundedX, y: roundedY, zoom })
150
+ })}
136
151
  onNodeMouseEnter={useCallbackRef((_event, node) => {
137
152
  onNodesChange([{
138
153
  id: node.id,
@@ -166,49 +181,21 @@ export const BaseXYFlow = <
166
181
  {...props}
167
182
  >
168
183
  {isBgWithPattern && <Background background={background} />}
169
- <BaseXYFlowInner onViewportResize={onViewportResize} />
184
+ {onViewportResize && <ViewportResizeHanlder onViewportResize={onViewportResize} />}
170
185
  {children}
171
186
  </ReactFlow>
172
187
  )
173
188
  }
174
189
 
175
- const BaseXYFlowInner = ({
176
- onViewportResize,
177
- }: Pick<BaseXYFlowProps<any, any>, 'onViewportResize'>) => {
178
- const xyflowApi = useStoreApi()
179
-
180
- /**
181
- * WORKAROUND - Called on viewport change
182
- * Viewport transform is not rounded to integers which results in blurry nodes on some resolution
183
- * https://github.com/xyflow/xyflow/issues/3282
184
- * https://github.com/likec4/likec4/issues/734
185
- */
186
- useOnViewportChange({
187
- onEnd: ({ x, y, zoom }) => {
188
- const roundedX = Math.round(x),
189
- roundedY = Math.round(y)
190
- if (x !== roundedX || y !== roundedY) {
191
- xyflowApi.setState({ transform: [roundedX, roundedY, zoom] })
192
- }
193
- },
194
- })
195
-
196
- return (
197
- <>
198
- {onViewportResize && <ViewportResizeHanlder onViewportResize={onViewportResize} />}
199
- </>
200
- )
201
- }
202
-
203
- const selectDimensions = ({ width, height }: ReactFlowState) => ({ width, height })
190
+ const selectDimensions = ({ width, height }: ReactFlowState) => (width || 1) * (height || 1)
204
191
 
205
192
  const ViewportResizeHanlder = ({
206
193
  onViewportResize,
207
194
  }: {
208
195
  onViewportResize: () => void
209
196
  }) => {
210
- const { width, height } = useStore(selectDimensions, shallowEqual)
211
- useUpdateEffect(onViewportResize, [width, height])
197
+ const square = useStore(selectDimensions)
198
+ useUpdateEffect(onViewportResize, [square])
212
199
 
213
- return <></>
200
+ return null
214
201
  }
package/src/base/const.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export const ZIndexes = {
2
- Compound: 2,
3
- Edge: 4,
4
- Element: 6,
2
+ Compound: 0,
3
+ Edge: 2,
4
+ Element: 2,
5
5
  Max: 8,
6
6
  } as const
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { style } from '@vanilla-extract/css'
2
2
  import { reactFlowReducedGraphics } from '../../../LikeC4Diagram.css'
3
- import { transitions, vars } from '../../../theme-vars'
3
+ import { vars } from '../../../theme-vars'
4
4
 
5
5
  export const container = style({
6
6
  position: 'absolute',
@@ -11,21 +11,12 @@ export const container = style({
11
11
  // display: 'flex',
12
12
  // justifyContent: 'center',
13
13
  // alignItems: 'center',
14
- zIndex: 10,
15
- })
16
-
17
- export const actionButton = style({
18
- width: 'min-content',
19
- height: 'min-content',
20
- // display: 'flex',
21
- // justifyContent: 'center',
22
- // alignItems: 'center',
23
14
  })
24
15
 
25
16
  export const actionIcon = style({
26
17
  opacity: 0.45,
27
18
  color: `var(--_compound-title-color,${vars.element.loContrast})`,
28
- transition: transitions.fast,
19
+ // transition: transitions.fast,
29
20
  'vars': {
30
21
  '--ai-color-hover': vars.element.hiContrast,
31
22
  '--ai-bg-idle': `color-mix(in srgb , ${vars.element.fill}, transparent 99%)`,
@@ -33,7 +24,7 @@ export const actionIcon = style({
33
24
  '--ai-bg-hover': `color-mix(in srgb , ${vars.element.fill} 65%, ${vars.element.stroke})`,
34
25
  '--ai-hover': `color-mix(in srgb , ${vars.element.fill} 50%, ${vars.element.stroke})`,
35
26
  },
36
- background: `var(--ai-bg)`,
27
+ // background: `var(--ai-bg)`,
37
28
  boxShadow: '1px 1px 3px 0px transparent',
38
29
  selectors: {
39
30
  [`:where([data-mantine-color-scheme='light'] [data-compound-transparent="true"]) &`]: {
@@ -46,8 +37,8 @@ export const actionIcon = style({
46
37
  },
47
38
  [`:where([data-hovered='true']) &`]: {
48
39
  opacity: 1,
49
- transitionDelay: '100ms',
50
- transitionDuration: '300ms',
40
+ // transitionDelay: '100ms',
41
+ // transitionDuration: '300ms',
51
42
  // boxShadow: '1px 1px 3px 0px rgba(0, 0, 0, 0.15)',
52
43
  // color: `var(--ai-color-hover)`,
53
44
  // vars: {
@@ -21,9 +21,9 @@ export function CompoundActionButton({
21
21
  }: CompoundActionButtonProps) {
22
22
  return (
23
23
  <Box className={clsx(css.container, hiddenIfZoomTooSmall, 'compound-action')}>
24
- <Box
25
- className={clsx('nodrag nopan', css.actionButton)}
26
- component={m.div}
24
+ <ActionIcon
25
+ className={clsx('nodrag nopan', css.actionIcon)}
26
+ component={m.button}
27
27
  initial={false}
28
28
  animate={{
29
29
  scale: isHovered ? 1.2 : 1,
@@ -36,18 +36,14 @@ export function CompoundActionButton({
36
36
  // y: 1,
37
37
  }}
38
38
  whileTap={{ scale: 1 }}
39
+ size={'md'}
40
+ radius="md"
41
+ // Otherwise node receives click event and is selected
42
+ onClick={onClick}
43
+ onDoubleClick={stopPropagation}
39
44
  >
40
- <ActionIcon
41
- className={css.actionIcon}
42
- size={'md'}
43
- radius="md"
44
- // Otherwise node receives click event and is selected
45
- onClick={onClick}
46
- onDoubleClick={stopPropagation}
47
- >
48
- {icon ?? <IconZoomScan stroke={2} />}
49
- </ActionIcon>
50
- </Box>
45
+ {icon ?? <IconZoomScan stroke={2} />}
46
+ </ActionIcon>
51
47
  </Box>
52
48
  )
53
49
  }
@@ -6,7 +6,6 @@ export const container = style({
6
6
  position: 'absolute',
7
7
  top: 2,
8
8
  right: 2,
9
- zIndex: 10,
10
9
  })
11
10
 
12
11
  const btnColor = createVar('navigateBtnColor')
@@ -26,7 +25,6 @@ export const actionIcon = style({
26
25
  pointerEvents: 'all',
27
26
  cursor: 'pointer',
28
27
  color: `var(--_compound-title-color,${btnColor})`,
29
- backgroundColor: 'var(--ai-bg)',
30
28
  'vars': {
31
29
  '--ai-color-hover': vars.element.hiContrast,
32
30
  '--ai-bg-idle': `color-mix(in srgb , ${vars.element.fill}, transparent 99%)`,
@@ -21,9 +21,9 @@ export function CompoundDetailsButton({
21
21
  }: CompoundDetailsButtonProps) {
22
22
  return (
23
23
  <Box className={clsx(css.container, hiddenIfZoomTooSmall, 'details-button')} onClick={stopPropagation}>
24
- <Box
24
+ <ActionIcon
25
25
  component={m.div}
26
- className={clsx('nodrag nopan', css.actionIconWrapper)}
26
+ className={clsx('nodrag nopan', css.actionIcon)}
27
27
  initial={false}
28
28
  style={{
29
29
  originX: 0.45,
@@ -40,16 +40,12 @@ export function CompoundDetailsButton({
40
40
  scale: 1.42,
41
41
  }}
42
42
  whileTap={{ scale: 1.15 }}
43
- >
44
- <ActionIcon
45
- className={css.actionIcon}
46
- size={'md'}
47
- radius="md"
48
- onClick={onClick}
49
- onDoubleClick={stopPropagation}>
50
- {icon ?? <IconId stroke={1.8} style={{ width: '75%' }} />}
51
- </ActionIcon>
52
- </Box>
43
+ size={'md'}
44
+ radius="md"
45
+ onClick={onClick}
46
+ onDoubleClick={stopPropagation}>
47
+ {icon ?? <IconId stroke={1.8} style={{ width: '75%' }} />}
48
+ </ActionIcon>
53
49
  </Box>
54
50
  )
55
51
  }
@@ -1,7 +1,6 @@
1
1
  import { createVar, fallbackVar, globalStyle, keyframes, style } from '@vanilla-extract/css'
2
2
  import { calc } from '@vanilla-extract/css-utils'
3
- import { whereNotReducedGraphics } from '../../../LikeC4Diagram.css'
4
- import { easings, vars, whereLight } from '../../../theme-vars'
3
+ import { easings, vars, whereLight, whereNotReducedGraphics } from '../../../theme-vars'
5
4
 
6
5
  export const varCompoundOpacity = createVar('opacity')
7
6
  export const varBorderRadius = createVar('borderRadius')
@@ -20,7 +19,6 @@ export const container = style({
20
19
  padding: 0,
21
20
  margin: 0,
22
21
  border: '0px solid transparent',
23
- boxShadow: '0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4)',
24
22
  ':before': {
25
23
  borderRadius: varBorderRadius,
26
24
  content: ' ',
@@ -41,6 +39,9 @@ export const container = style({
41
39
  opacity: varCompoundOpacity,
42
40
  borderWidth: calc(varBorderWidth).subtract('1px').toString(),
43
41
  },
42
+ [`${whereNotReducedGraphics} &`]: {
43
+ boxShadow: '0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4)',
44
+ },
44
45
  [`${whereNotReducedGraphics} &:is([data-compound-transparent="true"]):before`]: {
45
46
  transition: `all 200ms ${easings.inOut}`,
46
47
  },
@@ -5,7 +5,7 @@ import clsx from 'clsx'
5
5
  import { m } from 'framer-motion'
6
6
  import { type PropsWithChildren, forwardRef } from 'react'
7
7
  import { clamp, isNumber } from 'remeda'
8
- import { useIsReducedGraphics } from '../../../hooks/useIsReducedGraphics'
8
+ import { useIsReducedGraphics } from '../../../hooks/useReducedGraphics'
9
9
  import type { NodeProps } from '../../types'
10
10
  import * as css from './CompoundNodeContainer.css'
11
11
 
@@ -60,8 +60,8 @@ export const CompoundNodeContainer = createPolymorphicComponent<'div', CompoundN
60
60
 
61
61
  const [opacity] = useDebouncedValue(Math.round(_opacity * 100) / 100, isHovered ? 200 : 50)
62
62
 
63
- const MAX_TRANSPARENCY = 40
64
- const borderTransparency = clamp(MAX_TRANSPARENCY - opacity * MAX_TRANSPARENCY, {
63
+ const MAX_TRANSPARENCY = 65
64
+ const borderTransparency = clamp(MAX_TRANSPARENCY - 0.8 * opacity * MAX_TRANSPARENCY, {
65
65
  min: 0,
66
66
  max: MAX_TRANSPARENCY,
67
67
  })
@@ -1,7 +1,7 @@
1
1
  import { rem } from '@mantine/core'
2
2
  import { globalStyle, style } from '@vanilla-extract/css'
3
- import { hiddenIfZoomTooSmall, whereNotReducedGraphics } from '../../../LikeC4Diagram.css'
4
- import { vars } from '../../../theme-vars'
3
+ import { hiddenIfZoomTooSmall } from '../../../LikeC4Diagram.css'
4
+ import { vars, whereNotReducedGraphics } from '../../../theme-vars'
5
5
 
6
6
  export const compoundTitle = style([hiddenIfZoomTooSmall, {
7
7
  position: 'absolute',
@@ -11,7 +11,7 @@ export const nodePropsEqual = <P extends Record<string, unknown> = Base.NodeData
11
11
  && eq(prev.dragging ?? false, next.dragging ?? false)
12
12
  && eq(prev.width ?? 0, next.width ?? 0)
13
13
  && eq(prev.height ?? 0, next.height ?? 0)
14
- && eq(prev.zIndex, next.zIndex)
14
+ && eq(prev.zIndex ?? 0, next.zIndex ?? 0)
15
15
  // we can ignore position, as custom nodes positioned relative to it's NodeRenderer
16
16
  // && eq(prev.positionAbsoluteX, next.positionAbsoluteX)
17
17
  // && eq(prev.positionAbsoluteY, next.positionAbsoluteY)
@@ -1,4 +1,4 @@
1
- import type { DiagramEdge } from '@likec4/core'
1
+ import { type DiagramEdge, invariant } from '@likec4/core'
2
2
  import clsx from 'clsx'
3
3
  import { type PropsWithChildren } from 'react'
4
4
  import type { UndefinedOnPartialDeep } from 'type-fest'
@@ -15,12 +15,14 @@ type Data = UndefinedOnPartialDeep<
15
15
 
16
16
  type EdgeContainerProps = PropsWithChildren<
17
17
  EdgeProps<Data> & {
18
+ component?: 'g' | 'svg' | undefined
18
19
  className?: string | undefined
19
20
  }
20
21
  >
21
22
 
22
23
  export function EdgeContainer({
23
24
  className,
25
+ component = 'g',
24
26
  data: {
25
27
  hovered: isHovered = false,
26
28
  active: isActive = false,
@@ -29,20 +31,31 @@ export function EdgeContainer({
29
31
  },
30
32
  children,
31
33
  }: EdgeContainerProps) {
34
+ const props = {
35
+ className: clsx(
36
+ css.edgeContainer,
37
+ className,
38
+ ),
39
+ 'data-likec4-color': data.color ?? 'gray',
40
+ 'data-edge-dir': data.dir ?? 'forward',
41
+ 'data-edge-active': isActive,
42
+ 'data-edge-animated': isActive,
43
+ 'data-edge-hovered': isHovered,
44
+ ...(isDimmed !== false && {
45
+ 'data-edge-dimmed': isDimmed,
46
+ }),
47
+ }
48
+ if (component === 'svg') {
49
+ return (
50
+ <svg {...props}>
51
+ {children}
52
+ </svg>
53
+ )
54
+ }
55
+ invariant(component === 'g', 'EdgeContainer: component must be "g" or "svg"')
56
+
32
57
  return (
33
- <g
34
- className={clsx(
35
- css.edgeContainer,
36
- className,
37
- )}
38
- data-likec4-color={data.color ?? 'gray'}
39
- data-edge-dir={data.dir ?? 'forward'}
40
- data-edge-active={isActive}
41
- data-edge-animated={isActive}
42
- data-edge-hovered={isHovered}
43
- {...isDimmed !== false && {
44
- 'data-edge-dimmed': isDimmed,
45
- }}>
58
+ <g {...props}>
46
59
  {children}
47
60
  </g>
48
61
  )
@@ -1,7 +1,15 @@
1
1
  import { rem } from '@mantine/core'
2
2
  import { createVar, fallbackVar, globalStyle, style } from '@vanilla-extract/css'
3
- import { whereNotReducedGraphics } from '../../../LikeC4Diagram.css'
4
- import { easings, mantine, transitions, vars, whereDark, whereLight, xyvars } from '../../../theme-vars'
3
+ import {
4
+ easings,
5
+ mantine,
6
+ transitions,
7
+ vars,
8
+ whereDark,
9
+ whereLight,
10
+ whereNotReducedGraphics,
11
+ xyvars,
12
+ } from '../../../theme-vars'
5
13
  import { edgeVars, mixColor } from './edge.css'
6
14
 
7
15
  const labelBorderRadius = 4
@@ -43,19 +51,8 @@ export const edgeLabelContainer = style([edgeVars, {
43
51
  width: 'auto',
44
52
  height: 'auto',
45
53
  backgroundColor: xyvars.edge.labelBgColor,
46
- borderRadius: labelBorderRadius,
47
54
  border: '0px solid transparent',
48
- transform: varTranslate,
49
- transition: transitions.fast,
50
- vars: {
51
- [varTranslate]: `translate(0,0)`,
52
- },
53
55
  selectors: {
54
- '&[data-edge-hovered="true"]': {
55
- mixBlendMode: 'normal',
56
- transition: `all 190ms ${easings.inOut}`,
57
- transform: `${varTranslate} scale(1.12)`,
58
- },
59
56
  [`&:is([data-edge-dimmed="true"])`]: {
60
57
  opacity: 0.2,
61
58
  transition: 'opacity 600ms ease-in-out, filter 600ms ease-in-out',
@@ -68,7 +65,14 @@ export const edgeLabelContainer = style([edgeVars, {
68
65
  filter: `grayscale(0.85) ${fallbackVar(vars.safariAnimationHook, 'blur(1px)')}`,
69
66
  },
70
67
  [`${whereNotReducedGraphics} &`]: {
68
+ borderRadius: labelBorderRadius,
71
69
  mixBlendMode: 'plus-lighter',
70
+ transform: varTranslate,
71
+ transition: transitions.fast,
72
+ },
73
+ [`${whereNotReducedGraphics} &[data-edge-hovered="true"]`]: {
74
+ transition: `all 190ms ${easings.inOut}`,
75
+ transform: `${varTranslate} scale(1.12)`,
72
76
  },
73
77
  [`${whereLight} ${whereNotReducedGraphics} &`]: {
74
78
  mixBlendMode: 'screen',
@@ -150,7 +154,7 @@ export const edgeNoteCloseButton = style({
150
154
  position: 'absolute',
151
155
  top: 4,
152
156
  right: 4,
153
- zIndex: 9,
157
+ // zIndex: 9,
154
158
  })
155
159
 
156
160
  export const edgeNoteText = style({
@@ -172,7 +176,7 @@ export const edgeNoteText = style({
172
176
  })
173
177
 
174
178
  export const actionBtn = style({
175
- zIndex: 'calc(var(--layer-overlays, 1) + 1)',
179
+ // zIndex: 'calc(var(--layer-overlays, 1) + 1)',
176
180
  pointerEvents: 'all',
177
181
  color: xyvars.edge.labelColor,
178
182
  cursor: 'pointer',
@@ -1,12 +1,12 @@
1
1
  import { type DiagramEdge, extractStep, isStepEdgeId } from '@likec4/core'
2
2
  import { type BoxProps, Box, createPolymorphicComponent, Text } from '@mantine/core'
3
- import { assignInlineVars } from '@vanilla-extract/dynamic'
4
3
  import { EdgeLabelRenderer } from '@xyflow/react'
5
4
  import clsx from 'clsx'
6
5
  import { type PropsWithChildren, forwardRef } from 'react'
7
6
  import { isNumber, isTruthy } from 'remeda'
8
7
  import type { UndefinedOnPartialDeep } from 'type-fest'
9
8
  import { useIsZoomTooSmall } from '../../../hooks/useXYFlow'
9
+ import { getVarName } from '../../../utils/css'
10
10
  import { ZIndexes } from '../../const'
11
11
  import type { EdgeProps } from '../../types'
12
12
  import * as css from './EdgeLabel.css'
@@ -41,6 +41,8 @@ const toCssVarValue = (value: number | string | undefined) => {
41
41
  return isNumber(value) ? `${value}px` : value
42
42
  }
43
43
 
44
+ const varTranslate = getVarName(css.varTranslate)
45
+
44
46
  export const EdgeLabel = createPolymorphicComponent<'div', EdgeLabelProps>(
45
47
  forwardRef<HTMLDivElement, EdgeLabelProps>(({
46
48
  edgeProps: {
@@ -75,7 +77,6 @@ export const EdgeLabel = createPolymorphicComponent<'div', EdgeLabelProps>(
75
77
  if (labelX === undefined || labelY === undefined || isZoomTooSmall) {
76
78
  return null
77
79
  }
78
-
79
80
  const translate = labelXY?.translate
80
81
 
81
82
  return (
@@ -96,13 +97,9 @@ export const EdgeLabel = createPolymorphicComponent<'div', EdgeLabelProps>(
96
97
  style={{
97
98
  top: toCssVarValue(labelY),
98
99
  left: toCssVarValue(labelX),
99
- // ...assignInlineVars({
100
- // [css.varLabelX]: toCssVarValue(labelX),
101
- // [css.varLabelY]: toCssVarValue(labelY),
102
- // }),
103
- ...(translate && assignInlineVars({
104
- [css.varTranslate]: translate,
105
- })),
100
+ ...(translate && {
101
+ [varTranslate]: translate,
102
+ }),
106
103
  ...(labelBBox && {
107
104
  maxWidth: labelBBox.width + 18,
108
105
  }),
@@ -2,6 +2,7 @@ import type { DiagramEdge } from '@likec4/core'
2
2
  import clsx from 'clsx'
3
3
  import { type PointerEventHandler, forwardRef } from 'react'
4
4
  import type { UndefinedOnPartialDeep } from 'type-fest'
5
+ import { useIsReducedGraphics, useLooseReducedGraphics } from '../../../hooks/useReducedGraphics'
5
6
  import type { EdgeProps } from '../../types'
6
7
  import * as css from './edge.css'
7
8
  import { arrowTypeToMarker, EdgeMarkers } from './EdgeMarkers'
@@ -29,13 +30,17 @@ export const EdgePath = forwardRef<SVGPathElement, EdgePathProps>(({
29
30
  dir,
30
31
  tail,
31
32
  head,
33
+ ...data
32
34
  },
33
35
  strokeWidth,
34
36
  svgPath,
35
37
  style,
38
+ animated = false,
36
39
  interactionWidth,
37
40
  onEdgePointerDown,
38
41
  }, svgPathRef) => {
42
+ const isReducedGraphics = useIsReducedGraphics()
43
+ const isLooseReduce = useLooseReducedGraphics()
39
44
  let markerStartName = arrowTypeToMarker(tail)
40
45
  let markerEndName = arrowTypeToMarker(head ?? 'normal')
41
46
  if (dir === 'back') {
@@ -54,30 +59,49 @@ export const EdgePath = forwardRef<SVGPathElement, EdgePathProps>(({
54
59
  } else if (isDashed) {
55
60
  strokeDasharray = '8,10'
56
61
  }
62
+ if (isLooseReduce) {
63
+ strokeDasharray = undefined
64
+ }
65
+
66
+ const isAnimated = (animated || data.hovered || data.active) && !data.dimmed
67
+ if (isLooseReduce && isAnimated) {
68
+ style = {
69
+ ...style,
70
+ animationName: 'none',
71
+ }
72
+ }
57
73
 
58
74
  return (
59
75
  <>
60
- <path
61
- className={clsx('react-flow__edge-interaction')}
62
- d={svgPath}
63
- fill="none"
64
- stroke={'transparent'}
65
- strokeWidth={interactionWidth ?? 10}
66
- />
76
+ {!isLooseReduce && (
77
+ <path
78
+ className={clsx('react-flow__edge-interaction')}
79
+ d={svgPath}
80
+ fill="none"
81
+ stroke={'transparent'}
82
+ strokeWidth={interactionWidth ?? 10}
83
+ />
84
+ )}
67
85
  <g className={css.markerContext} onPointerDown={onEdgePointerDown}>
68
86
  <defs>
69
87
  {MarkerStart && <MarkerStart id={'start' + id} />}
70
88
  {MarkerEnd && <MarkerEnd id={'end' + id} />}
71
89
  </defs>
72
- <path
73
- className={clsx('react-flow__edge-path', css.edgePathBg)}
74
- d={svgPath}
75
- style={style}
76
- strokeLinecap={'round'}
77
- />
90
+ {!isReducedGraphics && (
91
+ <path
92
+ className={clsx('react-flow__edge-path', css.edgePathBg)}
93
+ d={svgPath}
94
+ style={style}
95
+ strokeLinecap={'round'}
96
+ />
97
+ )}
78
98
  <path
79
99
  ref={svgPathRef}
80
- className={clsx('react-flow__edge-path', css.cssEdgePath)}
100
+ className={clsx(
101
+ 'react-flow__edge-path',
102
+ 'react-flow__edge-interaction',
103
+ css.cssEdgePath,
104
+ )}
81
105
  d={svgPath}
82
106
  style={style}
83
107
  strokeWidth={strokeWidth}