@revikornmann/muka-ui 0.27.1 → 0.27.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/components/Avatar/Avatar.css +15 -4
  2. package/dist/cjs/components/Avatar/AvatarGroup.js +4 -2
  3. package/dist/cjs/components/Avatar/AvatarGroup.js.map +1 -1
  4. package/dist/cjs/components/Tabs/Tabs.js +6 -3
  5. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  6. package/dist/esm/components/Avatar/Avatar.css +15 -4
  7. package/dist/esm/components/Avatar/AvatarGroup.js +4 -2
  8. package/dist/esm/components/Avatar/AvatarGroup.js.map +1 -1
  9. package/dist/esm/components/Tabs/Tabs.js +6 -3
  10. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  11. package/dist/styles/components/Avatar.css +15 -4
  12. package/dist/styles/index.css +397 -385
  13. package/dist/styles/muka-dark.css +397 -385
  14. package/dist/styles/muka-light.css +397 -385
  15. package/dist/styles/tokens-bouwplan-dark.css +7 -6
  16. package/dist/styles/tokens-bouwplan-light.css +7 -6
  17. package/dist/styles/tokens-fscl-dark.css +7 -6
  18. package/dist/styles/tokens-fscl-light.css +7 -6
  19. package/dist/styles/tokens-grip-dark.css +7 -6
  20. package/dist/styles/tokens-grip-light.css +7 -6
  21. package/dist/styles/tokens-muka-dark.css +7 -6
  22. package/dist/styles/tokens-muka-light.css +7 -6
  23. package/dist/styles/tokens-wireframe-dark.css +7 -6
  24. package/dist/styles/tokens-wireframe-light.css +7 -6
  25. package/dist/styles/wireframe-dark.css +397 -385
  26. package/dist/styles/wireframe-light.css +397 -385
  27. package/dist/types/components/Avatar/AvatarGroup.d.ts +8 -0
  28. package/dist/types/components/Avatar/AvatarGroup.d.ts.map +1 -1
  29. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/tokens/t4-components/avatar.json +13 -7
@@ -2080,15 +2080,16 @@ body {
2080
2080
  --avatar-status-size-xl: 1.5rem;
2081
2081
  --avatar-group-ring-width: 0.125rem;
2082
2082
  --avatar-group-ring-color: #fdfcfd;
2083
- --avatar-group-overlap-tight-sm: 2rem;
2084
- --avatar-group-overlap-tight-2xs: 1.25rem;
2083
+ --avatar-group-overlap-tight-xs: 1.75rem;
2084
+ --avatar-group-overlap-tight-2xs: 1.5rem;
2085
2085
  --avatar-group-overlap-tight-3xs: 1rem;
2086
- --avatar-group-overlap-compact-sm: 1.5rem;
2087
- --avatar-group-overlap-compact-2xs: 1rem;
2088
- --avatar-group-overlap-compact-3xs: 0.75rem;
2089
- --avatar-group-overlap-spacious-sm: 1rem;
2086
+ --avatar-group-overlap-compact-xs: 1.5rem;
2087
+ --avatar-group-overlap-compact-2xs: 1.125rem;
2088
+ --avatar-group-overlap-compact-3xs: 0.875rem;
2089
+ --avatar-group-overlap-spacious-xs: 1rem;
2090
2090
  --avatar-group-overlap-spacious-2xs: 0.75rem;
2091
2091
  --avatar-group-overlap-spacious-3xs: 0.5rem;
2092
+ --avatar-group-badge-offset: 0.25rem;
2092
2093
  --toast-color-info-background: #211f26;
2093
2094
  --toast-color-info-foreground: #fdfcfd;
2094
2095
  --toast-color-info-accent: #edf2fe;
@@ -4630,114 +4631,6 @@ body {
4630
4631
  }
4631
4632
 
4632
4633
 
4633
- /* SwipeActions */
4634
- /* SwipeActions Component Styles */
4635
-
4636
- .muka-swipe-actions {
4637
- position: relative;
4638
- overflow: hidden;
4639
- touch-action: pan-y;
4640
- -webkit-user-select: none;
4641
- user-select: none;
4642
- background-color: var(--color-surface-level3);
4643
- }
4644
-
4645
- .muka-swipe-actions--disabled {
4646
- touch-action: auto;
4647
- }
4648
-
4649
- /* ─── Row that holds the actual content ────────────────── */
4650
-
4651
- .muka-swipe-actions__row {
4652
- position: relative;
4653
- z-index: 1;
4654
- background-color: inherit;
4655
- will-change: transform;
4656
- }
4657
-
4658
- /* ─── Action panels — sit beneath the row ──────────────── */
4659
-
4660
- .muka-swipe-actions__panel {
4661
- position: absolute;
4662
- top: 0;
4663
- bottom: 0;
4664
- display: flex;
4665
- align-items: stretch;
4666
- z-index: 0;
4667
- }
4668
-
4669
- .muka-swipe-actions__panel--left {
4670
- left: 0;
4671
- }
4672
-
4673
- .muka-swipe-actions__panel--right {
4674
- right: 0;
4675
- }
4676
-
4677
- /* ─── Single action button ─────────────────────────────── */
4678
-
4679
- .muka-swipe-actions__button {
4680
- display: flex;
4681
- flex-direction: column;
4682
- align-items: center;
4683
- justify-content: center;
4684
- gap: var(--spacing-1);
4685
- border: none;
4686
- cursor: pointer;
4687
- padding: var(--spacing-2);
4688
- background-color: var(--color-surface-level2);
4689
- color: var(--color-text-default-default);
4690
- font-family: var(--text-label-sm-semibold-fontFamily);
4691
- font-weight: var(--text-label-sm-semibold-fontWeight);
4692
- font-size: var(--text-label-sm-semibold-fontSize);
4693
- line-height: var(--text-label-sm-semibold-lineHeight);
4694
- -webkit-tap-highlight-color: transparent;
4695
- transition: filter 0.12s ease;
4696
- }
4697
-
4698
- .muka-swipe-actions__button:hover {
4699
- filter: brightness(0.95);
4700
- }
4701
-
4702
- .muka-swipe-actions__button:focus-visible {
4703
- outline: 2px solid var(--color-action-default);
4704
- outline-offset: -2px;
4705
- }
4706
-
4707
- .muka-swipe-actions__button-icon {
4708
- display: inline-flex;
4709
- align-items: center;
4710
- justify-content: center;
4711
- }
4712
-
4713
- /* ─── Color variants ───────────────────────────────────── */
4714
-
4715
- .muka-swipe-actions__button--neutral {
4716
- background-color: var(--color-surface-level2);
4717
- color: var(--color-text-default-default);
4718
- }
4719
-
4720
- .muka-swipe-actions__button--primary {
4721
- background-color: var(--color-action-default);
4722
- color: var(--color-text-default-inverse);
4723
- }
4724
-
4725
- .muka-swipe-actions__button--success {
4726
- background-color: var(--color-state-success-default);
4727
- color: var(--color-text-default-inverse);
4728
- }
4729
-
4730
- .muka-swipe-actions__button--warning {
4731
- background-color: var(--color-state-warning-default);
4732
- color: var(--color-text-default-default);
4733
- }
4734
-
4735
- .muka-swipe-actions__button--destructive {
4736
- background-color: var(--color-state-error-default);
4737
- color: var(--color-text-default-inverse);
4738
- }
4739
-
4740
-
4741
4634
  /* Spinner */
4742
4635
  /* Spinner Component Styles */
4743
4636
 
@@ -4901,6 +4794,114 @@ body {
4901
4794
  }
4902
4795
 
4903
4796
 
4797
+ /* SwipeActions */
4798
+ /* SwipeActions Component Styles */
4799
+
4800
+ .muka-swipe-actions {
4801
+ position: relative;
4802
+ overflow: hidden;
4803
+ touch-action: pan-y;
4804
+ -webkit-user-select: none;
4805
+ user-select: none;
4806
+ background-color: var(--color-surface-level3);
4807
+ }
4808
+
4809
+ .muka-swipe-actions--disabled {
4810
+ touch-action: auto;
4811
+ }
4812
+
4813
+ /* ─── Row that holds the actual content ────────────────── */
4814
+
4815
+ .muka-swipe-actions__row {
4816
+ position: relative;
4817
+ z-index: 1;
4818
+ background-color: inherit;
4819
+ will-change: transform;
4820
+ }
4821
+
4822
+ /* ─── Action panels — sit beneath the row ──────────────── */
4823
+
4824
+ .muka-swipe-actions__panel {
4825
+ position: absolute;
4826
+ top: 0;
4827
+ bottom: 0;
4828
+ display: flex;
4829
+ align-items: stretch;
4830
+ z-index: 0;
4831
+ }
4832
+
4833
+ .muka-swipe-actions__panel--left {
4834
+ left: 0;
4835
+ }
4836
+
4837
+ .muka-swipe-actions__panel--right {
4838
+ right: 0;
4839
+ }
4840
+
4841
+ /* ─── Single action button ─────────────────────────────── */
4842
+
4843
+ .muka-swipe-actions__button {
4844
+ display: flex;
4845
+ flex-direction: column;
4846
+ align-items: center;
4847
+ justify-content: center;
4848
+ gap: var(--spacing-1);
4849
+ border: none;
4850
+ cursor: pointer;
4851
+ padding: var(--spacing-2);
4852
+ background-color: var(--color-surface-level2);
4853
+ color: var(--color-text-default-default);
4854
+ font-family: var(--text-label-sm-semibold-fontFamily);
4855
+ font-weight: var(--text-label-sm-semibold-fontWeight);
4856
+ font-size: var(--text-label-sm-semibold-fontSize);
4857
+ line-height: var(--text-label-sm-semibold-lineHeight);
4858
+ -webkit-tap-highlight-color: transparent;
4859
+ transition: filter 0.12s ease;
4860
+ }
4861
+
4862
+ .muka-swipe-actions__button:hover {
4863
+ filter: brightness(0.95);
4864
+ }
4865
+
4866
+ .muka-swipe-actions__button:focus-visible {
4867
+ outline: 2px solid var(--color-action-default);
4868
+ outline-offset: -2px;
4869
+ }
4870
+
4871
+ .muka-swipe-actions__button-icon {
4872
+ display: inline-flex;
4873
+ align-items: center;
4874
+ justify-content: center;
4875
+ }
4876
+
4877
+ /* ─── Color variants ───────────────────────────────────── */
4878
+
4879
+ .muka-swipe-actions__button--neutral {
4880
+ background-color: var(--color-surface-level2);
4881
+ color: var(--color-text-default-default);
4882
+ }
4883
+
4884
+ .muka-swipe-actions__button--primary {
4885
+ background-color: var(--color-action-default);
4886
+ color: var(--color-text-default-inverse);
4887
+ }
4888
+
4889
+ .muka-swipe-actions__button--success {
4890
+ background-color: var(--color-state-success-default);
4891
+ color: var(--color-text-default-inverse);
4892
+ }
4893
+
4894
+ .muka-swipe-actions__button--warning {
4895
+ background-color: var(--color-state-warning-default);
4896
+ color: var(--color-text-default-default);
4897
+ }
4898
+
4899
+ .muka-swipe-actions__button--destructive {
4900
+ background-color: var(--color-state-error-default);
4901
+ color: var(--color-text-default-inverse);
4902
+ }
4903
+
4904
+
4904
4905
  /* SocialSignInButton */
4905
4906
  /*
4906
4907
  * SocialSignInButton lockup colors are provider-mandated (Apple HIG /
@@ -10821,38 +10822,6 @@ li.muka-listitem {
10821
10822
  }
10822
10823
 
10823
10824
 
10824
- /* DatePicker */
10825
- /* DatePicker — compact native date field. */
10826
- /* Field/label/helper styling is inherited from ../Input/Input.css. */
10827
-
10828
- /* Adopt the field typography on the native date input. */
10829
- .muka-datepicker__field .muka-input__native {
10830
- font-family: var(--text-input-md-fontFamily);
10831
- font-size: var(--text-input-md-fontSize);
10832
- line-height: var(--text-input-md-lineHeight);
10833
- }
10834
-
10835
- .muka-datepicker__field--sm .muka-input__native {
10836
- font-family: var(--text-input-sm-fontFamily);
10837
- font-size: var(--text-input-sm-fontSize);
10838
- line-height: var(--text-input-sm-lineHeight);
10839
- }
10840
-
10841
- /* Tint the browser calendar indicator to match the field foreground. */
10842
- .muka-datepicker__field .muka-input__native::-webkit-calendar-picker-indicator {
10843
- cursor: pointer;
10844
- opacity: 0.6;
10845
- }
10846
-
10847
- .muka-datepicker__field .muka-input__native::-webkit-calendar-picker-indicator:hover {
10848
- opacity: 1;
10849
- }
10850
-
10851
- .muka-datepicker__field .muka-input__native:disabled {
10852
- cursor: not-allowed;
10853
- }
10854
-
10855
-
10856
10825
  /* Dialog */
10857
10826
  /* Dialog Component Styles */
10858
10827
 
@@ -11121,12 +11090,44 @@ li.muka-listitem {
11121
11090
  }
11122
11091
 
11123
11092
 
11124
- /* DataTable */
11125
- /* DataTable Component Styles - Using Muka Design Tokens */
11093
+ /* DatePicker */
11094
+ /* DatePicker — compact native date field. */
11095
+ /* Field/label/helper styling is inherited from ../Input/Input.css. */
11126
11096
 
11127
- .muka-data-table-wrapper {
11128
- width: 100%;
11129
- overflow-x: auto;
11097
+ /* Adopt the field typography on the native date input. */
11098
+ .muka-datepicker__field .muka-input__native {
11099
+ font-family: var(--text-input-md-fontFamily);
11100
+ font-size: var(--text-input-md-fontSize);
11101
+ line-height: var(--text-input-md-lineHeight);
11102
+ }
11103
+
11104
+ .muka-datepicker__field--sm .muka-input__native {
11105
+ font-family: var(--text-input-sm-fontFamily);
11106
+ font-size: var(--text-input-sm-fontSize);
11107
+ line-height: var(--text-input-sm-lineHeight);
11108
+ }
11109
+
11110
+ /* Tint the browser calendar indicator to match the field foreground. */
11111
+ .muka-datepicker__field .muka-input__native::-webkit-calendar-picker-indicator {
11112
+ cursor: pointer;
11113
+ opacity: 0.6;
11114
+ }
11115
+
11116
+ .muka-datepicker__field .muka-input__native::-webkit-calendar-picker-indicator:hover {
11117
+ opacity: 1;
11118
+ }
11119
+
11120
+ .muka-datepicker__field .muka-input__native:disabled {
11121
+ cursor: not-allowed;
11122
+ }
11123
+
11124
+
11125
+ /* DataTable */
11126
+ /* DataTable Component Styles - Using Muka Design Tokens */
11127
+
11128
+ .muka-data-table-wrapper {
11129
+ width: 100%;
11130
+ overflow-x: auto;
11130
11131
  -webkit-overflow-scrolling: touch;
11131
11132
  }
11132
11133
 
@@ -12438,128 +12439,6 @@ li.muka-listitem {
12438
12439
  }
12439
12440
 
12440
12441
 
12441
- /* ChatPhotoGrid */
12442
- /* ChatPhotoGrid Component Styles */
12443
-
12444
- /*
12445
- * The grid clips to its own radius and the tiles stay square, so only the four
12446
- * outer corners round — matching the Figma "Wrapper" frame (5225:1394).
12447
- */
12448
- .muka-chat-photo-grid {
12449
- display: grid;
12450
- gap: var(--chatphotogrid-gap);
12451
- width: 100%;
12452
- min-width: 0;
12453
- overflow: hidden;
12454
- border-radius: var(--chatphotogrid-radius);
12455
- }
12456
-
12457
- /* ─── Tiles ────────────────────────────────────────────── */
12458
-
12459
- .muka-chat-photo-grid__tile {
12460
- position: relative;
12461
- display: block;
12462
- overflow: hidden;
12463
- min-width: 0;
12464
- padding: 0;
12465
- margin: 0;
12466
- border: none;
12467
- background-color: var(--chatphotogrid-color-placeholder);
12468
- aspect-ratio: 1 / 1;
12469
- }
12470
-
12471
- button.muka-chat-photo-grid__tile {
12472
- cursor: pointer;
12473
- appearance: none;
12474
- }
12475
-
12476
- button.muka-chat-photo-grid__tile:focus-visible {
12477
- outline: var(--border-width-bold) solid var(--color-border-focus);
12478
- /* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
12479
- outline-offset: calc(-1 * var(--border-width-bold));
12480
- }
12481
-
12482
- .muka-chat-photo-grid__image {
12483
- display: block;
12484
- width: 100%;
12485
- height: 100%;
12486
- object-fit: cover;
12487
- }
12488
-
12489
- /* ─── Overflow tile ────────────────────────────────────── */
12490
-
12491
- .muka-chat-photo-grid__overflow {
12492
- position: absolute;
12493
- inset: 0;
12494
- display: flex;
12495
- align-items: center;
12496
- justify-content: center;
12497
- background-color: var(--chatphotogrid-color-overflow-background);
12498
- color: var(--chatphotogrid-color-overflow-foreground);
12499
- font-family: var(--text-body-2xl-regular-fontFamily);
12500
- font-weight: var(--text-body-2xl-regular-fontWeight);
12501
- font-size: var(--text-body-2xl-regular-fontSize);
12502
- line-height: var(--text-body-2xl-regular-lineHeight);
12503
- }
12504
-
12505
- /* ─── Layouts ──────────────────────────────────────────── */
12506
-
12507
- .muka-chat-photo-grid--1 {
12508
- grid-template-columns: 1fr;
12509
- }
12510
-
12511
- .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
12512
- aspect-ratio: 4 / 3;
12513
- }
12514
-
12515
- .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
12516
- aspect-ratio: 3 / 4;
12517
- }
12518
-
12519
- .muka-chat-photo-grid--2 {
12520
- grid-template-columns: repeat(2, 1fr);
12521
- }
12522
-
12523
- .muka-chat-photo-grid--3 {
12524
- grid-template-columns: repeat(3, 1fr);
12525
- }
12526
-
12527
- .muka-chat-photo-grid--4 {
12528
- grid-template-columns: repeat(2, 1fr);
12529
- }
12530
-
12531
- /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
12532
- .muka-chat-photo-grid--5 {
12533
- grid-template-columns: repeat(6, 1fr);
12534
- }
12535
-
12536
- .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
12537
- grid-column: span 3;
12538
- }
12539
-
12540
- .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
12541
- grid-column: span 2;
12542
- }
12543
-
12544
- .muka-chat-photo-grid--6,
12545
- .muka-chat-photo-grid--overflow {
12546
- grid-template-columns: repeat(3, 1fr);
12547
- }
12548
-
12549
- /* ─── Print ────────────────────────────────────────────── */
12550
-
12551
- @media print {
12552
- .muka-chat-photo-grid {
12553
- break-inside: avoid;
12554
- }
12555
-
12556
- .muka-chat-photo-grid__image {
12557
- print-color-adjust: exact;
12558
- -webkit-print-color-adjust: exact;
12559
- }
12560
- }
12561
-
12562
-
12563
12442
  /* Checkbox */
12564
12443
  /* Checkbox Component Styles - Using Muka Design Tokens */
12565
12444
 
@@ -12727,6 +12606,128 @@ button.muka-chat-photo-grid__tile:focus-visible {
12727
12606
  }
12728
12607
 
12729
12608
 
12609
+ /* ChatPhotoGrid */
12610
+ /* ChatPhotoGrid Component Styles */
12611
+
12612
+ /*
12613
+ * The grid clips to its own radius and the tiles stay square, so only the four
12614
+ * outer corners round — matching the Figma "Wrapper" frame (5225:1394).
12615
+ */
12616
+ .muka-chat-photo-grid {
12617
+ display: grid;
12618
+ gap: var(--chatphotogrid-gap);
12619
+ width: 100%;
12620
+ min-width: 0;
12621
+ overflow: hidden;
12622
+ border-radius: var(--chatphotogrid-radius);
12623
+ }
12624
+
12625
+ /* ─── Tiles ────────────────────────────────────────────── */
12626
+
12627
+ .muka-chat-photo-grid__tile {
12628
+ position: relative;
12629
+ display: block;
12630
+ overflow: hidden;
12631
+ min-width: 0;
12632
+ padding: 0;
12633
+ margin: 0;
12634
+ border: none;
12635
+ background-color: var(--chatphotogrid-color-placeholder);
12636
+ aspect-ratio: 1 / 1;
12637
+ }
12638
+
12639
+ button.muka-chat-photo-grid__tile {
12640
+ cursor: pointer;
12641
+ appearance: none;
12642
+ }
12643
+
12644
+ button.muka-chat-photo-grid__tile:focus-visible {
12645
+ outline: var(--border-width-bold) solid var(--color-border-focus);
12646
+ /* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
12647
+ outline-offset: calc(-1 * var(--border-width-bold));
12648
+ }
12649
+
12650
+ .muka-chat-photo-grid__image {
12651
+ display: block;
12652
+ width: 100%;
12653
+ height: 100%;
12654
+ object-fit: cover;
12655
+ }
12656
+
12657
+ /* ─── Overflow tile ────────────────────────────────────── */
12658
+
12659
+ .muka-chat-photo-grid__overflow {
12660
+ position: absolute;
12661
+ inset: 0;
12662
+ display: flex;
12663
+ align-items: center;
12664
+ justify-content: center;
12665
+ background-color: var(--chatphotogrid-color-overflow-background);
12666
+ color: var(--chatphotogrid-color-overflow-foreground);
12667
+ font-family: var(--text-body-2xl-regular-fontFamily);
12668
+ font-weight: var(--text-body-2xl-regular-fontWeight);
12669
+ font-size: var(--text-body-2xl-regular-fontSize);
12670
+ line-height: var(--text-body-2xl-regular-lineHeight);
12671
+ }
12672
+
12673
+ /* ─── Layouts ──────────────────────────────────────────── */
12674
+
12675
+ .muka-chat-photo-grid--1 {
12676
+ grid-template-columns: 1fr;
12677
+ }
12678
+
12679
+ .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
12680
+ aspect-ratio: 4 / 3;
12681
+ }
12682
+
12683
+ .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
12684
+ aspect-ratio: 3 / 4;
12685
+ }
12686
+
12687
+ .muka-chat-photo-grid--2 {
12688
+ grid-template-columns: repeat(2, 1fr);
12689
+ }
12690
+
12691
+ .muka-chat-photo-grid--3 {
12692
+ grid-template-columns: repeat(3, 1fr);
12693
+ }
12694
+
12695
+ .muka-chat-photo-grid--4 {
12696
+ grid-template-columns: repeat(2, 1fr);
12697
+ }
12698
+
12699
+ /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
12700
+ .muka-chat-photo-grid--5 {
12701
+ grid-template-columns: repeat(6, 1fr);
12702
+ }
12703
+
12704
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
12705
+ grid-column: span 3;
12706
+ }
12707
+
12708
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
12709
+ grid-column: span 2;
12710
+ }
12711
+
12712
+ .muka-chat-photo-grid--6,
12713
+ .muka-chat-photo-grid--overflow {
12714
+ grid-template-columns: repeat(3, 1fr);
12715
+ }
12716
+
12717
+ /* ─── Print ────────────────────────────────────────────── */
12718
+
12719
+ @media print {
12720
+ .muka-chat-photo-grid {
12721
+ break-inside: avoid;
12722
+ }
12723
+
12724
+ .muka-chat-photo-grid__image {
12725
+ print-color-adjust: exact;
12726
+ -webkit-print-color-adjust: exact;
12727
+ }
12728
+ }
12729
+
12730
+
12730
12731
  /* ChatMessageStack */
12731
12732
  /* ChatMessageStack Component Styles */
12732
12733
 
@@ -14012,114 +14013,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
14012
14013
  }
14013
14014
 
14014
14015
 
14015
- /* BadgeNumber */
14016
- /* BadgeNumber Component Styles - Using Muka Design Tokens */
14017
-
14018
- .muka-badge-number {
14019
- display: inline-flex;
14020
- align-items: center;
14021
- justify-content: center;
14022
- border-radius: var(--border-radius-full);
14023
- white-space: nowrap;
14024
- user-select: none;
14025
- box-sizing: border-box;
14026
- }
14027
-
14028
- /*
14029
- * Sizes — fixed height, matching min-width (so a single digit renders as a
14030
- * circle), horizontal padding, and bold label typography. Vertical centering
14031
- * is handled by the fixed height + align-items: center.
14032
- */
14033
- .muka-badge-number--2xs {
14034
- height: var(--badge-number-size-2xs);
14035
- min-width: var(--badge-number-size-2xs);
14036
- padding: 0 var(--badge-number-padding-2xs);
14037
- font-family: var(--text-label-xs-bold-fontFamily);
14038
- font-weight: var(--text-label-xs-bold-fontWeight);
14039
- font-size: var(--text-label-xs-bold-fontSize);
14040
- line-height: var(--text-label-xs-bold-lineHeight);
14041
- }
14042
-
14043
- .muka-badge-number--xs {
14044
- height: var(--badge-number-size-xs);
14045
- min-width: var(--badge-number-size-xs);
14046
- padding: 0 var(--badge-number-padding-xs);
14047
- font-family: var(--text-label-sm-bold-fontFamily);
14048
- font-weight: var(--text-label-sm-bold-fontWeight);
14049
- font-size: var(--text-label-sm-bold-fontSize);
14050
- line-height: var(--text-label-sm-bold-lineHeight);
14051
- }
14052
-
14053
- .muka-badge-number--sm {
14054
- height: var(--badge-number-size-sm);
14055
- min-width: var(--badge-number-size-sm);
14056
- padding: 0 var(--badge-number-padding-sm);
14057
- font-family: var(--text-label-md-bold-fontFamily);
14058
- font-weight: var(--text-label-md-bold-fontWeight);
14059
- font-size: var(--text-label-md-bold-fontSize);
14060
- line-height: var(--text-label-md-bold-lineHeight);
14061
- }
14062
-
14063
- .muka-badge-number--md {
14064
- height: var(--badge-number-size-md);
14065
- min-width: var(--badge-number-size-md);
14066
- padding: 0 var(--badge-number-padding-md);
14067
- font-family: var(--text-label-lg-bold-fontFamily);
14068
- font-weight: var(--text-label-lg-bold-fontWeight);
14069
- font-size: var(--text-label-lg-bold-fontSize);
14070
- line-height: var(--text-label-lg-bold-lineHeight);
14071
- }
14072
-
14073
- .muka-badge-number--lg {
14074
- height: var(--badge-number-size-lg);
14075
- min-width: var(--badge-number-size-lg);
14076
- padding: 0 var(--badge-number-padding-lg);
14077
- font-family: var(--text-label-2xl-bold-fontFamily);
14078
- font-weight: var(--text-label-2xl-bold-fontWeight);
14079
- font-size: var(--text-label-2xl-bold-fontSize);
14080
- line-height: var(--text-label-2xl-bold-lineHeight);
14081
- }
14082
-
14083
- .muka-badge-number__label {
14084
- /*
14085
- * The badge sets a tight line-height for compact sizing, which would clip
14086
- * glyph descenders; give the label a roomier line-height. Vertical centering
14087
- * is unaffected because the badge height is fixed and content is centered.
14088
- */
14089
- line-height: normal;
14090
- }
14091
-
14092
- /* Neutral variant */
14093
- .muka-badge-number--neutral {
14094
- background-color: var(--color-surface-level1);
14095
- color: var(--color-text-default-default);
14096
- }
14097
-
14098
- /* Info variant */
14099
- .muka-badge-number--info {
14100
- background-color: var(--color-state-info-contrast);
14101
- color: var(--color-text-default-inverse);
14102
- }
14103
-
14104
- /* Success variant */
14105
- .muka-badge-number--success {
14106
- background-color: var(--color-state-success-contrast);
14107
- color: var(--color-text-default-inverse);
14108
- }
14109
-
14110
- /* Warning variant */
14111
- .muka-badge-number--warning {
14112
- background-color: var(--color-state-warning-contrast);
14113
- color: var(--color-text-default-inverse);
14114
- }
14115
-
14116
- /* Error variant */
14117
- .muka-badge-number--error {
14118
- background-color: var(--color-state-error-contrast);
14119
- color: var(--color-text-default-inverse);
14120
- }
14121
-
14122
-
14123
14016
  /* BottomBar */
14124
14017
  /* BottomBar Component Styles */
14125
14018
 
@@ -14436,6 +14329,114 @@ button.muka-chat-photo-grid__tile:focus-visible {
14436
14329
  }
14437
14330
 
14438
14331
 
14332
+ /* BadgeNumber */
14333
+ /* BadgeNumber Component Styles - Using Muka Design Tokens */
14334
+
14335
+ .muka-badge-number {
14336
+ display: inline-flex;
14337
+ align-items: center;
14338
+ justify-content: center;
14339
+ border-radius: var(--border-radius-full);
14340
+ white-space: nowrap;
14341
+ user-select: none;
14342
+ box-sizing: border-box;
14343
+ }
14344
+
14345
+ /*
14346
+ * Sizes — fixed height, matching min-width (so a single digit renders as a
14347
+ * circle), horizontal padding, and bold label typography. Vertical centering
14348
+ * is handled by the fixed height + align-items: center.
14349
+ */
14350
+ .muka-badge-number--2xs {
14351
+ height: var(--badge-number-size-2xs);
14352
+ min-width: var(--badge-number-size-2xs);
14353
+ padding: 0 var(--badge-number-padding-2xs);
14354
+ font-family: var(--text-label-xs-bold-fontFamily);
14355
+ font-weight: var(--text-label-xs-bold-fontWeight);
14356
+ font-size: var(--text-label-xs-bold-fontSize);
14357
+ line-height: var(--text-label-xs-bold-lineHeight);
14358
+ }
14359
+
14360
+ .muka-badge-number--xs {
14361
+ height: var(--badge-number-size-xs);
14362
+ min-width: var(--badge-number-size-xs);
14363
+ padding: 0 var(--badge-number-padding-xs);
14364
+ font-family: var(--text-label-sm-bold-fontFamily);
14365
+ font-weight: var(--text-label-sm-bold-fontWeight);
14366
+ font-size: var(--text-label-sm-bold-fontSize);
14367
+ line-height: var(--text-label-sm-bold-lineHeight);
14368
+ }
14369
+
14370
+ .muka-badge-number--sm {
14371
+ height: var(--badge-number-size-sm);
14372
+ min-width: var(--badge-number-size-sm);
14373
+ padding: 0 var(--badge-number-padding-sm);
14374
+ font-family: var(--text-label-md-bold-fontFamily);
14375
+ font-weight: var(--text-label-md-bold-fontWeight);
14376
+ font-size: var(--text-label-md-bold-fontSize);
14377
+ line-height: var(--text-label-md-bold-lineHeight);
14378
+ }
14379
+
14380
+ .muka-badge-number--md {
14381
+ height: var(--badge-number-size-md);
14382
+ min-width: var(--badge-number-size-md);
14383
+ padding: 0 var(--badge-number-padding-md);
14384
+ font-family: var(--text-label-lg-bold-fontFamily);
14385
+ font-weight: var(--text-label-lg-bold-fontWeight);
14386
+ font-size: var(--text-label-lg-bold-fontSize);
14387
+ line-height: var(--text-label-lg-bold-lineHeight);
14388
+ }
14389
+
14390
+ .muka-badge-number--lg {
14391
+ height: var(--badge-number-size-lg);
14392
+ min-width: var(--badge-number-size-lg);
14393
+ padding: 0 var(--badge-number-padding-lg);
14394
+ font-family: var(--text-label-2xl-bold-fontFamily);
14395
+ font-weight: var(--text-label-2xl-bold-fontWeight);
14396
+ font-size: var(--text-label-2xl-bold-fontSize);
14397
+ line-height: var(--text-label-2xl-bold-lineHeight);
14398
+ }
14399
+
14400
+ .muka-badge-number__label {
14401
+ /*
14402
+ * The badge sets a tight line-height for compact sizing, which would clip
14403
+ * glyph descenders; give the label a roomier line-height. Vertical centering
14404
+ * is unaffected because the badge height is fixed and content is centered.
14405
+ */
14406
+ line-height: normal;
14407
+ }
14408
+
14409
+ /* Neutral variant */
14410
+ .muka-badge-number--neutral {
14411
+ background-color: var(--color-surface-level1);
14412
+ color: var(--color-text-default-default);
14413
+ }
14414
+
14415
+ /* Info variant */
14416
+ .muka-badge-number--info {
14417
+ background-color: var(--color-state-info-contrast);
14418
+ color: var(--color-text-default-inverse);
14419
+ }
14420
+
14421
+ /* Success variant */
14422
+ .muka-badge-number--success {
14423
+ background-color: var(--color-state-success-contrast);
14424
+ color: var(--color-text-default-inverse);
14425
+ }
14426
+
14427
+ /* Warning variant */
14428
+ .muka-badge-number--warning {
14429
+ background-color: var(--color-state-warning-contrast);
14430
+ color: var(--color-text-default-inverse);
14431
+ }
14432
+
14433
+ /* Error variant */
14434
+ .muka-badge-number--error {
14435
+ background-color: var(--color-state-error-contrast);
14436
+ color: var(--color-text-default-inverse);
14437
+ }
14438
+
14439
+
14439
14440
  /* Badge */
14440
14441
  /* Badge Component Styles - Using Muka Design Tokens */
14441
14442
 
@@ -14879,9 +14880,12 @@ button.muka-chat-photo-grid__tile:focus-visible {
14879
14880
 
14880
14881
  /* Avatar Group (Figma "Avatar Stack") */
14881
14882
  .muka-avatar-group {
14883
+ position: relative;
14882
14884
  display: inline-flex;
14883
14885
  align-items: center;
14884
14886
  flex-direction: row;
14887
+ /* Never stretch to a grid cell or column, so the badge stays on the last avatar */
14888
+ width: fit-content;
14885
14889
  }
14886
14890
 
14887
14891
  /* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
@@ -14901,7 +14905,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
14901
14905
  box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
14902
14906
  }
14903
14907
 
14904
- /* Overlap. Figma specifies exact values for 48 / 32 / 24px avatars (sm / 2xs / 3xs);
14908
+ /* Overlap. Figma specifies exact values for 40 / 32 / 24px avatars (xs / 2xs / 3xs);
14905
14909
  other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
14906
14910
  .muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
14907
14911
  .muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
@@ -14916,13 +14920,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
14916
14920
  .muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
14917
14921
  .muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
14918
14922
 
14919
- .muka-avatar-group--tight.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-sm); }
14923
+ .muka-avatar-group--tight.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-xs); }
14920
14924
  .muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
14921
14925
  .muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
14922
- .muka-avatar-group--compact.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-sm); }
14926
+ .muka-avatar-group--compact.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-xs); }
14923
14927
  .muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
14924
14928
  .muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
14925
- .muka-avatar-group--spacious.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-sm); }
14929
+ .muka-avatar-group--spacious.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-xs); }
14926
14930
  .muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
14927
14931
  .muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
14928
14932
 
@@ -14930,6 +14934,14 @@ button.muka-chat-photo-grid__tile:focus-visible {
14930
14934
  margin-left: calc(-1 * var(--muka-avatar-group-overlap));
14931
14935
  }
14932
14936
 
14937
+ /* Badge: a BadgeNumber on the top-right corner of the stack, above every avatar */
14938
+ .muka-avatar-group__badge {
14939
+ position: absolute;
14940
+ top: calc(-1 * var(--avatar-group-badge-offset));
14941
+ right: calc(-1 * var(--avatar-group-badge-offset));
14942
+ z-index: 20;
14943
+ }
14944
+
14933
14945
  /* Overflow avatar styling */
14934
14946
  .muka-avatar--overflow {
14935
14947
  background-color: var(--avatar-color-background-default);