@goplasmatic/datalogic-ui 4.0.21 → 5.0.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.
- package/README.md +35 -15
- package/dist/components/logic-editor/DataLogicEditor.d.ts +1 -1
- package/dist/components/logic-editor/DataLogicEditor.d.ts.map +1 -1
- package/dist/components/logic-editor/EditorToolbar.d.ts +3 -3
- package/dist/components/logic-editor/EditorToolbar.d.ts.map +1 -1
- package/dist/components/logic-editor/UndoRedoToolbar.d.ts.map +1 -1
- package/dist/components/logic-editor/config/operators/utility.d.ts.map +1 -1
- package/dist/components/logic-editor/context/editor/useClipboardState.d.ts.map +1 -1
- package/dist/components/logic-editor/context/editor/useHistoryState.d.ts.map +1 -1
- package/dist/components/logic-editor/debugger-controls/DebuggerControls.d.ts.map +1 -1
- package/dist/components/logic-editor/hooks/index.d.ts +1 -1
- package/dist/components/logic-editor/hooks/index.d.ts.map +1 -1
- package/dist/components/logic-editor/hooks/useLogicEditor.d.ts +3 -3
- package/dist/components/logic-editor/hooks/useLogicEditor.d.ts.map +1 -1
- package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts +8 -3
- package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts.map +1 -1
- package/dist/components/logic-editor/types/editor.d.ts +18 -6
- package/dist/components/logic-editor/types/editor.d.ts.map +1 -1
- package/dist/components/logic-editor/types/index.d.ts +1 -1
- package/dist/components/logic-editor/types/index.d.ts.map +1 -1
- package/dist/components/logic-editor/types/trace.d.ts +22 -0
- package/dist/components/logic-editor/types/trace.d.ts.map +1 -1
- package/dist/components/logic-editor/utils/converters/types.d.ts +2 -2
- package/dist/components/logic-editor/utils/converters/types.d.ts.map +1 -1
- package/dist/components/logic-editor/utils/jsonlogic-to-nodes.d.ts +2 -2
- package/dist/components/logic-editor/utils/jsonlogic-to-nodes.d.ts.map +1 -1
- package/dist/components/logic-editor/utils/trace/node-type.d.ts +1 -1
- package/dist/components/logic-editor/utils/trace/node-type.d.ts.map +1 -1
- package/dist/components/logic-editor/utils/trace/types.d.ts +3 -3
- package/dist/components/logic-editor/utils/trace/types.d.ts.map +1 -1
- package/dist/datalogic_wasm-CF1jcNAu.js +634 -0
- package/dist/datalogic_wasm-Dj9TEPTG.cjs +637 -0
- package/dist/index.cjs +868 -388
- package/dist/index.js +869 -389
- package/dist/styles.css +302 -136
- package/package.json +32 -29
- package/dist/datalogic_wasm-Ckkdrc0z.cjs +0 -383
- package/dist/datalogic_wasm-daWVf40b.js +0 -380
package/dist/styles.css
CHANGED
|
@@ -6,42 +6,43 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
.logic-editor {
|
|
9
|
-
/* Light theme (default) */
|
|
10
|
-
--bg-primary: #
|
|
9
|
+
/* Light theme (default) — zinc-leaning neutrals */
|
|
10
|
+
--bg-primary: #fafafa;
|
|
11
11
|
--bg-secondary: #ffffff;
|
|
12
|
-
--bg-tertiary: #
|
|
13
|
-
--bg-hover: #
|
|
14
|
-
--bg-active: #
|
|
12
|
+
--bg-tertiary: #f6f6f7;
|
|
13
|
+
--bg-hover: #f0f0f1;
|
|
14
|
+
--bg-active: #e8e8ea;
|
|
15
15
|
|
|
16
|
-
--text-primary: #
|
|
17
|
-
--text-secondary: #
|
|
18
|
-
--text-tertiary: #
|
|
19
|
-
--text-muted: #
|
|
20
|
-
--text-placeholder: #
|
|
16
|
+
--text-primary: #18181b;
|
|
17
|
+
--text-secondary: #3f3f46;
|
|
18
|
+
--text-tertiary: #71717a;
|
|
19
|
+
--text-muted: #a1a1aa;
|
|
20
|
+
--text-placeholder: #c4c4c7;
|
|
21
21
|
|
|
22
|
-
--border-primary:
|
|
23
|
-
--border-secondary:
|
|
24
|
-
--border-light:
|
|
22
|
+
--border-primary: rgba(0, 0, 0, 0.10);
|
|
23
|
+
--border-secondary: rgba(0, 0, 0, 0.06);
|
|
24
|
+
--border-light: rgba(0, 0, 0, 0.04);
|
|
25
25
|
|
|
26
|
-
--accent-blue: #
|
|
27
|
-
--accent-blue-light: #
|
|
26
|
+
--accent-blue: #6366f1;
|
|
27
|
+
--accent-blue-light: #e0e7ff;
|
|
28
|
+
--accent-blue-hover: #4f46e5;
|
|
28
29
|
|
|
29
30
|
--accent-amber: #f59e0b;
|
|
30
31
|
--accent-amber-light: #fef3c7;
|
|
31
32
|
|
|
32
33
|
/* Status colors */
|
|
33
|
-
--success-bg: #
|
|
34
|
-
--success-text: #
|
|
34
|
+
--success-bg: #ecfdf5;
|
|
35
|
+
--success-text: #047857;
|
|
35
36
|
--success-border: #a7f3d0;
|
|
36
37
|
|
|
37
|
-
--error-bg: #
|
|
38
|
-
--error-bg-light: #
|
|
39
|
-
--error-bg-lighter: #
|
|
38
|
+
--error-bg: #fef2f2;
|
|
39
|
+
--error-bg-light: #fff7f7;
|
|
40
|
+
--error-bg-lighter: #fffafa;
|
|
40
41
|
--error-text: #dc2626;
|
|
41
42
|
--error-border: #fecaca;
|
|
42
43
|
|
|
43
|
-
--warning-bg: #
|
|
44
|
-
--warning-text: #
|
|
44
|
+
--warning-bg: #fffbeb;
|
|
45
|
+
--warning-text: #b45309;
|
|
45
46
|
--warning-border: #fde68a;
|
|
46
47
|
|
|
47
48
|
/* Syntax highlighting */
|
|
@@ -53,10 +54,10 @@
|
|
|
53
54
|
--syntax-bracket: #24292f;
|
|
54
55
|
--syntax-punctuation: #24292f;
|
|
55
56
|
|
|
56
|
-
/* Node colors
|
|
57
|
+
/* Node colors */
|
|
57
58
|
--node-bg: #ffffff;
|
|
58
|
-
--node-shadow: rgba(0, 0, 0, 0.
|
|
59
|
-
--node-shadow-hover: rgba(0, 0, 0, 0.
|
|
59
|
+
--node-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
60
|
+
--node-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
60
61
|
|
|
61
62
|
/* Code background */
|
|
62
63
|
--code-bg: #f8f9fa;
|
|
@@ -79,7 +80,26 @@
|
|
|
79
80
|
--debug-value-array: #7c3aed;
|
|
80
81
|
--debug-value-null: #6b7280;
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
/* Radius scale */
|
|
84
|
+
--radius-sm: 6px;
|
|
85
|
+
--radius-md: 10px;
|
|
86
|
+
--radius-lg: 14px;
|
|
87
|
+
|
|
88
|
+
/* Shadow elevation scale (layered: ambient + key) */
|
|
89
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
90
|
+
--shadow-md: 0 2px 4px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.06);
|
|
91
|
+
--shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.06), 0 12px 32px rgba(0, 0, 0, 0.10);
|
|
92
|
+
|
|
93
|
+
/* Motion */
|
|
94
|
+
--motion-fast: 120ms;
|
|
95
|
+
--motion-base: 180ms;
|
|
96
|
+
--motion-slow: 260ms;
|
|
97
|
+
--ease-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
98
|
+
|
|
99
|
+
/* Focus ring */
|
|
100
|
+
--focus-ring: 0 0 0 2px var(--accent-blue);
|
|
101
|
+
|
|
102
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
83
103
|
line-height: 1.5;
|
|
84
104
|
font-weight: 400;
|
|
85
105
|
color: var(--text-primary);
|
|
@@ -87,6 +107,7 @@
|
|
|
87
107
|
text-rendering: optimizeLegibility;
|
|
88
108
|
-webkit-font-smoothing: antialiased;
|
|
89
109
|
-moz-osx-font-smoothing: grayscale;
|
|
110
|
+
font-feature-settings: 'cv11', 'ss01';
|
|
90
111
|
}
|
|
91
112
|
|
|
92
113
|
.logic-editor *,
|
|
@@ -100,40 +121,41 @@
|
|
|
100
121
|
}
|
|
101
122
|
|
|
102
123
|
.logic-editor[data-theme="dark"] {
|
|
103
|
-
--bg-primary: #
|
|
104
|
-
--bg-secondary: #
|
|
105
|
-
--bg-tertiary: #
|
|
106
|
-
--bg-hover: #
|
|
107
|
-
--bg-active: #
|
|
108
|
-
|
|
109
|
-
--text-primary: #
|
|
110
|
-
--text-secondary: #
|
|
111
|
-
--text-tertiary: #
|
|
112
|
-
--text-muted: #
|
|
113
|
-
--text-placeholder: #
|
|
114
|
-
|
|
115
|
-
--border-primary:
|
|
116
|
-
--border-secondary:
|
|
117
|
-
--border-light:
|
|
118
|
-
|
|
119
|
-
--accent-blue: #
|
|
120
|
-
--accent-blue-light: #
|
|
124
|
+
--bg-primary: #0c0c0d;
|
|
125
|
+
--bg-secondary: #161618;
|
|
126
|
+
--bg-tertiary: #1c1c1f;
|
|
127
|
+
--bg-hover: #242427;
|
|
128
|
+
--bg-active: #2c2c30;
|
|
129
|
+
|
|
130
|
+
--text-primary: #fafafa;
|
|
131
|
+
--text-secondary: #d4d4d8;
|
|
132
|
+
--text-tertiary: #a1a1aa;
|
|
133
|
+
--text-muted: #71717a;
|
|
134
|
+
--text-placeholder: #52525b;
|
|
135
|
+
|
|
136
|
+
--border-primary: rgba(255, 255, 255, 0.10);
|
|
137
|
+
--border-secondary: rgba(255, 255, 255, 0.06);
|
|
138
|
+
--border-light: rgba(255, 255, 255, 0.04);
|
|
139
|
+
|
|
140
|
+
--accent-blue: #818cf8;
|
|
141
|
+
--accent-blue-light: #1e1b4b;
|
|
142
|
+
--accent-blue-hover: #a5b4fc;
|
|
121
143
|
|
|
122
144
|
--accent-amber: #fbbf24;
|
|
123
|
-
--accent-amber-light: #
|
|
145
|
+
--accent-amber-light: #422006;
|
|
124
146
|
|
|
125
147
|
/* Status colors - darker variants */
|
|
126
|
-
--success-bg: #
|
|
148
|
+
--success-bg: #052e1c;
|
|
127
149
|
--success-text: #6ee7b7;
|
|
128
150
|
--success-border: #065f46;
|
|
129
151
|
|
|
130
|
-
--error-bg: #
|
|
131
|
-
--error-bg-light: #
|
|
132
|
-
--error-bg-lighter: #
|
|
152
|
+
--error-bg: #2c0a0c;
|
|
153
|
+
--error-bg-light: #240a0c;
|
|
154
|
+
--error-bg-lighter: #1a0a0c;
|
|
133
155
|
--error-text: #fca5a5;
|
|
134
156
|
--error-border: #7f1d1d;
|
|
135
157
|
|
|
136
|
-
--warning-bg: #
|
|
158
|
+
--warning-bg: #2a1c05;
|
|
137
159
|
--warning-text: #fcd34d;
|
|
138
160
|
--warning-border: #78350f;
|
|
139
161
|
|
|
@@ -147,9 +169,9 @@
|
|
|
147
169
|
--syntax-punctuation: #c9d1d9;
|
|
148
170
|
|
|
149
171
|
/* Node colors */
|
|
150
|
-
--node-bg: #
|
|
151
|
-
--node-shadow: rgba(0, 0, 0, 0.3);
|
|
152
|
-
--node-shadow-hover: rgba(0, 0, 0, 0.
|
|
172
|
+
--node-bg: #18181b;
|
|
173
|
+
--node-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
174
|
+
--node-shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
153
175
|
|
|
154
176
|
/* Code background */
|
|
155
177
|
--code-bg: #1f1f1f;
|
|
@@ -171,6 +193,11 @@
|
|
|
171
193
|
--debug-value-string: #86efac;
|
|
172
194
|
--debug-value-array: #d8b4fe;
|
|
173
195
|
--debug-value-null: #9ca3af;
|
|
196
|
+
|
|
197
|
+
/* Dark mode shadow tweaks */
|
|
198
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
199
|
+
--shadow-md: 0 2px 4px rgba(0, 0, 0, 0.3), 0 4px 12px rgba(0, 0, 0, 0.5);
|
|
200
|
+
--shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.4), 0 12px 32px rgba(0, 0, 0, 0.6);
|
|
174
201
|
}
|
|
175
202
|
/*
|
|
176
203
|
* ReactFlow base styles - bundled locally so they're included in the library's styles.css
|
|
@@ -1095,6 +1122,57 @@ svg.react-flow__connectionline {
|
|
|
1095
1122
|
color: var(--text-tertiary, #888);
|
|
1096
1123
|
text-align: center;
|
|
1097
1124
|
}
|
|
1125
|
+
.dl-tooltip-wrap {
|
|
1126
|
+
display: inline-flex;
|
|
1127
|
+
align-items: center;
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
.dl-tooltip {
|
|
1131
|
+
pointer-events: none;
|
|
1132
|
+
z-index: 9999;
|
|
1133
|
+
display: inline-flex;
|
|
1134
|
+
align-items: center;
|
|
1135
|
+
gap: 6px;
|
|
1136
|
+
max-width: 280px;
|
|
1137
|
+
padding: 5px 8px;
|
|
1138
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, sans-serif;
|
|
1139
|
+
font-size: 11px;
|
|
1140
|
+
font-weight: 500;
|
|
1141
|
+
line-height: 1.3;
|
|
1142
|
+
letter-spacing: 0.1px;
|
|
1143
|
+
white-space: nowrap;
|
|
1144
|
+
color: #fafafa;
|
|
1145
|
+
background: rgba(20, 20, 22, 0.95);
|
|
1146
|
+
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
1147
|
+
border-radius: var(--radius-sm, 6px);
|
|
1148
|
+
box-shadow:
|
|
1149
|
+
0 2px 4px rgba(0, 0, 0, 0.08),
|
|
1150
|
+
0 4px 12px rgba(0, 0, 0, 0.16);
|
|
1151
|
+
transition: opacity 120ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.dl-tooltip-label {
|
|
1155
|
+
color: inherit;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.dl-tooltip-shortcut {
|
|
1159
|
+
display: inline-flex;
|
|
1160
|
+
align-items: center;
|
|
1161
|
+
padding: 0 5px;
|
|
1162
|
+
height: 16px;
|
|
1163
|
+
font-size: 10px;
|
|
1164
|
+
font-weight: 600;
|
|
1165
|
+
color: rgba(250, 250, 250, 0.65);
|
|
1166
|
+
background: rgba(255, 255, 255, 0.08);
|
|
1167
|
+
border-radius: 3px;
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
/* Don't show tooltips on touch / no-hover devices */
|
|
1171
|
+
@media (hover: none), (pointer: coarse) {
|
|
1172
|
+
.dl-tooltip {
|
|
1173
|
+
display: none;
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1098
1176
|
/* Inline variant (used in toolbar) */
|
|
1099
1177
|
.dl-debugger-controls--inline {
|
|
1100
1178
|
display: flex;
|
|
@@ -1325,20 +1403,13 @@ svg.react-flow__connectionline {
|
|
|
1325
1403
|
bottom: 8px;
|
|
1326
1404
|
width: 280px;
|
|
1327
1405
|
z-index: 50;
|
|
1328
|
-
background: var(--bg-secondary
|
|
1329
|
-
border: 1px solid var(--border-
|
|
1330
|
-
border-radius:
|
|
1331
|
-
box-shadow:
|
|
1406
|
+
background: var(--bg-secondary);
|
|
1407
|
+
border: 1px solid var(--border-primary);
|
|
1408
|
+
border-radius: var(--radius-md);
|
|
1409
|
+
box-shadow: var(--shadow-lg);
|
|
1332
1410
|
overflow: hidden;
|
|
1333
1411
|
}
|
|
1334
1412
|
|
|
1335
|
-
/* Dark mode */
|
|
1336
|
-
.logic-editor[data-theme="dark"] .properties-panel {
|
|
1337
|
-
background: var(--bg-secondary, #1e1e1e);
|
|
1338
|
-
border-color: var(--border-color, #3e3e3e);
|
|
1339
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
1340
|
-
}
|
|
1341
|
-
|
|
1342
1413
|
.properties-panel-content {
|
|
1343
1414
|
display: flex;
|
|
1344
1415
|
flex-direction: column;
|
|
@@ -1397,10 +1468,17 @@ svg.react-flow__connectionline {
|
|
|
1397
1468
|
padding: 0;
|
|
1398
1469
|
background: transparent;
|
|
1399
1470
|
border: none;
|
|
1400
|
-
border-radius:
|
|
1471
|
+
border-radius: var(--radius-sm);
|
|
1401
1472
|
color: var(--text-tertiary, #999);
|
|
1402
1473
|
cursor: pointer;
|
|
1403
|
-
transition: background
|
|
1474
|
+
transition: background var(--motion-fast) var(--ease-out),
|
|
1475
|
+
color var(--motion-fast) var(--ease-out),
|
|
1476
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
.properties-panel-close:focus-visible {
|
|
1480
|
+
outline: none;
|
|
1481
|
+
box-shadow: var(--focus-ring);
|
|
1404
1482
|
}
|
|
1405
1483
|
|
|
1406
1484
|
.properties-panel-close:hover {
|
|
@@ -1746,26 +1824,24 @@ svg.react-flow__connectionline {
|
|
|
1746
1824
|
padding: 10px 16px;
|
|
1747
1825
|
font-size: 13px;
|
|
1748
1826
|
font-weight: 500;
|
|
1749
|
-
color:
|
|
1750
|
-
background:
|
|
1751
|
-
border: 1px solid
|
|
1752
|
-
border-radius:
|
|
1827
|
+
color: var(--error-text);
|
|
1828
|
+
background: var(--error-bg);
|
|
1829
|
+
border: 1px solid var(--error-border);
|
|
1830
|
+
border-radius: var(--radius-sm);
|
|
1753
1831
|
cursor: pointer;
|
|
1754
|
-
transition: background
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
.logic-editor[data-theme="dark"] .properties-panel-delete {
|
|
1758
|
-
background: #451a1a;
|
|
1759
|
-
border-color: #7f1d1d;
|
|
1832
|
+
transition: background var(--motion-fast) var(--ease-out),
|
|
1833
|
+
border-color var(--motion-fast) var(--ease-out),
|
|
1834
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
1760
1835
|
}
|
|
1761
1836
|
|
|
1762
1837
|
.properties-panel-delete:hover {
|
|
1763
|
-
background:
|
|
1764
|
-
border-color:
|
|
1838
|
+
background: var(--error-bg-light);
|
|
1839
|
+
border-color: var(--error-text);
|
|
1765
1840
|
}
|
|
1766
1841
|
|
|
1767
|
-
.
|
|
1768
|
-
|
|
1842
|
+
.properties-panel-delete:focus-visible {
|
|
1843
|
+
outline: none;
|
|
1844
|
+
box-shadow: 0 0 0 2px var(--bg-secondary), 0 0 0 4px var(--error-text);
|
|
1769
1845
|
}
|
|
1770
1846
|
|
|
1771
1847
|
/* ==========================================================================
|
|
@@ -2182,17 +2258,18 @@ svg.react-flow__connectionline {
|
|
|
2182
2258
|
width: 100%;
|
|
2183
2259
|
padding: 8px 12px 8px 32px;
|
|
2184
2260
|
font-size: 13px;
|
|
2185
|
-
color: var(--text-primary
|
|
2186
|
-
background: var(--bg-tertiary
|
|
2187
|
-
border: 1px solid var(--border-
|
|
2188
|
-
border-radius:
|
|
2261
|
+
color: var(--text-primary);
|
|
2262
|
+
background: var(--bg-tertiary);
|
|
2263
|
+
border: 1px solid var(--border-secondary);
|
|
2264
|
+
border-radius: var(--radius-sm);
|
|
2189
2265
|
outline: none;
|
|
2190
|
-
transition: border-color
|
|
2266
|
+
transition: border-color var(--motion-fast) var(--ease-out),
|
|
2267
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
2191
2268
|
}
|
|
2192
2269
|
|
|
2193
2270
|
.properties-panel-search-input:focus {
|
|
2194
|
-
border-color: var(--
|
|
2195
|
-
box-shadow:
|
|
2271
|
+
border-color: var(--accent-blue);
|
|
2272
|
+
box-shadow: var(--focus-ring);
|
|
2196
2273
|
}
|
|
2197
2274
|
|
|
2198
2275
|
.properties-panel-search-input::placeholder {
|
|
@@ -2449,18 +2526,19 @@ svg.react-flow__connectionline {
|
|
|
2449
2526
|
padding: 8px 10px;
|
|
2450
2527
|
font-size: 13px;
|
|
2451
2528
|
font-family: inherit;
|
|
2452
|
-
color: var(--
|
|
2453
|
-
background: var(--
|
|
2454
|
-
border: 1px solid var(--
|
|
2455
|
-
border-radius:
|
|
2529
|
+
color: var(--text-primary);
|
|
2530
|
+
background: var(--bg-secondary);
|
|
2531
|
+
border: 1px solid var(--border-secondary);
|
|
2532
|
+
border-radius: var(--radius-sm);
|
|
2456
2533
|
outline: none;
|
|
2457
|
-
transition: border-color
|
|
2534
|
+
transition: border-color var(--motion-fast) var(--ease-out),
|
|
2535
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
2458
2536
|
box-sizing: border-box;
|
|
2459
2537
|
}
|
|
2460
2538
|
|
|
2461
2539
|
.panel-input:focus {
|
|
2462
|
-
border-color: var(--
|
|
2463
|
-
box-shadow:
|
|
2540
|
+
border-color: var(--accent-blue);
|
|
2541
|
+
box-shadow: var(--focus-ring);
|
|
2464
2542
|
}
|
|
2465
2543
|
|
|
2466
2544
|
.panel-input:disabled {
|
|
@@ -2559,15 +2637,15 @@ svg.react-flow__connectionline {
|
|
|
2559
2637
|
}
|
|
2560
2638
|
|
|
2561
2639
|
.panel-input-checkbox:checked + .panel-input-toggle {
|
|
2562
|
-
background: var(--
|
|
2640
|
+
background: var(--accent-blue);
|
|
2563
2641
|
}
|
|
2564
2642
|
|
|
2565
2643
|
.panel-input-checkbox:checked + .panel-input-toggle::after {
|
|
2566
2644
|
transform: translateX(16px);
|
|
2567
2645
|
}
|
|
2568
2646
|
|
|
2569
|
-
.panel-input-checkbox:focus + .panel-input-toggle {
|
|
2570
|
-
box-shadow:
|
|
2647
|
+
.panel-input-checkbox:focus-visible + .panel-input-toggle {
|
|
2648
|
+
box-shadow: var(--focus-ring);
|
|
2571
2649
|
}
|
|
2572
2650
|
|
|
2573
2651
|
.panel-input-checkbox:disabled + .panel-input-toggle {
|
|
@@ -2610,16 +2688,17 @@ svg.react-flow__connectionline {
|
|
|
2610
2688
|
.panel-input-path-wrapper {
|
|
2611
2689
|
display: flex;
|
|
2612
2690
|
align-items: center;
|
|
2613
|
-
background: var(--
|
|
2614
|
-
border: 1px solid var(--
|
|
2615
|
-
border-radius:
|
|
2691
|
+
background: var(--bg-secondary);
|
|
2692
|
+
border: 1px solid var(--border-secondary);
|
|
2693
|
+
border-radius: var(--radius-sm);
|
|
2616
2694
|
overflow: hidden;
|
|
2617
|
-
transition: border-color
|
|
2695
|
+
transition: border-color var(--motion-fast) var(--ease-out),
|
|
2696
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
2618
2697
|
}
|
|
2619
2698
|
|
|
2620
2699
|
.panel-input-path-wrapper:focus-within {
|
|
2621
|
-
border-color: var(--
|
|
2622
|
-
box-shadow:
|
|
2700
|
+
border-color: var(--accent-blue);
|
|
2701
|
+
box-shadow: var(--focus-ring);
|
|
2623
2702
|
}
|
|
2624
2703
|
|
|
2625
2704
|
.panel-input-path-prefix {
|
|
@@ -2963,24 +3042,25 @@ svg.react-flow__connectionline {
|
|
|
2963
3042
|
============================================ */
|
|
2964
3043
|
|
|
2965
3044
|
.dl-node {
|
|
2966
|
-
border-radius:
|
|
3045
|
+
border-radius: var(--radius-md);
|
|
2967
3046
|
border: 2px solid;
|
|
2968
|
-
font-family:
|
|
3047
|
+
font-family: inherit;
|
|
2969
3048
|
font-size: 13px;
|
|
2970
3049
|
width: 100%;
|
|
2971
3050
|
box-sizing: border-box;
|
|
2972
|
-
box-shadow:
|
|
2973
|
-
transition: box-shadow
|
|
3051
|
+
box-shadow: var(--node-shadow);
|
|
3052
|
+
transition: box-shadow var(--motion-base) var(--ease-out),
|
|
3053
|
+
transform var(--motion-fast) var(--ease-out);
|
|
2974
3054
|
background: var(--node-bg) !important;
|
|
2975
3055
|
position: relative;
|
|
2976
3056
|
}
|
|
2977
3057
|
|
|
2978
3058
|
.dl-node:hover {
|
|
2979
|
-
box-shadow:
|
|
3059
|
+
box-shadow: var(--node-shadow-hover);
|
|
2980
3060
|
}
|
|
2981
3061
|
|
|
2982
3062
|
.dl-node.selected {
|
|
2983
|
-
box-shadow: 0 0 0 2px var(--accent-blue),
|
|
3063
|
+
box-shadow: 0 0 0 2px var(--accent-blue), var(--node-shadow-hover);
|
|
2984
3064
|
}
|
|
2985
3065
|
|
|
2986
3066
|
/* ============================================
|
|
@@ -3063,7 +3143,7 @@ svg.react-flow__connectionline {
|
|
|
3063
3143
|
|
|
3064
3144
|
.vertical-cell-header {
|
|
3065
3145
|
padding: 4px 10px;
|
|
3066
|
-
border-radius:
|
|
3146
|
+
border-radius: calc(var(--radius-md) - 2px) calc(var(--radius-md) - 2px) 0 0;
|
|
3067
3147
|
color: white;
|
|
3068
3148
|
display: flex;
|
|
3069
3149
|
align-items: center;
|
|
@@ -3285,7 +3365,7 @@ svg.react-flow__connectionline {
|
|
|
3285
3365
|
|
|
3286
3366
|
.structure-node-header {
|
|
3287
3367
|
padding: 6px 12px;
|
|
3288
|
-
border-radius:
|
|
3368
|
+
border-radius: calc(var(--radius-md) - 2px) calc(var(--radius-md) - 2px) 0 0;
|
|
3289
3369
|
color: white;
|
|
3290
3370
|
display: flex;
|
|
3291
3371
|
align-items: center;
|
|
@@ -3462,11 +3542,11 @@ svg.react-flow__connectionline {
|
|
|
3462
3542
|
margin-top: 4px;
|
|
3463
3543
|
background: var(--debug-popover-bg);
|
|
3464
3544
|
color: var(--debug-popover-text);
|
|
3465
|
-
border-radius:
|
|
3545
|
+
border-radius: var(--radius-sm);
|
|
3466
3546
|
padding: 8px 12px;
|
|
3467
3547
|
font-size: 11px;
|
|
3468
3548
|
z-index: 1000;
|
|
3469
|
-
box-shadow:
|
|
3549
|
+
box-shadow: var(--shadow-md);
|
|
3470
3550
|
min-width: 150px;
|
|
3471
3551
|
max-width: 300px;
|
|
3472
3552
|
max-height: 200px;
|
|
@@ -3698,11 +3778,11 @@ svg.react-flow__connectionline {
|
|
|
3698
3778
|
position: absolute;
|
|
3699
3779
|
background: var(--debug-popover-bg);
|
|
3700
3780
|
color: var(--debug-popover-text);
|
|
3701
|
-
border-radius:
|
|
3781
|
+
border-radius: var(--radius-md);
|
|
3702
3782
|
padding: 10px 12px;
|
|
3703
3783
|
font-size: 11px;
|
|
3704
3784
|
z-index: 9999;
|
|
3705
|
-
box-shadow:
|
|
3785
|
+
box-shadow: var(--shadow-lg);
|
|
3706
3786
|
min-width: 180px;
|
|
3707
3787
|
max-width: 280px;
|
|
3708
3788
|
pointer-events: auto;
|
|
@@ -3926,7 +4006,7 @@ svg.react-flow__connectionline {
|
|
|
3926
4006
|
height: 100%;
|
|
3927
4007
|
position: relative;
|
|
3928
4008
|
background: var(--bg-tertiary);
|
|
3929
|
-
border-radius:
|
|
4009
|
+
border-radius: var(--radius-md);
|
|
3930
4010
|
overflow: hidden;
|
|
3931
4011
|
display: flex;
|
|
3932
4012
|
flex-direction: column;
|
|
@@ -3957,13 +4037,11 @@ svg.react-flow__connectionline {
|
|
|
3957
4037
|
background: var(--bg-secondary, #ffffff);
|
|
3958
4038
|
flex-shrink: 0;
|
|
3959
4039
|
gap: 10px;
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
.logic-editor-toolbar::-webkit-scrollbar {
|
|
3966
|
-
display: none;
|
|
4040
|
+
/* Desktop: visible overflow so tooltips on toolbar buttons aren't clipped.
|
|
4041
|
+
Horizontal-scroll behavior is scoped to the mobile breakpoint below. */
|
|
4042
|
+
overflow: visible;
|
|
4043
|
+
position: relative;
|
|
4044
|
+
z-index: 2;
|
|
3967
4045
|
}
|
|
3968
4046
|
|
|
3969
4047
|
.logic-editor[data-theme="dark"] .logic-editor-toolbar {
|
|
@@ -3975,7 +4053,7 @@ svg.react-flow__connectionline {
|
|
|
3975
4053
|
flex: 1;
|
|
3976
4054
|
}
|
|
3977
4055
|
|
|
3978
|
-
.logic-editor-toolbar .dl-
|
|
4056
|
+
.logic-editor-toolbar .dl-templating-toggle {
|
|
3979
4057
|
display: flex;
|
|
3980
4058
|
align-items: center;
|
|
3981
4059
|
gap: 6px;
|
|
@@ -3987,7 +4065,7 @@ svg.react-flow__connectionline {
|
|
|
3987
4065
|
flex-shrink: 0;
|
|
3988
4066
|
}
|
|
3989
4067
|
|
|
3990
|
-
.logic-editor-toolbar .dl-
|
|
4068
|
+
.logic-editor-toolbar .dl-templating-toggle input[type="checkbox"] {
|
|
3991
4069
|
margin: 0;
|
|
3992
4070
|
cursor: pointer;
|
|
3993
4071
|
}
|
|
@@ -4002,10 +4080,12 @@ svg.react-flow__connectionline {
|
|
|
4002
4080
|
padding: 0;
|
|
4003
4081
|
background: transparent;
|
|
4004
4082
|
border: none;
|
|
4005
|
-
border-radius:
|
|
4083
|
+
border-radius: var(--radius-sm);
|
|
4006
4084
|
color: var(--text-secondary, #666);
|
|
4007
4085
|
cursor: pointer;
|
|
4008
|
-
transition: background
|
|
4086
|
+
transition: background var(--motion-fast) var(--ease-out),
|
|
4087
|
+
color var(--motion-fast) var(--ease-out),
|
|
4088
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
4009
4089
|
flex-shrink: 0;
|
|
4010
4090
|
}
|
|
4011
4091
|
|
|
@@ -4014,6 +4094,11 @@ svg.react-flow__connectionline {
|
|
|
4014
4094
|
color: var(--text-primary, #1a1a1a);
|
|
4015
4095
|
}
|
|
4016
4096
|
|
|
4097
|
+
.dl-toolbar-btn:focus-visible {
|
|
4098
|
+
outline: none;
|
|
4099
|
+
box-shadow: var(--focus-ring);
|
|
4100
|
+
}
|
|
4101
|
+
|
|
4017
4102
|
.dl-toolbar-btn:disabled {
|
|
4018
4103
|
opacity: 0.35;
|
|
4019
4104
|
cursor: not-allowed;
|
|
@@ -4042,23 +4127,95 @@ svg.react-flow__connectionline {
|
|
|
4042
4127
|
text-align: center;
|
|
4043
4128
|
color: var(--text-tertiary);
|
|
4044
4129
|
pointer-events: none;
|
|
4130
|
+
max-width: 420px;
|
|
4131
|
+
width: calc(100% - 32px);
|
|
4132
|
+
display: flex;
|
|
4133
|
+
flex-direction: column;
|
|
4134
|
+
align-items: center;
|
|
4135
|
+
gap: 14px;
|
|
4136
|
+
}
|
|
4137
|
+
|
|
4138
|
+
.logic-editor-empty-icon {
|
|
4139
|
+
display: flex;
|
|
4140
|
+
align-items: center;
|
|
4141
|
+
justify-content: center;
|
|
4142
|
+
width: 64px;
|
|
4143
|
+
height: 64px;
|
|
4144
|
+
border-radius: var(--radius-lg);
|
|
4145
|
+
background: var(--bg-secondary);
|
|
4146
|
+
border: 1px solid var(--border-light);
|
|
4147
|
+
color: var(--accent-blue);
|
|
4148
|
+
box-shadow: var(--shadow-sm);
|
|
4149
|
+
margin-bottom: 2px;
|
|
4045
4150
|
}
|
|
4046
4151
|
|
|
4047
4152
|
.logic-editor-empty p {
|
|
4048
4153
|
margin: 0;
|
|
4049
|
-
font-size:
|
|
4154
|
+
font-size: 15px;
|
|
4155
|
+
font-weight: 500;
|
|
4156
|
+
color: var(--text-secondary);
|
|
4050
4157
|
}
|
|
4051
4158
|
|
|
4052
4159
|
.logic-editor-empty-hint {
|
|
4053
|
-
margin-top:
|
|
4160
|
+
margin-top: 0 !important;
|
|
4054
4161
|
font-size: 13px !important;
|
|
4162
|
+
font-weight: 400 !important;
|
|
4163
|
+
color: var(--text-muted) !important;
|
|
4164
|
+
max-width: 320px;
|
|
4165
|
+
}
|
|
4166
|
+
|
|
4167
|
+
.logic-editor-empty-chips {
|
|
4168
|
+
display: flex;
|
|
4169
|
+
flex-wrap: wrap;
|
|
4170
|
+
align-items: center;
|
|
4171
|
+
justify-content: center;
|
|
4172
|
+
gap: 6px;
|
|
4173
|
+
margin-top: 4px;
|
|
4174
|
+
pointer-events: auto;
|
|
4175
|
+
}
|
|
4176
|
+
|
|
4177
|
+
.logic-editor-empty-chips-label {
|
|
4178
|
+
font-size: 11px;
|
|
4179
|
+
font-weight: 600;
|
|
4055
4180
|
color: var(--text-muted);
|
|
4181
|
+
text-transform: uppercase;
|
|
4182
|
+
letter-spacing: 0.5px;
|
|
4183
|
+
margin-right: 4px;
|
|
4184
|
+
}
|
|
4185
|
+
|
|
4186
|
+
.logic-editor-empty-chip {
|
|
4187
|
+
display: inline-flex;
|
|
4188
|
+
align-items: center;
|
|
4189
|
+
padding: 4px 10px;
|
|
4190
|
+
font-size: 12px;
|
|
4191
|
+
font-family: inherit;
|
|
4192
|
+
font-weight: 500;
|
|
4193
|
+
background: var(--bg-secondary);
|
|
4194
|
+
color: var(--text-secondary);
|
|
4195
|
+
border: 1px solid var(--border-secondary);
|
|
4196
|
+
border-radius: 999px;
|
|
4197
|
+
cursor: pointer;
|
|
4198
|
+
transition: background var(--motion-fast) var(--ease-out),
|
|
4199
|
+
border-color var(--motion-fast) var(--ease-out),
|
|
4200
|
+
color var(--motion-fast) var(--ease-out),
|
|
4201
|
+
box-shadow var(--motion-fast) var(--ease-out);
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
.logic-editor-empty-chip:hover {
|
|
4205
|
+
background: var(--accent-blue-light);
|
|
4206
|
+
border-color: var(--accent-blue);
|
|
4207
|
+
color: var(--accent-blue);
|
|
4208
|
+
}
|
|
4209
|
+
|
|
4210
|
+
.logic-editor-empty-chip:focus-visible {
|
|
4211
|
+
outline: none;
|
|
4212
|
+
box-shadow: var(--focus-ring);
|
|
4056
4213
|
}
|
|
4057
4214
|
|
|
4058
4215
|
/* ReactFlow overrides */
|
|
4059
4216
|
.logic-editor .react-flow__controls {
|
|
4060
|
-
box-shadow:
|
|
4061
|
-
border-radius:
|
|
4217
|
+
box-shadow: var(--shadow-md);
|
|
4218
|
+
border-radius: var(--radius-md);
|
|
4062
4219
|
overflow: hidden;
|
|
4063
4220
|
}
|
|
4064
4221
|
|
|
@@ -4112,6 +4269,15 @@ svg.react-flow__connectionline {
|
|
|
4112
4269
|
.logic-editor-toolbar {
|
|
4113
4270
|
padding: 0 8px;
|
|
4114
4271
|
gap: 6px;
|
|
4272
|
+
/* Restore horizontal scrolling on narrow viewports where buttons can overflow */
|
|
4273
|
+
overflow-x: auto;
|
|
4274
|
+
overflow-y: hidden;
|
|
4275
|
+
-webkit-overflow-scrolling: touch;
|
|
4276
|
+
scrollbar-width: none;
|
|
4277
|
+
}
|
|
4278
|
+
|
|
4279
|
+
.logic-editor-toolbar::-webkit-scrollbar {
|
|
4280
|
+
display: none;
|
|
4115
4281
|
}
|
|
4116
4282
|
|
|
4117
4283
|
.logic-editor-toolbar-spacer {
|
|
@@ -4123,7 +4289,7 @@ svg.react-flow__connectionline {
|
|
|
4123
4289
|
height: 40px;
|
|
4124
4290
|
}
|
|
4125
4291
|
|
|
4126
|
-
.dl-
|
|
4292
|
+
.dl-templating-toggle span {
|
|
4127
4293
|
font-size: 11px;
|
|
4128
4294
|
}
|
|
4129
4295
|
|
|
@@ -4194,10 +4360,10 @@ svg.react-flow__connectionline {
|
|
|
4194
4360
|
z-index: 1000;
|
|
4195
4361
|
min-width: 180px;
|
|
4196
4362
|
max-width: 280px;
|
|
4197
|
-
background: var(--bg-
|
|
4198
|
-
border: 1px solid var(--border-
|
|
4199
|
-
border-radius:
|
|
4200
|
-
box-shadow:
|
|
4363
|
+
background: var(--bg-secondary);
|
|
4364
|
+
border: 1px solid var(--border-primary);
|
|
4365
|
+
border-radius: var(--radius-md);
|
|
4366
|
+
box-shadow: var(--shadow-lg);
|
|
4201
4367
|
padding: 4px 0;
|
|
4202
4368
|
font-size: 13px;
|
|
4203
4369
|
outline: none;
|