@threadlabs/looma 0.26.2 → 0.26.4

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.
@@ -134,7 +134,7 @@ svg[data-v-abaeb064] {
134
134
  syntax: "*";
135
135
  inherits: false;
136
136
  }
137
- [data-component~="ui-avatar"][data-v-8b3c5fb3] {
137
+ [data-component~="ui-avatar"][data-v-03720dc1] {
138
138
  --_ui-default-icon-size: 1.25rem;
139
139
  display: inline-grid;
140
140
  place-items: center;
@@ -156,13 +156,13 @@ svg[data-v-abaeb064] {
156
156
  line-height: 1;
157
157
  text-transform: uppercase;
158
158
  }
159
- [data-component~="ui-avatar"][data-ui-avatar-state~="size=sm"][data-v-8b3c5fb3] {
159
+ [data-component~="ui-avatar"][data-ui-avatar-state~="size=sm"][data-v-03720dc1] {
160
160
  --_ui-default-icon-size: 1rem;
161
161
  inline-size: 1.75rem;
162
162
  block-size: 1.75rem;
163
163
  font-size: var(--ui-font-size-xs);
164
164
  }
165
- [data-component~="ui-avatar"][data-ui-avatar-state~="size=xs"][data-v-8b3c5fb3] {
165
+ [data-component~="ui-avatar"][data-ui-avatar-state~="size=xs"][data-v-03720dc1] {
166
166
  --_ui-default-icon-size: 0.75rem;
167
167
  inline-size: 1.25rem;
168
168
  block-size: 1.25rem;
@@ -170,26 +170,29 @@ svg[data-v-abaeb064] {
170
170
  font-size: calc(var(--ui-font-size) * 0.5625);
171
171
  letter-spacing: 0.02em;
172
172
  }
173
- [data-component~="ui-avatar"][data-ui-avatar-state~="hasImage"][data-v-8b3c5fb3] {
173
+ [data-component~="ui-avatar"][data-ui-avatar-state~="hasImage"][data-v-03720dc1] {
174
174
  border-color: var(--ui-avatar-border, var(--ui-border-strong));
175
175
  }
176
- [data-component~="ui-avatar"][data-ui-avatar-state~="shape=square"][data-v-8b3c5fb3] {
176
+ [data-component~="ui-avatar"][data-ui-avatar-state~="shape=circle"][data-v-03720dc1] {
177
+ box-shadow: var(--ui-shadow-sm);
178
+ }
179
+ [data-component~="ui-avatar"][data-ui-avatar-state~="shape=square"][data-v-03720dc1] {
177
180
  border-radius: var(--ui-avatar-radius, var(--ui-radius-md));
178
181
  }
179
182
 
180
183
  /* An outline, not a dot: the avatar clips its content to the circle, and an outline is drawn
181
184
  outside the box, so the ring survives the clip and the overlap in an Avatar Group. */
182
- [data-component~="ui-avatar"][data-ui-avatar-state~="active"][data-v-8b3c5fb3] {
185
+ [data-component~="ui-avatar"][data-ui-avatar-state~="active"][data-v-03720dc1] {
183
186
  outline: var(--ui-border-width) solid var(--ui-avatar-active-ring, var(--ui-accent-solid));
184
187
  outline-offset: var(--ui-border-width);
185
188
  }
186
- .image[data-v-8b3c5fb3],img[data-v-8b3c5fb3-s] {
189
+ .image[data-v-03720dc1],img[data-v-03720dc1-s] {
187
190
  grid-area: 1 / 1;
188
191
  inline-size: 100%;
189
192
  block-size: 100%;
190
193
  object-fit: cover;
191
194
  }
192
- .fallback[data-v-8b3c5fb3] {
195
+ .fallback[data-v-03720dc1] {
193
196
  grid-area: 1 / 1;
194
197
  display: inline-flex;
195
198
  align-items: center;
@@ -202,7 +205,7 @@ svg[data-v-abaeb064] {
202
205
  /* Centre the glyphs, not the line box: a label without descenders otherwise reads high.
203
206
  * Trimming applies to block containers, so the box is a block with centred content. */
204
207
  @supports (text-box-trim: trim-both) {
205
- .fallback[data-v-8b3c5fb3] {
208
+ .fallback[data-v-03720dc1] {
206
209
  display: block;
207
210
  text-align: center;
208
211
  align-content: center;
@@ -210,12 +213,12 @@ svg[data-v-abaeb064] {
210
213
  text-box-edge: cap alphabetic;
211
214
  }
212
215
  }
213
- [hidden][data-v-8b3c5fb3] {
216
+ [hidden][data-v-03720dc1] {
214
217
  display: none;
215
218
  }
216
219
 
217
220
  /* A component that sets its display still honours the hidden attribute on its root. */
218
- [data-component~="ui-avatar"][hidden][data-v-8b3c5fb3] {
221
+ [data-component~="ui-avatar"][hidden][data-v-03720dc1] {
219
222
  display: none;
220
223
  }
221
224
 
@@ -353,7 +356,7 @@ svg[data-v-abaeb064] {
353
356
  syntax: "*";
354
357
  inherits: false;
355
358
  }
356
- [data-component~="ui-badge"][data-v-c96818e7] {
359
+ [data-component~="ui-badge"][data-v-4d2f1396] {
357
360
  --_badge-surface: color-mix(in srgb, var(--ui-surface-subtle) 80%, var(--ui-surface-default));
358
361
  --_badge-text: var(--ui-text-secondary);
359
362
  /* Sit between the soft fill and its stronger theme ink. */
@@ -399,27 +402,27 @@ svg[data-v-abaeb064] {
399
402
 
400
403
  /* A constrained badge keeps its surface intact and ellipsizes only its label. The full
401
404
  text stays in the DOM for accessible names and consumers' selected values. */
402
- .label[data-v-c96818e7] {
405
+ .label[data-v-4d2f1396] {
403
406
  display: block;
404
407
  min-inline-size: 0;
405
408
  overflow: hidden;
406
409
  text-overflow: ellipsis;
407
410
  }
408
- .label[data-v-c96818e7]:empty {
411
+ .label[data-v-4d2f1396]:empty {
409
412
  display: none;
410
413
  }
411
414
 
412
415
  /* Icon content has its own flex item so label ellipsis never clips its strokes. */
413
- .icon[data-v-c96818e7] {
416
+ .icon[data-v-4d2f1396] {
414
417
  display: inline-flex;
415
418
  align-items: center;
416
419
  justify-content: center;
417
420
  flex: none;
418
421
  }
419
- .icon[data-v-c96818e7]:empty {
422
+ .icon[data-v-4d2f1396]:empty {
420
423
  display: none;
421
424
  }
422
- .icon svg[data-v-c96818e7-s] {
425
+ .icon svg[data-v-4d2f1396-s] {
423
426
  display: block;
424
427
  inline-size: 1em;
425
428
  block-size: 1em;
@@ -427,38 +430,39 @@ svg[data-v-abaeb064] {
427
430
  }
428
431
 
429
432
  /* Ordinary icon-plus-text children keep inline ellipsis, with explicit glyph spacing. */
430
- .label svg[data-v-c96818e7-s] {
433
+ .label svg[data-v-4d2f1396-s] {
431
434
  inline-size: 1em;
432
435
  block-size: 1em;
433
436
  vertical-align: middle;
434
437
  margin-inline-end: var(--ui-space-1);
435
438
  }
436
- .label[data-v-c96818e7]:has(svg) {
439
+ .label[data-v-4d2f1396]:has(svg) {
437
440
  text-box-trim: none;
438
441
  }
439
442
 
440
- /* Text-only badges retain their trimmed inline baseline. Icon content needs a flex row;
441
- trimming its label separately keeps the glyph centered without changing adjacent lines. */
443
+ /* Center the capital/baseline text box, while clipping only inline overflow for ellipsis.
444
+ Vertical ink remains visible so trimming never cuts off ascenders or descenders. */
442
445
  @supports (text-box-trim: trim-both) {
443
- [data-component~="ui-badge"][data-v-c96818e7] {
446
+ [data-component~="ui-badge"][data-v-4d2f1396] {
444
447
  display: inline-block;
445
448
  min-block-size: var(--ui-badge-min-block-size, 1.5rem);
446
449
  text-align: center;
447
450
  align-content: center;
448
- text-box-trim: trim-both;
449
- text-box-edge: text;
451
+ text-box-trim: none;
450
452
  }
451
- [data-component~="ui-badge"][data-v-c96818e7]:has(.icon:not(:empty)),
452
- [data-component~="ui-badge"][data-v-c96818e7]:has(.label svg) {
453
+ [data-component~="ui-badge"][data-v-4d2f1396]:has(.icon:not(:empty)),
454
+ [data-component~="ui-badge"][data-v-4d2f1396]:has(.label svg) {
453
455
  display: inline-flex;
454
456
  text-box-trim: none;
455
457
  }
456
- [data-component~="ui-badge"]:has(.icon:not(:empty)) .label[data-v-c96818e7] {
458
+ .label[data-v-4d2f1396]:not(:has(svg)) {
457
459
  text-box-trim: trim-both;
458
- text-box-edge: text;
460
+ text-box-edge: cap alphabetic;
461
+ overflow-x: clip;
462
+ overflow-y: visible;
459
463
  }
460
464
  }
461
- [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-c96818e7] {
465
+ [data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
462
466
  box-sizing: border-box;
463
467
  min-inline-size: 1rem;
464
468
  min-block-size: var(--ui-badge-min-block-size, 1rem);
@@ -466,52 +470,52 @@ svg[data-v-abaeb064] {
466
470
  font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
467
471
  line-height: var(--ui-badge-line-height, 1);
468
472
  }
469
- [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-c96818e7] {
473
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
470
474
  --_badge-surface: var(--ui-accent-strong-surface, var(--ui-accent-solid));
471
475
  --_badge-border: var(--ui-accent-strong-surface, var(--ui-accent-solid));
472
476
  --_badge-text: var(--ui-accent-on-strong, var(--ui-text-on-accent));
473
477
  }
474
- [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-c96818e7] {
478
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
475
479
  --_badge-surface: var(--ui-danger-strong-surface, var(--ui-danger-solid));
476
480
  --_badge-border: var(--ui-danger-strong-surface, var(--ui-danger-solid));
477
481
  --_badge-text: var(--ui-danger-on-strong, var(--ui-text-on-accent));
478
482
  }
479
- [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-c96818e7] {
483
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
480
484
  --_badge-surface: var(--ui-success-strong-surface, var(--ui-success-solid));
481
485
  --_badge-border: var(--ui-success-strong-surface, var(--ui-success-solid));
482
486
  --_badge-text: var(--ui-success-on-strong, var(--ui-text-on-accent));
483
487
  }
484
- [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-c96818e7] {
488
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
485
489
  --_badge-surface: var(--ui-warning-strong-surface, var(--ui-warning-solid));
486
490
  --_badge-border: var(--ui-warning-strong-surface, var(--ui-warning-solid));
487
491
  --_badge-text: var(--ui-warning-on-strong, var(--ui-text-on-accent));
488
492
  }
489
- [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-c96818e7] {
493
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
490
494
  --_badge-surface: var(--ui-info-strong-surface, var(--ui-info-solid));
491
495
  --_badge-border: var(--ui-info-strong-surface, var(--ui-info-solid));
492
496
  --_badge-text: var(--ui-info-on-strong, var(--ui-text-on-accent));
493
497
  }
494
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-c96818e7] {
498
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
495
499
  --_badge-surface: color-mix(in srgb, var(--ui-accent-solid) 19%, var(--ui-surface-default));
496
500
  --_badge-border: color-mix(in srgb, var(--ui-accent-solid) 25%, var(--ui-surface-default));
497
501
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
498
502
  }
499
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-c96818e7] {
503
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
500
504
  --_badge-surface: color-mix(in srgb, var(--ui-danger-solid) 19%, var(--ui-surface-default));
501
505
  --_badge-border: color-mix(in srgb, var(--ui-danger-solid) 25%, var(--ui-surface-default));
502
506
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
503
507
  }
504
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-c96818e7] {
508
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
505
509
  --_badge-surface: color-mix(in srgb, var(--ui-success-solid) 19%, var(--ui-surface-default));
506
510
  --_badge-border: color-mix(in srgb, var(--ui-success-solid) 25%, var(--ui-surface-default));
507
511
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
508
512
  }
509
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-c96818e7] {
513
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
510
514
  --_badge-surface: color-mix(in srgb, var(--ui-warning-solid) 19%, var(--ui-surface-default));
511
515
  --_badge-border: color-mix(in srgb, var(--ui-warning-solid) 25%, var(--ui-surface-default));
512
516
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
513
517
  }
514
- [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-c96818e7] {
518
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
515
519
  --_badge-surface: color-mix(in srgb, var(--ui-info-solid) 19%, var(--ui-surface-default));
516
520
  --_badge-border: color-mix(in srgb, var(--ui-info-solid) 25%, var(--ui-surface-default));
517
521
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
@@ -519,12 +523,47 @@ svg[data-v-abaeb064] {
519
523
 
520
524
  /* A solid colour fills with the ink. Its text is the page surface, mixed at 0% only so that it too is
521
525
  invalid while the hook is unset. */
522
- [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-c96818e7] {
526
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-4d2f1396] {
523
527
  --_badge-color-surface: var(--_badge-color-ink);
524
528
  --_badge-color-border: var(--_badge-color-ink);
525
529
  --_badge-color-text: color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default));
526
530
  }
527
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-c96818e7] {
531
+
532
+ /* A translucent inverse surface picks up its filled control's tone. Deepen the tone ink
533
+ toward the theme text to retain contrast against that composed surface. */
534
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-4d2f1396] {
535
+ --_badge-color-surface: color-mix(
536
+ in srgb,
537
+ color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
538
+ transparent
539
+ );
540
+ --_badge-color-border: var(--_badge-color-surface);
541
+ --_badge-color-text: color-mix(in srgb, var(--_badge-color-ink) 85%, var(--ui-text-primary));
542
+ --_badge-outline-surface: var(
543
+ --ui-badge-surface,
544
+ var(--_badge-color-surface, color-mix(in srgb, var(--_badge-text) 88%, transparent))
545
+ );
546
+ border-color: var(
547
+ --ui-badge-border,
548
+ var(--_badge-color-border, color-mix(in srgb, var(--_badge-text) 88%, transparent))
549
+ );
550
+ color: var(
551
+ --ui-badge-text,
552
+ var(--_badge-color-text, color-mix(in srgb, var(--_badge-surface) 85%, var(--ui-text-primary)))
553
+ );
554
+ /* Paint each translucent layer once, including the border, without a bright double-painted ring. */
555
+ background-clip: padding-box;
556
+ }
557
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-4d2f1396] {
558
+ box-shadow: var(--ui-shadow-sm);
559
+ }
560
+
561
+ /* Neutral reverses a subtle surface/ink pair rather than a strong tone. Keep its original
562
+ surface ink: moving it toward dark-theme primary text would reduce overlay contrast. */
563
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-4d2f1396] {
564
+ color: var(--ui-badge-text, var(--_badge-color-text, var(--_badge-surface)));
565
+ }
566
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-4d2f1396] {
528
567
  --_badge-surface: var(--ui-surface-default);
529
568
  --_badge-border: var(--ui-border-strong);
530
569
  --_badge-text: var(--ui-text-secondary);
@@ -532,29 +571,29 @@ svg[data-v-abaeb064] {
532
571
  --_badge-color-surface: initial;
533
572
  --_badge-color-border: var(--_badge-color-ink);
534
573
  }
535
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-c96818e7] {
574
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-4d2f1396] {
536
575
  --_badge-border: var(--ui-accent-solid);
537
576
  --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
538
577
  }
539
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-c96818e7] {
578
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-4d2f1396] {
540
579
  --_badge-border: var(--ui-danger-solid);
541
580
  --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
542
581
  }
543
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-c96818e7] {
582
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-4d2f1396] {
544
583
  --_badge-border: var(--ui-success-solid);
545
584
  --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
546
585
  }
547
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-c96818e7] {
586
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-4d2f1396] {
548
587
  --_badge-border: var(--ui-warning-solid);
549
588
  --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
550
589
  }
551
- [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-c96818e7] {
590
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-4d2f1396] {
552
591
  --_badge-border: var(--ui-info-solid);
553
592
  --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
554
593
  }
555
594
 
556
595
  /* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
557
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-c96818e7] {
596
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-4d2f1396] {
558
597
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
559
598
  display: inline-flex;
560
599
  box-sizing: border-box;
@@ -567,23 +606,29 @@ svg[data-v-abaeb064] {
567
606
  border-radius: var(--ui-radius-md);
568
607
  text-box-trim: none;
569
608
  }
570
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-c96818e7] {
609
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
571
610
  --_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-3) * 2));
572
611
  }
573
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-c96818e7] {
612
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-4d2f1396] {
613
+ --_badge-square-size: var(
614
+ --ui-badge-square-size,
615
+ calc(var(--ui-space-4) * 2 + var(--ui-space-2))
616
+ );
617
+ }
618
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396] {
574
619
  display: inline-flex;
575
620
  align-items: center;
576
621
  justify-content: center;
577
622
  }
578
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-c96818e7-s] {
623
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-4d2f1396-s] {
579
624
  margin-inline-end: 0;
580
625
  }
581
- [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-c96818e7]:empty {
626
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396]:empty {
582
627
  display: none;
583
628
  }
584
629
 
585
630
  /* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
586
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-c96818e7] {
631
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-4d2f1396] {
587
632
  --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-3) * 2));
588
633
  display: inline-flex;
589
634
  flex: none;
@@ -595,25 +640,40 @@ svg[data-v-abaeb064] {
595
640
  border-radius: var(--ui-radius-round);
596
641
  text-box-trim: none;
597
642
  }
598
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-c96818e7] {
643
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-4d2f1396] {
599
644
  --_badge-circle-size: var(--ui-badge-circle-size, var(--ui-space-4));
600
645
  }
601
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-c96818e7] {
646
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-4d2f1396] {
647
+ --_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-4) * 2));
648
+ }
649
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396] {
602
650
  display: inline-flex;
603
651
  align-items: center;
604
652
  justify-content: center;
605
653
  line-height: 1;
606
654
  text-box-trim: none;
607
655
  }
608
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-c96818e7-s] {
656
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-4d2f1396-s] {
609
657
  margin-inline-end: 0;
610
658
  }
611
- [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-c96818e7]:empty {
659
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396]:empty {
612
660
  display: none;
613
661
  }
614
662
 
663
+ /* Center capital and numeral ink, rather than the font's ascent/descent line box.
664
+ Icon labels retain flex geometry; untrimmed browsers keep that fallback too. */
665
+ @supports (text-box-trim: trim-both) {
666
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-4d2f1396]:not(:has(svg)),
667
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-4d2f1396]:not(:has(svg)) {
668
+ display: block;
669
+ text-box-trim: trim-both;
670
+ text-box-edge: cap alphabetic;
671
+ overflow: visible;
672
+ }
673
+ }
674
+
615
675
  /* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
616
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-c96818e7] {
676
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-4d2f1396] {
617
677
  position: relative;
618
678
  box-sizing: border-box;
619
679
  flex: none;
@@ -625,7 +685,7 @@ svg[data-v-abaeb064] {
625
685
  border-radius: var(--ui-radius-round);
626
686
  text-box-trim: none;
627
687
  }
628
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-c96818e7] {
688
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-4d2f1396] {
629
689
  position: absolute;
630
690
  inline-size: 1px;
631
691
  block-size: 1px;
@@ -636,7 +696,7 @@ svg[data-v-abaeb064] {
636
696
 
637
697
  /* The clipped point needs an inset surface over an outer border-colour shape: a native border
638
698
  has no diagonal edge to follow. Keep this edge for every tag variant. */
639
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7] {
699
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396] {
640
700
  --_badge-point: var(--ui-badge-point, var(--ui-space-2));
641
701
 
642
702
  position: relative;
@@ -653,7 +713,7 @@ svg[data-v-abaeb064] {
653
713
  0 100%
654
714
  );
655
715
  }
656
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7]::before {
716
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]::before {
657
717
  content: "";
658
718
  position: absolute;
659
719
  inset: 0;
@@ -668,34 +728,37 @@ svg[data-v-abaeb064] {
668
728
  );
669
729
  pointer-events: none;
670
730
  }
671
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7]:dir(rtl) {
731
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-4d2f1396] {
732
+ background: var(--ui-badge-border, var(--_badge-color-border, var(--_badge-text)));
733
+ }
734
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]:dir(rtl) {
672
735
  padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2));
673
736
  padding-inline-start: calc(
674
737
  var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)
675
738
  );
676
739
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
677
740
  }
678
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7]:dir(rtl)::before {
741
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]:dir(rtl)::before {
679
742
  clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
680
743
  }
681
744
  @media (forced-colors: active) {
682
- [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-c96818e7] {
745
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-4d2f1396] {
683
746
  forced-color-adjust: none;
684
747
  border-color: CanvasText;
685
748
  background: CanvasText;
686
749
  }
687
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7] {
750
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396] {
688
751
  forced-color-adjust: none;
689
752
  background: CanvasText;
690
753
  color: CanvasText;
691
754
  }
692
- [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-c96818e7]::before {
755
+ [data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-4d2f1396]::before {
693
756
  background: Canvas;
694
757
  }
695
758
  }
696
759
 
697
760
  /* A component that sets its display still honours the hidden attribute on its root. */
698
- [data-component~="ui-badge"][hidden][data-v-c96818e7] {
761
+ [data-component~="ui-badge"][hidden][data-v-4d2f1396] {
699
762
  display: none;
700
763
  }
701
764
 
@@ -1282,7 +1345,7 @@ html[data-ui-input-modality="touch"]
1282
1345
  syntax: "*";
1283
1346
  inherits: false;
1284
1347
  }
1285
- [data-component~="ui-callout"][data-v-948263db] {
1348
+ [data-component~="ui-callout"][data-v-ca7a11cb] {
1286
1349
  /* Hooks do not inherit, so the parts below read them from the root. */
1287
1350
  --_ui-callout-icon-column: var(--ui-callout-icon-column);
1288
1351
  --_ui-callout-icon: var(--ui-callout-icon);
@@ -1302,8 +1365,10 @@ html[data-ui-input-modality="touch"]
1302
1365
  padding-inline-end: var(--ui-callout-padding-inline, var(--ui-space-3));
1303
1366
  border: var(--ui-callout-border-width, var(--ui-border-width)) solid
1304
1367
  color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
1305
- border-inline-start: var(--ui-callout-leading-border-width, var(--ui-accent-line-width)) solid
1306
- var(--ui-callout-border, var(--_callout-border));
1368
+ border-inline-start: var(
1369
+ --ui-callout-leading-border-width,
1370
+ var(--ui-callout-border-width, var(--ui-border-width))
1371
+ ) solid color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
1307
1372
  border-radius: var(--ui-radius-md);
1308
1373
  background: var(--ui-callout-surface, var(--_callout-surface));
1309
1374
  color: var(--ui-callout-text, var(--ui-text-primary));
@@ -1314,44 +1379,44 @@ html[data-ui-input-modality="touch"]
1314
1379
  }
1315
1380
 
1316
1381
  /* One line box tall, so the icon centres on the first line of text. */
1317
- .icon[data-v-948263db] {
1382
+ .icon[data-v-ca7a11cb] {
1318
1383
  display: grid;
1319
1384
  place-items: center;
1320
1385
  inline-size: var(--_ui-callout-icon-column, 1.125rem);
1321
1386
  block-size: 1lh;
1322
1387
  color: var(--_ui-callout-icon, var(--_callout-icon));
1323
1388
  }
1324
- .icon svg[data-v-948263db] {
1389
+ .icon svg[data-v-ca7a11cb] {
1325
1390
  inline-size: var(--_ui-callout-icon-size, 1.125rem);
1326
1391
  block-size: var(--_ui-callout-icon-size, 1.125rem);
1327
1392
  }
1328
- .content[data-v-948263db] {
1393
+ .content[data-v-ca7a11cb] {
1329
1394
  min-inline-size: 0;
1330
1395
  }
1331
- [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-948263db],
1332
- [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-948263db] {
1396
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-ca7a11cb],
1397
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-ca7a11cb] {
1333
1398
  --_callout-surface: var(--ui-surface-muted);
1334
1399
  --_callout-border: var(--ui-border-strong);
1335
1400
  --_callout-icon: var(--ui-text-secondary);
1336
1401
  }
1337
- [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-948263db] {
1402
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-ca7a11cb] {
1338
1403
  --_callout-surface: var(--ui-warning-soft);
1339
1404
  --_callout-border: var(--ui-warning-solid);
1340
1405
  --_callout-icon: var(--ui-warning-solid);
1341
1406
  }
1342
- [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-948263db] {
1407
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-ca7a11cb] {
1343
1408
  --_callout-surface: var(--ui-success-soft);
1344
1409
  --_callout-border: var(--ui-success-solid);
1345
1410
  --_callout-icon: var(--ui-success-solid);
1346
1411
  }
1347
- [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-948263db] {
1412
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-ca7a11cb] {
1348
1413
  --_callout-surface: var(--ui-danger-soft);
1349
1414
  --_callout-border: var(--ui-danger-solid);
1350
1415
  --_callout-icon: var(--ui-danger-solid);
1351
1416
  }
1352
1417
 
1353
1418
  /* A link in the callout's text is underlined, so it reads as a link by more than colour. */
1354
- .content a[data-v-948263db-s] {
1419
+ .content a[data-v-ca7a11cb-s] {
1355
1420
  color: var(--ui-accent-active);
1356
1421
  text-decoration: underline;
1357
1422
  text-decoration-thickness: 0.06em;
@@ -1359,7 +1424,7 @@ html[data-ui-input-modality="touch"]
1359
1424
  }
1360
1425
 
1361
1426
  /* A component that sets its display still honours the hidden attribute on its root. */
1362
- [data-component~="ui-callout"][hidden][data-v-948263db] {
1427
+ [data-component~="ui-callout"][hidden][data-v-ca7a11cb] {
1363
1428
  display: none;
1364
1429
  }
1365
1430
 
@@ -5718,7 +5783,7 @@ svg[data-v-b66a1661-s] {
5718
5783
  padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
5719
5784
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
5720
5785
  stay their own. */
5721
- [data-component~="ui-list-item"][data-v-bb9ba09d] {
5786
+ [data-component~="ui-list-item"][data-v-6c3bc8f3] {
5722
5787
  /* Hooks do not inherit, so the parts below read them from the root. */
5723
5788
  --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
5724
5789
 
@@ -5743,97 +5808,106 @@ svg[data-v-b66a1661-s] {
5743
5808
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
5744
5809
  border-color var(--ui-motion-fast) var(--ui-motion-ease);
5745
5810
  }
5746
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-bb9ba09d] {
5811
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-6c3bc8f3] {
5747
5812
  padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
5748
5813
  padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
5749
5814
  border: var(--ui-border-width) solid var(--ui-border-strong);
5750
5815
  border-radius: var(--ui-radius-lg);
5751
5816
  background: var(--ui-surface-raised);
5752
5817
  }
5753
- [data-component~="ui-list-item"][data-v-bb9ba09d]:where(:has(.title a[href])):hover {
5818
+ [data-component~="ui-list-item"][data-v-6c3bc8f3]:where(:has(.title a[href])):hover {
5754
5819
  background: var(--ui-selection-surface);
5755
5820
  }
5756
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-bb9ba09d]:where(:has(.title
5821
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-6c3bc8f3]:where(:has(.title
5757
5822
  a[href])):hover {
5758
5823
  border-color: var(--ui-border-strong);
5759
5824
  }
5760
- [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-bb9ba09d] {
5825
+ [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-6c3bc8f3] {
5761
5826
  background: var(--ui-selection-surface);
5762
5827
  }
5763
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-bb9ba09d] {
5828
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-6c3bc8f3] {
5764
5829
  background: var(--ui-selection-surface);
5765
5830
  color: var(--ui-selection-text);
5766
5831
  }
5767
- [data-component~="ui-list-item"][data-v-bb9ba09d]:has(.title a[href]:focus-visible) {
5832
+ [data-component~="ui-list-item"][data-v-6c3bc8f3]:has(.title a[href]:focus-visible) {
5768
5833
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
5769
5834
  }
5770
- .leading[data-v-bb9ba09d],
5771
- .trailing[data-v-bb9ba09d] {
5835
+ .leading[data-v-6c3bc8f3],
5836
+ .trailing[data-v-6c3bc8f3] {
5772
5837
  display: inline-flex;
5773
5838
  flex: none;
5774
5839
  align-items: center;
5775
5840
  gap: var(--ui-space-2);
5776
5841
  }
5777
- .leading[data-v-bb9ba09d] {
5842
+ .leading[data-v-6c3bc8f3] {
5778
5843
  color: var(--ui-text-muted);
5779
5844
  font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
5780
5845
  }
5781
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-bb9ba09d] {
5846
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-6c3bc8f3] {
5782
5847
  color: var(--ui-selection-text);
5783
5848
  }
5784
5849
 
5785
5850
  /* An explicitly independent leading control sits above the stretched row link. */
5786
- [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading[data-v-bb9ba09d] {
5851
+ [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading[data-v-6c3bc8f3] {
5787
5852
  position: relative;
5788
5853
  z-index: 1;
5789
5854
  }
5790
5855
 
5791
5856
  /* Trailing controls take their own clicks, above the title link's stretched hit area. */
5792
- .trailing[data-v-bb9ba09d] {
5857
+ .trailing[data-v-6c3bc8f3] {
5793
5858
  position: relative;
5794
5859
  z-index: 1;
5795
5860
  color: var(--ui-text-muted);
5796
5861
  font-size: var(--ui-font-size-sm);
5797
5862
  }
5798
- .content[data-v-bb9ba09d] {
5863
+ .content[data-v-6c3bc8f3] {
5799
5864
  display: flex;
5800
5865
  flex: 1;
5801
5866
  flex-direction: column;
5802
5867
  gap: var(--ui-space-0-5, 2px);
5803
5868
  min-inline-size: 0;
5804
5869
  }
5805
- .title[data-v-bb9ba09d],
5806
- .description[data-v-bb9ba09d] {
5870
+ .title[data-v-6c3bc8f3],
5871
+ .description[data-v-6c3bc8f3] {
5807
5872
  display: block;
5808
5873
  min-inline-size: 0;
5809
5874
  overflow: hidden;
5810
5875
  text-overflow: ellipsis;
5811
5876
  white-space: nowrap;
5812
5877
  }
5813
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-bb9ba09d],
5814
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-bb9ba09d] {
5878
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-6c3bc8f3],
5879
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-6c3bc8f3] {
5815
5880
  white-space: normal;
5816
5881
  overflow-wrap: anywhere;
5817
5882
  }
5818
- .title[data-v-bb9ba09d] {
5883
+ .title[data-v-6c3bc8f3] {
5819
5884
  font-size: var(--ui-font-size-md);
5820
5885
  font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
5821
5886
  line-height: var(--ui-line-height-tight);
5822
5887
  }
5823
- .description[data-v-bb9ba09d] {
5888
+
5889
+ /* Keep identity and disclosure marks beside the first line, even with a long description. */
5890
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"][data-v-6c3bc8f3] {
5891
+ align-items: flex-start;
5892
+ }
5893
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .leading[data-v-6c3bc8f3],
5894
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .trailing[data-v-6c3bc8f3] {
5895
+ min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
5896
+ }
5897
+ .description[data-v-6c3bc8f3] {
5824
5898
  color: var(--ui-text-muted);
5825
5899
  font-size: var(--ui-font-size-sm);
5826
5900
  line-height: var(--ui-line-height-tight);
5827
5901
  }
5828
- .title > a[data-v-bb9ba09d-s] {
5902
+ .title > a[data-v-6c3bc8f3-s] {
5829
5903
  color: inherit;
5830
5904
  text-decoration: none;
5831
5905
  }
5832
- .title > a[data-v-bb9ba09d-s]:focus-visible {
5906
+ .title > a[data-v-6c3bc8f3-s]:focus-visible {
5833
5907
  outline: none;
5834
5908
  box-shadow: none;
5835
5909
  }
5836
- .title > a[href][data-v-bb9ba09d-s]::after {
5910
+ .title > a[href][data-v-6c3bc8f3-s]::after {
5837
5911
  position: absolute;
5838
5912
  inset: 0;
5839
5913
  border-radius: inherit;
@@ -5841,24 +5915,24 @@ svg[data-v-b66a1661-s] {
5841
5915
  }
5842
5916
 
5843
5917
  /* An unused region takes no space. */
5844
- .leading[data-v-bb9ba09d]:empty,
5845
- .description[data-v-bb9ba09d]:empty,
5846
- .trailing[data-v-bb9ba09d]:empty {
5918
+ .leading[data-v-6c3bc8f3]:empty,
5919
+ .description[data-v-6c3bc8f3]:empty,
5920
+ .trailing[data-v-6c3bc8f3]:empty {
5847
5921
  display: none;
5848
5922
  }
5849
5923
  @media (forced-colors: active) {
5850
- [data-component~="ui-list-item"][data-v-bb9ba09d]:has(a:focus-visible) {
5924
+ [data-component~="ui-list-item"][data-v-6c3bc8f3]:has(a:focus-visible) {
5851
5925
  outline: var(--ui-focus-width) solid Highlight;
5852
5926
  outline-offset: calc(-1 * var(--ui-focus-width));
5853
5927
  }
5854
- :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-bb9ba09d], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-bb9ba09d]):not(:has(a:focus-visible)) {
5928
+ :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-6c3bc8f3], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-6c3bc8f3]):not(:has(a:focus-visible)) {
5855
5929
  outline: var(--ui-border-width) solid Highlight;
5856
5930
  outline-offset: calc(-1 * var(--ui-border-width));
5857
5931
  }
5858
5932
  }
5859
5933
 
5860
5934
  /* A component that sets its display still honours the hidden attribute on its root. */
5861
- [data-component~="ui-list-item"][hidden][data-v-bb9ba09d] {
5935
+ [data-component~="ui-list-item"][hidden][data-v-6c3bc8f3] {
5862
5936
  display: none;
5863
5937
  }
5864
5938
 
@@ -8677,8 +8751,9 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8677
8751
  syntax: "*";
8678
8752
  inherits: false;
8679
8753
  }
8680
- [data-component~="ui-toast"][data-v-241766bc] {
8754
+ [data-component~="ui-toast"][data-v-af4b9641] {
8681
8755
  --_ui-toast-accent: var(--ui-border-strong);
8756
+ --_ui-toast-surface: var(--ui-surface-muted);
8682
8757
 
8683
8758
  display: flex;
8684
8759
  align-items: center;
@@ -8687,42 +8762,50 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8687
8762
  inline-size: 100%;
8688
8763
  margin: 0;
8689
8764
  padding: var(--ui-space-3) var(--ui-space-4);
8765
+ /* The close button's internal space supplies the rest of the trailing inset. */
8766
+ padding-inline-end: var(--ui-space-2);
8690
8767
  border: var(--ui-border-width) solid
8691
- var(--ui-toast-border, var(--ui-overlay-border, var(--ui-border-strong)));
8692
- border-inline-start: var(--ui-accent-line-width) solid
8693
- var(--ui-toast-accent, var(--_ui-toast-accent));
8768
+ var(
8769
+ --ui-toast-border,
8770
+ var(--ui-overlay-border, var(--ui-toast-accent, var(--_ui-toast-accent)))
8771
+ );
8694
8772
  border-radius: var(--ui-toast-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
8695
- background: var(--ui-toast-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
8773
+ background: var(--ui-toast-surface, var(--ui-overlay-surface, var(--_ui-toast-surface)));
8696
8774
  color: var(--ui-text-primary);
8775
+ font-family: var(--ui-font-family-sans);
8776
+ font-size: var(--ui-font-size-sm);
8777
+ font-weight: var(--ui-font-normal);
8778
+ line-height: var(--ui-line-height-md);
8697
8779
  box-shadow: var(
8698
8780
  --ui-toast-shadow,
8699
8781
  var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
8700
8782
  );
8701
8783
  pointer-events: auto;
8702
8784
  }
8703
- [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-241766bc] {
8785
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=info"][data-v-af4b9641] {
8704
8786
  --_ui-toast-accent: var(--ui-info-solid);
8787
+ --_ui-toast-surface: var(--ui-info-soft);
8705
8788
  }
8706
- [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-241766bc] {
8789
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=success"][data-v-af4b9641] {
8707
8790
  --_ui-toast-accent: var(--ui-success-solid);
8791
+ --_ui-toast-surface: var(--ui-success-soft);
8708
8792
  }
8709
- [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-241766bc] {
8793
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=warning"][data-v-af4b9641] {
8710
8794
  --_ui-toast-accent: var(--ui-warning-solid);
8795
+ --_ui-toast-surface: var(--ui-warning-soft);
8711
8796
  }
8712
- [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-241766bc] {
8797
+ [data-component~="ui-toast"][data-ui-toast-state~="tone=danger"][data-v-af4b9641] {
8713
8798
  --_ui-toast-accent: var(--ui-danger-solid);
8799
+ --_ui-toast-surface: var(--ui-danger-soft);
8714
8800
  }
8715
- .message[data-v-241766bc] {
8801
+ .message[data-v-af4b9641] {
8716
8802
  min-inline-size: 0;
8717
8803
  flex: 1;
8718
8804
  }
8719
- .action[data-v-241766bc]:not(:has(> *)) {
8805
+ .action[data-v-af4b9641]:not(:has(> *)) {
8720
8806
  display: none;
8721
8807
  }
8722
- .dismiss[data-v-241766bc] {
8723
- margin-inline-end: calc(var(--ui-space-2) * -1);
8724
- }
8725
- [data-component~="ui-toast"][hidden][data-v-241766bc] {
8808
+ [data-component~="ui-toast"][hidden][data-v-af4b9641] {
8726
8809
  display: none;
8727
8810
  }
8728
8811
 
@@ -8751,7 +8834,7 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8751
8834
  syntax: "*";
8752
8835
  inherits: false;
8753
8836
  }
8754
- [data-component~="ui-toast-region"][data-v-4234b07d] {
8837
+ [data-component~="ui-toast-region"][data-v-1a7d67f7] {
8755
8838
  /* Hooks do not inherit, so the parts below read them from the root. */
8756
8839
  --_ui-toast-region-surface: var(--ui-toast-region-surface);
8757
8840
  --_ui-toast-region-border: var(--ui-toast-region-border);
@@ -8781,81 +8864,93 @@ tbody tr[data-v-722ca2ea-s]:last-child > * {
8781
8864
  box-shadow: none;
8782
8865
  pointer-events: none;
8783
8866
  }
8784
- [data-component~="ui-toast-region"][data-v-4234b07d]:not(:popover-open) {
8867
+ [data-component~="ui-toast-region"][data-v-1a7d67f7]:not(:popover-open) {
8785
8868
  display: none;
8786
8869
  }
8787
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-start"][data-v-4234b07d],
8788
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-4234b07d] {
8870
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-start"][data-v-1a7d67f7],
8871
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-1a7d67f7] {
8789
8872
  left: auto;
8790
8873
  right: auto;
8791
8874
  inset-inline-start: calc(var(--ui-space-4) + env(safe-area-inset-left));
8792
8875
  transform: none;
8793
8876
  }
8794
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-end"][data-v-4234b07d],
8795
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-4234b07d] {
8877
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=top-end"][data-v-1a7d67f7],
8878
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-1a7d67f7] {
8796
8879
  left: auto;
8797
8880
  right: auto;
8798
8881
  inset-inline-end: calc(var(--ui-space-4) + env(safe-area-inset-right));
8799
8882
  transform: none;
8800
8883
  }
8801
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"][data-v-4234b07d],
8802
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-4234b07d],
8803
- [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-4234b07d] {
8884
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"][data-v-1a7d67f7],
8885
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"][data-v-1a7d67f7],
8886
+ [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"][data-v-1a7d67f7] {
8804
8887
  top: auto;
8805
8888
  bottom: calc(var(--ui-space-4) + env(safe-area-inset-bottom));
8806
8889
  }
8807
- [data-component~="ui-toast-region"] > .toast[data-v-4234b07d],
8808
- [data-component~="ui-toast-region"] > [data-v-4234b07d-s] {
8890
+ [data-component~="ui-toast-region"] > .toast[data-v-1a7d67f7],
8891
+ [data-component~="ui-toast-region"] > [data-v-1a7d67f7-s] {
8809
8892
  pointer-events: auto;
8810
8893
  }
8811
- .toast[data-v-4234b07d] {
8894
+ .toast[data-v-1a7d67f7] {
8895
+ --_ui-toast-region-accent: var(--ui-border-strong);
8896
+ --_ui-toast-region-tone-surface: var(--ui-surface-muted);
8812
8897
  display: grid;
8813
8898
  grid-template-columns: 1fr auto;
8814
8899
  gap: var(--ui-space-2);
8815
8900
  align-items: start;
8816
8901
  border: var(--ui-border-width) solid
8817
- var(--_ui-toast-region-border, var(--ui-overlay-border, var(--ui-border-strong)));
8902
+ var(--_ui-toast-region-border, var(--ui-overlay-border, var(--_ui-toast-region-accent)));
8818
8903
  border-radius: var(--_ui-toast-region-radius, var(--ui-overlay-radius, var(--ui-radius-lg)));
8819
8904
  padding: var(--ui-space-3) var(--ui-space-4);
8905
+ /* The close button's internal space supplies the rest of the trailing inset. */
8906
+ padding-inline-end: var(--ui-space-2);
8820
8907
  background: var(
8821
8908
  --_ui-toast-region-surface,
8822
- var(--ui-overlay-surface, var(--ui-surface-elevated))
8909
+ var(--ui-overlay-surface, var(--_ui-toast-region-tone-surface))
8823
8910
  );
8824
8911
  color: var(--ui-text-primary);
8912
+ font-family: var(--ui-font-family-sans);
8913
+ font-size: var(--ui-font-size-sm);
8914
+ font-weight: var(--ui-font-normal);
8915
+ line-height: var(--ui-line-height-md);
8825
8916
  box-shadow: var(
8826
8917
  --_ui-toast-region-shadow,
8827
8918
  var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
8828
8919
  );
8829
- animation: ui-toast-enter-4234b07d var(--_ui-toast-region-enter-duration, 0.32s)
8920
+ animation: ui-toast-enter-1a7d67f7 var(--_ui-toast-region-enter-duration, 0.32s)
8830
8921
  var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
8831
8922
  }
8832
- .toast[data-tone="info"][data-v-4234b07d] {
8833
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-info-solid);
8923
+ .toast[data-tone="info"][data-v-1a7d67f7] {
8924
+ --_ui-toast-region-accent: var(--ui-info-solid);
8925
+ --_ui-toast-region-tone-surface: var(--ui-info-soft);
8834
8926
  }
8835
- .toast[data-tone="success"][data-v-4234b07d] {
8836
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-success-solid);
8927
+ .toast[data-tone="success"][data-v-1a7d67f7] {
8928
+ --_ui-toast-region-accent: var(--ui-success-solid);
8929
+ --_ui-toast-region-tone-surface: var(--ui-success-soft);
8837
8930
  }
8838
- .toast[data-tone="warning"][data-v-4234b07d] {
8839
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-warning-solid);
8931
+ .toast[data-tone="warning"][data-v-1a7d67f7] {
8932
+ --_ui-toast-region-accent: var(--ui-warning-solid);
8933
+ --_ui-toast-region-tone-surface: var(--ui-warning-soft);
8840
8934
  }
8841
- .toast[data-tone="danger"][data-v-4234b07d] {
8842
- border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger-solid);
8935
+ .toast[data-tone="danger"][data-v-1a7d67f7] {
8936
+ --_ui-toast-region-accent: var(--ui-danger-solid);
8937
+ --_ui-toast-region-tone-surface: var(--ui-danger-soft);
8843
8938
  }
8844
8939
 
8845
8940
  /* Leaving slides on down and fades; the controller removes the toast when this ends. */
8846
- .toast.closing[data-v-4234b07d] {
8847
- animation: ui-toast-exit-4234b07d var(--_ui-toast-region-exit-duration, 0.22s) var(--ui-motion-ease) both;
8941
+ .toast.closing[data-v-1a7d67f7] {
8942
+ animation: ui-toast-exit-1a7d67f7 var(--_ui-toast-region-exit-duration, 0.22s) var(--ui-motion-ease) both;
8848
8943
  pointer-events: none;
8849
8944
  }
8850
8945
  :is([data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"])
8851
- .toast[data-v-4234b07d] {
8852
- animation-name: ui-toast-enter-bottom-4234b07d;
8946
+ .toast[data-v-1a7d67f7] {
8947
+ animation-name: ui-toast-enter-bottom-1a7d67f7;
8853
8948
  }
8854
8949
  :is([data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-start"], [data-component~="ui-toast-region"][data-ui-toast-region-state~="placement=bottom-end"])
8855
- .toast.closing[data-v-4234b07d] {
8856
- animation-name: ui-toast-exit-bottom-4234b07d;
8950
+ .toast.closing[data-v-1a7d67f7] {
8951
+ animation-name: ui-toast-exit-bottom-1a7d67f7;
8857
8952
  }
8858
- @keyframes ui-toast-enter-4234b07d {
8953
+ @keyframes ui-toast-enter-1a7d67f7 {
8859
8954
  from {
8860
8955
  opacity: 0;
8861
8956
  transform: translateY(-1rem);
@@ -8865,7 +8960,7 @@ to {
8865
8960
  transform: translateY(0);
8866
8961
  }
8867
8962
  }
8868
- @keyframes ui-toast-exit-4234b07d {
8963
+ @keyframes ui-toast-exit-1a7d67f7 {
8869
8964
  from {
8870
8965
  opacity: 1;
8871
8966
  transform: translateY(0);
@@ -8875,7 +8970,7 @@ to {
8875
8970
  transform: translateY(0.75rem);
8876
8971
  }
8877
8972
  }
8878
- @keyframes ui-toast-enter-bottom-4234b07d {
8973
+ @keyframes ui-toast-enter-bottom-1a7d67f7 {
8879
8974
  from {
8880
8975
  opacity: 0;
8881
8976
  transform: translateY(1rem);
@@ -8885,7 +8980,7 @@ to {
8885
8980
  transform: translateY(0);
8886
8981
  }
8887
8982
  }
8888
- @keyframes ui-toast-exit-bottom-4234b07d {
8983
+ @keyframes ui-toast-exit-bottom-1a7d67f7 {
8889
8984
  from {
8890
8985
  opacity: 1;
8891
8986
  transform: translateY(0);
@@ -8896,21 +8991,20 @@ to {
8896
8991
  }
8897
8992
  }
8898
8993
  @media (prefers-reduced-motion: reduce) {
8899
- .toast[data-v-4234b07d], .toast.closing[data-v-4234b07d] {
8994
+ .toast[data-v-1a7d67f7], .toast.closing[data-v-1a7d67f7] {
8900
8995
  animation: none;
8901
8996
  }
8902
8997
  }
8903
- .message[data-v-4234b07d] {
8998
+ .message[data-v-1a7d67f7] {
8904
8999
  min-inline-size: 0;
8905
9000
  align-self: center;
8906
9001
  }
8907
- .dismiss[data-v-4234b07d] {
9002
+ .dismiss[data-v-1a7d67f7] {
8908
9003
  align-self: center;
8909
- margin-inline-end: calc(var(--ui-space-2) * -1);
8910
9004
  }
8911
9005
 
8912
9006
  /* A component that sets its display still honours the hidden attribute on its root. */
8913
- [data-component~="ui-toast-region"][hidden][data-v-4234b07d] {
9007
+ [data-component~="ui-toast-region"][hidden][data-v-1a7d67f7] {
8914
9008
  display: none;
8915
9009
  }
8916
9010