@likec4/diagram 1.59.2 → 1.59.4

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 (233) hide show
  1. package/README.md +53 -0
  2. package/dist/LikeC4Diagram.d.ts +1 -1
  3. package/dist/LikeC4Diagram.js +36 -21
  4. package/dist/LikeC4Diagram.props.d.ts +23 -0
  5. package/dist/LikeC4MantineProvider.d.ts +24 -0
  6. package/dist/LikeC4MantineProvider.js +156 -0
  7. package/dist/LikeC4ProjectsOverview.js +1 -1
  8. package/dist/LikeC4ProjectsProvider.d.ts +17 -2
  9. package/dist/LikeC4Styles.d.ts +13 -3
  10. package/dist/LikeC4Styles.js +10 -6
  11. package/dist/LikeC4View.js +2 -2
  12. package/dist/StaticLikeC4Diagram.d.ts +1 -1
  13. package/dist/base/BaseXYFlow.d.ts +1 -1
  14. package/dist/base/BaseXYFlow.js +19 -9
  15. package/dist/base/const.d.ts +1 -0
  16. package/dist/base/const.js +3 -1
  17. package/dist/base-primitives/Markdown.d.ts +3 -3
  18. package/dist/base-primitives/compound/CompoundNodeContainer.js +2 -3
  19. package/dist/base-primitives/compound/CompoundTitle.js +5 -4
  20. package/dist/base-primitives/compound/actionbtns.css.d.ts +3 -3
  21. package/dist/base-primitives/compound/actionbtns.css.js +3 -3
  22. package/dist/base-primitives/element/ElementData.js +6 -1
  23. package/dist/base-primitives/element/ElementShape.js +9 -10
  24. package/dist/base-primitives/element/ElementTags.d.ts +2 -2
  25. package/dist/base-primitives/element/ElementTags.js +5 -5
  26. package/dist/components/EmptyBox.d.ts +3 -0
  27. package/dist/components/EmptyBox.js +9 -0
  28. package/dist/components/ErrorFallback.js +7 -6
  29. package/dist/components/FloatingWindow.d.ts +18 -0
  30. package/dist/components/FloatingWindow.js +89 -0
  31. package/dist/components/Link.js +7 -7
  32. package/dist/components/NavigationPanel.d.ts +2 -2
  33. package/dist/components/NavigationPanel.js +5 -6
  34. package/dist/components/SearchControl.css.js +10 -12
  35. package/dist/components/ViewIcon.d.ts +11 -0
  36. package/dist/components/ViewIcon.js +71 -0
  37. package/dist/context/CurrentViewModelProvider.js +2 -1
  38. package/dist/context/DiagramEventHandlers.js +4 -2
  39. package/dist/context/EnsureMantine.js +3 -3
  40. package/dist/context/IconRenderer.d.ts +2 -1
  41. package/dist/context/IconRenderer.js +78 -26
  42. package/dist/context/LikeC4ProjectsContext.d.ts +3 -2
  43. package/dist/context/TagStylesContext.d.ts +11 -4
  44. package/dist/context/TagStylesContext.js +39 -27
  45. package/dist/custom/index.d.ts +3 -0
  46. package/dist/custom/index.js +7 -4
  47. package/dist/editor/LikeC4EditorCallbacks.d.ts +20 -1
  48. package/dist/editor/LikeC4EditorCallbacks.js +4 -1
  49. package/dist/editor/actor/setup.d.ts +1 -0
  50. package/dist/editor/actor/setup.js +17 -12
  51. package/dist/editor/actor/state.sync-queue.js +1 -0
  52. package/dist/editor/applyChangesToManualLayout.js +5 -2
  53. package/dist/editor/index.d.ts +1 -1
  54. package/dist/editor/useEditorActorLogic.js +10 -3
  55. package/dist/hooks/safeContext.d.ts +12 -4
  56. package/dist/hooks/safeContext.js +2 -2
  57. package/dist/hooks/useCurrentView.js +5 -5
  58. package/dist/hooks/useDiagram.js +3 -23
  59. package/dist/hooks/useDiagramCompareLayout.d.ts +16 -6
  60. package/dist/hooks/useDiagramCompareLayout.js +20 -17
  61. package/dist/hooks/useEditorActor.js +3 -5
  62. package/dist/hooks/useLikeC4Model.js +8 -3
  63. package/dist/hooks/useLikeC4Project.d.ts +4 -3
  64. package/dist/hooks/useOverlaysActor.d.ts +1 -1
  65. package/dist/hooks/useUpdateEffect.js +2 -1
  66. package/dist/index.d.ts +6 -4
  67. package/dist/index.js +8 -6
  68. package/dist/likec4diagram/DiagramUI.js +4 -3
  69. package/dist/likec4diagram/DiagramXYFlow.d.ts +6 -0
  70. package/dist/likec4diagram/DiagramXYFlow.js +33 -19
  71. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +4 -4
  72. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +2 -4
  73. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +1 -3
  74. package/dist/likec4diagram/custom/edges/edges.css.js +13 -13
  75. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.js +3 -2
  76. package/dist/likec4diagram/custom/nodes/NodeDrifts.js +2 -2
  77. package/dist/likec4diagram/custom/nodes/NodeNotes.js +4 -4
  78. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +2 -2
  79. package/dist/likec4diagram/custom/nodes/SequenceSubFlow.js +8 -5
  80. package/dist/likec4diagram/custom/nodes/nodes.js +8 -5
  81. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +2 -2
  82. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +9 -8
  83. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.js +1 -1
  84. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +3 -2
  85. package/dist/likec4diagram/relationship-popover/components.d.ts +1 -1
  86. package/dist/likec4diagram/relationship-popover/components.js +6 -2
  87. package/dist/likec4diagram/state/DiagramActorProvider.d.ts +7 -2
  88. package/dist/likec4diagram/state/DiagramActorProvider.js +20 -4
  89. package/dist/likec4diagram/state/assign.js +1 -1
  90. package/dist/likec4diagram/state/createViewChange.js +1 -6
  91. package/dist/likec4diagram/state/diagram-api.d.ts +2 -2
  92. package/dist/likec4diagram/state/diagram-api.js +3 -2
  93. package/dist/likec4diagram/state/machine.actions.js +15 -8
  94. package/dist/likec4diagram/state/machine.actions.layout.d.ts +1 -0
  95. package/dist/likec4diagram/state/machine.actions.layout.js +7 -5
  96. package/dist/likec4diagram/state/machine.setup.d.ts +10 -1
  97. package/dist/likec4diagram/state/machine.setup.js +15 -9
  98. package/dist/likec4diagram/state/machine.state.initializing.d.ts +2 -26
  99. package/dist/likec4diagram/state/machine.state.initializing.js +9 -6
  100. package/dist/likec4diagram/state/machine.state.navigating.js +1 -1
  101. package/dist/likec4diagram/state/machine.state.ready.d.ts +134 -3
  102. package/dist/likec4diagram/state/machine.state.ready.js +2 -1
  103. package/dist/likec4diagram/state/machine.state.ready.walkthrough.d.ts +106 -1
  104. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +40 -7
  105. package/dist/likec4diagram/state/utils.d.ts +1 -1
  106. package/dist/likec4diagram/state/utils.js +7 -4
  107. package/dist/likec4diagram/ui/FloatingSequenceActors.js +2 -1
  108. package/dist/likec4diagram/ui/LayoutDriftFrame.js +16 -10
  109. package/dist/likec4diagram/ui/index.d.ts +1 -1
  110. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +13 -15
  111. package/dist/likec4diagram/ui/notation/NotationPanel.js +9 -9
  112. package/dist/likec4diagram/ui/sequence-outline/ActiveTrail.d.ts +9 -0
  113. package/dist/likec4diagram/ui/sequence-outline/ActiveTrail.js +81 -0
  114. package/dist/likec4diagram/ui/sequence-outline/FlowRow.d.ts +11 -0
  115. package/dist/likec4diagram/ui/sequence-outline/FlowRow.js +70 -0
  116. package/dist/likec4diagram/ui/sequence-outline/OutlineBody.d.ts +2 -0
  117. package/dist/likec4diagram/ui/sequence-outline/OutlineBody.js +106 -0
  118. package/dist/likec4diagram/ui/sequence-outline/OutlineHeader.d.ts +2 -0
  119. package/dist/likec4diagram/ui/sequence-outline/OutlineHeader.js +140 -0
  120. package/dist/likec4diagram/ui/sequence-outline/OutlineNodes.d.ts +17 -0
  121. package/dist/likec4diagram/ui/sequence-outline/OutlineNodes.js +83 -0
  122. package/dist/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.d.ts +4 -0
  123. package/dist/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.js +49 -525
  124. package/dist/likec4diagram/ui/sequence-outline/StepBadge.d.ts +8 -0
  125. package/dist/likec4diagram/ui/sequence-outline/StepBadge.js +52 -0
  126. package/dist/likec4diagram/ui/sequence-outline/StepRow.d.ts +7 -0
  127. package/dist/likec4diagram/ui/sequence-outline/StepRow.js +190 -0
  128. package/dist/likec4diagram/ui/sequence-outline/StoreProvider.d.ts +238 -0
  129. package/dist/likec4diagram/ui/sequence-outline/StoreProvider.js +94 -0
  130. package/dist/likec4diagram/ui/sequence-outline/depth-of-field.d.ts +21 -0
  131. package/dist/likec4diagram/ui/sequence-outline/depth-of-field.js +71 -0
  132. package/dist/likec4diagram/ui/sequence-outline/index.d.ts +2 -0
  133. package/dist/likec4diagram/ui/sequence-outline/motion.d.ts +13 -0
  134. package/dist/likec4diagram/ui/sequence-outline/motion.js +21 -0
  135. package/dist/likec4diagram/ui/sequence-outline/presentation.d.ts +10 -0
  136. package/dist/likec4diagram/ui/sequence-outline/presentation.js +80 -0
  137. package/dist/likec4diagram/ui/sequence-outline/tree.d.ts +9 -0
  138. package/dist/likec4diagram/ui/sequence-outline/tree.js +67 -0
  139. package/dist/likec4diagram/ui/sequence-outline/{state.d.ts → types.d.ts} +4 -2
  140. package/dist/likec4diagram/ui/sequence-outline/types.js +12 -0
  141. package/dist/likec4diagram/useLayoutConstraints.js +13 -1
  142. package/dist/likec4diagram/xyflow-sequence/layouter.js +8 -10
  143. package/dist/likec4diagram/xyflow-sequence/sequence-view-to-xy.js +1 -0
  144. package/dist/likec4diagram/xyflow-sequence/utils.js +0 -1
  145. package/dist/navigationpanel/NavigationPanel.js +45 -41
  146. package/dist/navigationpanel/NavigationPanelControls.js +102 -63
  147. package/dist/navigationpanel/NavigationPanelDropdown.js +52 -77
  148. package/dist/navigationpanel/_common.d.ts +6 -6
  149. package/dist/navigationpanel/_common.js +31 -42
  150. package/dist/navigationpanel/actor.actions.js +6 -5
  151. package/dist/navigationpanel/actor.js +2 -2
  152. package/dist/navigationpanel/actor.setup.d.ts +6 -6
  153. package/dist/navigationpanel/actor.setup.js +2 -1
  154. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +2 -4
  155. package/dist/navigationpanel/comparepanel/ComparePanel.js +8 -10
  156. package/dist/navigationpanel/comparepanel/DriftsSummary.d.ts +1 -1
  157. package/dist/navigationpanel/comparepanel/DriftsSummary.js +11 -9
  158. package/dist/navigationpanel/controls/LayoutWarning.js +69 -72
  159. package/dist/navigationpanel/controls/NavigationButtons.d.ts +1 -1
  160. package/dist/navigationpanel/controls/NavigationButtons.js +8 -8
  161. package/dist/navigationpanel/controls/OpenSource.d.ts +1 -1
  162. package/dist/navigationpanel/controls/OpenSource.js +5 -8
  163. package/dist/navigationpanel/controls/SearchControl.js +24 -9
  164. package/dist/navigationpanel/controls/ToggleReadonly.d.ts +4 -1
  165. package/dist/navigationpanel/controls/ToggleReadonly.js +56 -76
  166. package/dist/navigationpanel/controls/ViewDetailsButton.d.ts +5 -0
  167. package/dist/navigationpanel/controls/ViewDetailsButton.js +121 -0
  168. package/dist/navigationpanel/controls/index.d.ts +1 -1
  169. package/dist/navigationpanel/dropdown/ProjectsMenu.js +27 -16
  170. package/dist/navigationpanel/editorpanel/ApplySemanticLayout.js +2 -1
  171. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +12 -10
  172. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.d.ts +2 -0
  173. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +19 -10
  174. package/dist/navigationpanel/editorpanel/styles.js +8 -15
  175. package/dist/navigationpanel/hooks.d.ts +6 -2
  176. package/dist/navigationpanel/styles.css.d.ts +2 -2
  177. package/dist/navigationpanel/styles.css.js +0 -1
  178. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +3 -2
  179. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +5 -4
  180. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +10 -39
  181. package/dist/navigationpanel/walkthrough/DynamicViewModeSwitcher.d.ts +1 -0
  182. package/dist/navigationpanel/walkthrough/DynamicViewModeSwitcher.js +49 -0
  183. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +8 -8
  184. package/dist/navigationpanel/windows/ViewDetailsWindow.d.ts +1 -0
  185. package/dist/navigationpanel/windows/ViewDetailsWindow.js +379 -0
  186. package/dist/overlays/Overlays.js +29 -17
  187. package/dist/overlays/element-details/ElementDetailsCard.css.js +28 -36
  188. package/dist/overlays/element-details/ElementDetailsCard.js +3 -3
  189. package/dist/overlays/element-details/MetadataValue.js +18 -16
  190. package/dist/overlays/element-details/TabPanelDeployments.css.js +6 -14
  191. package/dist/overlays/element-details/TabPanelRelationships.css.js +8 -12
  192. package/dist/overlays/element-details/TabPanelStructure.css.js +4 -8
  193. package/dist/overlays/hooks.d.ts +3 -1
  194. package/dist/overlays/overlay/Overlay.js +8 -7
  195. package/dist/overlays/overlaysActor.js +20 -17
  196. package/dist/overlays/relationship-details/RelationshipDetails.js +2 -1
  197. package/dist/overlays/relationship-details/SelectEdge.css.js +14 -9
  198. package/dist/overlays/relationship-details/actor.js +1 -1
  199. package/dist/overlays/relationship-details/hooks.js +2 -1
  200. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +6 -0
  201. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +15 -8
  202. package/dist/overlays/relationships-browser/SelectElement.css.js +2 -8
  203. package/dist/overlays/relationships-browser/SelectElement.js +5 -1
  204. package/dist/overlays/relationships-browser/actor.js +3 -2
  205. package/dist/overlays/relationships-browser/custom/ElementActions.js +39 -38
  206. package/dist/overlays/relationships-browser/custom/EmptyNode.js +7 -9
  207. package/dist/overlays/relationships-browser/hooks.js +2 -1
  208. package/dist/projects-overview/ProjectsOverview.js +8 -7
  209. package/dist/projects-overview/actor.js +1 -1
  210. package/dist/projects-overview/hooks.js +2 -1
  211. package/dist/search/Search.js +9 -7
  212. package/dist/search/components/ElementsColumn.css.js +6 -5
  213. package/dist/search/components/ElementsColumn.js +4 -3
  214. package/dist/search/components/SearchByTags.js +3 -3
  215. package/dist/search/components/ViewsColum.js +46 -43
  216. package/dist/search/components/ViewsColumn.css.js +4 -4
  217. package/dist/search/components/_shared.css.d.ts +2 -2
  218. package/dist/search/components/_shared.css.js +31 -46
  219. package/dist/search/components/styles.css.js +4 -4
  220. package/dist/search/hooks.js +2 -1
  221. package/dist/shadowroot/ShadowRoot.js +6 -5
  222. package/dist/styles2.js +1 -1
  223. package/dist/utils/index.js +3 -3
  224. package/package.json +29 -29
  225. package/panda.buildinfo.json +342 -299
  226. package/styles-min.css +1 -1
  227. package/styles-xyflow.css +1 -1
  228. package/styles.css +1 -1
  229. package/dist/context/DefaultMantineProvider.d.ts +0 -2
  230. package/dist/context/DefaultMantineProvider.js +0 -48
  231. package/dist/likec4diagram/ui/sequence-outline/state.js +0 -55
  232. package/dist/navigationpanel/controls/DetailsControls.d.ts +0 -2
  233. package/dist/navigationpanel/controls/DetailsControls.js +0 -223
@@ -4,7 +4,7 @@ import { css } from "@likec4/styles/css";
4
4
  import { IconChevronDown } from "@tabler/icons-react";
5
5
  import { memo } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { Button, Menu, MenuDropdown, MenuItem, MenuTarget } from "@mantine/core";
7
+ import { Button, Menu, MenuDropdown, MenuItem, MenuTarget, ScrollArea } from "@mantine/core";
8
8
  import { Box as Box$1, HStack } from "@likec4/styles/jsx";
9
9
  //#region src/navigationpanel/dropdown/ProjectsMenu.tsx
10
10
  var ProjectsMenu = memo((_) => {
@@ -18,13 +18,13 @@ var ProjectsMenu = memo((_) => {
18
18
  function WithProjectsMenu({ projects, onProjectChange }) {
19
19
  const projectId = useLikeC4ProjectId();
20
20
  return /* @__PURE__ */ jsxs(HStack, {
21
- gap: "0.5",
21
+ gap: "1",
22
22
  alignItems: "baseline",
23
23
  children: [/* @__PURE__ */ jsx(Box$1, {
24
24
  css: {
25
25
  fontWeight: "normal",
26
26
  fontSize: "xxs",
27
- color: "likec4.panel.text.dimmed",
27
+ color: "text.dimmed",
28
28
  userSelect: "none"
29
29
  },
30
30
  children: "Project"
@@ -32,20 +32,28 @@ function WithProjectsMenu({ projects, onProjectChange }) {
32
32
  withinPortal: false,
33
33
  shadow: "md",
34
34
  position: "bottom-start",
35
- offset: { mainAxis: 2 },
35
+ classNames: { itemLabel: css({
36
+ fontSize: "xs",
37
+ truncate: true,
38
+ maxWidth: "[250px]"
39
+ }) },
40
+ offset: { mainAxis: 3 },
36
41
  children: [/* @__PURE__ */ jsx(MenuTarget, { children: /* @__PURE__ */ jsx(Button, {
37
42
  tabIndex: -1,
38
43
  autoFocus: false,
39
44
  variant: "subtle",
40
45
  size: "compact-xs",
41
46
  color: "gray",
47
+ radius: "sm",
48
+ maw: 300,
42
49
  classNames: {
43
50
  root: css({
44
51
  fontWeight: "normal",
45
52
  fontSize: "xxs",
46
53
  height: "auto",
47
- lineHeight: 1.1,
48
- color: { _light: "mantine.gray[9]" }
54
+ lineHeight: "tight",
55
+ px: "1",
56
+ py: "0.5"
49
57
  }),
50
58
  section: css({ "&:is([data-position=\"right\"])": { marginInlineStart: "1" } })
51
59
  },
@@ -55,16 +63,19 @@ function WithProjectsMenu({ projects, onProjectChange }) {
55
63
  stroke: 1.5
56
64
  }),
57
65
  children: projectId
58
- }) }), /* @__PURE__ */ jsx(MenuDropdown, { children: projects.map(({ id, title }) => /* @__PURE__ */ jsx(MenuItem, {
59
- onClick: (e) => {
60
- if (projectId === id) {
61
- e.stopPropagation();
62
- return;
63
- }
64
- onProjectChange(id);
65
- },
66
- children: title ?? id
67
- }, id)) })]
66
+ }) }), /* @__PURE__ */ jsx(MenuDropdown, { children: /* @__PURE__ */ jsx(ScrollArea.Autosize, {
67
+ mah: "calc(100cqh - 200px)",
68
+ children: projects.map(({ id, title }) => /* @__PURE__ */ jsx(MenuItem, {
69
+ onClick: (e) => {
70
+ if (projectId === id) {
71
+ e.stopPropagation();
72
+ return;
73
+ }
74
+ onProjectChange(id);
75
+ },
76
+ children: title ?? id
77
+ }, id))
78
+ }) })]
68
79
  })]
69
80
  });
70
81
  }
@@ -9,10 +9,11 @@ import { jsx } from "react/jsx-runtime";
9
9
  //#region src/navigationpanel/editorpanel/ApplySemanticLayout.tsx
10
10
  var ApplySemanticLayout = memo(({ visible = true }) => {
11
11
  const diagram = useDiagram();
12
+ const isBusy = useEditorActorStateHasTag("ai-semantic-layout");
12
13
  return /* @__PURE__ */ jsx(Tooltip, {
13
14
  label: "Semantic Layout with AI",
14
15
  children: /* @__PURE__ */ jsx(PanelActionIcon, {
15
- loading: useEditorActorStateHasTag("ai-semantic-layout"),
16
+ loading: isBusy,
16
17
  initial: { display: visible ? "block" : "none" },
17
18
  animate: {
18
19
  display: visible ? "block" : "none",
@@ -1,6 +1,6 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
- import { useDiagram } from "../../hooks/safeContext.js";
3
- import { useDiagramContext } from "../../hooks/useDiagram.js";
2
+ import { selectDiagramContext, useDiagram, useDiagramSelector } from "../../hooks/safeContext.js";
3
+ import { useMantinePortalProps } from "../../hooks/useMantinePortalProps.js";
4
4
  import { PanelActionIcon } from "../_common.js";
5
5
  import { Tooltip as Tooltip$1 } from "./_common.js";
6
6
  import { autolayoutButton, autolayoutIndicator, spacingSliderBody, spacingSliderThumb } from "./styles.js";
@@ -8,19 +8,21 @@ import { IconLayoutDashboard } from "@tabler/icons-react";
8
8
  import { forwardRef, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import { useDebouncedCallback } from "@react-hookz/web";
11
+ import { deepEqual } from "fast-equals";
11
12
  import { Box, Flex, FloatingIndicator, Popover, PopoverDropdown, PopoverTarget, Text, UnstyledButton } from "@mantine/core";
12
13
  import { clampUseMovePosition, useHover, useMergedRef, useMove, useUncontrolled } from "@mantine/hooks";
13
14
  //#region src/navigationpanel/editorpanel/ChangeAutoLayoutButton.tsx
14
- var selector = (state) => ({
15
+ var selector = selectDiagramContext((state) => ({
15
16
  viewId: state.view.id,
16
17
  isManualLayout: state.view._layout === "manual",
17
18
  autoLayout: state.view.autoLayout
18
- });
19
+ }), deepEqual);
19
20
  var ChangeAutoLayoutButton = () => {
20
21
  const diagram = useDiagram();
21
22
  const [rootRef, setRootRef] = useState(null);
22
23
  const [controlsRefs, setControlsRefs] = useState({});
23
- const { autoLayout, viewId, isManualLayout } = useDiagramContext(selector);
24
+ const { autoLayout, viewId, isManualLayout } = useDiagramSelector(selector);
25
+ const portalProps = useMantinePortalProps();
24
26
  const { ref, hovered: isSpacingHovered } = useHover();
25
27
  const setControlRef = (name) => (node) => {
26
28
  controlsRefs[name] = node;
@@ -52,12 +54,11 @@ var ChangeAutoLayoutButton = () => {
52
54
  return /* @__PURE__ */ jsxs(Popover, {
53
55
  position: "right-start",
54
56
  clickOutsideEvents: ["pointerdown"],
55
- radius: "xs",
56
- shadow: "lg",
57
- offset: { mainAxis: 10 },
57
+ offset: { mainAxis: 12 },
58
+ ...portalProps,
58
59
  children: [/* @__PURE__ */ jsx(PopoverTarget, { children: /* @__PURE__ */ jsx(Tooltip$1, {
59
60
  label: "Change Auto Layout",
60
- children: /* @__PURE__ */ jsx(PanelActionIcon, { children: /* @__PURE__ */ jsx(IconLayoutDashboard, {}) })
61
+ children: /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(PanelActionIcon, { children: /* @__PURE__ */ jsx(IconLayoutDashboard, {}) }) })
61
62
  }) }), /* @__PURE__ */ jsx(PopoverDropdown, {
62
63
  className: "likec4-top-left-panel",
63
64
  p: 8,
@@ -154,8 +155,9 @@ var SpacingSliders = forwardRef(({ isVertical, nodeSep, rankSep, onChange }, _re
154
155
  let nodeSepValue = Math.round(value.x * MAX_SPACING);
155
156
  let rankSepValue = Math.round(value.y * MAX_SPACING);
156
157
  if (!isVertical) [nodeSepValue, rankSepValue] = [rankSepValue, nodeSepValue];
158
+ const mergedRef = useMergedRef(ref, _ref);
157
159
  return /* @__PURE__ */ jsxs(Box, {
158
- ref: useMergedRef(ref, _ref),
160
+ ref: mergedRef,
159
161
  className: spacingSliderBody,
160
162
  pt: "100%",
161
163
  children: [/* @__PURE__ */ jsx(Box, {
@@ -1,2 +1,4 @@
1
+ import { TooltipProps } from '@mantine/core';
1
2
  import { MemoExoticComponent } from 'react';
3
+ export declare function manualLayoutTooltipProps(isPopoverOpen: boolean): Pick<TooltipProps, 'opened'>;
2
4
  export declare const ManualLayoutToolsButton: MemoExoticComponent<() => import("react").JSX.Element>;
@@ -5,9 +5,11 @@ import { PanelActionIcon } from "../_common.js";
5
5
  import { Tooltip as Tooltip$1 } from "./_common.js";
6
6
  import { css } from "@likec4/styles/css";
7
7
  import { IconLayoutAlignBottom, IconLayoutAlignCenter, IconLayoutAlignLeft, IconLayoutAlignMiddle, IconLayoutAlignRight, IconLayoutAlignTop, IconLayoutBoardSplit, IconLayoutCollage, IconRouteOff } from "@tabler/icons-react";
8
- import { memo } from "react";
8
+ import { memo, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import { Popover, PopoverDropdown, PopoverTarget, TooltipGroup } from "@mantine/core";
10
+ import { Popover, PopoverDropdown, PopoverTarget } from "@mantine/core";
11
+ import "@mantine/hooks";
12
+ import { Box as Box$1 } from "@likec4/styles/jsx";
11
13
  import { hstack } from "@likec4/styles/patterns";
12
14
  //#region src/navigationpanel/editorpanel/ManualLayoutToolsButton.tsx
13
15
  var Action = ({ label, icon, onClick }) => /* @__PURE__ */ jsx(Tooltip$1, {
@@ -18,32 +20,39 @@ var Action = ({ label, icon, onClick }) => /* @__PURE__ */ jsx(Tooltip$1, {
18
20
  classNames: {
19
21
  root: "action-icon",
20
22
  icon: css({ "& > svg": {
21
- width: "70%",
22
- height: "70%"
23
+ width: "[70%]",
24
+ height: "[70%]"
23
25
  } })
24
26
  },
25
27
  onClick,
26
28
  children: icon
27
29
  })
28
30
  });
31
+ function manualLayoutTooltipProps(isPopoverOpen) {
32
+ return isPopoverOpen ? { opened: false } : {};
33
+ }
29
34
  var ManualLayoutToolsButton = memo(() => {
30
35
  const diagram = useDiagram();
36
+ const portalProps = useMantinePortalProps();
37
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
31
38
  return /* @__PURE__ */ jsxs(Popover, {
39
+ onChange: setIsPopoverOpen,
32
40
  position: "right",
33
41
  offset: { mainAxis: 12 },
34
42
  clickOutsideEvents: ["pointerdown"],
35
- ...useMantinePortalProps(),
43
+ ...portalProps,
36
44
  children: [/* @__PURE__ */ jsx(PopoverTarget, { children: /* @__PURE__ */ jsx(Tooltip$1, {
37
45
  label: "Manual layouting tools",
38
- children: /* @__PURE__ */ jsx(PanelActionIcon, { children: /* @__PURE__ */ jsx(IconLayoutCollage, {}) })
39
- }) }), /* @__PURE__ */ jsx(PopoverDropdown, {
46
+ ...manualLayoutTooltipProps(isPopoverOpen),
47
+ children: /* @__PURE__ */ jsx(Box$1, { children: /* @__PURE__ */ jsx(PanelActionIcon, { children: /* @__PURE__ */ jsx(IconLayoutCollage, {}) }) })
48
+ }) }), /* @__PURE__ */ jsxs(PopoverDropdown, {
40
49
  className: hstack({
41
50
  gap: "0.5",
42
51
  layerStyle: "likec4.panel",
43
52
  padding: "1",
44
53
  pointerEvents: "all"
45
54
  }),
46
- children: /* @__PURE__ */ jsxs(TooltipGroup, { children: [
55
+ children: [
47
56
  /* @__PURE__ */ jsx(Action, {
48
57
  label: "Align in columns",
49
58
  icon: /* @__PURE__ */ jsx(IconLayoutBoardSplit, {}),
@@ -116,10 +125,10 @@ var ManualLayoutToolsButton = memo(() => {
116
125
  diagram.resetEdgeControlPoints();
117
126
  }
118
127
  })
119
- ] })
128
+ ]
120
129
  })]
121
130
  });
122
131
  });
123
132
  ManualLayoutToolsButton.displayName = "ManualLayoutToolsButton";
124
133
  //#endregion
125
- export { ManualLayoutToolsButton };
134
+ export { ManualLayoutToolsButton, manualLayoutTooltipProps };
@@ -10,32 +10,26 @@ css({
10
10
  pointerEvents: "none",
11
11
  "& :where(button, .action-icon, [role='dialog'])": { pointerEvents: "all" },
12
12
  ["& .action-icon"]: { ["--ai-size"]: "2rem" },
13
- ["& .tabler-icon"]: {
14
- width: "65%",
15
- height: "65%"
16
- },
13
+ ["& .tabler-icon"]: { boxSize: "[65%]" },
17
14
  _reduceGraphics: { "& .action-icon": { "--ai-radius": "0px" } }
18
15
  });
19
16
  css({ shadow: {
20
17
  base: "md",
21
18
  _whenPanning: "none"
22
19
  } });
23
- css({ ["& .tabler-icon"]: {
24
- width: "65%",
25
- height: "65%"
26
- } });
20
+ css({ ["& .tabler-icon"]: { boxSize: "[65%]" } });
27
21
  var autolayoutButton = css({
28
- flex: "1 1 40%",
22
+ flex: "[1 1 40%]",
29
23
  textAlign: "center",
30
24
  fontWeight: "medium",
31
25
  padding: "[4px 6px]",
32
- fontSize: "11px",
33
- zIndex: 1
26
+ fontSize: "[11px]",
27
+ zIndex: "base"
34
28
  });
35
29
  var autolayoutIndicator = css({
36
30
  background: "mantine.gray[2]",
37
31
  borderRadius: "sm",
38
- border: `1px solid`,
32
+ border: `default`,
39
33
  borderColor: "mantine.gray[4]",
40
34
  _dark: {
41
35
  background: "mantine.dark[5]",
@@ -51,9 +45,8 @@ var spacingSliderBody = css({
51
45
  });
52
46
  var spacingSliderThumb = css({
53
47
  position: "absolute",
54
- width: "8px",
55
- height: "8px",
56
- border: `2px solid`,
48
+ boxSize: "[8px]",
49
+ border: `strong`,
57
50
  borderColor: "mantine.gray[5]",
58
51
  borderRadius: "sm",
59
52
  transform: "translate(-50%, -50%)"
@@ -5,11 +5,15 @@ import { Context } from './actor.setup';
5
5
  import { MachineSnapshot } from 'xstate';
6
6
  export declare const NavigationPanelActorContextProvider: Provider<NavigationPanelActorRef>, selectNavigationContext: <T>(select: (state: Context) => T, compare?: ((old: NoInfer<T>, next: NoInfer<T>) => boolean) | undefined) => [selector: (snapshot: MachineSnapshot<Context, NavigationPanelActorEvent, any, "pending" | "idle" | "active" | {
7
7
  active?: NonNullable<"search" | "opened" | "decide" | "closing">;
8
- }, "active", any, any, any>) => T, compare: (a: T, b: T) => boolean], selectNavigationSnapshot: <T>(select: (state: MachineSnapshot<Context, NavigationPanelActorEvent, any, "pending" | "idle" | "active" | {
8
+ }, "active", any, any, any>) => T, compare: (a: T, b: T) => boolean] & {
9
+ Out: T;
10
+ }, selectNavigationSnapshot: <T>(select: (state: MachineSnapshot<Context, NavigationPanelActorEvent, any, "pending" | "idle" | "active" | {
9
11
  active?: NonNullable<"search" | "opened" | "decide" | "closing">;
10
12
  }, "active", any, any, any>) => T, compare?: ((old: NoInfer<T>, next: NoInfer<T>) => boolean) | undefined) => [selector: (snapshot: MachineSnapshot<Context, NavigationPanelActorEvent, any, "pending" | "idle" | "active" | {
11
13
  active?: NonNullable<"search" | "opened" | "decide" | "closing">;
12
- }, "active", any, any, any>) => T, compare: (a: T, b: T) => boolean], useNavigationActorRef: () => NavigationPanelActorRef, useNavigationActorSelector: {
14
+ }, "active", any, any, any>) => T, compare: (a: T, b: T) => boolean] & {
15
+ Out: T;
16
+ }, useNavigationActorRef: () => NavigationPanelActorRef, useNavigationActorSelector: {
13
17
  <T>(select: (state: MachineSnapshot<Context, NavigationPanelActorEvent, any, "pending" | "idle" | "active" | {
14
18
  active?: NonNullable<"search" | "opened" | "decide" | "closing">;
15
19
  }, "active", any, any, any>) => T): T;
@@ -1,8 +1,8 @@
1
- import { RecipeRuntimeFn } from '../../styled-system/types';
1
+ import { RecipeRuntimeFn } from '@likec4/styles/types';
2
2
  export declare const breadcrumbTitle: RecipeRuntimeFn<{
3
3
  truncate: {
4
4
  true: {
5
- truncate: boolean;
5
+ truncate: true;
6
6
  };
7
7
  };
8
8
  dimmed: {
@@ -4,7 +4,6 @@ var breadcrumbTitle = cva({
4
4
  base: {
5
5
  fontSize: "sm",
6
6
  fontWeight: "medium",
7
- transition: "fast",
8
7
  color: {
9
8
  base: "likec4.panel.action",
10
9
  _hover: "likec4.panel.action.hover"
@@ -32,10 +32,11 @@ var ParallelFrame = () => {
32
32
  left: "0",
33
33
  width: "100%",
34
34
  height: "100%",
35
- border: `2px solid`,
35
+ borderWidth: "strong",
36
+ borderStyle: "solid",
36
37
  borderColor: "likec4.walkthrough.parallelFrame",
37
38
  pointerEvents: "none",
38
- md: { borderWidth: "4" }
39
+ md: { borderWidth: "extra" }
39
40
  } })
40
41
  });
41
42
  };
@@ -3,6 +3,7 @@ import { ForwardRefExoticComponent, Key, AriaRole, ClipboardEventHandler, Compos
3
3
  import { MotionProps } from 'motion/react';
4
4
  export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<ButtonProps & {
5
5
  key?: Key | null | undefined;
6
+ disabled?: boolean | undefined;
6
7
  color?: string | undefined;
7
8
  content?: string | undefined;
8
9
  translate?: "yes" | "no" | undefined;
@@ -188,7 +189,7 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
188
189
  suppressContentEditableWarning?: boolean | undefined;
189
190
  suppressHydrationWarning?: boolean | undefined;
190
191
  accessKey?: string | undefined;
191
- autoCapitalize?: (string & {}) | "none" | "on" | "off" | "sentences" | "words" | "characters" | undefined;
192
+ autoCapitalize?: "none" | (string & {}) | "on" | "off" | "sentences" | "words" | "characters" | undefined;
192
193
  autoFocus?: boolean | undefined;
193
194
  contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
194
195
  contextMenu?: string | undefined;
@@ -229,7 +230,7 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
229
230
  part?: string | undefined;
230
231
  "aria-activedescendant"?: string | undefined;
231
232
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
232
- "aria-autocomplete"?: "list" | "none" | "inline" | "both" | undefined;
233
+ "aria-autocomplete"?: "none" | "list" | "inline" | "both" | undefined;
233
234
  "aria-braillelabel"?: string | undefined;
234
235
  "aria-brailleroledescription"?: string | undefined;
235
236
  "aria-busy"?: (boolean | "true" | "false") | undefined;
@@ -265,7 +266,7 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
265
266
  "aria-posinset"?: number | undefined;
266
267
  "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
267
268
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
268
- "aria-relevant"?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
269
+ "aria-relevant"?: "text" | "all" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
269
270
  "aria-required"?: (boolean | "true" | "false") | undefined;
270
271
  "aria-roledescription"?: string | undefined;
271
272
  "aria-rowcount"?: number | undefined;
@@ -282,11 +283,11 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
282
283
  name?: string | undefined;
283
284
  value?: string | number | readonly string[] | undefined;
284
285
  ref?: Ref<HTMLButtonElement> | undefined;
285
- disabled?: boolean | undefined;
286
286
  formAction?: string | ((formData: FormData) => void | Promise<void>) | undefined;
287
287
  formEncType?: string | undefined;
288
288
  formMethod?: string | undefined;
289
289
  formNoValidate?: boolean | undefined;
290
290
  formTarget?: string | undefined;
291
291
  } & MotionProps, "ref"> & RefAttributes<HTMLButtonElement>>;
292
+ export declare function StartWalkthroughButton(): import("react").JSX.Element;
292
293
  export declare function DynamicViewControls(): import("react").JSX.Element;
@@ -1,15 +1,16 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
2
  import { useEnabledFeatures } from "../../context/DiagramFeatures.js";
3
- import { selectDiagramContext, useDiagram, useDiagramSelector } from "../../hooks/safeContext.js";
3
+ import { useDiagram } from "../../hooks/safeContext.js";
4
4
  import { Tooltip as Tooltip$1 } from "../_common.js";
5
5
  import { useNavigationActor } from "../hooks.js";
6
+ import { DynamicViewModeSwitcher } from "./DynamicViewModeSwitcher.js";
6
7
  import { css } from "@likec4/styles/css";
7
8
  import { IconPlayerPlayFilled } from "@tabler/icons-react";
8
9
  import { forwardRef } from "react";
9
- import { jsx, jsxs } from "react/jsx-runtime";
10
- import { invariant } from "@likec4/core";
11
- import { Button, SegmentedControl } from "@mantine/core";
12
- import { AnimatePresence } from "motion/react";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ import "@likec4/core";
12
+ import { Button } from "@mantine/core";
13
+ import "motion/react";
13
14
  import * as m$1 from "motion/react-m";
14
15
  //#region src/navigationpanel/walkthrough/DynamicViewControls.tsx
15
16
  var TriggerWalkthroughButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(Button, {
@@ -30,9 +31,7 @@ function StartWalkthroughButton() {
30
31
  const actor = useNavigationActor();
31
32
  let tooltipLabel = "Start Dynamic View Walkthrough";
32
33
  switch (true) {
33
- case enableCompareWithLatest:
34
- tooltipLabel = "Walkthrough not available when Compare is active";
35
- break;
34
+ case enableCompareWithLatest: tooltipLabel = "Walkthrough not available when Compare is active";
36
35
  }
37
36
  return /* @__PURE__ */ jsx(Tooltip$1, {
38
37
  label: tooltipLabel,
@@ -44,7 +43,7 @@ function StartWalkthroughButton() {
44
43
  },
45
44
  initial: {
46
45
  opacity: 0,
47
- scale: .6,
46
+ scale: .9,
48
47
  translateX: -10
49
48
  },
50
49
  animate: {
@@ -74,36 +73,8 @@ function StartWalkthroughButton() {
74
73
  })
75
74
  });
76
75
  }
77
- var DynamicViewModeSwitcher = forwardRef(({ value, onChange }, ref) => /* @__PURE__ */ jsx(m$1.div, {
78
- ref,
79
- layout: "position",
80
- children: /* @__PURE__ */ jsx(SegmentedControl, {
81
- size: "xs",
82
- value,
83
- onChange: (variant) => {
84
- invariant(variant === "diagram" || variant === "sequence", "Invalid dynamic view variant");
85
- onChange(variant);
86
- },
87
- classNames: { label: css({ fontSize: "xxs" }) },
88
- data: [{
89
- value: "diagram",
90
- label: "Diagram"
91
- }, {
92
- value: "sequence",
93
- label: "Sequence"
94
- }]
95
- })
96
- }));
97
- var selectDynamicViewVariant = selectDiagramContext((c) => c.dynamicViewVariant);
98
76
  function DynamicViewControls() {
99
- const dynamicViewVariant = useDiagramSelector(selectDynamicViewVariant);
100
- const diagram = useDiagram();
101
- return /* @__PURE__ */ jsxs(AnimatePresence, { children: [/* @__PURE__ */ jsx(DynamicViewModeSwitcher, {
102
- value: dynamicViewVariant,
103
- onChange: (mode) => {
104
- diagram.switchDynamicViewVariant(mode);
105
- }
106
- }), /* @__PURE__ */ jsx(StartWalkthroughButton, {}, "trigger-dynamic-walkthrough")] });
77
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DynamicViewModeSwitcher, {}), /* @__PURE__ */ jsx(StartWalkthroughButton, {})] });
107
78
  }
108
79
  //#endregion
109
- export { DynamicViewControls, TriggerWalkthroughButton };
80
+ export { DynamicViewControls, StartWalkthroughButton, TriggerWalkthroughButton };
@@ -0,0 +1 @@
1
+ export declare function DynamicViewModeSwitcher(): import("react").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import "../../_virtual/_rolldown/runtime.js";
2
+ import { selectDiagramContext, useDiagram, useDiagramSelector } from "../../hooks/safeContext.js";
3
+ import { css } from "@likec4/styles/css";
4
+ import { useRef } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { SegmentedControl } from "@mantine/core";
7
+ import { m } from "motion/react";
8
+ //#region src/navigationpanel/walkthrough/DynamicViewModeSwitcher.tsx
9
+ var dynamicViewModes = [{
10
+ value: "diagram",
11
+ label: "Diagram"
12
+ }, {
13
+ value: "sequence",
14
+ label: "Sequence"
15
+ }];
16
+ var selectDynamicViewVariant = selectDiagramContext((c) => c.dynamicViewVariant);
17
+ function DynamicViewModeSwitcher() {
18
+ const value = useDiagramSelector(selectDynamicViewVariant);
19
+ const diagram = useDiagram();
20
+ const controlAnimation = useRef({
21
+ initial: {
22
+ opacity: 0,
23
+ translateX: -10
24
+ },
25
+ animate: {
26
+ opacity: 1,
27
+ translateX: 0
28
+ },
29
+ exit: {
30
+ opacity: 0,
31
+ translateX: -10
32
+ }
33
+ });
34
+ return /* @__PURE__ */ jsx(m.div, {
35
+ layout: "position",
36
+ ...controlAnimation.current,
37
+ children: /* @__PURE__ */ jsx(SegmentedControl, {
38
+ value,
39
+ data: dynamicViewModes,
40
+ onChange: (variant) => {
41
+ diagram.switchDynamicViewVariant(variant);
42
+ },
43
+ size: "xs",
44
+ classNames: { label: css({ fontSize: "xxs" }) }
45
+ })
46
+ });
47
+ }
48
+ //#endregion
49
+ export { DynamicViewModeSwitcher };
@@ -1,5 +1,5 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
- import { selectDiagramActorContext, useDiagramSnapshot } from "../../hooks/useDiagram.js";
2
+ import { selectDiagramContext, useDiagramSelector } from "../../hooks/safeContext.js";
3
3
  import { Markdown } from "../../base-primitives/Markdown.js";
4
4
  import { memo } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -17,7 +17,7 @@ var SectionHeader = styled("div", { base: {
17
17
  userSelect: "none",
18
18
  mb: "xxs"
19
19
  } });
20
- var selectWalkthroughNotes = selectDiagramActorContext((s) => {
20
+ var selectWalkthroughNotes = selectDiagramContext((s) => {
21
21
  const isActive = isNonNull(s.activeWalkthrough);
22
22
  const activeStepIndex = isActive ? s.xyedges.findIndex((e) => e.id === s.activeWalkthrough?.stepId) : -1;
23
23
  return {
@@ -29,7 +29,7 @@ var selectWalkthroughNotes = selectDiagramActorContext((s) => {
29
29
  };
30
30
  });
31
31
  var WalkthroughPanel = memo(() => {
32
- const { isActive, notes: _notes } = useDiagramSnapshot(selectWalkthroughNotes);
32
+ const { isActive, notes: _notes } = useDiagramSelector(selectWalkthroughNotes);
33
33
  const notes = _notes ? RichText.from(_notes) : RichText.EMPTY;
34
34
  return /* @__PURE__ */ jsx(AnimatePresence, { children: isActive && !notes.isEmpty && /* @__PURE__ */ jsx(m.div, {
35
35
  layout: "position",
@@ -40,17 +40,17 @@ var WalkthroughPanel = memo(() => {
40
40
  padding: "md",
41
41
  paddingTop: "xxs",
42
42
  pointerEvents: "all",
43
- maxWidth: 300,
43
+ maxWidth: "[300px]",
44
44
  height: "max-content",
45
- maxHeight: "calc(100cqh - 100px)",
45
+ maxHeight: "[calc(100cqh - 100px)]",
46
46
  width: "max-content",
47
47
  cursor: "default",
48
48
  overflow: "hidden",
49
49
  "@/sm": {
50
- minWidth: 400,
51
- maxWidth: 550
50
+ minWidth: "[400px]",
51
+ maxWidth: "[550px]"
52
52
  },
53
- "@/lg": { maxWidth: 700 }
53
+ "@/lg": { maxWidth: "[700px]" }
54
54
  }),
55
55
  initial: {
56
56
  opacity: 0,
@@ -0,0 +1 @@
1
+ export declare function ViewDetailsWindow(): import("react").JSX.Element;