@24vlh/vds 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vds.css CHANGED
@@ -10292,6 +10292,1364 @@ select.form-control:not([multiple]):not([size]) {
10292
10292
  pointer-events: none;
10293
10293
  }
10294
10294
 
10295
+ /************************************************************
10296
+ * VLAH DESIGN SYSTEM (VDS) - Inbox List Component
10297
+ *
10298
+ * File: vds-inbox.css
10299
+ *
10300
+ * Responsibilities:
10301
+ * - Row-based list pattern for inbox workflows:
10302
+ * title, glance, badges, labels, status icons, actions
10303
+ * - Responsive action reflow (right -> below on small screens)
10304
+ * - Row variants: minimal / normal / rich / mega
10305
+ * - Flag colors (5 options) for fast scanning
10306
+ * - Expandable-row helpers (open state only; no JS)
10307
+ * - Top navigation bar (search + tabs + optional left/right action slots)
10308
+ * - Flat list variant (table-like separators) + rounded card variant
10309
+ * - Action style variants (flat vs rich) using tokens only
10310
+ ************************************************************/
10311
+
10312
+ /* ---------------------------------------------------------
10313
+ 0. ROOT (tokens + component defaults)
10314
+ --------------------------------------------------------- */
10315
+
10316
+ [data-vds-inbox],
10317
+ .vds-inbox {
10318
+ --inbox-row-radius: var(--radius-lg, var(--radius-md));
10319
+ --inbox-row-border: var(--color-border-subtle);
10320
+ --inbox-row-bg: var(--color-surface);
10321
+ --inbox-row-bg-hover: var(--color-surface-subtle, var(--color-surface-hover));
10322
+ --inbox-row-shadow: none;
10323
+
10324
+ --inbox-title-size: var(--text-sm);
10325
+ --inbox-desc-size: var(--text-xs);
10326
+
10327
+ --inbox-icon-size: var(--icon-sm);
10328
+ --inbox-icon-muted: var(--color-icon-muted, var(--color-text-soft));
10329
+ --inbox-icon-strong: var(--color-icon-strong, var(--color-text));
10330
+
10331
+ --inbox-action-gap: var(--space-2);
10332
+ --inbox-badge-gap: var(--space-2);
10333
+
10334
+ --inbox-row-pad-x: var(--space-4);
10335
+ --inbox-row-pad-y: var(--space-4);
10336
+
10337
+ --inbox-actions-min-width: 0;
10338
+ --inbox-actions-justify: flex-end; /* right rail on wide screens */
10339
+
10340
+ width: 100%;
10341
+ }
10342
+
10343
+ /* Optional: make the whole surface slightly denser */
10344
+
10345
+ .vds-inbox--dense {
10346
+ --inbox-row-pad-x: var(--space-3);
10347
+ --inbox-row-pad-y: var(--space-3);
10348
+ --inbox-title-size: var(--text-xs);
10349
+ --inbox-desc-size: var(--text-xxs, var(--text-xs));
10350
+ }
10351
+
10352
+ /* ---------------------------------------------------------
10353
+ 1. TOP NAV (search + tabs + actions)
10354
+ --------------------------------------------------------- */
10355
+
10356
+ .vds-inbox-nav {
10357
+ display: flex;
10358
+ flex-direction: column;
10359
+ gap: 0.75rem;
10360
+ gap: var(--space-3);
10361
+ margin-bottom: 1rem;
10362
+ margin-bottom: var(--space-4);
10363
+ }
10364
+
10365
+ .vds-inbox-nav__bar {
10366
+ display: flex;
10367
+ align-items: center;
10368
+ justify-content: space-between;
10369
+ gap: 1rem;
10370
+ gap: var(--space-4);
10371
+
10372
+ padding: 0.75rem 1rem;
10373
+
10374
+ padding: var(--space-3) var(--space-4);
10375
+ border: 1px solid var(--color-border-subtle);
10376
+ border-radius: 12px;
10377
+ border-radius: var(--radius-lg);
10378
+ background: var(--color-surface);
10379
+ }
10380
+
10381
+ /* left / right rails */
10382
+
10383
+ .vds-inbox-nav__left,
10384
+ .vds-inbox-nav__right {
10385
+ display: inline-flex;
10386
+ align-items: center;
10387
+ gap: 0.5rem;
10388
+ gap: var(--space-2);
10389
+ flex: 0 0 auto;
10390
+ }
10391
+
10392
+ /* bottom rail (optional helper row under tabs/search) */
10393
+
10394
+ .vds-inbox-nav__bottom {
10395
+ display: flex;
10396
+ align-items: center;
10397
+ justify-content: space-between;
10398
+ gap: 0.75rem;
10399
+ gap: var(--space-3);
10400
+ }
10401
+
10402
+ .vds-inbox-nav__bottom-left,
10403
+ .vds-inbox-nav__bottom-right {
10404
+ display: inline-flex;
10405
+ align-items: center;
10406
+ gap: 0.5rem;
10407
+ gap: var(--space-2);
10408
+ }
10409
+
10410
+ .vds-inbox-nav__bottom-left:empty,
10411
+ .vds-inbox-nav__bottom-right:empty {
10412
+ display: none;
10413
+ }
10414
+
10415
+ /* bottom alignment helpers */
10416
+
10417
+ .vds-inbox-nav__bottom--left {
10418
+ justify-content: flex-start;
10419
+ }
10420
+
10421
+ .vds-inbox-nav__bottom--center {
10422
+ justify-content: center;
10423
+ }
10424
+
10425
+ .vds-inbox-nav__bottom--right {
10426
+ justify-content: flex-end;
10427
+ }
10428
+
10429
+ .vds-inbox-nav__bottom--split {
10430
+ justify-content: space-between;
10431
+ }
10432
+
10433
+ /* Tabs */
10434
+
10435
+ .vds-inbox-tabs {
10436
+ display: inline-flex;
10437
+ align-items: center;
10438
+ gap: 0.25rem;
10439
+ gap: var(--space-1);
10440
+ padding: 0.25rem;
10441
+ padding: var(--space-1);
10442
+ border-radius: 12px;
10443
+ border-radius: var(--radius-lg);
10444
+ border: 1px solid var(--color-border-subtle);
10445
+ background: var(--color-surface-subtle);
10446
+ flex: 1 1 auto;
10447
+ min-width: 0;
10448
+ justify-content: center;
10449
+ }
10450
+
10451
+ .vds-inbox-tab {
10452
+ -webkit-appearance: none;
10453
+ -moz-appearance: none;
10454
+ appearance: none;
10455
+ border: 0;
10456
+ background: transparent;
10457
+ color: var(--color-text-muted);
10458
+ font-weight: 600;
10459
+ font-weight: var(--font-weight-semibold);
10460
+ font-size: 0.875rem;
10461
+ font-size: var(--text-sm);
10462
+ line-height: 1;
10463
+
10464
+ padding: 0.5rem 0.75rem;
10465
+
10466
+ padding: var(--space-2) var(--space-3);
10467
+ border-radius: 8px;
10468
+ border-radius: var(--radius-md);
10469
+
10470
+ display: inline-flex;
10471
+ align-items: center;
10472
+ gap: 0.5rem;
10473
+ gap: var(--space-2);
10474
+ cursor: pointer;
10475
+ -webkit-user-select: none;
10476
+ -moz-user-select: none;
10477
+ user-select: none;
10478
+ white-space: nowrap;
10479
+ }
10480
+
10481
+ .vds-inbox-tab:hover {
10482
+ background: var(--color-surface);
10483
+ color: var(--color-text);
10484
+ }
10485
+
10486
+ .vds-inbox-tab[aria-selected="true"],
10487
+ .vds-inbox-tab.is-active {
10488
+ background: var(--color-surface);
10489
+ color: var(--color-text);
10490
+ border: 1px solid var(--color-border-subtle);
10491
+ }
10492
+
10493
+ .vds-inbox-tab:focus-visible {
10494
+ outline: 2px solid var(--focus-ring-color);
10495
+ outline: var(--focus-ring-width) solid var(--focus-ring-color);
10496
+ outline-offset: 2px;
10497
+ outline-offset: var(--focus-ring-offset);
10498
+ }
10499
+
10500
+ /* Optional tab badge */
10501
+
10502
+ .vds-inbox-tab__count {
10503
+ display: inline-flex;
10504
+ align-items: center;
10505
+ justify-content: center;
10506
+ min-width: 1.5rem;
10507
+ height: 1.5rem;
10508
+ padding: 0 0.5rem;
10509
+ padding: 0 var(--space-2);
10510
+
10511
+ border-radius: 9999px;
10512
+
10513
+ border-radius: var(--radius-pill);
10514
+ border: 1px solid var(--color-border-subtle);
10515
+ background: var(--color-surface-subtle);
10516
+ color: var(--color-text-muted);
10517
+
10518
+ font-size: 0.8125rem;
10519
+
10520
+ font-size: var(--text-xs);
10521
+ font-weight: 600;
10522
+ font-weight: var(--font-weight-semibold);
10523
+ }
10524
+
10525
+ /* --- Search (icon -> expanding field) --- */
10526
+
10527
+ .vds-inbox-search {
10528
+ display: inline-flex;
10529
+ align-items: center;
10530
+ gap: 0.5rem;
10531
+ gap: var(--space-2);
10532
+ min-width: 0;
10533
+ }
10534
+
10535
+ .vds-inbox-search__toggle {
10536
+ display: inline-flex;
10537
+ align-items: center;
10538
+ justify-content: center;
10539
+
10540
+ width: 2.25rem;
10541
+
10542
+ width: var(--icon-container-md, 2.25rem);
10543
+ height: 2.25rem;
10544
+ height: var(--icon-container-md, 2.25rem);
10545
+
10546
+ border-radius: 8px;
10547
+
10548
+ border-radius: var(--radius-md);
10549
+ border: 1px solid var(--color-border-subtle);
10550
+ background: var(--color-surface);
10551
+
10552
+ color: var(--color-text);
10553
+ transition: background-color 120ms ease-out, border-color 120ms ease-out;
10554
+ transition: background-color var(--transition-fast), border-color var(--transition-fast);
10555
+ }
10556
+
10557
+ .vds-inbox-search__toggle:hover {
10558
+ background: var(--color-surface-subtle, var(--color-surface-hover));
10559
+ border-color: var(--color-border-strong, var(--color-border-subtle));
10560
+ }
10561
+
10562
+ .vds-inbox-search__toggle svg {
10563
+ width: 1.15rem;
10564
+ width: var(--icon-xs, 1rem);
10565
+ height: 1.15rem;
10566
+ height: var(--icon-xs, 1rem);
10567
+ color: currentColor;
10568
+ }
10569
+
10570
+ /* Field wrapper starts collapsed */
10571
+
10572
+ .vds-inbox-search__field {
10573
+ display: inline-flex;
10574
+ align-items: center;
10575
+ gap: 0.5rem;
10576
+ gap: var(--space-2);
10577
+
10578
+ width: 0;
10579
+ opacity: 0;
10580
+ overflow: hidden;
10581
+ pointer-events: none;
10582
+
10583
+ transition: width 180ms ease-out, opacity 120ms ease-out;
10584
+
10585
+ transition: width var(--transition-normal), opacity var(--transition-fast);
10586
+ }
10587
+
10588
+ .vds-inbox-search__input {
10589
+ width: 100%;
10590
+ min-width: 10rem;
10591
+ max-width: 32rem;
10592
+
10593
+ padding: 0.5rem 0.75rem;
10594
+
10595
+ padding: var(--space-2) var(--space-3);
10596
+ border-radius: 8px;
10597
+ border-radius: var(--radius-md);
10598
+ border: 1px solid var(--color-border-subtle);
10599
+ background: var(--color-surface);
10600
+ color: var(--color-text);
10601
+
10602
+ font-size: 0.875rem;
10603
+
10604
+ font-size: var(--text-sm);
10605
+ line-height: 1.5;
10606
+ line-height: var(--line-height-normal);
10607
+ }
10608
+
10609
+ /* Open state: set on .vds-inbox-search or on toggle via aria-expanded */
10610
+
10611
+ .vds-inbox-search.is-open .vds-inbox-search__field,
10612
+ .vds-inbox-search__toggle[aria-expanded="true"] + .vds-inbox-search__field {
10613
+ width: min(36rem, 52vw);
10614
+ opacity: 1;
10615
+ pointer-events: auto;
10616
+ }
10617
+
10618
+ /* Full-width search helper (mobile or on demand) */
10619
+
10620
+ .vds-inbox-search--full {
10621
+ width: 100%;
10622
+ }
10623
+
10624
+ .vds-inbox-search--full .vds-inbox-search__field {
10625
+ width: 100%;
10626
+ opacity: 1;
10627
+ pointer-events: auto;
10628
+ }
10629
+
10630
+ /* ---------------------------------------------------------
10631
+ 2. LIST (rounded vs flat)
10632
+ --------------------------------------------------------- */
10633
+
10634
+ .vds-inbox__list {
10635
+ display: flex;
10636
+ flex-direction: column;
10637
+ gap: 0.5rem;
10638
+ gap: var(--space-2);
10639
+ }
10640
+
10641
+ /* Flat list: separators + list border, no side borders on rows */
10642
+
10643
+ .vds-inbox--flat .vds-inbox__list {
10644
+ gap: 0;
10645
+ border-top: 1px solid var(--color-border-subtle);
10646
+ border-bottom: 1px solid var(--color-border-subtle);
10647
+ }
10648
+
10649
+ .vds-inbox--flat .vds-inbox-row {
10650
+ border-left: 0;
10651
+ border-right: 0;
10652
+ border-top: 0;
10653
+ border-radius: 0;
10654
+ }
10655
+
10656
+ .vds-inbox--flat .vds-inbox-row + .vds-inbox-row {
10657
+ border-top: 1px solid var(--color-border-subtle);
10658
+ }
10659
+
10660
+ /* ---------------------------------------------------------
10661
+ 3. ROW BASE
10662
+ --------------------------------------------------------- */
10663
+
10664
+ .vds-inbox-row {
10665
+ position: relative;
10666
+ width: 100%;
10667
+ background: var(--inbox-row-bg);
10668
+ border: 1px solid var(--inbox-row-border);
10669
+ border-radius: var(--inbox-row-radius);
10670
+ box-shadow: var(--inbox-row-shadow);
10671
+ overflow: clip;
10672
+
10673
+ transition: background-color 120ms ease-out, border-color 120ms ease-out, transform 120ms ease-out;
10674
+
10675
+ transition: background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
10676
+ }
10677
+
10678
+ .vds-inbox-row:hover {
10679
+ background: var(--inbox-row-bg-hover);
10680
+ border-color: var(--color-border-strong, var(--color-border-subtle));
10681
+ }
10682
+
10683
+ .vds-inbox-row:focus-visible {
10684
+ outline: 2px solid var(--focus-ring-color);
10685
+ outline: var(--focus-ring-width) solid var(--focus-ring-color);
10686
+ outline-offset: 2px;
10687
+ outline-offset: var(--focus-ring-offset);
10688
+ }
10689
+
10690
+ /* Recommended clickable wrapper: <button> or <a> */
10691
+
10692
+ .vds-inbox-row__main {
10693
+ width: 100%;
10694
+ border: 0;
10695
+ background: transparent;
10696
+ padding: 0;
10697
+ text-align: left;
10698
+ color: inherit;
10699
+ display: grid;
10700
+ grid-template-columns: 1fr;
10701
+ grid-template-rows: auto auto;
10702
+ }
10703
+
10704
+ /* Core grid: meta left + actions right */
10705
+
10706
+ .vds-inbox-row__inner {
10707
+ display: grid;
10708
+ grid-template-columns: 1fr auto;
10709
+ grid-gap: 1rem;
10710
+ grid-gap: var(--space-4);
10711
+ gap: 1rem;
10712
+ gap: var(--space-4);
10713
+ align-items: start;
10714
+ padding: var(--inbox-row-pad-y) var(--inbox-row-pad-x);
10715
+ grid-column: 1 / -1;
10716
+ grid-row: 1;
10717
+ }
10718
+
10719
+ /* ---------------------------------------------------------
10720
+ ROW GRID REFACTOR: meta | actions, then data full-width
10721
+ (glance + details + metafoot live under __data)
10722
+ --------------------------------------------------------- */
10723
+
10724
+ /* Replace the simple 2-col grid with explicit areas */
10725
+
10726
+ .vds-inbox-row__inner {
10727
+ grid-template-columns: 1fr auto; /* keep the intent:contentReference[oaicite:2]{index=2} */
10728
+ grid-template-areas:
10729
+ "badges badges"
10730
+ "meta actions"
10731
+ "data data";
10732
+ }
10733
+
10734
+ /* Existing badges row is already full width:contentReference[oaicite:3]{index=3}.
10735
+ We map it into the grid areas as well (harmless if not present). */
10736
+
10737
+ .vds-inbox-row__badges {
10738
+ grid-area: badges;
10739
+ }
10740
+
10741
+ .vds-inbox-row__meta {
10742
+ grid-area: meta;
10743
+ min-width: 0;
10744
+ }
10745
+
10746
+ .vds-inbox-row__actions {
10747
+ grid-area: actions;
10748
+ }
10749
+
10750
+ /* NEW: one container for all “row data” blocks */
10751
+
10752
+ .vds-inbox-row__data {
10753
+ grid-area: data;
10754
+ min-width: 0;
10755
+ display: flex;
10756
+ flex-direction: column;
10757
+ gap: 0.5rem;
10758
+ gap: var(--space-2);
10759
+ }
10760
+
10761
+ /* Keep existing styling for these blocks; they now simply sit inside __data.
10762
+ (These selectors already exist in your file.):contentReference[oaicite:4]{index=4}:contentReference[oaicite:5]{index=5}:contentReference[oaicite:6]{index=6} */
10763
+
10764
+ /* --- Mobile / narrow screens: actions must be last, full width, aligned right --- */
10765
+
10766
+ @media (max-width: 768px) {
10767
+ .vds-inbox-row__inner {
10768
+ grid-template-columns: 1fr;
10769
+ grid-template-areas:
10770
+ "badges"
10771
+ "meta"
10772
+ "data"
10773
+ "actions";
10774
+ }
10775
+
10776
+ /* Ensure actions take full width and stay right-aligned (your default is token-driven):contentReference[oaicite:7]{index=7} */
10777
+ .vds-inbox-row__actions {
10778
+ min-width: 0;
10779
+ justify-content: flex-end;
10780
+ padding-top: 0;
10781
+ }
10782
+ }
10783
+
10784
+ /* --- Actions “full row” helper should still work; now it just reinforces the layout --- */
10785
+
10786
+ .vds-inbox-row--actions-full .vds-inbox-row__actions {
10787
+ grid-column: 1 / -1; /* already in file:contentReference[oaicite:8]{index=8} */
10788
+ }
10789
+
10790
+ /* ---------------------------------------------------------
10791
+ LABEL ALIGNMENT FIX
10792
+ --------------------------------------------------------- */
10793
+
10794
+ /* The symptoms you described usually happen when labels are pushed right
10795
+ (commonly via margin-left:auto or justify-content:flex-end).
10796
+ Force labels to align left and wrap cleanly. */
10797
+
10798
+ .vds-inbox-row__labels {
10799
+ justify-content: flex-start;
10800
+ align-items: center;
10801
+ text-align: left;
10802
+ margin-left: 0;
10803
+ }
10804
+
10805
+ /* If your title-line uses flex and previously relied on labels being “right side”,
10806
+ keep that behaviour by controlling the title-line instead (recommended pattern):
10807
+ - title grows
10808
+ - labels sit after title but do NOT right-align internally
10809
+ */
10810
+
10811
+ .vds-inbox-row__title {
10812
+ min-width: 0;
10813
+ flex: 1 1 auto;
10814
+ }
10815
+
10816
+ /* ---------------------------------------------------------
10817
+ 4. ROW VARIANTS (minimal / normal / rich / mega)
10818
+ --------------------------------------------------------- */
10819
+
10820
+ /* Minimalistic: title + status + tiny actions (no extra vertical air) */
10821
+
10822
+ .vds-inbox-row--minimal .vds-inbox-row__inner {
10823
+ gap: 0.75rem;
10824
+ gap: var(--space-3);
10825
+ padding: 0.75rem 0.75rem;
10826
+ padding: var(--space-3) var(--space-3);
10827
+ }
10828
+
10829
+ .vds-inbox-row--minimal {
10830
+ --inbox-title-size: var(--text-xs);
10831
+ --inbox-desc-size: var(--text-xxs, var(--text-xs));
10832
+ }
10833
+
10834
+ /* Normal: default */
10835
+
10836
+ .vds-inbox-row--normal .vds-inbox-row__inner {
10837
+ padding: 1rem 1rem;
10838
+ padding: var(--space-4) var(--space-4);
10839
+ gap: 1rem;
10840
+ gap: var(--space-4);
10841
+ }
10842
+
10843
+ /* Rich: more air + larger typography */
10844
+
10845
+ .vds-inbox-row--rich .vds-inbox-row__inner {
10846
+ padding: 1.25rem 1.25rem;
10847
+ padding: var(--space-5) var(--space-5);
10848
+ gap: 1.25rem;
10849
+ gap: var(--space-5);
10850
+ }
10851
+
10852
+ .vds-inbox-row--rich {
10853
+ --inbox-title-size: var(--text-md, var(--text-sm));
10854
+ --inbox-desc-size: var(--text-sm);
10855
+ }
10856
+
10857
+ /* Mega: “data-heavy” row */
10858
+
10859
+ .vds-inbox-row--mega .vds-inbox-row__inner {
10860
+ padding: 1.5rem 1.5rem;
10861
+ padding: var(--space-6) var(--space-6);
10862
+ gap: 1.5rem;
10863
+ gap: var(--space-6);
10864
+ }
10865
+
10866
+ .vds-inbox-row--mega {
10867
+ --inbox-title-size: var(--text-lg, var(--text-md, var(--text-sm)));
10868
+ --inbox-desc-size: var(--text-sm);
10869
+ }
10870
+
10871
+ /* ---------------------------------------------------------
10872
+ 5. BADGES ROW (FULL WIDTH)
10873
+ --------------------------------------------------------- */
10874
+
10875
+ .vds-inbox-row__badges {
10876
+ grid-column: 1 / -1;
10877
+ display: flex;
10878
+ flex-wrap: wrap;
10879
+ align-items: center;
10880
+ gap: var(--inbox-badge-gap);
10881
+ margin-bottom: 0.75rem;
10882
+ margin-bottom: var(--space-3);
10883
+ }
10884
+
10885
+ .vds-inbox-badge {
10886
+ display: inline-flex;
10887
+ align-items: center;
10888
+ gap: 0.375rem;
10889
+ gap: var(--space-1_5);
10890
+ padding: 0.25rem 0.625rem;
10891
+ padding: var(--space-1) var(--space-2_5);
10892
+
10893
+ border-radius: 9999px;
10894
+
10895
+ border-radius: var(--radius-pill);
10896
+ border: 1px solid var(--color-border-subtle);
10897
+
10898
+ font-size: 0.75rem;
10899
+
10900
+ font-size: var(--text-xxs);
10901
+ font-weight: 600;
10902
+ font-weight: var(--font-weight-semibold);
10903
+ letter-spacing: 0.02em;
10904
+ line-height: 1.1;
10905
+
10906
+ background: var(--color-surface-subtle);
10907
+ color: var(--color-text);
10908
+ white-space: nowrap;
10909
+ }
10910
+
10911
+ .vds-inbox-badge svg {
10912
+ width: 1rem;
10913
+ width: var(--icon-xxs);
10914
+ height: 1rem;
10915
+ height: var(--icon-xxs);
10916
+ color: currentColor;
10917
+ }
10918
+
10919
+ .vds-inbox-badge--accent {
10920
+ background: var(--color-accent-soft);
10921
+ border-color: var(--color-accent);
10922
+ color: var(--color-text);
10923
+ }
10924
+
10925
+ .vds-inbox-badge--info {
10926
+ background: var(--semantic-info-bg, var(--color-info-soft));
10927
+ border-color: var(--semantic-info-border, var(--color-info));
10928
+ color: var(--semantic-info-text, var(--color-text));
10929
+ }
10930
+
10931
+ .vds-inbox-badge--success {
10932
+ background: var(--semantic-success-bg, var(--color-success-soft));
10933
+ border-color: var(--semantic-success-border, var(--color-success));
10934
+ color: var(--semantic-success-text, var(--color-text));
10935
+ }
10936
+
10937
+ .vds-inbox-badge--warning {
10938
+ background: var(--semantic-warning-bg, var(--color-warning-soft));
10939
+ border-color: var(--semantic-warning-border, var(--color-warning));
10940
+ color: var(--semantic-warning-text, var(--color-text));
10941
+ }
10942
+
10943
+ .vds-inbox-badge--danger {
10944
+ background: var(--semantic-danger-bg, var(--color-danger-soft));
10945
+ border-color: var(--semantic-danger-border, var(--color-danger));
10946
+ color: var(--semantic-danger-text, var(--color-text));
10947
+ }
10948
+
10949
+ /* ---------------------------------------------------------
10950
+ 6. META AREA
10951
+ --------------------------------------------------------- */
10952
+
10953
+ .vds-inbox-row__meta {
10954
+ display: flex;
10955
+ flex-direction: column;
10956
+ gap: 0.5rem;
10957
+ gap: var(--space-2);
10958
+ min-width: 0;
10959
+ }
10960
+
10961
+ .vds-inbox-row__titleline {
10962
+ display: flex;
10963
+ align-items: center;
10964
+ gap: 0.5rem;
10965
+ gap: var(--space-2);
10966
+ min-width: 0;
10967
+ }
10968
+
10969
+ /* Status icons cluster (bookmark/star/flag) */
10970
+
10971
+ .vds-inbox-row__status {
10972
+ display: inline-flex;
10973
+ align-items: center;
10974
+ gap: 0.375rem;
10975
+ gap: var(--space-1_5);
10976
+ flex: 0 0 auto;
10977
+ }
10978
+
10979
+ .vds-inbox-row__status-icon {
10980
+ width: var(--inbox-icon-size);
10981
+ height: var(--inbox-icon-size);
10982
+ display: inline-flex;
10983
+ align-items: center;
10984
+ justify-content: center;
10985
+ color: var(--inbox-icon-muted);
10986
+ }
10987
+
10988
+ .vds-inbox-row__status-icon svg {
10989
+ width: 100%;
10990
+ height: 100%;
10991
+ }
10992
+
10993
+ /* state toggles (apply on row) */
10994
+
10995
+ .vds-inbox-row.is-bookmarked .vds-inbox-row__status-icon--bookmark,
10996
+ .vds-inbox-row.is-starred .vds-inbox-row__status-icon--star {
10997
+ color: var(--color-accent);
10998
+ }
10999
+
11000
+ .vds-inbox-row.is-flagged .vds-inbox-row__status-icon--flag {
11001
+ color: var(--color-danger-strong, var(--color-danger));
11002
+ }
11003
+
11004
+ .vds-inbox-row__title {
11005
+ font-size: var(--inbox-title-size);
11006
+ font-weight: 600;
11007
+ font-weight: var(--font-weight-semibold);
11008
+ line-height: 1.25;
11009
+ line-height: var(--line-height-snug);
11010
+ color: var(--color-text);
11011
+ letter-spacing: -0.015em;
11012
+ letter-spacing: var(--letter-tight, 0);
11013
+
11014
+ overflow: hidden;
11015
+ text-overflow: ellipsis;
11016
+ white-space: nowrap;
11017
+
11018
+ flex: 1 1 auto; /* take leftover width, shrink when needed */
11019
+ min-width: 16ch; /* hard floor so it never disappears */
11020
+ max-width: 100%; /* prevents weird overflow interactions */
11021
+ }
11022
+
11023
+ /* Inline labels next to title (wide); reflow rules below */
11024
+
11025
+ .vds-inbox-row__labels {
11026
+ display: inline-flex;
11027
+ align-items: center;
11028
+ gap: 0.375rem;
11029
+ gap: var(--space-1_5);
11030
+ flex: 0 0 auto;
11031
+ min-width: 0;
11032
+ }
11033
+
11034
+ .vds-inbox-label {
11035
+ display: inline-flex;
11036
+ align-items: center;
11037
+ padding: 0 0.5rem;
11038
+ padding: 0 var(--space-2);
11039
+ height: 1.4rem;
11040
+
11041
+ border-radius: 9999px;
11042
+
11043
+ border-radius: var(--radius-pill);
11044
+ border: 1px solid var(--color-border-subtle);
11045
+
11046
+ font-size: 0.75rem;
11047
+
11048
+ font-size: var(--text-xxs);
11049
+ font-weight: 600;
11050
+ font-weight: var(--font-weight-semibold);
11051
+ color: var(--color-text-muted);
11052
+ background: transparent;
11053
+ white-space: nowrap;
11054
+ }
11055
+
11056
+ .vds-inbox-label--accent {
11057
+ color: var(--color-text);
11058
+ border-color: var(--color-accent);
11059
+ background: var(--color-accent-soft);
11060
+ }
11061
+
11062
+ .vds-inbox-label--muted {
11063
+ color: var(--color-text-muted);
11064
+ border-color: var(--color-border-subtle);
11065
+ background: var(--color-surface-subtle);
11066
+ }
11067
+
11068
+ /* Glance / description (clamped by default) */
11069
+
11070
+ .vds-inbox-row__glance {
11071
+ font-size: var(--inbox-desc-size);
11072
+ line-height: 1.7;
11073
+ line-height: var(--line-height-relaxed);
11074
+ color: var(--color-text-muted);
11075
+ min-width: 0;
11076
+
11077
+ display: -webkit-box;
11078
+ -webkit-box-orient: vertical;
11079
+ -webkit-line-clamp: 2;
11080
+ overflow: hidden;
11081
+ }
11082
+
11083
+ /* Rich/mega can show more lines (still clamped unless row open) */
11084
+
11085
+ .vds-inbox-row--rich .vds-inbox-row__glance {
11086
+ -webkit-line-clamp: 3;
11087
+ }
11088
+
11089
+ .vds-inbox-row--mega .vds-inbox-row__glance {
11090
+ -webkit-line-clamp: 4;
11091
+ }
11092
+
11093
+ /* Optional metadata footer */
11094
+
11095
+ .vds-inbox-row__metafoot {
11096
+ display: flex;
11097
+ flex-wrap: wrap;
11098
+ align-items: center;
11099
+ gap: 0.5rem 1rem;
11100
+ gap: var(--space-2) var(--space-4);
11101
+ font-size: 0.75rem;
11102
+ font-size: var(--text-xxs, var(--text-xs));
11103
+ color: var(--color-text-soft, var(--color-text-muted));
11104
+ }
11105
+
11106
+ .vds-inbox-row__metafoot strong {
11107
+ font-weight: 600;
11108
+ font-weight: var(--font-weight-semibold);
11109
+ color: var(--color-text-muted);
11110
+ }
11111
+
11112
+ /* Optional “detail chips row” (horizontal list of small metadata items) */
11113
+
11114
+ .vds-inbox-row__details {
11115
+ display: flex;
11116
+ flex-wrap: wrap;
11117
+ gap: 0.5rem 0.75rem;
11118
+ gap: var(--space-2) var(--space-3);
11119
+ font-size: 0.8125rem;
11120
+ font-size: var(--text-xs);
11121
+ color: var(--color-text-muted);
11122
+ }
11123
+
11124
+ .vds-inbox-row__details-item {
11125
+ display: inline-flex;
11126
+ align-items: center;
11127
+ gap: 0.375rem;
11128
+ gap: var(--space-1_5);
11129
+ padding: 0.25rem 0.5rem;
11130
+ padding: var(--space-1) var(--space-2);
11131
+
11132
+ border-radius: 9999px;
11133
+
11134
+ border-radius: var(--radius-pill);
11135
+ border: 1px solid var(--color-border-subtle);
11136
+ background: var(--color-surface-subtle);
11137
+
11138
+ line-height: 1.1;
11139
+ }
11140
+
11141
+ .vds-inbox-row__details-item svg {
11142
+ width: 1rem;
11143
+ width: var(--icon-xxs);
11144
+ height: 1rem;
11145
+ height: var(--icon-xxs);
11146
+ color: currentColor;
11147
+ }
11148
+
11149
+ /* ---------------------------------------------------------
11150
+ 7. ACTIONS (right rail; can reflow below)
11151
+ --------------------------------------------------------- */
11152
+
11153
+ .vds-inbox-row__actions {
11154
+ display: flex;
11155
+ align-items: flex-start;
11156
+ justify-content: var(--inbox-actions-justify);
11157
+ gap: var(--inbox-action-gap);
11158
+ flex-wrap: wrap;
11159
+ padding-top: 0.125rem;
11160
+ padding-top: var(--space-0_5);
11161
+ min-width: var(--inbox-actions-min-width);
11162
+ }
11163
+
11164
+ /* Force actions below even on wide screens */
11165
+
11166
+ .vds-inbox-row--actions-below .vds-inbox-row__inner {
11167
+ grid-template-columns: 1fr;
11168
+ grid-template-areas:
11169
+ "badges"
11170
+ "meta"
11171
+ "data"
11172
+ "actions";
11173
+ }
11174
+
11175
+ .vds-inbox-row--actions-below .vds-inbox-row__actions {
11176
+ justify-content: flex-start;
11177
+ padding-top: 0;
11178
+ }
11179
+
11180
+ /* Force actions to occupy a full row (even when grid is 2 cols) */
11181
+
11182
+ .vds-inbox-row--actions-full .vds-inbox-row__actions {
11183
+ grid-column: 1 / -1;
11184
+ justify-content: flex-start;
11185
+ padding-top: 0;
11186
+ }
11187
+
11188
+ /* Actions alignment helpers (useful on mobile / below layout) */
11189
+
11190
+ .vds-inbox-row__actions--left {
11191
+ justify-content: flex-start;
11192
+ }
11193
+
11194
+ .vds-inbox-row__actions--center {
11195
+ justify-content: center;
11196
+ }
11197
+
11198
+ .vds-inbox-row__actions--right {
11199
+ justify-content: flex-end;
11200
+ }
11201
+
11202
+ /* Action button */
11203
+
11204
+ .vds-inbox-action {
11205
+ display: inline-flex;
11206
+ align-items: center;
11207
+ justify-content: center;
11208
+ gap: 0.375rem;
11209
+ gap: var(--space-1_5);
11210
+
11211
+ padding: 0.375rem 0.625rem;
11212
+
11213
+ padding: var(--space-1_5) var(--space-2_5);
11214
+ border-radius: 4px;
11215
+ border-radius: var(--radius-sm);
11216
+ border: 1px solid var(--color-border-subtle);
11217
+
11218
+ font-size: 0.8125rem;
11219
+
11220
+ font-size: var(--text-xs);
11221
+ font-weight: 600;
11222
+ font-weight: var(--font-weight-semibold);
11223
+
11224
+ color: var(--color-text);
11225
+ background: var(--color-surface);
11226
+
11227
+ transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out, transform 120ms ease-out;
11228
+
11229
+ transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
11230
+ }
11231
+
11232
+ a.vds-inbox-action {
11233
+ -webkit-text-decoration: none;
11234
+ text-decoration: none;
11235
+ }
11236
+
11237
+ .vds-inbox-action svg {
11238
+ width: 1rem;
11239
+ width: var(--icon-xxs);
11240
+ height: 1rem;
11241
+ height: var(--icon-xxs);
11242
+ color: currentColor;
11243
+ }
11244
+
11245
+ .vds-inbox-action:hover {
11246
+ background: var(--color-surface-subtle, var(--color-surface-hover));
11247
+ border-color: var(--color-border-strong, var(--color-border-subtle));
11248
+ transform: translateY(-1px);
11249
+ }
11250
+
11251
+ .vds-inbox-action:active {
11252
+ transform: translateY(0);
11253
+ }
11254
+
11255
+ .vds-inbox-action--danger {
11256
+ color: var(--color-danger-strong, var(--color-danger));
11257
+ border-color: var(--color-danger, var(--color-border-strong));
11258
+ }
11259
+
11260
+ .vds-inbox-action--accent {
11261
+ color: var(--color-text);
11262
+ border-color: var(--color-accent);
11263
+ background: var(--color-accent-soft);
11264
+ }
11265
+
11266
+ /* icon-only action */
11267
+
11268
+ .vds-inbox-action--icon {
11269
+ width: 2.25rem;
11270
+ width: var(--icon-container-md, 2.25rem);
11271
+ height: 2.25rem;
11272
+ height: var(--icon-container-md, 2.25rem);
11273
+ padding: 0;
11274
+ }
11275
+
11276
+ /* “Flat” action style (no border, lighter affordance) */
11277
+
11278
+ .vds-inbox-action--flat {
11279
+ border-color: transparent;
11280
+ background: transparent;
11281
+ color: var(--color-text-muted);
11282
+ }
11283
+
11284
+ .vds-inbox-action--flat:hover {
11285
+ background: var(--color-surface-subtle);
11286
+ border-color: transparent;
11287
+ color: var(--color-text);
11288
+ transform: none;
11289
+ }
11290
+
11291
+ /* Global switch: make all actions flat within an inbox */
11292
+
11293
+ .vds-inbox--actions-flat .vds-inbox-action {
11294
+ border-color: transparent;
11295
+ background: transparent;
11296
+ color: var(--color-text-muted);
11297
+ transform: none;
11298
+ }
11299
+
11300
+ .vds-inbox--actions-flat .vds-inbox-action:hover {
11301
+ background: var(--color-surface-subtle);
11302
+ border-color: transparent;
11303
+ color: var(--color-text);
11304
+ }
11305
+
11306
+ /* ---------------------------------------------------------
11307
+ 8. EXPANDED CONTENT (OPEN STATE HELPERS)
11308
+ --------------------------------------------------------- */
11309
+
11310
+ .vds-inbox-row__expanded {
11311
+ grid-column: 1 / -1;
11312
+ grid-row: 2;
11313
+ border-top: 1px solid var(--color-border-subtle);
11314
+ padding: 1rem;
11315
+ padding: var(--space-4);
11316
+ background: var(--color-bg-soft, var(--color-surface-subtle));
11317
+ color: var(--color-text);
11318
+ display: none;
11319
+ }
11320
+
11321
+ .vds-inbox-row--open .vds-inbox-row__expanded {
11322
+ display: block;
11323
+ }
11324
+
11325
+ .vds-inbox-row--open .vds-inbox-row__glance {
11326
+ -webkit-line-clamp: initial;
11327
+ overflow: visible;
11328
+ }
11329
+
11330
+ /* Expanded content can be made “flush” in flat list mode */
11331
+
11332
+ .vds-inbox--flat .vds-inbox-row__expanded {
11333
+ background: var(--color-surface-subtle);
11334
+ }
11335
+
11336
+ .vds-inbox-row__expanded.vds-is-hidden {
11337
+ display: none !important;
11338
+ }
11339
+
11340
+ .vds-inbox-row__expanded.vds-is-visible {
11341
+ display: block !important;
11342
+ }
11343
+
11344
+ /* ---------------------------------------------------------
11345
+ 9. FLAGS (5 COLORS)
11346
+ --------------------------------------------------------- */
11347
+
11348
+ .vds-inbox-row.is-flagged::before {
11349
+ content: "";
11350
+ position: absolute;
11351
+ top: 0;
11352
+ right: auto;
11353
+ bottom: 0;
11354
+ left: 0;
11355
+ width: 6px;
11356
+ background: var(--inbox-flag-color, var(--color-danger));
11357
+ }
11358
+
11359
+ .vds-inbox-row--flag-1 { /* danger / red */
11360
+ --inbox-flag-color: var(--color-danger);
11361
+ --inbox-flag-surface: var(--semantic-danger-bg, var(--color-danger-soft));
11362
+ }
11363
+
11364
+ .vds-icon-flag--1 {
11365
+ color: var(--color-danger);
11366
+ }
11367
+
11368
+ .vds-inbox-row--flag-2 { /* warning / amber */
11369
+ --inbox-flag-color: var(--color-warning);
11370
+ --inbox-flag-surface: var(--semantic-warning-bg, var(--color-warning-soft));
11371
+ }
11372
+
11373
+ .vds-icon-flag--2 {
11374
+ color: var(--color-warning);
11375
+ }
11376
+
11377
+ .vds-inbox-row--flag-3 { /* info / blue */
11378
+ --inbox-flag-color: var(--color-info);
11379
+ --inbox-flag-surface: var(--semantic-info-bg, var(--color-info-soft));
11380
+ }
11381
+
11382
+ .vds-icon-flag--3 {
11383
+ color: var(--color-info);
11384
+ }
11385
+
11386
+ .vds-inbox-row--flag-4 { /* success / green */
11387
+ --inbox-flag-color: var(--color-success);
11388
+ --inbox-flag-surface: var(--semantic-success-bg, var(--color-success-soft));
11389
+ }
11390
+
11391
+ .vds-icon-flag--4 {
11392
+ color: var(--color-success);
11393
+ }
11394
+
11395
+ .vds-inbox-row--flag-5 { /* accent */
11396
+ --inbox-flag-color: var(--color-accent);
11397
+ --inbox-flag-surface: var(--color-accent-soft);
11398
+ }
11399
+
11400
+ .vds-icon-flag--5 {
11401
+ color: var(--color-accent);
11402
+ }
11403
+
11404
+ /* ---------------------------------------------------------
11405
+ 10. FILTER TEMPLATE (lightweight)
11406
+ --------------------------------------------------------- */
11407
+
11408
+ .vds-inbox-filter {
11409
+ display: flex;
11410
+ flex-wrap: wrap;
11411
+ align-items: center;
11412
+ gap: 0.5rem 0.75rem;
11413
+ gap: var(--space-2) var(--space-3);
11414
+
11415
+ padding: 0.75rem 1rem;
11416
+
11417
+ padding: var(--space-3) var(--space-4);
11418
+ border: 1px solid var(--color-border-subtle);
11419
+ border-radius: 12px;
11420
+ border-radius: var(--radius-lg);
11421
+ background: var(--color-surface);
11422
+ }
11423
+
11424
+ .vds-inbox-filter__group {
11425
+ display: inline-flex;
11426
+ align-items: center;
11427
+ gap: 0.5rem;
11428
+ gap: var(--space-2);
11429
+ min-width: 0;
11430
+ }
11431
+
11432
+ .vds-inbox-filter__label {
11433
+ font-size: 0.8125rem;
11434
+ font-size: var(--text-xs);
11435
+ font-weight: 600;
11436
+ font-weight: var(--font-weight-semibold);
11437
+ color: var(--color-text-muted);
11438
+ white-space: nowrap;
11439
+ }
11440
+
11441
+ .vds-inbox-filter__chip {
11442
+ display: inline-flex;
11443
+ align-items: center;
11444
+ gap: 0.375rem;
11445
+ gap: var(--space-1_5);
11446
+ padding: 0.375rem 0.625rem;
11447
+ padding: var(--space-1_5) var(--space-2_5);
11448
+
11449
+ border-radius: 9999px;
11450
+
11451
+ border-radius: var(--radius-pill);
11452
+ border: 1px solid var(--color-border-subtle);
11453
+ background: var(--color-surface-subtle);
11454
+ color: var(--color-text);
11455
+
11456
+ font-size: 0.8125rem;
11457
+
11458
+ font-size: var(--text-xs);
11459
+ font-weight: 600;
11460
+ font-weight: var(--font-weight-semibold);
11461
+ line-height: 1.1;
11462
+ white-space: nowrap;
11463
+ }
11464
+
11465
+ .vds-inbox-filter__chip--active {
11466
+ border-color: var(--color-accent);
11467
+ background: var(--color-accent-soft);
11468
+ }
11469
+
11470
+ .vds-inbox-filter__actions {
11471
+ margin-left: auto;
11472
+ display: inline-flex;
11473
+ align-items: center;
11474
+ gap: 0.5rem;
11475
+ gap: var(--space-2);
11476
+ }
11477
+
11478
+ /* ---------------------------------------------------------
11479
+ 11. BOTTOM CORNER ACTION BAR (one/two buttons)
11480
+ --------------------------------------------------------- */
11481
+
11482
+ .vds-inbox-cornerbar {
11483
+ position: fixed;
11484
+ right: 1.5rem;
11485
+ bottom: 1.5rem;
11486
+ top: auto;
11487
+ right: var(--space-6);
11488
+ bottom: var(--space-6);
11489
+ left: auto;
11490
+ z-index: 40;
11491
+
11492
+ display: inline-flex;
11493
+ align-items: center;
11494
+ gap: 0.5rem;
11495
+ gap: var(--space-2);
11496
+
11497
+ pointer-events: none; /* buttons re-enable */
11498
+ }
11499
+
11500
+ .vds-inbox-cornerbar--left {
11501
+ bottom: 1.5rem;
11502
+ left: 1.5rem;
11503
+ top: auto;
11504
+ right: auto;
11505
+ bottom: var(--space-6);
11506
+ left: var(--space-6);
11507
+ }
11508
+
11509
+ .vds-inbox-cornerbar__inner {
11510
+ pointer-events: auto;
11511
+ display: inline-flex;
11512
+ align-items: center;
11513
+ gap: 0.5rem;
11514
+ gap: var(--space-2);
11515
+
11516
+ padding: 0.5rem;
11517
+
11518
+ padding: var(--space-2);
11519
+ border-radius: 18px;
11520
+ border-radius: var(--radius-xl, var(--radius-lg));
11521
+ border: 1px solid var(--color-border-subtle);
11522
+ background: var(--color-surface);
11523
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
11524
+ box-shadow: var(--shadow-md, none);
11525
+ }
11526
+
11527
+ /* ---------------------------------------------------------
11528
+ 12. RESPONSIVE
11529
+ --------------------------------------------------------- */
11530
+
11531
+ @media (max-width: 768px) {
11532
+ .vds-inbox-row__inner {
11533
+ grid-template-columns: 1fr;
11534
+ gap: 0.75rem;
11535
+ gap: var(--space-3);
11536
+ }
11537
+
11538
+ /* Actions move below by default */
11539
+ .vds-inbox-row__actions {
11540
+ justify-content: flex-start;
11541
+ padding-top: 0;
11542
+ }
11543
+
11544
+ /* Title wraps; labels become their own row on the left */
11545
+ .vds-inbox-row__titleline {
11546
+ flex-wrap: wrap;
11547
+ row-gap: 0.375rem;
11548
+ row-gap: var(--space-1_5);
11549
+ }
11550
+
11551
+ .vds-inbox-row__title {
11552
+ white-space: normal;
11553
+ overflow: visible;
11554
+ text-overflow: clip;
11555
+ flex-basis: 100%;
11556
+ }
11557
+
11558
+ .vds-inbox-row__labels {
11559
+ flex-basis: 100%;
11560
+ justify-content: flex-start;
11561
+ }
11562
+
11563
+ /* Nav bar: stack into multiple rows */
11564
+ .vds-inbox-nav__bar {
11565
+ flex-wrap: wrap;
11566
+ justify-content: center;
11567
+ gap: 0.75rem;
11568
+ gap: var(--space-3);
11569
+ }
11570
+
11571
+ .vds-inbox-tabs {
11572
+ order: 1;
11573
+ width: 100%;
11574
+ justify-content: center;
11575
+ }
11576
+
11577
+ .vds-inbox-nav__left {
11578
+ order: 0;
11579
+ }
11580
+
11581
+ .vds-inbox-nav__right {
11582
+ order: 2;
11583
+ }
11584
+
11585
+ .vds-inbox-nav__bottom {
11586
+ flex-direction: column;
11587
+ align-items: stretch;
11588
+ }
11589
+
11590
+ .vds-inbox-nav__bottom-left,
11591
+ .vds-inbox-nav__bottom-right {
11592
+ justify-content: flex-start;
11593
+ }
11594
+
11595
+ /* Search: expand wider on small screens */
11596
+ .vds-inbox-search.is-open .vds-inbox-search__field,
11597
+ .vds-inbox-search__toggle[aria-expanded="true"] + .vds-inbox-search__field {
11598
+ width: min(100%, 40rem);
11599
+ }
11600
+ }
11601
+
11602
+ /* ---------------------------------------------------------
11603
+ 13. RESPONSIVE VISIBILITY HELPERS (COMPONENT-LOCAL)
11604
+ (useful for hiding icons/actions/labels by breakpoint)
11605
+ --------------------------------------------------------- */
11606
+
11607
+ @media (max-width: 768px) {
11608
+ .vds-inbox__hide-sm {
11609
+ display: none !important;
11610
+ }
11611
+ }
11612
+
11613
+ @media (min-width: 769px) {
11614
+ .vds-inbox__show-sm {
11615
+ display: none !important;
11616
+ }
11617
+ }
11618
+
11619
+ @media (max-width: 1024px) {
11620
+ .vds-inbox__hide-md {
11621
+ display: none !important;
11622
+ }
11623
+ }
11624
+
11625
+ @media (min-width: 1025px) {
11626
+ .vds-inbox__show-md {
11627
+ display: none !important;
11628
+ }
11629
+ }
11630
+
11631
+ /* ---------------------------------------------------------
11632
+ 14. SMALL UTILITIES (COMPONENT-LOCAL)
11633
+ --------------------------------------------------------- */
11634
+
11635
+ .vds-inbox__truncate {
11636
+ overflow: hidden;
11637
+ text-overflow: ellipsis;
11638
+ white-space: nowrap;
11639
+ }
11640
+
11641
+ .vds-inbox__sr-only {
11642
+ position: absolute !important;
11643
+ width: 1px !important;
11644
+ height: 1px !important;
11645
+ padding: 0 !important;
11646
+ margin: -1px !important;
11647
+ overflow: hidden !important;
11648
+ clip: rect(0, 0, 0, 0) !important;
11649
+ white-space: nowrap !important;
11650
+ border: 0 !important;
11651
+ }
11652
+
10295
11653
  /************************************************************
10296
11654
  * VLAH DESIGN SYSTEM (VDS) - Navigation
10297
11655
  *