@lijinmei-810/dev-inspector 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,167 +48,64 @@
48
48
  transform: translateY(0);
49
49
  }
50
50
 
51
- /* ── 下载按钮 ── */
52
- .di-dl-btn {
53
- position: fixed;
54
- right: 72px;
55
- bottom: 24px;
56
- z-index: 99999;
57
- width: 48px;
58
- height: 48px;
59
- border-radius: 50%;
60
- border: none;
61
- background: #1a1a1a;
62
- color: #fff;
63
- font-size: 11px;
64
- font-weight: 700;
65
- font-family: "PingFang SC", system-ui, sans-serif;
66
- cursor: pointer;
67
- box-shadow: 0 4px 16px rgba(0,0,0,0.35);
68
- transition: background 0.15s, box-shadow 0.15s;
69
- }
70
- .di-dl-btn:hover { background: #333; box-shadow: 0 6px 20px rgba(0,0,0,0.45); }
71
-
72
- /* ── 下载弹窗 ── */
73
- .di-dl-modal {
74
- position: fixed;
75
- right: 72px;
76
- bottom: 80px;
77
- z-index: 99999;
78
- width: 200px;
79
- background: #fff;
80
- border-radius: 12px;
81
- box-shadow: 0 8px 32px rgba(0,0,0,0.18);
82
- padding: 16px;
83
- display: flex;
84
- flex-direction: column;
85
- gap: 10px;
86
- font-family: "PingFang SC", system-ui, sans-serif;
87
- }
88
- .di-dl-title {
89
- font-size: 13px;
90
- font-weight: 700;
91
- color: #111;
92
- }
93
- .di-dl-row {
94
- display: flex;
95
- align-items: center;
96
- justify-content: space-between;
97
- gap: 8px;
98
- font-size: 13px;
99
- color: #333;
100
- }
101
- .di-dl-check-label {
102
- display: flex;
51
+ .di-match-badge {
52
+ position: relative;
53
+ display: inline-flex;
103
54
  align-items: center;
104
- gap: 8px;
105
- cursor: pointer;
106
- }
107
- .di-dl-row input[type="checkbox"] { accent-color: #1a1a1a; cursor: pointer; }
108
- .di-dl-detail-btn {
109
- background: none;
110
- border: none;
111
- font-size: 11px;
112
- color: #888;
113
- cursor: pointer;
114
- padding: 0;
115
- white-space: nowrap;
116
- text-decoration: underline;
117
- }
118
- .di-dl-detail-btn:hover { color: #333; }
119
- .di-dl-file-list {
120
- margin: -4px 0 0 0;
121
- padding: 8px 10px;
122
- background: #f5f5f5;
123
- border-radius: 6px;
124
- list-style: none;
125
- display: flex;
126
- flex-direction: column;
127
- gap: 6px;
128
- }
129
- .di-dl-file-list li {
130
- display: flex;
131
- flex-direction: column;
132
- gap: 1px;
133
- }
134
- .di-dl-file-name {
135
- font-size: 11px;
136
- font-weight: 600;
137
- color: #222;
138
- font-family: "SF Mono", monospace;
139
- }
140
- .di-dl-file-desc {
55
+ justify-content: center;
56
+ height: 20px;
57
+ padding: 0 7px;
58
+ border-radius: 999px;
141
59
  font-size: 10px;
142
- color: #888;
143
- line-height: 1.4;
60
+ font-weight: 800;
61
+ line-height: 1;
62
+ white-space: nowrap;
63
+ cursor: default;
64
+ outline: none;
144
65
  }
145
- .di-dl-confirm {
146
- margin-top: 4px;
147
- padding: 7px 0;
148
- background: #1a1a1a;
66
+ .di-match-badge::after {
67
+ content: attr(data-tooltip);
68
+ position: absolute;
69
+ left: 50%;
70
+ bottom: calc(100% + 8px);
71
+ transform: translate(-50%, 4px);
72
+ width: max-content;
73
+ max-width: 220px;
74
+ padding: 7px 9px;
75
+ border-radius: 7px;
76
+ background: #0f172a;
149
77
  color: #fff;
150
- border: none;
151
- border-radius: 8px;
152
- font-size: 13px;
153
- font-weight: 600;
154
- cursor: pointer;
155
- transition: background 0.15s;
156
- }
157
- .di-dl-confirm:hover:not(:disabled) { background: #333; }
158
- .di-dl-confirm:disabled { background: #ccc; cursor: not-allowed; }
159
-
160
- /* ── 状态反馈 ── */
161
- .di-dl-status {
162
- display: flex;
163
- align-items: center;
164
- gap: 8px;
165
- font-size: 12px;
166
- color: #555;
167
- padding: 4px 0;
78
+ font-size: 11px;
79
+ line-height: 1.35;
80
+ font-weight: 650;
81
+ box-shadow: 0 8px 24px rgba(15,23,42,0.18);
82
+ opacity: 0;
83
+ pointer-events: none;
84
+ transition: opacity 0.12s, transform 0.12s;
85
+ white-space: normal;
86
+ z-index: 20;
168
87
  }
169
- .di-dl-status--error { color: #dc2626; }
170
- .di-dl-spinner {
171
- width: 12px;
172
- height: 12px;
173
- border: 2px solid #ddd;
174
- border-top-color: #1a1a1a;
175
- border-radius: 50%;
176
- animation: di-spin 0.7s linear infinite;
177
- flex-shrink: 0;
88
+ .di-match-badge:hover::after,
89
+ .di-match-badge:focus-visible::after {
90
+ opacity: 1;
91
+ transform: translate(-50%, 0);
178
92
  }
179
- @keyframes di-spin { to { transform: rotate(360deg); } }
180
-
181
- /* ── 完成状态 ── */
182
- .di-dl-done {
183
- display: flex;
184
- flex-direction: column;
185
- gap: 6px;
186
- padding: 4px 0;
93
+ .di-match-badge--matched {
94
+ background: #ede9fe;
95
+ color: #7c3aed;
187
96
  }
188
- .di-dl-done-check {
189
- font-size: 13px;
190
- font-weight: 600;
191
- color: #1a1a1a;
97
+ .di-match-badge--pending {
98
+ background: #f1f5f9;
99
+ color: #64748b;
192
100
  }
193
- .di-dl-done-path {
194
- font-size: 11px;
195
- color: #888;
196
- font-family: "SF Mono", monospace;
197
- word-break: break-all;
101
+ .di-match-badge--token {
102
+ background: #ede9fe;
103
+ color: #7c3aed;
198
104
  }
199
- .di-dl-reveal-btn {
200
- margin-top: 2px;
201
- padding: 6px 0;
202
- background: #f0f0f0;
203
- border: none;
204
- border-radius: 7px;
205
- font-size: 12px;
206
- font-weight: 500;
207
- color: #333;
208
- cursor: pointer;
209
- transition: background 0.15s;
105
+ .di-match-badge--raw {
106
+ background: #eef2f7;
107
+ color: #64748b;
210
108
  }
211
- .di-dl-reveal-btn:hover { background: #e0e0e0; }
212
109
 
213
110
  /* ── 高亮 ── */
214
111
  .di-hover {
@@ -291,6 +188,10 @@
291
188
  overflow: hidden;
292
189
  }
293
190
 
191
+ .di-panel--workbench-open {
192
+ z-index: 2147483646;
193
+ }
194
+
294
195
  /* ── 顶部 ── */
295
196
  /* 选择元素模式下面板内 hover 高亮 */
296
197
  .di-panel--picking .di-body * { cursor: crosshair !important; }
@@ -346,12 +247,21 @@
346
247
  .di-head-right { display: flex; align-items: center; gap: 8px; }
347
248
  .di-title { font-size: 15px; font-weight: 700; color: #111827; }
348
249
  .di-badge-dev {
349
- padding: 2px 8px;
250
+ display: inline-flex;
251
+ height: 22px;
252
+ align-items: center;
253
+ padding: 0 7px;
254
+ border: 1px solid #ede9fe;
350
255
  border-radius: 6px;
351
- background: rgba(124,58,237,0.1);
256
+ background: #faf5ff;
352
257
  color: #7c3aed;
353
- font-size: 11px;
354
- font-weight: 600;
258
+ font-size: 10px;
259
+ font-weight: 850;
260
+ line-height: 1;
261
+ letter-spacing: 0;
262
+ white-space: nowrap;
263
+ cursor: default;
264
+ user-select: none;
355
265
  }
356
266
  .di-spec-link {
357
267
  background: none;
@@ -363,83 +273,3244 @@
363
273
  padding: 0;
364
274
  }
365
275
  .di-spec-link:hover { text-decoration: underline; }
366
- /* ── 主体 ── */
367
- .di-body {
368
- overflow-y: auto;
369
- flex: 1;
370
- padding: 2px 0 4px;
276
+
277
+ .di-library-trigger {
278
+ display: inline-flex;
279
+ align-items: center;
280
+ justify-content: center;
281
+ gap: 4px;
282
+ height: 26px;
283
+ padding: 0 8px;
284
+ border: 1px solid #ede9fe;
285
+ border-radius: 7px;
286
+ background: #faf5ff;
287
+ color: #7c3aed;
288
+ font-family: inherit;
289
+ font-size: 11px;
290
+ font-weight: 800;
291
+ line-height: 1;
292
+ white-space: nowrap;
293
+ transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
371
294
  }
372
- .di-body--readonly {
373
- pointer-events: none;
374
- opacity: 0.72;
375
- user-select: none;
295
+
296
+ .di-library-trigger:hover,
297
+ .di-library-trigger:focus-visible,
298
+ .di-library-trigger--on {
299
+ border-color: #c4b5fd;
300
+ background: #f5f3ff;
301
+ color: #6d28d9;
302
+ outline: none;
303
+ box-shadow: 0 1px 3px rgba(124, 58, 237, 0.12);
376
304
  }
377
305
 
378
- /* ── 区块 ── */
379
- .di-section {
380
- padding: 8px 14px;
381
- border-bottom: 1px solid #f3f4f6;
306
+ .di-library-layer {
307
+ position: absolute;
308
+ z-index: 4;
309
+ inset: 48px 0 0;
310
+ display: flex;
311
+ min-height: 0;
312
+ padding: 10px 14px;
313
+ background: rgba(255, 255, 255, 0.82);
314
+ backdrop-filter: blur(2px);
315
+ box-sizing: border-box;
316
+ overflow: hidden;
382
317
  }
383
- .di-section:last-child { border-bottom: none; }
384
- .di-section-title {
385
- font-size: 12px;
386
- font-weight: 700;
387
- color: #111827;
388
- margin-bottom: var(--di-section-title-gap);
318
+
319
+ .di-library-drawer {
320
+ display: flex;
321
+ flex-direction: column;
322
+ gap: 10px;
323
+ width: 100%;
324
+ height: 100%;
325
+ min-height: 0;
326
+ max-height: 100%;
327
+ overflow: hidden;
328
+ padding: 10px;
329
+ border: 1px solid #e5e7eb;
330
+ border-radius: 12px;
331
+ background: #fff;
332
+ box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14), 0 2px 10px rgba(15, 23, 42, 0.08);
333
+ box-sizing: border-box;
389
334
  }
390
- .di-section-title-row {
335
+
336
+ .di-library-head {
391
337
  display: flex;
392
338
  align-items: center;
393
- gap: var(--di-control-gap-x);
394
- margin-bottom: var(--di-section-title-gap);
395
- }
396
- .di-section-title-row--action {
397
339
  justify-content: space-between;
398
- min-height: 24px;
399
- }
400
- .di-section-title-row--empty {
401
- margin-bottom: 0;
402
- }
403
- .di-section-title-row .di-section-title {
404
- margin-bottom: 0;
340
+ gap: 8px;
341
+ flex: 0 0 auto;
405
342
  }
406
- .di-section-title-group {
343
+
344
+ .di-library-title {
407
345
  display: inline-flex;
408
346
  align-items: center;
409
347
  gap: 6px;
410
348
  min-width: 0;
349
+ color: #7c3aed;
350
+ font-size: 13px;
351
+ font-weight: 850;
411
352
  }
412
- .di-section-icon-action {
413
- width: 24px;
414
- height: 24px;
353
+
354
+ .di-library-title span {
355
+ color: #94a3b8;
356
+ font-size: 11px;
357
+ font-weight: 800;
358
+ }
359
+
360
+ .di-library-head-actions {
361
+ display: flex;
362
+ align-items: center;
363
+ gap: 6px;
364
+ }
365
+
366
+ .di-library-workbench-trigger,
367
+ .di-library-workbench-soft-btn {
368
+ height: 26px;
369
+ padding: 0 9px;
415
370
  border: 1px solid #e5e7eb;
416
371
  border-radius: 7px;
417
372
  background: #fff;
418
373
  color: #64748b;
419
- display: inline-flex;
420
- align-items: center;
421
- justify-content: center;
422
- padding: 0;
374
+ font-family: inherit;
375
+ font-size: 11px;
376
+ font-weight: 850;
423
377
  cursor: pointer;
424
- transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
425
378
  }
426
- .di-section-icon-action:hover,
427
- .di-section-icon-action:focus-visible {
428
- background: #faf5ff;
379
+
380
+ .di-library-workbench-trigger:hover,
381
+ .di-library-workbench-trigger:focus-visible,
382
+ .di-library-workbench-soft-btn:hover,
383
+ .di-library-workbench-soft-btn:focus-visible {
429
384
  border-color: #c4b5fd;
385
+ background: #faf5ff;
430
386
  color: #7c3aed;
431
387
  outline: none;
432
- box-shadow: 0 1px 3px rgba(124, 58, 237, 0.12);
433
- }
434
- .di-section-icon-action svg {
435
- width: 14px;
436
- height: 14px;
437
- }
438
- .di-section-icon-action--reset {
439
- color: #64748b;
440
388
  }
441
- .di-source-action {
442
- width: 18px;
389
+
390
+ .di-library-workbench-layer {
391
+ position: fixed;
392
+ z-index: 2147483647;
393
+ inset: 0;
394
+ display: flex;
395
+ min-width: 0;
396
+ min-height: 0;
397
+ padding: 0;
398
+ background: #f8fafc;
399
+ font-family: "PingFang SC", system-ui, sans-serif;
400
+ box-sizing: border-box;
401
+ }
402
+
403
+ .di-library-workbench {
404
+ display: flex;
405
+ flex-direction: column;
406
+ width: 100%;
407
+ min-width: 0;
408
+ min-height: 0;
409
+ border: 0;
410
+ border-radius: 0;
411
+ background: #fff;
412
+ box-shadow: none;
413
+ overflow: hidden;
414
+ }
415
+
416
+ .di-library-workbench-head {
417
+ display: flex;
418
+ align-items: center;
419
+ justify-content: space-between;
420
+ gap: 16px;
421
+ flex: 0 0 auto;
422
+ min-height: 72px;
423
+ padding: 14px 22px;
424
+ border-bottom: 1px solid #eef2f7;
425
+ background: #fff;
426
+ }
427
+
428
+ .di-library-workbench-title {
429
+ display: flex;
430
+ align-items: center;
431
+ gap: 10px;
432
+ min-width: 0;
433
+ color: #7c3aed;
434
+ }
435
+
436
+ .di-library-workbench-title div {
437
+ display: grid;
438
+ gap: 2px;
439
+ min-width: 0;
440
+ }
441
+
442
+ .di-library-workbench-title strong {
443
+ color: #111827;
444
+ font-size: 18px;
445
+ font-weight: 900;
446
+ line-height: 1.1;
447
+ }
448
+
449
+ .di-library-workbench-title span {
450
+ color: #64748b;
451
+ font-size: 12px;
452
+ font-weight: 750;
453
+ }
454
+
455
+ .di-library-workbench-head-actions {
456
+ display: flex;
457
+ align-items: center;
458
+ gap: 8px;
459
+ }
460
+
461
+ .di-library-workbench-grid {
462
+ display: grid;
463
+ grid-template-columns: 220px minmax(0, 1fr) 286px;
464
+ gap: 0;
465
+ min-height: 0;
466
+ flex: 1 1 auto;
467
+ }
468
+
469
+ .di-library-workbench-nav,
470
+ .di-library-workbench-detail {
471
+ min-height: 0;
472
+ overflow-y: auto;
473
+ padding: 18px;
474
+ background: #f8fafc;
475
+ }
476
+
477
+ .di-library-workbench-nav {
478
+ border-right: 1px solid #eef2f7;
479
+ }
480
+
481
+ .di-library-workbench-detail {
482
+ border-left: 1px solid #eef2f7;
483
+ }
484
+
485
+ .di-library-workbench-main {
486
+ min-width: 0;
487
+ min-height: 0;
488
+ display: flex;
489
+ flex-direction: column;
490
+ gap: 12px;
491
+ padding: 18px;
492
+ overflow: hidden;
493
+ background: #fff;
494
+ }
495
+
496
+ .di-library-workbench-brand {
497
+ display: grid;
498
+ gap: 4px;
499
+ margin-bottom: 18px;
500
+ }
501
+
502
+ .di-library-workbench-brand strong {
503
+ color: #7c3aed;
504
+ font-size: 18px;
505
+ font-weight: 950;
506
+ line-height: 1.05;
507
+ }
508
+
509
+ .di-library-workbench-brand span {
510
+ color: #94a3b8;
511
+ font-size: 11px;
512
+ font-weight: 850;
513
+ }
514
+
515
+ .di-library-workbench-tabs,
516
+ .di-library-workbench-filter-list {
517
+ display: grid;
518
+ gap: 8px;
519
+ }
520
+
521
+ .di-library-workbench-tab,
522
+ .di-library-workbench-filter {
523
+ min-width: 0;
524
+ display: flex;
525
+ align-items: center;
526
+ justify-content: space-between;
527
+ gap: 8px;
528
+ min-height: 38px;
529
+ padding: 0 10px;
530
+ border: 1px solid #e5e7eb;
531
+ border-radius: 10px;
532
+ background: #fff;
533
+ color: #334155;
534
+ font-family: inherit;
535
+ font-size: 12px;
536
+ font-weight: 850;
537
+ cursor: pointer;
538
+ }
539
+
540
+ .di-library-workbench-tab > span {
541
+ display: grid;
542
+ gap: 2px;
543
+ min-width: 0;
544
+ color: inherit;
545
+ }
546
+
547
+ .di-library-workbench-tab small {
548
+ color: #94a3b8;
549
+ font-size: 10px;
550
+ font-weight: 800;
551
+ }
552
+
553
+ .di-library-workbench-tab > strong,
554
+ .di-library-workbench-filter strong {
555
+ color: #94a3b8;
556
+ font-size: 11px;
557
+ font-weight: 850;
558
+ }
559
+
560
+ .di-library-workbench-tab:hover,
561
+ .di-library-workbench-tab:focus-visible,
562
+ .di-library-workbench-tab--active,
563
+ .di-library-workbench-filter:hover,
564
+ .di-library-workbench-filter:focus-visible,
565
+ .di-library-workbench-filter--active {
566
+ border-color: #c4b5fd;
567
+ background: #faf5ff;
568
+ color: #7c3aed;
569
+ outline: none;
570
+ }
571
+
572
+ .di-library-workbench-search {
573
+ display: grid;
574
+ gap: 6px;
575
+ margin: 14px 0;
576
+ }
577
+
578
+ .di-library-workbench-search span,
579
+ .di-library-workbench-nav-title,
580
+ .di-library-edit-panel label span,
581
+ .di-library-detail-kicker {
582
+ color: #94a3b8;
583
+ font-size: 10px;
584
+ font-weight: 850;
585
+ line-height: 1.2;
586
+ }
587
+
588
+ .di-library-workbench-search input,
589
+ .di-library-edit-panel input,
590
+ .di-library-edit-panel select {
591
+ width: 100%;
592
+ min-width: 0;
593
+ height: 34px;
594
+ border: 1px solid #e5e7eb;
595
+ border-radius: 8px;
596
+ background: #fff;
597
+ color: #111827;
598
+ padding: 0 10px;
599
+ font-family: inherit;
600
+ font-size: 12px;
601
+ font-weight: 750;
602
+ outline: none;
603
+ box-sizing: border-box;
604
+ }
605
+
606
+ .di-library-workbench-search input:focus,
607
+ .di-library-edit-panel input:focus,
608
+ .di-library-edit-panel select:focus {
609
+ border-color: #c4b5fd;
610
+ box-shadow: 0 0 0 1px #c4b5fd;
611
+ }
612
+
613
+ .di-library-workbench-nav-title {
614
+ margin: 14px 0 8px;
615
+ }
616
+
617
+ .di-library-workbench-note {
618
+ margin-top: 14px;
619
+ padding: 10px;
620
+ border-radius: 10px;
621
+ background: #fff;
622
+ color: #64748b;
623
+ font-size: 11px;
624
+ font-weight: 700;
625
+ line-height: 1.4;
626
+ }
627
+
628
+ .di-library-workbench-toolbar {
629
+ display: flex;
630
+ align-items: center;
631
+ justify-content: space-between;
632
+ gap: 12px;
633
+ flex: 0 0 auto;
634
+ }
635
+
636
+ .di-library-workbench-toolbar div {
637
+ display: flex;
638
+ align-items: baseline;
639
+ gap: 6px;
640
+ min-width: 0;
641
+ }
642
+
643
+ .di-library-workbench-toolbar strong {
644
+ color: #111827;
645
+ font-size: 24px;
646
+ font-weight: 950;
647
+ line-height: 1;
648
+ }
649
+
650
+ .di-library-workbench-toolbar span {
651
+ color: #64748b;
652
+ font-size: 12px;
653
+ font-weight: 800;
654
+ }
655
+
656
+ .di-library-workbench-toolbar > .di-btn-save,
657
+ .di-library-workbench-toolbar > .di-library-workbench-soft-btn {
658
+ flex: 0 0 auto;
659
+ width: auto;
660
+ min-width: 104px;
661
+ height: 36px;
662
+ }
663
+
664
+ .di-library-toolbar-actions {
665
+ display: flex;
666
+ align-items: center;
667
+ justify-content: flex-end;
668
+ gap: 8px;
669
+ flex-wrap: wrap;
670
+ }
671
+
672
+ .di-library-toolbar-actions .di-btn-save,
673
+ .di-library-toolbar-actions .di-library-workbench-soft-btn {
674
+ flex: 0 0 auto;
675
+ width: auto;
676
+ min-width: 104px;
677
+ height: 36px;
678
+ }
679
+
680
+ .di-library-workbench-table {
681
+ display: grid;
682
+ gap: 8px;
683
+ min-height: 0;
684
+ overflow: auto;
685
+ padding-right: 2px;
686
+ }
687
+
688
+ .di-library-workbench-table-head,
689
+ .di-library-workbench-row {
690
+ display: grid;
691
+ grid-template-columns: minmax(190px, 1.2fr) minmax(190px, 1fr) 110px 62px 196px;
692
+ align-items: center;
693
+ gap: 10px;
694
+ min-width: 760px;
695
+ }
696
+
697
+ .di-library-workbench-table-head--components,
698
+ .di-library-workbench-row--components {
699
+ grid-template-columns: minmax(190px, 1.1fr) minmax(250px, 1.5fr) 120px 210px;
700
+ }
701
+
702
+ .di-library-workbench-table-head--changes,
703
+ .di-library-workbench-row--changes {
704
+ grid-template-columns: minmax(210px, 1fr) minmax(320px, 1.6fr) 120px 180px;
705
+ }
706
+
707
+ .di-library-workbench-table-head--usage,
708
+ .di-library-workbench-row--usage {
709
+ grid-template-columns: minmax(210px, 1fr) minmax(260px, 1.4fr) 70px 230px;
710
+ }
711
+
712
+ .di-library-workbench-table-head {
713
+ min-height: 30px;
714
+ padding: 0 10px;
715
+ color: #94a3b8;
716
+ font-size: 10px;
717
+ font-weight: 900;
718
+ }
719
+
720
+ .di-library-workbench-row {
721
+ min-height: 68px;
722
+ padding: 9px 10px;
723
+ border: 1px solid #eef2f7;
724
+ border-radius: 12px;
725
+ background: #f8fafc;
726
+ cursor: pointer;
727
+ box-sizing: border-box;
728
+ }
729
+
730
+ .di-library-workbench-row:hover,
731
+ .di-library-workbench-row--selected {
732
+ border-color: #c4b5fd;
733
+ background: #faf5ff;
734
+ }
735
+
736
+ .di-library-workbench-token-cell,
737
+ .di-library-workbench-copy-cell {
738
+ min-width: 0;
739
+ display: flex;
740
+ align-items: center;
741
+ gap: 10px;
742
+ }
743
+
744
+ .di-library-workbench-token-cell div,
745
+ .di-library-workbench-copy-cell {
746
+ display: grid;
747
+ gap: 3px;
748
+ }
749
+
750
+ .di-library-workbench-token-cell strong {
751
+ min-width: 0;
752
+ color: #111827;
753
+ font-size: 13px;
754
+ font-weight: 900;
755
+ overflow: hidden;
756
+ text-overflow: ellipsis;
757
+ white-space: nowrap;
758
+ }
759
+
760
+ .di-library-workbench-token-cell small,
761
+ .di-library-workbench-copy-cell span {
762
+ min-width: 0;
763
+ color: #64748b;
764
+ font-size: 11px;
765
+ font-weight: 750;
766
+ overflow: hidden;
767
+ text-overflow: ellipsis;
768
+ white-space: nowrap;
769
+ }
770
+
771
+ .di-library-workbench-copy-cell code {
772
+ min-width: 0;
773
+ color: #334155;
774
+ font-size: 12px;
775
+ font-weight: 850;
776
+ overflow: hidden;
777
+ text-overflow: ellipsis;
778
+ white-space: nowrap;
779
+ }
780
+
781
+ .di-library-workbench-status,
782
+ .di-library-workbench-count {
783
+ justify-self: start;
784
+ color: #64748b;
785
+ font-size: 11px;
786
+ font-weight: 850;
787
+ }
788
+
789
+ .di-library-workbench-count {
790
+ width: 44px;
791
+ height: 30px;
792
+ border: 1px solid #e5e7eb;
793
+ border-radius: 8px;
794
+ background: #fff;
795
+ cursor: pointer;
796
+ }
797
+
798
+ .di-library-workbench-count:hover,
799
+ .di-library-workbench-count:focus-visible {
800
+ border-color: #c4b5fd;
801
+ color: #7c3aed;
802
+ outline: none;
803
+ }
804
+
805
+ .di-library-change-index {
806
+ display: inline-flex;
807
+ width: 26px;
808
+ height: 26px;
809
+ align-items: center;
810
+ justify-content: center;
811
+ border-radius: 9px;
812
+ background: #ede9fe;
813
+ color: #7c3aed;
814
+ font-size: 11px;
815
+ font-weight: 950;
816
+ }
817
+
818
+ .di-library-workbench-actions,
819
+ .di-library-detail-actions {
820
+ display: flex;
821
+ align-items: center;
822
+ gap: 6px;
823
+ min-width: 0;
824
+ flex-wrap: wrap;
825
+ }
826
+
827
+ .di-library-workbench-actions button,
828
+ .di-library-detail-actions button {
829
+ height: 28px;
830
+ padding: 0 8px;
831
+ border: 1px solid #e5e7eb;
832
+ border-radius: 8px;
833
+ background: #fff;
834
+ color: #334155;
835
+ font-family: inherit;
836
+ font-size: 11px;
837
+ font-weight: 850;
838
+ cursor: pointer;
839
+ }
840
+
841
+ .di-library-workbench-actions button:hover,
842
+ .di-library-workbench-actions button:focus-visible,
843
+ .di-library-detail-actions button:hover,
844
+ .di-library-detail-actions button:focus-visible {
845
+ border-color: #c4b5fd;
846
+ background: #fff;
847
+ color: #7c3aed;
848
+ outline: none;
849
+ }
850
+
851
+ .di-library-component-preview-grid {
852
+ min-height: 0;
853
+ overflow: auto;
854
+ display: grid;
855
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
856
+ align-content: start;
857
+ gap: 12px;
858
+ padding-right: 2px;
859
+ }
860
+
861
+ .di-library-component-preview-card {
862
+ min-width: 0;
863
+ display: grid;
864
+ gap: 10px;
865
+ padding: 12px;
866
+ border: 1px solid #eef2f7;
867
+ border-radius: 14px;
868
+ background: #f8fafc;
869
+ color: #111827;
870
+ cursor: pointer;
871
+ box-sizing: border-box;
872
+ }
873
+
874
+ .di-library-component-preview-card:hover,
875
+ .di-library-component-preview-card:focus-visible,
876
+ .di-library-component-preview-card--selected {
877
+ border-color: #c4b5fd;
878
+ background: #faf5ff;
879
+ outline: none;
880
+ }
881
+
882
+ .di-library-component-preview-head {
883
+ min-width: 0;
884
+ display: flex;
885
+ align-items: flex-start;
886
+ justify-content: space-between;
887
+ gap: 10px;
888
+ }
889
+
890
+ .di-library-component-preview-head div {
891
+ min-width: 0;
892
+ display: grid;
893
+ gap: 3px;
894
+ }
895
+
896
+ .di-library-component-preview-head span {
897
+ color: #94a3b8;
898
+ font-size: 10px;
899
+ font-weight: 900;
900
+ line-height: 1.2;
901
+ }
902
+
903
+ .di-library-component-preview-head strong {
904
+ min-width: 0;
905
+ color: #111827;
906
+ font-size: 15px;
907
+ font-weight: 950;
908
+ line-height: 1.2;
909
+ overflow: hidden;
910
+ text-overflow: ellipsis;
911
+ white-space: nowrap;
912
+ }
913
+
914
+ .di-library-component-preview-head small {
915
+ flex: 0 0 auto;
916
+ max-width: 96px;
917
+ padding: 4px 7px;
918
+ border-radius: 999px;
919
+ background: #fff;
920
+ color: #64748b;
921
+ font-size: 10px;
922
+ font-weight: 850;
923
+ line-height: 1;
924
+ overflow: hidden;
925
+ text-overflow: ellipsis;
926
+ white-space: nowrap;
927
+ }
928
+
929
+ .di-library-component-preview-stage {
930
+ min-height: 128px;
931
+ display: grid;
932
+ place-items: center;
933
+ padding: 16px;
934
+ border: 1px solid #eef2f7;
935
+ border-radius: 12px;
936
+ background: #fff;
937
+ box-sizing: border-box;
938
+ }
939
+
940
+ .di-library-component-preview-copy {
941
+ min-width: 0;
942
+ display: grid;
943
+ gap: 4px;
944
+ }
945
+
946
+ .di-library-component-preview-copy span {
947
+ color: #7c3aed;
948
+ font-size: 11px;
949
+ font-weight: 950;
950
+ }
951
+
952
+ .di-library-component-preview-copy p {
953
+ min-width: 0;
954
+ margin: 0;
955
+ color: #334155;
956
+ font-size: 12px;
957
+ font-weight: 800;
958
+ line-height: 1.35;
959
+ overflow: hidden;
960
+ text-overflow: ellipsis;
961
+ white-space: nowrap;
962
+ }
963
+
964
+ .di-library-component-preview-copy code {
965
+ min-width: 0;
966
+ color: #64748b;
967
+ font-size: 11px;
968
+ font-weight: 800;
969
+ overflow: hidden;
970
+ text-overflow: ellipsis;
971
+ white-space: nowrap;
972
+ }
973
+
974
+ .di-library-component-preview-actions {
975
+ display: flex;
976
+ align-items: center;
977
+ gap: 6px;
978
+ flex-wrap: wrap;
979
+ }
980
+
981
+ .di-library-component-preview-actions button {
982
+ height: 28px;
983
+ padding: 0 8px;
984
+ border: 1px solid #e5e7eb;
985
+ border-radius: 8px;
986
+ background: #fff;
987
+ color: #334155;
988
+ font-family: inherit;
989
+ font-size: 11px;
990
+ font-weight: 850;
991
+ cursor: pointer;
992
+ }
993
+
994
+ .di-library-component-preview-actions button:hover,
995
+ .di-library-component-preview-actions button:focus-visible {
996
+ border-color: #c4b5fd;
997
+ color: #7c3aed;
998
+ outline: none;
999
+ }
1000
+
1001
+ .di-library-real-preview {
1002
+ width: 100%;
1003
+ min-width: 0;
1004
+ display: grid;
1005
+ gap: 10px;
1006
+ }
1007
+
1008
+ .di-library-real-preview-group {
1009
+ min-width: 0;
1010
+ display: grid;
1011
+ gap: 6px;
1012
+ }
1013
+
1014
+ .di-library-real-preview-group-title {
1015
+ color: #94a3b8;
1016
+ font-size: 10px;
1017
+ font-weight: 900;
1018
+ line-height: 1.2;
1019
+ }
1020
+
1021
+ .di-library-real-preview-grid {
1022
+ min-width: 0;
1023
+ display: grid;
1024
+ grid-template-columns: repeat(auto-fit, minmax(112px, max-content));
1025
+ align-items: start;
1026
+ gap: 8px;
1027
+ }
1028
+
1029
+ .di-library-real-preview--detail .di-library-real-preview-grid {
1030
+ grid-template-columns: repeat(auto-fit, minmax(132px, max-content));
1031
+ }
1032
+
1033
+ .di-library-real-preview-item {
1034
+ min-width: 0;
1035
+ display: grid;
1036
+ gap: 6px;
1037
+ padding: 6px;
1038
+ border: 1px solid transparent;
1039
+ border-radius: 10px;
1040
+ cursor: pointer;
1041
+ box-sizing: border-box;
1042
+ }
1043
+
1044
+ .di-library-real-preview-item:hover,
1045
+ .di-library-real-preview-item:focus-visible,
1046
+ .di-library-real-preview-item--selected {
1047
+ border-color: #c4b5fd;
1048
+ background: #faf5ff;
1049
+ outline: none;
1050
+ }
1051
+
1052
+ .di-library-real-preview-item--selected {
1053
+ box-shadow: inset 0 0 0 1px #8b5cf6;
1054
+ }
1055
+
1056
+ .di-library-real-preview-slot {
1057
+ min-width: 0;
1058
+ min-height: 44px;
1059
+ display: flex;
1060
+ align-items: center;
1061
+ justify-content: flex-start;
1062
+ }
1063
+
1064
+ .di-library-real-preview-meta {
1065
+ min-width: 0;
1066
+ display: grid;
1067
+ gap: 2px;
1068
+ }
1069
+
1070
+ .di-library-real-preview-meta span {
1071
+ color: #334155;
1072
+ font-size: 10px;
1073
+ font-weight: 850;
1074
+ line-height: 1.2;
1075
+ }
1076
+
1077
+ .di-library-real-preview-meta small {
1078
+ max-width: 128px;
1079
+ color: #94a3b8;
1080
+ font-size: 9px;
1081
+ font-weight: 800;
1082
+ line-height: 1.2;
1083
+ overflow: hidden;
1084
+ text-overflow: ellipsis;
1085
+ white-space: nowrap;
1086
+ }
1087
+
1088
+ .di-library-preview-matrix {
1089
+ width: 100%;
1090
+ min-width: 0;
1091
+ display: grid;
1092
+ gap: 8px;
1093
+ overflow-x: auto;
1094
+ padding-bottom: 1px;
1095
+ overscroll-behavior-x: contain;
1096
+ }
1097
+
1098
+ .di-library-preview-matrix-head,
1099
+ .di-library-preview-matrix-row {
1100
+ display: grid;
1101
+ grid-template-columns: var(--di-library-matrix-columns);
1102
+ align-items: center;
1103
+ gap: 8px;
1104
+ min-width: max-content;
1105
+ }
1106
+
1107
+ .di-library-preview-matrix-head span,
1108
+ .di-library-preview-matrix-label {
1109
+ color: #94a3b8;
1110
+ font-size: 10px;
1111
+ font-weight: 900;
1112
+ line-height: 1.2;
1113
+ white-space: nowrap;
1114
+ }
1115
+
1116
+ .di-library-preview-matrix-label {
1117
+ color: #64748b;
1118
+ }
1119
+
1120
+ .di-library-preview-matrix--detail {
1121
+ gap: 10px;
1122
+ }
1123
+
1124
+ .di-library-preview-matrix--detail .di-library-preview-matrix-head,
1125
+ .di-library-preview-matrix--detail .di-library-preview-matrix-row {
1126
+ gap: 10px;
1127
+ }
1128
+
1129
+ .di-library-preview-button {
1130
+ display: inline-flex;
1131
+ align-items: center;
1132
+ justify-content: center;
1133
+ border-radius: 9px;
1134
+ font-size: 12px;
1135
+ font-weight: 900;
1136
+ line-height: 1;
1137
+ white-space: nowrap;
1138
+ box-sizing: border-box;
1139
+ }
1140
+
1141
+ .di-library-preview-button--primary {
1142
+ background: #7c3aed;
1143
+ color: #fff;
1144
+ }
1145
+
1146
+ .di-library-preview-button--secondary {
1147
+ border: 1px solid #e2e8f0;
1148
+ background: #fff;
1149
+ color: #334155;
1150
+ }
1151
+
1152
+ .di-library-preview-button--ghost {
1153
+ border: 1px solid #c4b5fd;
1154
+ background: #fff;
1155
+ color: #7c3aed;
1156
+ }
1157
+
1158
+ .di-library-preview-button--text {
1159
+ color: #7c3aed;
1160
+ }
1161
+
1162
+ .di-library-preview-badge {
1163
+ display: inline-flex;
1164
+ align-items: center;
1165
+ justify-content: center;
1166
+ min-height: 26px;
1167
+ padding: 0 10px;
1168
+ border-radius: 8px;
1169
+ font-size: 12px;
1170
+ font-weight: 900;
1171
+ white-space: nowrap;
1172
+ box-sizing: border-box;
1173
+ }
1174
+
1175
+ .di-library-preview-badge--default {
1176
+ background: #f1f5f9;
1177
+ color: #64748b;
1178
+ }
1179
+
1180
+ .di-library-preview-badge--progress {
1181
+ background: #dbeafe;
1182
+ color: #2563eb;
1183
+ }
1184
+
1185
+ .di-library-preview-badge--success {
1186
+ background: #dcfce7;
1187
+ color: #16a34a;
1188
+ }
1189
+
1190
+ .di-library-preview-badge--warning {
1191
+ background: #fef3c7;
1192
+ color: #d97706;
1193
+ }
1194
+
1195
+ .di-library-preview-badge--danger {
1196
+ background: #fee2e2;
1197
+ color: #dc2626;
1198
+ }
1199
+
1200
+ .di-library-preview-card-gallery {
1201
+ width: 100%;
1202
+ min-width: 0;
1203
+ display: grid;
1204
+ grid-template-columns: repeat(auto-fit, minmax(156px, 1fr));
1205
+ gap: 10px;
1206
+ }
1207
+
1208
+ .di-library-preview-card-gallery--detail {
1209
+ grid-template-columns: 1fr;
1210
+ }
1211
+
1212
+ .di-library-preview-card-sample {
1213
+ min-width: 0;
1214
+ display: grid;
1215
+ gap: 8px;
1216
+ padding: 14px;
1217
+ border: 1px solid #e2e8f0;
1218
+ border-radius: 12px;
1219
+ background: #fff;
1220
+ box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
1221
+ box-sizing: border-box;
1222
+ }
1223
+
1224
+ .di-library-preview-card-sample span {
1225
+ justify-self: start;
1226
+ padding: 4px 8px;
1227
+ border-radius: 8px;
1228
+ background: #dbeafe;
1229
+ color: #2563eb;
1230
+ font-size: 11px;
1231
+ font-weight: 900;
1232
+ }
1233
+
1234
+ .di-library-preview-card-sample strong {
1235
+ color: #111827;
1236
+ font-size: 15px;
1237
+ font-weight: 950;
1238
+ }
1239
+
1240
+ .di-library-preview-card-sample p {
1241
+ margin: 0;
1242
+ color: #64748b;
1243
+ font-size: 12px;
1244
+ font-weight: 750;
1245
+ line-height: 1.4;
1246
+ }
1247
+
1248
+ .di-library-preview-card-sample--compact {
1249
+ gap: 5px;
1250
+ padding: 10px 12px;
1251
+ }
1252
+
1253
+ .di-library-preview-card-sample--floating {
1254
+ box-shadow: 0 22px 48px rgba(15, 23, 42, 0.16);
1255
+ }
1256
+
1257
+ .di-library-preview-card-sample--emphasis {
1258
+ border-color: #c4b5fd;
1259
+ background: #faf5ff;
1260
+ }
1261
+
1262
+ .di-library-preview-form-sample {
1263
+ width: min(100%, 240px);
1264
+ display: grid;
1265
+ grid-template-columns: minmax(0, 1fr) max-content;
1266
+ gap: 8px;
1267
+ align-items: center;
1268
+ }
1269
+
1270
+ .di-library-preview-form-sample span {
1271
+ grid-column: 1 / -1;
1272
+ color: #64748b;
1273
+ font-size: 11px;
1274
+ font-weight: 850;
1275
+ }
1276
+
1277
+ .di-library-preview-form-sample div {
1278
+ min-width: 0;
1279
+ height: 34px;
1280
+ display: flex;
1281
+ align-items: center;
1282
+ padding: 0 10px;
1283
+ border: 1px solid #e2e8f0;
1284
+ border-radius: 9px;
1285
+ color: #94a3b8;
1286
+ font-size: 12px;
1287
+ font-weight: 800;
1288
+ }
1289
+
1290
+ .di-library-preview-form-sample strong {
1291
+ height: 34px;
1292
+ display: inline-flex;
1293
+ align-items: center;
1294
+ justify-content: center;
1295
+ padding: 0 12px;
1296
+ border-radius: 9px;
1297
+ background: #7c3aed;
1298
+ color: #fff;
1299
+ font-size: 12px;
1300
+ font-weight: 900;
1301
+ }
1302
+
1303
+ .di-library-preview-icon-cell {
1304
+ width: 36px;
1305
+ height: 36px;
1306
+ display: inline-flex;
1307
+ align-items: center;
1308
+ justify-content: center;
1309
+ border: 1px solid #e2e8f0;
1310
+ border-radius: 10px;
1311
+ background: #fff;
1312
+ }
1313
+
1314
+ .di-library-preview-generic {
1315
+ width: min(100%, 220px);
1316
+ display: grid;
1317
+ justify-items: center;
1318
+ gap: 8px;
1319
+ color: #64748b;
1320
+ }
1321
+
1322
+ .di-library-preview-generic strong {
1323
+ color: #111827;
1324
+ font-size: 14px;
1325
+ font-weight: 950;
1326
+ }
1327
+
1328
+ .di-library-preview-generic span {
1329
+ max-width: 100%;
1330
+ color: #94a3b8;
1331
+ font-size: 11px;
1332
+ font-weight: 800;
1333
+ overflow: hidden;
1334
+ text-overflow: ellipsis;
1335
+ white-space: nowrap;
1336
+ }
1337
+
1338
+ .di-library-workbench-empty {
1339
+ padding: 18px;
1340
+ border-radius: 12px;
1341
+ background: #f8fafc;
1342
+ color: #64748b;
1343
+ font-size: 12px;
1344
+ font-weight: 750;
1345
+ text-align: center;
1346
+ }
1347
+
1348
+ .di-library-edit-panel,
1349
+ .di-library-import-panel,
1350
+ .di-library-detail-card {
1351
+ display: grid;
1352
+ gap: 12px;
1353
+ min-width: 0;
1354
+ }
1355
+
1356
+ .di-library-edit-head {
1357
+ display: flex;
1358
+ align-items: center;
1359
+ justify-content: space-between;
1360
+ gap: 8px;
1361
+ }
1362
+
1363
+ .di-library-edit-head strong,
1364
+ .di-library-detail-card h3 {
1365
+ margin: 0;
1366
+ color: #111827;
1367
+ font-size: 16px;
1368
+ font-weight: 950;
1369
+ }
1370
+
1371
+ .di-library-edit-panel label {
1372
+ display: grid;
1373
+ gap: 6px;
1374
+ }
1375
+
1376
+ .di-library-import-option {
1377
+ display: grid;
1378
+ grid-template-columns: 22px minmax(0, 1fr) max-content;
1379
+ align-items: start;
1380
+ column-gap: 12px;
1381
+ row-gap: 8px;
1382
+ min-width: 0;
1383
+ padding: 14px;
1384
+ border: 1px solid #eef2f7;
1385
+ border-radius: 10px;
1386
+ background: #f8fafc;
1387
+ }
1388
+
1389
+ .di-library-import-steps {
1390
+ display: flex;
1391
+ flex-wrap: wrap;
1392
+ gap: 6px;
1393
+ }
1394
+
1395
+ .di-library-import-steps span {
1396
+ height: 24px;
1397
+ display: inline-flex;
1398
+ align-items: center;
1399
+ padding: 0 8px;
1400
+ border-radius: 999px;
1401
+ background: #f8fafc;
1402
+ color: #64748b;
1403
+ font-size: 10px;
1404
+ font-weight: 800;
1405
+ }
1406
+
1407
+ .di-library-import-option--primary {
1408
+ border-color: #ede9fe;
1409
+ background: #faf5ff;
1410
+ }
1411
+
1412
+ .di-library-import-option > div {
1413
+ min-width: 0;
1414
+ display: contents;
1415
+ }
1416
+
1417
+ .di-library-import-option svg {
1418
+ grid-column: 1;
1419
+ grid-row: 1;
1420
+ align-self: center;
1421
+ justify-self: center;
1422
+ color: #7c3aed;
1423
+ }
1424
+
1425
+ .di-library-import-option strong {
1426
+ grid-column: 2;
1427
+ grid-row: 1;
1428
+ align-self: center;
1429
+ min-width: 0;
1430
+ color: #111827;
1431
+ font-size: 13px;
1432
+ font-weight: 900;
1433
+ overflow: hidden;
1434
+ text-overflow: ellipsis;
1435
+ white-space: nowrap;
1436
+ }
1437
+
1438
+ .di-library-import-option span {
1439
+ grid-column: 2;
1440
+ grid-row: 2;
1441
+ min-width: 0;
1442
+ color: #64748b;
1443
+ font-size: 11px;
1444
+ font-weight: 700;
1445
+ line-height: 1.4;
1446
+ }
1447
+
1448
+ .di-library-import-option button,
1449
+ .di-library-import-option input::file-selector-button {
1450
+ grid-column: 3;
1451
+ grid-row: 1;
1452
+ align-self: center;
1453
+ justify-self: end;
1454
+ min-width: 72px;
1455
+ height: 28px;
1456
+ padding: 0 9px;
1457
+ border: 1px solid #e5e7eb;
1458
+ border-radius: 8px;
1459
+ background: #fff;
1460
+ color: #334155;
1461
+ font-family: inherit;
1462
+ font-size: 10px;
1463
+ font-weight: 850;
1464
+ cursor: pointer;
1465
+ }
1466
+
1467
+ .di-library-import-option button:hover,
1468
+ .di-library-import-option button:focus-visible,
1469
+ .di-library-import-option input::file-selector-button:hover {
1470
+ border-color: #c4b5fd;
1471
+ color: #7c3aed;
1472
+ outline: none;
1473
+ }
1474
+
1475
+ .di-library-import-option input {
1476
+ grid-column: 3;
1477
+ grid-row: 1;
1478
+ align-self: center;
1479
+ justify-self: end;
1480
+ width: 78px;
1481
+ max-width: 78px;
1482
+ color: transparent;
1483
+ }
1484
+
1485
+ .di-library-import-format {
1486
+ margin: 0;
1487
+ padding: 0;
1488
+ border-radius: 9px;
1489
+ background: #f8fafc;
1490
+ color: #475569;
1491
+ overflow: auto;
1492
+ }
1493
+
1494
+ .di-library-import-format summary {
1495
+ min-height: 32px;
1496
+ display: flex;
1497
+ align-items: center;
1498
+ padding: 0 10px;
1499
+ color: #64748b;
1500
+ font-size: 11px;
1501
+ font-weight: 850;
1502
+ cursor: pointer;
1503
+ }
1504
+
1505
+ .di-library-import-format pre {
1506
+ margin: 0;
1507
+ padding: 10px;
1508
+ border-top: 1px solid #e5e7eb;
1509
+ color: #475569;
1510
+ font-size: 10px;
1511
+ line-height: 1.5;
1512
+ white-space: pre-wrap;
1513
+ }
1514
+
1515
+ .di-library-import-msg {
1516
+ padding: 8px 10px;
1517
+ border-radius: 8px;
1518
+ background: #ede9fe;
1519
+ color: #7c3aed;
1520
+ font-size: 11px;
1521
+ font-weight: 800;
1522
+ }
1523
+
1524
+ .di-library-detail-preview {
1525
+ display: grid;
1526
+ grid-template-columns: max-content minmax(0, 1fr);
1527
+ align-items: center;
1528
+ gap: 10px;
1529
+ padding: 10px;
1530
+ border-radius: 12px;
1531
+ background: #fff;
1532
+ border: 1px solid #eef2f7;
1533
+ }
1534
+
1535
+ .di-library-detail-preview code {
1536
+ min-width: 0;
1537
+ color: #334155;
1538
+ font-size: 12px;
1539
+ font-weight: 850;
1540
+ overflow: hidden;
1541
+ text-overflow: ellipsis;
1542
+ white-space: nowrap;
1543
+ }
1544
+
1545
+ .di-library-detail-preview--component {
1546
+ display: block;
1547
+ padding: 0;
1548
+ overflow-x: auto;
1549
+ overflow-y: hidden;
1550
+ overscroll-behavior-x: contain;
1551
+ }
1552
+
1553
+ .di-library-detail-preview--component .di-library-component-preview-stage {
1554
+ min-height: 112px;
1555
+ border: 0;
1556
+ border-radius: 12px;
1557
+ }
1558
+
1559
+ .di-library-spec-preview {
1560
+ min-width: 0;
1561
+ display: grid;
1562
+ gap: 8px;
1563
+ padding: 14px;
1564
+ border-radius: 12px;
1565
+ background: #fff;
1566
+ box-sizing: border-box;
1567
+ }
1568
+
1569
+ .di-library-spec-preview-slot {
1570
+ min-width: 0;
1571
+ min-height: 56px;
1572
+ display: flex;
1573
+ align-items: center;
1574
+ }
1575
+
1576
+ .di-library-spec-preview-meta {
1577
+ min-width: 0;
1578
+ display: grid;
1579
+ gap: 3px;
1580
+ }
1581
+
1582
+ .di-library-spec-preview-meta span {
1583
+ color: #111827;
1584
+ font-size: 12px;
1585
+ font-weight: 900;
1586
+ line-height: 1.2;
1587
+ }
1588
+
1589
+ .di-library-spec-preview-meta small {
1590
+ color: #94a3b8;
1591
+ font-size: 10px;
1592
+ font-weight: 850;
1593
+ line-height: 1.2;
1594
+ overflow-wrap: anywhere;
1595
+ }
1596
+
1597
+ .di-library-spec-pills {
1598
+ min-width: 0;
1599
+ display: flex;
1600
+ align-items: center;
1601
+ gap: 6px;
1602
+ flex-wrap: wrap;
1603
+ }
1604
+
1605
+ .di-library-spec-pills span {
1606
+ display: inline-flex;
1607
+ min-height: 24px;
1608
+ align-items: center;
1609
+ padding: 0 8px;
1610
+ border: 1px solid #ddd6fe;
1611
+ border-radius: 999px;
1612
+ background: #f5f0ff;
1613
+ color: #7c3aed;
1614
+ font-size: 10px;
1615
+ font-weight: 900;
1616
+ }
1617
+
1618
+ .di-library-detail-card dl {
1619
+ display: grid;
1620
+ gap: 8px;
1621
+ margin: 0;
1622
+ }
1623
+
1624
+ .di-library-detail-card dl div {
1625
+ display: grid;
1626
+ gap: 4px;
1627
+ padding: 9px 10px;
1628
+ border-radius: 10px;
1629
+ background: #fff;
1630
+ border: 1px solid #eef2f7;
1631
+ }
1632
+
1633
+ .di-library-detail-card dt {
1634
+ color: #94a3b8;
1635
+ font-size: 10px;
1636
+ font-weight: 850;
1637
+ }
1638
+
1639
+ .di-library-detail-card dd {
1640
+ margin: 0;
1641
+ color: #334155;
1642
+ font-size: 12px;
1643
+ font-weight: 800;
1644
+ line-height: 1.35;
1645
+ overflow-wrap: anywhere;
1646
+ }
1647
+
1648
+ .di-library-basket-card {
1649
+ display: grid;
1650
+ gap: 10px;
1651
+ margin-top: 16px;
1652
+ padding: 14px;
1653
+ border: 1px solid #ddd6fe;
1654
+ border-radius: 14px;
1655
+ background: #f5f0ff;
1656
+ }
1657
+
1658
+ .di-library-basket-card div {
1659
+ display: flex;
1660
+ align-items: center;
1661
+ justify-content: space-between;
1662
+ gap: 10px;
1663
+ }
1664
+
1665
+ .di-library-basket-card span {
1666
+ color: #7c3aed;
1667
+ font-size: 12px;
1668
+ font-weight: 900;
1669
+ }
1670
+
1671
+ .di-library-basket-card strong {
1672
+ color: #111827;
1673
+ font-size: 24px;
1674
+ font-weight: 950;
1675
+ line-height: 1;
1676
+ }
1677
+
1678
+ .di-library-basket-card p {
1679
+ margin: 0;
1680
+ color: #64748b;
1681
+ font-size: 12px;
1682
+ font-weight: 750;
1683
+ line-height: 1.4;
1684
+ }
1685
+
1686
+ @media (max-width: 720px) {
1687
+ .di-library-workbench-layer {
1688
+ padding: 0;
1689
+ }
1690
+
1691
+ .di-library-workbench-grid {
1692
+ grid-template-columns: 1fr;
1693
+ }
1694
+
1695
+ .di-library-workbench-nav,
1696
+ .di-library-workbench-detail {
1697
+ max-height: 220px;
1698
+ border: 0;
1699
+ border-bottom: 1px solid #eef2f7;
1700
+ }
1701
+
1702
+ .di-library-workbench-detail {
1703
+ border-top: 1px solid #eef2f7;
1704
+ }
1705
+ }
1706
+
1707
+ .di-library-tabs {
1708
+ display: grid;
1709
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1710
+ gap: var(--di-control-gap-x);
1711
+ flex: 0 0 auto;
1712
+ padding: 3px;
1713
+ border-radius: 10px;
1714
+ background: #f8fafc;
1715
+ }
1716
+
1717
+ .di-library-tab {
1718
+ height: 30px;
1719
+ border: 0;
1720
+ border-radius: 8px;
1721
+ background: transparent;
1722
+ color: #64748b;
1723
+ font-family: inherit;
1724
+ font-size: 12px;
1725
+ font-weight: 850;
1726
+ cursor: pointer;
1727
+ }
1728
+
1729
+ .di-library-tab:hover,
1730
+ .di-library-tab:focus-visible {
1731
+ color: #7c3aed;
1732
+ outline: none;
1733
+ }
1734
+
1735
+ .di-library-tab--active {
1736
+ background: #fff;
1737
+ color: #7c3aed;
1738
+ box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
1739
+ }
1740
+
1741
+ .di-library-content {
1742
+ display: flex;
1743
+ flex-direction: column;
1744
+ gap: 10px;
1745
+ min-height: 0;
1746
+ flex: 1 1 auto;
1747
+ }
1748
+
1749
+ .di-library-tools {
1750
+ display: grid;
1751
+ gap: 8px;
1752
+ flex: 0 0 auto;
1753
+ }
1754
+
1755
+ .di-library-search {
1756
+ display: grid;
1757
+ grid-template-columns: max-content minmax(0, 1fr);
1758
+ align-items: center;
1759
+ gap: var(--di-field-label-gap);
1760
+ min-height: 40px;
1761
+ padding: var(--di-tool-row-padding-block) var(--di-tool-row-padding-inline);
1762
+ border-radius: 10px;
1763
+ background: #f8fafc;
1764
+ }
1765
+
1766
+ .di-library-search span {
1767
+ color: #94a3b8;
1768
+ font-size: 10px;
1769
+ font-weight: 850;
1770
+ }
1771
+
1772
+ .di-library-search input {
1773
+ width: 100%;
1774
+ min-width: 0;
1775
+ height: 30px;
1776
+ border: 1px solid #e5e7eb;
1777
+ border-radius: 7px;
1778
+ background: #fff;
1779
+ color: #111827;
1780
+ padding: 0 10px;
1781
+ font-family: inherit;
1782
+ font-size: 12px;
1783
+ font-weight: 750;
1784
+ outline: none;
1785
+ }
1786
+
1787
+ .di-library-search input:focus {
1788
+ border-color: #c4b5fd;
1789
+ box-shadow: 0 0 0 1px #c4b5fd;
1790
+ }
1791
+
1792
+ .di-library-categories {
1793
+ display: flex;
1794
+ gap: 6px;
1795
+ min-width: 0;
1796
+ overflow-x: auto;
1797
+ padding-bottom: 1px;
1798
+ }
1799
+
1800
+ .di-library-category {
1801
+ flex: 0 0 auto;
1802
+ height: 28px;
1803
+ padding: 0 10px;
1804
+ border: 1px solid #e5e7eb;
1805
+ border-radius: 999px;
1806
+ background: #fff;
1807
+ color: #64748b;
1808
+ font-family: inherit;
1809
+ font-size: 11px;
1810
+ font-weight: 800;
1811
+ cursor: pointer;
1812
+ }
1813
+
1814
+ .di-library-category-count {
1815
+ margin-left: 4px;
1816
+ color: #94a3b8;
1817
+ font-size: 10px;
1818
+ font-weight: 850;
1819
+ }
1820
+
1821
+ .di-library-category:hover,
1822
+ .di-library-category:focus-visible,
1823
+ .di-library-category--active {
1824
+ border-color: #c4b5fd;
1825
+ background: #faf5ff;
1826
+ color: #7c3aed;
1827
+ outline: none;
1828
+ }
1829
+
1830
+ .di-library-summary {
1831
+ display: grid;
1832
+ grid-template-columns: max-content max-content minmax(0, 1fr);
1833
+ align-items: center;
1834
+ gap: 6px;
1835
+ min-height: 32px;
1836
+ flex: 0 0 auto;
1837
+ padding: 0 2px;
1838
+ }
1839
+
1840
+ .di-library-summary strong {
1841
+ color: #111827;
1842
+ font-size: 18px;
1843
+ font-weight: 900;
1844
+ line-height: 1;
1845
+ }
1846
+
1847
+ .di-library-summary span,
1848
+ .di-library-summary small {
1849
+ color: #64748b;
1850
+ font-size: 11px;
1851
+ font-weight: 750;
1852
+ }
1853
+
1854
+ .di-library-summary small {
1855
+ min-width: 0;
1856
+ overflow: hidden;
1857
+ text-overflow: ellipsis;
1858
+ white-space: nowrap;
1859
+ }
1860
+
1861
+ .di-library-list {
1862
+ display: grid;
1863
+ gap: 8px;
1864
+ min-height: 0;
1865
+ overflow-y: auto;
1866
+ overscroll-behavior: contain;
1867
+ padding-right: 2px;
1868
+ }
1869
+
1870
+ .di-library-token-row,
1871
+ .di-library-component-row {
1872
+ min-width: 0;
1873
+ display: grid;
1874
+ align-items: center;
1875
+ gap: var(--di-control-gap-x);
1876
+ padding: 9px 10px;
1877
+ border: 1px solid #f1f5f9;
1878
+ border-radius: 10px;
1879
+ background: #f8fafc;
1880
+ }
1881
+
1882
+ .di-library-token-row {
1883
+ grid-template-columns: 30px minmax(0, 1fr) minmax(74px, max-content) 38px;
1884
+ }
1885
+
1886
+ .di-library-token-preview {
1887
+ width: 30px;
1888
+ height: 30px;
1889
+ border-radius: 8px;
1890
+ border: 1px solid #e2e8f0;
1891
+ background: #fff;
1892
+ box-sizing: border-box;
1893
+ }
1894
+
1895
+ .di-library-token-preview--color,
1896
+ .di-library-token-preview--appearance {
1897
+ background: var(--di-library-preview, #fff);
1898
+ }
1899
+
1900
+ .di-library-token-preview--text {
1901
+ position: relative;
1902
+ background: #fff;
1903
+ }
1904
+
1905
+ .di-library-token-preview--text::after {
1906
+ content: "T";
1907
+ position: absolute;
1908
+ inset: 0;
1909
+ display: grid;
1910
+ place-items: center;
1911
+ color: var(--di-library-preview, #111827);
1912
+ font-size: 16px;
1913
+ font-weight: 900;
1914
+ }
1915
+
1916
+ .di-library-token-preview--space {
1917
+ background:
1918
+ linear-gradient(90deg, transparent 0 7px, #7c3aed 7px 10px, transparent 10px 20px, #7c3aed 20px 23px, transparent 23px),
1919
+ #f8fafc;
1920
+ }
1921
+
1922
+ .di-library-token-preview--radius {
1923
+ border-color: #c4b5fd;
1924
+ border-radius: 12px 4px 12px 4px;
1925
+ }
1926
+
1927
+ .di-library-token-preview--shadow {
1928
+ background: #fff;
1929
+ box-shadow: var(--di-library-preview, 0 8px 20px rgba(15, 23, 42, 0.16));
1930
+ }
1931
+
1932
+ .di-library-token-main,
1933
+ .di-library-component-main {
1934
+ min-width: 0;
1935
+ display: grid;
1936
+ gap: 3px;
1937
+ }
1938
+
1939
+ .di-library-token-name,
1940
+ .di-library-component-title {
1941
+ min-width: 0;
1942
+ color: #111827;
1943
+ font-size: 12px;
1944
+ font-weight: 850;
1945
+ overflow: hidden;
1946
+ text-overflow: ellipsis;
1947
+ white-space: nowrap;
1948
+ }
1949
+
1950
+ .di-library-token-meta,
1951
+ .di-library-component-summary {
1952
+ min-width: 0;
1953
+ color: #64748b;
1954
+ font-size: 10px;
1955
+ font-weight: 700;
1956
+ line-height: 1.25;
1957
+ overflow: hidden;
1958
+ text-overflow: ellipsis;
1959
+ white-space: nowrap;
1960
+ }
1961
+
1962
+ .di-library-token-meta {
1963
+ display: flex;
1964
+ gap: 6px;
1965
+ }
1966
+
1967
+ .di-library-token-meta span {
1968
+ min-width: 0;
1969
+ overflow: hidden;
1970
+ text-overflow: ellipsis;
1971
+ white-space: nowrap;
1972
+ }
1973
+
1974
+ .di-library-token-side {
1975
+ min-width: 0;
1976
+ display: grid;
1977
+ justify-items: end;
1978
+ gap: 2px;
1979
+ }
1980
+
1981
+ .di-library-token-side code {
1982
+ max-width: 120px;
1983
+ color: #334155;
1984
+ font-size: 10px;
1985
+ font-weight: 800;
1986
+ overflow: hidden;
1987
+ text-overflow: ellipsis;
1988
+ white-space: nowrap;
1989
+ }
1990
+
1991
+ .di-library-token-side span,
1992
+ .di-library-token-usage span,
1993
+ .di-library-component-status {
1994
+ color: #94a3b8;
1995
+ font-size: 10px;
1996
+ font-weight: 800;
1997
+ }
1998
+
1999
+ .di-library-token-usage {
2000
+ display: grid;
2001
+ justify-items: center;
2002
+ gap: 1px;
2003
+ min-width: 0;
2004
+ padding: 0;
2005
+ border: 0;
2006
+ background: transparent;
2007
+ font-family: inherit;
2008
+ cursor: pointer;
2009
+ }
2010
+
2011
+ .di-library-token-usage:hover strong,
2012
+ .di-library-token-usage:focus-visible strong {
2013
+ color: #7c3aed;
2014
+ }
2015
+
2016
+ .di-library-token-usage:focus-visible {
2017
+ outline: 2px solid #c4b5fd;
2018
+ outline-offset: 2px;
2019
+ border-radius: 8px;
2020
+ }
2021
+
2022
+ .di-library-token-usage strong {
2023
+ color: #111827;
2024
+ font-size: 12px;
2025
+ font-weight: 900;
2026
+ line-height: 1;
2027
+ }
2028
+
2029
+ .di-library-component-row {
2030
+ grid-template-columns: 30px minmax(0, 1fr) max-content;
2031
+ }
2032
+
2033
+ .di-library-component-icon {
2034
+ width: 30px;
2035
+ height: 30px;
2036
+ display: inline-flex;
2037
+ align-items: center;
2038
+ justify-content: center;
2039
+ border-radius: 8px;
2040
+ background: #faf5ff;
2041
+ color: #7c3aed;
2042
+ }
2043
+
2044
+ .di-library-component-title {
2045
+ display: flex;
2046
+ align-items: baseline;
2047
+ gap: 6px;
2048
+ }
2049
+
2050
+ .di-library-component-title span {
2051
+ color: #94a3b8;
2052
+ font-size: 10px;
2053
+ font-weight: 800;
2054
+ }
2055
+
2056
+ .di-library-component-status {
2057
+ padding: 4px 7px;
2058
+ border-radius: 999px;
2059
+ background: #fff;
2060
+ }
2061
+
2062
+ .di-library-note,
2063
+ .di-library-empty,
2064
+ .di-library-more {
2065
+ padding: 10px;
2066
+ border-radius: 10px;
2067
+ background: #f8fafc;
2068
+ color: #64748b;
2069
+ font-size: 11px;
2070
+ font-weight: 700;
2071
+ line-height: 1.35;
2072
+ }
2073
+
2074
+ .di-library-empty,
2075
+ .di-library-more {
2076
+ text-align: center;
2077
+ }
2078
+
2079
+ .di-component-create-layer {
2080
+ position: absolute;
2081
+ z-index: 4;
2082
+ inset: 48px 0 0;
2083
+ display: flex;
2084
+ min-height: 0;
2085
+ padding: 10px 14px;
2086
+ background: rgba(255, 255, 255, 0.82);
2087
+ backdrop-filter: blur(2px);
2088
+ box-sizing: border-box;
2089
+ overflow: hidden;
2090
+ }
2091
+ .di-component-create-drawer {
2092
+ display: flex;
2093
+ flex-direction: column;
2094
+ gap: 10px;
2095
+ width: 100%;
2096
+ height: 100%;
2097
+ min-height: 0;
2098
+ max-height: 100%;
2099
+ overflow: hidden;
2100
+ padding: 10px;
2101
+ border: 1px solid #e5e7eb;
2102
+ border-radius: 12px;
2103
+ background: #fff;
2104
+ box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14), 0 2px 10px rgba(15, 23, 42, 0.08);
2105
+ box-sizing: border-box;
2106
+ }
2107
+ .di-component-create-head {
2108
+ display: flex;
2109
+ align-items: center;
2110
+ justify-content: space-between;
2111
+ gap: 8px;
2112
+ flex: 0 0 auto;
2113
+ }
2114
+ .di-component-create-title {
2115
+ display: inline-flex;
2116
+ align-items: center;
2117
+ gap: 6px;
2118
+ color: #7c3aed;
2119
+ font-size: 13px;
2120
+ font-weight: 850;
2121
+ }
2122
+ .di-component-create-scroll {
2123
+ min-height: 0;
2124
+ display: grid;
2125
+ gap: 10px;
2126
+ overflow-y: auto;
2127
+ overscroll-behavior: contain;
2128
+ padding-right: 2px;
2129
+ }
2130
+ .di-component-create-summary {
2131
+ display: grid;
2132
+ gap: 6px;
2133
+ min-width: 0;
2134
+ padding: 10px;
2135
+ border-radius: 10px;
2136
+ background: #f8fafc;
2137
+ }
2138
+ .di-component-create-summary div {
2139
+ display: flex;
2140
+ align-items: center;
2141
+ gap: 8px;
2142
+ min-width: 0;
2143
+ }
2144
+ .di-component-create-summary span,
2145
+ .di-component-create-field > span,
2146
+ .di-component-create-rules-title {
2147
+ color: #94a3b8;
2148
+ font-size: 11px;
2149
+ font-weight: 800;
2150
+ white-space: nowrap;
2151
+ }
2152
+ .di-component-create-summary strong {
2153
+ min-width: 0;
2154
+ color: #111827;
2155
+ font-size: 13px;
2156
+ font-weight: 850;
2157
+ overflow: hidden;
2158
+ text-overflow: ellipsis;
2159
+ white-space: nowrap;
2160
+ }
2161
+ .di-component-create-summary code,
2162
+ .di-component-create-summary p {
2163
+ margin: 0;
2164
+ min-width: 0;
2165
+ color: #64748b;
2166
+ font-size: 11px;
2167
+ font-weight: 650;
2168
+ line-height: 1.35;
2169
+ overflow: hidden;
2170
+ text-overflow: ellipsis;
2171
+ white-space: nowrap;
2172
+ }
2173
+ .di-component-create-form {
2174
+ display: grid;
2175
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2176
+ gap: var(--di-control-gap-y);
2177
+ }
2178
+ .di-component-create-field {
2179
+ display: grid;
2180
+ grid-template-columns: max-content minmax(0, 1fr);
2181
+ align-items: center;
2182
+ gap: var(--di-field-label-gap);
2183
+ min-height: 44px;
2184
+ min-width: 0;
2185
+ padding: var(--di-tool-row-padding-block) var(--di-tool-row-padding-inline);
2186
+ border-radius: 10px;
2187
+ background: #f8fafc;
2188
+ }
2189
+ .di-component-create-field > span {
2190
+ color: #9ca3af;
2191
+ font-size: 10px;
2192
+ font-weight: 800;
2193
+ line-height: 1.2;
2194
+ }
2195
+ .di-component-create-field--wide {
2196
+ grid-column: 1 / -1;
2197
+ }
2198
+ .di-component-create-field input {
2199
+ min-width: 0;
2200
+ width: 100%;
2201
+ height: 30px;
2202
+ border: 1px solid #e5e7eb;
2203
+ border-radius: 7px;
2204
+ background: #fff;
2205
+ color: #111827;
2206
+ padding: 0 10px;
2207
+ font: inherit;
2208
+ font-size: 12px;
2209
+ font-weight: 750;
2210
+ outline: none;
2211
+ }
2212
+ .di-component-create-field input:focus {
2213
+ border-color: #c4b5fd;
2214
+ box-shadow: 0 0 0 1px #c4b5fd;
2215
+ }
2216
+ .di-component-type-combobox {
2217
+ position: relative;
2218
+ min-width: 0;
2219
+ }
2220
+ .di-component-type-combobox input {
2221
+ padding-right: 30px;
2222
+ }
2223
+ .di-component-type-trigger {
2224
+ width: 100%;
2225
+ min-width: 0;
2226
+ height: 30px;
2227
+ display: flex;
2228
+ align-items: center;
2229
+ justify-content: space-between;
2230
+ gap: var(--di-control-gap-x);
2231
+ padding: 0 9px;
2232
+ border: 1px solid #e5e7eb;
2233
+ border-radius: 7px;
2234
+ background: #fff;
2235
+ color: #111827;
2236
+ font-family: inherit;
2237
+ cursor: pointer;
2238
+ }
2239
+ .di-component-type-trigger:hover,
2240
+ .di-component-type-trigger[aria-expanded="true"] {
2241
+ border-color: #c4b5fd;
2242
+ box-shadow: 0 0 0 1px #c4b5fd;
2243
+ }
2244
+ .di-component-create-field .di-component-type-trigger-value {
2245
+ min-width: 0;
2246
+ color: #111827;
2247
+ font-size: 12px;
2248
+ font-weight: 750;
2249
+ overflow: hidden;
2250
+ text-overflow: ellipsis;
2251
+ white-space: nowrap;
2252
+ }
2253
+ .di-component-type-trigger svg {
2254
+ color: #94a3b8;
2255
+ flex-shrink: 0;
2256
+ }
2257
+ .di-component-type-toggle {
2258
+ position: absolute;
2259
+ top: 4px;
2260
+ right: 4px;
2261
+ width: 22px;
2262
+ height: 22px;
2263
+ display: inline-flex;
2264
+ align-items: center;
2265
+ justify-content: center;
2266
+ border: 0;
2267
+ border-radius: 6px;
2268
+ background: transparent;
2269
+ color: #94a3b8;
2270
+ cursor: pointer;
2271
+ }
2272
+ .di-component-type-toggle:hover {
2273
+ background: #f5f3ff;
2274
+ color: #7c3aed;
2275
+ }
2276
+ .di-component-create-existing {
2277
+ grid-column: 1 / -1;
2278
+ display: grid;
2279
+ gap: var(--di-control-gap-y);
2280
+ padding: var(--di-tool-row-padding-block) var(--di-tool-row-padding-inline);
2281
+ border: 1px solid #ede9fe;
2282
+ border-radius: 10px;
2283
+ background: #faf5ff;
2284
+ }
2285
+ .di-component-create-existing-copy {
2286
+ display: grid;
2287
+ grid-template-columns: max-content max-content minmax(0, 1fr);
2288
+ align-items: center;
2289
+ gap: var(--di-field-label-gap);
2290
+ min-width: 0;
2291
+ }
2292
+ .di-component-create-existing-copy span {
2293
+ color: #94a3b8;
2294
+ font-size: 10px;
2295
+ font-weight: 850;
2296
+ }
2297
+ .di-component-create-existing-copy strong {
2298
+ color: #111827;
2299
+ font-size: 12px;
2300
+ font-weight: 850;
2301
+ }
2302
+ .di-component-create-existing-copy small {
2303
+ min-width: 0;
2304
+ color: #64748b;
2305
+ font-size: 10px;
2306
+ font-weight: 700;
2307
+ overflow: hidden;
2308
+ text-overflow: ellipsis;
2309
+ white-space: nowrap;
2310
+ }
2311
+ .di-component-create-existing-actions {
2312
+ display: grid;
2313
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2314
+ gap: var(--di-control-gap-x);
2315
+ }
2316
+ .di-segment-pill {
2317
+ height: 30px;
2318
+ min-width: 0;
2319
+ border: 1px solid #e5e7eb;
2320
+ border-radius: 8px;
2321
+ background: #fff;
2322
+ color: #334155;
2323
+ font-family: inherit;
2324
+ font-size: 12px;
2325
+ font-weight: 850;
2326
+ cursor: pointer;
2327
+ }
2328
+ .di-segment-pill:hover {
2329
+ border-color: #c4b5fd;
2330
+ color: #7c3aed;
2331
+ }
2332
+ .di-segment-pill--active {
2333
+ border-color: #c4b5fd;
2334
+ background: #f5f3ff;
2335
+ color: #7c3aed;
2336
+ }
2337
+ .di-component-type-menu {
2338
+ position: absolute;
2339
+ z-index: 6;
2340
+ top: calc(100% + 4px);
2341
+ left: 0;
2342
+ right: 0;
2343
+ max-height: 220px;
2344
+ overflow: auto;
2345
+ padding: 4px;
2346
+ border: 1px solid #e5e7eb;
2347
+ border-radius: 10px;
2348
+ background: #fff;
2349
+ box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.08);
2350
+ }
2351
+ .di-component-type-menu-head {
2352
+ padding: 6px 9px 7px;
2353
+ color: #94a3b8;
2354
+ font-size: 10px;
2355
+ font-weight: 800;
2356
+ line-height: 1.25;
2357
+ }
2358
+ .di-component-type-option {
2359
+ width: 100%;
2360
+ display: grid;
2361
+ gap: 2px;
2362
+ padding: 8px 9px;
2363
+ border: 0;
2364
+ border-radius: 8px;
2365
+ background: transparent;
2366
+ text-align: left;
2367
+ cursor: pointer;
2368
+ font-family: inherit;
2369
+ }
2370
+ .di-component-type-option:hover,
2371
+ .di-component-type-option--active {
2372
+ background: #f5f3ff;
2373
+ }
2374
+ .di-component-type-option strong {
2375
+ color: #111827;
2376
+ font-size: 12px;
2377
+ font-weight: 850;
2378
+ }
2379
+ .di-component-type-option--active strong,
2380
+ .di-component-type-option--new strong {
2381
+ color: #7c3aed;
2382
+ }
2383
+ .di-component-type-option span,
2384
+ .di-component-type-empty {
2385
+ color: #64748b;
2386
+ font-size: 10px;
2387
+ font-weight: 650;
2388
+ line-height: 1.3;
2389
+ }
2390
+ .di-component-type-empty {
2391
+ padding: 10px;
2392
+ text-align: center;
2393
+ }
2394
+ .di-component-create-rules {
2395
+ display: grid;
2396
+ gap: 6px;
2397
+ padding: 10px;
2398
+ border-radius: 10px;
2399
+ background: #faf5ff;
2400
+ border: 1px solid #ede9fe;
2401
+ }
2402
+ .di-component-create-rules ul {
2403
+ margin: 0;
2404
+ padding-left: 16px;
2405
+ display: grid;
2406
+ gap: 4px;
2407
+ }
2408
+ .di-component-create-rules li {
2409
+ color: #475569;
2410
+ font-size: 11px;
2411
+ font-weight: 650;
2412
+ line-height: 1.35;
2413
+ }
2414
+ .di-component-create-actions {
2415
+ display: grid;
2416
+ grid-template-columns: minmax(0, 1fr);
2417
+ gap: var(--di-control-gap-x);
2418
+ flex: 0 0 auto;
2419
+ padding-top: 8px;
2420
+ border-top: 1px solid #f3f4f6;
2421
+ background: #fff;
2422
+ }
2423
+ /* ── 主体 ── */
2424
+ .di-body {
2425
+ overflow-y: auto;
2426
+ flex: 1;
2427
+ padding: 2px 0 4px;
2428
+ }
2429
+ .di-body--plugin-page {
2430
+ padding-top: 0;
2431
+ }
2432
+ .di-body--plugin-page > .di-section:not(.di-plugin-section--page) {
2433
+ display: none;
2434
+ }
2435
+ .di-body--readonly {
2436
+ pointer-events: none;
2437
+ opacity: 0.72;
2438
+ user-select: none;
2439
+ }
2440
+
2441
+ /* ── 区块 ── */
2442
+ .di-section {
2443
+ padding: 8px 14px;
2444
+ border-bottom: 1px solid #f3f4f6;
2445
+ }
2446
+ .di-section:last-child { border-bottom: none; }
2447
+ .di-section-title {
2448
+ font-size: 12px;
2449
+ font-weight: 700;
2450
+ color: #111827;
2451
+ margin-bottom: var(--di-section-title-gap);
2452
+ }
2453
+ .di-section-title-row {
2454
+ display: flex;
2455
+ align-items: center;
2456
+ gap: var(--di-control-gap-x);
2457
+ margin-bottom: var(--di-section-title-gap);
2458
+ }
2459
+ .di-section-title-row--action {
2460
+ justify-content: space-between;
2461
+ min-height: 24px;
2462
+ }
2463
+ .di-section-title-row--empty {
2464
+ margin-bottom: 0;
2465
+ }
2466
+ .di-section-title-row .di-section-title {
2467
+ margin-bottom: 0;
2468
+ }
2469
+ .di-section-title-group {
2470
+ display: inline-flex;
2471
+ align-items: center;
2472
+ gap: 6px;
2473
+ min-width: 0;
2474
+ }
2475
+ .di-section-icon-action {
2476
+ width: 24px;
2477
+ height: 24px;
2478
+ border: 1px solid #e5e7eb;
2479
+ border-radius: 7px;
2480
+ background: #fff;
2481
+ color: #64748b;
2482
+ display: inline-flex;
2483
+ align-items: center;
2484
+ justify-content: center;
2485
+ padding: 0;
2486
+ cursor: pointer;
2487
+ transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
2488
+ }
2489
+ .di-section-icon-action:hover,
2490
+ .di-section-icon-action:focus-visible {
2491
+ background: #faf5ff;
2492
+ border-color: #c4b5fd;
2493
+ color: #7c3aed;
2494
+ outline: none;
2495
+ box-shadow: 0 1px 3px rgba(124, 58, 237, 0.12);
2496
+ }
2497
+ .di-section-icon-action svg {
2498
+ width: 14px;
2499
+ height: 14px;
2500
+ }
2501
+ .di-section-icon-action--reset {
2502
+ color: #64748b;
2503
+ }
2504
+ .di-plugin-section {
2505
+ padding-top: 6px;
2506
+ padding-bottom: 6px;
2507
+ }
2508
+ .di-plugin-section--page {
2509
+ display: grid;
2510
+ gap: 8px;
2511
+ min-height: 100%;
2512
+ padding-top: 8px;
2513
+ padding-bottom: 10px;
2514
+ border-bottom: none;
2515
+ }
2516
+
2517
+ .di-structure-section {
2518
+ padding-top: 8px;
2519
+ padding-bottom: 8px;
2520
+ }
2521
+
2522
+ .di-structure-callout {
2523
+ display: grid;
2524
+ grid-template-columns: minmax(0, 1fr) max-content;
2525
+ align-items: center;
2526
+ gap: var(--di-control-gap-x);
2527
+ padding: 9px 10px;
2528
+ border-radius: 10px;
2529
+ background: #f5f3ff;
2530
+ }
2531
+
2532
+ .di-page-shell-callout {
2533
+ border: 1px solid #dbeafe;
2534
+ background: #eff6ff;
2535
+ }
2536
+
2537
+ .di-layout-container-callout {
2538
+ grid-template-columns: minmax(0, 1fr);
2539
+ border: 1px solid #e2e8f0;
2540
+ background: #f8fafc;
2541
+ }
2542
+
2543
+ .di-page-shell-section .di-structure-action {
2544
+ border-color: #bfdbfe;
2545
+ background: #fff;
2546
+ color: #2563eb;
2547
+ }
2548
+
2549
+ .di-page-shell-section .di-structure-action:hover,
2550
+ .di-page-shell-section .di-structure-action:focus-visible {
2551
+ background: #dbeafe;
2552
+ }
2553
+
2554
+ .di-page-shell-section .di-structure-link {
2555
+ color: #2563eb;
2556
+ }
2557
+
2558
+ .di-page-shell-section .di-structure-child-group-head small {
2559
+ background: #dbeafe;
2560
+ color: #2563eb;
2561
+ }
2562
+
2563
+ .di-layout-container-section .di-structure-link {
2564
+ color: #475569;
2565
+ }
2566
+
2567
+ .di-layout-container-section .di-structure-link:hover,
2568
+ .di-layout-container-section .di-structure-link:focus-visible {
2569
+ background: #f1f5f9;
2570
+ border-color: #cbd5e1;
2571
+ }
2572
+
2573
+ .di-layout-container-section .di-structure-child-group-head small {
2574
+ background: #e2e8f0;
2575
+ color: #475569;
2576
+ }
2577
+
2578
+ .di-layout-container-section .di-structure-child-item:hover,
2579
+ .di-layout-container-section .di-structure-child-item:focus-visible {
2580
+ border-color: #cbd5e1;
2581
+ }
2582
+
2583
+ .di-structure-callout-copy {
2584
+ min-width: 0;
2585
+ }
2586
+
2587
+ .di-structure-title {
2588
+ font-size: 13px;
2589
+ font-weight: 800;
2590
+ line-height: 1.25;
2591
+ color: #111827;
2592
+ }
2593
+
2594
+ .di-structure-desc {
2595
+ margin-top: 3px;
2596
+ font-size: 11px;
2597
+ font-weight: 600;
2598
+ line-height: 1.35;
2599
+ color: #64748b;
2600
+ }
2601
+
2602
+ .di-structure-action {
2603
+ height: 30px;
2604
+ padding: 0 10px;
2605
+ border: 1px solid #c4b5fd;
2606
+ border-radius: 8px;
2607
+ background: #faf5ff;
2608
+ color: #7c3aed;
2609
+ font-family: inherit;
2610
+ font-size: 12px;
2611
+ font-weight: 800;
2612
+ white-space: nowrap;
2613
+ cursor: pointer;
2614
+ }
2615
+
2616
+ .di-structure-action:hover,
2617
+ .di-structure-action:focus-visible {
2618
+ background: #f3e8ff;
2619
+ outline: none;
2620
+ }
2621
+
2622
+ .di-structure-summary-grid {
2623
+ display: grid;
2624
+ gap: 8px;
2625
+ margin-top: 8px;
2626
+ }
2627
+
2628
+ .di-structure-summary-card {
2629
+ display: grid;
2630
+ grid-template-columns: minmax(0, 1fr) max-content;
2631
+ align-items: center;
2632
+ gap: var(--di-control-gap-x);
2633
+ min-width: 0;
2634
+ padding: 9px 10px;
2635
+ border-radius: 10px;
2636
+ background: #f8fafc;
2637
+ }
2638
+
2639
+ .di-structure-summary-main {
2640
+ display: grid;
2641
+ gap: 2px;
2642
+ min-width: 0;
2643
+ }
2644
+
2645
+ .di-structure-summary-label {
2646
+ color: #94a3b8;
2647
+ font-size: 11px;
2648
+ font-weight: 800;
2649
+ line-height: 1.2;
2650
+ }
2651
+
2652
+ .di-structure-summary-main strong {
2653
+ min-width: 0;
2654
+ color: #111827;
2655
+ font-size: 12px;
2656
+ font-weight: 850;
2657
+ line-height: 1.25;
2658
+ overflow: hidden;
2659
+ text-overflow: ellipsis;
2660
+ white-space: nowrap;
2661
+ }
2662
+
2663
+ .di-structure-summary-main small {
2664
+ min-width: 0;
2665
+ color: #64748b;
2666
+ font-size: 11px;
2667
+ font-weight: 650;
2668
+ line-height: 1.35;
2669
+ overflow: hidden;
2670
+ text-overflow: ellipsis;
2671
+ white-space: nowrap;
2672
+ }
2673
+
2674
+ .di-structure-link {
2675
+ height: 28px;
2676
+ border: 1px solid #e5e7eb;
2677
+ border-radius: 8px;
2678
+ background: #fff;
2679
+ color: #7c3aed;
2680
+ padding: 0 10px;
2681
+ font-family: inherit;
2682
+ font-size: 12px;
2683
+ font-weight: 800;
2684
+ white-space: nowrap;
2685
+ cursor: pointer;
2686
+ }
2687
+
2688
+ .di-structure-link:hover,
2689
+ .di-structure-link:focus-visible {
2690
+ background: #faf5ff;
2691
+ border-color: #c4b5fd;
2692
+ outline: none;
2693
+ }
2694
+
2695
+ .di-structure-child-groups {
2696
+ display: grid;
2697
+ gap: 6px;
2698
+ min-width: 0;
2699
+ }
2700
+
2701
+ .di-structure-child-group {
2702
+ display: grid;
2703
+ gap: 5px;
2704
+ min-width: 0;
2705
+ padding: 8px;
2706
+ border-radius: 10px;
2707
+ background: #f8fafc;
2708
+ }
2709
+
2710
+ .di-structure-child-group-head {
2711
+ display: flex;
2712
+ align-items: center;
2713
+ gap: 6px;
2714
+ min-width: 0;
2715
+ }
2716
+
2717
+ .di-structure-child-group-head span {
2718
+ color: #111827;
2719
+ font-size: 12px;
2720
+ font-weight: 850;
2721
+ }
2722
+
2723
+ .di-structure-child-group-head small {
2724
+ border-radius: 999px;
2725
+ background: #f4efff;
2726
+ color: #7c3aed;
2727
+ padding: 1px 6px;
2728
+ font-size: 11px;
2729
+ font-weight: 850;
2730
+ line-height: 1.3;
2731
+ }
2732
+
2733
+ .di-structure-child-list {
2734
+ display: grid;
2735
+ gap: 4px;
2736
+ min-width: 0;
2737
+ }
2738
+
2739
+ .di-structure-child-item {
2740
+ display: grid;
2741
+ grid-template-columns: minmax(64px, max-content) minmax(0, 1fr);
2742
+ align-items: center;
2743
+ gap: 8px;
2744
+ min-width: 0;
2745
+ height: 30px;
2746
+ border: 1px solid #e5e7eb;
2747
+ border-radius: 8px;
2748
+ background: #fff;
2749
+ padding: 0 9px;
2750
+ font-family: inherit;
2751
+ text-align: left;
2752
+ cursor: pointer;
2753
+ }
2754
+
2755
+ .di-structure-child-item:hover,
2756
+ .di-structure-child-item:focus-visible {
2757
+ border-color: #c4b5fd;
2758
+ outline: none;
2759
+ }
2760
+
2761
+ .di-structure-child-item span {
2762
+ color: #334155;
2763
+ font-size: 12px;
2764
+ font-weight: 800;
2765
+ }
2766
+
2767
+ .di-structure-child-item small {
2768
+ min-width: 0;
2769
+ color: #64748b;
2770
+ font-size: 11px;
2771
+ font-weight: 650;
2772
+ overflow: hidden;
2773
+ text-overflow: ellipsis;
2774
+ white-space: nowrap;
2775
+ }
2776
+ .di-plugin-page-head {
2777
+ display: flex;
2778
+ align-items: center;
2779
+ gap: 8px;
2780
+ min-width: 0;
2781
+ }
2782
+ .di-plugin-back {
2783
+ height: 28px;
2784
+ border: 1px solid #e5e7eb;
2785
+ border-radius: 8px;
2786
+ background: #fff;
2787
+ color: #334155;
2788
+ display: inline-flex;
2789
+ align-items: center;
2790
+ gap: 5px;
2791
+ padding: 0 9px;
2792
+ font-family: inherit;
2793
+ font-size: 12px;
2794
+ font-weight: 800;
2795
+ white-space: nowrap;
2796
+ cursor: pointer;
2797
+ transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
2798
+ }
2799
+ .di-plugin-back:hover,
2800
+ .di-plugin-back:focus-visible {
2801
+ background: #faf5ff;
2802
+ border-color: #c4b5fd;
2803
+ color: #7c3aed;
2804
+ outline: none;
2805
+ box-shadow: 0 1px 3px rgba(124, 58, 237, 0.12);
2806
+ }
2807
+ .di-plugin-page-title {
2808
+ min-width: 0;
2809
+ display: inline-flex;
2810
+ align-items: center;
2811
+ gap: 5px;
2812
+ color: #7c3aed;
2813
+ font-size: 12px;
2814
+ font-weight: 850;
2815
+ overflow: hidden;
2816
+ text-overflow: ellipsis;
2817
+ white-space: nowrap;
2818
+ }
2819
+ .di-plugin-toolbar {
2820
+ display: flex;
2821
+ align-items: center;
2822
+ gap: 6px;
2823
+ min-width: 0;
2824
+ }
2825
+ .di-plugin-tab {
2826
+ height: 28px;
2827
+ border: 1px solid #e5e7eb;
2828
+ border-radius: 8px;
2829
+ background: #fff;
2830
+ color: #334155;
2831
+ display: inline-flex;
2832
+ align-items: center;
2833
+ gap: 5px;
2834
+ padding: 0 10px;
2835
+ font-size: 12px;
2836
+ font-weight: 700;
2837
+ font-family: inherit;
2838
+ line-height: 1;
2839
+ white-space: nowrap;
2840
+ cursor: pointer;
2841
+ transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
2842
+ }
2843
+ .di-plugin-tab:hover,
2844
+ .di-plugin-tab:focus-visible {
2845
+ background: #faf5ff;
2846
+ border-color: #c4b5fd;
2847
+ color: #7c3aed;
2848
+ outline: none;
2849
+ }
2850
+ .di-plugin-tab--on {
2851
+ background: #f4efff;
2852
+ border-color: #c4b5fd;
2853
+ color: #7c3aed;
2854
+ }
2855
+ .di-plugin-msg {
2856
+ margin-left: auto;
2857
+ color: #7c3aed;
2858
+ font-size: 11px;
2859
+ font-weight: 700;
2860
+ white-space: nowrap;
2861
+ }
2862
+ .di-plugin-panel {
2863
+ margin-top: 6px;
2864
+ padding: 8px;
2865
+ border-radius: 10px;
2866
+ background: #f8fafc;
2867
+ display: grid;
2868
+ gap: 6px;
2869
+ }
2870
+ .di-plugin-panel--maker {
2871
+ background: transparent;
2872
+ padding: 0;
2873
+ gap: 8px;
2874
+ }
2875
+ .di-plugin-context-card,
2876
+ .di-plugin-maker-compact,
2877
+ .di-plugin-control-card {
2878
+ display: grid;
2879
+ gap: 6px;
2880
+ min-width: 0;
2881
+ padding: 8px;
2882
+ border-radius: 10px;
2883
+ background: #f8fafc;
2884
+ }
2885
+ .di-plugin-maker-compact {
2886
+ gap: 7px;
2887
+ }
2888
+ .di-plugin-maker-compact--variant {
2889
+ background: #fff;
2890
+ border: 1px solid #eef2f7;
2891
+ }
2892
+ .di-plugin-row {
2893
+ display: flex;
2894
+ align-items: center;
2895
+ gap: 8px;
2896
+ min-width: 0;
2897
+ }
2898
+ .di-plugin-label {
2899
+ flex: 0 0 auto;
2900
+ color: #94a3b8;
2901
+ font-size: 11px;
2902
+ font-weight: 700;
2903
+ }
2904
+ .di-plugin-value,
2905
+ .di-plugin-code {
2906
+ min-width: 0;
2907
+ color: #111827;
2908
+ font-size: 12px;
2909
+ font-weight: 700;
2910
+ overflow: hidden;
2911
+ text-overflow: ellipsis;
2912
+ white-space: nowrap;
2913
+ }
2914
+ .di-plugin-code {
2915
+ color: #64748b;
2916
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
2917
+ font-weight: 600;
2918
+ }
2919
+ .di-plugin-control-row {
2920
+ display: flex;
2921
+ align-items: center;
2922
+ gap: 8px;
2923
+ min-width: 0;
2924
+ }
2925
+ .di-plugin-control-row--input {
2926
+ align-items: stretch;
2927
+ }
2928
+ .di-plugin-component-main {
2929
+ display: flex;
2930
+ align-items: baseline;
2931
+ gap: 6px;
2932
+ min-width: 0;
2933
+ }
2934
+ .di-plugin-component-main strong {
2935
+ min-width: 0;
2936
+ color: #111827;
2937
+ font-size: 13px;
2938
+ font-weight: 850;
2939
+ overflow: hidden;
2940
+ text-overflow: ellipsis;
2941
+ white-space: nowrap;
2942
+ }
2943
+ .di-plugin-component-main span {
2944
+ color: #64748b;
2945
+ font-size: 11px;
2946
+ font-weight: 750;
2947
+ }
2948
+ .di-plugin-source-toggle,
2949
+ .di-plugin-action-tiles {
2950
+ display: flex;
2951
+ align-items: center;
2952
+ gap: 6px;
2953
+ min-width: 0;
2954
+ flex-wrap: wrap;
2955
+ }
2956
+ .di-plugin-choice,
2957
+ .di-plugin-action-tile {
2958
+ height: 28px;
2959
+ border: 1px solid #e5e7eb;
2960
+ border-radius: 8px;
2961
+ background: #fff;
2962
+ color: #334155;
2963
+ padding: 0 10px;
2964
+ font-family: inherit;
2965
+ font-size: 12px;
2966
+ font-weight: 800;
2967
+ white-space: nowrap;
2968
+ cursor: pointer;
2969
+ transition: background 0.12s, border-color 0.12s, color 0.12s;
2970
+ }
2971
+ .di-plugin-choice:hover:not(:disabled),
2972
+ .di-plugin-choice:focus-visible:not(:disabled),
2973
+ .di-plugin-action-tile:hover,
2974
+ .di-plugin-action-tile:focus-visible {
2975
+ background: #faf5ff;
2976
+ border-color: #c4b5fd;
2977
+ color: #7c3aed;
2978
+ outline: none;
2979
+ }
2980
+ .di-plugin-choice--on,
2981
+ .di-plugin-action-tile--on {
2982
+ background: #fff;
2983
+ border-color: #c4b5fd;
2984
+ color: #7c3aed;
2985
+ box-shadow: inset 0 0 0 1px #c4b5fd;
2986
+ }
2987
+ .di-plugin-choice:disabled {
2988
+ color: #cbd5e1;
2989
+ cursor: not-allowed;
2990
+ }
2991
+ .di-plugin-inline-input {
2992
+ height: 30px;
2993
+ min-width: 0;
2994
+ flex: 1 1 auto;
2995
+ border: 1px solid #e5e7eb;
2996
+ border-radius: 8px;
2997
+ background: #fff;
2998
+ color: #111827;
2999
+ padding: 0 10px;
3000
+ font-family: inherit;
3001
+ font-size: 12px;
3002
+ font-weight: 750;
3003
+ outline: none;
3004
+ }
3005
+ .di-plugin-inline-input:focus {
3006
+ border-color: #c4b5fd;
3007
+ box-shadow: 0 0 0 1px #c4b5fd;
3008
+ }
3009
+ .di-plugin-code-name-input {
3010
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
3011
+ font-weight: 750;
3012
+ }
3013
+ .di-plugin-empty-note,
3014
+ .di-plugin-action-hint {
3015
+ color: #94a3b8;
3016
+ font-size: 11px;
3017
+ font-weight: 700;
3018
+ line-height: 1.35;
3019
+ }
3020
+ .di-plugin-action-hint {
3021
+ padding-left: 58px;
3022
+ }
3023
+ .di-plugin-preview {
3024
+ display: flex;
3025
+ flex-wrap: wrap;
3026
+ gap: 5px;
3027
+ min-width: 0;
3028
+ }
3029
+ .di-plugin-preview span {
3030
+ max-width: 100%;
3031
+ padding: 4px 7px;
3032
+ border-radius: 7px;
3033
+ background: #fff;
3034
+ color: #64748b;
3035
+ font-size: 11px;
3036
+ font-weight: 600;
3037
+ line-height: 1.25;
3038
+ overflow: hidden;
3039
+ text-overflow: ellipsis;
3040
+ white-space: nowrap;
3041
+ }
3042
+ .di-plugin-subtitle {
3043
+ color: #111827;
3044
+ font-size: 12px;
3045
+ font-weight: 800;
3046
+ line-height: 1.2;
3047
+ }
3048
+ .di-plugin-spec-grid {
3049
+ display: grid;
3050
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3051
+ gap: 6px;
3052
+ min-width: 0;
3053
+ }
3054
+ .di-plugin-spec-field {
3055
+ display: grid;
3056
+ grid-template-columns: max-content minmax(0, 1fr);
3057
+ align-items: center;
3058
+ gap: 8px;
3059
+ min-width: 0;
3060
+ padding: 6px 8px;
3061
+ border-radius: 8px;
3062
+ background: #fff;
3063
+ }
3064
+ .di-plugin-spec-field--wide {
3065
+ grid-column: 1 / -1;
3066
+ align-items: start;
3067
+ }
3068
+ .di-plugin-spec-field span {
3069
+ color: #94a3b8;
3070
+ font-size: 11px;
3071
+ font-weight: 800;
3072
+ white-space: nowrap;
3073
+ }
3074
+ .di-plugin-spec-field input,
3075
+ .di-plugin-spec-field select,
3076
+ .di-plugin-spec-field textarea {
3077
+ min-width: 0;
3078
+ width: 100%;
3079
+ border: 0;
3080
+ padding: 0;
3081
+ background: transparent;
3082
+ color: #111827;
3083
+ font: inherit;
3084
+ font-size: 12px;
3085
+ font-weight: 650;
3086
+ outline: none;
3087
+ }
3088
+ .di-plugin-spec-field select {
3089
+ appearance: none;
3090
+ cursor: pointer;
3091
+ }
3092
+ .di-plugin-spec-field textarea {
3093
+ min-height: 34px;
3094
+ resize: vertical;
3095
+ line-height: 1.35;
3096
+ }
3097
+ .di-plugin-variant-builder {
3098
+ display: grid;
3099
+ gap: 8px;
3100
+ min-width: 0;
3101
+ }
3102
+ .di-plugin-variant-base,
3103
+ .di-plugin-variant-head {
3104
+ display: flex;
3105
+ align-items: center;
3106
+ justify-content: space-between;
3107
+ gap: 8px;
3108
+ min-width: 0;
3109
+ }
3110
+ .di-plugin-variant-base {
3111
+ min-height: 34px;
3112
+ padding: 6px 8px;
3113
+ border-radius: 9px;
3114
+ background: #fff;
3115
+ }
3116
+ .di-plugin-variant-base-copy {
3117
+ display: flex;
3118
+ align-items: center;
3119
+ gap: 6px;
3120
+ min-width: 0;
3121
+ color: #94a3b8;
3122
+ font-size: 11px;
3123
+ font-weight: 800;
3124
+ }
3125
+ .di-plugin-variant-base-copy strong {
3126
+ min-width: 0;
3127
+ color: #111827;
3128
+ font-size: 12px;
3129
+ overflow: hidden;
3130
+ text-overflow: ellipsis;
3131
+ white-space: nowrap;
3132
+ }
3133
+ .di-plugin-variant-count {
3134
+ flex: 0 0 auto;
3135
+ padding: 3px 7px;
3136
+ border-radius: 999px;
3137
+ background: #f3e8ff;
3138
+ color: #7c3aed;
3139
+ font-size: 11px;
3140
+ font-weight: 850;
3141
+ line-height: 1.2;
3142
+ }
3143
+ .di-plugin-variant-head {
3144
+ color: #64748b;
3145
+ font-size: 11px;
3146
+ font-weight: 800;
3147
+ }
3148
+ .di-plugin-variant-tools {
3149
+ display: inline-flex;
3150
+ align-items: center;
3151
+ gap: 4px;
3152
+ }
3153
+ .di-plugin-variant-tools button {
3154
+ border: 0;
3155
+ background: transparent;
3156
+ color: #7c3aed;
3157
+ padding: 2px 4px;
3158
+ font-family: inherit;
3159
+ font-size: 11px;
3160
+ font-weight: 800;
3161
+ cursor: pointer;
3162
+ }
3163
+ .di-plugin-variant-tools button:hover,
3164
+ .di-plugin-variant-tools button:focus-visible {
3165
+ text-decoration: underline;
3166
+ outline: none;
3167
+ }
3168
+ .di-plugin-variant-grid {
3169
+ display: grid;
3170
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3171
+ gap: 6px;
3172
+ min-width: 0;
3173
+ }
3174
+ .di-plugin-variant-card {
3175
+ position: relative;
3176
+ display: grid;
3177
+ grid-template-columns: 22px minmax(0, 1fr);
3178
+ align-items: center;
3179
+ column-gap: 7px;
3180
+ row-gap: 4px;
3181
+ min-width: 0;
3182
+ min-height: 52px;
3183
+ border: 1px solid #e5e7eb;
3184
+ border-radius: 9px;
3185
+ background: #fff;
3186
+ color: #111827;
3187
+ padding: 7px 8px;
3188
+ font-family: inherit;
3189
+ text-align: left;
3190
+ cursor: pointer;
3191
+ transition: background 0.12s, border-color 0.12s, color 0.12s, box-shadow 0.12s;
3192
+ }
3193
+ .di-plugin-variant-card:hover,
3194
+ .di-plugin-variant-card:focus-visible {
3195
+ border-color: #c4b5fd;
3196
+ outline: none;
3197
+ }
3198
+ .di-plugin-variant-card--on {
3199
+ border-color: #c4b5fd;
3200
+ background: #faf5ff;
3201
+ box-shadow: inset 0 0 0 1px #c4b5fd;
3202
+ }
3203
+ .di-plugin-variant-swatch {
3204
+ width: 22px;
3205
+ height: 22px;
3206
+ border-radius: 7px;
3207
+ background: #f8fafc;
3208
+ border: 1px solid #e2e8f0;
3209
+ }
3210
+ .di-plugin-variant-swatch--brand { background: linear-gradient(135deg, #7c3aed, #6d5dfc); }
3211
+ .di-plugin-variant-swatch--compact { background: linear-gradient(135deg, #fff, #eef2ff); }
3212
+ .di-plugin-variant-swatch--floating { background: #fff; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18); }
3213
+ .di-plugin-variant-swatch--emphasis { background: #111827; }
3214
+ .di-plugin-variant-swatch--success { background: #bbf7d0; border-color: #86efac; }
3215
+ .di-plugin-variant-swatch--warning { background: #fef3c7; border-color: #fde68a; }
3216
+ .di-plugin-variant-swatch--danger { background: #fee2e2; border-color: #fecaca; }
3217
+ .di-plugin-variant-swatch--disabled { background: #f1f5f9; border-color: #e2e8f0; opacity: 0.72; }
3218
+ .di-plugin-variant-swatch--size {
3219
+ background:
3220
+ linear-gradient(90deg, transparent 0 5px, #7c3aed 5px 9px, transparent 9px 13px, #7c3aed 13px 17px, transparent 17px),
3221
+ #faf5ff;
3222
+ }
3223
+ .di-plugin-variant-card-copy {
3224
+ display: grid;
3225
+ gap: 1px;
3226
+ min-width: 0;
3227
+ }
3228
+ .di-plugin-variant-card-copy strong {
3229
+ color: #7c3aed;
3230
+ font-size: 12px;
3231
+ font-weight: 850;
3232
+ line-height: 1.15;
3233
+ overflow: hidden;
3234
+ text-overflow: ellipsis;
3235
+ white-space: nowrap;
3236
+ }
3237
+ .di-plugin-variant-card-copy span {
3238
+ color: #64748b;
3239
+ font-size: 10.5px;
3240
+ font-weight: 700;
3241
+ line-height: 1.15;
3242
+ overflow: hidden;
3243
+ text-overflow: ellipsis;
3244
+ white-space: nowrap;
3245
+ }
3246
+ .di-plugin-variant-card-desc {
3247
+ grid-column: 1 / -1;
3248
+ color: #94a3b8;
3249
+ font-size: 10.5px;
3250
+ font-weight: 650;
3251
+ line-height: 1.2;
3252
+ overflow: hidden;
3253
+ text-overflow: ellipsis;
3254
+ white-space: nowrap;
3255
+ }
3256
+ .di-plugin-variant-sandbox {
3257
+ display: grid;
3258
+ gap: 8px;
3259
+ min-width: 0;
3260
+ }
3261
+ .di-plugin-control-card--variant-flow {
3262
+ gap: 8px;
3263
+ }
3264
+ .di-plugin-variant-workflow {
3265
+ display: grid;
3266
+ gap: 8px;
3267
+ min-width: 0;
3268
+ }
3269
+ .di-plugin-library-row,
3270
+ .di-plugin-sandbox-row,
3271
+ .di-plugin-selected-variants {
3272
+ display: grid;
3273
+ grid-template-columns: max-content minmax(0, 1fr);
3274
+ align-items: center;
3275
+ gap: 8px;
3276
+ min-width: 0;
3277
+ }
3278
+ .di-plugin-library-pills,
3279
+ .di-plugin-sandbox-options,
3280
+ .di-plugin-selected-chip-row {
3281
+ display: flex;
3282
+ flex-wrap: wrap;
3283
+ align-items: center;
3284
+ gap: 6px;
3285
+ min-width: 0;
3286
+ }
3287
+ .di-plugin-library-pill,
3288
+ .di-plugin-sandbox-option,
3289
+ .di-plugin-selected-chip {
3290
+ min-width: 0;
3291
+ height: 28px;
3292
+ border: 1px solid #e5e7eb;
3293
+ border-radius: 8px;
3294
+ background: #fff;
3295
+ color: #334155;
3296
+ padding: 0 9px;
3297
+ font-family: inherit;
3298
+ font-size: 12px;
3299
+ font-weight: 800;
3300
+ line-height: 1;
3301
+ cursor: pointer;
3302
+ }
3303
+ .di-plugin-library-pill {
3304
+ max-width: 128px;
3305
+ overflow: hidden;
3306
+ text-overflow: ellipsis;
3307
+ white-space: nowrap;
3308
+ }
3309
+ .di-plugin-library-pill:hover,
3310
+ .di-plugin-library-pill:focus-visible,
3311
+ .di-plugin-sandbox-option:hover,
3312
+ .di-plugin-sandbox-option:focus-visible,
3313
+ .di-plugin-selected-chip:hover,
3314
+ .di-plugin-selected-chip:focus-visible {
3315
+ border-color: #c4b5fd;
3316
+ outline: none;
3317
+ }
3318
+ .di-plugin-library-pill--on,
3319
+ .di-plugin-sandbox-option--on {
3320
+ border-color: #c4b5fd;
3321
+ background: #f5f3ff;
3322
+ color: #7c3aed;
3323
+ }
3324
+ .di-plugin-sandbox-option--preview {
3325
+ box-shadow: inset 0 0 0 1px #a78bfa;
3326
+ }
3327
+ .di-plugin-live-preview {
3328
+ display: grid;
3329
+ gap: 7px;
3330
+ min-width: 0;
3331
+ padding: 8px;
3332
+ border-radius: 10px;
3333
+ background: #fff;
3334
+ border: 1px solid #e5e7eb;
3335
+ }
3336
+ .di-plugin-live-preview--floating {
3337
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
3338
+ }
3339
+ .di-plugin-live-preview--emphasis {
3340
+ background: #f8fafc;
3341
+ border-color: #cbd5e1;
3342
+ }
3343
+ .di-plugin-live-preview--brand {
3344
+ border-color: #c4b5fd;
3345
+ background: #faf5ff;
3346
+ }
3347
+ .di-plugin-live-preview--compact {
3348
+ padding: 6px;
3349
+ }
3350
+ .di-plugin-live-preview--disabled {
3351
+ opacity: 0.72;
3352
+ }
3353
+ .di-plugin-live-preview-head,
3354
+ .di-plugin-live-base,
3355
+ .di-plugin-preview-meta {
3356
+ display: flex;
3357
+ align-items: center;
3358
+ justify-content: space-between;
3359
+ gap: 8px;
3360
+ min-width: 0;
3361
+ }
3362
+ .di-plugin-real-preview-frame {
3363
+ min-width: 0;
3364
+ max-height: 180px;
3365
+ overflow: hidden;
3366
+ border-radius: 9px;
3367
+ background: #fff;
3368
+ }
3369
+ .di-plugin-real-preview-inner {
3370
+ min-width: 0;
3371
+ padding: 8px;
3372
+ overflow: hidden;
3373
+ }
3374
+ .di-plugin-real-preview-inner > * {
3375
+ max-width: 100%;
3376
+ margin-left: 0 !important;
3377
+ margin-right: 0 !important;
3378
+ pointer-events: none;
3379
+ }
3380
+ .di-plugin-live-preview--compact .di-plugin-real-preview-inner {
3381
+ padding: 6px;
3382
+ }
3383
+ .di-plugin-preview-meta {
3384
+ color: #64748b;
3385
+ font-size: 11px;
3386
+ font-weight: 750;
3387
+ }
3388
+ .di-plugin-preview-meta strong {
3389
+ min-width: 0;
3390
+ color: #7c3aed;
3391
+ overflow: hidden;
3392
+ text-overflow: ellipsis;
3393
+ white-space: nowrap;
3394
+ }
3395
+ .di-plugin-live-card {
3396
+ display: grid;
3397
+ grid-template-columns: 24px minmax(0, 1fr);
3398
+ align-items: center;
3399
+ column-gap: 8px;
3400
+ row-gap: 3px;
3401
+ min-width: 0;
3402
+ min-height: 56px;
3403
+ padding: 8px;
3404
+ border-radius: 9px;
3405
+ background: #f8fafc;
3406
+ }
3407
+ .di-plugin-live-preview--compact .di-plugin-live-card {
3408
+ min-height: 46px;
3409
+ padding: 6px;
3410
+ }
3411
+ .di-plugin-live-preview--emphasis .di-plugin-live-card {
3412
+ background: #0f172a;
3413
+ }
3414
+ .di-plugin-live-card-copy {
3415
+ display: grid;
3416
+ gap: 1px;
3417
+ min-width: 0;
3418
+ }
3419
+ .di-plugin-live-card-copy strong {
3420
+ color: #7c3aed;
3421
+ font-size: 13px;
3422
+ font-weight: 850;
3423
+ line-height: 1.15;
3424
+ overflow: hidden;
3425
+ text-overflow: ellipsis;
3426
+ white-space: nowrap;
3427
+ }
3428
+ .di-plugin-live-preview--emphasis .di-plugin-live-card-copy strong {
3429
+ color: #fff;
3430
+ }
3431
+ .di-plugin-live-card-copy span,
3432
+ .di-plugin-live-card p,
3433
+ .di-plugin-live-base {
3434
+ color: #64748b;
3435
+ font-size: 11px;
3436
+ font-weight: 700;
3437
+ line-height: 1.2;
3438
+ }
3439
+ .di-plugin-live-preview--emphasis .di-plugin-live-card-copy span,
3440
+ .di-plugin-live-preview--emphasis .di-plugin-live-card p {
3441
+ color: #cbd5e1;
3442
+ }
3443
+ .di-plugin-live-card p {
3444
+ grid-column: 1 / -1;
3445
+ margin: 0;
3446
+ overflow: hidden;
3447
+ text-overflow: ellipsis;
3448
+ white-space: nowrap;
3449
+ }
3450
+ .di-plugin-live-base strong {
3451
+ min-width: 0;
3452
+ color: #111827;
3453
+ overflow: hidden;
3454
+ text-overflow: ellipsis;
3455
+ white-space: nowrap;
3456
+ }
3457
+ .di-plugin-sandbox-controls {
3458
+ display: grid;
3459
+ gap: 6px;
3460
+ min-width: 0;
3461
+ }
3462
+ .di-plugin-sandbox-controls--single .di-plugin-sandbox-row {
3463
+ align-items: center;
3464
+ }
3465
+ .di-plugin-sandbox-controls--single .di-plugin-sandbox-option {
3466
+ min-width: 54px;
3467
+ }
3468
+ .di-plugin-selected-variants {
3469
+ align-items: start;
3470
+ }
3471
+ .di-plugin-selected-chip {
3472
+ color: #7c3aed;
3473
+ }
3474
+ .di-plugin-selected-variants .di-plugin-variant-tools {
3475
+ grid-column: 2;
3476
+ justify-content: flex-start;
3477
+ }
3478
+ .di-plugin-actions {
3479
+ display: flex;
3480
+ flex-wrap: wrap;
3481
+ gap: 6px;
3482
+ align-items: center;
3483
+ }
3484
+ .di-plugin-action {
3485
+ justify-self: start;
3486
+ height: 28px;
3487
+ border: 1px solid #e5e7eb;
3488
+ border-radius: 8px;
3489
+ background: #fff;
3490
+ color: #334155;
3491
+ padding: 0 10px;
3492
+ font-family: inherit;
3493
+ font-size: 12px;
3494
+ font-weight: 700;
3495
+ cursor: pointer;
3496
+ transition: background 0.12s, border-color 0.12s, color 0.12s;
3497
+ }
3498
+ .di-plugin-action:hover:not(:disabled),
3499
+ .di-plugin-action:focus-visible:not(:disabled) {
3500
+ background: #faf5ff;
3501
+ border-color: #c4b5fd;
3502
+ color: #7c3aed;
3503
+ outline: none;
3504
+ }
3505
+ .di-plugin-action:disabled {
3506
+ color: #cbd5e1;
3507
+ cursor: not-allowed;
3508
+ }
3509
+ .di-plugin-action--secondary {
3510
+ color: #64748b;
3511
+ }
3512
+ .di-source-action {
3513
+ width: 18px;
443
3514
  height: 18px;
444
3515
  min-width: 18px;
445
3516
  border: 0;
@@ -525,55 +3596,168 @@
525
3596
  background: #faf5ff;
526
3597
  font-size: 11px;
527
3598
  line-height: 1.5;
528
- color: #6b7280;
3599
+ color: #94a3b8;
3600
+ }
3601
+
3602
+ .di-component-card {
3603
+ display: flex;
3604
+ flex-direction: column;
3605
+ gap: 8px;
3606
+ padding: 10px 12px;
3607
+ border: 1px solid #e5e7eb;
3608
+ border-radius: 8px;
3609
+ background: #fff;
3610
+ box-sizing: border-box;
3611
+ }
3612
+ .di-component-head {
3613
+ display: flex;
3614
+ align-items: center;
3615
+ justify-content: space-between;
3616
+ gap: 10px;
3617
+ }
3618
+ .di-component-main {
3619
+ min-width: 0;
3620
+ display: flex;
3621
+ flex-direction: column;
3622
+ gap: 2px;
3623
+ }
3624
+ .di-component-name {
3625
+ min-width: 0;
3626
+ color: #111827;
3627
+ font-size: 14px;
3628
+ font-weight: 800;
3629
+ line-height: 1.25;
3630
+ overflow: hidden;
3631
+ text-overflow: ellipsis;
3632
+ white-space: nowrap;
3633
+ }
3634
+ .di-component-title-row {
3635
+ display: flex;
3636
+ align-items: center;
3637
+ gap: 8px;
3638
+ min-width: 0;
3639
+ }
3640
+ .di-component-meta-row {
3641
+ display: flex;
3642
+ align-items: center;
3643
+ justify-content: space-between;
3644
+ gap: 8px;
3645
+ }
3646
+ .di-component-meta-block {
3647
+ display: flex;
3648
+ flex-direction: column;
3649
+ gap: 6px;
3650
+ }
3651
+ .di-component-meta-toggle {
3652
+ height: 26px;
3653
+ padding: 0 9px;
3654
+ border: 1px solid #e5e7eb;
3655
+ border-radius: 7px;
3656
+ background: #fff;
3657
+ color: #64748b;
3658
+ font-family: inherit;
3659
+ font-size: 11px;
3660
+ font-weight: 800;
3661
+ cursor: pointer;
3662
+ display: inline-flex;
3663
+ align-items: center;
3664
+ gap: 6px;
3665
+ justify-self: end;
3666
+ transition: border-color 0.12s, background 0.12s, color 0.12s;
3667
+ }
3668
+ .di-component-meta-toggle:hover,
3669
+ .di-component-meta-toggle:focus-visible,
3670
+ .di-component-meta-toggle--on {
3671
+ border-color: #c4b5fd;
3672
+ background: #faf5ff;
3673
+ color: #7c3aed;
3674
+ outline: none;
3675
+ }
3676
+ .di-component-meta-toggle svg {
3677
+ transition: transform 0.12s ease;
3678
+ }
3679
+ .di-component-meta-toggle--on svg {
3680
+ transform: rotate(180deg);
3681
+ }
3682
+ .di-component-info-panel {
3683
+ margin: 0;
3684
+ padding: 0;
3685
+ border: none;
3686
+ border-radius: 0;
3687
+ background: transparent;
3688
+ display: flex;
3689
+ flex-direction: column;
3690
+ gap: 8px;
3691
+ }
3692
+ .di-component-info-row {
3693
+ display: grid;
3694
+ grid-template-columns: 48px minmax(0, 1fr);
3695
+ align-items: start;
3696
+ gap: 8px;
3697
+ }
3698
+ .di-component-info-row dt {
3699
+ color: #64748b;
3700
+ font-size: 11px;
3701
+ font-weight: 700;
3702
+ line-height: 1.35;
3703
+ }
3704
+ .di-component-info-row dd {
3705
+ margin: 0;
3706
+ min-width: 0;
3707
+ color: #111827;
3708
+ font-size: 12px;
3709
+ font-weight: 650;
3710
+ line-height: 1.35;
3711
+ word-break: break-word;
529
3712
  }
530
-
531
- .di-component-card {
3713
+ .di-component-info-elements {
532
3714
  display: flex;
533
3715
  flex-direction: column;
534
3716
  gap: 8px;
535
- padding: 10px 12px;
3717
+ }
3718
+ .di-component-info-element-list {
3719
+ display: flex;
3720
+ flex-direction: column;
3721
+ gap: 8px;
3722
+ }
3723
+ .di-component-info-element-card {
3724
+ padding: 8px;
536
3725
  border: 1px solid #e5e7eb;
537
- border-radius: 8px;
3726
+ border-radius: 7px;
538
3727
  background: #fff;
539
- box-sizing: border-box;
540
- }
541
- .di-component-head {
542
3728
  display: flex;
543
- align-items: center;
544
- justify-content: space-between;
545
- gap: 10px;
3729
+ flex-direction: column;
3730
+ gap: 7px;
546
3731
  }
547
- .di-component-main {
548
- min-width: 0;
3732
+ .di-component-info-element-head {
549
3733
  display: flex;
550
3734
  flex-direction: column;
551
3735
  gap: 2px;
552
3736
  }
553
- .di-component-name {
554
- min-width: 0;
3737
+ .di-component-info-element-label {
555
3738
  color: #111827;
556
- font-size: 14px;
3739
+ font-size: 12px;
557
3740
  font-weight: 800;
558
- line-height: 1.25;
559
- overflow: hidden;
560
- text-overflow: ellipsis;
561
- white-space: nowrap;
562
- }
563
- .di-component-meta-row {
564
- display: grid;
565
- grid-template-columns: repeat(2, minmax(0, 1fr));
566
- gap: 6px;
3741
+ line-height: 1.35;
567
3742
  }
568
- .di-component-meta-row span {
569
- min-width: 0;
570
- color: #64748b;
3743
+ .di-component-info-element-selector {
3744
+ color: #94a3b8;
571
3745
  font-size: 11px;
572
- font-weight: 600;
3746
+ font-weight: 650;
573
3747
  line-height: 1.35;
574
- overflow: hidden;
575
- text-overflow: ellipsis;
576
- white-space: nowrap;
3748
+ word-break: break-all;
3749
+ }
3750
+ .di-component-info-element-meta {
3751
+ margin: 0;
3752
+ display: flex;
3753
+ flex-direction: column;
3754
+ gap: 6px;
3755
+ }
3756
+ .di-component-info-inline {
3757
+ display: inline-flex;
3758
+ align-items: center;
3759
+ flex-wrap: wrap;
3760
+ gap: 6px;
577
3761
  }
578
3762
  .di-component-fields {
579
3763
  display: flex;
@@ -637,6 +3821,10 @@
637
3821
  .di-component-child-item--with-label {
638
3822
  grid-template-columns: auto minmax(0, 1fr) auto;
639
3823
  }
3824
+ .di-component-child-item:has(.di-component-child-variant-grid) {
3825
+ grid-template-columns: auto minmax(0, 1fr);
3826
+ align-items: start;
3827
+ }
640
3828
  .di-component-child-label {
641
3829
  color: #64748b;
642
3830
  font-size: 11px;
@@ -654,6 +3842,43 @@
654
3842
  text-overflow: ellipsis;
655
3843
  white-space: nowrap;
656
3844
  }
3845
+ .di-component-child-variant-grid {
3846
+ min-width: 0;
3847
+ display: grid;
3848
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3849
+ gap: 6px;
3850
+ }
3851
+ .di-component-child-variant-tile {
3852
+ min-width: 0;
3853
+ min-height: 28px;
3854
+ padding: 0 8px;
3855
+ border: 0;
3856
+ border-radius: 6px;
3857
+ background: transparent;
3858
+ color: #64748b;
3859
+ font-family: inherit;
3860
+ font-size: 12px;
3861
+ font-weight: 750;
3862
+ line-height: 1.2;
3863
+ cursor: pointer;
3864
+ white-space: nowrap;
3865
+ overflow: hidden;
3866
+ text-overflow: ellipsis;
3867
+ transition: background 0.12s, color 0.12s, box-shadow 0.12s;
3868
+ }
3869
+ .di-component-child-variant-tile:hover,
3870
+ .di-component-child-variant-tile:focus-visible {
3871
+ background: #ede9fe;
3872
+ color: #7c3aed;
3873
+ outline: none;
3874
+ }
3875
+ .di-component-child-variant-tile--on,
3876
+ .di-component-child-variant-tile--on:hover,
3877
+ .di-component-child-variant-tile--on:focus-visible {
3878
+ background: #fff;
3879
+ color: #7c3aed;
3880
+ box-shadow: 0 1px 3px rgba(15,23,42,0.08);
3881
+ }
657
3882
  .di-component-child-select {
658
3883
  height: 24px;
659
3884
  padding: 0 8px;
@@ -688,6 +3913,48 @@
688
3913
  .di-component-segment--tone {
689
3914
  grid-template-columns: repeat(3, minmax(0, 1fr));
690
3915
  }
3916
+ .di-component-variant-grid {
3917
+ min-width: 0;
3918
+ display: grid;
3919
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3920
+ gap: 6px;
3921
+ padding: 8px;
3922
+ border: 1px solid #e5e7eb;
3923
+ border-radius: 8px;
3924
+ background: #f8fafc;
3925
+ box-sizing: border-box;
3926
+ }
3927
+ .di-component-variant-tile {
3928
+ min-width: 0;
3929
+ min-height: 32px;
3930
+ padding: 0 8px;
3931
+ border: 0;
3932
+ border-radius: 6px;
3933
+ background: transparent;
3934
+ color: #64748b;
3935
+ font-family: inherit;
3936
+ font-size: 12px;
3937
+ font-weight: 750;
3938
+ line-height: 1.2;
3939
+ cursor: pointer;
3940
+ white-space: nowrap;
3941
+ overflow: hidden;
3942
+ text-overflow: ellipsis;
3943
+ transition: background 0.12s, color 0.12s, box-shadow 0.12s;
3944
+ }
3945
+ .di-component-variant-tile:hover,
3946
+ .di-component-variant-tile:focus-visible {
3947
+ background: #ede9fe;
3948
+ color: #7c3aed;
3949
+ outline: none;
3950
+ }
3951
+ .di-component-variant-tile--on,
3952
+ .di-component-variant-tile--on:hover,
3953
+ .di-component-variant-tile--on:focus-visible {
3954
+ background: #fff;
3955
+ color: #7c3aed;
3956
+ box-shadow: 0 1px 3px rgba(15,23,42,0.08);
3957
+ }
691
3958
  .di-component-segment-btn {
692
3959
  min-width: 0;
693
3960
  height: 26px;
@@ -1349,6 +4616,33 @@
1349
4616
  grid-template-columns: repeat(3, minmax(0, 1fr));
1350
4617
  row-gap: 6px;
1351
4618
  }
4619
+ .di-appearance-toolbar.di-container-toolbar--custom {
4620
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4621
+ gap: var(--di-control-gap-y) var(--di-control-gap-x);
4622
+ }
4623
+ .di-appearance-field {
4624
+ display: grid;
4625
+ grid-template-columns: max-content minmax(0, 1fr);
4626
+ align-items: center;
4627
+ gap: var(--di-field-label-gap);
4628
+ min-width: 0;
4629
+ }
4630
+ .di-appearance-field-label {
4631
+ align-self: center;
4632
+ color: #9ca3af;
4633
+ font-size: 10px;
4634
+ font-weight: 800;
4635
+ line-height: 1.2;
4636
+ white-space: nowrap;
4637
+ }
4638
+ .di-appearance-field .di-custom-select {
4639
+ min-width: 0;
4640
+ }
4641
+ .di-appearance-field .di-typography-control-wrap,
4642
+ .di-appearance-field .di-color-select,
4643
+ .di-appearance-field .di-typography-control {
4644
+ min-width: 0;
4645
+ }
1352
4646
  .di-border-control--width,
1353
4647
  .di-border-control--line,
1354
4648
  .di-border-control--radius {
@@ -1738,9 +5032,38 @@
1738
5032
 
1739
5033
  /* ── 自定义底部 ── */
1740
5034
  .di-custom-bottom {
5035
+ --di-custom-color-control-height: 28px;
1741
5036
  border-top: 1px solid #f3f4f6;
1742
- padding: 8px 12px;
5037
+ margin: 0 -12px;
5038
+ padding: 12px;
5039
+ min-height: 52px;
1743
5040
  display: flex; align-items: center; gap: 6px;
5041
+ flex: 0 0 auto;
5042
+ box-sizing: border-box;
5043
+ }
5044
+ .di-custom-bottom .di-custom-color-trigger {
5045
+ box-sizing: border-box;
5046
+ width: var(--di-custom-color-control-height);
5047
+ height: var(--di-custom-color-control-height);
5048
+ border-radius: 6px;
5049
+ padding: 0;
5050
+ appearance: none;
5051
+ display: block;
5052
+ }
5053
+ .di-custom-bottom .di-custom-color-trigger:hover {
5054
+ transform: none;
5055
+ }
5056
+ .di-custom-color-input {
5057
+ position: absolute;
5058
+ width: 1px;
5059
+ height: 1px;
5060
+ opacity: 0;
5061
+ pointer-events: none;
5062
+ }
5063
+ .di-custom-bottom .di-field-wrap {
5064
+ box-sizing: border-box;
5065
+ height: var(--di-custom-color-control-height);
5066
+ border-radius: 6px;
1744
5067
  }
1745
5068
  /* 带前/后缀的输入组 */
1746
5069
  .di-field-wrap {
@@ -1831,13 +5154,20 @@
1831
5154
  border: 1px solid #e5e7eb;
1832
5155
  border-radius: 12px;
1833
5156
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
1834
- padding: 10px 12px 4px;
5157
+ padding: 12px 12px 0;
1835
5158
  min-width: 200px;
1836
5159
  max-width: 240px;
1837
5160
  max-height: 280px;
5161
+ display: flex;
5162
+ flex-direction: column;
5163
+ overflow: hidden;
5164
+ }
5165
+ .di-palette-scroll {
5166
+ min-height: 0;
1838
5167
  overflow-y: auto;
1839
5168
  }
1840
5169
  .di-palette-group { margin-bottom: 8px; }
5170
+ .di-palette-group--last { margin-bottom: 12px; }
1841
5171
  .di-palette-group-label {
1842
5172
  font-size: 10px;
1843
5173
  font-weight: 700;
@@ -1852,15 +5182,29 @@
1852
5182
  gap: 5px;
1853
5183
  }
1854
5184
  .di-palette-swatch {
5185
+ box-sizing: border-box;
5186
+ width: 26px;
5187
+ height: 26px;
5188
+ border-radius: 7px;
5189
+ border: 0;
5190
+ background: transparent;
5191
+ cursor: pointer;
5192
+ padding: 0;
5193
+ display: flex;
5194
+ align-items: center;
5195
+ justify-content: center;
5196
+ transition: box-shadow 0.1s, background 0.1s;
5197
+ flex-shrink: 0;
5198
+ }
5199
+ .di-palette-swatch:hover { background: #f8fafc; }
5200
+ .di-palette-swatch-fill {
5201
+ box-sizing: border-box;
1855
5202
  width: 22px;
1856
5203
  height: 22px;
1857
5204
  border-radius: 5px;
1858
5205
  border: 1px solid rgba(0,0,0,0.15);
1859
- cursor: pointer;
1860
- transition: transform 0.1s, box-shadow 0.1s;
1861
- flex-shrink: 0;
5206
+ flex: 0 0 auto;
1862
5207
  }
1863
- .di-palette-swatch:hover { transform: scale(1.15); box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
1864
5208
  .di-palette-none {
1865
5209
  width: 22px; height: 22px; border-radius: 5px;
1866
5210
  border: 1px solid rgba(0,0,0,0.15); cursor: pointer; flex-shrink: 0;
@@ -1878,8 +5222,11 @@
1878
5222
  transform-origin: center;
1879
5223
  }
1880
5224
  .di-palette-swatch--on {
1881
- outline: 2px solid #7c3aed;
1882
- outline-offset: 1px;
5225
+ box-shadow: inset 0 0 0 2px #7c3aed;
5226
+ }
5227
+ .di-palette-swatch--on:hover {
5228
+ background: transparent;
5229
+ box-shadow: inset 0 0 0 2px #7c3aed;
1883
5230
  }
1884
5231
 
1885
5232
  /* ── 布局控制:位置 + 尺寸 ── */
@@ -2798,14 +6145,24 @@
2798
6145
  /* ── 底部 ── */
2799
6146
  .di-foot {
2800
6147
  display: flex;
6148
+ align-items: center;
2801
6149
  gap: 8px;
2802
6150
  padding: 8px 14px;
2803
6151
  border-top: 1px solid #f3f4f6;
2804
6152
  flex-shrink: 0;
2805
6153
  }
6154
+ .di-foot-secondary-actions {
6155
+ display: flex;
6156
+ align-items: center;
6157
+ flex: 0 0 auto;
6158
+ gap: 8px;
6159
+ min-width: 0;
6160
+ }
2806
6161
  .di-btn-cancel {
2807
- flex: 1;
2808
- padding: 7px 0;
6162
+ flex: 0 0 auto;
6163
+ min-width: 70px;
6164
+ height: 42px;
6165
+ padding: 0 10px;
2809
6166
  border-radius: 8px;
2810
6167
  border: 1px solid #e5e7eb;
2811
6168
  background: #fff;
@@ -2817,6 +6174,16 @@
2817
6174
  transition: background 0.12s;
2818
6175
  }
2819
6176
  .di-btn-cancel:hover { background: #f9fafb; }
6177
+ .di-btn-maker {
6178
+ flex: 0 0 auto;
6179
+ color: #7c3aed;
6180
+ border-color: #c4b5fd;
6181
+ background: #faf5ff;
6182
+ white-space: nowrap;
6183
+ }
6184
+ .di-btn-maker:hover {
6185
+ background: #f3e8ff;
6186
+ }
2820
6187
  .di-btn-submit {
2821
6188
  flex: 1.3;
2822
6189
  padding: 7px 0;
@@ -2850,8 +6217,10 @@
2850
6217
  }
2851
6218
  .di-btn-paste:hover { background: #ede9fe; }
2852
6219
  .di-btn-save {
2853
- flex: 1.6;
2854
- padding: 7px 12px;
6220
+ flex: 1 1 auto;
6221
+ min-width: 112px;
6222
+ height: 42px;
6223
+ padding: 0 16px;
2855
6224
  border-radius: 8px;
2856
6225
  border: none;
2857
6226
  background: #7c3aed;
@@ -2864,8 +6233,30 @@
2864
6233
  transition: background 0.12s;
2865
6234
  box-shadow: 0 2px 8px rgba(124,58,237,0.3);
2866
6235
  }
6236
+ .di-foot > .di-btn-save {
6237
+ flex: 0 0 102px;
6238
+ width: 102px;
6239
+ min-width: 102px;
6240
+ padding: 0 12px;
6241
+ }
6242
+ .di-foot--without-maker > .di-btn-save {
6243
+ flex: 1 1 auto;
6244
+ width: auto;
6245
+ min-width: 112px;
6246
+ padding: 0 16px;
6247
+ }
2867
6248
  .di-btn-save:hover { background: #6d28d9; }
2868
6249
 
6250
+ .di-btn-save-content {
6251
+ display: inline-flex;
6252
+ align-items: center;
6253
+ justify-content: center;
6254
+ gap: 6px;
6255
+ width: 100%;
6256
+ min-width: 0;
6257
+ white-space: nowrap;
6258
+ }
6259
+
2869
6260
  .di-section-title--spaced {
2870
6261
  margin-top: 16px;
2871
6262
  }
@@ -3151,6 +6542,59 @@
3151
6542
  padding-left: 3px;
3152
6543
  }
3153
6544
 
6545
+ .di-annotation-card {
6546
+ display: flex;
6547
+ flex-direction: column;
6548
+ gap: var(--di-control-gap-y);
6549
+ padding: var(--di-tool-row-padding-block) var(--di-tool-row-padding-inline);
6550
+ border-radius: 10px;
6551
+ background: #f8fafc;
6552
+ }
6553
+
6554
+ .di-annotation-count {
6555
+ height: 20px;
6556
+ padding: 0 7px;
6557
+ border-radius: 999px;
6558
+ background: #ede9fe;
6559
+ color: #7c3aed;
6560
+ font-size: 10px;
6561
+ font-weight: 800;
6562
+ line-height: 20px;
6563
+ white-space: nowrap;
6564
+ }
6565
+
6566
+ .di-annotation-textarea {
6567
+ width: 100%;
6568
+ min-width: 0;
6569
+ min-height: 58px;
6570
+ max-height: 128px;
6571
+ padding: 8px 9px;
6572
+ border: 1px solid #e5e7eb;
6573
+ border-radius: 7px;
6574
+ background: #fff;
6575
+ color: var(--di-text-body-color, #6b7280);
6576
+ font-family: inherit;
6577
+ font-size: var(--di-text-body-size, 12px);
6578
+ font-weight: var(--di-text-body-weight, 400);
6579
+ line-height: var(--di-text-body-line-height, 1.5);
6580
+ box-sizing: border-box;
6581
+ outline: none;
6582
+ resize: none;
6583
+ transition: border-color 0.12s, background 0.12s;
6584
+ }
6585
+
6586
+ .di-annotation-textarea::placeholder {
6587
+ color: var(--di-text-meta-color, #94a3b8);
6588
+ font-size: var(--di-text-meta-size, 11px);
6589
+ font-weight: var(--di-text-meta-weight, 600);
6590
+ line-height: var(--di-text-meta-line-height, 1.35);
6591
+ }
6592
+
6593
+ .di-annotation-textarea:focus {
6594
+ border-color: #a78bfa;
6595
+ background: #fff;
6596
+ }
6597
+
3154
6598
  .di-layout-section .di-section-title,
3155
6599
  .di-shadow-section .di-section-title,
3156
6600
  .di-space-section .di-section-title {
@@ -3296,6 +6740,19 @@
3296
6740
  grid-template-columns: minmax(0, 1fr);
3297
6741
  }
3298
6742
 
6743
+ .di-border-control--radius {
6744
+ display: inline-flex;
6745
+ align-items: center;
6746
+ justify-content: flex-start;
6747
+ gap: 4px;
6748
+ }
6749
+
6750
+ .di-border-control--radius .di-border-style-label,
6751
+ .di-border-control--radius .di-typography-control-value {
6752
+ flex: 0 0 auto;
6753
+ line-height: 1;
6754
+ }
6755
+
3299
6756
  .di-typography-control--size-token,
3300
6757
  .di-typography-control--weight,
3301
6758
  .di-border-control--line {