seat-editor 3.4.8 → 3.5.0

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 (145) hide show
  1. package/dist/app/constant.d.ts +1 -1
  2. package/dist/app/graph-view/page.d.ts +1 -0
  3. package/dist/app/graph-view/page.js +343 -0
  4. package/dist/app/graph-view/page.jsx +445 -0
  5. package/dist/app/graph-view-new/constant.d.ts +581 -0
  6. package/dist/app/graph-view-new/constant.js +6973 -0
  7. package/dist/app/graph-view-new/page.d.ts +1 -0
  8. package/dist/app/graph-view-new/page.js +71 -0
  9. package/dist/app/graph-view-new/page.jsx +98 -0
  10. package/dist/app/layout.d.ts +1 -1
  11. package/dist/app/new-board/page.d.ts +1 -1
  12. package/dist/app/new-board/page.js +43 -7
  13. package/dist/app/new-board/page.jsx +45 -12
  14. package/dist/app/old-board/page.d.ts +1 -2
  15. package/dist/app/only-view/chair.d.ts +1 -1
  16. package/dist/app/only-view/chair.js +2 -10
  17. package/dist/app/only-view/page.d.ts +1 -1
  18. package/dist/app/only-view/user.d.ts +1 -1
  19. package/dist/app/only-view/user.js +2 -10
  20. package/dist/app/page.d.ts +1 -1
  21. package/dist/app/test/page.d.ts +1 -2
  22. package/dist/app/v2/page.d.ts +1 -1
  23. package/dist/components/button-tools/index.d.ts +1 -1
  24. package/dist/components/button-tools/index.js +7 -5
  25. package/dist/components/button-tools/index.jsx +21 -9
  26. package/dist/components/form-tools/label.d.ts +1 -1
  27. package/dist/components/form-tools/label.js +9 -20
  28. package/dist/components/form-tools/label.jsx +38 -28
  29. package/dist/components/form-tools/shape.d.ts +1 -1
  30. package/dist/components/form-tools/shape.js +5 -5
  31. package/dist/components/form-tools/shape.jsx +8 -8
  32. package/dist/components/input/number-indicator.d.ts +1 -1
  33. package/dist/components/joystick/index.d.ts +1 -2
  34. package/dist/components/layer/index.d.ts +1 -1
  35. package/dist/components/layer-v2/index.d.ts +1 -1
  36. package/dist/components/layer-v3/index.d.ts +1 -1
  37. package/dist/components/layer-v3/index.js +44 -3
  38. package/dist/components/layer-v3/index.jsx +120 -3
  39. package/dist/components/layer-v4/index.d.ts +1 -1
  40. package/dist/components/layer-v5/constant.d.ts +60 -0
  41. package/dist/components/layer-v5/constant.js +93 -0
  42. package/dist/components/layer-v5/index.d.ts +24 -0
  43. package/dist/components/layer-v5/index.js +927 -0
  44. package/dist/components/layer-v5/index.jsx +1049 -0
  45. package/dist/components/lib/index.d.ts +1 -1
  46. package/dist/components/modal-preview/index.d.ts +1 -1
  47. package/dist/features/board/index.d.ts +1 -1
  48. package/dist/features/board-v2/index.d.ts +1 -2
  49. package/dist/features/board-v3/index.d.ts +1 -1
  50. package/dist/features/board-v3/index.js +350 -72
  51. package/dist/features/board-v3/index.jsx +369 -75
  52. package/dist/features/board-v3/resize-element.js +5 -0
  53. package/dist/features/board-v3/utils.d.ts +8 -0
  54. package/dist/features/board-v3/utils.js +23 -7
  55. package/dist/features/navbar/index.d.ts +1 -1
  56. package/dist/features/package/index.d.ts +3 -1
  57. package/dist/features/package/index.js +1 -1
  58. package/dist/features/package/index.jsx +6 -1
  59. package/dist/features/panel/index.d.ts +9 -1
  60. package/dist/features/panel/index.js +160 -38
  61. package/dist/features/panel/index.jsx +173 -46
  62. package/dist/features/panel/polygon.d.ts +2 -0
  63. package/dist/features/panel/polygon.js +44 -0
  64. package/dist/features/panel/polygon.jsx +70 -0
  65. package/dist/features/panel/select-tool.d.ts +1 -1
  66. package/dist/features/panel/select-tool.js +3 -0
  67. package/dist/features/panel/select-tool.jsx +3 -0
  68. package/dist/features/panel/selected-group.d.ts +1 -1
  69. package/dist/features/panel/selected-group.js +24 -26
  70. package/dist/features/panel/selected-group.jsx +56 -51
  71. package/dist/features/panel/square-circle-tool.d.ts +1 -1
  72. package/dist/features/panel/table-seat-circle.d.ts +1 -1
  73. package/dist/features/panel/table-seat-square.d.ts +1 -1
  74. package/dist/features/panel/text-tool.d.ts +1 -1
  75. package/dist/features/panel/text-tool.js +17 -2
  76. package/dist/features/panel/text-tool.jsx +19 -2
  77. package/dist/features/panel/upload-tool.d.ts +1 -1
  78. package/dist/features/panel/upload-tool.js +17 -3
  79. package/dist/features/panel/upload-tool.jsx +23 -4
  80. package/dist/features/side-tool/index.d.ts +1 -1
  81. package/dist/features/side-tool/index.js +43 -6
  82. package/dist/features/side-tool/index.jsx +47 -10
  83. package/dist/features/view-only/index.d.ts +1 -1
  84. package/dist/features/view-only-2/index.d.ts +1 -1
  85. package/dist/features/view-only-3/index.d.ts +1 -1
  86. package/dist/features/view-only-4/connect-handle.d.ts +13 -0
  87. package/dist/features/view-only-4/connect-handle.js +23 -0
  88. package/dist/features/view-only-4/connect-handle.jsx +30 -0
  89. package/dist/features/view-only-4/connection-layer.d.ts +21 -0
  90. package/dist/features/view-only-4/connection-layer.js +219 -0
  91. package/dist/features/view-only-4/connection-layer.jsx +291 -0
  92. package/dist/features/view-only-4/index.d.ts +99 -0
  93. package/dist/features/view-only-4/index.js +684 -0
  94. package/dist/features/view-only-4/index.jsx +722 -0
  95. package/dist/features/view-only-4/integration-guide.d.ts +0 -0
  96. package/dist/features/view-only-4/integration-guide.js +0 -0
  97. package/dist/features/view-only-4/use-connection-graph.d.ts +41 -0
  98. package/dist/features/view-only-4/use-connection-graph.js +182 -0
  99. package/dist/features/view-only-4/utils.d.ts +74 -0
  100. package/dist/features/view-only-4/utils.js +106 -0
  101. package/dist/features/view-only-5/connect-handle.d.ts +30 -0
  102. package/dist/features/view-only-5/connect-handle.js +88 -0
  103. package/dist/features/view-only-5/connect-handle.jsx +96 -0
  104. package/dist/features/view-only-5/connection-layer.d.ts +34 -0
  105. package/dist/features/view-only-5/connection-layer.js +182 -0
  106. package/dist/features/view-only-5/connection-layer.jsx +265 -0
  107. package/dist/features/view-only-5/index.d.ts +102 -0
  108. package/dist/features/view-only-5/index.js +585 -0
  109. package/dist/features/view-only-5/index.jsx +614 -0
  110. package/dist/features/view-only-5/use-connection-graph.d.ts +57 -0
  111. package/dist/features/view-only-5/use-connection-graph.js +196 -0
  112. package/dist/features/view-only-5/utils.d.ts +52 -0
  113. package/dist/features/view-only-5/utils.js +80 -0
  114. package/dist/features/view-only-6/connect-handle.d.ts +13 -0
  115. package/dist/features/view-only-6/connect-handle.js +20 -0
  116. package/dist/features/view-only-6/connect-handle.jsx +21 -0
  117. package/dist/features/view-only-6/connection-layer.d.ts +22 -0
  118. package/dist/features/view-only-6/connection-layer.js +191 -0
  119. package/dist/features/view-only-6/connection-layer.jsx +244 -0
  120. package/dist/features/view-only-6/index.d.ts +99 -0
  121. package/dist/features/view-only-6/index.js +687 -0
  122. package/dist/features/view-only-6/index.jsx +724 -0
  123. package/dist/features/view-only-6/use-connection-graph.d.ts +26 -0
  124. package/dist/features/view-only-6/use-connection-graph.js +103 -0
  125. package/dist/features/view-only-6/utils.d.ts +66 -0
  126. package/dist/features/view-only-6/utils.js +96 -0
  127. package/dist/features/view-only-7/connect-handle.d.ts +13 -0
  128. package/dist/features/view-only-7/connect-handle.js +23 -0
  129. package/dist/features/view-only-7/connect-handle.jsx +30 -0
  130. package/dist/features/view-only-7/connection-layer.d.ts +22 -0
  131. package/dist/features/view-only-7/connection-layer.js +165 -0
  132. package/dist/features/view-only-7/connection-layer.jsx +217 -0
  133. package/dist/features/view-only-7/index.d.ts +99 -0
  134. package/dist/features/view-only-7/index.js +687 -0
  135. package/dist/features/view-only-7/index.jsx +724 -0
  136. package/dist/features/view-only-7/use-connection-graph.d.ts +26 -0
  137. package/dist/features/view-only-7/use-connection-graph.js +104 -0
  138. package/dist/features/view-only-7/utils.d.ts +69 -0
  139. package/dist/features/view-only-7/utils.js +144 -0
  140. package/dist/index.d.ts +2 -1
  141. package/dist/index.js +2 -1
  142. package/dist/provider/redux-provider.d.ts +1 -1
  143. package/dist/provider/store-provider.d.ts +1 -1
  144. package/dist/seat-editor.css +1 -1
  145. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ import { NodeType } from "./utils";
2
+ import { EdgeType } from "./connection-layer";
3
+ export type UseConnectionGraphOptions = {
4
+ svgRef: React.RefObject<SVGSVGElement>;
5
+ getNodeById: (id: string) => NodeType | null;
6
+ onEdgesChange?: (edges: EdgeType[]) => void;
7
+ };
8
+ export declare const useConnectionGraph: ({ svgRef, getNodeById, onEdgesChange, }: UseConnectionGraphOptions) => {
9
+ edges: EdgeType[];
10
+ setEdges: import("react").Dispatch<import("react").SetStateAction<EdgeType[]>>;
11
+ selectedEdge: string;
12
+ connecting: {
13
+ fromId: string;
14
+ };
15
+ mousePos: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ startConnect: (fromId: string) => void;
20
+ endConnect: (toId: string) => void;
21
+ cancelConnect: () => void;
22
+ selectEdge: (edgeId: string) => void;
23
+ deleteEdge: (edgeId: string) => void;
24
+ clearSelection: () => void;
25
+ onMouseMove: (e: React.MouseEvent<SVGSVGElement> | MouseEvent) => void;
26
+ };
@@ -0,0 +1,104 @@
1
+ // hooks/use-connection-graph.ts
2
+ import { useCallback, useEffect, useState } from "react";
3
+ export const useConnectionGraph = ({ svgRef, getNodeById, onEdgesChange, }) => {
4
+ const [edges, setEdges] = useState([]);
5
+ const [selectedEdge, setSelectedEdge] = useState(null);
6
+ const [connecting, setConnecting] = useState(null);
7
+ const [mousePos, setMousePos] = useState({ x: 0, y: 0 });
8
+ console.log({ edges });
9
+ // Notify parent setiap edges berubah
10
+ useEffect(() => {
11
+ onEdgesChange === null || onEdgesChange === void 0 ? void 0 : onEdgesChange(edges);
12
+ }, [edges]);
13
+ // Keyboard: Delete/Backspace → hapus edge, Escape → cancel connect
14
+ useEffect(() => {
15
+ const handleKeyDown = (e) => {
16
+ const tag = e.target.tagName.toLowerCase();
17
+ if (tag === "input" || tag === "textarea")
18
+ return;
19
+ if ((e.key === "Delete" || e.key === "Backspace") && selectedEdge) {
20
+ deleteEdge(selectedEdge);
21
+ }
22
+ if (e.key === "Escape") {
23
+ setConnecting(null);
24
+ setSelectedEdge(null);
25
+ }
26
+ };
27
+ window.addEventListener("keydown", handleKeyDown);
28
+ return () => window.removeEventListener("keydown", handleKeyDown);
29
+ }, [selectedEdge]);
30
+ // Convert client coords → SVG coords
31
+ const getSVGPoint = useCallback((clientX, clientY) => {
32
+ var _a;
33
+ const svg = svgRef.current;
34
+ if (!svg)
35
+ return { x: 0, y: 0 };
36
+ const pt = svg.createSVGPoint();
37
+ pt.x = clientX;
38
+ pt.y = clientY;
39
+ const svgP = pt.matrixTransform((_a = svg.getScreenCTM()) === null || _a === void 0 ? void 0 : _a.inverse());
40
+ return { x: svgP.x, y: svgP.y };
41
+ }, [svgRef]);
42
+ // ── Mouse move ───────────────────────────────────────────────────
43
+ const onMouseMove = useCallback((e) => {
44
+ const clientX = "clientX" in e ? e.clientX : 0;
45
+ const clientY = "clientY" in e ? e.clientY : 0;
46
+ setMousePos(getSVGPoint(clientX, clientY));
47
+ }, [getSVGPoint]);
48
+ // ── Connect ──────────────────────────────────────────────────────
49
+ const startConnect = useCallback((fromId) => {
50
+ setConnecting({ fromId });
51
+ setSelectedEdge(null);
52
+ }, []);
53
+ const endConnect = useCallback((toId) => {
54
+ if (!connecting || connecting.fromId === toId) {
55
+ setConnecting(null);
56
+ return;
57
+ }
58
+ const fromNode = getNodeById(connecting.fromId);
59
+ const toNode = getNodeById(toId);
60
+ if (!fromNode || !toNode) {
61
+ setConnecting(null);
62
+ return;
63
+ }
64
+ setEdges((prev) => {
65
+ const exists = prev.find((e) => (e.from === connecting.fromId && e.to === toId) ||
66
+ (e.from === toId && e.to === connecting.fromId));
67
+ if (exists)
68
+ return prev;
69
+ return [
70
+ ...prev,
71
+ { id: `edge-${Date.now()}`, from: connecting.fromId, to: toId },
72
+ ];
73
+ });
74
+ setConnecting(null);
75
+ }, [connecting, getNodeById]);
76
+ const cancelConnect = useCallback(() => setConnecting(null), []);
77
+ // ── Edge select / delete ─────────────────────────────────────────
78
+ const selectEdge = useCallback((edgeId) => {
79
+ setSelectedEdge(edgeId);
80
+ }, []);
81
+ const deleteEdge = useCallback((edgeId) => {
82
+ setEdges((prev) => prev.filter((e) => e.id !== edgeId));
83
+ setSelectedEdge(null);
84
+ }, []);
85
+ const clearSelection = useCallback(() => {
86
+ setSelectedEdge(null);
87
+ }, []);
88
+ return {
89
+ edges,
90
+ setEdges,
91
+ selectedEdge,
92
+ connecting,
93
+ mousePos,
94
+ // actions
95
+ startConnect,
96
+ endConnect,
97
+ cancelConnect,
98
+ selectEdge,
99
+ deleteEdge,
100
+ clearSelection,
101
+ // svg handlers
102
+ onMouseMove,
103
+ };
104
+ };
@@ -0,0 +1,69 @@
1
+ export declare const GRID_SIZE = 20;
2
+ export declare const NODE_WIDTH = 120;
3
+ export declare const NODE_HEIGHT = 50;
4
+ export declare const snap: (v: number) => number;
5
+ export type EdgeType = {
6
+ id: string;
7
+ from: string;
8
+ to: string;
9
+ };
10
+ export type NodeType = {
11
+ id: string;
12
+ x: number;
13
+ y: number;
14
+ width?: number;
15
+ height?: number;
16
+ rotation?: number;
17
+ };
18
+ /**
19
+ * Rotate point (px, py) sekitar origin (0,0) sebesar deg derajat.
20
+ */
21
+ export declare const rotatePoint: (px: number, py: number, deg: number) => {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ /**
26
+ * Hitung titik edge pada sisi rect node yang menghadap ke arah `to`,
27
+ * dengan mempertimbangkan rotation node.
28
+ */
29
+ export declare const getRectEdge: (from: {
30
+ x: number;
31
+ y: number;
32
+ width?: number;
33
+ height?: number;
34
+ rotation?: number;
35
+ }, to: {
36
+ x: number;
37
+ y: number;
38
+ }, width: number, height: number) => {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ /**
43
+ * Build arc/elbow path dari start ke end.
44
+ * Lurus → belok rounded di sudut → lurus lagi.
45
+ *
46
+ * Dominan horizontal: H → arc → V → arc → H
47
+ * Dominan vertikal: V → arc → H → arc → V
48
+ *
49
+ * Radius arc menyesuaikan jarak, min 10px max 20px.
50
+ */
51
+ export declare const buildCurvePath: (start: {
52
+ x: number;
53
+ y: number;
54
+ }, end: {
55
+ x: number;
56
+ y: number;
57
+ }) => string;
58
+ /**
59
+ * Hitung sudut arrow di ujung path arc/elbow.
60
+ * Segmen terakhir selalu lurus H atau V,
61
+ * jadi cukup cek arah dominan terakhir.
62
+ */
63
+ export declare const getCurveEndAngle: (start: {
64
+ x: number;
65
+ y: number;
66
+ }, end: {
67
+ x: number;
68
+ y: number;
69
+ }) => number;
@@ -0,0 +1,144 @@
1
+ // utils.ts
2
+ export const GRID_SIZE = 20;
3
+ export const NODE_WIDTH = 120;
4
+ export const NODE_HEIGHT = 50;
5
+ export const snap = (v) => Math.round(v / GRID_SIZE) * GRID_SIZE;
6
+ /**
7
+ * Rotate point (px, py) sekitar origin (0,0) sebesar deg derajat.
8
+ */
9
+ export const rotatePoint = (px, py, deg) => {
10
+ const rad = (deg * Math.PI) / 180;
11
+ return {
12
+ x: px * Math.cos(rad) - py * Math.sin(rad),
13
+ y: px * Math.sin(rad) + py * Math.cos(rad),
14
+ };
15
+ };
16
+ /**
17
+ * Hitung titik edge pada sisi rect node yang menghadap ke arah `to`,
18
+ * dengan mempertimbangkan rotation node.
19
+ */
20
+ export const getRectEdge = (from, to, width, height) => {
21
+ var _a, _b, _c;
22
+ const w = (_a = from.width) !== null && _a !== void 0 ? _a : NODE_WIDTH;
23
+ const h = (_b = from.height) !== null && _b !== void 0 ? _b : NODE_HEIGHT;
24
+ const rotation = (_c = from.rotation) !== null && _c !== void 0 ? _c : 0;
25
+ const dx = to.x - from.x;
26
+ const dy = to.y - from.y;
27
+ if (dx === 0 && dy === 0)
28
+ return { x: from.x, y: from.y };
29
+ const angle = Math.atan2(dy, dx);
30
+ // Un-rotate arah ke local space node
31
+ const rad = -(rotation * Math.PI) / 180;
32
+ const localAngle = angle + rad;
33
+ const absCos = Math.abs(Math.cos(localAngle));
34
+ const absSin = Math.abs(Math.sin(localAngle));
35
+ const offset = (h / 2) * absCos <= (w / 2) * absSin
36
+ ? (h / 2) / absSin
37
+ : (w / 2) / absCos;
38
+ const localEdgeX = Math.cos(localAngle) * offset;
39
+ const localEdgeY = Math.sin(localAngle) * offset;
40
+ // Re-rotate balik ke world space
41
+ const worldEdge = rotatePoint(localEdgeX, localEdgeY, rotation);
42
+ return {
43
+ x: snap(from.x + worldEdge.x),
44
+ y: snap(from.y + worldEdge.y),
45
+ };
46
+ };
47
+ /**
48
+ * Build arc/elbow path dari start ke end.
49
+ * Lurus → belok rounded di sudut → lurus lagi.
50
+ *
51
+ * Dominan horizontal: H → arc → V → arc → H
52
+ * Dominan vertikal: V → arc → H → arc → V
53
+ *
54
+ * Radius arc menyesuaikan jarak, min 10px max 20px.
55
+ */
56
+ export const buildCurvePath = (start, end) => {
57
+ const dx = end.x - start.x;
58
+ const dy = end.y - start.y;
59
+ const absDx = Math.abs(dx);
60
+ const absDy = Math.abs(dy);
61
+ // Radius sudut — clamp antara 10 dan 20
62
+ const r = Math.min(20, Math.min(absDx / 2, absDy / 2, 20));
63
+ // Kalau terlalu dekat, fallback lurus
64
+ if (absDx < 2 || absDy < 2) {
65
+ return `M ${start.x} ${start.y} L ${end.x} ${end.y}`;
66
+ }
67
+ // Sign arah
68
+ const sx = dx > 0 ? 1 : -1;
69
+ const sy = dy > 0 ? 1 : -1;
70
+ if (absDx >= absDy) {
71
+ // Dominan horizontal → H midX, arc, V end.y, arc, H end.x
72
+ const midX = (start.x + end.x) / 2;
73
+ // Elbow kiri: H → V
74
+ const ax1 = midX - sx * r; // sebelum belok
75
+ const ay1 = start.y;
76
+ const bx1 = midX; // sesudah belok
77
+ const by1 = start.y + sy * r;
78
+ // Elbow kanan: V → H
79
+ const ax2 = midX;
80
+ const ay2 = end.y - sy * r;
81
+ const bx2 = midX + sx * r;
82
+ const by2 = end.y;
83
+ // sweep-flag: 1 = clockwise
84
+ const sweep1 = sx * sy > 0 ? 0 : 1;
85
+ const sweep2 = sx * sy > 0 ? 1 : 0;
86
+ return [
87
+ `M ${start.x} ${start.y}`,
88
+ `H ${ax1}`,
89
+ `A ${r} ${r} 0 0 ${sweep1} ${bx1} ${by1}`,
90
+ `V ${ay2}`,
91
+ `A ${r} ${r} 0 0 ${sweep2} ${bx2} ${by2}`,
92
+ `H ${end.x}`,
93
+ ].join(' ');
94
+ }
95
+ else {
96
+ // Dominan vertikal → V midY, arc, H end.x, arc, V end.y
97
+ const midY = (start.y + end.y) / 2;
98
+ // Elbow atas: V → H
99
+ const ax1 = start.x;
100
+ const ay1 = midY - sy * r;
101
+ const bx1 = start.x + sx * r;
102
+ const by1 = midY;
103
+ // Elbow bawah: H → V
104
+ const ax2 = end.x - sx * r;
105
+ const ay2 = midY;
106
+ const bx2 = end.x;
107
+ const by2 = midY + sy * r;
108
+ const sweep1 = sx * sy > 0 ? 1 : 0;
109
+ const sweep2 = sx * sy > 0 ? 0 : 1;
110
+ return [
111
+ `M ${start.x} ${start.y}`,
112
+ `V ${ay1}`,
113
+ `A ${r} ${r} 0 0 ${sweep1} ${bx1} ${by1}`,
114
+ `H ${ax2}`,
115
+ `A ${r} ${r} 0 0 ${sweep2} ${bx2} ${by2}`,
116
+ `V ${end.y}`,
117
+ ].join(' ');
118
+ }
119
+ };
120
+ /**
121
+ * Hitung sudut arrow di ujung path arc/elbow.
122
+ * Segmen terakhir selalu lurus H atau V,
123
+ * jadi cukup cek arah dominan terakhir.
124
+ */
125
+ export const getCurveEndAngle = (start, end) => {
126
+ const dx = end.x - start.x;
127
+ const dy = end.y - start.y;
128
+ const absDx = Math.abs(dx);
129
+ const absDy = Math.abs(dy);
130
+ if (absDx < 2 || absDy < 2) {
131
+ // Lurus
132
+ return absDx >= absDy
133
+ ? (dx > 0 ? 0 : 180)
134
+ : (dy > 0 ? 90 : 270);
135
+ }
136
+ if (absDx >= absDy) {
137
+ // Segmen terakhir H → panah kiri/kanan
138
+ return dx > 0 ? 0 : 180;
139
+ }
140
+ else {
141
+ // Segmen terakhir V → panah atas/bawah
142
+ return dy > 0 ? 90 : 270;
143
+ }
144
+ };
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@ import ControlPanels from "./features/panel";
5
5
  import LayerView, { type LayerViewProps } from "./features/view-only";
6
6
  import LayerView2, { type LayerViewProps as LayerViewProps2 } from "./features/view-only-2";
7
7
  import LayerView3, { type LayerViewProps as LayerViewProps3 } from "./features/view-only-3";
8
+ import LayerView5, { type LayerViewProps as LayerViewProps5 } from "./features/view-only-5";
8
9
  import TableEditor, { type TableEditorProps } from "./features/package";
9
10
  import { UploadFile } from "antd";
10
11
  export * from "./dto/table";
11
- export { StoreProvider as ProviderSeatEditor, Board, SideTool, ControlPanels, LayerView, LayerView2, LayerViewProps2, LayerViewProps, TableEditor as SeatEditor, LayerView3, LayerViewProps3, TableEditorProps, type UploadFile, };
12
+ export { StoreProvider as ProviderSeatEditor, Board, SideTool, ControlPanels, LayerView, LayerView2, LayerViewProps2, LayerViewProps, TableEditor as SeatEditor, LayerView3, LayerViewProps3, TableEditorProps, type UploadFile, LayerView5, LayerViewProps5 };
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import ControlPanels from "./features/panel";
5
5
  import LayerView from "./features/view-only";
6
6
  import LayerView2 from "./features/view-only-2";
7
7
  import LayerView3 from "./features/view-only-3";
8
+ import LayerView5 from "./features/view-only-5";
8
9
  import TableEditor from "./features/package";
9
10
  export * from "./dto/table";
10
- export { StoreProvider as ProviderSeatEditor, Board, SideTool, ControlPanels, LayerView, LayerView2, TableEditor as SeatEditor, LayerView3, };
11
+ export { StoreProvider as ProviderSeatEditor, Board, SideTool, ControlPanels, LayerView, LayerView2, TableEditor as SeatEditor, LayerView3, LayerView5 };
@@ -1,3 +1,3 @@
1
1
  export declare const ReduxProvider: ({ children }: {
2
2
  children: React.ReactNode;
3
- }) => import("react").JSX.Element;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  export declare const StoreProvider: ({ children, themeColor, }: {
2
2
  children: React.ReactNode;
3
3
  themeColor?: string;
4
- }) => import("react").JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.bottom-1\/2{bottom:50%}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.bottom-\[60px\]{bottom:60px}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-\[-300px\]{right:-300px}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[10\]{z-index:10}.m-4{margin:1rem}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-3{height:.75rem}.h-40{height:10rem}.h-\[1000px\]{height:1000px}.h-\[500px\]{height:500px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[200px\]{max-height:200px}.max-h-screen{max-height:100vh}.w-1\/3{width:33.333333%}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-\[300px\]{width:300px}.w-full{width:100%}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.heading-s{font-size:20px;font-weight:600;line-height:24px;letter-spacing:-.0006em}.text-sm{font-size:12px;font-weight:500;line-height:16px;letter-spacing:0}.divider-dashed{border-top:1px dashed var(--netral-04);width:100%;margin:16px 0}:root{--background:#fff;--foreground:#171717;--primary-color:#181e49;--secondary-color:#f0f2f5;--background-color:#f5f5f5;--success-color:#63cc47;--netral-03:#ededed;--netral-04:#e0e0e0;--netral-05:#c2c2c2;--netral-06:#9e9e9e;--netral-07:#757575;--netral-08:#616161;--netral-09:#404040;--netral-10:#0a0a0a;--danger:#cb3a31;--accent:#ff9800;--info:#3267e3}body{color:var(--foreground);background:var(--background);font-family:Arial,Helvetica,sans-serif;margin:0}body,html{overflow:hidden}.custom-styles .excalidraw{--color-primary:#fcc6d9;--color-primary-darker:#f783ac;--color-primary-darkest:#e64980;--color-primary-light:#f2a9c4}.custom-styles .excalidraw.theme--dark{--color-primary:#d494aa;--color-primary-darker:#d64c7e;--color-primary-darkest:#e86e99;--color-primary-light:#dcbec9}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.ant-drawer-mask{background:none!important}.tooltip-container{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 8px 14px 0 #0f2a5114;background:#fff;border:1px solid #f1f1f2}@keyframes blink2{0%{fill:#ef4444}50%{fill:#22c55e}to{fill:#ef4444}}.blink-2{animation:blink2 1s infinite}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-1\/2{bottom:50%}.bottom-10{bottom:2.5rem}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.bottom-\[60px\]{bottom:60px}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-\[-1000px\]{right:-1000px}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[10\]{z-index:10}.z-\[51\]{z-index:51}.m-4{margin:1rem}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-\[78px\]{margin-top:78px}.block{display:block}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-3{height:.75rem}.h-40{height:10rem}.h-\[1000px\]{height:1000px}.h-\[38px\]{height:38px}.h-\[500px\]{height:500px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[200px\]{max-height:200px}.max-h-screen{max-height:100vh}.w-1\/3{width:33.333333%}.w-1\/5{width:20%}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-\[300px\]{width:300px}.w-full{width:100%}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.\!bg-blue-500{--tw-bg-opacity:1!important;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))!important}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[20px\]{padding:20px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-5{padding-left:1.25rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-\[38px\]{line-height:38px}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.heading-s{font-size:20px;font-weight:600;line-height:24px;letter-spacing:-.0006em}.text-sm{font-size:12px;font-weight:500;line-height:16px;letter-spacing:0}.divider-dashed{border-top:1px dashed var(--netral-04);width:100%;margin:16px 0}:root{--background:#fff;--foreground:#171717;--primary-color:#181e49;--secondary-color:#f0f2f5;--background-color:#f5f5f5;--success-color:#63cc47;--netral-03:#ededed;--netral-04:#e0e0e0;--netral-05:#c2c2c2;--netral-06:#9e9e9e;--netral-07:#757575;--netral-08:#616161;--netral-09:#404040;--netral-10:#0a0a0a;--danger:#cb3a31;--accent:#ff9800;--info:#3267e3}body{color:var(--foreground);background:var(--background);font-family:Arial,Helvetica,sans-serif;margin:0}body,html{overflow:hidden}.custom-styles .excalidraw{--color-primary:#fcc6d9;--color-primary-darker:#f783ac;--color-primary-darkest:#e64980;--color-primary-light:#f2a9c4}.custom-styles .excalidraw.theme--dark{--color-primary:#d494aa;--color-primary-darker:#d64c7e;--color-primary-darkest:#e86e99;--color-primary-light:#dcbec9}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.ant-drawer-mask{background:none!important}.tooltip-container{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 8px 14px 0 #0f2a5114;background:#fff;border:1px solid #f1f1f2}@keyframes blink2{0%{fill:#ef4444}50%{fill:#22c55e}to{fill:#ef4444}}.blink-2{animation:blink2 1s infinite}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seat-editor",
3
- "version": "3.4.8",
3
+ "version": "3.5.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",