@bpmn-nova/react 0.3.1-preview
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/LICENSE +17 -0
- package/README.md +183 -0
- package/dist/index.d.ts +204 -0
- package/dist/index.js +352 -0
- package/dist/styles.css +1435 -0
- package/package.json +62 -0
package/dist/styles.css
ADDED
|
@@ -0,0 +1,1435 @@
|
|
|
1
|
+
/* @bpmn-nova/internal/theme */
|
|
2
|
+
[data-nova-theme] {
|
|
3
|
+
accent-color: var(--nova-color-primary);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
[data-nova-theme="light"] {
|
|
7
|
+
--nova-color-canvas: #f8f9fb;
|
|
8
|
+
--nova-color-surface: #ffffff;
|
|
9
|
+
--nova-color-surface-raised: #ffffff;
|
|
10
|
+
--nova-color-surface-subtle: #f7f8fb;
|
|
11
|
+
--nova-color-surface-muted: #f0f2f7;
|
|
12
|
+
--nova-color-text: #1f2430;
|
|
13
|
+
--nova-color-text-secondary: #596477;
|
|
14
|
+
--nova-color-text-muted: #7d8798;
|
|
15
|
+
--nova-color-text-inverse: #ffffff;
|
|
16
|
+
--nova-color-border: #e1e5ec;
|
|
17
|
+
--nova-color-border-strong: #cbd2dd;
|
|
18
|
+
--nova-color-divider: #e9ecf2;
|
|
19
|
+
--nova-color-primary: #635bff;
|
|
20
|
+
--nova-color-primary-hover: #5149e8;
|
|
21
|
+
--nova-color-primary-soft: #f0efff;
|
|
22
|
+
--nova-color-focus-ring: rgba(82, 92, 214, .52);
|
|
23
|
+
--nova-color-edge: #9aa8bb;
|
|
24
|
+
--nova-color-grid-dot: rgba(128, 139, 157, .22);
|
|
25
|
+
--nova-color-backdrop: rgba(20, 26, 39, .38);
|
|
26
|
+
--nova-shadow-sm: 0 1px 3px rgba(31, 40, 65, .10);
|
|
27
|
+
--nova-shadow-md: 0 8px 24px rgba(31, 40, 65, .13);
|
|
28
|
+
--nova-shadow-lg: 0 18px 52px rgba(22, 29, 48, .20);
|
|
29
|
+
--nova-tone-primary-foreground: #5149e8;
|
|
30
|
+
--nova-tone-primary-background: #f0efff;
|
|
31
|
+
--nova-tone-primary-border: #c9c6ff;
|
|
32
|
+
--nova-tone-primary-strong: #635bff;
|
|
33
|
+
--nova-tone-success-foreground: #19875b;
|
|
34
|
+
--nova-tone-success-background: #eaf8f1;
|
|
35
|
+
--nova-tone-success-border: #bde6d3;
|
|
36
|
+
--nova-tone-success-strong: #22a06b;
|
|
37
|
+
--nova-tone-danger-foreground: #c93f4b;
|
|
38
|
+
--nova-tone-danger-background: #fff0f1;
|
|
39
|
+
--nova-tone-danger-border: #f2b9bf;
|
|
40
|
+
--nova-tone-danger-strong: #df4b55;
|
|
41
|
+
--nova-tone-warning-foreground: #a36b13;
|
|
42
|
+
--nova-tone-warning-background: #fff6e8;
|
|
43
|
+
--nova-tone-warning-border: #ecd2a4;
|
|
44
|
+
--nova-tone-warning-strong: #c48218;
|
|
45
|
+
--nova-tone-info-foreground: #3665c5;
|
|
46
|
+
--nova-tone-info-background: #eef3ff;
|
|
47
|
+
--nova-tone-info-border: #c7d5f5;
|
|
48
|
+
--nova-tone-info-strong: #527bd4;
|
|
49
|
+
--nova-tone-neutral-foreground: #667186;
|
|
50
|
+
--nova-tone-neutral-background: #f1f3f6;
|
|
51
|
+
--nova-tone-neutral-border: #dce1e8;
|
|
52
|
+
--nova-tone-neutral-strong: #8791a3;
|
|
53
|
+
--nova-tone-user-task-foreground: #c77b12;
|
|
54
|
+
--nova-tone-user-task-background: #fff4e5;
|
|
55
|
+
--nova-tone-user-task-border: #efd4ac;
|
|
56
|
+
--nova-tone-user-task-strong: #efa63a;
|
|
57
|
+
--nova-tone-service-task-foreground: #2f7ec4;
|
|
58
|
+
--nova-tone-service-task-background: #edf6ff;
|
|
59
|
+
--nova-tone-service-task-border: #c7def2;
|
|
60
|
+
--nova-tone-service-task-strong: #4e9ce7;
|
|
61
|
+
--nova-tone-script-task-foreground: #7351c6;
|
|
62
|
+
--nova-tone-script-task-background: #f2efff;
|
|
63
|
+
--nova-tone-script-task-border: #d5caef;
|
|
64
|
+
--nova-tone-script-task-strong: #9268dc;
|
|
65
|
+
--nova-tone-rule-task-foreground: #8255cc;
|
|
66
|
+
--nova-tone-rule-task-background: #f4efff;
|
|
67
|
+
--nova-tone-rule-task-border: #d9c9f0;
|
|
68
|
+
--nova-tone-rule-task-strong: #9268dc;
|
|
69
|
+
--nova-tone-message-task-foreground: #238b8e;
|
|
70
|
+
--nova-tone-message-task-background: #eaf9f8;
|
|
71
|
+
--nova-tone-message-task-border: #bfe2e0;
|
|
72
|
+
--nova-tone-message-task-strong: #36a6a8;
|
|
73
|
+
--nova-tone-manual-task-foreground: #c46c56;
|
|
74
|
+
--nova-tone-manual-task-background: #fff0ec;
|
|
75
|
+
--nova-tone-manual-task-border: #edc7bc;
|
|
76
|
+
--nova-tone-manual-task-strong: #d67c67;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
[data-nova-theme="dark"] {
|
|
80
|
+
--nova-color-canvas: #10131a;
|
|
81
|
+
--nova-color-surface: #171b24;
|
|
82
|
+
--nova-color-surface-raised: #202633;
|
|
83
|
+
--nova-color-surface-subtle: #141821;
|
|
84
|
+
--nova-color-surface-muted: #252b38;
|
|
85
|
+
--nova-color-text: #edf1f7;
|
|
86
|
+
--nova-color-text-secondary: #bdc6d5;
|
|
87
|
+
--nova-color-text-muted: #8f9aad;
|
|
88
|
+
--nova-color-text-inverse: #11151d;
|
|
89
|
+
--nova-color-border: #303847;
|
|
90
|
+
--nova-color-border-strong: #465164;
|
|
91
|
+
--nova-color-divider: #29313f;
|
|
92
|
+
--nova-color-primary: #918cff;
|
|
93
|
+
--nova-color-primary-hover: #aaa6ff;
|
|
94
|
+
--nova-color-primary-soft: #2a2852;
|
|
95
|
+
--nova-color-focus-ring: rgba(150, 145, 255, .72);
|
|
96
|
+
--nova-color-edge: #657188;
|
|
97
|
+
--nova-color-grid-dot: rgba(154, 167, 188, .18);
|
|
98
|
+
--nova-color-backdrop: rgba(2, 5, 10, .68);
|
|
99
|
+
--nova-shadow-sm: 0 1px 3px rgba(0, 0, 0, .28);
|
|
100
|
+
--nova-shadow-md: 0 10px 30px rgba(0, 0, 0, .34);
|
|
101
|
+
--nova-shadow-lg: 0 22px 64px rgba(0, 0, 0, .48);
|
|
102
|
+
--nova-tone-primary-foreground: #b6b3ff;
|
|
103
|
+
--nova-tone-primary-background: #2a2852;
|
|
104
|
+
--nova-tone-primary-border: #555097;
|
|
105
|
+
--nova-tone-primary-strong: #918cff;
|
|
106
|
+
--nova-tone-success-foreground: #71d6ab;
|
|
107
|
+
--nova-tone-success-background: #17382d;
|
|
108
|
+
--nova-tone-success-border: #2b6550;
|
|
109
|
+
--nova-tone-success-strong: #42bd88;
|
|
110
|
+
--nova-tone-danger-foreground: #ff9aa3;
|
|
111
|
+
--nova-tone-danger-background: #42232a;
|
|
112
|
+
--nova-tone-danger-border: #7a3b45;
|
|
113
|
+
--nova-tone-danger-strong: #f06c78;
|
|
114
|
+
--nova-tone-warning-foreground: #edbd6d;
|
|
115
|
+
--nova-tone-warning-background: #3c301d;
|
|
116
|
+
--nova-tone-warning-border: #71582b;
|
|
117
|
+
--nova-tone-warning-strong: #d99d3d;
|
|
118
|
+
--nova-tone-info-foreground: #98b8ff;
|
|
119
|
+
--nova-tone-info-background: #202f50;
|
|
120
|
+
--nova-tone-info-border: #3a568d;
|
|
121
|
+
--nova-tone-info-strong: #7298ee;
|
|
122
|
+
--nova-tone-neutral-foreground: #aeb8c8;
|
|
123
|
+
--nova-tone-neutral-background: #252b36;
|
|
124
|
+
--nova-tone-neutral-border: #414a59;
|
|
125
|
+
--nova-tone-neutral-strong: #8f9aad;
|
|
126
|
+
--nova-tone-user-task-foreground: #f0bd70;
|
|
127
|
+
--nova-tone-user-task-background: #3d301e;
|
|
128
|
+
--nova-tone-user-task-border: #6b522b;
|
|
129
|
+
--nova-tone-user-task-strong: #dea24b;
|
|
130
|
+
--nova-tone-service-task-foreground: #8dc8ff;
|
|
131
|
+
--nova-tone-service-task-background: #1d3349;
|
|
132
|
+
--nova-tone-service-task-border: #345b7d;
|
|
133
|
+
--nova-tone-service-task-strong: #62a9e8;
|
|
134
|
+
--nova-tone-script-task-foreground: #bea8ff;
|
|
135
|
+
--nova-tone-script-task-background: #30284c;
|
|
136
|
+
--nova-tone-script-task-border: #594985;
|
|
137
|
+
--nova-tone-script-task-strong: #9a7be0;
|
|
138
|
+
--nova-tone-rule-task-foreground: #c9a5ff;
|
|
139
|
+
--nova-tone-rule-task-background: #342648;
|
|
140
|
+
--nova-tone-rule-task-border: #624680;
|
|
141
|
+
--nova-tone-rule-task-strong: #a775dd;
|
|
142
|
+
--nova-tone-message-task-foreground: #79d2d2;
|
|
143
|
+
--nova-tone-message-task-background: #183738;
|
|
144
|
+
--nova-tone-message-task-border: #2c6264;
|
|
145
|
+
--nova-tone-message-task-strong: #4db7b9;
|
|
146
|
+
--nova-tone-manual-task-foreground: #f0a995;
|
|
147
|
+
--nova-tone-manual-task-background: #3e2925;
|
|
148
|
+
--nova-tone-manual-task-border: #72493f;
|
|
149
|
+
--nova-tone-manual-task-strong: #dc876f;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* @bpmn-nova/internal/icons */
|
|
153
|
+
.nova-icon { width: 16px; height: 16px; display: inline-grid; place-items: center; flex: none; color: currentColor; line-height: 0; transform-origin: 50% 50%; }
|
|
154
|
+
.nova-icon.nova-icon-xs { width: 12px; height: 12px; }
|
|
155
|
+
.nova-icon.nova-icon-sm { width: 14px; height: 14px; }
|
|
156
|
+
.nova-icon.nova-icon-md { width: 16px; height: 16px; }
|
|
157
|
+
.nova-icon > .nova-icon-svg { width: 100%; height: 100%; display: block; overflow: visible; fill: none; stroke: currentColor; vector-effect: non-scaling-stroke; }
|
|
158
|
+
.nova-icon[data-icon-missing="true"] { visibility: hidden; }
|
|
159
|
+
|
|
160
|
+
/* @bpmn-nova/internal/export-svg */
|
|
161
|
+
.nova-svg-export-preview {
|
|
162
|
+
position: absolute;
|
|
163
|
+
inset: 0;
|
|
164
|
+
z-index: 140;
|
|
165
|
+
display: grid;
|
|
166
|
+
place-items: center;
|
|
167
|
+
padding: 24px;
|
|
168
|
+
box-sizing: border-box;
|
|
169
|
+
background: var(--nova-color-backdrop, rgba(20, 26, 39, .38));
|
|
170
|
+
color: var(--nova-color-text, #1f2430);
|
|
171
|
+
font-family: var(--nova-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif);
|
|
172
|
+
opacity: 1;
|
|
173
|
+
transition: opacity .18s ease;
|
|
174
|
+
}
|
|
175
|
+
.nova-svg-export-preview.is-entering,
|
|
176
|
+
.nova-svg-export-preview.is-closing { opacity: 0; }
|
|
177
|
+
.nova-svg-export-dialog {
|
|
178
|
+
width: min(1120px, 100%);
|
|
179
|
+
height: min(820px, 100%);
|
|
180
|
+
min-height: 420px;
|
|
181
|
+
display: grid;
|
|
182
|
+
grid-template-rows: auto auto minmax(0, 1fr) auto auto;
|
|
183
|
+
overflow: hidden;
|
|
184
|
+
border: 1px solid var(--nova-color-border, #e1e5ec);
|
|
185
|
+
border-radius: 16px;
|
|
186
|
+
background: var(--nova-color-surface, #fff);
|
|
187
|
+
box-shadow: var(--nova-shadow-lg, 0 18px 52px rgba(22, 29, 48, .2));
|
|
188
|
+
transform: translateY(0) scale(1);
|
|
189
|
+
transition: transform .2s cubic-bezier(.2, .8, .2, 1);
|
|
190
|
+
}
|
|
191
|
+
.nova-svg-export-preview.is-entering .nova-svg-export-dialog,
|
|
192
|
+
.nova-svg-export-preview.is-closing .nova-svg-export-dialog { transform: translateY(10px) scale(.985); }
|
|
193
|
+
.nova-svg-export-header,
|
|
194
|
+
.nova-svg-export-toolbar,
|
|
195
|
+
.nova-svg-export-footer { display: flex; align-items: center; gap: 12px; padding: 14px 18px; }
|
|
196
|
+
.nova-svg-export-header { justify-content: space-between; border-bottom: 1px solid var(--nova-color-divider, #e9ecf2); }
|
|
197
|
+
.nova-svg-export-heading { display: grid; gap: 3px; }
|
|
198
|
+
.nova-svg-export-heading strong { font-size: 17px; }
|
|
199
|
+
.nova-svg-export-heading span { color: var(--nova-color-text-muted); font-size: 12px; }
|
|
200
|
+
.nova-svg-export-close { width: 34px; height: 34px; border: 0; border-radius: 9px; background: transparent; color: var(--nova-color-text-muted); font-size: 24px; line-height: 1; cursor: pointer; }
|
|
201
|
+
.nova-svg-export-close:hover { background: var(--nova-color-surface-muted); color: var(--nova-color-text); }
|
|
202
|
+
.nova-svg-export-toolbar { justify-content: space-between; flex-wrap: wrap; background: var(--nova-color-surface-subtle); border-bottom: 1px solid var(--nova-color-divider); }
|
|
203
|
+
.nova-svg-export-theme,
|
|
204
|
+
.nova-svg-export-viewport-tools { display: inline-flex; align-items: center; gap: 3px; padding: 3px; border-radius: 9px; background: var(--nova-color-surface); border: 1px solid var(--nova-color-border); }
|
|
205
|
+
.nova-svg-export-theme button,
|
|
206
|
+
.nova-svg-export-viewport-tools button { min-height: 28px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: var(--nova-color-text-secondary); cursor: pointer; }
|
|
207
|
+
.nova-svg-export-theme button.is-active { background: var(--nova-color-primary-soft); color: var(--nova-color-primary); font-weight: 650; }
|
|
208
|
+
.nova-svg-export-theme button:focus-visible,
|
|
209
|
+
.nova-svg-export-viewport-tools button:focus-visible,
|
|
210
|
+
.nova-svg-export-actions button:focus-visible,
|
|
211
|
+
.nova-svg-export-close:focus-visible,
|
|
212
|
+
.nova-svg-export-viewport:focus-visible { outline: 2px solid var(--nova-color-focus-ring); outline-offset: 2px; }
|
|
213
|
+
.nova-svg-export-transparent { display: inline-flex; align-items: center; gap: 7px; color: var(--nova-color-text-secondary); font-size: 12px; cursor: pointer; }
|
|
214
|
+
.nova-svg-export-viewport-tools span { min-width: 46px; text-align: center; color: var(--nova-color-text-muted); font-size: 11px; }
|
|
215
|
+
.nova-svg-export-body { position: relative; min-height: 0; overflow: hidden; background: var(--nova-color-canvas); }
|
|
216
|
+
.nova-svg-export-viewport { position: absolute; inset: 0; overflow: hidden; cursor: grab; touch-action: none; background-color: var(--nova-color-canvas); background-image: linear-gradient(45deg, color-mix(in srgb, var(--nova-color-border) 35%, transparent) 25%, transparent 25%), linear-gradient(-45deg, color-mix(in srgb, var(--nova-color-border) 35%, transparent) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, color-mix(in srgb, var(--nova-color-border) 35%, transparent) 75%), linear-gradient(-45deg, transparent 75%, color-mix(in srgb, var(--nova-color-border) 35%, transparent) 75%); background-size: 20px 20px; background-position: 0 0, 0 10px, 10px -10px, -10px 0; }
|
|
217
|
+
.nova-svg-export-viewport.is-dragging { cursor: grabbing; }
|
|
218
|
+
.nova-svg-export-stage { position: absolute; left: 0; top: 0; width: 1px; height: 1px; transform-origin: 0 0; will-change: transform; }
|
|
219
|
+
.nova-svg-export-image { display: block; max-width: none; user-select: none; pointer-events: none; box-shadow: 0 6px 24px rgba(0, 0, 0, .14); }
|
|
220
|
+
.nova-svg-export-state { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 12px; background: color-mix(in srgb, var(--nova-color-surface) 88%, transparent); color: var(--nova-color-text-secondary); }
|
|
221
|
+
.nova-svg-export-state[hidden] { display: none; }
|
|
222
|
+
.nova-svg-export-state.is-error { color: var(--nova-tone-danger-foreground); }
|
|
223
|
+
.nova-svg-export-spinner { width: 24px; height: 24px; border: 2px solid var(--nova-color-border); border-top-color: var(--nova-color-primary); border-radius: 50%; animation: nova-svg-export-spin .8s linear infinite; }
|
|
224
|
+
.nova-svg-export-state.is-error .nova-svg-export-spinner { display: none; }
|
|
225
|
+
@keyframes nova-svg-export-spin { to { transform: rotate(360deg); } }
|
|
226
|
+
.nova-svg-export-warnings { max-height: 110px; overflow: auto; padding: 10px 18px; border-top: 1px solid var(--nova-tone-warning-border); background: var(--nova-tone-warning-background); color: var(--nova-tone-warning-foreground); font-size: 11px; }
|
|
227
|
+
.nova-svg-export-warnings[hidden] { display: none; }
|
|
228
|
+
.nova-svg-export-warnings strong { display: block; margin-bottom: 4px; }
|
|
229
|
+
.nova-svg-export-warnings ul { margin: 0; padding-left: 18px; }
|
|
230
|
+
.nova-svg-export-footer { justify-content: space-between; border-top: 1px solid var(--nova-color-divider); }
|
|
231
|
+
.nova-svg-export-summary { min-width: 0; overflow: hidden; color: var(--nova-color-text-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
|
|
232
|
+
.nova-svg-export-actions { display: flex; gap: 8px; }
|
|
233
|
+
.nova-svg-export-actions button { min-height: 34px; padding: 0 14px; border: 1px solid var(--nova-color-border); border-radius: 9px; background: var(--nova-color-surface); color: var(--nova-color-text-secondary); cursor: pointer; }
|
|
234
|
+
.nova-svg-export-actions button.is-primary { border-color: var(--nova-color-primary); background: var(--nova-color-primary); color: var(--nova-color-text-inverse, #fff); }
|
|
235
|
+
.nova-svg-export-actions button:disabled { opacity: .48; cursor: not-allowed; }
|
|
236
|
+
@media (max-width: 720px) {
|
|
237
|
+
.nova-svg-export-preview { padding: 10px; }
|
|
238
|
+
.nova-svg-export-dialog { width: 100%; height: 100%; min-height: 0; border-radius: 12px; }
|
|
239
|
+
.nova-svg-export-toolbar { align-items: flex-start; }
|
|
240
|
+
.nova-svg-export-viewport-tools { order: 3; width: 100%; justify-content: center; }
|
|
241
|
+
.nova-svg-export-summary { display: none; }
|
|
242
|
+
.nova-svg-export-footer { justify-content: flex-end; }
|
|
243
|
+
}
|
|
244
|
+
@media (prefers-reduced-motion: reduce) {
|
|
245
|
+
.nova-svg-export-preview,
|
|
246
|
+
.nova-svg-export-dialog { transition: none; }
|
|
247
|
+
.nova-svg-export-spinner { animation: none; }
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* @bpmn-nova/internal/renderer-svg */
|
|
251
|
+
.mb-diagram-host,
|
|
252
|
+
.mb-runtime-timeline-host {
|
|
253
|
+
--mb-primary: var(--nova-color-primary, #635bff);
|
|
254
|
+
--mb-primary-strong: var(--nova-color-primary-hover, #5149e8);
|
|
255
|
+
--mb-primary-soft: var(--nova-color-primary-soft, #f0efff);
|
|
256
|
+
--mb-text: var(--nova-color-text, #1f2430);
|
|
257
|
+
--mb-muted: var(--nova-color-text-muted, #7d8798);
|
|
258
|
+
--mb-subtle: var(--nova-color-text-muted, #a3aab7);
|
|
259
|
+
--mb-border: var(--nova-color-border, #e1e5ec);
|
|
260
|
+
--mb-border-strong: var(--nova-color-border-strong, #cbd2dd);
|
|
261
|
+
--mb-edge: var(--nova-color-edge, #9aa8bb);
|
|
262
|
+
--mb-success: var(--nova-tone-success-strong, #22a06b);
|
|
263
|
+
--mb-success-soft: var(--nova-tone-success-background, #eaf8f1);
|
|
264
|
+
--mb-danger: var(--nova-tone-danger-strong, #df4b55);
|
|
265
|
+
--mb-danger-soft: var(--nova-tone-danger-background, #fff0f1);
|
|
266
|
+
--mb-warning: var(--nova-tone-warning-strong, #c48218);
|
|
267
|
+
--mb-warning-soft: var(--nova-tone-warning-background, #fff6e8);
|
|
268
|
+
--mb-card: var(--nova-color-surface, #ffffff);
|
|
269
|
+
--mb-grid-dot: var(--nova-color-grid-dot, rgba(128, 139, 157, .22));
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.mb-diagram-host {
|
|
273
|
+
position: relative;
|
|
274
|
+
width: 100%;
|
|
275
|
+
height: 100%;
|
|
276
|
+
min-height: 0;
|
|
277
|
+
overflow: hidden;
|
|
278
|
+
background: var(--nova-color-canvas, #f8f9fb);
|
|
279
|
+
user-select: none;
|
|
280
|
+
color: var(--mb-text);
|
|
281
|
+
font-family: var(--nova-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif);
|
|
282
|
+
text-rendering: optimizeLegibility;
|
|
283
|
+
-webkit-font-smoothing: auto;
|
|
284
|
+
}
|
|
285
|
+
.mb-diagram-viewport {
|
|
286
|
+
position: absolute;
|
|
287
|
+
inset: 0;
|
|
288
|
+
overflow: hidden;
|
|
289
|
+
cursor: default;
|
|
290
|
+
background-color: var(--nova-color-canvas, #fafbfc);
|
|
291
|
+
background-image: radial-gradient(circle, var(--mb-grid-dot) 1px, transparent 1.1px);
|
|
292
|
+
background-size: 20px 20px;
|
|
293
|
+
}
|
|
294
|
+
.mb-diagram-viewport.is-grid-hidden { background-image: none; }
|
|
295
|
+
.mb-diagram-viewport::before {
|
|
296
|
+
content: '';
|
|
297
|
+
position: absolute;
|
|
298
|
+
inset: 0;
|
|
299
|
+
pointer-events: none;
|
|
300
|
+
background: radial-gradient(circle at 48% 42%, color-mix(in srgb, var(--mb-primary) 4%, transparent), transparent 38%);
|
|
301
|
+
}
|
|
302
|
+
.mb-diagram-viewport.is-panning { cursor: grabbing; }
|
|
303
|
+
.mb-diagram-viewport.is-pan-ready { cursor: grab; }
|
|
304
|
+
.mb-diagram-viewport.is-selecting { cursor: crosshair; }
|
|
305
|
+
.mb-diagram-viewport[data-interaction-mode="marquee"] { cursor: crosshair; }
|
|
306
|
+
.mb-diagram-viewport[data-interaction-mode="pan"] { cursor: grab; }
|
|
307
|
+
.mb-diagram-viewport[data-interaction-mode="pan"].is-panning { cursor: grabbing; }
|
|
308
|
+
.mb-selection-marquee {
|
|
309
|
+
position: absolute;
|
|
310
|
+
z-index: 45;
|
|
311
|
+
border: 1px solid var(--nova-color-primary);
|
|
312
|
+
border-radius: 3px;
|
|
313
|
+
background: color-mix(in srgb, var(--nova-color-primary) 9%, transparent);
|
|
314
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--nova-color-surface) 42%, transparent);
|
|
315
|
+
pointer-events: none;
|
|
316
|
+
}
|
|
317
|
+
.mb-selection-marquee[hidden] { display: none; }
|
|
318
|
+
.mb-diagram-world {
|
|
319
|
+
position: absolute;
|
|
320
|
+
left: 0;
|
|
321
|
+
top: 0;
|
|
322
|
+
width: 1px;
|
|
323
|
+
height: 1px;
|
|
324
|
+
overflow: visible;
|
|
325
|
+
transform-origin: 0 0;
|
|
326
|
+
/* The logical canvas is unbounded. Individual SVG layers are dynamically
|
|
327
|
+
enveloped around visible/content coordinates instead of using a finite
|
|
328
|
+
5200×3200 surface. */
|
|
329
|
+
transform-style: flat;
|
|
330
|
+
}
|
|
331
|
+
.mb-edge-layer,
|
|
332
|
+
.mb-runtime-transition-layer,
|
|
333
|
+
.mb-guide-layer,
|
|
334
|
+
.mb-edge-label-layer { position: absolute; overflow: visible; }
|
|
335
|
+
.mb-node-layer { position: absolute; left: 0; top: 0; width: 1px; height: 1px; overflow: visible; }
|
|
336
|
+
.mb-edge-layer { overflow: visible; z-index: 10; shape-rendering: geometricPrecision; text-rendering: geometricPrecision; }
|
|
337
|
+
.mb-runtime-transition-layer { overflow: visible; z-index: 13; shape-rendering: geometricPrecision; text-rendering: geometricPrecision; pointer-events: none; }
|
|
338
|
+
.mb-guide-layer { overflow: visible; z-index: 15; pointer-events: none; }
|
|
339
|
+
.mb-node-layer { z-index: 20; pointer-events: none; }
|
|
340
|
+
.mb-node-layer > * { pointer-events: auto; }
|
|
341
|
+
.mb-edge-label-layer { z-index: 30; pointer-events: none; shape-rendering: geometricPrecision; text-rendering: geometricPrecision; }
|
|
342
|
+
|
|
343
|
+
/* Magnetic alignment guides */
|
|
344
|
+
.mb-alignment-guide {
|
|
345
|
+
stroke: color-mix(in srgb, var(--nova-color-primary) 72%, transparent);
|
|
346
|
+
stroke-width: 1;
|
|
347
|
+
stroke-dasharray: 5 5;
|
|
348
|
+
vector-effect: non-scaling-stroke;
|
|
349
|
+
pointer-events: none;
|
|
350
|
+
}
|
|
351
|
+
.mb-alignment-guide.kind-center { stroke: color-mix(in srgb, var(--nova-color-primary) 82%, transparent); }
|
|
352
|
+
.mb-alignment-guide.kind-edge { stroke: color-mix(in srgb, var(--nova-tone-info-strong) 65%, transparent); }
|
|
353
|
+
|
|
354
|
+
/* Edges */
|
|
355
|
+
.mb-edge-path {
|
|
356
|
+
stroke: var(--mb-edge);
|
|
357
|
+
stroke-width: 1.8;
|
|
358
|
+
stroke-linecap: round;
|
|
359
|
+
stroke-linejoin: round;
|
|
360
|
+
vector-effect: non-scaling-stroke;
|
|
361
|
+
transition: stroke .14s ease, stroke-width .14s ease;
|
|
362
|
+
}
|
|
363
|
+
.mb-edge-hit {
|
|
364
|
+
stroke: transparent;
|
|
365
|
+
stroke-width: 16;
|
|
366
|
+
pointer-events: stroke;
|
|
367
|
+
cursor: pointer;
|
|
368
|
+
vector-effect: non-scaling-stroke;
|
|
369
|
+
}
|
|
370
|
+
.mb-edge-group:hover .mb-edge-path { stroke: var(--nova-color-border-strong); stroke-width: 2.2; }
|
|
371
|
+
.mb-edge-group.is-selected .mb-edge-path { stroke: var(--mb-primary); stroke-width: 2.6; }
|
|
372
|
+
.mb-edge-group.status-completed .mb-edge-path { stroke: var(--mb-success); stroke-width: 2.3; }
|
|
373
|
+
.mb-edge-group.status-active .mb-edge-path { stroke: var(--mb-primary); stroke-width: 2.7; stroke-dasharray: 8 6; animation: mb-dash .9s linear infinite; }
|
|
374
|
+
.mb-edge-group.status-failed .mb-edge-path { stroke: var(--mb-danger); }
|
|
375
|
+
.mb-edge-group[data-tone] .mb-edge-path { stroke: var(--nova-runtime-tone-strong); }
|
|
376
|
+
.mb-edge-group.type-messageFlow .mb-edge-path { stroke-dasharray: 8 7; }
|
|
377
|
+
.mb-edge-group.type-association .mb-edge-path { stroke-dasharray: 2 6; marker-end: none; }
|
|
378
|
+
@keyframes mb-dash { to { stroke-dashoffset: -14; } }
|
|
379
|
+
|
|
380
|
+
.mb-runtime-transition { pointer-events: auto; cursor: pointer; }
|
|
381
|
+
.mb-runtime-transition-hit { stroke: transparent; stroke-width: 12; pointer-events: stroke; vector-effect: non-scaling-stroke; fill: none; }
|
|
382
|
+
.mb-runtime-transition-path { stroke: var(--nova-runtime-tone-strong, var(--nova-tone-neutral-strong)); stroke-width: 2.2; stroke-dasharray: 8 6; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; fill: none; animation: mb-runtime-transition-flow .85s linear infinite; }
|
|
383
|
+
.mb-runtime-transition.is-history { opacity: .34; }
|
|
384
|
+
.mb-runtime-transition.is-latest { opacity: 1; }
|
|
385
|
+
.mb-runtime-transition:focus { outline: none; }
|
|
386
|
+
.mb-runtime-transition:hover .mb-runtime-transition-path, .mb-runtime-transition:focus-visible .mb-runtime-transition-path { stroke-width: 3; filter: drop-shadow(0 0 3px color-mix(in srgb, var(--nova-runtime-tone-strong) 26%, transparent)); }
|
|
387
|
+
.mb-runtime-transition-label rect { fill: color-mix(in srgb, var(--nova-color-surface-raised) 98%, transparent); stroke: var(--nova-runtime-tone-border, var(--nova-tone-neutral-border)); stroke-width: 1; vector-effect: non-scaling-stroke; }
|
|
388
|
+
.mb-runtime-transition-label text { fill: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); font-size: var(--nova-font-size-sm, 12px); line-height: 16px; font-weight: var(--nova-font-weight-semibold, 600); pointer-events: none; }
|
|
389
|
+
@keyframes mb-runtime-transition-flow { to { stroke-dashoffset: -14; } }
|
|
390
|
+
@media (prefers-reduced-motion: reduce) {
|
|
391
|
+
.mb-runtime-transition-path { animation: none; }
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
.mb-edge-label-group { pointer-events: auto; cursor: text; }
|
|
395
|
+
.mb-edge-label-bg {
|
|
396
|
+
fill: var(--nova-color-surface-raised);
|
|
397
|
+
stroke: var(--nova-color-border);
|
|
398
|
+
stroke-width: .9;
|
|
399
|
+
vector-effect: non-scaling-stroke;
|
|
400
|
+
}
|
|
401
|
+
.mb-edge-label {
|
|
402
|
+
font-size: var(--nova-font-size-sm, 12px);
|
|
403
|
+
font-weight: var(--nova-font-weight-semibold, 600);
|
|
404
|
+
letter-spacing: 0;
|
|
405
|
+
fill: var(--nova-color-text-secondary, #596477);
|
|
406
|
+
pointer-events: none;
|
|
407
|
+
text-rendering: geometricPrecision;
|
|
408
|
+
}
|
|
409
|
+
.mb-edge-label-group.is-placeholder .mb-edge-label-bg { stroke-dasharray: 3 3; fill: var(--nova-color-surface-subtle); }
|
|
410
|
+
.mb-edge-label-group.is-placeholder .mb-edge-label { fill: var(--nova-color-primary); font-weight: 600; }
|
|
411
|
+
.mb-edge-bend { fill: var(--nova-color-surface, #fff); stroke: var(--mb-primary); stroke-width: 2; cursor: move; vector-effect: non-scaling-stroke; filter: drop-shadow(0 2px 4px color-mix(in srgb, var(--nova-color-text) 15%, transparent)); }
|
|
412
|
+
.mb-edge-label-editor-wrap { width: 100%; height: 100%; display: grid; place-items: center; }
|
|
413
|
+
.mb-edge-label-editor { pointer-events: auto; }
|
|
414
|
+
.mb-edge-label-input {
|
|
415
|
+
width: 156px;
|
|
416
|
+
height: 28px;
|
|
417
|
+
box-sizing: border-box;
|
|
418
|
+
border: 1.5px solid var(--mb-primary);
|
|
419
|
+
border-radius: 7px;
|
|
420
|
+
padding: 0 9px;
|
|
421
|
+
outline: none;
|
|
422
|
+
background: var(--nova-color-surface, #fff);
|
|
423
|
+
color: var(--nova-color-text);
|
|
424
|
+
font-family: var(--nova-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif);
|
|
425
|
+
font-size: var(--nova-font-size-sm, 12px);
|
|
426
|
+
font-weight: var(--nova-font-weight-semibold, 600);
|
|
427
|
+
line-height: 18px;
|
|
428
|
+
box-shadow: var(--nova-shadow-md), 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 11%, transparent);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/* Base nodes */
|
|
432
|
+
.mb-node {
|
|
433
|
+
position: absolute;
|
|
434
|
+
box-sizing: border-box;
|
|
435
|
+
cursor: pointer;
|
|
436
|
+
color: var(--mb-text);
|
|
437
|
+
outline: none;
|
|
438
|
+
z-index: 5;
|
|
439
|
+
}
|
|
440
|
+
.mb-node-task,
|
|
441
|
+
.mb-node-container {
|
|
442
|
+
overflow: visible;
|
|
443
|
+
background: var(--mb-card);
|
|
444
|
+
border: 1px solid var(--mb-border);
|
|
445
|
+
border-radius: 13px;
|
|
446
|
+
box-shadow: var(--nova-shadow-sm);
|
|
447
|
+
transition: box-shadow .14s ease, border-color .14s ease, transform .14s ease;
|
|
448
|
+
}
|
|
449
|
+
.mb-node-task:hover,
|
|
450
|
+
.mb-node-container:hover { border-color: var(--nova-color-border-strong); box-shadow: var(--nova-shadow-md); }
|
|
451
|
+
.mb-node.is-selected.mb-node-task,
|
|
452
|
+
.mb-node.is-selected.mb-node-container {
|
|
453
|
+
border-color: var(--mb-primary);
|
|
454
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 10%, transparent), var(--nova-shadow-md);
|
|
455
|
+
}
|
|
456
|
+
.mb-node[data-tone].mb-node-task { border-color: var(--nova-runtime-tone-border); }
|
|
457
|
+
.mb-node[data-tone="primary"].mb-node-task { box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 9%, transparent), var(--nova-shadow-md); }
|
|
458
|
+
.mb-node-accent { position: absolute; left: -1px; top: 18px; bottom: 18px; width: 3px; border-radius: 0 5px 5px 0; background: var(--nova-color-primary); opacity: .8; }
|
|
459
|
+
.mb-node-task > .mb-node-accent { top: 12px; bottom: 12px; }
|
|
460
|
+
.mb-node-type-userTask .mb-node-accent { background: var(--nova-tone-user-task-strong, #efa63a); }
|
|
461
|
+
.mb-node-type-serviceTask .mb-node-accent { background: var(--nova-tone-service-task-strong, #4e9ce7); }
|
|
462
|
+
.mb-node-type-businessRuleTask .mb-node-accent { background: var(--nova-tone-script-task-strong, #9268dc); }
|
|
463
|
+
.mb-node-type-sendTask .mb-node-accent,
|
|
464
|
+
.mb-node-type-receiveTask .mb-node-accent { background: var(--nova-tone-message-task-strong, #36a6a8); }
|
|
465
|
+
.mb-node-type-manualTask .mb-node-accent { background: var(--nova-tone-manual-task-strong, #d67c67); }
|
|
466
|
+
.mb-node-type-callActivity .mb-node-accent { background: var(--nova-tone-success-strong); }
|
|
467
|
+
|
|
468
|
+
.mb-node-header { display: flex; align-items: center; gap: 11px; height: 100%; padding: 0 15px 0 16px; box-sizing: border-box; }
|
|
469
|
+
.mb-node-task > .mb-node-header { gap: 12px; padding: 0 14px; }
|
|
470
|
+
.mb-node-icon {
|
|
471
|
+
display: grid;
|
|
472
|
+
place-items: center;
|
|
473
|
+
width: 34px;
|
|
474
|
+
height: 34px;
|
|
475
|
+
flex: 0 0 34px;
|
|
476
|
+
border-radius: 10px;
|
|
477
|
+
background: var(--nova-color-primary-soft, #f0efff);
|
|
478
|
+
color: var(--nova-color-primary);
|
|
479
|
+
font-size: var(--nova-font-size-lg, 16px);
|
|
480
|
+
font-weight: var(--nova-font-weight-bold, 700);
|
|
481
|
+
letter-spacing: -1px;
|
|
482
|
+
}
|
|
483
|
+
.mb-node-task > .mb-node-header .mb-node-icon { width: 36px; height: 36px; flex-basis: 36px; }
|
|
484
|
+
.mb-node-type-userTask .mb-node-icon { background: var(--nova-tone-user-task-background, #fff4e5); color: var(--nova-tone-user-task-foreground, #c77b12); }
|
|
485
|
+
.mb-node-type-serviceTask .mb-node-icon { background: var(--nova-tone-service-task-background, #edf6ff); color: var(--nova-tone-service-task-foreground, #2f7ec4); }
|
|
486
|
+
.mb-node-type-scriptTask .mb-node-icon { background: var(--nova-tone-script-task-background, #f2efff); color: var(--nova-tone-script-task-foreground, #7351c6); font-size: var(--nova-font-size-sm, 12px); letter-spacing: -1px; }
|
|
487
|
+
.mb-node-type-businessRuleTask .mb-node-icon { background: var(--nova-tone-rule-task-background, #f4efff); color: var(--nova-tone-rule-task-foreground, #8255cc); }
|
|
488
|
+
.mb-node-type-manualTask .mb-node-icon { background: var(--nova-tone-manual-task-background, #fff0ec); color: var(--nova-tone-manual-task-foreground, #c46c56); }
|
|
489
|
+
.mb-node-type-sendTask .mb-node-icon,
|
|
490
|
+
.mb-node-type-receiveTask .mb-node-icon { background: var(--nova-tone-message-task-background, #eaf9f8); color: var(--nova-tone-message-task-foreground, #238b8e); }
|
|
491
|
+
.mb-node-title-wrap { min-width: 0; flex: 1; }
|
|
492
|
+
.mb-node-runtime-copy { display: grid; align-content: center; min-width: 0; box-sizing: border-box; padding-right: 22px; }
|
|
493
|
+
.mb-node-title { font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-bold, 700); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--nova-color-text, #2a303c); }
|
|
494
|
+
.mb-node-subtitle { margin-top: 4px; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; color: var(--mb-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
495
|
+
.mb-node-task > .mb-node-header .mb-node-title { font-size: var(--nova-font-size-lg, 16px); line-height: 22px; font-weight: var(--nova-font-weight-bold, 700); }
|
|
496
|
+
.mb-node-task > .mb-node-header .mb-node-subtitle { margin-top: 2px; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
497
|
+
.mb-diagram-host:not([data-mode="instance"]) .mb-diagram-viewport.is-low-detail .mb-node-subtitle { display: none; }
|
|
498
|
+
.mb-diagram-host[data-mode="instance"] .mb-diagram-viewport.is-low-detail .mb-runtime-summary { display: none; }
|
|
499
|
+
.mb-diagram-host[data-mode="instance"] .mb-diagram-viewport.is-low-detail .mb-runtime-action-summary { display: none; }
|
|
500
|
+
.mb-diagram-viewport.is-overview .mb-edge-label-group:not(.is-selected),
|
|
501
|
+
.mb-diagram-viewport.is-overview .mb-node:not(.is-selected) .mb-node-floating-label { display: none; }
|
|
502
|
+
.mb-activity-markers { position: absolute; left: 50%; bottom: 2px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 4px; color: var(--nova-color-text-secondary); line-height: 0; }
|
|
503
|
+
.mb-activity-marker { width: 12px; height: 12px; display: grid; place-items: center; }
|
|
504
|
+
.mb-activity-marker-icon { width: 12px; height: 12px; display: block; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
|
|
505
|
+
.mb-node-type-callActivity { border-width: 2px; }
|
|
506
|
+
.mb-node-container { background: color-mix(in srgb, var(--nova-color-surface) 88%, transparent); border-style: dashed; border-color: var(--nova-color-border-strong); }
|
|
507
|
+
.mb-node-type-transaction { border-style: double; border-width: 3px; }
|
|
508
|
+
.mb-node-type-eventSubProcess { border-style: dotted; }
|
|
509
|
+
|
|
510
|
+
/* Events */
|
|
511
|
+
.mb-node-event,
|
|
512
|
+
.mb-node-boundary { display: grid; place-items: center; z-index: 7; }
|
|
513
|
+
.mb-event-shape {
|
|
514
|
+
width: 46px;
|
|
515
|
+
height: 46px;
|
|
516
|
+
box-sizing: border-box;
|
|
517
|
+
display: grid;
|
|
518
|
+
place-items: center;
|
|
519
|
+
border-radius: 50%;
|
|
520
|
+
border: 2px solid var(--nova-color-text-muted);
|
|
521
|
+
background: var(--nova-color-surface, #fff);
|
|
522
|
+
color: var(--nova-color-text-secondary);
|
|
523
|
+
box-shadow: var(--nova-shadow-sm);
|
|
524
|
+
position: relative;
|
|
525
|
+
}
|
|
526
|
+
.mb-node-boundary .mb-event-shape { width: 40px; height: 40px; border-width: 2px; }
|
|
527
|
+
.mb-event-shape[data-stage="intermediate"],
|
|
528
|
+
.mb-node-boundary .mb-event-shape { box-shadow: inset 0 0 0 3px var(--nova-color-surface), inset 0 0 0 4.5px var(--nova-color-text-muted, #8796a9), var(--nova-shadow-sm); }
|
|
529
|
+
.mb-event-shape[data-stage="end"] { border-width: 4px; border-color: var(--nova-color-text-secondary); }
|
|
530
|
+
.mb-event-shape.is-noninterrupting { border-style: dashed; box-shadow: inset 0 0 0 3px var(--nova-color-surface), inset 0 0 0 4.5px var(--nova-color-text-muted, #8796a9), var(--nova-shadow-sm); }
|
|
531
|
+
.mb-event-glyph { font-size: 18px; font-weight: var(--nova-font-weight-bold, 700); line-height: 1; }
|
|
532
|
+
.mb-node-type-terminateEndEvent .mb-event-glyph { font-size: 20px; }
|
|
533
|
+
.mb-node.status-completed .mb-event-shape { border-color: var(--mb-success); color: var(--mb-success); background: var(--mb-success-soft); }
|
|
534
|
+
.mb-node.status-active .mb-event-shape { border-color: var(--mb-primary); color: var(--mb-primary); background: var(--mb-primary-soft); }
|
|
535
|
+
.mb-node[data-tone] .mb-event-shape { border-color: var(--nova-runtime-tone-strong); color: var(--nova-runtime-tone-foreground); background: var(--nova-runtime-tone-background); }
|
|
536
|
+
|
|
537
|
+
/* Gateways */
|
|
538
|
+
.mb-node-gateway { display: grid; place-items: center; z-index: 7; }
|
|
539
|
+
.mb-gateway-shape {
|
|
540
|
+
width: 49px;
|
|
541
|
+
height: 49px;
|
|
542
|
+
transform: rotate(45deg);
|
|
543
|
+
border: 1.8px solid var(--nova-tone-warning-strong);
|
|
544
|
+
border-radius: 7px;
|
|
545
|
+
background: var(--nova-tone-warning-background);
|
|
546
|
+
display: grid;
|
|
547
|
+
place-items: center;
|
|
548
|
+
box-shadow: var(--nova-shadow-sm);
|
|
549
|
+
}
|
|
550
|
+
.mb-gateway-symbol { transform: rotate(-45deg); font-size: 24px; font-weight: var(--nova-font-weight-bold, 700); color: var(--nova-tone-warning-foreground); line-height: 1; }
|
|
551
|
+
.mb-gateway-role-badge { position: absolute; z-index: 9; top: -8px; right: -8px; min-width: 18px; height: 18px; border: 2px solid var(--nova-color-surface); border-radius: 9px; padding: 0 4px; display: grid; place-items: center; color: var(--nova-color-text-inverse, #fff); background: var(--nova-tone-neutral-strong); box-shadow: var(--nova-shadow-sm); font-size: var(--nova-font-size-xs, 10px); font-weight: var(--nova-font-weight-bold, 700); line-height: 1; pointer-events: none; }
|
|
552
|
+
.mb-gateway-role-badge.is-incomplete { background: var(--nova-tone-warning-strong, #c48218); }
|
|
553
|
+
.mb-gateway-role-badge.is-conflict { background: var(--nova-tone-danger-strong); }
|
|
554
|
+
.mb-gateway-role-badge.is-ambiguous { background: var(--nova-tone-neutral-strong); }
|
|
555
|
+
.mb-node-type-complexGateway .mb-gateway-symbol { font-size: 20px; }
|
|
556
|
+
.mb-node.status-completed .mb-gateway-shape { border-color: var(--mb-success); background: var(--mb-success-soft); }
|
|
557
|
+
.mb-node.status-active .mb-gateway-shape { border-color: var(--mb-primary); background: var(--mb-primary-soft); }
|
|
558
|
+
.mb-node[data-tone] .mb-gateway-shape { border-color: var(--nova-runtime-tone-strong); background: var(--nova-runtime-tone-background); }
|
|
559
|
+
|
|
560
|
+
.mb-node-floating-label {
|
|
561
|
+
position: absolute;
|
|
562
|
+
left: 50%;
|
|
563
|
+
top: calc(100% + 6px);
|
|
564
|
+
transform: translateX(-50%);
|
|
565
|
+
white-space: nowrap;
|
|
566
|
+
max-width: 180px;
|
|
567
|
+
overflow: hidden;
|
|
568
|
+
text-overflow: ellipsis;
|
|
569
|
+
font-size: var(--nova-font-size-sm, 12px);
|
|
570
|
+
line-height: 16px;
|
|
571
|
+
font-weight: var(--nova-font-weight-semibold, 600);
|
|
572
|
+
color: var(--nova-color-text-secondary);
|
|
573
|
+
pointer-events: none;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/* Data / artifacts */
|
|
577
|
+
.mb-node-data,
|
|
578
|
+
.mb-node-dataStore { display: grid; place-items: center; }
|
|
579
|
+
.mb-data-object-shape {
|
|
580
|
+
width: 50px;
|
|
581
|
+
height: 62px;
|
|
582
|
+
border: 1.7px solid var(--nova-color-text-muted);
|
|
583
|
+
border-radius: 4px;
|
|
584
|
+
background: var(--nova-color-surface, #fff);
|
|
585
|
+
position: relative;
|
|
586
|
+
display: grid;
|
|
587
|
+
place-items: center;
|
|
588
|
+
color: var(--nova-color-text-muted, #77879a);
|
|
589
|
+
}
|
|
590
|
+
.mb-data-object-shape::after {
|
|
591
|
+
content: '';
|
|
592
|
+
position: absolute;
|
|
593
|
+
right: -1.7px;
|
|
594
|
+
top: -1.7px;
|
|
595
|
+
width: 15px;
|
|
596
|
+
height: 15px;
|
|
597
|
+
background: linear-gradient(45deg, var(--nova-color-surface) 48%, var(--nova-color-text-muted) 49%, var(--nova-color-text-muted) 55%, var(--nova-color-divider, #eef1f5) 56%);
|
|
598
|
+
border-top-right-radius: 3px;
|
|
599
|
+
}
|
|
600
|
+
.mb-data-object-lines { font-size: 18px; }
|
|
601
|
+
.mb-data-store-shape {
|
|
602
|
+
width: 56px;
|
|
603
|
+
height: 50px;
|
|
604
|
+
border: 1.7px solid var(--nova-color-text-muted);
|
|
605
|
+
border-radius: 50% / 14%;
|
|
606
|
+
background: var(--nova-color-surface, #fff);
|
|
607
|
+
display: grid;
|
|
608
|
+
place-items: center;
|
|
609
|
+
color: var(--nova-color-text-muted, #77879a);
|
|
610
|
+
position: relative;
|
|
611
|
+
}
|
|
612
|
+
.mb-data-store-shape::before,
|
|
613
|
+
.mb-data-store-shape::after { content: ''; position: absolute; left: -1px; right: -1px; height: 9px; border-radius: 50%; border-top: 1.5px solid var(--nova-color-text-muted); }
|
|
614
|
+
.mb-data-store-shape::before { top: 9px; }
|
|
615
|
+
.mb-data-store-shape::after { top: 19px; }
|
|
616
|
+
.mb-node-annotation { border-left: 2px solid var(--nova-color-text-muted); border-top: 1px solid transparent; border-bottom: 1px solid transparent; }
|
|
617
|
+
.mb-annotation-shape { height: 100%; display: flex; align-items: center; padding: 0 15px; box-sizing: border-box; color: var(--nova-color-text-secondary); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
618
|
+
.mb-node-group { border: 1.5px dashed var(--nova-color-border-strong); border-radius: 16px; z-index: 1; }
|
|
619
|
+
.mb-container-caption { position: absolute; left: 12px; top: 9px; padding: 3px 7px; border-radius: 6px; background: var(--nova-color-canvas, #f8f9fb); color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
620
|
+
|
|
621
|
+
/* Participants / lanes */
|
|
622
|
+
.mb-node-participant,
|
|
623
|
+
.mb-node-lane { border: 1.5px solid var(--nova-color-border-strong); border-radius: 10px; background: color-mix(in srgb, var(--nova-color-surface) 32%, transparent); z-index: 0; }
|
|
624
|
+
.mb-node-lane { border-radius: 7px; border-color: var(--nova-color-border); background: color-mix(in srgb, var(--nova-color-surface) 18%, transparent); }
|
|
625
|
+
.mb-swimlane-rail { position: absolute; overflow: hidden; background: color-mix(in srgb, var(--nova-color-surface-subtle) 78%, transparent); }
|
|
626
|
+
.mb-swimlane-title { position: absolute; left: 50%; top: 50%; writing-mode: horizontal-tb; transform-origin: center; overflow: hidden; color: var(--nova-color-text-secondary); text-align: center; text-overflow: ellipsis; white-space: nowrap; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-bold, 700); letter-spacing: .5px; }
|
|
627
|
+
.mb-swimlane-label-side > .mb-swimlane-rail { left: 0; top: 0; bottom: 0; width: 38px; border-right: 1px solid var(--nova-color-border-strong); border-radius: 9px 0 0 9px; }
|
|
628
|
+
.mb-node-lane.mb-swimlane-label-side > .mb-swimlane-rail { border-radius: 6px 0 0 6px; }
|
|
629
|
+
.mb-swimlane-label-side > .mb-swimlane-rail > .mb-swimlane-title { width: max-content; transform: translate(-50%, -50%) rotate(-90deg); }
|
|
630
|
+
.mb-swimlane-label-top > .mb-swimlane-rail { left: 0; top: 0; right: 0; height: 38px; border-bottom: 1px solid var(--nova-color-border-strong); border-radius: 9px 9px 0 0; }
|
|
631
|
+
.mb-node-lane.mb-swimlane-label-top > .mb-swimlane-rail { border-radius: 6px 6px 0 0; }
|
|
632
|
+
.mb-swimlane-label-top > .mb-swimlane-rail > .mb-swimlane-title { width: calc(100% - 24px); transform: translate(-50%, -50%); }
|
|
633
|
+
|
|
634
|
+
.mb-resize-handle {
|
|
635
|
+
position: absolute;
|
|
636
|
+
z-index: 75;
|
|
637
|
+
width: 9px;
|
|
638
|
+
height: 9px;
|
|
639
|
+
box-sizing: border-box;
|
|
640
|
+
border: 1.5px solid var(--mb-primary);
|
|
641
|
+
border-radius: 2px;
|
|
642
|
+
background: var(--nova-color-surface, #fff);
|
|
643
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--nova-color-surface) 78%, transparent);
|
|
644
|
+
}
|
|
645
|
+
.mb-resize-nw { left: -5px; top: -5px; cursor: nwse-resize; }
|
|
646
|
+
.mb-resize-n { left: 50%; top: -5px; transform: translateX(-50%); cursor: ns-resize; }
|
|
647
|
+
.mb-resize-ne { right: -5px; top: -5px; cursor: nesw-resize; }
|
|
648
|
+
.mb-resize-e { right: -5px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
|
|
649
|
+
.mb-resize-se { right: -5px; bottom: -5px; cursor: nwse-resize; }
|
|
650
|
+
.mb-resize-s { left: 50%; bottom: -5px; transform: translateX(-50%); cursor: ns-resize; }
|
|
651
|
+
.mb-resize-sw { left: -5px; bottom: -5px; cursor: nesw-resize; }
|
|
652
|
+
.mb-resize-w { left: -5px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
|
|
653
|
+
.mb-lane-divider {
|
|
654
|
+
position: absolute;
|
|
655
|
+
left: -1px;
|
|
656
|
+
right: -1px;
|
|
657
|
+
bottom: -5px;
|
|
658
|
+
z-index: 72;
|
|
659
|
+
height: 10px;
|
|
660
|
+
cursor: ns-resize;
|
|
661
|
+
}
|
|
662
|
+
.mb-lane-divider::after {
|
|
663
|
+
content: '';
|
|
664
|
+
position: absolute;
|
|
665
|
+
left: 8px;
|
|
666
|
+
right: 8px;
|
|
667
|
+
top: 4px;
|
|
668
|
+
height: 2px;
|
|
669
|
+
border-radius: 2px;
|
|
670
|
+
background: var(--mb-primary);
|
|
671
|
+
opacity: 0;
|
|
672
|
+
transition: opacity .12s ease;
|
|
673
|
+
}
|
|
674
|
+
.mb-node-lane:hover > .mb-lane-divider::after,
|
|
675
|
+
.mb-node-lane.is-selected > .mb-lane-divider::after { opacity: .78; }
|
|
676
|
+
|
|
677
|
+
/* Ports + context actions */
|
|
678
|
+
.mb-port {
|
|
679
|
+
position: absolute;
|
|
680
|
+
z-index: 40;
|
|
681
|
+
width: 11px;
|
|
682
|
+
height: 11px;
|
|
683
|
+
border-radius: 50%;
|
|
684
|
+
border: 2px solid var(--nova-color-border-strong);
|
|
685
|
+
background: var(--nova-color-surface, #fff);
|
|
686
|
+
padding: 0;
|
|
687
|
+
opacity: 0;
|
|
688
|
+
transition: opacity .12s ease, border-color .12s ease, transform .12s ease, background .12s ease;
|
|
689
|
+
}
|
|
690
|
+
.mb-node:hover .mb-port,
|
|
691
|
+
.mb-node.is-selected .mb-port,
|
|
692
|
+
.mb-node.is-connect-target .mb-port { opacity: 1; }
|
|
693
|
+
.mb-port:hover { border-color: var(--mb-primary); }
|
|
694
|
+
.mb-port-left { left: -6px; top: 50%; transform: translateY(-50%); }
|
|
695
|
+
.mb-port-right { right: -6px; top: 50%; transform: translateY(-50%); }
|
|
696
|
+
.mb-port-top { left: 50%; top: -6px; transform: translateX(-50%); }
|
|
697
|
+
.mb-port-bottom { left: 50%; bottom: -6px; transform: translateX(-50%); }
|
|
698
|
+
.mb-port-left:hover,
|
|
699
|
+
.mb-port-right:hover { transform: translateY(-50%) scale(1.2); }
|
|
700
|
+
.mb-port-top:hover,
|
|
701
|
+
.mb-port-bottom:hover { transform: translateX(-50%) scale(1.2); }
|
|
702
|
+
.mb-node.is-connecting-source .mb-port-right { opacity: 1; border-color: var(--mb-primary); background: var(--mb-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--nova-color-primary) 12%, transparent); }
|
|
703
|
+
.mb-port-target {
|
|
704
|
+
width: 12px;
|
|
705
|
+
height: 12px;
|
|
706
|
+
opacity: 1;
|
|
707
|
+
border-color: var(--mb-primary);
|
|
708
|
+
background: var(--nova-color-surface, #fff);
|
|
709
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 10%, transparent);
|
|
710
|
+
}
|
|
711
|
+
.mb-port-target:hover { background: var(--mb-primary); box-shadow: 0 0 0 5px color-mix(in srgb, var(--nova-color-primary) 14%, transparent); }
|
|
712
|
+
.mb-node-actions { position: absolute; right: -42px; top: 50%; transform: translateY(-50%); display: grid; gap: 7px; z-index: 60; }
|
|
713
|
+
.mb-action-btn {
|
|
714
|
+
width: 30px;
|
|
715
|
+
height: 30px;
|
|
716
|
+
border: 1px solid var(--nova-color-border);
|
|
717
|
+
border-radius: 9px;
|
|
718
|
+
background: var(--nova-color-surface, #fff);
|
|
719
|
+
color: var(--nova-color-text-secondary);
|
|
720
|
+
padding: 0;
|
|
721
|
+
display: grid;
|
|
722
|
+
place-items: center;
|
|
723
|
+
box-shadow: var(--nova-shadow-md);
|
|
724
|
+
cursor: pointer;
|
|
725
|
+
transition: transform .12s ease, background .12s ease, color .12s ease, border-color .12s ease;
|
|
726
|
+
}
|
|
727
|
+
.mb-action-btn:hover { transform: translateY(-1px); border-color: var(--nova-color-border-strong); color: var(--nova-color-text); }
|
|
728
|
+
.mb-action-primary { background: var(--mb-primary); color: var(--nova-color-text-inverse, #fff); border-color: var(--mb-primary); }
|
|
729
|
+
.mb-action-primary:hover { background: var(--mb-primary-strong); color: var(--nova-color-text-inverse, #fff); border-color: var(--mb-primary-strong); }
|
|
730
|
+
.mb-action-enter { color: var(--mb-primary); border-color: var(--nova-tone-primary-border); background: var(--nova-color-primary-soft); }
|
|
731
|
+
.mb-action-enter:hover { color: var(--nova-color-text-inverse, #fff); border-color: var(--mb-primary); background: var(--mb-primary); }
|
|
732
|
+
.mb-action-connect.is-active {
|
|
733
|
+
background: var(--mb-primary);
|
|
734
|
+
color: var(--nova-color-text-inverse, #fff);
|
|
735
|
+
border-color: var(--mb-primary);
|
|
736
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--nova-color-primary) 12%, transparent), var(--nova-shadow-md);
|
|
737
|
+
}
|
|
738
|
+
.mb-action-connect.is-active:hover { background: var(--mb-primary-strong); color: var(--nova-color-text-inverse, #fff); border-color: var(--mb-primary-strong); }
|
|
739
|
+
.mb-action-danger:hover { background: var(--nova-tone-danger-background); color: var(--nova-tone-danger-foreground); border-color: var(--nova-tone-danger-border); }
|
|
740
|
+
.mb-scope-empty { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 6px; pointer-events: none; color: var(--nova-color-text-muted); }
|
|
741
|
+
.mb-scope-empty[hidden] { display: none; }
|
|
742
|
+
.mb-scope-empty strong { color: var(--nova-color-primary); font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
743
|
+
.mb-scope-empty span { font-size: 10px; }
|
|
744
|
+
|
|
745
|
+
/* Connect-existing mode: candidate targets are explicit and geometry-agnostic. */
|
|
746
|
+
.mb-diagram-host.is-connecting .mb-node { transition: opacity .12s ease, box-shadow .14s ease, border-color .14s ease; }
|
|
747
|
+
.mb-node.is-connect-target { cursor: crosshair; }
|
|
748
|
+
.mb-node.is-connect-target.mb-node-task,
|
|
749
|
+
.mb-node.is-connect-target.mb-node-container {
|
|
750
|
+
border-color: var(--nova-tone-primary-border);
|
|
751
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 8%, transparent), var(--nova-shadow-md);
|
|
752
|
+
}
|
|
753
|
+
.mb-node.is-connect-target.mb-node-task:hover,
|
|
754
|
+
.mb-node.is-connect-target.mb-node-container:hover {
|
|
755
|
+
border-color: var(--mb-primary);
|
|
756
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--nova-color-primary) 12%, transparent), var(--nova-shadow-md);
|
|
757
|
+
}
|
|
758
|
+
.mb-node.is-connect-target .mb-event-shape,
|
|
759
|
+
.mb-node.is-connect-target .mb-gateway-shape {
|
|
760
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--nova-color-primary) 10%, transparent), var(--nova-shadow-md);
|
|
761
|
+
}
|
|
762
|
+
.mb-node.is-connect-target:hover .mb-event-shape,
|
|
763
|
+
.mb-node.is-connect-target:hover .mb-gateway-shape {
|
|
764
|
+
border-color: var(--mb-primary);
|
|
765
|
+
box-shadow: 0 0 0 5px color-mix(in srgb, var(--nova-color-primary) 14%, transparent), var(--nova-shadow-md);
|
|
766
|
+
}
|
|
767
|
+
.mb-connect-mode-hint {
|
|
768
|
+
position: absolute;
|
|
769
|
+
right: 38px;
|
|
770
|
+
top: calc(100% + 10px);
|
|
771
|
+
white-space: nowrap;
|
|
772
|
+
padding: 5px 9px;
|
|
773
|
+
border: 1px solid var(--nova-tone-primary-border);
|
|
774
|
+
border-radius: 7px;
|
|
775
|
+
background: color-mix(in srgb, var(--nova-color-surface-raised) 97%, transparent);
|
|
776
|
+
color: var(--nova-tone-primary-foreground);
|
|
777
|
+
font-size: var(--nova-font-size-sm, 12px);
|
|
778
|
+
font-weight: var(--nova-font-weight-semibold, 600);
|
|
779
|
+
line-height: 1;
|
|
780
|
+
box-shadow: var(--nova-shadow-md);
|
|
781
|
+
pointer-events: none;
|
|
782
|
+
z-index: 70;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
/* Quick-add menu */
|
|
786
|
+
.mb-quick-menu {
|
|
787
|
+
position: absolute;
|
|
788
|
+
width: 292px;
|
|
789
|
+
max-height: 412px;
|
|
790
|
+
overflow: hidden;
|
|
791
|
+
border: 1px solid var(--nova-color-border, #e0e4eb);
|
|
792
|
+
border-radius: 14px;
|
|
793
|
+
background: color-mix(in srgb, var(--nova-color-surface) 98.5%, transparent);
|
|
794
|
+
box-shadow: var(--nova-shadow-lg);
|
|
795
|
+
z-index: 120;
|
|
796
|
+
backdrop-filter: blur(12px);
|
|
797
|
+
}
|
|
798
|
+
.mb-quick-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 13px 9px 14px; }
|
|
799
|
+
.mb-quick-menu-title { font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-bold, 700); color: var(--nova-color-text); }
|
|
800
|
+
.mb-quick-menu-subtitle { margin-top: 2px; font-size: var(--nova-font-size-xs, 10px); line-height: 14px; color: var(--nova-color-text-muted); }
|
|
801
|
+
.mb-quick-menu-close { width: 26px; height: 26px; border: 0; border-radius: 7px; padding: 0; display: grid; place-items: center; background: var(--nova-color-surface-muted); color: var(--nova-color-text-muted); cursor: pointer; }
|
|
802
|
+
.mb-quick-menu-search { display: block; width: calc(100% - 24px); height: 34px; margin: 0 12px 8px; box-sizing: border-box; border: 1px solid var(--nova-color-border); border-radius: 8px; padding: 0 10px; outline: none; background: var(--nova-color-surface-subtle); color: var(--nova-color-text); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
803
|
+
.mb-quick-menu-search:focus { border-color: var(--nova-tone-primary-border); background: var(--nova-color-surface, #fff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 8%, transparent); }
|
|
804
|
+
.mb-quick-menu-body { max-height: 324px; overflow-y: auto; padding: 0 8px 10px; }
|
|
805
|
+
.mb-quick-menu-section-title { padding: 8px 7px 5px; color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; font-weight: var(--nova-font-weight-bold, 700); text-transform: uppercase; letter-spacing: .5px; }
|
|
806
|
+
.mb-quick-menu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
|
|
807
|
+
.mb-quick-menu-item { min-width: 0; height: 38px; display: flex; align-items: center; gap: 8px; border: 0; border-radius: 8px; padding: 0 8px; background: transparent; color: var(--nova-color-text-secondary); cursor: pointer; text-align: left; }
|
|
808
|
+
.mb-quick-menu-item:hover { background: var(--nova-color-primary-soft); color: var(--nova-tone-primary-foreground); }
|
|
809
|
+
.mb-mini-type { width: 22px; height: 22px; flex: 0 0 22px; display: grid; place-items: center; border-radius: 6px; background: var(--nova-tone-neutral-background); color: var(--nova-tone-neutral-foreground); font-size: var(--nova-font-size-sm, 12px); font-weight: var(--nova-font-weight-bold, 700); }
|
|
810
|
+
.mb-mini-kind-gateway { background: var(--nova-tone-warning-background); color: var(--nova-tone-warning-foreground); transform: rotate(45deg); border-radius: 5px; }
|
|
811
|
+
.mb-mini-kind-gateway + .mb-quick-menu-item-text { margin-left: 1px; }
|
|
812
|
+
.mb-mini-kind-event, .mb-mini-kind-boundary { border-radius: 50%; background: var(--nova-tone-info-background); color: var(--nova-tone-info-foreground); }
|
|
813
|
+
.mb-mini-kind-task { background: var(--nova-color-primary-soft, #eef0ff); color: var(--nova-tone-primary-foreground); }
|
|
814
|
+
.mb-quick-menu-item-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
815
|
+
.mb-quick-menu .is-hidden { display: none !important; }
|
|
816
|
+
|
|
817
|
+
/* Runtime */
|
|
818
|
+
.mb-runtime-status-icon { position: absolute; z-index: 6; right: 8px; top: 8px; width: 20px; height: 20px; display: grid; place-items: center; box-sizing: border-box; border: 0; border-radius: 50%; padding: 0; background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); }
|
|
819
|
+
button.mb-runtime-status-icon { cursor: pointer; }
|
|
820
|
+
button.mb-runtime-status-icon:hover, button.mb-runtime-status-icon:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 15%, transparent); }
|
|
821
|
+
.mb-runtime-status-icon .nova-icon { width: 14px; height: 14px; }
|
|
822
|
+
.mb-runtime-summary { display: block; width: 100%; min-width: 0; border: 0; padding: 0; background: transparent; text-align: left; font-family: inherit; cursor: default; }
|
|
823
|
+
button.mb-runtime-summary { cursor: pointer; }
|
|
824
|
+
button.mb-runtime-summary:hover, button.mb-runtime-summary:focus-visible { color: var(--mb-primary); outline: none; text-decoration: underline; text-underline-offset: 2px; }
|
|
825
|
+
.mb-runtime-action-summary { display: block; width: 100%; min-width: 0; margin-top: 1px; overflow: hidden; border: 0; padding: 0; color: var(--nova-color-text-secondary, #596477); background: transparent; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-family: inherit; font-size: var(--nova-font-size-xs, 10px); line-height: 14px; cursor: default; }
|
|
826
|
+
button.mb-runtime-action-summary { cursor: pointer; }
|
|
827
|
+
button.mb-runtime-action-summary:hover, button.mb-runtime-action-summary:focus-visible { color: var(--mb-primary); outline: none; text-decoration: underline; text-underline-offset: 2px; }
|
|
828
|
+
.mb-diagram-host[data-mode="viewer"] .mb-diagram-viewport,
|
|
829
|
+
.mb-diagram-host[data-mode="instance"] .mb-diagram-viewport { cursor: grab; }
|
|
830
|
+
.mb-runtime-details-layer { --mb-runtime-details-drag-offset: 0px; --mb-runtime-details-backdrop-progress: 1; position: absolute; inset: 0; z-index: 70; overflow: hidden; pointer-events: none; }
|
|
831
|
+
.mb-runtime-details-layer.has-backdrop::before { content: ''; position: absolute; inset: 0; z-index: 0; background: var(--nova-color-backdrop); backdrop-filter: blur(1px); opacity: 0; pointer-events: none; transition: opacity 180ms ease; }
|
|
832
|
+
.mb-runtime-details-layer.has-backdrop.is-open::before, .mb-runtime-details-layer.has-backdrop.is-settling::before, .mb-runtime-details-layer.has-backdrop.is-dragging::before { opacity: var(--mb-runtime-details-backdrop-progress); }
|
|
833
|
+
.mb-runtime-details-layer.has-backdrop.is-dragging::before { transition: none; }
|
|
834
|
+
.mb-runtime-details-layer.placement-bottom.has-backdrop, .mb-runtime-details-layer.placement-center.has-backdrop { pointer-events: auto; }
|
|
835
|
+
.mb-runtime-details-popover { position: absolute; box-sizing: border-box; min-width: 300px; max-width: 360px; max-height: 360px; display: grid; grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 12px; outline: none; background: color-mix(in srgb, var(--nova-color-surface-raised) 99%, transparent); color: var(--mb-text); box-shadow: var(--nova-shadow-lg); pointer-events: auto; user-select: text; }
|
|
836
|
+
.mb-runtime-details-motion-panel { z-index: 1; opacity: 1; transform: translate3d(0, 0, 0) scale(1); transform-origin: center; transition: opacity 160ms ease, transform 160ms cubic-bezier(.2, .8, .2, 1); }
|
|
837
|
+
.mb-runtime-details-layer.placement-popover.is-entering .mb-runtime-details-motion-panel, .mb-runtime-details-layer.placement-popover.is-closing .mb-runtime-details-motion-panel, .mb-runtime-details-layer.placement-center.is-entering .mb-runtime-details-motion-panel, .mb-runtime-details-layer.placement-center.is-closing .mb-runtime-details-motion-panel { opacity: 0; transform: translate3d(0, 6px, 0) scale(.98); }
|
|
838
|
+
.mb-runtime-details-layer.placement-popover.is-closing .mb-runtime-details-motion-panel, .mb-runtime-details-layer.placement-center.is-closing .mb-runtime-details-motion-panel { transition-duration: 140ms; transition-timing-function: ease-in; }
|
|
839
|
+
.mb-runtime-details-layer.placement-bottom .mb-runtime-details-popover { width: 100%; min-width: 0; max-width: none; max-height: var(--mb-runtime-details-max-height, 75%); border-right: 0; border-bottom: 0; border-left: 0; border-radius: 16px 16px 0 0; padding-bottom: env(safe-area-inset-bottom, 0); box-shadow: var(--nova-shadow-lg); }
|
|
840
|
+
.mb-runtime-details-layer.placement-bottom .mb-runtime-details-motion-panel { transform: translate3d(0, var(--mb-runtime-details-drag-offset), 0); transition: opacity 180ms ease, transform 260ms cubic-bezier(.2, .8, .2, 1); }
|
|
841
|
+
.mb-runtime-details-layer.placement-bottom.is-entering .mb-runtime-details-motion-panel, .mb-runtime-details-layer.placement-bottom.is-closing .mb-runtime-details-motion-panel { opacity: .98; transform: translate3d(0, 100%, 0); }
|
|
842
|
+
.mb-runtime-details-layer.placement-bottom.is-closing .mb-runtime-details-motion-panel { transition-duration: 160ms, 220ms; transition-timing-function: ease-in; }
|
|
843
|
+
.mb-runtime-details-layer.placement-bottom.is-dragging .mb-runtime-details-motion-panel { transition: none; }
|
|
844
|
+
.mb-runtime-details-layer.placement-bottom.is-settling .mb-runtime-details-motion-panel { transition-duration: 180ms; transition-timing-function: cubic-bezier(.2, .8, .2, 1); }
|
|
845
|
+
.mb-runtime-details-layer.is-entering .mb-runtime-details-motion-panel, .mb-runtime-details-layer.has-backdrop.is-entering::before { transition: none; }
|
|
846
|
+
.mb-runtime-details-drag-handle { position: absolute; z-index: 4; top: 0; left: 50%; width: 80px; height: 44px; border: 0; padding: 0; transform: translateX(-50%); touch-action: none; user-select: none; cursor: grab; }
|
|
847
|
+
.mb-runtime-details-drag-handle::before { content: ''; position: absolute; top: 7px; left: 50%; width: 34px; height: 4px; border-radius: 999px; background: var(--nova-color-border-strong, #d9dee7); transform: translateX(-50%); transition: background-color 140ms ease, width 140ms ease; }
|
|
848
|
+
.mb-runtime-details-drag-handle:hover::before { width: 40px; background: var(--nova-color-text-muted); }
|
|
849
|
+
.mb-runtime-details-layer.is-dragging .mb-runtime-details-drag-handle { cursor: grabbing; }
|
|
850
|
+
.mb-runtime-details-drag-active, .mb-runtime-details-drag-active * { user-select: none !important; cursor: grabbing !important; }
|
|
851
|
+
.mb-runtime-details-layer.placement-bottom .mb-runtime-details-head { padding-top: 20px; }
|
|
852
|
+
.mb-runtime-details-layer.placement-bottom .mb-runtime-details-body, .mb-runtime-details-layer.placement-center .mb-runtime-details-body { max-height: none; }
|
|
853
|
+
.mb-runtime-details-layer.placement-center .mb-runtime-details-popover { min-width: 0; }
|
|
854
|
+
@media (prefers-reduced-motion: reduce) { .mb-runtime-details-popover, .mb-runtime-details-layer.has-backdrop::before, .mb-runtime-details-motion-panel { animation: none !important; transition: none !important; } }
|
|
855
|
+
.mb-runtime-details-head { position: relative; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px 48px 12px 14px; border-bottom: 1px solid var(--nova-color-divider, #edf0f4); }
|
|
856
|
+
.mb-runtime-details-heading { min-width: 0; display: grid; gap: 2px; }
|
|
857
|
+
.mb-runtime-details-heading strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--nova-font-size-lg, 16px); line-height: 22px; font-weight: var(--nova-font-weight-bold, 700); }
|
|
858
|
+
.mb-runtime-details-heading span { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
859
|
+
.mb-runtime-details-head > em { padding: 2px 8px; border-radius: 999px; background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-style: normal; white-space: nowrap; }
|
|
860
|
+
.mb-runtime-details-close { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 7px; padding: 0; background: transparent; color: var(--nova-color-text-muted); cursor: pointer; }
|
|
861
|
+
.mb-runtime-details-close:hover, .mb-runtime-details-close:focus-visible { outline: none; background: var(--nova-color-primary-soft); color: var(--mb-primary); }
|
|
862
|
+
.mb-runtime-details-progress { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; background: var(--nova-color-surface-subtle); color: var(--nova-color-text-secondary, #667085); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
863
|
+
.mb-runtime-details-progress strong { color: var(--mb-primary); font-size: var(--nova-font-size-md, 14px); }
|
|
864
|
+
.mb-runtime-details-body { min-height: 0; max-height: 280px; overflow-y: auto; overscroll-behavior: contain; padding: 8px; scrollbar-width: thin; scrollbar-color: var(--nova-color-border-strong, #d9dee7) transparent; }
|
|
865
|
+
.mb-runtime-details-round { margin: 8px 6px 4px; color: var(--nova-color-text-secondary, #596477); font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
866
|
+
.mb-runtime-details-person { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 9px 6px; border-radius: 8px; }
|
|
867
|
+
.mb-runtime-details-person + .mb-runtime-details-person { border-top: 1px solid var(--nova-color-divider); }
|
|
868
|
+
.mb-runtime-details-avatar { width: 32px; height: 32px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--nova-color-primary-soft, #f0efff); color: var(--mb-primary); font-size: var(--nova-font-size-sm, 12px); font-weight: var(--nova-font-weight-semibold, 600); }
|
|
869
|
+
.mb-runtime-details-avatar img { width: 100%; height: 100%; object-fit: cover; }
|
|
870
|
+
.mb-runtime-details-person-copy { min-width: 0; display: grid; gap: 2px; }
|
|
871
|
+
.mb-runtime-details-person-title { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
|
|
872
|
+
.mb-runtime-details-person-title strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
873
|
+
.mb-runtime-details-person-title em { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-style: normal; }
|
|
874
|
+
.mb-runtime-details-person-title em[data-tone] { color: var(--nova-runtime-tone-foreground); }
|
|
875
|
+
.mb-runtime-details-person time, .mb-runtime-details-transition span { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
876
|
+
.mb-runtime-details-person p, .mb-runtime-details-transition p { margin: 2px 0 0; color: var(--nova-color-text-secondary, #596477); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; white-space: normal; overflow-wrap: anywhere; }
|
|
877
|
+
.mb-runtime-action { display: grid; gap: 6px; margin: 6px; padding: 9px 10px; border: 1px solid var(--nova-runtime-tone-border, var(--nova-color-border)); border-radius: 9px; background: var(--nova-runtime-tone-background, var(--nova-color-surface-subtle)); }
|
|
878
|
+
.mb-runtime-action-head { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; }
|
|
879
|
+
.mb-runtime-action-heading { min-width: 0; display: flex; align-items: center; gap: 7px; }
|
|
880
|
+
.mb-runtime-action-heading strong { overflow: hidden; color: var(--nova-color-text-secondary); text-overflow: ellipsis; white-space: nowrap; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
881
|
+
.mb-runtime-action-heading em { border-radius: 999px; padding: 1px 6px; color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); background: var(--nova-color-surface-raised); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; font-style: normal; white-space: nowrap; }
|
|
882
|
+
.mb-runtime-action-head time { color: var(--nova-color-text-muted, #929bac); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; white-space: nowrap; }
|
|
883
|
+
.mb-runtime-action-targets { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
884
|
+
.mb-runtime-action-content { min-width: 0; display: grid; gap: 7px; }
|
|
885
|
+
.mb-runtime-action-paragraph { margin: 0; color: var(--nova-color-text-secondary); white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
886
|
+
.mb-runtime-action-media { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
|
|
887
|
+
.mb-runtime-asset-image { width: 76px; height: 58px; overflow: hidden; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 7px; padding: 0; display: grid; place-items: center; color: var(--nova-color-text-muted); background: var(--nova-color-surface-muted, #f2f4f7); cursor: pointer; }
|
|
888
|
+
.mb-runtime-asset-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
|
|
889
|
+
.mb-runtime-asset-image:hover, .mb-runtime-asset-image:focus-visible { border-color: var(--mb-primary); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 10%, transparent); }
|
|
890
|
+
.mb-runtime-asset-file { min-width: 0; max-width: 100%; flex: 0 1 320px; min-height: 44px; box-sizing: border-box; border: 1px solid var(--nova-color-border, #e0e4eb); border-radius: 7px; padding: 6px 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; color: var(--nova-color-text-secondary); background: var(--nova-color-surface, #fff); text-decoration: none; }
|
|
891
|
+
.mb-runtime-asset-file:hover, .mb-runtime-asset-file:focus-visible { border-color: var(--mb-primary); outline: none; color: var(--mb-primary); }
|
|
892
|
+
.mb-runtime-asset-file-copy { min-width: 0; display: grid; }
|
|
893
|
+
.mb-runtime-asset-file-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
894
|
+
.mb-runtime-asset-file-copy small, .mb-runtime-asset-state { color: var(--nova-color-text-muted, #929bac); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
895
|
+
.mb-runtime-asset-file.is-loading, .mb-runtime-asset-file.is-unavailable, .mb-runtime-asset-image.is-unavailable { pointer-events: none; cursor: default; opacity: .72; }
|
|
896
|
+
.mb-runtime-asset-unsupported, .mb-runtime-asset-more { border-radius: 6px; padding: 4px 7px; color: var(--nova-tone-danger-foreground); background: var(--nova-tone-danger-background); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
897
|
+
.mb-runtime-asset-more { align-self: stretch; min-width: 30px; display: grid; place-items: center; color: var(--nova-color-text-secondary, #667085); background: var(--nova-color-divider, #eef1f5); }
|
|
898
|
+
.mb-runtime-details-transition { display: grid; gap: 2px; margin: 6px; padding: 8px 10px; border-radius: 8px; background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); }
|
|
899
|
+
.mb-runtime-details-transition strong { font-size: var(--nova-font-size-md, 14px); line-height: 20px; }
|
|
900
|
+
.mb-runtime-details-empty { padding: 22px 12px; color: var(--mb-muted); text-align: center; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
901
|
+
.mb-runtime-transition-details { grid-template-rows: auto minmax(0, 1fr) auto; }
|
|
902
|
+
.mb-runtime-transition-actor { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 9px 6px; }
|
|
903
|
+
.mb-runtime-transition-actor time { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
904
|
+
.mb-runtime-transition-warning { margin: 6px; padding: 8px 10px; border-radius: 8px; background: var(--mb-warning-soft); color: var(--mb-warning); }
|
|
905
|
+
.mb-runtime-transition-warning p { margin: 0; font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
906
|
+
.mb-runtime-transition-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 8px 12px; border-top: 1px solid var(--nova-color-divider, #edf0f4); }
|
|
907
|
+
.mb-runtime-transition-actions button { min-height: 28px; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 6px; padding: 0 10px; background: var(--nova-color-surface, #fff); color: var(--nova-color-text-secondary, #596477); font: inherit; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; cursor: pointer; }
|
|
908
|
+
.mb-runtime-transition-actions button:hover, .mb-runtime-transition-actions button:focus-visible { border-color: var(--mb-primary); outline: none; color: var(--mb-primary); }
|
|
909
|
+
.mb-runtime-transition-actions button:disabled { opacity: .45; cursor: not-allowed; }
|
|
910
|
+
.mb-runtime-asset-preview { position: absolute; inset: 0; z-index: 95; padding: 24px; display: grid; place-items: center; background: var(--nova-color-backdrop); backdrop-filter: blur(2px); pointer-events: auto; }
|
|
911
|
+
.mb-runtime-asset-preview-dialog { position: relative; width: min(760px, 100%); max-height: 100%; overflow: hidden; border-radius: 12px; display: grid; grid-template-rows: auto minmax(0, 1fr); background: var(--nova-color-surface-raised); box-shadow: var(--nova-shadow-lg); }
|
|
912
|
+
.mb-runtime-asset-preview-head { position: relative; min-width: 0; min-height: 48px; padding: 13px 48px 11px 14px; display: flex; align-items: center; border-bottom: 1px solid var(--nova-color-divider); }
|
|
913
|
+
.mb-runtime-asset-preview-head strong { overflow: hidden; color: var(--nova-color-text); text-overflow: ellipsis; white-space: nowrap; font-size: var(--nova-font-size-md, 14px); }
|
|
914
|
+
.mb-runtime-asset-preview-body { min-height: 180px; overflow: auto; display: grid; place-items: center; background: var(--nova-color-surface-muted, #f4f5f8); }
|
|
915
|
+
.mb-runtime-asset-preview-body img { max-width: 100%; max-height: calc(100vh - 120px); display: block; object-fit: contain; }
|
|
916
|
+
.mb-runtime-asset-preview-state { color: var(--nova-color-text-muted, #7f899a); font-size: var(--nova-font-size-sm, 12px); }
|
|
917
|
+
|
|
918
|
+
/* Runtime timeline projection */
|
|
919
|
+
.mb-runtime-timeline-host { position: relative; width: 100%; height: 100%; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; background: var(--nova-color-surface-subtle, #f7f8fb); color: var(--mb-text); font-family: var(--nova-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif); scrollbar-width: thin; scrollbar-color: var(--nova-color-border-strong, #d9dee7) transparent; }
|
|
920
|
+
.mb-runtime-timeline-host::-webkit-scrollbar { width: 4px; }.mb-runtime-timeline-host::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--nova-color-border-strong, #d9dee7); }
|
|
921
|
+
.mb-runtime-timeline { width: 100%; min-height: 100%; box-sizing: border-box; margin: 0; padding: 18px 16px 40px; background: var(--nova-color-surface, #fff); }
|
|
922
|
+
.mb-runtime-timeline-header { display: grid; gap: 2px; padding: 0 0 16px; border-bottom: 1px solid var(--nova-color-divider, #edf0f5); }
|
|
923
|
+
.mb-runtime-timeline-header strong { font-size: var(--nova-font-size-lg, 16px); line-height: 22px; font-weight: var(--nova-font-weight-bold, 700); }.mb-runtime-timeline-header span { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
924
|
+
.mb-runtime-timeline-list { padding-top: 10px; }
|
|
925
|
+
.mb-runtime-timeline-item { position: relative; min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 7px 0; }
|
|
926
|
+
.mb-runtime-timeline-item:not(:last-child)::before { content: ''; position: absolute; left: 16px; top: 38px; bottom: -10px; width: 2px; border-radius: 2px; background: var(--nova-color-divider); }
|
|
927
|
+
.mb-runtime-timeline-rail { position: relative; z-index: 1; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); }
|
|
928
|
+
.mb-runtime-timeline-content { min-width: 0; display: grid; gap: 4px; }
|
|
929
|
+
.mb-runtime-timeline-card { width: 100%; min-width: 0; overflow: visible; border: 0; border-radius: 0; display: grid; color: inherit; background: transparent; box-shadow: none; }
|
|
930
|
+
.mb-runtime-timeline-card-main { width: 100%; min-width: 0; border: 0; border-radius: 8px; padding: 5px 7px; display: grid; gap: 3px; color: inherit; background: transparent; text-align: left; font: inherit; cursor: pointer; transition: background-color .14s ease, box-shadow .14s ease; }
|
|
931
|
+
.mb-runtime-timeline-card-main:hover { background: var(--nova-color-primary-soft, #f5f6ff); }
|
|
932
|
+
.mb-runtime-timeline-card-main:focus-visible { outline: none; background: var(--nova-color-primary-soft, #f5f6ff); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--nova-color-primary) 22%, transparent); }
|
|
933
|
+
.mb-runtime-timeline-card-main:active { background: color-mix(in srgb, var(--nova-color-primary-soft) 84%, var(--nova-color-primary)); }
|
|
934
|
+
.mb-runtime-timeline-card-main.is-pointer-focus-restored:focus-visible { background: transparent; box-shadow: none; }
|
|
935
|
+
.mb-runtime-timeline-heading, .mb-runtime-timeline-meta { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
|
|
936
|
+
.mb-runtime-timeline-heading strong { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-semibold, 600); }.mb-runtime-timeline-heading strong small { margin-left: 6px; color: var(--mb-muted); font-size: var(--nova-font-size-xs, 10px); font-weight: var(--nova-font-weight-regular, 400); }.mb-runtime-timeline-heading em { color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-style: normal; white-space: nowrap; }
|
|
937
|
+
.mb-runtime-timeline-meta { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }.mb-runtime-timeline-meta span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.mb-runtime-timeline-meta time { color: var(--nova-color-text-muted); white-space: nowrap; }
|
|
938
|
+
.mb-runtime-timeline-condition { justify-self: start; border: 1px solid var(--nova-color-border); border-radius: 999px; padding: 1px 7px; color: var(--nova-color-text-secondary); background: var(--nova-color-surface, #fff); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
939
|
+
.mb-runtime-timeline-item.is-predicted { opacity: .68; }
|
|
940
|
+
.mb-runtime-timeline-participants { margin: 0 7px; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }.mb-runtime-timeline-participants summary { color: var(--nova-color-primary, #5967cf); cursor: pointer; }.mb-runtime-timeline-participant-list { padding: 5px 0 0; display: flex; flex-wrap: wrap; gap: 5px; }.mb-runtime-timeline-participant-list span { border-radius: 999px; padding: 2px 7px; color: var(--nova-color-text-secondary, #596477); background: var(--nova-color-surface-muted); }
|
|
941
|
+
.mb-runtime-timeline-actions { margin: 2px 7px 0; border-radius: 8px; padding: 7px 8px; display: grid; gap: 0; background: var(--nova-color-surface-subtle, #f7f8fb); }
|
|
942
|
+
.mb-runtime-timeline-action { min-width: 0; border: 0; border-radius: 0; padding: 7px 0; display: grid; gap: 5px; background: transparent; box-shadow: none; }
|
|
943
|
+
.mb-runtime-timeline-actions > .mb-runtime-timeline-action { padding-top: 0; padding-bottom: 0; }
|
|
944
|
+
.mb-runtime-timeline-action-head { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 7px; }
|
|
945
|
+
.mb-runtime-timeline-action-head strong { border-radius: 999px; padding: 1px 7px; color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
946
|
+
.mb-runtime-timeline-action-head span { overflow: hidden; color: var(--nova-color-text-muted); text-overflow: ellipsis; white-space: nowrap; font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
947
|
+
.mb-runtime-timeline-action-history { margin-top: 6px; border-top: 1px solid var(--nova-color-divider, #e7eaf0); padding-top: 6px; color: var(--nova-color-primary, #5967cf); font-size: var(--nova-font-size-xs, 10px); line-height: 16px; }
|
|
948
|
+
.mb-runtime-timeline-action-history > summary { outline: none; cursor: pointer; }
|
|
949
|
+
.mb-runtime-timeline-action-history > summary:hover, .mb-runtime-timeline-action-history > summary:focus-visible { outline: none; color: var(--mb-primary); text-decoration: underline; text-underline-offset: 2px; }
|
|
950
|
+
.mb-runtime-timeline-action-history-body { margin-top: 5px; display: grid; gap: 0; color: var(--mb-text); }
|
|
951
|
+
.mb-runtime-timeline-action-history-body .mb-runtime-timeline-action + .mb-runtime-timeline-action { border-top: 1px solid var(--nova-color-divider, #e7eaf0); }
|
|
952
|
+
.mb-runtime-action-content.is-compact .mb-runtime-action-paragraph { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
|
|
953
|
+
.mb-runtime-action-content.is-compact .mb-runtime-asset-image { width: 60px; height: 46px; }
|
|
954
|
+
.mb-runtime-action-content.is-compact .mb-runtime-asset-file { min-height: 38px; flex-basis: 260px; }
|
|
955
|
+
.mb-runtime-timeline-transition-card { width: 100%; border: 0; border-radius: 9px; padding: 4px; display: grid; gap: 3px; color: var(--nova-runtime-tone-foreground, var(--nova-tone-neutral-foreground)); background: var(--nova-runtime-tone-background, var(--nova-tone-neutral-background)); }
|
|
956
|
+
.mb-runtime-timeline-transition-main { width: 100%; border: 0; border-radius: 7px; padding: 5px 6px; display: grid; gap: 2px; color: inherit; background: transparent; text-align: left; font: inherit; cursor: pointer; }
|
|
957
|
+
.mb-runtime-timeline-transition-main:hover, .mb-runtime-timeline-transition-main:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-runtime-tone-strong) 12%, transparent); }
|
|
958
|
+
.mb-runtime-timeline-transition-main.is-pointer-focus-restored:focus-visible { box-shadow: none; }
|
|
959
|
+
.mb-runtime-timeline-transition-main strong { font-size: var(--nova-font-size-md, 14px); line-height: 20px; }
|
|
960
|
+
.mb-runtime-timeline-transition-main span, .mb-runtime-timeline-transition-card p { margin: 0; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
961
|
+
.mb-runtime-timeline-group { margin: 8px 0; border: 0; border-radius: 12px; background: var(--nova-color-surface-subtle); overflow: hidden; }.mb-runtime-timeline-group-summary { min-height: 48px; padding: 0 12px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; color: var(--nova-color-text-secondary); cursor: pointer; }.mb-runtime-timeline-group-summary strong { font-size: var(--nova-font-size-md, 14px); line-height: 20px; }.mb-runtime-timeline-group-summary span { color: var(--mb-muted); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }.mb-runtime-timeline-group-body { padding: 4px 10px 10px; border-top: 1px solid var(--nova-color-divider); }.mb-runtime-timeline-item.is-group-child { grid-template-columns: 28px minmax(0, 1fr); }.mb-runtime-timeline-item.is-group-child .mb-runtime-timeline-rail { width: 28px; height: 28px; border-radius: 8px; }.mb-runtime-timeline-item.is-group-child::before { left: 13px; top: 32px; }
|
|
962
|
+
.mb-runtime-timeline-empty { padding: 60px 20px; color: var(--mb-muted); text-align: center; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
963
|
+
.mb-runtime-details-layer.is-timeline.placement-popover .mb-runtime-details-popover { border-radius: 12px; box-shadow: var(--nova-shadow-lg); }
|
|
964
|
+
@media (max-width: 720px) { .mb-runtime-action-media .mb-runtime-asset-file { flex-basis: 100%; }.mb-runtime-timeline { width: 100%; padding: 14px 12px 32px; }.mb-runtime-timeline-header { padding-left: 2px; }.mb-runtime-timeline-item { grid-template-columns: 32px minmax(0, 1fr); gap: 8px; }.mb-runtime-timeline-rail { width: 32px; height: 32px; }.mb-runtime-timeline-item:not(:last-child)::before { left: 15px; top: 36px; }.mb-runtime-timeline-meta { grid-template-columns: minmax(0, 1fr); gap: 0; }.mb-runtime-timeline-meta time { justify-self: start; } }
|
|
965
|
+
.mb-node-svg-icon {
|
|
966
|
+
display: block;
|
|
967
|
+
width: 1em;
|
|
968
|
+
height: 1em;
|
|
969
|
+
fill: none;
|
|
970
|
+
stroke: currentColor;
|
|
971
|
+
stroke-width: 1.7;
|
|
972
|
+
stroke-linecap: round;
|
|
973
|
+
stroke-linejoin: round;
|
|
974
|
+
vector-effect: non-scaling-stroke;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
.mb-node-icon,
|
|
978
|
+
.mb-event-glyph,
|
|
979
|
+
.mb-gateway-symbol {
|
|
980
|
+
display: grid;
|
|
981
|
+
place-items: center;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
.mb-node-custom-content {
|
|
985
|
+
position: relative;
|
|
986
|
+
z-index: 1;
|
|
987
|
+
min-width: 0;
|
|
988
|
+
height: 100%;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
/* @bpmn-nova/internal/palette */
|
|
992
|
+
.nova-palette { height: 100%; overflow: auto; padding: 10px; color: var(--nova-color-text, #243047); background: var(--nova-color-surface, #fff); }
|
|
993
|
+
.nova-palette-section { border-bottom: 1px solid var(--nova-color-divider, #edf0f5); padding: 3px 0 8px; }
|
|
994
|
+
.nova-palette-section-toggle { width: 100%; min-height: 34px; border: 0; background: transparent; display: grid; grid-template-columns: 16px 1fr auto; align-items: center; gap: 6px; color: inherit; cursor: pointer; text-align: left; }
|
|
995
|
+
.nova-palette-section-toggle strong { font-size: var(--nova-font-size-md, 14px); line-height: 20px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
996
|
+
.nova-palette-section-toggle small { color: var(--nova-color-text-muted, #8791a5); font-size: 10px; }
|
|
997
|
+
.nova-palette-chevron { color: var(--nova-color-text-muted, #7c879b); transform: rotate(0); transition: transform .16s ease; }
|
|
998
|
+
.nova-palette-section.is-collapsed .nova-palette-chevron { transform: rotate(-90deg); }
|
|
999
|
+
.nova-palette-section.is-collapsed .nova-palette-items { display: none; }
|
|
1000
|
+
.nova-palette-items { display: grid; gap: 5px; }
|
|
1001
|
+
.nova-palette-item { width: 100%; min-height: 46px; padding: 6px 8px; border: 1px solid transparent; border-radius: 8px; background: transparent; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 8px; color: inherit; text-align: left; cursor: grab; }
|
|
1002
|
+
.nova-palette-item:hover { background: var(--nova-color-primary-soft, #f5f7ff); border-color: var(--nova-tone-primary-border, #dfe4ff); }
|
|
1003
|
+
.nova-palette-item:active { cursor: grabbing; }
|
|
1004
|
+
.nova-palette-item-icon { width: 28px; height: 28px; border-radius: 7px; background: var(--nova-color-primary-soft, #eef1ff); color: var(--nova-color-primary, #4e5bd5); display: grid; place-items: center; }
|
|
1005
|
+
.nova-palette-item-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
|
|
1006
|
+
.nova-palette-item-copy { min-width: 0; display: grid; gap: 2px; }
|
|
1007
|
+
.nova-palette-item-copy strong { font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1008
|
+
.nova-palette-item-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--nova-color-text-muted, #919aad); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1009
|
+
|
|
1010
|
+
/* @bpmn-nova/internal/properties-renderer */
|
|
1011
|
+
.nova-properties { min-height: 100%; color: var(--nova-color-text); background: var(--nova-color-surface); color-scheme: inherit; }
|
|
1012
|
+
.properties-head { position: sticky; top: 0; z-index: 5; padding: 15px 16px 12px; border-bottom: 1px solid var(--nova-color-divider, #e7eaf1); background: color-mix(in srgb, var(--nova-color-surface) 97%, transparent); backdrop-filter: blur(10px); }
|
|
1013
|
+
.properties-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
|
|
1014
|
+
.properties-title { min-width: 0; overflow: hidden; color: var(--nova-color-text, #202b3f); font-size: var(--nova-font-size-lg, 16px); font-weight: var(--nova-font-weight-bold, 700); line-height: 22px; text-overflow: ellipsis; white-space: nowrap; }
|
|
1015
|
+
.properties-profile-switch { width: max-content; margin-top: 12px; padding: 2px; border-radius: 7px; display: grid; grid-template-columns: 1fr 1fr; background: var(--nova-color-surface-muted, #f0f2f7); }
|
|
1016
|
+
.properties-title-row > .properties-profile-switch { flex: none; margin-top: 0; }
|
|
1017
|
+
.properties-profile-switch button { min-height: 28px; border: 0; border-radius: 5px; padding: 0 11px; color: var(--nova-color-text-muted, #7b8597); background: transparent; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; cursor: pointer; }
|
|
1018
|
+
.properties-profile-switch button.is-active { color: var(--nova-tone-primary-foreground, #3543b8); background: var(--nova-color-surface, #fff); box-shadow: var(--nova-shadow-sm); }
|
|
1019
|
+
.properties-body { padding: 0 12px 24px; }
|
|
1020
|
+
.properties-empty { padding: 32px 12px; color: var(--nova-color-text-muted, #929bad); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; text-align: center; }
|
|
1021
|
+
.properties-multi-summary { margin: 18px 2px; border: 1px solid var(--nova-color-border, #e4e7ef); border-radius: 12px; padding: 18px 16px; color: var(--nova-color-text-secondary); background: var(--nova-color-surface-subtle, #fafbff); text-align: center; }
|
|
1022
|
+
.properties-multi-icon { width: 38px; height: 38px; margin: 0 auto 10px; border-radius: 10px; display: grid; place-items: center; color: var(--nova-tone-primary-foreground); background: var(--nova-tone-primary-background); }
|
|
1023
|
+
.properties-multi-icon .nova-icon { width: 20px; height: 20px; }
|
|
1024
|
+
.properties-multi-summary > strong { font-size: var(--nova-font-size-md, 14px); line-height: 20px; }
|
|
1025
|
+
.properties-multi-summary > p { margin: 5px 0 12px; color: var(--nova-color-text-muted, #7d8799); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
1026
|
+
.properties-multi-counts { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
|
|
1027
|
+
.properties-multi-counts > span { border-radius: 12px; padding: 3px 8px; color: var(--nova-color-text-secondary, #687386); background: var(--nova-color-surface-muted); font-size: 10px; line-height: 16px; }
|
|
1028
|
+
.properties-multi-counts strong { color: var(--nova-tone-primary-foreground, #4f5dcc); }
|
|
1029
|
+
.properties-multi-summary > button { width: 100%; height: 34px; margin-top: 14px; border: 1px solid var(--nova-tone-primary-border); border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: var(--nova-tone-primary-foreground, #4f5dcc); background: var(--nova-color-primary-soft, #f0f1ff); font-size: var(--nova-font-size-sm, 12px); font-weight: var(--nova-font-weight-semibold, 600); cursor: pointer; }
|
|
1030
|
+
.properties-multi-summary > button:hover { border-color: var(--nova-color-primary); background: color-mix(in srgb, var(--nova-color-primary-soft) 88%, var(--nova-color-primary)); }
|
|
1031
|
+
.properties-group { border-bottom: 1px solid var(--nova-color-divider, #edf0f5); }
|
|
1032
|
+
.properties-group-toggle { width: 100%; min-height: 42px; border: 0; padding: 0 3px; background: transparent; display: flex; align-items: center; gap: 7px; color: var(--nova-color-text-secondary, #3b465a); text-align: left; cursor: pointer; }
|
|
1033
|
+
.properties-group-toggle strong { flex: 1; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1034
|
+
.properties-chevron { color: var(--nova-color-text-muted, #8490a4); transform: rotate(0); transition: transform .15s; }
|
|
1035
|
+
.properties-group.is-collapsed .properties-chevron { transform: rotate(-90deg); }
|
|
1036
|
+
.properties-count { min-width: 18px; padding: 2px 5px; border-radius: 9px; color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #eef1ff); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; text-align: center; }
|
|
1037
|
+
.properties-group-content { padding: 0 3px 14px; }
|
|
1038
|
+
.properties-group.is-collapsed .properties-group-content { display: none; }
|
|
1039
|
+
.properties-group-description, .property-note, .property-inline-hint { color: var(--nova-color-text-muted, #8791a3); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1040
|
+
.properties-group-description { margin: 0 0 8px; }
|
|
1041
|
+
.property-note, .property-inline-hint { margin: 5px 0 0; }
|
|
1042
|
+
.property-field { margin: 0 0 11px; }
|
|
1043
|
+
.property-label { display: block; margin-bottom: 5px; color: var(--nova-color-text-secondary, #5d687b); font-size: var(--nova-font-size-sm, 12px); font-weight: var(--nova-font-weight-medium, 500); line-height: 18px; }
|
|
1044
|
+
.property-required { color: var(--nova-tone-danger-strong, #d84d5a); }
|
|
1045
|
+
.property-error { margin: 5px 0 0; color: var(--nova-tone-danger-strong, #d84d5a); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1046
|
+
.property-control, .property-readonly { box-sizing: border-box; width: 100%; min-height: 36px; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 7px; padding: 8px 9px; color: var(--nova-color-text, #2e394d); background: var(--nova-color-surface, #fff); font: inherit; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; outline: none; }
|
|
1047
|
+
.property-control:focus { border-color: var(--nova-tone-primary-border, #98a4ef); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 10%, transparent); }
|
|
1048
|
+
textarea.property-control { resize: vertical; }
|
|
1049
|
+
.property-readonly { color: var(--nova-color-text-muted, #778195); background: var(--nova-color-surface-subtle, #f7f8fa); }
|
|
1050
|
+
.property-variant-valid .property-readonly { border-color: var(--nova-tone-success-border, #cce8dc); color: var(--nova-tone-success-foreground, #2f7c61); background: var(--nova-tone-success-background, #f1faf6); }
|
|
1051
|
+
.property-variant-incomplete .property-readonly { border-color: var(--nova-tone-warning-border, #f0d7aa); color: var(--nova-tone-warning-foreground, #9a6514); background: var(--nova-tone-warning-background, #fff9ee); }
|
|
1052
|
+
.property-variant-conflict .property-readonly { border-color: var(--nova-tone-danger-border, #efc5ca); color: var(--nova-tone-danger-foreground, #b33f4b); background: var(--nova-tone-danger-background, #fff5f6); }
|
|
1053
|
+
.property-variant-ambiguous .property-readonly { border-color: var(--nova-color-border, #dfe3eb); color: var(--nova-color-text-secondary, #687489); background: var(--nova-color-surface-subtle, #f7f8fa); }
|
|
1054
|
+
.property-select { position: relative; min-width: 0; color: var(--nova-color-text, #2e394d); }
|
|
1055
|
+
.property-select.is-open { z-index: 12; }
|
|
1056
|
+
.property-select-native { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; opacity: 0; pointer-events: none; }
|
|
1057
|
+
.property-select-trigger { box-sizing: border-box; width: 100%; min-height: 36px; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 8px; padding: 0 8px 0 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--nova-color-text, #2e394d); background: var(--nova-color-surface, #fff); font: inherit; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; text-align: left; outline: none; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
|
|
1058
|
+
.property-select-trigger:hover { border-color: var(--nova-color-border-strong, #c8cedb); background: var(--nova-color-surface, #fdfdff); }
|
|
1059
|
+
.property-select-trigger:focus-visible, .property-select.is-open .property-select-trigger { border-color: var(--nova-tone-primary-border, #98a4ef); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nova-color-primary) 10%, transparent); }
|
|
1060
|
+
.property-select-trigger:disabled { color: var(--nova-color-text-muted, #929bad); background: var(--nova-color-surface-muted, #f5f6f8); cursor: not-allowed; }
|
|
1061
|
+
.property-select-value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1062
|
+
.property-select-chevron { flex: none; color: var(--nova-color-text-muted, #7f899a); transition: transform .15s ease; }
|
|
1063
|
+
.property-select.is-open .property-select-chevron { transform: rotate(180deg); }
|
|
1064
|
+
.property-select-popover { position: absolute; top: calc(100% + 6px); right: 0; left: 0; z-index: 30; box-sizing: border-box; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--nova-color-border, #dfe3ec); border-radius: 10px; padding: 5px; color: var(--nova-color-text-secondary); background: color-mix(in srgb, var(--nova-color-surface-raised) 99%, transparent); box-shadow: var(--nova-shadow-lg); scrollbar-width: thin; scrollbar-color: var(--nova-color-border-strong, #cbd1dc) transparent; }
|
|
1065
|
+
.property-select.is-above .property-select-popover { top: auto; bottom: calc(100% + 6px); }
|
|
1066
|
+
.property-select-popover[hidden] { display: none; }
|
|
1067
|
+
.property-select-option { width: 100%; min-height: 34px; border: 0; border-radius: 7px; padding: 0 8px 0 9px; display: flex; align-items: center; justify-content: space-between; gap: 9px; color: var(--nova-color-text-secondary, #4f5a6d); background: transparent; font: inherit; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; text-align: left; outline: none; cursor: pointer; }
|
|
1068
|
+
.property-select-option > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1069
|
+
.property-select-option:hover, .property-select-option.is-active { color: var(--nova-tone-primary-foreground, #3442b8); background: var(--nova-color-primary-soft, #f1f3ff); }
|
|
1070
|
+
.property-select-option.is-selected { color: var(--nova-tone-primary-foreground, #3e4bc2); background: var(--nova-color-primary-soft); font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1071
|
+
.property-select-check { flex: none; color: var(--nova-color-primary, #5361d6); opacity: 0; }
|
|
1072
|
+
.property-select-option.is-selected .property-select-check { opacity: 1; }
|
|
1073
|
+
.property-select-empty { padding: 12px 8px; color: var(--nova-color-text-muted, #929bad); font-size: 10px; text-align: center; }
|
|
1074
|
+
.property-select-compact .property-select-trigger { min-height: 32px; border-radius: 6px; padding-inline: 6px; font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1075
|
+
.property-select-compact .property-select-popover { min-width: 120px; }
|
|
1076
|
+
.property-select-compact .property-select-option { min-height: 32px; font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1077
|
+
.property-switch { min-height: 30px; border: 0; background: transparent; display: flex; align-items: center; gap: 7px; color: var(--nova-color-text-muted, #7b8597); cursor: pointer; }
|
|
1078
|
+
.property-switch span { width: 30px; height: 17px; border-radius: 10px; background: var(--nova-color-border-strong, #cbd1dc); position: relative; }
|
|
1079
|
+
.property-switch span::after { content: ''; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: var(--nova-color-surface, #fff); transition: transform .15s; }
|
|
1080
|
+
.property-switch.is-on span { background: var(--nova-color-primary, #5361d6); }
|
|
1081
|
+
.property-switch.is-on span::after { transform: translateX(13px); }
|
|
1082
|
+
.property-switch strong { font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-medium, 500); }
|
|
1083
|
+
.property-action, .property-row-add { width: 100%; min-height: 34px; border: 1px solid var(--nova-color-border, #dfe3ec); border-radius: 7px; display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #f8f9ff); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; cursor: pointer; }
|
|
1084
|
+
.property-action.is-danger { color: var(--nova-tone-danger-foreground); background: var(--nova-tone-danger-background, #fff7f8); border-color: var(--nova-tone-danger-border, #f0cdd1); }
|
|
1085
|
+
.property-table { display: grid; gap: 5px; }
|
|
1086
|
+
.property-table-head, .property-table-row { display: grid; grid-template-columns: repeat(var(--property-columns), minmax(0,1fr)) 24px; gap: 4px; align-items: center; }
|
|
1087
|
+
.property-table-head { color: var(--nova-color-text-muted, #8993a5); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1088
|
+
.property-table-input { min-width: 0; height: 32px; border: 1px solid var(--nova-color-border, #e0e4ec); border-radius: 5px; padding: 0 6px; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
1089
|
+
.property-row-remove { width: 24px; height: 24px; border: 0; padding: 0; display: grid; place-items: center; color: var(--nova-tone-danger-foreground); background: transparent; cursor: pointer; }
|
|
1090
|
+
.property-smart-select { position: relative; }
|
|
1091
|
+
.property-smart-icon { position: absolute; right: 9px; top: 50%; color: var(--nova-color-text-muted, #8993a5); pointer-events: none; transform: translateY(-50%); }
|
|
1092
|
+
.property-range { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1093
|
+
.property-empty-row { padding: 10px; border: 1px dashed var(--nova-color-border, #dfe3eb); border-radius: 6px; color: var(--nova-color-text-muted, #929bad); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; text-align: center; }
|
|
1094
|
+
.property-node-list { display: grid; gap: 7px; }
|
|
1095
|
+
.property-node-ref { box-sizing: border-box; width: 100%; min-width: 0; min-height: 50px; border: 1px solid var(--nova-color-border, #dfe3eb); border-radius: 10px; padding: 7px 9px; display: grid; grid-template-columns: 28px minmax(0,1fr) 14px; align-items: center; gap: 9px; color: var(--nova-color-text-secondary, #5d687b); background: var(--nova-color-surface, #fff); font: inherit; text-align: left; outline: none; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
|
|
1096
|
+
.property-node-ref:hover, .property-node-ref:focus-visible { border-color: var(--nova-tone-primary-border, #cbd2ff); background: var(--nova-color-primary-soft, #f8f9ff); box-shadow: 0 0 0 2px color-mix(in srgb, var(--nova-color-primary) 12%, transparent); }
|
|
1097
|
+
.property-node-ref-icon { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; color: var(--nova-tone-primary-foreground, #4f5bc8); background: var(--nova-color-primary-soft, #eef0ff); transition: color .15s ease, background-color .15s ease; }
|
|
1098
|
+
.property-node-ref-copy { min-width: 0; display: grid; gap: 3px; }
|
|
1099
|
+
.property-node-ref-copy strong, .property-node-ref-copy small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1100
|
+
.property-node-ref-copy strong { color: var(--nova-color-text, #2e394d); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1101
|
+
.property-node-ref-copy small { color: var(--nova-color-text-muted, #8791a3); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1102
|
+
.property-node-ref-locate { color: var(--nova-color-text-muted, #8791a3); transition: color .15s ease, transform .15s ease; }
|
|
1103
|
+
.property-node-ref:hover .property-node-ref-locate, .property-node-ref:focus-visible .property-node-ref-locate { color: var(--nova-color-primary, #5361d6); transform: translate(1px, -1px); }
|
|
1104
|
+
.property-flow-list { display: grid; gap: 7px; }
|
|
1105
|
+
.property-flow-ref { width: 100%; min-height: 48px; border: 1px solid var(--nova-color-border); border-radius: 10px; padding: 7px 9px; display: grid; grid-template-columns: 22px minmax(0,1fr) 14px; align-items: center; gap: 8px; color: var(--nova-color-text-secondary); background: var(--nova-color-surface, #fff); text-align: left; cursor: pointer; }
|
|
1106
|
+
.property-flow-ref:hover, .property-flow-ref:focus-visible { border-color: var(--nova-tone-primary-border, #cbd2ff); background: var(--nova-color-primary-soft, #f8f9ff); outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--nova-color-primary) 12%, transparent); }
|
|
1107
|
+
.property-flow-index { width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #eef0ff); font-size: 10px; font-weight: 700; }
|
|
1108
|
+
.property-flow-copy { min-width: 0; display: grid; gap: 3px; }
|
|
1109
|
+
.property-flow-copy strong, .property-flow-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1110
|
+
.property-flow-copy strong { font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
1111
|
+
.property-flow-copy small { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1112
|
+
.property-branch-list { display: grid; gap: 10px; }
|
|
1113
|
+
.property-branch-card { position: relative; overflow: hidden; border: 1px solid var(--nova-color-border); border-radius: 12px; padding: 11px; display: grid; gap: 10px; background: linear-gradient(180deg, var(--nova-color-surface, #fff) 0%, var(--nova-color-surface-subtle, #fbfcff) 100%); box-shadow: var(--nova-shadow-sm); transition: border-color .16s ease, box-shadow .16s ease; }
|
|
1114
|
+
.property-branch-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--nova-color-border-strong); }
|
|
1115
|
+
.property-branch-card:hover { border-color: var(--nova-color-border-strong); box-shadow: var(--nova-shadow-md); }
|
|
1116
|
+
.property-branch-card.is-default { border-color: var(--nova-tone-primary-border, #cbd2ff); background: linear-gradient(180deg, var(--nova-color-surface, #fff) 0%, var(--nova-color-primary-soft, #f7f8ff) 100%); }
|
|
1117
|
+
.property-branch-card.is-default::before { background: var(--nova-color-primary, #5967d8); }
|
|
1118
|
+
.property-branch-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
|
1119
|
+
.property-branch-identity { min-width: 0; display: flex; align-items: center; gap: 8px; }
|
|
1120
|
+
.property-branch-identity > span { flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; color: var(--nova-tone-primary-foreground, #4f5bc8); background: var(--nova-color-primary-soft, #eef0ff); font-size: var(--nova-font-size-xs, 10px); font-weight: var(--nova-font-weight-bold, 700); }
|
|
1121
|
+
.property-branch-identity > div { min-width: 0; display: grid; gap: 3px; }
|
|
1122
|
+
.property-branch-identity strong { color: var(--nova-color-text); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1123
|
+
.property-branch-identity small { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }
|
|
1124
|
+
.property-branch-locate { flex: none; height: 30px; border: 1px solid var(--nova-color-border); border-radius: 7px; padding: 0 8px; display: flex; align-items: center; gap: 4px; color: var(--nova-color-text-secondary); background: var(--nova-color-surface, #fff); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; cursor: pointer; }
|
|
1125
|
+
.property-branch-locate .nova-icon { color: var(--nova-color-primary); }.property-branch-locate:hover { border-color: var(--nova-tone-primary-border); color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #f5f6ff); }
|
|
1126
|
+
.property-branch-condition { display: grid; gap: 8px; }
|
|
1127
|
+
.property-branch-condition.is-single-field { grid-template-columns: minmax(0,1fr); }
|
|
1128
|
+
.property-branch-condition label { display: grid; gap: 4px; }
|
|
1129
|
+
.property-branch-condition label > span { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1130
|
+
.property-branch-condition .property-control { min-height: 36px; border-color: var(--nova-color-border); border-radius: 7px; padding: 8px; background: color-mix(in srgb, var(--nova-color-surface) 90%, transparent); font-size: var(--nova-font-size-sm, 12px); }
|
|
1131
|
+
.property-branch-condition textarea.property-control { min-height: 54px; resize: vertical; font-family: Menlo, Consolas, "Liberation Mono", monospace; font-size: var(--nova-font-size-sm, 12px); line-height: 18px; }
|
|
1132
|
+
.property-branch-foot { border-top: 1px solid var(--nova-color-divider, #edf0f5); padding-top: 9px; display: flex; align-items: center; gap: 8px; }
|
|
1133
|
+
.property-branch-foot.is-target-only { justify-content: flex-end; }
|
|
1134
|
+
.property-branch-default { flex: none; height: 28px; border: 1px solid var(--nova-color-border, #e0e4ec); border-radius: 14px; padding: 0 8px; display: flex; align-items: center; gap: 5px; color: var(--nova-color-text-muted); background: var(--nova-color-surface, #fff); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; cursor: pointer; }
|
|
1135
|
+
.property-branch-default input { position: absolute; opacity: 0; pointer-events: none; }
|
|
1136
|
+
.property-branch-default i { width: 8px; height: 8px; border: 1px solid var(--nova-color-border-strong); border-radius: 50%; background: var(--nova-color-surface, #fff); box-shadow: inset 0 0 0 2px var(--nova-color-surface, #fff); }
|
|
1137
|
+
.property-branch-default.is-active { border-color: var(--nova-tone-primary-border, #cbd2ff); color: var(--nova-tone-primary-foreground, #4f5bc8); background: var(--nova-color-primary-soft, #eef0ff); font-weight: var(--nova-font-weight-semibold, 600); }
|
|
1138
|
+
.property-branch-default.is-active i { border-color: var(--nova-color-primary, #5967d8); background: var(--nova-color-primary, #5967d8); }
|
|
1139
|
+
.property-branch-target { min-width: 0; flex: 1; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 5px; }
|
|
1140
|
+
.property-branch-target small { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); line-height: 14px; }.property-branch-target strong { overflow: hidden; color: var(--nova-color-text-secondary); font-size: var(--nova-font-size-sm, 12px); line-height: 18px; font-weight: var(--nova-font-weight-semibold, 600); text-overflow: ellipsis; white-space: nowrap; }.property-branch-target > span { color: var(--nova-color-primary); font-size: var(--nova-font-size-sm, 12px); }
|
|
1141
|
+
|
|
1142
|
+
/* @bpmn-nova/internal/studio */
|
|
1143
|
+
.nova-studio-shell { --nova-left-width: 244px; --nova-right-width: 360px; --nova-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; --nova-font-size-xs: 10px; --nova-font-size-sm: 12px; --nova-font-size-md: 14px; --nova-font-size-lg: 16px; --nova-font-weight-regular: 400; --nova-font-weight-medium: 500; --nova-font-weight-semibold: 600; --nova-font-weight-bold: 700; position: relative; isolation: isolate; width: 100%; height: 100%; min-height: 520px; overflow: hidden; display: grid; grid-template-rows: 58px minmax(0, 1fr); color: var(--nova-color-text, #263148); background: var(--nova-color-canvas, #f6f7fb); font-family: var(--nova-font-family); }
|
|
1144
|
+
.nova-studio-header { min-width: 0; border-bottom: 1px solid var(--nova-color-divider, #e4e8f0); background: var(--nova-color-surface, #fff); display: grid; grid-template-columns: minmax(180px, auto) auto minmax(0, 1fr); align-items: center; gap: 18px; padding: 0 12px 0 14px; }
|
|
1145
|
+
.nova-studio-brand { min-width: 0; display: flex; align-items: center; gap: 10px; }
|
|
1146
|
+
.nova-studio-brand-mark { flex: none; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: var(--nova-color-text-inverse, #fff); background: linear-gradient(145deg, var(--nova-color-primary, #5362da), var(--nova-color-primary-hover)); font-size: var(--nova-font-size-md); font-weight: var(--nova-font-weight-bold); box-shadow: var(--nova-shadow-sm); }
|
|
1147
|
+
.nova-studio-brand-copy { min-width: 0; display: grid; gap: 2px; }
|
|
1148
|
+
.nova-studio-brand-copy strong { color: var(--nova-tone-primary-foreground, #3443b8); font-size: var(--nova-font-size-md); line-height: 20px; font-weight: var(--nova-font-weight-bold); letter-spacing: -.01em; }
|
|
1149
|
+
.nova-studio-brand-copy span { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--nova-color-text-muted, #7c8799); font-size: var(--nova-font-size-xs); line-height: 14px; }
|
|
1150
|
+
.nova-studio-center-controls { min-width: 0; justify-self: center; display: flex; align-items: center; gap: 8px; }
|
|
1151
|
+
.nova-studio-mode-switch { height: 36px; border: 1px solid var(--nova-color-divider, #e6e8ef); border-radius: 10px; padding: 3px; display: flex; align-items: center; gap: 2px; background: var(--nova-color-surface-muted, #f4f5f8); box-shadow: inset 0 1px 2px rgba(35,43,68,.03); }
|
|
1152
|
+
.nova-studio-mode-switch button { height: 28px; border: 0; border-radius: 7px; padding: 0 12px; display: flex; align-items: center; gap: 5px; color: var(--nova-color-text-muted, #8a93a4); background: transparent; font-size: var(--nova-font-size-sm); line-height: 18px; white-space: nowrap; cursor: pointer; }
|
|
1153
|
+
.nova-studio-mode-switch button.is-active { color: var(--nova-tone-primary-foreground, #4f5dd1); background: var(--nova-color-surface, #fff); font-weight: var(--nova-font-weight-semibold); box-shadow: var(--nova-shadow-sm); }
|
|
1154
|
+
.nova-studio-projection-switch { height: 32px; border: 1px solid var(--nova-color-border, #e2e6ef); border-radius: 8px; padding: 2px; display: flex; align-items: center; gap: 2px; background: var(--nova-color-surface, #fff); }
|
|
1155
|
+
.nova-studio-projection-switch.is-hidden { display: none; }
|
|
1156
|
+
.nova-studio-projection-switch button { height: 26px; border: 0; border-radius: 6px; padding: 0 9px; color: var(--nova-color-text-muted, #7c8799); background: transparent; font-size: var(--nova-font-size-sm); line-height: 18px; white-space: nowrap; cursor: pointer; }
|
|
1157
|
+
.nova-studio-projection-switch button:hover { color: var(--nova-tone-primary-foreground, #4d59ca); background: var(--nova-color-primary-soft, #f4f5ff); }.nova-studio-projection-switch button.is-active { color: var(--nova-tone-primary-foreground, #4654c8); background: var(--nova-color-primary-soft, #eef0ff); font-weight: var(--nova-font-weight-semibold); }
|
|
1158
|
+
.nova-studio-tools { min-width: 0; overflow: visible; display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
|
|
1159
|
+
.nova-studio-tools::-webkit-scrollbar { display: none; }
|
|
1160
|
+
.nova-studio-tool-divider { flex: none; width: 1px; height: 20px; margin: 0 2px; background: var(--nova-color-divider, #e4e8f0); }
|
|
1161
|
+
.nova-studio-tool { flex: none; min-height: 32px; border: 1px solid var(--nova-color-border, #e2e6ef); border-radius: 7px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: var(--nova-color-text-secondary, #4c586d); background: var(--nova-color-surface, #fff); font-size: var(--nova-font-size-sm); line-height: 18px; white-space: nowrap; cursor: pointer; }
|
|
1162
|
+
.nova-studio-tool:focus { outline: none; }.nova-studio-tool:focus-visible { outline: 2px solid var(--nova-color-focus-ring, #aeb7ff); outline-offset: 1px; }
|
|
1163
|
+
.nova-studio-tool.is-icon { width: 31px; padding: 0; font-size: 14px; }
|
|
1164
|
+
.nova-studio-tool:hover, .nova-studio-tool.is-active { border-color: var(--nova-tone-primary-border, #bec6ff); color: var(--nova-tone-primary-foreground, #3948c5); background: var(--nova-color-primary-soft, #f2f4ff); }
|
|
1165
|
+
.nova-studio-tool.is-magic { border-color: var(--nova-tone-primary-border, #d9ddff); color: var(--nova-tone-primary-foreground, #4654c8); background: var(--nova-color-primary-soft, #f4f5ff); font-weight: var(--nova-font-weight-semibold); }
|
|
1166
|
+
.nova-studio-tool.is-primary { border-color: var(--nova-color-primary); color: var(--nova-color-text-inverse, #fff); background: var(--nova-color-primary, #5361d6); }
|
|
1167
|
+
.nova-studio-tool.is-primary:hover { border-color: var(--nova-color-primary-hover); color: var(--nova-color-text-inverse, #fff); background: var(--nova-color-primary-hover); }
|
|
1168
|
+
.nova-studio-tool:disabled { opacity: .4; cursor: default; }
|
|
1169
|
+
.nova-studio-export-menu { position: relative; flex: none; }
|
|
1170
|
+
.nova-studio-export-menu > .nova-studio-tool { display: inline-flex; align-items: center; gap: 7px; }
|
|
1171
|
+
.nova-studio-export-popover { position: absolute; z-index: 90; top: calc(100% + 8px); right: 0; width: 220px; padding: 6px; border: 1px solid var(--nova-color-border); border-radius: 11px; background: var(--nova-color-surface-raised); box-shadow: var(--nova-shadow-md); }
|
|
1172
|
+
.nova-studio-export-popover.is-hidden { display: none; }
|
|
1173
|
+
.nova-studio-export-option { width: 100%; display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 9px; padding: 9px; border: 0; border-radius: 8px; background: transparent; color: var(--nova-color-text); text-align: left; cursor: pointer; }
|
|
1174
|
+
.nova-studio-export-option:hover { background: var(--nova-color-surface-muted); }
|
|
1175
|
+
.nova-studio-export-option:focus-visible { outline: 2px solid var(--nova-color-focus-ring); outline-offset: -2px; }
|
|
1176
|
+
.nova-studio-export-option > .nova-icon { grid-row: 1 / span 2; align-self: center; color: var(--nova-color-primary); }
|
|
1177
|
+
.nova-studio-export-option strong { font-size: var(--nova-font-size-sm, 12px); }
|
|
1178
|
+
.nova-studio-export-option small { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs, 10px); }
|
|
1179
|
+
.nova-studio-export-option.is-hidden { display: none; }
|
|
1180
|
+
.nova-studio-import-input { display: none; }
|
|
1181
|
+
.nova-studio-beautify-split { position: relative; flex: none; display: flex; }
|
|
1182
|
+
.nova-studio-beautify-split .nova-studio-beautify { border-radius: 7px 0 0 7px; }
|
|
1183
|
+
.nova-studio-beautify-split .nova-studio-beautify-caret { width: 27px; border-left: 0; border-radius: 0 7px 7px 0; padding: 0; }
|
|
1184
|
+
.nova-studio-beautify-menu { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: 224px; border: 1px solid var(--nova-color-border, #e5e7ee); border-radius: 12px; padding: 12px; color: var(--nova-color-text-secondary, #3d4659); background: var(--nova-color-surface, #fff); box-shadow: var(--nova-shadow-lg); }
|
|
1185
|
+
.nova-studio-beautify-menu.is-hidden, .nova-studio-canvas-floating-head.is-hidden, .is-hidden-by-mode { display: none !important; }
|
|
1186
|
+
.nova-studio-beautify-title { margin-bottom: 9px; font-size: 12px; font-weight: 700; line-height: 18px; }
|
|
1187
|
+
.nova-studio-density { height: 32px; border-radius: 7px; padding: 3px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--nova-color-surface-muted, #f2f3f6); }
|
|
1188
|
+
.nova-studio-density button { border: 0; border-radius: 5px; color: var(--nova-color-text-secondary, #687386); background: transparent; font-size: var(--nova-font-size-sm); line-height: 18px; cursor: pointer; }
|
|
1189
|
+
.nova-studio-density button.is-active { color: var(--nova-tone-primary-foreground, #4d59ca); background: var(--nova-color-surface, #fff); font-weight: var(--nova-font-weight-semibold); box-shadow: var(--nova-shadow-sm); }
|
|
1190
|
+
.nova-studio-beautify-actions { margin-top: 9px; display: grid; gap: 3px; }
|
|
1191
|
+
.nova-studio-beautify-action { min-height: 48px; border: 0; border-radius: 8px; padding: 7px 8px; display: grid; grid-template-columns: 27px 1fr; grid-template-rows: 16px 15px; column-gap: 8px; color: var(--nova-color-text-secondary, #465166); background: transparent; text-align: left; cursor: pointer; }
|
|
1192
|
+
.nova-studio-beautify-action:hover { color: var(--nova-tone-primary-foreground, #4654c8); background: var(--nova-color-primary-soft, #f4f5ff); }
|
|
1193
|
+
.nova-studio-beautify-action > .nova-studio-beautify-action-icon { grid-row: 1 / 3; width: 25px; height: 25px; border-radius: 7px; display: grid; place-items: center; color: var(--nova-color-primary, #5361d6); background: var(--nova-color-primary-soft, #eef0ff); }
|
|
1194
|
+
.nova-studio-beautify-action-icon > .nova-icon-svg { width: 14px; height: 14px; }
|
|
1195
|
+
.nova-studio-beautify-action strong { font-size: var(--nova-font-size-sm); font-weight: var(--nova-font-weight-semibold); line-height: 18px; }.nova-studio-beautify-action small { color: #778195; color: var(--nova-color-text-muted, #778195); font-size: var(--nova-font-size-xs); line-height: 14px; }
|
|
1196
|
+
.nova-studio-body { min-width: 0; min-height: 0; display: grid; grid-template-columns: var(--nova-left-width) minmax(320px, 1fr) var(--nova-right-width); }
|
|
1197
|
+
.nova-studio-body.is-readonly { grid-template-columns: minmax(320px, 1fr) var(--nova-right-width); }
|
|
1198
|
+
.nova-studio-body.is-readonly .nova-studio-left { display: none; }
|
|
1199
|
+
.nova-studio-left, .nova-studio-right, .nova-studio-canvas-column, .nova-studio-canvas { min-width: 0; min-height: 0; overflow: hidden; }
|
|
1200
|
+
.nova-studio-left { border-right: 1px solid var(--nova-color-divider, #e4e8f0); background: var(--nova-color-surface, #fff); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
|
|
1201
|
+
.nova-studio-right { border-left: 1px solid var(--nova-color-divider, #e4e8f0); background: var(--nova-color-surface, #fff); overflow: auto; }
|
|
1202
|
+
.nova-studio-left, .nova-studio-right { scrollbar-width: thin; scrollbar-color: #d9dee7 transparent; scrollbar-color: var(--nova-color-border-strong, #d9dee7) transparent; }
|
|
1203
|
+
.nova-studio-left::-webkit-scrollbar, .nova-studio-right::-webkit-scrollbar { width: 4px; height: 4px; }
|
|
1204
|
+
.nova-studio-left::-webkit-scrollbar-track, .nova-studio-right::-webkit-scrollbar-track { background: transparent; }
|
|
1205
|
+
.nova-studio-left::-webkit-scrollbar-thumb, .nova-studio-right::-webkit-scrollbar-thumb { min-height: 40px; background: #d9dee7; background: var(--nova-color-border-strong, #d9dee7); border-radius: 999px; }
|
|
1206
|
+
.nova-studio-left::-webkit-scrollbar-thumb:hover, .nova-studio-right::-webkit-scrollbar-thumb:hover { background: #c1c9d5; background: var(--nova-color-text-muted); }
|
|
1207
|
+
.nova-studio-left::-webkit-scrollbar-button, .nova-studio-right::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
|
|
1208
|
+
.nova-studio-canvas-column { display: grid; grid-template-rows: minmax(0, 1fr) 35px; background: var(--nova-color-canvas, #f7f8fc); }
|
|
1209
|
+
.nova-studio-canvas-stage { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
|
|
1210
|
+
.nova-studio-canvas { position: relative; }
|
|
1211
|
+
.nova-studio-canvas-stage > .nova-studio-canvas { width: 100%; height: 100%; }
|
|
1212
|
+
.nova-selection-toolbar {
|
|
1213
|
+
position: absolute;
|
|
1214
|
+
z-index: 24;
|
|
1215
|
+
min-height: 38px;
|
|
1216
|
+
border: 1px solid var(--nova-color-border, #dfe3ed);
|
|
1217
|
+
border-radius: 10px;
|
|
1218
|
+
padding: 4px;
|
|
1219
|
+
display: flex;
|
|
1220
|
+
align-items: center;
|
|
1221
|
+
gap: 3px;
|
|
1222
|
+
color: var(--nova-color-text-secondary, #536071);
|
|
1223
|
+
background: color-mix(in srgb, var(--nova-color-surface) 98%, transparent);
|
|
1224
|
+
box-shadow: var(--nova-shadow-md);
|
|
1225
|
+
pointer-events: auto;
|
|
1226
|
+
}
|
|
1227
|
+
.nova-selection-toolbar[hidden] { display: none; }
|
|
1228
|
+
.nova-pointer-toolbar {
|
|
1229
|
+
position: absolute;
|
|
1230
|
+
z-index: 23;
|
|
1231
|
+
top: 10px;
|
|
1232
|
+
right: 10px;
|
|
1233
|
+
height: 36px;
|
|
1234
|
+
border: 1px solid var(--nova-color-border, #dfe3ed);
|
|
1235
|
+
border-radius: 10px;
|
|
1236
|
+
padding: 3px;
|
|
1237
|
+
display: flex;
|
|
1238
|
+
align-items: center;
|
|
1239
|
+
gap: 2px;
|
|
1240
|
+
color: var(--nova-color-text-secondary);
|
|
1241
|
+
background: color-mix(in srgb, var(--nova-color-surface) 96%, transparent);
|
|
1242
|
+
box-shadow: var(--nova-shadow-md);
|
|
1243
|
+
pointer-events: auto;
|
|
1244
|
+
}
|
|
1245
|
+
.nova-pointer-mode { height: 28px; border: 0; border-radius: 7px; padding: 0 8px; display: inline-flex; align-items: center; gap: 5px; color: inherit; background: transparent; font-size: var(--nova-font-size-sm); font-weight: var(--nova-font-weight-semibold); cursor: pointer; }
|
|
1246
|
+
.nova-pointer-mode:hover { color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #f3f4ff); }
|
|
1247
|
+
.nova-pointer-mode.is-active { color: var(--nova-tone-primary-foreground, #4050c4); background: var(--nova-color-primary-soft, #eceeff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--nova-color-primary) 10%, transparent); }
|
|
1248
|
+
.nova-pointer-mode:focus-visible { outline: 2px solid var(--nova-color-focus-ring, rgba(82,92,214,.52)); outline-offset: 1px; }
|
|
1249
|
+
.nova-context-menu {
|
|
1250
|
+
position: absolute;
|
|
1251
|
+
z-index: 50;
|
|
1252
|
+
width: 226px;
|
|
1253
|
+
max-height: calc(100% - 16px);
|
|
1254
|
+
border: 1px solid var(--nova-color-border, #dfe3ec);
|
|
1255
|
+
border-radius: 12px;
|
|
1256
|
+
padding: 6px;
|
|
1257
|
+
overflow: visible;
|
|
1258
|
+
color: var(--nova-color-text-secondary, #4d586c);
|
|
1259
|
+
background: color-mix(in srgb, var(--nova-color-surface) 99%, transparent);
|
|
1260
|
+
box-shadow: var(--nova-shadow-lg);
|
|
1261
|
+
font-size: 12px;
|
|
1262
|
+
pointer-events: auto;
|
|
1263
|
+
}
|
|
1264
|
+
.nova-context-menu[hidden] { display: none; }
|
|
1265
|
+
.nova-context-item {
|
|
1266
|
+
width: 100%;
|
|
1267
|
+
min-height: 38px;
|
|
1268
|
+
border: 0;
|
|
1269
|
+
border-radius: 8px;
|
|
1270
|
+
padding: 0 9px;
|
|
1271
|
+
display: flex;
|
|
1272
|
+
align-items: center;
|
|
1273
|
+
gap: 9px;
|
|
1274
|
+
color: inherit;
|
|
1275
|
+
background: transparent;
|
|
1276
|
+
font: inherit;
|
|
1277
|
+
font-weight: var(--nova-font-weight-medium);
|
|
1278
|
+
text-align: left;
|
|
1279
|
+
white-space: nowrap;
|
|
1280
|
+
cursor: pointer;
|
|
1281
|
+
}
|
|
1282
|
+
.nova-context-item > .nova-icon { flex: none; width: 18px; height: 18px; color: var(--nova-color-primary, #6875cf); }
|
|
1283
|
+
.nova-context-item > .nova-icon-svg { width: 18px; height: 18px; shape-rendering: geometricPrecision; }
|
|
1284
|
+
.nova-context-item:hover, .nova-context-item:focus-visible { color: var(--nova-tone-primary-foreground, #3f4dc2); background: var(--nova-color-primary-soft); outline: none; }
|
|
1285
|
+
.nova-context-item.is-active { color: var(--nova-tone-primary-foreground, #3f4dc2); background: var(--nova-color-primary-soft, #eceeff); font-weight: var(--nova-font-weight-semibold); }
|
|
1286
|
+
.nova-context-item.is-danger { color: var(--nova-tone-danger-foreground, #c14c59); }
|
|
1287
|
+
.nova-context-item.is-danger > .nova-icon { color: var(--nova-tone-danger-strong, #cf5664); }
|
|
1288
|
+
.nova-context-item.is-danger:hover, .nova-context-item.is-danger:focus-visible { color: var(--nova-tone-danger-foreground, #ad3443); background: var(--nova-tone-danger-background, #fff0f2); }
|
|
1289
|
+
.nova-context-item:disabled { color: var(--nova-color-text-muted, #aeb5c1); background: transparent; cursor: not-allowed; }
|
|
1290
|
+
.nova-context-item:disabled > .nova-icon { color: var(--nova-color-text-muted, #bdc3cd); }
|
|
1291
|
+
.nova-context-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
1292
|
+
.nova-context-separator { height: 1px; margin: 5px 7px; background: var(--nova-color-divider, #e9ebf1); }
|
|
1293
|
+
.nova-context-submenu { position: relative; }
|
|
1294
|
+
.nova-context-submenu > .nova-context-item > .nova-icon:last-child { width: 12px; height: 12px; color: var(--nova-color-text-muted, #9aa3b2); transform: rotate(-90deg); }
|
|
1295
|
+
.nova-context-submenu-panel {
|
|
1296
|
+
position: absolute;
|
|
1297
|
+
z-index: 1;
|
|
1298
|
+
top: -6px;
|
|
1299
|
+
left: calc(100% + 7px);
|
|
1300
|
+
width: 218px;
|
|
1301
|
+
border: 1px solid var(--nova-color-border, #dfe3ec);
|
|
1302
|
+
border-radius: 11px;
|
|
1303
|
+
padding: 6px;
|
|
1304
|
+
overflow-x: hidden;
|
|
1305
|
+
overflow-y: auto;
|
|
1306
|
+
background: var(--nova-color-surface, #fff);
|
|
1307
|
+
box-shadow: var(--nova-shadow-lg);
|
|
1308
|
+
}
|
|
1309
|
+
.nova-context-submenu-panel[hidden] { display: none; }
|
|
1310
|
+
.nova-context-submenu.is-flipped > .nova-context-submenu-panel { right: calc(100% + 7px); left: auto; }
|
|
1311
|
+
.nova-context-submenu-panel { scrollbar-width: thin; scrollbar-color: var(--nova-color-border-strong, #d9dee7) transparent; }
|
|
1312
|
+
.nova-context-submenu-panel::-webkit-scrollbar { width: 4px; }
|
|
1313
|
+
.nova-context-submenu-panel::-webkit-scrollbar-thumb { background: var(--nova-color-border-strong, #d9dee7); border-radius: 999px; }
|
|
1314
|
+
@media (max-width: 1080px) {
|
|
1315
|
+
.nova-pointer-mode > span:last-child { display: none; }
|
|
1316
|
+
.nova-pointer-mode { width: 28px; padding: 0; justify-content: center; }
|
|
1317
|
+
}
|
|
1318
|
+
.nova-selection-action {
|
|
1319
|
+
min-width: 30px;
|
|
1320
|
+
height: 30px;
|
|
1321
|
+
border: 0;
|
|
1322
|
+
border-radius: 7px;
|
|
1323
|
+
padding: 0 7px;
|
|
1324
|
+
display: inline-flex;
|
|
1325
|
+
align-items: center;
|
|
1326
|
+
justify-content: center;
|
|
1327
|
+
gap: 5px;
|
|
1328
|
+
color: inherit;
|
|
1329
|
+
background: transparent;
|
|
1330
|
+
font: inherit;
|
|
1331
|
+
font-size: var(--nova-font-size-sm);
|
|
1332
|
+
font-weight: var(--nova-font-weight-semibold);
|
|
1333
|
+
white-space: nowrap;
|
|
1334
|
+
cursor: pointer;
|
|
1335
|
+
}
|
|
1336
|
+
.nova-selection-action:hover { color: var(--nova-tone-primary-foreground, #4654c8); background: var(--nova-color-primary-soft, #f0f1ff); }
|
|
1337
|
+
.nova-selection-action:focus-visible { outline: 2px solid var(--nova-color-focus-ring, rgba(82,92,214,.52)); outline-offset: 1px; }
|
|
1338
|
+
.nova-selection-action:disabled { color: var(--nova-color-text-muted, #b1b8c5); background: transparent; cursor: not-allowed; }
|
|
1339
|
+
.nova-selection-action.has-label { color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #f1f2ff); }
|
|
1340
|
+
.nova-selection-action.has-label:hover { color: var(--nova-color-primary-hover); background: color-mix(in srgb, var(--nova-color-primary-soft) 88%, var(--nova-color-primary)); }
|
|
1341
|
+
.nova-selection-separator { width: 1px; height: 20px; margin: 0 2px; background: var(--nova-color-divider, #e6e8ef); }
|
|
1342
|
+
.nova-selection-menu { position: relative; }
|
|
1343
|
+
.nova-selection-menu > summary { list-style: none; cursor: pointer; }
|
|
1344
|
+
.nova-selection-menu > summary::-webkit-details-marker { display: none; }
|
|
1345
|
+
.nova-selection-menu > summary .nova-icon:last-child { width: 9px; height: 9px; transition: transform .14s ease; }
|
|
1346
|
+
.nova-selection-menu[open] > summary .nova-icon:last-child { transform: rotate(180deg); }
|
|
1347
|
+
.nova-selection-menu.is-disabled > summary { color: var(--nova-color-text-muted, #b1b8c5); cursor: not-allowed; }
|
|
1348
|
+
.nova-selection-popover {
|
|
1349
|
+
position: absolute;
|
|
1350
|
+
left: 0;
|
|
1351
|
+
bottom: calc(100% + 9px);
|
|
1352
|
+
width: 218px;
|
|
1353
|
+
border: 1px solid var(--nova-color-border);
|
|
1354
|
+
border-radius: 10px;
|
|
1355
|
+
padding: 5px;
|
|
1356
|
+
display: grid;
|
|
1357
|
+
grid-template-columns: repeat(3, 1fr);
|
|
1358
|
+
gap: 5px;
|
|
1359
|
+
background: var(--nova-color-surface, #fff);
|
|
1360
|
+
box-shadow: var(--nova-shadow-lg);
|
|
1361
|
+
}
|
|
1362
|
+
.nova-selection-toolbar.is-below .nova-selection-popover { top: calc(100% + 9px); bottom: auto; }
|
|
1363
|
+
.nova-selection-popover .nova-selection-action {
|
|
1364
|
+
width: 66px;
|
|
1365
|
+
height: 56px;
|
|
1366
|
+
padding: 5px 3px 4px;
|
|
1367
|
+
flex-direction: column;
|
|
1368
|
+
gap: 3px;
|
|
1369
|
+
color: var(--nova-color-text-secondary, #596477);
|
|
1370
|
+
font-size: 10px;
|
|
1371
|
+
font-weight: 600;
|
|
1372
|
+
line-height: 14px;
|
|
1373
|
+
}
|
|
1374
|
+
.nova-selection-popover .nova-selection-action:hover { color: var(--nova-tone-primary-foreground, #4654c8); background: var(--nova-color-primary-soft, #f0f1ff); }
|
|
1375
|
+
.nova-selection-popover .nova-icon { width: 20px; height: 20px; }
|
|
1376
|
+
.nova-selection-popover .nova-icon-svg { width: 20px; height: 20px; shape-rendering: geometricPrecision; }
|
|
1377
|
+
@media (max-width: 1080px) {
|
|
1378
|
+
.nova-selection-action.has-label > span:last-child { display: none; }
|
|
1379
|
+
.nova-selection-action.has-label { min-width: 30px; padding: 0 7px; }
|
|
1380
|
+
}
|
|
1381
|
+
.nova-studio-canvas-floating-head { position: absolute; z-index: 8; top: 10px; left: 14px; right: 14px; min-width: 0; display: flex; align-items: center; gap: 8px; pointer-events: none; }
|
|
1382
|
+
.nova-studio-editing-mode { flex: none; height: 36px; border: 1px solid var(--nova-color-border, #e1e5ef); border-radius: 10px; padding: 0 10px; display: flex; align-items: center; gap: 6px; color: var(--nova-tone-primary-foreground); background: color-mix(in srgb, var(--nova-color-surface) 94%, transparent); font-size: var(--nova-font-size-sm); line-height: 18px; font-weight: var(--nova-font-weight-semibold); box-shadow: 0 5px 16px rgba(37,45,72,.10); box-shadow: var(--nova-shadow-md); }
|
|
1383
|
+
.nova-studio-editing-mode-label { color: var(--nova-tone-primary-foreground); font-size: var(--nova-font-size-sm); line-height: 18px; white-space: nowrap; }
|
|
1384
|
+
.nova-studio-scope-back { flex: none; height: 36px; border: 1px solid var(--nova-tone-primary-border, #d9ddff); border-radius: 10px; padding: 0 10px; display: inline-flex; align-items: center; gap: 5px; color: var(--nova-tone-primary-foreground); background: var(--nova-color-primary-soft, #f0f1ff); font-size: var(--nova-font-size-sm); line-height: 18px; font-weight: var(--nova-font-weight-semibold); white-space: nowrap; cursor: pointer; pointer-events: auto; box-shadow: 0 5px 16px rgba(37,45,72,.10); box-shadow: var(--nova-shadow-md); transition: color .14s ease, background .14s ease, border-color .14s ease; }
|
|
1385
|
+
.nova-studio-scope-back[hidden] { display: none; }
|
|
1386
|
+
.nova-studio-scope-back:hover { color: var(--nova-color-primary-hover); border-color: var(--nova-color-primary); background: color-mix(in srgb, var(--nova-color-primary-soft) 88%, var(--nova-color-primary)); }
|
|
1387
|
+
.nova-studio-scope-nav { flex: 0 1 auto; min-width: 54px; max-width: min(520px, calc(100% - 190px)); height: 36px; border: 1px solid var(--nova-color-border, #e1e5ef); border-radius: 10px; padding: 0 7px; display: flex; align-items: center; gap: 2px; overflow: hidden; color: var(--nova-color-text-muted); background: color-mix(in srgb, var(--nova-color-surface) 94%, transparent); box-shadow: 0 5px 16px rgba(37,45,72,.10); box-shadow: var(--nova-shadow-md); pointer-events: auto; }
|
|
1388
|
+
.nova-studio-scope-nav button { flex: 1 1 auto; min-width: 0; max-width: 150px; height: 28px; border: 0; border-radius: 7px; padding: 0 6px; overflow: hidden; color: var(--nova-tone-primary-foreground); background: transparent; font-size: var(--nova-font-size-sm); line-height: 18px; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; transition: color .14s ease, background .14s ease; }
|
|
1389
|
+
.nova-studio-scope-nav button:hover { color: var(--nova-tone-primary-foreground, #3f4dc2); background: var(--nova-color-primary-soft, #f0f1ff); }
|
|
1390
|
+
.nova-studio-scope-current { flex: 0 1 auto; min-width: 36px; max-width: 180px; overflow: hidden; color: var(--nova-color-text-secondary); font-size: var(--nova-font-size-sm); line-height: 18px; font-weight: var(--nova-font-weight-semibold); text-overflow: ellipsis; white-space: nowrap; }
|
|
1391
|
+
.nova-studio-scope-separator { flex: none; width: 12px; height: 12px; color: var(--nova-color-text-muted); transform: rotate(-90deg); }
|
|
1392
|
+
.nova-studio-scope-back:focus-visible, .nova-studio-scope-nav button:focus-visible { outline: 2px solid var(--nova-color-focus-ring, rgba(82,92,214,.55)); outline-offset: 1px; }
|
|
1393
|
+
.nova-studio-statusbar { min-width: 0; border-top: 1px solid var(--nova-color-border); padding: 0 9px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--nova-color-text-muted); background: color-mix(in srgb, var(--nova-color-surface) 96%, transparent); }
|
|
1394
|
+
.nova-studio-status-left, .nova-studio-viewport-tools { display: flex; align-items: center; gap: 7px; }
|
|
1395
|
+
.nova-studio-status-left { min-width: 0; font-size: var(--nova-font-size-xs); line-height: 14px; }
|
|
1396
|
+
.nova-studio-status-left span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1397
|
+
.nova-studio-status-left i { flex: none; width: 7px; height: 7px; border-radius: 50%; }
|
|
1398
|
+
.nova-studio-status-left i.is-ok { background: var(--nova-tone-success-strong); }.nova-studio-status-left i.is-warning { background: var(--nova-tone-warning-strong); }.nova-studio-status-left i.is-error { background: var(--nova-tone-danger-strong); }
|
|
1399
|
+
.nova-studio-viewport-tools { flex: none; gap: 3px; }
|
|
1400
|
+
.nova-studio-viewport-tools.is-hidden { display: none; }
|
|
1401
|
+
.nova-studio-viewport-tools button { min-width: 26px; height: 26px; border: 1px solid var(--nova-color-border, #e2e6ef); border-radius: 5px; padding: 0 6px; display: grid; place-items: center; color: var(--nova-color-text-secondary); background: var(--nova-color-surface, #fff); font-size: var(--nova-font-size-sm); cursor: pointer; }
|
|
1402
|
+
.nova-studio-viewport-tools button:hover { color: var(--nova-tone-primary-foreground, #3f4dc2); background: var(--nova-color-primary-soft); }
|
|
1403
|
+
.nova-studio-viewport-tools button.is-text { font-size: var(--nova-font-size-xs); }
|
|
1404
|
+
.nova-studio-viewport-tools button.is-fit { font-size: 12px; }
|
|
1405
|
+
.nova-studio-zoom-text { min-width: 40px; font-size: var(--nova-font-size-xs); line-height: 14px; text-align: center; }
|
|
1406
|
+
.nova-studio-status-divider { width: 1px; height: 17px; margin: 0 4px; background: var(--nova-color-divider); }
|
|
1407
|
+
.nova-studio-readonly-panel { min-height: 100%; background: var(--nova-color-surface, #fff); }
|
|
1408
|
+
.nova-studio-readonly-header { position: relative; border-bottom: 1px solid var(--nova-color-divider); padding: 18px 16px 14px; display: grid; gap: 4px; }
|
|
1409
|
+
.nova-studio-readonly-header strong { padding-right: 65px; color: var(--nova-color-text); font-size: var(--nova-font-size-md); line-height: 20px; }.nova-studio-readonly-header span { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs); line-height: 14px; }.nova-studio-readonly-header em { position: absolute; top: 17px; right: 14px; border-radius: 10px; padding: 3px 8px; color: var(--nova-color-primary, #5361d6); background: var(--nova-color-primary-soft, #eef0ff); font-size: var(--nova-font-size-xs); line-height: 14px; font-style: normal; }
|
|
1410
|
+
.nova-studio-readonly-body { padding: 12px 15px; display: grid; gap: 10px; }
|
|
1411
|
+
.nova-studio-readonly-row { display: grid; gap: 4px; }.nova-studio-readonly-row span { color: var(--nova-color-text-muted); font-size: var(--nova-font-size-xs); line-height: 14px; }.nova-studio-readonly-row strong { min-height: 32px; border: 1px solid var(--nova-color-border); border-radius: 7px; padding: 0 9px; display: flex; align-items: center; color: var(--nova-color-text-secondary, #4d586c); background: var(--nova-color-surface-subtle, #fafbfc); font-size: var(--nova-font-size-sm); line-height: 18px; font-weight: var(--nova-font-weight-medium); }
|
|
1412
|
+
@media (max-width: 1120px) {
|
|
1413
|
+
.nova-studio-shell { --nova-left-width: 210px; --nova-right-width: 320px; }
|
|
1414
|
+
.nova-studio-header { grid-template-columns: minmax(150px, auto) minmax(0,1fr); gap: 10px; }
|
|
1415
|
+
.nova-studio-mode-switch { display: none; }
|
|
1416
|
+
.nova-studio-projection-switch { display: flex; }
|
|
1417
|
+
.nova-studio-brand-copy span { max-width: 115px; }
|
|
1418
|
+
}
|
|
1419
|
+
@media (max-width: 820px) {
|
|
1420
|
+
.nova-studio-shell { --nova-left-width: 186px; --nova-right-width: 280px; }
|
|
1421
|
+
.nova-studio-brand-copy span { display: none; }
|
|
1422
|
+
}
|
|
1423
|
+
@media (max-width: 720px) {
|
|
1424
|
+
.nova-studio-shell { grid-template-rows: 54px minmax(0,1fr); }
|
|
1425
|
+
.nova-studio-header { grid-template-columns: auto minmax(0,1fr); padding-left: 9px; }
|
|
1426
|
+
.nova-studio-brand-copy { display: none; }
|
|
1427
|
+
.nova-studio-body { grid-template-columns: 1fr; }
|
|
1428
|
+
.nova-studio-body.is-readonly { grid-template-columns: 1fr; }
|
|
1429
|
+
.nova-studio-left, .nova-studio-right { display: none; }
|
|
1430
|
+
.nova-studio-center-controls { display: none; }
|
|
1431
|
+
.nova-studio-projection-switch { display: none; }
|
|
1432
|
+
.nova-studio-body.is-timeline .nova-studio-canvas-column { grid-template-rows: minmax(0, 1fr); }
|
|
1433
|
+
.nova-studio-body.is-timeline .nova-studio-statusbar { display: none; }
|
|
1434
|
+
}
|
|
1435
|
+
|