likec4 0.41.0 → 0.42.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 (144) hide show
  1. package/README.md +108 -0
  2. package/dist/__app__/src/App.jsx +1 -1
  3. package/dist/__app__/src/components/view-page/ExportDiagram.jsx +72 -0
  4. package/dist/__app__/src/components/view-page/ViewActionsToolbar.jsx +38 -12
  5. package/dist/cli/index.js +53 -53
  6. package/package.json +6 -6
  7. package/dist/@likec4/diagrams/cjs/components/EmbeddedDiagram.js +0 -83
  8. package/dist/@likec4/diagrams/cjs/components/FullscreenDiagramBrowser.js +0 -50
  9. package/dist/@likec4/diagrams/cjs/components/index.js +0 -49
  10. package/dist/@likec4/diagrams/cjs/components/primitives/fullscreen/CloseButton.js +0 -44
  11. package/dist/@likec4/diagrams/cjs/components/primitives/fullscreen/FullscreenDiagram.js +0 -110
  12. package/dist/@likec4/diagrams/cjs/components/primitives/fullscreen/FullscreenDiagramTitle.js +0 -39
  13. package/dist/@likec4/diagrams/cjs/components/primitives/index.js +0 -38
  14. package/dist/@likec4/diagrams/cjs/components/primitives/responsive/ResponsiveDiagram.js +0 -56
  15. package/dist/@likec4/diagrams/cjs/components/types.js +0 -1
  16. package/dist/@likec4/diagrams/cjs/diagram/Diagram.js +0 -326
  17. package/dist/@likec4/diagrams/cjs/diagram/Edges.js +0 -121
  18. package/dist/@likec4/diagrams/cjs/diagram/Nodes.js +0 -204
  19. package/dist/@likec4/diagrams/cjs/diagram/icons/BrainIcon.js +0 -25
  20. package/dist/@likec4/diagrams/cjs/diagram/icons/ExternalLink.js +0 -82
  21. package/dist/@likec4/diagrams/cjs/diagram/icons/index.js +0 -27
  22. package/dist/@likec4/diagrams/cjs/diagram/index.js +0 -27
  23. package/dist/@likec4/diagrams/cjs/diagram/shapes/Browser.js +0 -67
  24. package/dist/@likec4/diagrams/cjs/diagram/shapes/Compound.js +0 -55
  25. package/dist/@likec4/diagrams/cjs/diagram/shapes/Cylinder.js +0 -71
  26. package/dist/@likec4/diagrams/cjs/diagram/shapes/Edge.js +0 -62
  27. package/dist/@likec4/diagrams/cjs/diagram/shapes/Mobile.js +0 -45
  28. package/dist/@likec4/diagrams/cjs/diagram/shapes/NodeIcon.js +0 -38
  29. package/dist/@likec4/diagrams/cjs/diagram/shapes/NodeLabel.js +0 -62
  30. package/dist/@likec4/diagrams/cjs/diagram/shapes/Person.js +0 -48
  31. package/dist/@likec4/diagrams/cjs/diagram/shapes/Queue.js +0 -72
  32. package/dist/@likec4/diagrams/cjs/diagram/shapes/Rectangle.js +0 -30
  33. package/dist/@likec4/diagrams/cjs/diagram/shapes/index.js +0 -54
  34. package/dist/@likec4/diagrams/cjs/diagram/shapes/types.js +0 -1
  35. package/dist/@likec4/diagrams/cjs/diagram/shapes/utils.js +0 -19
  36. package/dist/@likec4/diagrams/cjs/diagram/springs.js +0 -61
  37. package/dist/@likec4/diagrams/cjs/diagram/state/atoms.js +0 -63
  38. package/dist/@likec4/diagrams/cjs/diagram/state/gestures.js +0 -26
  39. package/dist/@likec4/diagrams/cjs/diagram/state/hooks.js +0 -36
  40. package/dist/@likec4/diagrams/cjs/diagram/state/index.js +0 -38
  41. package/dist/@likec4/diagrams/cjs/diagram/state/provider.js +0 -18
  42. package/dist/@likec4/diagrams/cjs/diagram/types.js +0 -1
  43. package/dist/@likec4/diagrams/cjs/hooks/index.js +0 -49
  44. package/dist/@likec4/diagrams/cjs/hooks/useDarkMode.js +0 -11
  45. package/dist/@likec4/diagrams/cjs/hooks/useDiagramApi.js +0 -27
  46. package/dist/@likec4/diagrams/cjs/hooks/useImageLoader.js +0 -68
  47. package/dist/@likec4/diagrams/cjs/hooks/useViewIdFromHash.js +0 -93
  48. package/dist/@likec4/diagrams/cjs/index.js +0 -51
  49. package/dist/@likec4/diagrams/cjs/konva-html.js +0 -93
  50. package/dist/@likec4/diagrams/cjs/konva-portal.js +0 -50
  51. package/dist/@likec4/diagrams/cjs/konva.js +0 -102
  52. package/dist/@likec4/diagrams/cjs/likec4.js +0 -91
  53. package/dist/@likec4/diagrams/components/EmbeddedDiagram.mjs +0 -77
  54. package/dist/@likec4/diagrams/components/FullscreenDiagramBrowser.mjs +0 -52
  55. package/dist/@likec4/diagrams/components/index.mjs +0 -4
  56. package/dist/@likec4/diagrams/components/primitives/fullscreen/CloseButton.mjs +0 -43
  57. package/dist/@likec4/diagrams/components/primitives/fullscreen/FullscreenDiagram.mjs +0 -116
  58. package/dist/@likec4/diagrams/components/primitives/fullscreen/FullscreenDiagramTitle.mjs +0 -32
  59. package/dist/@likec4/diagrams/components/primitives/index.mjs +0 -3
  60. package/dist/@likec4/diagrams/components/primitives/responsive/ResponsiveDiagram.mjs +0 -42
  61. package/dist/@likec4/diagrams/components/types.mjs +0 -0
  62. package/dist/@likec4/diagrams/diagram/Diagram.mjs +0 -307
  63. package/dist/@likec4/diagrams/diagram/Edges.mjs +0 -117
  64. package/dist/@likec4/diagrams/diagram/Nodes.mjs +0 -178
  65. package/dist/@likec4/diagrams/diagram/icons/BrainIcon.mjs +0 -20
  66. package/dist/@likec4/diagrams/diagram/icons/ExternalLink.mjs +0 -90
  67. package/dist/@likec4/diagrams/diagram/icons/index.mjs +0 -2
  68. package/dist/@likec4/diagrams/diagram/index.mjs +0 -2
  69. package/dist/@likec4/diagrams/diagram/shapes/Browser.mjs +0 -49
  70. package/dist/@likec4/diagrams/diagram/shapes/Compound.mjs +0 -48
  71. package/dist/@likec4/diagrams/diagram/shapes/Cylinder.mjs +0 -57
  72. package/dist/@likec4/diagrams/diagram/shapes/Edge.mjs +0 -63
  73. package/dist/@likec4/diagrams/diagram/shapes/Mobile.mjs +0 -33
  74. package/dist/@likec4/diagrams/diagram/shapes/NodeIcon.mjs +0 -28
  75. package/dist/@likec4/diagrams/diagram/shapes/NodeLabel.mjs +0 -59
  76. package/dist/@likec4/diagrams/diagram/shapes/Person.mjs +0 -42
  77. package/dist/@likec4/diagrams/diagram/shapes/Queue.mjs +0 -58
  78. package/dist/@likec4/diagrams/diagram/shapes/Rectangle.mjs +0 -20
  79. package/dist/@likec4/diagrams/diagram/shapes/index.mjs +0 -7
  80. package/dist/@likec4/diagrams/diagram/shapes/types.mjs +0 -0
  81. package/dist/@likec4/diagrams/diagram/shapes/utils.mjs +0 -12
  82. package/dist/@likec4/diagrams/diagram/springs.mjs +0 -57
  83. package/dist/@likec4/diagrams/diagram/state/atoms.mjs +0 -71
  84. package/dist/@likec4/diagrams/diagram/state/gestures.mjs +0 -19
  85. package/dist/@likec4/diagrams/diagram/state/hooks.mjs +0 -28
  86. package/dist/@likec4/diagrams/diagram/state/index.mjs +0 -3
  87. package/dist/@likec4/diagrams/diagram/state/provider.mjs +0 -7
  88. package/dist/@likec4/diagrams/diagram/types.mjs +0 -0
  89. package/dist/@likec4/diagrams/esm/components/EmbeddedDiagram.js +0 -77
  90. package/dist/@likec4/diagrams/esm/components/FullscreenDiagramBrowser.js +0 -52
  91. package/dist/@likec4/diagrams/esm/components/index.js +0 -4
  92. package/dist/@likec4/diagrams/esm/components/primitives/fullscreen/CloseButton.js +0 -43
  93. package/dist/@likec4/diagrams/esm/components/primitives/fullscreen/FullscreenDiagram.js +0 -116
  94. package/dist/@likec4/diagrams/esm/components/primitives/fullscreen/FullscreenDiagramTitle.js +0 -32
  95. package/dist/@likec4/diagrams/esm/components/primitives/index.js +0 -3
  96. package/dist/@likec4/diagrams/esm/components/primitives/responsive/ResponsiveDiagram.js +0 -42
  97. package/dist/@likec4/diagrams/esm/components/types.js +0 -0
  98. package/dist/@likec4/diagrams/esm/diagram/Diagram.js +0 -307
  99. package/dist/@likec4/diagrams/esm/diagram/Edges.js +0 -117
  100. package/dist/@likec4/diagrams/esm/diagram/Nodes.js +0 -178
  101. package/dist/@likec4/diagrams/esm/diagram/icons/BrainIcon.js +0 -20
  102. package/dist/@likec4/diagrams/esm/diagram/icons/ExternalLink.js +0 -90
  103. package/dist/@likec4/diagrams/esm/diagram/icons/index.js +0 -2
  104. package/dist/@likec4/diagrams/esm/diagram/index.js +0 -2
  105. package/dist/@likec4/diagrams/esm/diagram/shapes/Browser.js +0 -49
  106. package/dist/@likec4/diagrams/esm/diagram/shapes/Compound.js +0 -48
  107. package/dist/@likec4/diagrams/esm/diagram/shapes/Cylinder.js +0 -57
  108. package/dist/@likec4/diagrams/esm/diagram/shapes/Edge.js +0 -63
  109. package/dist/@likec4/diagrams/esm/diagram/shapes/Mobile.js +0 -33
  110. package/dist/@likec4/diagrams/esm/diagram/shapes/NodeIcon.js +0 -28
  111. package/dist/@likec4/diagrams/esm/diagram/shapes/NodeLabel.js +0 -59
  112. package/dist/@likec4/diagrams/esm/diagram/shapes/Person.js +0 -42
  113. package/dist/@likec4/diagrams/esm/diagram/shapes/Queue.js +0 -58
  114. package/dist/@likec4/diagrams/esm/diagram/shapes/Rectangle.js +0 -20
  115. package/dist/@likec4/diagrams/esm/diagram/shapes/index.js +0 -7
  116. package/dist/@likec4/diagrams/esm/diagram/shapes/types.js +0 -0
  117. package/dist/@likec4/diagrams/esm/diagram/shapes/utils.js +0 -12
  118. package/dist/@likec4/diagrams/esm/diagram/springs.js +0 -57
  119. package/dist/@likec4/diagrams/esm/diagram/state/atoms.js +0 -71
  120. package/dist/@likec4/diagrams/esm/diagram/state/gestures.js +0 -19
  121. package/dist/@likec4/diagrams/esm/diagram/state/hooks.js +0 -28
  122. package/dist/@likec4/diagrams/esm/diagram/state/index.js +0 -3
  123. package/dist/@likec4/diagrams/esm/diagram/state/provider.js +0 -7
  124. package/dist/@likec4/diagrams/esm/diagram/types.js +0 -0
  125. package/dist/@likec4/diagrams/esm/hooks/index.js +0 -4
  126. package/dist/@likec4/diagrams/esm/hooks/useDarkMode.js +0 -5
  127. package/dist/@likec4/diagrams/esm/hooks/useDiagramApi.js +0 -27
  128. package/dist/@likec4/diagrams/esm/hooks/useImageLoader.js +0 -64
  129. package/dist/@likec4/diagrams/esm/hooks/useViewIdFromHash.js +0 -87
  130. package/dist/@likec4/diagrams/esm/index.js +0 -4
  131. package/dist/@likec4/diagrams/esm/konva-html.js +0 -74
  132. package/dist/@likec4/diagrams/esm/konva-portal.js +0 -34
  133. package/dist/@likec4/diagrams/esm/konva.js +0 -22
  134. package/dist/@likec4/diagrams/esm/likec4.js +0 -54
  135. package/dist/@likec4/diagrams/hooks/index.mjs +0 -4
  136. package/dist/@likec4/diagrams/hooks/useDarkMode.mjs +0 -5
  137. package/dist/@likec4/diagrams/hooks/useDiagramApi.mjs +0 -27
  138. package/dist/@likec4/diagrams/hooks/useImageLoader.mjs +0 -64
  139. package/dist/@likec4/diagrams/hooks/useViewIdFromHash.mjs +0 -87
  140. package/dist/@likec4/diagrams/index.mjs +0 -4
  141. package/dist/@likec4/diagrams/konva-html.mjs +0 -74
  142. package/dist/@likec4/diagrams/konva-portal.mjs +0 -34
  143. package/dist/@likec4/diagrams/konva.mjs +0 -33
  144. package/dist/@likec4/diagrams/likec4.mjs +0 -54
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "likec4",
3
- "version": "0.41.0",
3
+ "version": "0.42.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://likec4.dev",
6
6
  "author": "Denis Davydkov <denis@davydkov.com>",
@@ -81,11 +81,11 @@
81
81
  "vite": "^4.5.0"
82
82
  },
83
83
  "devDependencies": {
84
- "@likec4/core": "0.41.0",
85
- "@likec4/diagrams": "0.41.0",
86
- "@likec4/generators": "0.41.0",
87
- "@likec4/language-server": "0.41.0",
88
- "@likec4/layouts": "0.41.0",
84
+ "@likec4/core": "0.42.1",
85
+ "@likec4/diagrams": "0.42.1",
86
+ "@likec4/generators": "0.42.1",
87
+ "@likec4/language-server": "0.42.1",
88
+ "@likec4/layouts": "0.42.1",
89
89
  "@types/node": "^20.8.7",
90
90
  "@types/prop-types": "^15.7.9",
91
91
  "@types/react": "^18.2.0",
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EmbeddedDiagram = void 0;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _core = require("@likec4/core");
9
- var _react = require("react");
10
- var _primitives = require("./primitives");
11
- var _FullscreenDiagramBrowser = require("./FullscreenDiagramBrowser");
12
- const EmbeddedPadding = [20, 20, 20, 20];
13
- const defaultRenderDisclose = ({
14
- views,
15
- viewId,
16
- initialPosition,
17
- onClose
18
- }) => /* @__PURE__ */(0, _jsxRuntime.jsx)(_FullscreenDiagramBrowser.FullscreenDiagramBrowser, {
19
- views,
20
- initialViewId: viewId,
21
- initialPosition,
22
- onClose
23
- });
24
- const EmbeddedDiagram = /* @__PURE__ */(0, _react.forwardRef)(({
25
- animate = false,
26
- views,
27
- viewId,
28
- padding,
29
- noBrowser = false,
30
- renderDisclose = defaultRenderDisclose,
31
- ...props
32
- }, ref) => {
33
- const diagram = views[viewId];
34
- (0, _core.invariant)(diagram, `View "${viewId}" not found in views`);
35
- const [initialPosition, setBrowserInitialPosition] = (0, _react.useState)(null);
36
- const isOpened = initialPosition !== null;
37
- const openBrowser = s => {
38
- const rect = s.container().getBoundingClientRect(),
39
- scale = s.scaleX(),
40
- embeddedX = s.x() - s.offsetX(),
41
- embeddedY = s.y() - s.offsetY(),
42
- offset = {
43
- x: window.innerWidth / 2,
44
- y: window.innerHeight / 2
45
- };
46
- setBrowserInitialPosition({
47
- x: Math.ceil(embeddedX + rect.x * scale + offset.x),
48
- y: Math.ceil(embeddedY + rect.y * scale + offset.y),
49
- scale
50
- });
51
- };
52
- const onNodeEdgeClick = (_node, e) => {
53
- const stage = e.target.getStage();
54
- if (stage) {
55
- e.cancelBubble = true;
56
- openBrowser(stage);
57
- }
58
- };
59
- const onClose = (0, _react.useCallback)(() => setBrowserInitialPosition(null), []);
60
- const enableBrowseClicks = !noBrowser && !isOpened;
61
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)("div", {
62
- ...props,
63
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_primitives.ResponsiveDiagram, {
64
- ref,
65
- animate,
66
- zoomable: false,
67
- pannable: false,
68
- diagram,
69
- padding: padding ?? EmbeddedPadding,
70
- ...(enableBrowseClicks && {
71
- onStageClick: openBrowser,
72
- onEdgeClick: onNodeEdgeClick,
73
- onNodeClick: onNodeEdgeClick
74
- })
75
- }), isOpened && renderDisclose({
76
- views,
77
- viewId,
78
- initialPosition,
79
- onClose
80
- })]
81
- });
82
- });
83
- exports.EmbeddedDiagram = EmbeddedDiagram;
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FullscreenDiagramBrowser = FullscreenDiagramBrowser;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _core = require("@likec4/core");
9
- var _esm = require("@react-hookz/web/esm");
10
- var _react = require("react");
11
- var _reactDom = require("react-dom");
12
- var _useViewIdFromHash = require("../hooks/useViewIdFromHash");
13
- var _primitives = require("./primitives");
14
- function FullscreenDiagramBrowser({
15
- initialViewId,
16
- views,
17
- initialPosition,
18
- onClose,
19
- closeOnEsc,
20
- closeOnOutsideClick,
21
- ...props
22
- }) {
23
- const viewsRef = (0, _esm.useSyncedRef)(views);
24
- const [viewId, setViewId] = (0, _useViewIdFromHash.useViewIdFromHash)({
25
- initialViewId,
26
- onReturnToInitial: () => {
27
- onClose?.();
28
- }
29
- });
30
- const diagram = views[viewId];
31
- (0, _core.invariant)(diagram, `View "${viewId}" not found in views`);
32
- const onNodeClick = (0, _react.useCallback)(node => {
33
- if (node.navigateTo && node.navigateTo in viewsRef.current) {
34
- setViewId(node.navigateTo);
35
- }
36
- }, [viewsRef, setViewId]);
37
- return (0, _reactDom.createPortal)( /* @__PURE__ */(0, _jsxRuntime.jsx)(_primitives.FullscreenDiagram, {
38
- diagram,
39
- initialPosition,
40
- closeOnEsc: true,
41
- closeOnOutsideClick: true,
42
- onNodeClick,
43
- onClose,
44
- ...props,
45
- children: /* @__PURE__ */(0, _jsxRuntime.jsx)(_primitives.FullscreenDiagramTitle, {
46
- children: diagram.title
47
- })
48
- }), document.body, "FullscreenDiagramBrowser");
49
- }
50
- FullscreenDiagramBrowser.displayName = "FullscreenDiagramBrowser";
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _FullscreenDiagramBrowser = require("./FullscreenDiagramBrowser");
7
- Object.keys(_FullscreenDiagramBrowser).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _FullscreenDiagramBrowser[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _FullscreenDiagramBrowser[key];
14
- }
15
- });
16
- });
17
- var _EmbeddedDiagram = require("./EmbeddedDiagram");
18
- Object.keys(_EmbeddedDiagram).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _EmbeddedDiagram[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _EmbeddedDiagram[key];
25
- }
26
- });
27
- });
28
- var _primitives = require("./primitives");
29
- Object.keys(_primitives).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _primitives[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _primitives[key];
36
- }
37
- });
38
- });
39
- var _types = require("./types");
40
- Object.keys(_types).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _types[key]) return;
43
- Object.defineProperty(exports, key, {
44
- enumerable: true,
45
- get: function () {
46
- return _types[key];
47
- }
48
- });
49
- });
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CloseButton = void 0;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _react = require("react");
9
- const CrossIcon = (0, _react.forwardRef)((props, ref) => /* @__PURE__ */(0, _jsxRuntime.jsx)("svg", {
10
- ref,
11
- width: "15",
12
- height: "15",
13
- viewBox: "0 0 15 15",
14
- fill: "none",
15
- xmlns: "http://www.w3.org/2000/svg",
16
- ...props,
17
- children: /* @__PURE__ */(0, _jsxRuntime.jsx)("path", {
18
- d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",
19
- fill: "currentColor",
20
- fillRule: "evenodd",
21
- clipRule: "evenodd"
22
- })
23
- }));
24
- const CloseButton = ({
25
- style,
26
- ...props
27
- }) => /* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
28
- ...props,
29
- style: {
30
- position: "absolute",
31
- top: "1rem",
32
- right: "1rem",
33
- width: 24,
34
- height: 24,
35
- cursor: "pointer",
36
- color: "var(--likec4-browser-close-btn-color, rgba(200,200,200,0.8))",
37
- ...style
38
- },
39
- children: /* @__PURE__ */(0, _jsxRuntime.jsx)(CrossIcon, {
40
- width: 24,
41
- height: 24
42
- })
43
- });
44
- exports.CloseButton = CloseButton;
@@ -1,110 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FullscreenDiagram = FullscreenDiagram;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _core = require("@likec4/core");
9
- var _esm = require("@react-hookz/web/esm");
10
- var _bodyScrollLockUpgrade = require("body-scroll-lock-upgrade");
11
- var _react = require("react");
12
- var _Diagram = require("../../../diagram/Diagram");
13
- var _CloseButton = require("./CloseButton");
14
- const DefaultPadding = [30, 30, 30, 30];
15
- const StyleOverlay = {
16
- position: "fixed",
17
- top: 0,
18
- left: 0,
19
- right: 0,
20
- bottom: 0,
21
- backgroundColor: "var(--likec4-browser-overlay-bg, rgba(18,18,18,0.8))",
22
- backdropFilter: "var(--likec4-browser-backdrop, blur(4px))",
23
- zIndex: "var(--likec4-overlay-z-index, 100)",
24
- display: "flex",
25
- placeContent: "strech",
26
- placeItems: "strech",
27
- touchAction: "pan-x pan-y pinch-zoom",
28
- boxSizing: "border-box",
29
- margin: 0,
30
- padding: 0,
31
- border: "0 solid transparent"
32
- };
33
- const StyleContainer = {
34
- margin: 0,
35
- padding: 0,
36
- flex: "1 1 100%",
37
- overflow: "hidden"
38
- };
39
- function FullscreenDiagram({
40
- diagram,
41
- initialPosition,
42
- padding,
43
- style,
44
- styleDiagram,
45
- closeOnEsc = true,
46
- closeOnOutsideClick,
47
- onNodeClick,
48
- onEdgeClick,
49
- onStageClick,
50
- onClose,
51
- children,
52
- ...props
53
- }) {
54
- if (onStageClick && closeOnOutsideClick === true) {
55
- throw new Error("onStageClick cannot be used with closeOnOutsideClick");
56
- }
57
- if (closeOnEsc || closeOnOutsideClick) {
58
- (0, _core.invariant)(onClose, "onClose is required when closeOnEsc or closeOnOutsideClick");
59
- }
60
- const overlayRef = (0, _react.useRef)(null);
61
- const [measures, containerRef] = (0, _esm.useMeasure)();
62
- (0, _react.useEffect)(() => {
63
- const target = overlayRef.current;
64
- if (!target) {
65
- return;
66
- }
67
- (0, _bodyScrollLockUpgrade.disableBodyScroll)(target);
68
- return () => {
69
- (0, _bodyScrollLockUpgrade.enableBodyScroll)(target);
70
- };
71
- }, []);
72
- (0, _esm.useKeyboardEvent)(closeOnEsc && "Escape", () => {
73
- onClose?.();
74
- }, [], {
75
- eventOptions: {
76
- passive: true
77
- }
78
- });
79
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)("div", {
80
- ref: overlayRef,
81
- style: {
82
- ...StyleOverlay,
83
- ...style
84
- },
85
- ...props,
86
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
87
- ref: containerRef,
88
- style: {
89
- ...StyleContainer
90
- },
91
- children: measures && /* @__PURE__ */(0, _jsxRuntime.jsx)(_Diagram.Diagram, {
92
- animate: true,
93
- pannable: true,
94
- zoomable: true,
95
- diagram,
96
- width: measures.width,
97
- height: measures.height,
98
- initialPosition,
99
- padding: padding ?? DefaultPadding,
100
- style: styleDiagram,
101
- onNodeClick,
102
- onEdgeClick,
103
- onStageClick: onStageClick ?? (closeOnOutsideClick ? onClose : void 0)
104
- })
105
- }), children, onClose && /* @__PURE__ */(0, _jsxRuntime.jsx)(_CloseButton.CloseButton, {
106
- onClick: () => onClose()
107
- })]
108
- });
109
- }
110
- FullscreenDiagram.displayName = "FullscreenDiagram";
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FullscreenDiagramTitle = FullscreenDiagramTitle;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- const ContainerStyles = {
9
- position: "absolute",
10
- pointerEvents: "none",
11
- userSelect: "none",
12
- top: 0,
13
- left: 0,
14
- width: "100%",
15
- margin: 0,
16
- padding: "10px 20px 0 20px",
17
- boxSizing: "border-box",
18
- color: "rgb(241 245 249 / 95%)",
19
- fontFamily: 'ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif',
20
- fontSize: "16px",
21
- lineHeight: "1.1",
22
- fontWeight: "500",
23
- textShadow: "4px 4px 5px rgb(17 17 17)"
24
- };
25
- function FullscreenDiagramTitle({
26
- children,
27
- style,
28
- ...props
29
- }) {
30
- return /* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
31
- style: {
32
- ...ContainerStyles,
33
- ...style
34
- },
35
- ...props,
36
- children
37
- });
38
- }
39
- FullscreenDiagramTitle.displayName = "FullscreenDiagramTitle";
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _ResponsiveDiagram = require("./responsive/ResponsiveDiagram");
7
- Object.keys(_ResponsiveDiagram).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _ResponsiveDiagram[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _ResponsiveDiagram[key];
14
- }
15
- });
16
- });
17
- var _FullscreenDiagram = require("./fullscreen/FullscreenDiagram");
18
- Object.keys(_FullscreenDiagram).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _FullscreenDiagram[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _FullscreenDiagram[key];
25
- }
26
- });
27
- });
28
- var _FullscreenDiagramTitle = require("./fullscreen/FullscreenDiagramTitle");
29
- Object.keys(_FullscreenDiagramTitle).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _FullscreenDiagramTitle[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _FullscreenDiagramTitle[key];
36
- }
37
- });
38
- });
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ResponsiveDiagram = void 0;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _esm = require("@react-hookz/web/esm");
9
- var _react = require("react");
10
- var _diagram = require("../../../diagram");
11
- const ResponsiveDiagram = /* @__PURE__ */(0, _react.forwardRef)(({
12
- diagram,
13
- animate = false,
14
- className,
15
- diagramClassName,
16
- style,
17
- ...props
18
- }, ref) => {
19
- const [measures, containerRef] = (0, _esm.useMeasure)();
20
- const w = diagram.width,
21
- h = diagram.height;
22
- return /* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
23
- style: {
24
- position: "relative",
25
- display: "flex",
26
- aspectRatio: `${w} / ${h}`,
27
- width: "100%",
28
- height: "auto",
29
- marginLeft: "auto",
30
- marginRight: "auto",
31
- padding: 0,
32
- maxWidth: w,
33
- boxSizing: "border-box",
34
- ...style
35
- },
36
- className,
37
- children: /* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
38
- ref: containerRef,
39
- style: {
40
- flex: "1 1 100%",
41
- overflow: "hidden"
42
- },
43
- children: measures && /* @__PURE__ */(0, _jsxRuntime.jsx)(_diagram.Diagram, {
44
- ref,
45
- width: Math.floor(measures.width),
46
- height: Math.floor(measures.height),
47
- diagram,
48
- className: diagramClassName,
49
- animate,
50
- ...props
51
- })
52
- })
53
- });
54
- });
55
- exports.ResponsiveDiagram = ResponsiveDiagram;
56
- ResponsiveDiagram.displayName = "ResponsiveDiagram";
@@ -1 +0,0 @@
1
- "use strict";