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
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ExternalLink = void 0;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- var _core = require("@likec4/core");
10
- const ExternalLink = ({
11
- visible = true,
12
- fill,
13
- fillIcon = _core.defaultTheme.colors.primary.loContrast,
14
- opacity = 1,
15
- scale = 1,
16
- x = 0,
17
- y = 0
18
- }) => {
19
- const width = 34;
20
- const offsetXY = width / 2;
21
- const iconSize = 20;
22
- const offsetIcon = iconSize / 2;
23
- return (
24
- // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error, @typescript-eslint/ban-ts-comment
25
- // @ts-ignore
26
- /* @__PURE__ */
27
- (0, _jsxRuntime.jsxs)(_konva.AnimatedGroup, {
28
- x: x + offsetXY,
29
- y: y + width - 10,
30
- offsetX: offsetXY,
31
- offsetY: width - 10,
32
- visible,
33
- scaleX: scale,
34
- scaleY: scale,
35
- opacity,
36
- width,
37
- height: width,
38
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Circle, {
39
- x: 0,
40
- y: 0,
41
- radius: offsetXY,
42
- fill,
43
- stroke: fill,
44
- strokeWidth: 1,
45
- hitStrokeWidth: 25,
46
- strokeScaleEnabled: false,
47
- perfectDrawEnabled: false,
48
- shadowBlur: 12,
49
- shadowOpacity: 0.5,
50
- shadowOffsetX: 0,
51
- shadowOffsetY: 2,
52
- shadowColor: _core.defaultTheme.shadow,
53
- shadowForStrokeEnabled: false
54
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Path, {
55
- data: "M11 3a1 1 0 1 0 0 2h2.586l-6.293 6.293a1 1 0 1 0 1.414 1.414L15 6.414V9a1 1 0 1 0 2 0V4a1 1 0 0 0-1-1h-5z",
56
- fill: fillIcon,
57
- strokeEnabled: false,
58
- perfectDrawEnabled: false,
59
- listening: false,
60
- x: 0,
61
- y: 0,
62
- offsetX: offsetIcon,
63
- offsetY: offsetIcon,
64
- width: iconSize,
65
- height: iconSize
66
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Path, {
67
- data: "M5 5a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3a1 1 0 1 0-2 0v3H5V7h3a1 1 0 0 0 0-2H5z",
68
- fill: fillIcon,
69
- strokeEnabled: false,
70
- perfectDrawEnabled: false,
71
- listening: false,
72
- x: 0,
73
- y: 0,
74
- offsetX: offsetIcon,
75
- offsetY: offsetIcon,
76
- width: iconSize,
77
- height: iconSize
78
- })]
79
- })
80
- );
81
- };
82
- exports.ExternalLink = ExternalLink;
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _ExternalLink = require("./ExternalLink");
7
- Object.keys(_ExternalLink).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _ExternalLink[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _ExternalLink[key];
14
- }
15
- });
16
- });
17
- var _BrainIcon = require("./BrainIcon");
18
- Object.keys(_BrainIcon).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _BrainIcon[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _BrainIcon[key];
25
- }
26
- });
27
- });
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- Diagram: true
8
- };
9
- Object.defineProperty(exports, "Diagram", {
10
- enumerable: true,
11
- get: function () {
12
- return _Diagram.Diagram;
13
- }
14
- });
15
- var _Diagram = require("./Diagram");
16
- var _state = require("./state");
17
- Object.keys(_state).forEach(function (key) {
18
- if (key === "default" || key === "__esModule") return;
19
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
- if (key in exports && exports[key] === _state[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _state[key];
25
- }
26
- });
27
- });
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.BrowserShape = BrowserShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _springs = require("../springs");
9
- var _konva = require("../../konva");
10
- var _NodeLabel = require("./NodeLabel");
11
- function BrowserShape({
12
- node,
13
- theme,
14
- springs,
15
- isHovered
16
- }) {
17
- const colors = theme.colors[node.color];
18
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
19
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
20
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
21
- cornerRadius: 6,
22
- perfectDrawEnabled: false,
23
- strokeEnabled: false,
24
- width: springs.width,
25
- height: springs.height,
26
- fill: springs.stroke
27
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Circle, {
28
- x: 16,
29
- y: 15,
30
- radius: 7,
31
- fill: colors.fill,
32
- listening: false
33
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Circle, {
34
- x: 36,
35
- y: 15,
36
- radius: 7,
37
- fill: colors.fill,
38
- listening: false
39
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Circle, {
40
- x: 56,
41
- y: 15,
42
- radius: 7,
43
- fill: colors.fill,
44
- listening: false
45
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
46
- cornerRadius: 5,
47
- x: 70,
48
- y: 7,
49
- width: springs.width.to(w => w - 80),
50
- height: 16,
51
- fill: springs.fill,
52
- listening: false
53
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
54
- cornerRadius: 5,
55
- x: 9,
56
- y: 31,
57
- width: springs.width.to(w => w - 18),
58
- height: springs.height.to(h => h - 40),
59
- fill: springs.fill,
60
- listening: false
61
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
62
- node,
63
- theme,
64
- offsetY: -8
65
- })]
66
- });
67
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CompoundShape = CompoundShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- function CompoundShape({
10
- node,
11
- theme,
12
- springs
13
- }) {
14
- const {
15
- labels
16
- } = node;
17
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
18
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
19
- cornerRadius: 4,
20
- shadowColor: theme.shadow,
21
- shadowBlur: node.level > 0 ? 20 : 10,
22
- shadowOpacity: node.level > 0 ? 0.35 : 0.8,
23
- shadowOffsetX: 0,
24
- shadowOffsetY: 4,
25
- shadowEnabled: springs.opacity.to(v => v > 0.7),
26
- width: springs.width,
27
- height: springs.height,
28
- fill: springs.fill,
29
- strokeEnabled: false,
30
- listening: false
31
- }), labels.map(({
32
- pt: [x, y],
33
- ...label
34
- }, i) => /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedText, {
35
- x,
36
- y: y - label.fontSize / 2,
37
- offsetX: 4,
38
- offsetY: 4,
39
- width: springs.width.to(v => v - x - 4),
40
- fill: "#BABABA",
41
- fontFamily: theme.font,
42
- fontSize: label.fontSize,
43
- fontStyle: label.fontStyle ?? "normal",
44
- letterSpacing: 0.8,
45
- align: label.align,
46
- text: label.text,
47
- wrap: "none",
48
- ellipsis: true,
49
- perfectDrawEnabled: false,
50
- padding: 6,
51
- hitStrokeWidth: 3,
52
- globalCompositeOperation: "luminosity"
53
- }, i))]
54
- });
55
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CylinderShape = CylinderShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("@react-spring/konva");
9
- var _konva2 = require("../../konva");
10
- var _NodeLabel = require("./NodeLabel");
11
- var _springs = require("../springs");
12
- function cylinderSVGPath(diameter, height, tilt = 0.0825) {
13
- const radius = Math.round(diameter / 2);
14
- const rx = radius;
15
- const ry = Math.round(tilt * radius);
16
- const tiltAdjustedHeight = height - 2 * ry;
17
- const path = ` M ${diameter},${ry}
18
- a ${rx},${ry} 0,0,0 ${-diameter} 0
19
- l 0,${tiltAdjustedHeight}
20
- a ${rx},${ry} 0,0,0 ${diameter} 0
21
- l 0,${-tiltAdjustedHeight}
22
- `.replace(/\s+/g, " ").trim();
23
- return {
24
- path,
25
- ry,
26
- rx
27
- };
28
- }
29
- function CylinderShape({
30
- node,
31
- theme,
32
- springs,
33
- isHovered
34
- }) {
35
- const {
36
- size: {
37
- width,
38
- height
39
- }
40
- } = node;
41
- const {
42
- path,
43
- rx,
44
- ry
45
- } = cylinderSVGPath(width, height);
46
- const cylinder = (0, _konva.useSpring)({
47
- to: {
48
- rx,
49
- ry
50
- }
51
- });
52
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
53
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva2.AnimatedPath, {
54
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
55
- data: path,
56
- perfectDrawEnabled: false,
57
- shadowForStrokeEnabled: false,
58
- fill: springs.fill
59
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva2.AnimatedEllipse, {
60
- x: cylinder.rx,
61
- y: cylinder.ry,
62
- radiusX: cylinder.rx,
63
- radiusY: cylinder.ry,
64
- fill: springs.stroke
65
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
66
- node,
67
- offsetY: -ry * (node.icon ? 1.5 : 0.5),
68
- theme
69
- })]
70
- });
71
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EdgeShape = EdgeShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- var _core = require("@likec4/core");
10
- function EdgeShape({
11
- edge,
12
- theme,
13
- isHovered,
14
- springs
15
- }) {
16
- const {
17
- points,
18
- headArrow,
19
- labels
20
- } = edge;
21
- (0, _core.invariant)(points[0], "Edge must have at least one point");
22
- const [x, y] = (0, _core.nonNullable)(points[0]);
23
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
24
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedCircle, {
25
- opacity: springs.opacity,
26
- x,
27
- y,
28
- radius: springs.lineWidth.to(v => v + 1),
29
- fill: springs.lineColor,
30
- visible: isHovered
31
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedLine, {
32
- opacity: springs.opacity,
33
- bezier: true,
34
- dashEnabled: true,
35
- points: points.flat(),
36
- stroke: springs.lineColor,
37
- strokeWidth: springs.lineWidth,
38
- hitStrokeWidth: 20
39
- }), headArrow && /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedLine, {
40
- opacity: springs.opacity,
41
- points: headArrow.flat(),
42
- closed: true,
43
- fill: springs.lineColor,
44
- stroke: springs.lineColor,
45
- strokeWidth: 2,
46
- hitStrokeWidth: 5
47
- }), labels.map((label, i) => /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedText, {
48
- x: label.pt[0] - 4,
49
- y: label.pt[1] - label.fontSize / 2 - 4,
50
- opacity: springs.opacity,
51
- padding: 4,
52
- fill: springs.labelColor,
53
- fontFamily: theme.font,
54
- fontSize: label.fontSize,
55
- fontStyle: label.fontStyle ?? "normal",
56
- align: label.align,
57
- text: label.text,
58
- perfectDrawEnabled: false,
59
- hitStrokeWidth: 10
60
- }, i))]
61
- });
62
- }
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MobileShape = MobileShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- var _NodeLabel = require("./NodeLabel");
10
- var _springs = require("../springs");
11
- function MobileShape({
12
- node,
13
- theme,
14
- springs,
15
- isHovered
16
- }) {
17
- const colors = theme.colors[node.color];
18
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
19
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
20
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
21
- cornerRadius: 6,
22
- width: springs.width,
23
- height: springs.height,
24
- fill: springs.stroke
25
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Circle, {
26
- x: 16,
27
- y: node.size.height / 2,
28
- radius: 10,
29
- fill: colors.fill,
30
- listening: false
31
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
32
- cornerRadius: 4,
33
- x: 31,
34
- y: 12,
35
- width: springs.width.to(w => w - 43),
36
- height: springs.height.to(h => h - 24),
37
- fill: springs.fill,
38
- listening: false
39
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
40
- node,
41
- theme,
42
- offsetX: -6
43
- })]
44
- });
45
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.NodeIcon = NodeIcon;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _useImageLoader = _interopRequireDefault(require("../../hooks/useImageLoader"));
9
- var _konva = require("../../konva");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function NodeIcon({
12
- icon,
13
- maxWidth,
14
- maxHeight,
15
- offsetX = 0,
16
- offsetY = 0
17
- }) {
18
- const [image] = (0, _useImageLoader.default)(icon);
19
- if (!image) {
20
- return null;
21
- }
22
- const padding = 16;
23
- const maxIconWidth = Math.round(maxWidth - padding * 2);
24
- const maxIconHeight = Math.round(maxHeight - padding * 2);
25
- const scale = Math.min(maxIconWidth / image.width, maxIconHeight / image.height, 1);
26
- const iconWidth = Math.floor(image.width * scale);
27
- const iconHeight = Math.floor(image.height * scale);
28
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Image, {
29
- image,
30
- x: padding + (maxIconWidth - iconWidth) / 2,
31
- y: padding + (maxIconHeight - iconHeight) / 2,
32
- offsetX,
33
- offsetY,
34
- width: iconWidth,
35
- height: iconHeight,
36
- listening: false
37
- });
38
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.NodeLabels = NodeLabels;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- var _NodeIcon = require("./NodeIcon");
10
- function NodeLabels({
11
- node: {
12
- icon,
13
- labels,
14
- size,
15
- color
16
- },
17
- theme,
18
- offsetX = 0,
19
- offsetY = 0,
20
- maxWidth
21
- }) {
22
- const colors = theme.colors[color];
23
- const width = maxWidth ?? size.width;
24
- const firstLabel = labels[0];
25
- const titleFontSize = firstLabel?.fontSize ?? 12;
26
- let nodeIcon;
27
- if (icon) {
28
- const maxHeight = firstLabel ? Math.floor(firstLabel.pt[1] - firstLabel.fontSize / 2) : size.height;
29
- nodeIcon = /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeIcon.NodeIcon, {
30
- icon,
31
- maxWidth: width,
32
- maxHeight,
33
- offsetX,
34
- offsetY
35
- });
36
- }
37
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
38
- children: [nodeIcon, labels.map((label, i) => {
39
- let color2 = colors.hiContrast;
40
- if (label.fontSize !== titleFontSize) {
41
- color2 = colors.loContrast;
42
- }
43
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.Text, {
44
- x: 8,
45
- width: width - 16,
46
- y: label.pt[1],
47
- offsetY: offsetY + label.fontSize / 2,
48
- offsetX,
49
- fill: color2,
50
- fontFamily: theme.font,
51
- fontSize: label.fontSize,
52
- fontStyle: label.fontStyle ?? "normal",
53
- align: "center",
54
- text: label.text,
55
- strokeEnabled: false,
56
- perfectDrawEnabled: false,
57
- listening: false
58
- }, label.text + i);
59
- })]
60
- });
61
- }
62
- NodeLabels.displayName = "NodeLabels";
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.PersonShape = PersonShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _springs = require("../springs");
9
- var _konva = require("../../konva");
10
- var _NodeLabel = require("./NodeLabel");
11
- const PersonIcon = {
12
- width: 115,
13
- height: 120,
14
- path: `M57.9197 0C10.9124 0 33.5766 54.75 33.5766 54.75C38.6131 62.25 45.3285 60.75 45.3285 66C45.3285 70.5 39.4526 72 33.5766 72.75C24.3431 72.75 15.9489 71.25 7.55474 84.75C2.51825 93 0 120 0 120H115C115 120 112.482 93 108.285 84.75C99.8905 70.5 91.4963 72.75 82.2628 72C76.3869 71.25 70.5109 69.75 70.5109 65.25C70.5109 60.75 77.2263 62.25 82.2628 54C82.2628 54.75 104.927 0 57.9197 0V0Z`
15
- };
16
- function PersonShape({
17
- node,
18
- theme,
19
- springs,
20
- isHovered
21
- }) {
22
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
23
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
24
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
25
- cornerRadius: 6,
26
- perfectDrawEnabled: false,
27
- strokeEnabled: false,
28
- width: springs.width,
29
- height: springs.height,
30
- fill: springs.fill
31
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedPath, {
32
- x: springs.width.to(v => v - 8),
33
- y: springs.height,
34
- data: PersonIcon.path,
35
- width: PersonIcon.width,
36
- height: PersonIcon.height,
37
- fill: springs.stroke,
38
- opacity: 0.7,
39
- perfectDrawEnabled: false,
40
- offsetX: PersonIcon.width,
41
- offsetY: PersonIcon.height,
42
- listening: false
43
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
44
- node,
45
- theme
46
- })]
47
- });
48
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueueShape = QueueShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _springs = require("../springs");
9
- var _konva = require("../../konva");
10
- var _NodeLabel = require("./NodeLabel");
11
- var _konva2 = require("@react-spring/konva");
12
- function queueSVGPath(width, height, tilt = 0.2) {
13
- const diameter = height;
14
- const radius = Math.round(diameter / 2);
15
- const ry = radius;
16
- const rx = Math.round(diameter / 2 * tilt);
17
- const tiltAdjustedWidth = width - 2 * rx;
18
- const path = ` M ${rx},0
19
- a ${rx},${ry} 0,0,0 0 ${diameter}
20
- l ${tiltAdjustedWidth},0
21
- a ${rx},${ry} 0,0,0 0 ${-diameter}
22
- `.replace(/\s+/g, " ").trim();
23
- return {
24
- path,
25
- ry,
26
- rx
27
- };
28
- }
29
- function QueueShape({
30
- node,
31
- theme,
32
- springs,
33
- isHovered
34
- }) {
35
- const {
36
- size: {
37
- width,
38
- height
39
- }
40
- } = node;
41
- const {
42
- path,
43
- rx,
44
- ry
45
- } = queueSVGPath(width, height);
46
- const props = (0, _konva2.useSpring)({
47
- to: {
48
- x: width - rx,
49
- y: ry,
50
- rx,
51
- ry
52
- }
53
- });
54
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
55
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedPath, {
56
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
57
- data: path,
58
- perfectDrawEnabled: false,
59
- fill: springs.fill
60
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedEllipse, {
61
- x: props.x,
62
- y: props.y,
63
- radiusX: props.rx,
64
- radiusY: props.ry,
65
- fill: springs.stroke
66
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
67
- node,
68
- maxWidth: width - rx * 2,
69
- theme
70
- })]
71
- });
72
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RectangleShape = RectangleShape;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _konva = require("../../konva");
9
- var _NodeLabel = require("./NodeLabel");
10
- var _springs = require("../springs");
11
- function RectangleShape({
12
- node,
13
- theme,
14
- springs,
15
- isHovered
16
- }) {
17
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
18
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_konva.AnimatedRect, {
19
- ...(0, _springs.useShadowSprings)(isHovered, theme, springs),
20
- cornerRadius: 6,
21
- strokeEnabled: false,
22
- width: springs.width,
23
- height: springs.height,
24
- fill: springs.fill
25
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_NodeLabel.NodeLabels, {
26
- node,
27
- theme
28
- })]
29
- });
30
- }