@dsh-plus/image-studio 0.1.1 → 0.1.2

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.
@@ -1,8 +1,9 @@
1
1
  /**
2
- * 图像工作室前端样式:侧栏入口 + overlay 工作台 + 配置卡片附加件。
3
- * 全部颜色引用 --dsw-* 设计令牌(跟随原生深浅色主题);响应式断点 767px
4
- * 与 @dsh-plus/ui-mobile-fit 对齐(移动端面板全屏、生图表单单列、画廊两列)。
5
- * 注入沿用 <style data-plugin data-plugin-css> 约定(HMR 可卸载)。
2
+ * 图像工作室前端样式:侧栏入口 + 工作台(官方 Modal 承载)+ 配置卡片附加件。
3
+ * 设计令牌仅用 dsh-client-ui-theme 实测存在的 --dsw-alias-*(深浅色自适应);
4
+ * 模态骨架(遮罩/Escape/portal 层叠)由官方 Modal 原语承载,本表只覆写尺寸
5
+ * 与内部布局(.ims-modal 等,模式同 web-files/web-terminal 的 wf-/wt-modal)。
6
+ * 响应式断点 767px 与 @dsh-plus/ui-mobile-fit 对齐(移动端全屏、单列、44px 热区)。
6
7
  * @module image-studio/client/styles
7
8
  */
8
9
 
@@ -25,14 +26,14 @@ export const imageStudioCss = `
25
26
  border: none;
26
27
  border-radius: 12px;
27
28
  background: transparent;
28
- color: var(--dsw-alias-label-primary, #1f2328);
29
+ color: var(--dsw-alias-label-primary);
29
30
  font-family: inherit;
30
31
  font-size: 14px;
31
32
  line-height: 22px;
32
33
  cursor: pointer;
33
34
  overflow: hidden;
34
35
  }
35
- .ims-entry:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(0,0,0,.06)); }
36
+ .ims-entry:hover { background: var(--dsw-alias-interactive-bg-hover); }
36
37
  .ims-entry-rail {
37
38
  flex: none;
38
39
  width: 36px;
@@ -45,26 +46,26 @@ export const imageStudioCss = `
45
46
  }
46
47
  .ims-entry-label { white-space: nowrap; overflow: hidden; }
47
48
 
48
- /* ── 面板骨架 ── */
49
- .ims-backdrop {
50
- position: fixed;
51
- inset: 0;
52
- z-index: 60;
49
+ /* ── 工作台模态尺寸覆写(官方 Modal headless 卡片)── */
50
+ .ims-modal {
51
+ width: min(1100px, 94vw) !important;
52
+ max-width: none !important;
53
+ height: min(780px, 88vh);
54
+ padding: 0 !important;
55
+ gap: 0 !important;
53
56
  display: flex;
54
- align-items: center;
55
- justify-content: center;
56
- background: var(--dsw-alias-overlay-bg, rgba(0,0,0,.4));
57
+ flex-direction: column;
58
+ overflow: hidden;
57
59
  }
60
+
61
+ /* ── 面板骨架 ── */
58
62
  .ims-panel {
59
63
  display: flex;
60
64
  flex-direction: column;
61
- width: min(1100px, 94vw);
62
- height: min(780px, 88vh);
63
- border-radius: 16px;
64
- background: var(--dsw-alias-bg-primary, #fff);
65
- color: var(--dsw-alias-label-primary, #1f2328);
66
- box-shadow: 0 16px 48px rgba(0,0,0,.24);
67
- overflow: hidden;
65
+ height: 100%;
66
+ min-height: 0;
67
+ position: relative;
68
+ color: var(--dsw-alias-label-primary);
68
69
  }
69
70
  .ims-head {
70
71
  display: flex;
@@ -72,7 +73,7 @@ export const imageStudioCss = `
72
73
  align-items: center;
73
74
  gap: 8px;
74
75
  padding: 10px 12px;
75
- border-bottom: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
76
+ border-bottom: 1px solid var(--dsw-alias-border-l3);
76
77
  }
77
78
  .ims-tabs { display: flex; flex: 1; gap: 4px; min-width: 0; }
78
79
  .ims-tab {
@@ -84,16 +85,16 @@ export const imageStudioCss = `
84
85
  border: none;
85
86
  border-radius: 10px;
86
87
  background: transparent;
87
- color: var(--dsw-alias-label-secondary, #57606a);
88
+ color: var(--dsw-alias-label-secondary);
88
89
  font-family: inherit;
89
90
  font-size: 14px;
90
91
  cursor: pointer;
91
92
  white-space: nowrap;
92
93
  }
93
- .ims-tab:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(0,0,0,.06)); }
94
+ .ims-tab:hover { background: var(--dsw-alias-interactive-bg-hover); }
94
95
  .ims-tabActive {
95
- background: var(--dsw-alias-button-elevated-fill, rgba(0,0,0,.06));
96
- color: var(--dsw-alias-label-primary, #1f2328);
96
+ background: var(--dsw-alias-button-elevated-fill);
97
+ color: var(--dsw-alias-label-primary);
97
98
  font-weight: 500;
98
99
  }
99
100
  .ims-iconBtn {
@@ -106,10 +107,10 @@ export const imageStudioCss = `
106
107
  border: none;
107
108
  border-radius: 8px;
108
109
  background: transparent;
109
- color: var(--dsw-alias-label-primary, #1f2328);
110
+ color: var(--dsw-alias-label-primary);
110
111
  cursor: pointer;
111
112
  }
112
- .ims-iconBtn:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(0,0,0,.06)); }
113
+ .ims-iconBtn:hover { background: var(--dsw-alias-interactive-bg-hover); }
113
114
  .ims-body { flex: 1; min-height: 0; overflow-y: auto; }
114
115
 
115
116
  /* ── 通用件 ── */
@@ -118,15 +119,15 @@ export const imageStudioCss = `
118
119
  width: 100%;
119
120
  min-height: 34px;
120
121
  padding: 6px 10px;
121
- border: .5px solid var(--dsw-alias-border-l2, rgba(0,0,0,.16));
122
+ border: 1px solid var(--dsw-alias-border-l2);
122
123
  border-radius: 8px;
123
- background: var(--dsw-alias-bg-primary, #fff);
124
- color: var(--dsw-alias-label-primary, #1f2328);
124
+ background: var(--dsw-alias-bg-layer-3);
125
+ color: var(--dsw-alias-label-primary);
125
126
  font-family: inherit;
126
127
  font-size: 13px;
127
128
  line-height: 20px;
128
129
  }
129
- .ims-input:focus { outline: 2px solid var(--dsw-alias-focus-ring, #4d9fff); outline-offset: 0; }
130
+ .ims-input:focus { outline: 2px solid var(--dsw-alias-brand-primary); outline-offset: 0; }
130
131
  .ims-btn {
131
132
  display: inline-flex;
132
133
  align-items: center;
@@ -144,23 +145,24 @@ export const imageStudioCss = `
144
145
  }
145
146
  .ims-btn:disabled { opacity: .5; cursor: not-allowed; }
146
147
  .ims-btnPrimary {
147
- background: var(--dsw-alias-button-primary-fill, #1f2328);
148
- color: var(--dsw-alias-button-primary-label, #fff);
148
+ background: var(--dsw-alias-button-primary-fill);
149
+ color: var(--dsw-alias-label-primary-inverted);
149
150
  }
151
+ .ims-btnPrimary:hover:not(:disabled) { background: var(--dsw-alias-button-primary-hover); }
150
152
  .ims-btnGhost {
151
153
  background: transparent;
152
- color: var(--dsw-alias-label-primary, #1f2328);
153
- border: .5px solid var(--dsw-alias-border-l2, rgba(0,0,0,.16));
154
+ color: var(--dsw-alias-label-primary);
155
+ border: 1px solid var(--dsw-alias-border-l2);
154
156
  }
155
- .ims-btnGhost:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover, rgba(0,0,0,.06)); }
156
- .ims-btnDanger { background: var(--dsw-alias-status-error, #d1242f); color: #fff; }
157
+ .ims-btnGhost:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); }
158
+ .ims-btnDanger { background: var(--dsw-alias-state-error-primary); color: var(--dsw-alias-label-primary-inverted); }
157
159
  .ims-btnSmall { min-height: 28px; padding: 3px 10px; font-size: 12px; }
158
- .ims-hint { margin: 4px 0 0; font-size: 12px; color: var(--dsw-alias-label-secondary, #57606a); }
160
+ .ims-hint { margin: 4px 0 0; font-size: 12px; color: var(--dsw-alias-label-tertiary); }
159
161
  .ims-empty {
160
162
  padding: 32px 16px;
161
163
  text-align: center;
162
164
  font-size: 13px;
163
- color: var(--dsw-alias-label-secondary, #57606a);
165
+ color: var(--dsw-alias-label-tertiary);
164
166
  }
165
167
  .ims-badge {
166
168
  flex: none;
@@ -169,10 +171,10 @@ export const imageStudioCss = `
169
171
  font-size: 11px;
170
172
  line-height: 16px;
171
173
  }
172
- .ims-badgeOn { background: var(--dsw-alias-status-success-subtle, rgba(35,134,54,.15)); color: var(--dsw-alias-status-success, #1a7f37); }
173
- .ims-badgeOff { background: var(--dsw-alias-status-error-subtle, rgba(209,36,47,.12)); color: var(--dsw-alias-status-error, #d1242f); }
174
- .ims-status { margin: 8px 0 0; font-size: 12px; color: var(--dsw-alias-status-success, #1a7f37); }
175
- .ims-statusError { color: var(--dsw-alias-status-error, #d1242f); }
174
+ .ims-badgeOn { background: var(--dsw-alias-state-success-secondary); color: var(--dsw-alias-state-success-primary); }
175
+ .ims-badgeOff { background: var(--dsw-alias-state-error-secondary); color: var(--dsw-alias-state-error-primary); }
176
+ .ims-status { margin: 8px 0 0; font-size: 12px; color: var(--dsw-alias-state-success-primary); }
177
+ .ims-statusError { color: var(--dsw-alias-state-error-primary); }
176
178
  .ims-spin { animation: ims-rotate 1s linear infinite; }
177
179
  @keyframes ims-rotate { to { transform: rotate(360deg); } }
178
180
 
@@ -199,7 +201,7 @@ export const imageStudioCss = `
199
201
  cursor: pointer;
200
202
  }
201
203
  .ims-inlineGrid { display: grid; gap: 8px; margin-top: 8px; }
202
- .ims-mini { display: grid; gap: 4px; font-size: 12px; color: var(--dsw-alias-label-secondary, #57606a); }
204
+ .ims-mini { display: grid; gap: 4px; font-size: 12px; color: var(--dsw-alias-label-secondary); }
203
205
  .ims-prompt { resize: vertical; min-height: 96px; }
204
206
  .ims-rowActions { display: flex; gap: 8px; margin-top: 8px; align-items: center; }
205
207
  .ims-rowGrow { flex: 1; min-width: 0; }
@@ -213,20 +215,21 @@ export const imageStudioCss = `
213
215
  padding: 6px 8px;
214
216
  border-radius: 8px;
215
217
  }
216
- .ims-paramRowOn { background: var(--dsw-alias-bg-secondary, rgba(0,0,0,.04)); }
218
+ .ims-paramRowOn { background: var(--dsw-alias-bg-layer-1); }
217
219
  .ims-paramText { flex: 1; min-width: 0; display: grid; }
218
- .ims-paramKey { font-size: 12px; font-weight: 600; font-family: var(--ds-font-family-code, monospace); }
220
+ .ims-paramKey { font-size: 12px; font-weight: 600; font-family: var(--ds-font-family-code); }
219
221
  .ims-paramGen {
220
222
  margin-left: 6px;
221
223
  padding: 0 5px;
222
224
  border-radius: 4px;
223
- background: var(--dsw-alias-bg-tertiary, rgba(0,0,0,.08));
225
+ background: var(--dsw-alias-bg-module-platform);
226
+ color: var(--dsw-alias-label-secondary);
224
227
  font-size: 10px;
225
228
  font-weight: 400;
226
229
  }
227
230
  .ims-paramDesc {
228
231
  font-size: 11px;
229
- color: var(--dsw-alias-label-secondary, #57606a);
232
+ color: var(--dsw-alias-label-tertiary);
230
233
  overflow: hidden;
231
234
  text-overflow: ellipsis;
232
235
  white-space: nowrap;
@@ -238,15 +241,15 @@ export const imageStudioCss = `
238
241
  font-size: 12px;
239
242
  font-weight: 600;
240
243
  padding: 6px 0;
241
- color: var(--dsw-alias-label-secondary, #57606a);
244
+ color: var(--dsw-alias-label-secondary);
242
245
  user-select: none;
243
246
  }
244
247
  .ims-advCount {
245
248
  margin-left: 6px;
246
249
  padding: 0 6px;
247
250
  border-radius: 999px;
248
- background: var(--dsw-alias-button-primary-fill, #1f2328);
249
- color: var(--dsw-alias-button-primary-label, #fff);
251
+ background: var(--dsw-alias-button-primary-fill);
252
+ color: var(--dsw-alias-label-primary-inverted);
250
253
  font-size: 10px;
251
254
  }
252
255
 
@@ -257,7 +260,7 @@ export const imageStudioCss = `
257
260
  position: absolute;
258
261
  inset: 0;
259
262
  border-radius: 999px;
260
- background: var(--dsw-alias-border-l1, rgba(0,0,0,.24));
263
+ background: var(--dsw-alias-bg-module-platform);
261
264
  transition: background .15s;
262
265
  pointer-events: none;
263
266
  }
@@ -269,10 +272,10 @@ export const imageStudioCss = `
269
272
  width: 14px;
270
273
  height: 14px;
271
274
  border-radius: 50%;
272
- background: #fff;
275
+ background: var(--dsw-alias-label-primary);
273
276
  transition: transform .15s;
274
277
  }
275
- .ims-switch input:checked + .ims-switchTrack { background: var(--dsw-alias-status-success, #1a7f37); }
278
+ .ims-switch input:checked + .ims-switchTrack { background: var(--dsw-alias-brand-primary); }
276
279
  .ims-switch input:checked + .ims-switchTrack::after { transform: translateX(12px); }
277
280
 
278
281
  /* 源图/遮罩缩略 */
@@ -301,49 +304,64 @@ export const imageStudioCss = `
301
304
  gap: 4px;
302
305
  width: 64px;
303
306
  height: 64px;
304
- border: 1px dashed var(--dsw-alias-border-l1, rgba(0,0,0,.24));
307
+ border: 1px dashed var(--dsw-alias-border-l1);
305
308
  border-radius: 8px;
306
309
  background: transparent;
307
- color: var(--dsw-alias-label-secondary, #57606a);
310
+ color: var(--dsw-alias-label-secondary);
308
311
  font-size: 11px;
309
312
  cursor: pointer;
310
313
  }
311
- .ims-thumbAdd:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(0,0,0,.06)); }
314
+ .ims-thumbAdd:hover { background: var(--dsw-alias-interactive-bg-hover); }
312
315
 
313
316
  /* 提交区 */
314
- .ims-genFoot { grid-column: 1 / -1; border-top: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08)); padding-top: 12px; }
317
+ .ims-genFoot { grid-column: 1 / -1; border-top: 1px solid var(--dsw-alias-border-l3); padding-top: 12px; }
315
318
  .ims-naming { display: flex; gap: 8px; margin-bottom: 8px; }
316
319
  .ims-submit { width: 100%; min-height: 40px; font-size: 14px; margin-top: 8px; }
317
320
 
318
- /* ── 图片选择器 ── */
319
- .ims-pickerBackdrop, .ims-detailBackdrop {
320
- position: absolute;
321
- inset: 0;
322
- z-index: 5;
323
- display: flex;
324
- align-items: center;
325
- justify-content: center;
326
- background: var(--dsw-alias-overlay-bg, rgba(0,0,0,.4));
327
- }
328
- .ims-picker, .ims-detail {
321
+ /* ── 子模态(图片选择器 / 画廊详情,官方 Modal 承载)── */
322
+ .ims-pickerModal {
323
+ width: min(760px, 92vw) !important;
324
+ max-width: none !important;
325
+ max-height: 86vh;
326
+ padding: 0 !important;
327
+ gap: 0 !important;
328
+ }
329
+ .ims-detailModal {
330
+ width: min(920px, 94vw) !important;
331
+ max-width: none !important;
332
+ max-height: 88vh;
333
+ padding: 0 !important;
334
+ gap: 0 !important;
335
+ }
336
+ .ims-sub {
329
337
  display: flex;
330
338
  flex-direction: column;
331
- width: min(760px, 92%);
332
- max-height: 86%;
333
- border-radius: 14px;
334
- background: var(--dsw-alias-bg-primary, #fff);
335
- overflow: hidden;
339
+ min-height: 0;
340
+ max-height: inherit;
341
+ color: var(--dsw-alias-label-primary);
336
342
  }
337
- .ims-pickerHead, .ims-detailHead {
343
+ .ims-subHead {
338
344
  display: flex;
339
345
  flex: none;
340
346
  align-items: center;
341
347
  justify-content: space-between;
342
348
  gap: 8px;
349
+ padding: 12px 14px;
350
+ border-bottom: 1px solid var(--dsw-alias-border-l3);
351
+ }
352
+ .ims-subTitle { margin: 0; font-size: 14px; }
353
+ .ims-subFoot {
354
+ display: flex;
355
+ flex: none;
356
+ align-items: center;
357
+ justify-content: flex-end;
358
+ gap: 8px;
343
359
  padding: 10px 14px;
344
- border-bottom: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
360
+ border-top: 1px solid var(--dsw-alias-border-l3);
345
361
  }
346
- .ims-pickerTitle { margin: 0; font-size: 14px; }
362
+ .ims-subFoot .ims-status { margin: 0 auto 0 0; }
363
+
364
+ /* 选择器网格 */
347
365
  .ims-pickerGrid {
348
366
  flex: 1;
349
367
  min-height: 0;
@@ -364,7 +382,7 @@ export const imageStudioCss = `
364
382
  overflow: hidden;
365
383
  }
366
384
  .ims-pickerCell img { width: 100%; height: 100%; object-fit: cover; display: block; }
367
- .ims-pickerCellOn { border-color: var(--dsw-alias-focus-ring, #4d9fff); }
385
+ .ims-pickerCellOn { border-color: var(--dsw-alias-brand-primary); }
368
386
  .ims-pickerMark {
369
387
  position: absolute;
370
388
  top: 4px;
@@ -372,20 +390,12 @@ export const imageStudioCss = `
372
390
  min-width: 18px;
373
391
  height: 18px;
374
392
  border-radius: 999px;
375
- background: var(--dsw-alias-button-primary-fill, #1f2328);
376
- color: var(--dsw-alias-button-primary-label, #fff);
393
+ background: var(--dsw-alias-button-primary-fill);
394
+ color: var(--dsw-alias-label-primary-inverted);
377
395
  font-size: 11px;
378
396
  line-height: 18px;
379
397
  text-align: center;
380
398
  }
381
- .ims-pickerFoot {
382
- display: flex;
383
- flex: none;
384
- justify-content: flex-end;
385
- gap: 8px;
386
- padding: 10px 14px;
387
- border-top: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
388
- }
389
399
 
390
400
  /* ── 画廊 ── */
391
401
  .ims-gallery { padding: 12px 16px; }
@@ -402,7 +412,7 @@ export const imageStudioCss = `
402
412
  border: none;
403
413
  border-radius: 10px;
404
414
  padding: 0;
405
- background: var(--dsw-alias-bg-secondary, rgba(0,0,0,.04));
415
+ background: var(--dsw-alias-bg-layer-1);
406
416
  cursor: pointer;
407
417
  overflow: hidden;
408
418
  }
@@ -425,9 +435,8 @@ export const imageStudioCss = `
425
435
  }
426
436
  .ims-cell:hover .ims-cellPrompt, .ims-cell:focus-visible .ims-cellPrompt { opacity: 1; }
427
437
 
428
- /* 详情模态 */
429
- .ims-detail { width: min(920px, 94%); }
430
- .ims-detailMeta { font-size: 12px; color: var(--dsw-alias-label-secondary, #57606a); }
438
+ /* 详情 */
439
+ .ims-detailMeta { font-size: 12px; color: var(--dsw-alias-label-tertiary); }
431
440
  .ims-detailBody {
432
441
  flex: 1;
433
442
  min-height: 0;
@@ -442,13 +451,13 @@ export const imageStudioCss = `
442
451
  .ims-detailFigure img {
443
452
  width: 100%;
444
453
  border-radius: 10px;
445
- background: var(--dsw-alias-bg-secondary, rgba(0,0,0,.04));
454
+ background: var(--dsw-alias-bg-layer-1);
446
455
  display: block;
447
456
  }
448
457
  .ims-detailFigure figcaption { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
449
458
  .ims-revised {
450
459
  font-size: 11px;
451
- color: var(--dsw-alias-label-secondary, #57606a);
460
+ color: var(--dsw-alias-label-tertiary);
452
461
  overflow: hidden;
453
462
  text-overflow: ellipsis;
454
463
  white-space: nowrap;
@@ -458,18 +467,8 @@ export const imageStudioCss = `
458
467
  .ims-detailLabel:first-child { margin-top: 0; }
459
468
  .ims-detailPrompt { margin: 0; font-size: 13px; white-space: pre-wrap; word-break: break-word; }
460
469
  .ims-paramTable { width: 100%; border-collapse: collapse; font-size: 12px; }
461
- .ims-paramTable td { padding: 4px 6px; border-top: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08)); word-break: break-all; }
462
- .ims-paramTableKey { font-family: var(--ds-font-family-code, monospace); font-weight: 600; white-space: nowrap; }
463
- .ims-detailFoot {
464
- display: flex;
465
- flex: none;
466
- align-items: center;
467
- justify-content: flex-end;
468
- gap: 8px;
469
- padding: 10px 14px;
470
- border-top: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
471
- }
472
- .ims-detailFoot .ims-status { margin: 0 auto 0 0; }
470
+ .ims-paramTable td { padding: 4px 6px; border-top: 1px solid var(--dsw-alias-border-l3); word-break: break-all; }
471
+ .ims-paramTableKey { font-family: var(--ds-font-family-code); font-weight: 600; white-space: nowrap; }
473
472
 
474
473
  /* ── 任务条 ── */
475
474
  .ims-tasks {
@@ -477,8 +476,9 @@ export const imageStudioCss = `
477
476
  flex: none;
478
477
  gap: 8px;
479
478
  padding: 8px 12px;
479
+ margin: 0;
480
480
  overflow-x: auto;
481
- border-top: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
481
+ border-top: 1px solid var(--dsw-alias-border-l3);
482
482
  }
483
483
  .ims-task {
484
484
  display: inline-flex;
@@ -488,30 +488,30 @@ export const imageStudioCss = `
488
488
  max-width: 340px;
489
489
  padding: 4px 10px;
490
490
  border-radius: 999px;
491
- background: var(--dsw-alias-bg-secondary, rgba(0,0,0,.04));
491
+ background: var(--dsw-alias-bg-layer-1);
492
492
  font-size: 12px;
493
493
  }
494
494
  .ims-taskState { font-weight: 600; flex: none; }
495
- .ims-taskState-running { color: var(--dsw-alias-status-info, #0969da); }
496
- .ims-taskState-queued { color: var(--dsw-alias-label-secondary, #57606a); }
497
- .ims-taskState-succeeded { color: var(--dsw-alias-status-success, #1a7f37); }
498
- .ims-taskState-failed { color: var(--dsw-alias-status-error, #d1242f); }
499
- .ims-taskState-cancelled { color: var(--dsw-alias-label-secondary, #57606a); }
495
+ .ims-taskState-running { color: var(--dsw-alias-brand-primary); }
496
+ .ims-taskState-queued { color: var(--dsw-alias-label-tertiary); }
497
+ .ims-taskState-succeeded { color: var(--dsw-alias-state-success-primary); }
498
+ .ims-taskState-failed { color: var(--dsw-alias-state-error-primary); }
499
+ .ims-taskState-cancelled { color: var(--dsw-alias-label-tertiary); }
500
500
  .ims-taskPrompt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
501
- .ims-taskModel { flex: none; color: var(--dsw-alias-label-secondary, #57606a); font-size: 11px; }
501
+ .ims-taskModel { flex: none; color: var(--dsw-alias-label-tertiary); font-size: 11px; }
502
502
  .ims-taskError {
503
503
  max-width: 140px;
504
504
  overflow: hidden;
505
505
  text-overflow: ellipsis;
506
506
  white-space: nowrap;
507
- color: var(--dsw-alias-status-error, #d1242f);
507
+ color: var(--dsw-alias-state-error-primary);
508
508
  }
509
509
 
510
510
  /* ── 配置卡片附加件(imsc- 基础类由 cardCss('imsc') 生成)── */
511
511
  .imsc-loading{padding:14px 16px;margin:0;font-size:13px;color:var(--dsw-alias-label-tertiary)}
512
512
  .imsc-groupTitle { margin: 14px 0 6px; font-size: 13px; font-weight: 600; }
513
513
  .imsc-presetBox {
514
- border: .5px solid var(--dsw-alias-border-l3, rgba(0,0,0,.08));
514
+ border: 1px solid var(--dsw-alias-border-l3);
515
515
  border-radius: 10px;
516
516
  padding: 10px;
517
517
  margin-bottom: 10px;
@@ -526,11 +526,11 @@ export const imageStudioCss = `
526
526
  width: 100%;
527
527
  min-height: 64px;
528
528
  padding: 6px 10px;
529
- border: .5px solid var(--dsw-alias-border-l2, rgba(0,0,0,.16));
529
+ border: 1px solid var(--dsw-alias-border-l2);
530
530
  border-radius: 8px;
531
- background: var(--dsw-alias-bg-primary, #fff);
532
- color: var(--dsw-alias-label-primary, #1f2328);
533
- font-family: var(--ds-font-family-code, monospace);
531
+ background: var(--dsw-alias-bg-layer-3);
532
+ color: var(--dsw-alias-label-primary);
533
+ font-family: var(--ds-font-family-code);
534
534
  font-size: 12px;
535
535
  resize: vertical;
536
536
  }
@@ -539,15 +539,32 @@ export const imageStudioCss = `
539
539
 
540
540
  /* ── 移动端(≤767px,与 ui-mobile-fit 同断点)── */
541
541
  @media (max-width: 767px) {
542
- .ims-backdrop { align-items: stretch; justify-content: stretch; }
543
- .ims-panel { width: 100%; height: 100%; border-radius: 0; }
542
+ .ims-modal {
543
+ position: fixed;
544
+ inset: 0;
545
+ margin: 0;
546
+ width: 100% !important;
547
+ max-width: none !important;
548
+ height: 100%;
549
+ max-height: none;
550
+ border: none;
551
+ border-radius: 0 !important;
552
+ }
544
553
  .ims-gen { grid-template-columns: minmax(0, 1fr); }
545
554
  .ims-genSide { margin-top: 4px; }
546
555
  .ims-tab { padding: 0 10px; }
547
556
  .ims-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
548
557
  .ims-detailBody { grid-template-columns: minmax(0, 1fr); }
549
- .ims-picker, .ims-detail { width: 100%; max-height: 100%; height: 100%; border-radius: 0; }
550
- .ims-pickerBackdrop, .ims-detailBackdrop { align-items: stretch; justify-content: stretch; }
558
+ .ims-pickerModal, .ims-detailModal {
559
+ position: fixed;
560
+ inset: 0;
561
+ width: 100% !important;
562
+ max-width: none !important;
563
+ max-height: none;
564
+ height: 100%;
565
+ border: none;
566
+ border-radius: 0 !important;
567
+ }
551
568
  .ims-paramControl { width: 108px; }
552
569
  .ims-btn { min-height: 40px; }
553
570
  .ims-btnSmall { min-height: 32px; }