@revikornmann/muka-ui 0.11.0 → 0.12.0

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 (79) hide show
  1. package/build/manifest.json +20 -0
  2. package/dist/cjs/components/AgentTaskList/AgentTaskList.css +22 -3
  3. package/dist/cjs/components/BottomBar/BottomBar.css +8 -5
  4. package/dist/cjs/components/Button/Button.css +13 -6
  5. package/dist/cjs/components/Button/Button.js +1 -1
  6. package/dist/cjs/components/ChatBubble/ChatBubble.css +251 -31
  7. package/dist/cjs/components/ChatBubble/ChatBubble.js +17 -4
  8. package/dist/cjs/components/ChatBubble/ChatBubble.js.map +1 -1
  9. package/dist/cjs/components/ChatComposer/ChatComposer.css +13 -1
  10. package/dist/cjs/components/ChatMessageList/ChatMessageList.css +17 -1
  11. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.css +113 -0
  12. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.js +47 -0
  13. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.js.map +1 -0
  14. package/dist/cjs/components/ChatPhotoGrid/index.js +11 -0
  15. package/dist/cjs/components/ChatPhotoGrid/index.js.map +1 -0
  16. package/dist/cjs/components/index.js +3 -1
  17. package/dist/cjs/components/index.js.map +1 -1
  18. package/dist/esm/components/AgentTaskList/AgentTaskList.css +22 -3
  19. package/dist/esm/components/BottomBar/BottomBar.css +8 -5
  20. package/dist/esm/components/Button/Button.css +13 -6
  21. package/dist/esm/components/Button/Button.js +1 -1
  22. package/dist/esm/components/ChatBubble/ChatBubble.css +251 -31
  23. package/dist/esm/components/ChatBubble/ChatBubble.js +18 -5
  24. package/dist/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  25. package/dist/esm/components/ChatComposer/ChatComposer.css +13 -1
  26. package/dist/esm/components/ChatMessageList/ChatMessageList.css +17 -1
  27. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.css +113 -0
  28. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.js +43 -0
  29. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.js.map +1 -0
  30. package/dist/esm/components/ChatPhotoGrid/index.js +3 -0
  31. package/dist/esm/components/ChatPhotoGrid/index.js.map +1 -0
  32. package/dist/esm/components/index.js +1 -0
  33. package/dist/esm/components/index.js.map +1 -1
  34. package/dist/styles/components/AgentTaskList.css +22 -3
  35. package/dist/styles/components/BottomBar.css +8 -5
  36. package/dist/styles/components/Button.css +13 -6
  37. package/dist/styles/components/ChatBubble.css +251 -31
  38. package/dist/styles/components/ChatComposer.css +13 -1
  39. package/dist/styles/components/ChatMessageList.css +17 -1
  40. package/dist/styles/components/ChatPhotoGrid.css +113 -0
  41. package/dist/styles/index.css +1025 -574
  42. package/dist/styles/muka-dark.css +1025 -574
  43. package/dist/styles/muka-light.css +1025 -574
  44. package/dist/styles/tokens-bouwplan-dark.css +58 -0
  45. package/dist/styles/tokens-bouwplan-light.css +58 -0
  46. package/dist/styles/tokens-fscl-dark.css +58 -0
  47. package/dist/styles/tokens-fscl-light.css +58 -0
  48. package/dist/styles/tokens-grip-dark.css +58 -0
  49. package/dist/styles/tokens-grip-light.css +58 -0
  50. package/dist/styles/tokens-muka-dark.css +58 -0
  51. package/dist/styles/tokens-muka-light.css +58 -0
  52. package/dist/styles/tokens-wireframe-dark.css +58 -0
  53. package/dist/styles/tokens-wireframe-light.css +58 -0
  54. package/dist/styles/wireframe-dark.css +1025 -574
  55. package/dist/styles/wireframe-light.css +1025 -574
  56. package/dist/types/components/Button/Button.d.ts +1 -1
  57. package/dist/types/components/ChatBubble/ChatBubble.d.ts +63 -8
  58. package/dist/types/components/ChatBubble/ChatBubble.d.ts.map +1 -1
  59. package/dist/types/components/ChatPhotoGrid/ChatPhotoGrid.d.ts +44 -0
  60. package/dist/types/components/ChatPhotoGrid/ChatPhotoGrid.d.ts.map +1 -0
  61. package/dist/types/components/ChatPhotoGrid/index.d.ts +3 -0
  62. package/dist/types/components/ChatPhotoGrid/index.d.ts.map +1 -0
  63. package/dist/types/components/index.d.ts +1 -0
  64. package/dist/types/components/index.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/tokens/README.md +14 -0
  67. package/tokens/t2-alias/brand/bouwplan/dark.json +24 -0
  68. package/tokens/t2-alias/brand/bouwplan/light.json +24 -0
  69. package/tokens/t2-alias/brand/fscl/dark.json +24 -0
  70. package/tokens/t2-alias/brand/fscl/light.json +24 -0
  71. package/tokens/t2-alias/brand/grip/dark.json +54 -0
  72. package/tokens/t2-alias/brand/grip/light.json +54 -0
  73. package/tokens/t2-alias/brand/muka/dark.json +54 -0
  74. package/tokens/t2-alias/brand/muka/light.json +54 -0
  75. package/tokens/t2-alias/brand/wireframe/dark.json +54 -0
  76. package/tokens/t2-alias/brand/wireframe/light.json +54 -0
  77. package/tokens/t3-semantics/ui.json +190 -0
  78. package/tokens/t4-components/chatbubble.json +154 -0
  79. package/tokens/t4-components/chatphotogrid.json +32 -0
@@ -1214,6 +1214,19 @@ body {
1214
1214
  --color-state-warning-default: #ffc53d;
1215
1215
  --color-state-warning-contrast: #ab6400;
1216
1216
  --color-state-warning-background: #fff7c2;
1217
+ --color-conversation-own-background: #ddf9f2;
1218
+ --color-conversation-own-background-raised: #f2fbf9;
1219
+ --color-conversation-own-border: #b3ecde;
1220
+ --color-conversation-own-foreground: #211f26;
1221
+ --color-conversation-peer-background: #fdfcfd;
1222
+ --color-conversation-peer-background-raised: #faf9fb;
1223
+ --color-conversation-peer-border: #e3dfe6;
1224
+ --color-conversation-peer-foreground: #211f26;
1225
+ --color-conversation-agent-background: #fff7c2;
1226
+ --color-conversation-agent-background-raised: #fefbe9;
1227
+ --color-conversation-agent-border: #fbe577;
1228
+ --color-conversation-agent-foreground: #211f26;
1229
+ --color-conversation-meta: #65636d;
1217
1230
  --color-border-contrast: #d0cdd7;
1218
1231
  --color-border-default: #eae7ec;
1219
1232
  --color-border-muted: #f2eff3;
@@ -1313,6 +1326,16 @@ body {
1313
1326
  --alias-color-state-neutral-surface-level1: #f2eff3;
1314
1327
  --alias-color-state-neutral-surface-level2: #eae7ec;
1315
1328
  --alias-color-state-neutral-surface-level3: #e3dfe6;
1329
+ --alias-color-conversation-own-surface-default: #ddf9f2;
1330
+ --alias-color-conversation-own-surface-raised: #f2fbf9;
1331
+ --alias-color-conversation-own-border: #b3ecde;
1332
+ --alias-color-conversation-peer-surface-default: #fdfcfd;
1333
+ --alias-color-conversation-peer-surface-raised: #faf9fb;
1334
+ --alias-color-conversation-peer-border: #e3dfe6;
1335
+ --alias-color-conversation-agent-surface-default: #fff7c2;
1336
+ --alias-color-conversation-agent-surface-raised: #fefbe9;
1337
+ --alias-color-conversation-agent-border: #fbe577;
1338
+ --alias-color-conversation-meta: #65636d;
1316
1339
  --alias-font-plain-family: Funnel Sans;
1317
1340
  --alias-font-plain-weight-regular: 400;
1318
1341
  --alias-font-plain-weight-medium: 500;
@@ -1659,6 +1682,41 @@ body {
1659
1682
  --card-border-hover: 0.0625rem solid #d0cdd7;
1660
1683
  --card-border-pressed: 0.125rem solid #3e63dd;
1661
1684
  --card-border-selected: 0.125rem solid #3e63dd;
1685
+ --chatbubble-max-width: 640px;
1686
+ --chatbubble-radius: 0.75rem;
1687
+ --chatbubble-padding: 1rem;
1688
+ --chatbubble-gap: 0.25rem;
1689
+ --chatbubble-body-gap: 1.5rem;
1690
+ --chatbubble-row-gap: 0.75rem;
1691
+ --chatbubble-avatar-size: 3rem;
1692
+ --chatbubble-color-own-background: #ddf9f2;
1693
+ --chatbubble-color-own-border: #b3ecde;
1694
+ --chatbubble-color-own-foreground: #211f26;
1695
+ --chatbubble-color-peer-background: #fdfcfd;
1696
+ --chatbubble-color-peer-border: #e3dfe6;
1697
+ --chatbubble-color-peer-foreground: #211f26;
1698
+ --chatbubble-color-agent-background: #fff7c2;
1699
+ --chatbubble-color-agent-border: #fbe577;
1700
+ --chatbubble-color-agent-foreground: #211f26;
1701
+ --chatbubble-color-timestamp: #65636d;
1702
+ --chatbubble-embed-padding: 0.75rem;
1703
+ --chatbubble-embed-gap: 0.5rem;
1704
+ --chatbubble-embed-radius: 0.75rem;
1705
+ --chatbubble-embed-color-own-background: #f2fbf9;
1706
+ --chatbubble-embed-color-own-border: #b3ecde;
1707
+ --chatbubble-embed-color-own-foreground: #211f26;
1708
+ --chatbubble-embed-color-peer-background: #faf9fb;
1709
+ --chatbubble-embed-color-peer-border: #e3dfe6;
1710
+ --chatbubble-embed-color-peer-foreground: #211f26;
1711
+ --chatbubble-embed-color-agent-background: #fefbe9;
1712
+ --chatbubble-embed-color-agent-border: #fbe577;
1713
+ --chatbubble-embed-color-agent-foreground: #211f26;
1714
+ --chatbubble-action-stack-gap: 0.75rem;
1715
+ --chatphotogrid-gap: 0.5rem;
1716
+ --chatphotogrid-radius: 0.1875rem;
1717
+ --chatphotogrid-color-placeholder: #f2eff3;
1718
+ --chatphotogrid-color-overflow-background: rgba(0, 0, 0, 0.565);
1719
+ --chatphotogrid-color-overflow-foreground: #fdfcfd;
1662
1720
  --input-field-color-default-background: #fdfcfd;
1663
1721
  --input-field-color-default-foreground: #211f26;
1664
1722
  --input-field-color-default-border: #d0cdd7;
@@ -7089,6 +7147,34 @@ body {
7089
7147
  }
7090
7148
 
7091
7149
 
7150
+ /* NavigationTransition */
7151
+ /* NavigationTransition Component Styles */
7152
+
7153
+ /* ─── Wrapper ────────────────────────────────────────── */
7154
+
7155
+ .muka-nav-transition {
7156
+ position: relative;
7157
+ height: 100vh;
7158
+ overflow: hidden;
7159
+ }
7160
+
7161
+ /* Disable interaction during animation */
7162
+ .muka-nav-transition--active {
7163
+ pointer-events: none;
7164
+ }
7165
+
7166
+ /* ─── View slots ─────────────────────────────────────── */
7167
+
7168
+ .muka-nav-transition--active .muka-nav-transition__view {
7169
+ position: absolute;
7170
+ inset: 0;
7171
+ }
7172
+
7173
+ /* Z-index layering */
7174
+ .muka-nav-transition__view--bottom { z-index: 1; }
7175
+ .muka-nav-transition__view--top { z-index: 2; }
7176
+
7177
+
7092
7178
  /* NumberInput */
7093
7179
  /* NumberInput — reuses Input field styles (../Input/Input.css). */
7094
7180
  /* Only the prefix/suffix affixes are NumberInput-specific. */
@@ -7119,34 +7205,6 @@ body {
7119
7205
  }
7120
7206
 
7121
7207
 
7122
- /* NavigationTransition */
7123
- /* NavigationTransition Component Styles */
7124
-
7125
- /* ─── Wrapper ────────────────────────────────────────── */
7126
-
7127
- .muka-nav-transition {
7128
- position: relative;
7129
- height: 100vh;
7130
- overflow: hidden;
7131
- }
7132
-
7133
- /* Disable interaction during animation */
7134
- .muka-nav-transition--active {
7135
- pointer-events: none;
7136
- }
7137
-
7138
- /* ─── View slots ─────────────────────────────────────── */
7139
-
7140
- .muka-nav-transition--active .muka-nav-transition__view {
7141
- position: absolute;
7142
- inset: 0;
7143
- }
7144
-
7145
- /* Z-index layering */
7146
- .muka-nav-transition__view--bottom { z-index: 1; }
7147
- .muka-nav-transition__view--top { z-index: 2; }
7148
-
7149
-
7150
7208
  /* Menu */
7151
7209
  /* Menu Component Styles */
7152
7210
 
@@ -7430,6 +7488,200 @@ body {
7430
7488
  }
7431
7489
 
7432
7490
 
7491
+ /* ListItem */
7492
+ /* ListItem Component Styles - Using Muka Design Tokens */
7493
+
7494
+ /* Base list item styles */
7495
+ .muka-listitem {
7496
+ /* Layout */
7497
+ display: flex;
7498
+ align-items: flex-start;
7499
+ gap: var(--spacing-4);
7500
+ padding: var(--spacing-5) var(--spacing-4);
7501
+
7502
+ /* Background - using semantic tokens */
7503
+ background-color: var(--color-surface-level3);
7504
+
7505
+ /* Typography */
7506
+ font-family: var(--alias-font-brand-family);
7507
+
7508
+ /* Border and spacing */
7509
+ border: none;
7510
+ position: relative;
7511
+
7512
+ /* Interaction - only apply if interactive */
7513
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
7514
+ }
7515
+
7516
+ /* Interactive state */
7517
+ .muka-listitem--interactive {
7518
+ cursor: pointer;
7519
+ }
7520
+
7521
+ /*
7522
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
7523
+ * are layered on top of the item's base surface via an inset box-shadow overlay
7524
+ * rather than replacing background-color. This preserves the base level (level3,
7525
+ * or level2 when selected) and lets the tint read correctly on any surface.
7526
+ */
7527
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
7528
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7529
+ }
7530
+
7531
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
7532
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
7533
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
7534
+ }
7535
+
7536
+ /* Focus styles for accessibility */
7537
+ .muka-listitem:focus-visible {
7538
+ outline: 2px solid var(--color-border-focus);
7539
+ outline-offset: -2px;
7540
+ }
7541
+
7542
+ /* Disabled state */
7543
+ .muka-listitem--disabled {
7544
+ opacity: 0.5;
7545
+ cursor: not-allowed;
7546
+ pointer-events: none;
7547
+ }
7548
+
7549
+ .muka-listitem--disabled:hover {
7550
+ background-color: var(--color-surface-level3);
7551
+ }
7552
+
7553
+ /* Selected state */
7554
+ .muka-listitem--selected {
7555
+ background-color: var(--color-surface-level2);
7556
+ }
7557
+
7558
+ .muka-listitem--selected:hover {
7559
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7560
+ }
7561
+
7562
+ /* No divider modifier */
7563
+ .muka-listitem--no-divider .muka-listitem__divider {
7564
+ display: none;
7565
+ }
7566
+
7567
+ /* Center content vertically when no caption */
7568
+ .muka-listitem--no-caption {
7569
+ align-items: center;
7570
+ }
7571
+
7572
+ /* Leading content (icon or image) */
7573
+ .muka-listitem__leading {
7574
+ display: flex;
7575
+ align-items: center;
7576
+ justify-content: center;
7577
+ flex-shrink: 0;
7578
+ width: 48px;
7579
+ height: 48px;
7580
+ }
7581
+
7582
+ .muka-listitem__icon {
7583
+ display: inline-flex;
7584
+ align-items: center;
7585
+ justify-content: center;
7586
+ width: 32px;
7587
+ height: 32px;
7588
+ color: var(--color-text-default-default);
7589
+ }
7590
+
7591
+ .muka-listitem__image {
7592
+ width: 48px;
7593
+ height: 48px;
7594
+ border-radius: var(--radius-md);
7595
+ object-fit: cover;
7596
+ }
7597
+
7598
+ /* Main content area */
7599
+ .muka-listitem__content {
7600
+ flex: 1;
7601
+ display: flex;
7602
+ align-items: center;
7603
+ gap: var(--spacing-4);
7604
+ min-width: 0;
7605
+ }
7606
+
7607
+ .muka-listitem__text {
7608
+ flex: 1;
7609
+ display: flex;
7610
+ flex-direction: column;
7611
+ gap: var(--spacing-1);
7612
+ min-width: 0;
7613
+ }
7614
+
7615
+ /* Label text */
7616
+ .muka-listitem__label {
7617
+ margin: 0;
7618
+ padding: 0;
7619
+
7620
+ /* Typography - using semantic tokens */
7621
+ font-family: var(--alias-font-plain-family);
7622
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
7623
+ font-size: var(--text-label-md-fontSize);
7624
+ line-height: var(--text-label-md-lineHeight);
7625
+ color: var(--color-text-default-default);
7626
+
7627
+ /* Text handling */
7628
+ overflow: hidden;
7629
+ text-overflow: ellipsis;
7630
+ white-space: nowrap;
7631
+ }
7632
+
7633
+ /* Caption text */
7634
+ .muka-listitem__caption {
7635
+ margin: 0;
7636
+ padding: 0;
7637
+
7638
+ /* Typography - using semantic tokens */
7639
+ font-family: var(--alias-font-plain-family);
7640
+ font-weight: var(--alias-font-plain-weight-regular, 400);
7641
+ font-size: var(--text-body-sm-fontSize);
7642
+ line-height: var(--text-body-sm-lineHeight);
7643
+ color: var(--color-text-subtle-default);
7644
+
7645
+ /* Text handling */
7646
+ overflow: hidden;
7647
+ text-overflow: ellipsis;
7648
+ white-space: nowrap;
7649
+ }
7650
+
7651
+ /* Trailing chevron */
7652
+ .muka-listitem__chevron {
7653
+ display: inline-flex;
7654
+ align-items: center;
7655
+ justify-content: center;
7656
+ flex-shrink: 0;
7657
+ width: 24px;
7658
+ height: 24px;
7659
+ color: var(--color-text-subtle-default);
7660
+ }
7661
+
7662
+ /* Bottom divider */
7663
+ .muka-listitem__divider {
7664
+ position: absolute;
7665
+ bottom: 0;
7666
+ left: 0;
7667
+ right: 0;
7668
+ height: 1px;
7669
+ background-color: var(--color-border-default);
7670
+ }
7671
+
7672
+ /* Button and anchor specific styles */
7673
+ button.muka-listitem,
7674
+ a.muka-listitem {
7675
+ text-align: left;
7676
+ width: 100%;
7677
+ }
7678
+
7679
+ /* List item specific styles */
7680
+ li.muka-listitem {
7681
+ list-style: none;
7682
+ }
7683
+
7684
+
7433
7685
  /* LicensePlateInput */
7434
7686
  /* LicensePlateInput — Dutch RDW-style plate input
7435
7687
  *
@@ -8498,164 +8750,8 @@ body {
8498
8750
  }
8499
8751
 
8500
8752
 
8501
- /* Drawer */
8502
- /* Drawer Component Styles */
8503
-
8504
- /* Size tokens (local to Drawer) */
8505
- .muka-drawer {
8506
- --drawer-width-sm: 18rem;
8507
- --drawer-width-md: 26rem;
8508
- --drawer-width-lg: 36rem;
8509
- }
8510
-
8511
- /* Reset native dialog */
8512
- .muka-drawer {
8513
- border: none;
8514
- padding: 0;
8515
- max-width: none;
8516
- max-height: none;
8517
- background: transparent;
8518
- overflow: visible;
8519
- }
8520
-
8521
- /* Backdrop */
8522
- .muka-drawer::backdrop {
8523
- background-color: var(--color-surface-backdrop);
8524
- opacity: 0;
8525
- transition: opacity 200ms ease;
8526
- }
8527
-
8528
- .muka-drawer--slide-in::backdrop {
8529
- opacity: 1;
8530
- }
8531
-
8532
- /* Surface */
8533
- .muka-drawer__surface {
8534
- display: flex;
8535
- flex-direction: column;
8536
- background-color: var(--color-surface-level3);
8537
- box-shadow: var(--shadow-level5);
8538
- height: 100%;
8539
- overflow: hidden;
8540
- position: fixed;
8541
- transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
8542
- }
8543
-
8544
- /* Side positioning + initial transforms */
8545
- .muka-drawer--right .muka-drawer__surface {
8546
- top: 0;
8547
- right: 0;
8548
- bottom: 0;
8549
- border-radius: var(--radius-lg) 0 0 var(--radius-lg);
8550
- transform: translateX(100%);
8551
- }
8552
-
8553
- .muka-drawer--left .muka-drawer__surface {
8554
- top: 0;
8555
- left: 0;
8556
- bottom: 0;
8557
- border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
8558
- transform: translateX(-100%);
8559
- }
8560
-
8561
- .muka-drawer--bottom .muka-drawer__surface {
8562
- left: 0;
8563
- right: 0;
8564
- bottom: 0;
8565
- border-radius: var(--radius-lg) var(--radius-lg) 0 0;
8566
- transform: translateY(100%);
8567
- }
8568
-
8569
- .muka-drawer--top .muka-drawer__surface {
8570
- left: 0;
8571
- right: 0;
8572
- top: 0;
8573
- border-radius: 0 0 var(--radius-lg) var(--radius-lg);
8574
- transform: translateY(-100%);
8575
- }
8576
-
8577
- /* Slide-in state */
8578
- .muka-drawer--slide-in .muka-drawer__surface {
8579
- transform: translate(0, 0);
8580
- }
8581
-
8582
- /* Width sizes (left/right) */
8583
- .muka-drawer--right .muka-drawer__surface,
8584
- .muka-drawer--left .muka-drawer__surface {
8585
- width: var(--drawer-width-md);
8586
- }
8587
-
8588
- .muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
8589
- .muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
8590
- width: var(--drawer-width-sm);
8591
- }
8592
-
8593
- .muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
8594
- .muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
8595
- width: var(--drawer-width-lg);
8596
- }
8597
-
8598
- .muka-drawer--full.muka-drawer--right .muka-drawer__surface,
8599
- .muka-drawer--full.muka-drawer--left .muka-drawer__surface {
8600
- width: 100%;
8601
- }
8602
-
8603
- /* Height sizes (top/bottom) */
8604
- .muka-drawer--top .muka-drawer__surface,
8605
- .muka-drawer--bottom .muka-drawer__surface {
8606
- height: auto;
8607
- max-height: 80vh;
8608
- }
8609
-
8610
- .muka-drawer--full.muka-drawer--top .muka-drawer__surface,
8611
- .muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
8612
- max-height: 100vh;
8613
- }
8614
-
8615
- /* Header */
8616
- .muka-drawer__header {
8617
- display: flex;
8618
- align-items: center;
8619
- gap: var(--spacing-3);
8620
- padding: var(--spacing-4);
8621
- border-bottom: var(--border-width-regular) solid var(--color-border-default);
8622
- flex-shrink: 0;
8623
- }
8624
-
8625
- .muka-drawer__title {
8626
- flex: 1;
8627
- margin: 0;
8628
- font-family: var(--text-label-lg-semibold-fontFamily);
8629
- font-weight: var(--text-label-lg-semibold-fontWeight);
8630
- font-size: var(--text-label-lg-semibold-fontSize);
8631
- line-height: var(--text-label-lg-semibold-lineHeight);
8632
- color: var(--color-text-default-default);
8633
- }
8634
-
8635
- .muka-drawer__leading,
8636
- .muka-drawer__trailing {
8637
- display: flex;
8638
- align-items: center;
8639
- flex-shrink: 0;
8640
- }
8641
-
8642
- /* Body */
8643
- .muka-drawer__body {
8644
- flex: 1;
8645
- overflow-y: auto;
8646
- padding: var(--spacing-4);
8647
- }
8648
-
8649
- /* Footer */
8650
- .muka-drawer__footer {
8651
- padding: var(--spacing-4);
8652
- border-top: var(--border-width-regular) solid var(--color-border-default);
8653
- flex-shrink: 0;
8654
- }
8655
-
8656
-
8657
- /* DocumentViewer */
8658
- /* DocumentViewer Component Styles - Using Muka Design Tokens */
8753
+ /* DocumentViewer */
8754
+ /* DocumentViewer Component Styles - Using Muka Design Tokens */
8659
8755
 
8660
8756
  .muka-documentviewer {
8661
8757
  display: flex;
@@ -8933,30 +9029,159 @@ body {
8933
9029
  }
8934
9030
 
8935
9031
 
8936
- /* Divider */
8937
- /* Divider Component Styles - Using Muka Design Tokens */
9032
+ /* Drawer */
9033
+ /* Drawer Component Styles */
8938
9034
 
8939
- .muka-divider {
9035
+ /* Size tokens (local to Drawer) */
9036
+ .muka-drawer {
9037
+ --drawer-width-sm: 18rem;
9038
+ --drawer-width-md: 26rem;
9039
+ --drawer-width-lg: 36rem;
9040
+ }
9041
+
9042
+ /* Reset native dialog */
9043
+ .muka-drawer {
9044
+ border: none;
9045
+ padding: 0;
9046
+ max-width: none;
9047
+ max-height: none;
9048
+ background: transparent;
9049
+ overflow: visible;
9050
+ }
9051
+
9052
+ /* Backdrop */
9053
+ .muka-drawer::backdrop {
9054
+ background-color: var(--color-surface-backdrop);
9055
+ opacity: 0;
9056
+ transition: opacity 200ms ease;
9057
+ }
9058
+
9059
+ .muka-drawer--slide-in::backdrop {
9060
+ opacity: 1;
9061
+ }
9062
+
9063
+ /* Surface */
9064
+ .muka-drawer__surface {
9065
+ display: flex;
9066
+ flex-direction: column;
9067
+ background-color: var(--color-surface-level3);
9068
+ box-shadow: var(--shadow-level5);
9069
+ height: 100%;
9070
+ overflow: hidden;
9071
+ position: fixed;
9072
+ transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
9073
+ }
9074
+
9075
+ /* Side positioning + initial transforms */
9076
+ .muka-drawer--right .muka-drawer__surface {
9077
+ top: 0;
9078
+ right: 0;
9079
+ bottom: 0;
9080
+ border-radius: var(--radius-lg) 0 0 var(--radius-lg);
9081
+ transform: translateX(100%);
9082
+ }
9083
+
9084
+ .muka-drawer--left .muka-drawer__surface {
9085
+ top: 0;
9086
+ left: 0;
9087
+ bottom: 0;
9088
+ border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
9089
+ transform: translateX(-100%);
9090
+ }
9091
+
9092
+ .muka-drawer--bottom .muka-drawer__surface {
9093
+ left: 0;
9094
+ right: 0;
9095
+ bottom: 0;
9096
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
9097
+ transform: translateY(100%);
9098
+ }
9099
+
9100
+ .muka-drawer--top .muka-drawer__surface {
9101
+ left: 0;
9102
+ right: 0;
9103
+ top: 0;
9104
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
9105
+ transform: translateY(-100%);
9106
+ }
9107
+
9108
+ /* Slide-in state */
9109
+ .muka-drawer--slide-in .muka-drawer__surface {
9110
+ transform: translate(0, 0);
9111
+ }
9112
+
9113
+ /* Width sizes (left/right) */
9114
+ .muka-drawer--right .muka-drawer__surface,
9115
+ .muka-drawer--left .muka-drawer__surface {
9116
+ width: var(--drawer-width-md);
9117
+ }
9118
+
9119
+ .muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
9120
+ .muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
9121
+ width: var(--drawer-width-sm);
9122
+ }
9123
+
9124
+ .muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
9125
+ .muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
9126
+ width: var(--drawer-width-lg);
9127
+ }
9128
+
9129
+ .muka-drawer--full.muka-drawer--right .muka-drawer__surface,
9130
+ .muka-drawer--full.muka-drawer--left .muka-drawer__surface {
9131
+ width: 100%;
9132
+ }
9133
+
9134
+ /* Height sizes (top/bottom) */
9135
+ .muka-drawer--top .muka-drawer__surface,
9136
+ .muka-drawer--bottom .muka-drawer__surface {
9137
+ height: auto;
9138
+ max-height: 80vh;
9139
+ }
9140
+
9141
+ .muka-drawer--full.muka-drawer--top .muka-drawer__surface,
9142
+ .muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
9143
+ max-height: 100vh;
9144
+ }
9145
+
9146
+ /* Header */
9147
+ .muka-drawer__header {
9148
+ display: flex;
9149
+ align-items: center;
9150
+ gap: var(--spacing-3);
9151
+ padding: var(--spacing-4);
9152
+ border-bottom: var(--border-width-regular) solid var(--color-border-default);
8940
9153
  flex-shrink: 0;
8941
9154
  }
8942
9155
 
8943
- .muka-divider--horizontal {
8944
- width: 100%;
8945
- height: var(--separator-width);
9156
+ .muka-drawer__title {
9157
+ flex: 1;
9158
+ margin: 0;
9159
+ font-family: var(--text-label-lg-semibold-fontFamily);
9160
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9161
+ font-size: var(--text-label-lg-semibold-fontSize);
9162
+ line-height: var(--text-label-lg-semibold-lineHeight);
9163
+ color: var(--color-text-default-default);
8946
9164
  }
8947
9165
 
8948
- .muka-divider--vertical {
8949
- height: 100%;
8950
- width: var(--separator-width);
8951
- align-self: stretch;
9166
+ .muka-drawer__leading,
9167
+ .muka-drawer__trailing {
9168
+ display: flex;
9169
+ align-items: center;
9170
+ flex-shrink: 0;
8952
9171
  }
8953
9172
 
8954
- .muka-divider--default {
8955
- background-color: var(--separator-color-default);
9173
+ /* Body */
9174
+ .muka-drawer__body {
9175
+ flex: 1;
9176
+ overflow-y: auto;
9177
+ padding: var(--spacing-4);
8956
9178
  }
8957
9179
 
8958
- .muka-divider--contrast {
8959
- background-color: var(--separator-color-contrast);
9180
+ /* Footer */
9181
+ .muka-drawer__footer {
9182
+ padding: var(--spacing-4);
9183
+ border-top: var(--border-width-regular) solid var(--color-border-default);
9184
+ flex-shrink: 0;
8960
9185
  }
8961
9186
 
8962
9187
 
@@ -9944,255 +10169,61 @@ body {
9944
10169
  overflow: hidden;
9945
10170
  text-overflow: ellipsis;
9946
10171
  }
9947
-
9948
- .muka-combobox__clear,
9949
- .muka-combobox__chevron {
9950
- display: inline-flex;
9951
- align-items: center;
9952
- justify-content: center;
9953
- flex-shrink: 0;
9954
- color: var(--color-text-subtle-default);
9955
- }
9956
-
9957
- .muka-combobox__clear {
9958
- cursor: pointer;
9959
- padding: var(--spacing-1);
9960
- border-radius: var(--radius-sm);
9961
- }
9962
-
9963
- .muka-combobox__clear:hover {
9964
- color: var(--color-text-default-default);
9965
- background-color: var(--color-surface-level1);
9966
- }
9967
-
9968
- /* ─── Picker sheet body ───────────────────────────────── */
9969
-
9970
- .muka-combobox__picker {
9971
- display: flex;
9972
- flex-direction: column;
9973
- gap: var(--spacing-3);
9974
- padding: 0 var(--spacing-4) var(--spacing-4);
9975
- min-height: 0;
9976
- max-height: 80vh;
9977
- }
9978
-
9979
- .muka-combobox__title {
9980
- margin: 0;
9981
- padding: var(--spacing-2) 0;
9982
- color: var(--color-text-default-default);
9983
- font-family: var(--text-heading-sm-fontFamily);
9984
- font-weight: var(--text-heading-sm-fontWeight);
9985
- font-size: var(--text-heading-sm-fontSize);
9986
- line-height: var(--text-heading-sm-lineHeight);
9987
- }
9988
-
9989
- .muka-combobox__search {
9990
- position: sticky;
9991
- top: 0;
9992
- z-index: 1;
9993
- padding-bottom: var(--spacing-2);
9994
- background-color: var(--color-surface-level3);
9995
- }
9996
-
9997
- .muka-combobox__list {
9998
- flex: 1 1 auto;
9999
- min-height: 0;
10000
- overflow-y: auto;
10001
- -webkit-overflow-scrolling: touch;
10002
- }
10003
-
10004
-
10005
- /* ListItem */
10006
- /* ListItem Component Styles - Using Muka Design Tokens */
10007
-
10008
- /* Base list item styles */
10009
- .muka-listitem {
10010
- /* Layout */
10011
- display: flex;
10012
- align-items: flex-start;
10013
- gap: var(--spacing-4);
10014
- padding: var(--spacing-5) var(--spacing-4);
10015
-
10016
- /* Background - using semantic tokens */
10017
- background-color: var(--color-surface-level3);
10018
-
10019
- /* Typography */
10020
- font-family: var(--alias-font-brand-family);
10021
-
10022
- /* Border and spacing */
10023
- border: none;
10024
- position: relative;
10025
-
10026
- /* Interaction - only apply if interactive */
10027
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
10028
- }
10029
-
10030
- /* Interactive state */
10031
- .muka-listitem--interactive {
10032
- cursor: pointer;
10033
- }
10034
-
10035
- /*
10036
- * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
10037
- * are layered on top of the item's base surface via an inset box-shadow overlay
10038
- * rather than replacing background-color. This preserves the base level (level3,
10039
- * or level2 when selected) and lets the tint read correctly on any surface.
10040
- */
10041
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
10042
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10043
- }
10044
-
10045
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
10046
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
10047
- box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
10048
- }
10049
-
10050
- /* Focus styles for accessibility */
10051
- .muka-listitem:focus-visible {
10052
- outline: 2px solid var(--color-border-focus);
10053
- outline-offset: -2px;
10054
- }
10055
-
10056
- /* Disabled state */
10057
- .muka-listitem--disabled {
10058
- opacity: 0.5;
10059
- cursor: not-allowed;
10060
- pointer-events: none;
10061
- }
10062
-
10063
- .muka-listitem--disabled:hover {
10064
- background-color: var(--color-surface-level3);
10065
- }
10066
-
10067
- /* Selected state */
10068
- .muka-listitem--selected {
10069
- background-color: var(--color-surface-level2);
10070
- }
10071
-
10072
- .muka-listitem--selected:hover {
10073
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10074
- }
10075
-
10076
- /* No divider modifier */
10077
- .muka-listitem--no-divider .muka-listitem__divider {
10078
- display: none;
10079
- }
10080
-
10081
- /* Center content vertically when no caption */
10082
- .muka-listitem--no-caption {
10083
- align-items: center;
10084
- }
10085
-
10086
- /* Leading content (icon or image) */
10087
- .muka-listitem__leading {
10088
- display: flex;
10089
- align-items: center;
10090
- justify-content: center;
10091
- flex-shrink: 0;
10092
- width: 48px;
10093
- height: 48px;
10094
- }
10095
-
10096
- .muka-listitem__icon {
10097
- display: inline-flex;
10098
- align-items: center;
10099
- justify-content: center;
10100
- width: 32px;
10101
- height: 32px;
10102
- color: var(--color-text-default-default);
10103
- }
10104
-
10105
- .muka-listitem__image {
10106
- width: 48px;
10107
- height: 48px;
10108
- border-radius: var(--radius-md);
10109
- object-fit: cover;
10110
- }
10111
-
10112
- /* Main content area */
10113
- .muka-listitem__content {
10114
- flex: 1;
10115
- display: flex;
10116
- align-items: center;
10117
- gap: var(--spacing-4);
10118
- min-width: 0;
10119
- }
10120
-
10121
- .muka-listitem__text {
10122
- flex: 1;
10123
- display: flex;
10124
- flex-direction: column;
10125
- gap: var(--spacing-1);
10126
- min-width: 0;
10127
- }
10128
-
10129
- /* Label text */
10130
- .muka-listitem__label {
10131
- margin: 0;
10132
- padding: 0;
10133
-
10134
- /* Typography - using semantic tokens */
10135
- font-family: var(--alias-font-plain-family);
10136
- font-weight: var(--alias-font-plain-weight-semibold, 600);
10137
- font-size: var(--text-label-md-fontSize);
10138
- line-height: var(--text-label-md-lineHeight);
10139
- color: var(--color-text-default-default);
10140
-
10141
- /* Text handling */
10142
- overflow: hidden;
10143
- text-overflow: ellipsis;
10144
- white-space: nowrap;
10145
- }
10146
-
10147
- /* Caption text */
10148
- .muka-listitem__caption {
10149
- margin: 0;
10150
- padding: 0;
10151
-
10152
- /* Typography - using semantic tokens */
10153
- font-family: var(--alias-font-plain-family);
10154
- font-weight: var(--alias-font-plain-weight-regular, 400);
10155
- font-size: var(--text-body-sm-fontSize);
10156
- line-height: var(--text-body-sm-lineHeight);
10157
- color: var(--color-text-subtle-default);
10158
-
10159
- /* Text handling */
10160
- overflow: hidden;
10161
- text-overflow: ellipsis;
10162
- white-space: nowrap;
10163
- }
10164
-
10165
- /* Trailing chevron */
10166
- .muka-listitem__chevron {
10172
+
10173
+ .muka-combobox__clear,
10174
+ .muka-combobox__chevron {
10167
10175
  display: inline-flex;
10168
10176
  align-items: center;
10169
10177
  justify-content: center;
10170
10178
  flex-shrink: 0;
10171
- width: 24px;
10172
- height: 24px;
10173
10179
  color: var(--color-text-subtle-default);
10174
10180
  }
10175
10181
 
10176
- /* Bottom divider */
10177
- .muka-listitem__divider {
10178
- position: absolute;
10179
- bottom: 0;
10180
- left: 0;
10181
- right: 0;
10182
- height: 1px;
10183
- background-color: var(--color-border-default);
10182
+ .muka-combobox__clear {
10183
+ cursor: pointer;
10184
+ padding: var(--spacing-1);
10185
+ border-radius: var(--radius-sm);
10184
10186
  }
10185
10187
 
10186
- /* Button and anchor specific styles */
10187
- button.muka-listitem,
10188
- a.muka-listitem {
10189
- text-align: left;
10190
- width: 100%;
10188
+ .muka-combobox__clear:hover {
10189
+ color: var(--color-text-default-default);
10190
+ background-color: var(--color-surface-level1);
10191
10191
  }
10192
10192
 
10193
- /* List item specific styles */
10194
- li.muka-listitem {
10195
- list-style: none;
10193
+ /* ─── Picker sheet body ───────────────────────────────── */
10194
+
10195
+ .muka-combobox__picker {
10196
+ display: flex;
10197
+ flex-direction: column;
10198
+ gap: var(--spacing-3);
10199
+ padding: 0 var(--spacing-4) var(--spacing-4);
10200
+ min-height: 0;
10201
+ max-height: 80vh;
10202
+ }
10203
+
10204
+ .muka-combobox__title {
10205
+ margin: 0;
10206
+ padding: var(--spacing-2) 0;
10207
+ color: var(--color-text-default-default);
10208
+ font-family: var(--text-heading-sm-fontFamily);
10209
+ font-weight: var(--text-heading-sm-fontWeight);
10210
+ font-size: var(--text-heading-sm-fontSize);
10211
+ line-height: var(--text-heading-sm-lineHeight);
10212
+ }
10213
+
10214
+ .muka-combobox__search {
10215
+ position: sticky;
10216
+ top: 0;
10217
+ z-index: 1;
10218
+ padding-bottom: var(--spacing-2);
10219
+ background-color: var(--color-surface-level3);
10220
+ }
10221
+
10222
+ .muka-combobox__list {
10223
+ flex: 1 1 auto;
10224
+ min-height: 0;
10225
+ overflow-y: auto;
10226
+ -webkit-overflow-scrolling: touch;
10196
10227
  }
10197
10228
 
10198
10229
 
@@ -10445,6 +10476,33 @@ li.muka-listitem {
10445
10476
  }
10446
10477
 
10447
10478
 
10479
+ /* Divider */
10480
+ /* Divider Component Styles - Using Muka Design Tokens */
10481
+
10482
+ .muka-divider {
10483
+ flex-shrink: 0;
10484
+ }
10485
+
10486
+ .muka-divider--horizontal {
10487
+ width: 100%;
10488
+ height: var(--separator-width);
10489
+ }
10490
+
10491
+ .muka-divider--vertical {
10492
+ height: 100%;
10493
+ width: var(--separator-width);
10494
+ align-self: stretch;
10495
+ }
10496
+
10497
+ .muka-divider--default {
10498
+ background-color: var(--separator-color-default);
10499
+ }
10500
+
10501
+ .muka-divider--contrast {
10502
+ background-color: var(--separator-color-contrast);
10503
+ }
10504
+
10505
+
10448
10506
  /* CheckboxTile */
10449
10507
  /* CheckboxTile Component Styles - Using Muka Design Tokens */
10450
10508
 
@@ -10770,6 +10828,122 @@ li.muka-listitem {
10770
10828
  }
10771
10829
 
10772
10830
 
10831
+ /* ChatPhotoGrid */
10832
+ /* ChatPhotoGrid Component Styles */
10833
+
10834
+ .muka-chat-photo-grid {
10835
+ display: grid;
10836
+ gap: var(--chatphotogrid-gap);
10837
+ width: 100%;
10838
+ min-width: 0;
10839
+ }
10840
+
10841
+ /* ─── Tiles ────────────────────────────────────────────── */
10842
+
10843
+ .muka-chat-photo-grid__tile {
10844
+ position: relative;
10845
+ display: block;
10846
+ overflow: hidden;
10847
+ min-width: 0;
10848
+ padding: 0;
10849
+ margin: 0;
10850
+ border: none;
10851
+ border-radius: var(--chatphotogrid-radius);
10852
+ background-color: var(--chatphotogrid-color-placeholder);
10853
+ aspect-ratio: 1 / 1;
10854
+ }
10855
+
10856
+ button.muka-chat-photo-grid__tile {
10857
+ cursor: pointer;
10858
+ appearance: none;
10859
+ }
10860
+
10861
+ button.muka-chat-photo-grid__tile:focus-visible {
10862
+ outline: var(--border-width-bold) solid var(--color-border-focus);
10863
+ outline-offset: var(--spacing-1);
10864
+ }
10865
+
10866
+ .muka-chat-photo-grid__image {
10867
+ display: block;
10868
+ width: 100%;
10869
+ height: 100%;
10870
+ object-fit: cover;
10871
+ }
10872
+
10873
+ /* ─── Overflow tile ────────────────────────────────────── */
10874
+
10875
+ .muka-chat-photo-grid__overflow {
10876
+ position: absolute;
10877
+ inset: 0;
10878
+ display: flex;
10879
+ align-items: center;
10880
+ justify-content: center;
10881
+ background-color: var(--chatphotogrid-color-overflow-background);
10882
+ color: var(--chatphotogrid-color-overflow-foreground);
10883
+ font-family: var(--text-body-2xl-regular-fontFamily);
10884
+ font-weight: var(--text-body-2xl-regular-fontWeight);
10885
+ font-size: var(--text-body-2xl-regular-fontSize);
10886
+ line-height: var(--text-body-2xl-regular-lineHeight);
10887
+ }
10888
+
10889
+ /* ─── Layouts ──────────────────────────────────────────── */
10890
+
10891
+ .muka-chat-photo-grid--1 {
10892
+ grid-template-columns: 1fr;
10893
+ }
10894
+
10895
+ .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
10896
+ aspect-ratio: 4 / 3;
10897
+ }
10898
+
10899
+ .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
10900
+ aspect-ratio: 3 / 4;
10901
+ }
10902
+
10903
+ .muka-chat-photo-grid--2 {
10904
+ grid-template-columns: repeat(2, 1fr);
10905
+ }
10906
+
10907
+ .muka-chat-photo-grid--3 {
10908
+ grid-template-columns: repeat(3, 1fr);
10909
+ }
10910
+
10911
+ .muka-chat-photo-grid--4 {
10912
+ grid-template-columns: repeat(2, 1fr);
10913
+ }
10914
+
10915
+ /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
10916
+ .muka-chat-photo-grid--5 {
10917
+ grid-template-columns: repeat(6, 1fr);
10918
+ }
10919
+
10920
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
10921
+ grid-column: span 3;
10922
+ }
10923
+
10924
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
10925
+ grid-column: span 2;
10926
+ }
10927
+
10928
+ .muka-chat-photo-grid--6,
10929
+ .muka-chat-photo-grid--overflow {
10930
+ grid-template-columns: repeat(3, 1fr);
10931
+ }
10932
+
10933
+ /* ─── Print ────────────────────────────────────────────── */
10934
+
10935
+ @media print {
10936
+ .muka-chat-photo-grid {
10937
+ break-inside: avoid;
10938
+ }
10939
+
10940
+ .muka-chat-photo-grid__image {
10941
+ print-color-adjust: exact;
10942
+ -webkit-print-color-adjust: exact;
10943
+ }
10944
+ }
10945
+
10946
+
10773
10947
  /* ChatMessageList */
10774
10948
  /* ChatMessageList Component Styles */
10775
10949
 
@@ -10792,20 +10966,40 @@ li.muka-listitem {
10792
10966
  align-items: stretch;
10793
10967
  gap: var(--spacing-8);
10794
10968
  width: 100%;
10795
- max-width: 640px;
10969
+ max-width: var(--container-max-width-sm);
10796
10970
  margin: 0 auto;
10797
10971
  }
10798
10972
 
10973
+ /* ─── Print ────────────────────────────────────────────── */
10974
+
10975
+ @media print {
10976
+ .muka-chat-message-list {
10977
+ overflow: visible;
10978
+ height: auto;
10979
+ max-height: none;
10980
+ background: none;
10981
+ padding: 0;
10982
+ }
10983
+
10984
+ .muka-chat-message-list__inner {
10985
+ max-width: 100%;
10986
+ }
10987
+ }
10988
+
10799
10989
 
10800
10990
  /* ChatComposer */
10801
10991
  /* ChatComposer Component Styles */
10802
10992
 
10993
+ /*
10994
+ * The composer is a bare, fill-width row: no padding, background, border or
10995
+ * max-width of its own (Figma 5243:14141). Whatever hosts it owns the
10996
+ * container — see BottomBar's `chat` variant.
10997
+ */
10803
10998
  .muka-chat-composer {
10804
10999
  display: flex;
10805
11000
  flex-direction: column;
10806
11001
  gap: var(--spacing-3);
10807
11002
  width: 100%;
10808
- max-width: 768px;
10809
11003
  }
10810
11004
 
10811
11005
  .muka-chat-composer--disabled {
@@ -10912,6 +11106,14 @@ li.muka-listitem {
10912
11106
  transform: translateY(-50%);
10913
11107
  }
10914
11108
 
11109
+ /* ─── Print ────────────────────────────────────────────── */
11110
+
11111
+ @media print {
11112
+ .muka-chat-composer {
11113
+ display: none;
11114
+ }
11115
+ }
11116
+
10915
11117
 
10916
11118
  /* ChatBubble */
10917
11119
  /* ChatBubble Component Styles */
@@ -10919,69 +11121,222 @@ li.muka-listitem {
10919
11121
  .muka-chat-bubble {
10920
11122
  display: flex;
10921
11123
  flex-direction: column;
10922
- gap: var(--spacing-1);
10923
11124
  width: 100%;
10924
11125
  max-width: 100%;
10925
11126
  }
10926
11127
 
10927
- /* ─── User variant — right-aligned bubble ──────────────── */
11128
+ /* ─── Row: avatar rail + bubble + action bar ───────────────
11129
+ *
11130
+ * A two-row grid rather than a flex column, so the avatar bottom-aligns to the
11131
+ * bubble itself and not to the action bar underneath it (Figma 5223:8520).
11132
+ */
10928
11133
 
10929
- .muka-chat-bubble--user {
10930
- align-items: flex-end;
11134
+ .muka-chat-bubble__row {
11135
+ display: grid;
11136
+ grid-template-columns: minmax(0, 1fr);
11137
+ grid-template-areas:
11138
+ 'bubble'
11139
+ 'actions';
11140
+ column-gap: var(--chatbubble-row-gap);
11141
+ row-gap: var(--chatbubble-gap);
11142
+ width: 100%;
10931
11143
  }
10932
11144
 
10933
- .muka-chat-bubble--user .muka-chat-bubble__message {
10934
- background-color: var(--color-surface-level2);
10935
- color: var(--color-text-default-default);
10936
- border-radius: var(--radius-lg);
10937
- padding: var(--spacing-4);
10938
- max-width: min(600px, 100%);
11145
+ .muka-chat-bubble--has-avatar .muka-chat-bubble__row {
11146
+ grid-template-columns: auto minmax(0, 1fr);
11147
+ grid-template-areas:
11148
+ 'rail bubble'
11149
+ '. actions';
11150
+ }
11151
+
11152
+ .muka-chat-bubble--own.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
11153
+ grid-template-columns: minmax(0, 1fr) auto;
11154
+ grid-template-areas:
11155
+ 'bubble rail'
11156
+ 'actions .';
11157
+ }
11158
+
11159
+ .muka-chat-bubble__rail {
11160
+ grid-area: rail;
11161
+ /* Sits on the bubble's baseline, above the action bar */
11162
+ align-self: end;
11163
+ display: flex;
11164
+ justify-content: center;
11165
+ min-width: var(--chatbubble-avatar-size);
11166
+ }
11167
+
11168
+ /* ─── Bubble surface ───────────────────────────────────── */
11169
+
11170
+ .muka-chat-bubble__bubble {
11171
+ grid-area: bubble;
11172
+ max-width: var(--chatbubble-max-width);
11173
+ position: relative;
11174
+ display: flex;
11175
+ flex-direction: column;
11176
+ gap: var(--chatbubble-gap);
11177
+ width: 100%;
11178
+ padding: var(--chatbubble-padding);
11179
+ border-radius: var(--chatbubble-radius);
11180
+ border: var(--border-width-regular) solid transparent;
11181
+ word-break: break-word;
11182
+ }
11183
+
11184
+ .muka-chat-bubble--own .muka-chat-bubble__bubble,
11185
+ .muka-chat-bubble--own .muka-chat-bubble__actions {
11186
+ justify-self: end;
11187
+ }
11188
+
11189
+ .muka-chat-bubble--own .muka-chat-bubble__bubble {
11190
+ background-color: var(--chatbubble-color-own-background);
11191
+ border-color: var(--chatbubble-color-own-border);
11192
+ color: var(--chatbubble-color-own-foreground);
11193
+ /* Room for the inset timestamp in the bottom-right corner */
11194
+ padding-right: var(--spacing-6);
11195
+ }
11196
+
11197
+ .muka-chat-bubble--peer .muka-chat-bubble__bubble {
11198
+ background-color: var(--chatbubble-color-peer-background);
11199
+ border-color: var(--chatbubble-color-peer-border);
11200
+ color: var(--chatbubble-color-peer-foreground);
11201
+ box-shadow: var(--shadow-level2);
11202
+ }
11203
+
11204
+ .muka-chat-bubble--agent .muka-chat-bubble__bubble {
11205
+ background-color: var(--chatbubble-color-agent-background);
11206
+ border-color: var(--chatbubble-color-agent-border);
11207
+ color: var(--chatbubble-color-agent-foreground);
11208
+ }
11209
+
11210
+ /* ─── Header row (author · meta · time · badge) ────────── */
11211
+
11212
+ .muka-chat-bubble__header {
11213
+ display: flex;
11214
+ flex-flow: row wrap;
11215
+ align-items: center;
11216
+ gap: var(--chatbubble-row-gap);
11217
+ }
11218
+
11219
+ .muka-chat-bubble__author {
11220
+ font-family: var(--text-body-base-bold-fontFamily);
11221
+ font-weight: var(--text-body-base-bold-fontWeight);
11222
+ font-size: var(--text-body-base-bold-fontSize);
11223
+ line-height: var(--text-body-base-bold-lineHeight);
11224
+ }
11225
+
11226
+ .muka-chat-bubble__author-meta {
11227
+ /* Inherits the variant's body colour from the bubble */
11228
+ color: inherit;
11229
+ font-family: var(--text-body-base-regular-fontFamily);
11230
+ font-weight: var(--text-body-base-regular-fontWeight);
11231
+ font-size: var(--text-body-base-regular-fontSize);
11232
+ line-height: var(--text-body-base-regular-lineHeight);
11233
+ }
11234
+
11235
+ .muka-chat-bubble__badge {
11236
+ display: inline-flex;
11237
+ align-items: center;
11238
+ }
11239
+
11240
+ /*
11241
+ * Keep the first line of content clear of the absolutely positioned menu
11242
+ * button in the bubble's top-right corner.
11243
+ */
11244
+ .muka-chat-bubble--has-menu .muka-chat-bubble__header,
11245
+ .muka-chat-bubble--has-menu.muka-chat-bubble--no-header .muka-chat-bubble__message {
11246
+ padding-right: var(--spacing-6);
11247
+ }
11248
+
11249
+ /* ─── Body ─────────────────────────────────────────────── */
11250
+
11251
+ .muka-chat-bubble__body {
11252
+ display: flex;
11253
+ flex-direction: column;
11254
+ gap: var(--chatbubble-gap);
11255
+ min-width: 0;
11256
+ }
11257
+
11258
+ /* The agent balloon spaces its blocks further apart (Figma 5223:8520) */
11259
+ .muka-chat-bubble--agent .muka-chat-bubble__body {
11260
+ gap: var(--chatbubble-body-gap);
11261
+ }
11262
+
11263
+ .muka-chat-bubble__media {
11264
+ min-width: 0;
11265
+ }
11266
+
11267
+ .muka-chat-bubble__message {
11268
+ font-family: var(--text-body-base-regular-fontFamily);
11269
+ font-weight: var(--text-body-base-regular-fontWeight);
11270
+ font-size: var(--text-body-base-regular-fontSize);
11271
+ line-height: var(--text-body-base-regular-lineHeight);
11272
+ white-space: pre-wrap;
10939
11273
  word-break: break-word;
10940
11274
  }
10941
11275
 
10942
- .muka-chat-bubble--user .muka-chat-bubble__meta {
10943
- justify-content: flex-end;
11276
+ /* Empty message block should not add a gap of its own */
11277
+ .muka-chat-bubble__message:empty {
11278
+ display: none;
11279
+ }
11280
+
11281
+ /* ─── Embedded card ────────────────────────────────────── */
11282
+
11283
+ .muka-chat-bubble__embed {
11284
+ position: relative;
11285
+ display: flex;
11286
+ flex-direction: column;
11287
+ gap: var(--chatbubble-embed-gap);
11288
+ padding: var(--chatbubble-embed-padding);
11289
+ border-radius: var(--chatbubble-embed-radius);
11290
+ border: var(--border-width-regular) solid transparent;
11291
+ }
11292
+
11293
+ /*
11294
+ * The embed sits on the raised surface of its author's role, one step apart
11295
+ * from the bubble it is nested in, and reuses that role's border colour.
11296
+ */
11297
+ .muka-chat-bubble--own .muka-chat-bubble__embed {
11298
+ background-color: var(--chatbubble-embed-color-own-background);
11299
+ border-color: var(--chatbubble-embed-color-own-border);
11300
+ color: var(--chatbubble-embed-color-own-foreground);
10944
11301
  }
10945
11302
 
10946
- /* ─── Agent variant — no bubble, full width ────────────── */
10947
-
10948
- .muka-chat-bubble--agent {
10949
- align-items: flex-start;
11303
+ .muka-chat-bubble--peer .muka-chat-bubble__embed {
11304
+ background-color: var(--chatbubble-embed-color-peer-background);
11305
+ border-color: var(--chatbubble-embed-color-peer-border);
11306
+ color: var(--chatbubble-embed-color-peer-foreground);
10950
11307
  }
10951
11308
 
10952
- .muka-chat-bubble--agent .muka-chat-bubble__message {
10953
- color: var(--color-text-default-default);
10954
- padding: 0 var(--spacing-2);
10955
- width: 100%;
10956
- word-break: break-word;
11309
+ .muka-chat-bubble--agent .muka-chat-bubble__embed {
11310
+ background-color: var(--chatbubble-embed-color-agent-background);
11311
+ border-color: var(--chatbubble-embed-color-agent-border);
11312
+ color: var(--chatbubble-embed-color-agent-foreground);
10957
11313
  }
10958
11314
 
10959
- .muka-chat-bubble--agent .muka-chat-bubble__meta {
10960
- justify-content: flex-start;
11315
+ .muka-chat-bubble__embed-content {
11316
+ display: flex;
11317
+ flex-direction: column;
11318
+ gap: var(--chatbubble-embed-gap);
11319
+ min-width: 0;
10961
11320
  }
10962
11321
 
10963
- /* ─── Message typography ───────────────────────────────── */
10964
-
10965
- .muka-chat-bubble__message {
10966
- font-family: var(--text-body-base-regular-fontFamily);
10967
- font-weight: var(--text-body-base-regular-fontWeight);
10968
- font-size: var(--text-body-base-regular-fontSize);
10969
- line-height: var(--text-body-base-regular-lineHeight);
11322
+ .muka-chat-bubble__embed-copy {
11323
+ position: absolute;
11324
+ top: var(--chatbubble-embed-padding);
11325
+ right: var(--chatbubble-embed-padding);
10970
11326
  }
10971
11327
 
10972
- /* ─── Meta row (timestamp + actions) ───────────────────── */
11328
+ /* ─── Stacked full-width action buttons ────────────────── */
10973
11329
 
10974
- .muka-chat-bubble__meta {
11330
+ .muka-chat-bubble__action-stack {
10975
11331
  display: flex;
10976
- align-items: center;
10977
- gap: var(--spacing-1);
11332
+ flex-direction: column;
11333
+ gap: var(--chatbubble-action-stack-gap);
10978
11334
  }
10979
11335
 
11336
+ /* ─── Inset timestamp (user variant) ───────────────────── */
11337
+
10980
11338
  .muka-chat-bubble__timestamp {
10981
- display: inline-flex;
10982
- align-items: center;
10983
- padding: 0 var(--spacing-2);
10984
- color: var(--color-text-subtle-default);
11339
+ color: var(--chatbubble-color-timestamp);
10985
11340
  font-family: var(--text-body-sm-regular-fontFamily);
10986
11341
  font-weight: var(--text-body-sm-regular-fontWeight);
10987
11342
  font-size: var(--text-body-sm-regular-fontSize);
@@ -10989,12 +11344,79 @@ li.muka-listitem {
10989
11344
  white-space: nowrap;
10990
11345
  }
10991
11346
 
11347
+ .muka-chat-bubble__timestamp--inset {
11348
+ align-self: flex-end;
11349
+ }
11350
+
11351
+ /* ─── Menu affordance ──────────────────────────────────── */
11352
+
11353
+ .muka-chat-bubble__menu {
11354
+ position: absolute;
11355
+ top: var(--spacing-1);
11356
+ right: var(--spacing-1);
11357
+ }
11358
+
11359
+ /* ─── Meta action row (below the bubble) ───────────────── */
11360
+
10992
11361
  .muka-chat-bubble__actions {
11362
+ grid-area: actions;
11363
+ max-width: var(--chatbubble-max-width);
10993
11364
  display: flex;
10994
11365
  align-items: center;
10995
11366
  gap: 0;
10996
11367
  }
10997
11368
 
11369
+ .muka-chat-bubble--own .muka-chat-bubble__actions,
11370
+ .muka-chat-bubble--agent .muka-chat-bubble__actions {
11371
+ justify-content: flex-end;
11372
+ }
11373
+
11374
+ /*
11375
+ * The meta row uses 32px icon buttons per the design. Expand the pointer/touch
11376
+ * target to the 44px WCAG 2.1 AA minimum without changing the visual size.
11377
+ */
11378
+ .muka-chat-bubble__actions .muka-button--icon-only {
11379
+ position: relative;
11380
+ }
11381
+
11382
+ .muka-chat-bubble__actions .muka-button--icon-only::after {
11383
+ content: '';
11384
+ position: absolute;
11385
+ top: 50%;
11386
+ left: 50%;
11387
+ width: 44px;
11388
+ height: 44px;
11389
+ transform: translate(-50%, -50%);
11390
+ }
11391
+
11392
+ /* ─── Print ────────────────────────────────────────────── */
11393
+
11394
+ @media print {
11395
+ .muka-chat-bubble__bubble {
11396
+ box-shadow: none;
11397
+ break-inside: avoid;
11398
+ print-color-adjust: exact;
11399
+ -webkit-print-color-adjust: exact;
11400
+ }
11401
+
11402
+ .muka-chat-bubble__embed {
11403
+ break-inside: avoid;
11404
+ print-color-adjust: exact;
11405
+ -webkit-print-color-adjust: exact;
11406
+ }
11407
+
11408
+ .muka-chat-bubble__menu,
11409
+ .muka-chat-bubble__actions,
11410
+ .muka-chat-bubble__embed-copy,
11411
+ .muka-chat-bubble__action-stack {
11412
+ display: none;
11413
+ }
11414
+
11415
+ .muka-chat-bubble__column {
11416
+ max-width: 100%;
11417
+ }
11418
+ }
11419
+
10998
11420
 
10999
11421
  /* ChatAttachmentChip */
11000
11422
  /* ChatAttachmentChip Component Styles */
@@ -11263,88 +11685,6 @@ li.muka-listitem {
11263
11685
  }
11264
11686
 
11265
11687
 
11266
- /* Breadcrumb */
11267
- /* Breadcrumb Component Styles */
11268
-
11269
- .muka-breadcrumb__list {
11270
- display: flex;
11271
- align-items: center;
11272
- flex-wrap: wrap;
11273
- list-style: none;
11274
- margin: 0;
11275
- padding: 0;
11276
- gap: var(--spacing-1);
11277
- }
11278
-
11279
- .muka-breadcrumb__item {
11280
- display: inline-flex;
11281
- align-items: center;
11282
- gap: var(--spacing-1);
11283
- }
11284
-
11285
- .muka-breadcrumb__icon {
11286
- display: inline-flex;
11287
- align-items: center;
11288
- color: var(--color-text-subtle-default);
11289
- }
11290
-
11291
- /* Link styles */
11292
- .muka-breadcrumb__link {
11293
- color: var(--color-text-subtle-default);
11294
- text-decoration: none;
11295
- border: none;
11296
- background: none;
11297
- padding: 0;
11298
- cursor: pointer;
11299
- font: inherit;
11300
- transition: color 0.15s ease;
11301
- }
11302
-
11303
- .muka-breadcrumb__link:hover {
11304
- color: var(--color-text-action-default);
11305
- text-decoration: underline;
11306
- }
11307
-
11308
- /* Current page (last item) */
11309
- .muka-breadcrumb__current {
11310
- color: var(--color-text-default-default);
11311
- font-weight: 600;
11312
- }
11313
-
11314
- /* Separator */
11315
- .muka-breadcrumb__separator {
11316
- color: var(--color-text-subtle-default);
11317
- user-select: none;
11318
- }
11319
-
11320
- /* Ellipsis */
11321
- .muka-breadcrumb__ellipsis {
11322
- color: var(--color-text-subtle-default);
11323
- }
11324
-
11325
- /* Size variants */
11326
- .muka-breadcrumb--sm {
11327
- font-family: var(--text-label-sm-regular-fontFamily);
11328
- font-weight: var(--text-label-sm-regular-fontWeight);
11329
- font-size: var(--text-label-sm-regular-fontSize);
11330
- line-height: var(--text-label-sm-regular-lineHeight);
11331
- }
11332
-
11333
- .muka-breadcrumb--md {
11334
- font-family: var(--text-label-md-regular-fontFamily);
11335
- font-weight: var(--text-label-md-regular-fontWeight);
11336
- font-size: var(--text-label-md-regular-fontSize);
11337
- line-height: var(--text-label-md-regular-lineHeight);
11338
- }
11339
-
11340
- .muka-breadcrumb--lg {
11341
- font-family: var(--text-label-lg-regular-fontFamily);
11342
- font-weight: var(--text-label-lg-regular-fontWeight);
11343
- font-size: var(--text-label-lg-regular-fontSize);
11344
- line-height: var(--text-label-lg-regular-lineHeight);
11345
- }
11346
-
11347
-
11348
11688
  /* Button */
11349
11689
  /* Button Component Styles - Using Muka Design Tokens */
11350
11690
 
@@ -11444,10 +11784,13 @@ li.muka-listitem {
11444
11784
  }
11445
11785
 
11446
11786
  /* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
11447
- trigger (Radix Menu/Popover set this on the trigger). */
11787
+ trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
11788
+ gives toggle buttons a visible selected state, so the toggle is not conveyed
11789
+ to sighted users by the accessibility tree alone. */
11448
11790
  .muka-button--primary:active:not(:disabled),
11449
11791
  .muka-button--primary.muka-button--pressed:not(:disabled),
11450
- .muka-button--primary[data-state="open"]:not(:disabled) {
11792
+ .muka-button--primary[data-state="open"]:not(:disabled),
11793
+ .muka-button--primary[aria-pressed="true"]:not(:disabled) {
11451
11794
  background-color: var(--button-color-primary-background-pressed);
11452
11795
  color: var(--button-color-primary-foreground-pressed);
11453
11796
  box-shadow: var(--button-color-primary-shadow-pressed);
@@ -11476,7 +11819,8 @@ li.muka-listitem {
11476
11819
 
11477
11820
  .muka-button--secondary:active:not(:disabled),
11478
11821
  .muka-button--secondary.muka-button--pressed:not(:disabled),
11479
- .muka-button--secondary[data-state="open"]:not(:disabled) {
11822
+ .muka-button--secondary[data-state="open"]:not(:disabled),
11823
+ .muka-button--secondary[aria-pressed="true"]:not(:disabled) {
11480
11824
  background-color: var(--button-color-secondary-background-pressed);
11481
11825
  color: var(--button-color-secondary-foreground-pressed);
11482
11826
  box-shadow: var(--button-color-secondary-shadow-pressed);
@@ -11505,7 +11849,8 @@ li.muka-listitem {
11505
11849
 
11506
11850
  .muka-button--tertiary:active:not(:disabled),
11507
11851
  .muka-button--tertiary.muka-button--pressed:not(:disabled),
11508
- .muka-button--tertiary[data-state="open"]:not(:disabled) {
11852
+ .muka-button--tertiary[data-state="open"]:not(:disabled),
11853
+ .muka-button--tertiary[aria-pressed="true"]:not(:disabled) {
11509
11854
  background-color: var(--button-color-tertiary-background-pressed);
11510
11855
  color: var(--button-color-tertiary-foreground-pressed);
11511
11856
  border-color: var(--button-color-tertiary-border-pressed);
@@ -11534,7 +11879,8 @@ li.muka-listitem {
11534
11879
 
11535
11880
  .muka-button--ghost:active:not(:disabled),
11536
11881
  .muka-button--ghost.muka-button--pressed:not(:disabled),
11537
- .muka-button--ghost[data-state="open"]:not(:disabled) {
11882
+ .muka-button--ghost[data-state="open"]:not(:disabled),
11883
+ .muka-button--ghost[aria-pressed="true"]:not(:disabled) {
11538
11884
  background-color: var(--button-color-ghost-background-pressed);
11539
11885
  color: var(--button-color-ghost-foreground-pressed);
11540
11886
  border-color: var(--button-color-ghost-border-pressed);
@@ -11563,7 +11909,8 @@ li.muka-listitem {
11563
11909
 
11564
11910
  .muka-button--muted:active:not(:disabled),
11565
11911
  .muka-button--muted.muka-button--pressed:not(:disabled),
11566
- .muka-button--muted[data-state="open"]:not(:disabled) {
11912
+ .muka-button--muted[data-state="open"]:not(:disabled),
11913
+ .muka-button--muted[aria-pressed="true"]:not(:disabled) {
11567
11914
  background-color: var(--button-color-muted-background-pressed);
11568
11915
  color: var(--button-color-muted-foreground-pressed);
11569
11916
  border-color: var(--button-color-muted-border-pressed);
@@ -11653,6 +12000,88 @@ li.muka-listitem {
11653
12000
  }
11654
12001
 
11655
12002
 
12003
+ /* Breadcrumb */
12004
+ /* Breadcrumb Component Styles */
12005
+
12006
+ .muka-breadcrumb__list {
12007
+ display: flex;
12008
+ align-items: center;
12009
+ flex-wrap: wrap;
12010
+ list-style: none;
12011
+ margin: 0;
12012
+ padding: 0;
12013
+ gap: var(--spacing-1);
12014
+ }
12015
+
12016
+ .muka-breadcrumb__item {
12017
+ display: inline-flex;
12018
+ align-items: center;
12019
+ gap: var(--spacing-1);
12020
+ }
12021
+
12022
+ .muka-breadcrumb__icon {
12023
+ display: inline-flex;
12024
+ align-items: center;
12025
+ color: var(--color-text-subtle-default);
12026
+ }
12027
+
12028
+ /* Link styles */
12029
+ .muka-breadcrumb__link {
12030
+ color: var(--color-text-subtle-default);
12031
+ text-decoration: none;
12032
+ border: none;
12033
+ background: none;
12034
+ padding: 0;
12035
+ cursor: pointer;
12036
+ font: inherit;
12037
+ transition: color 0.15s ease;
12038
+ }
12039
+
12040
+ .muka-breadcrumb__link:hover {
12041
+ color: var(--color-text-action-default);
12042
+ text-decoration: underline;
12043
+ }
12044
+
12045
+ /* Current page (last item) */
12046
+ .muka-breadcrumb__current {
12047
+ color: var(--color-text-default-default);
12048
+ font-weight: 600;
12049
+ }
12050
+
12051
+ /* Separator */
12052
+ .muka-breadcrumb__separator {
12053
+ color: var(--color-text-subtle-default);
12054
+ user-select: none;
12055
+ }
12056
+
12057
+ /* Ellipsis */
12058
+ .muka-breadcrumb__ellipsis {
12059
+ color: var(--color-text-subtle-default);
12060
+ }
12061
+
12062
+ /* Size variants */
12063
+ .muka-breadcrumb--sm {
12064
+ font-family: var(--text-label-sm-regular-fontFamily);
12065
+ font-weight: var(--text-label-sm-regular-fontWeight);
12066
+ font-size: var(--text-label-sm-regular-fontSize);
12067
+ line-height: var(--text-label-sm-regular-lineHeight);
12068
+ }
12069
+
12070
+ .muka-breadcrumb--md {
12071
+ font-family: var(--text-label-md-regular-fontFamily);
12072
+ font-weight: var(--text-label-md-regular-fontWeight);
12073
+ font-size: var(--text-label-md-regular-fontSize);
12074
+ line-height: var(--text-label-md-regular-lineHeight);
12075
+ }
12076
+
12077
+ .muka-breadcrumb--lg {
12078
+ font-family: var(--text-label-lg-regular-fontFamily);
12079
+ font-weight: var(--text-label-lg-regular-fontWeight);
12080
+ font-size: var(--text-label-lg-regular-fontSize);
12081
+ line-height: var(--text-label-lg-regular-lineHeight);
12082
+ }
12083
+
12084
+
11656
12085
  /* BottomBar */
11657
12086
  /* BottomBar Component Styles */
11658
12087
 
@@ -11737,11 +12166,6 @@ li.muka-listitem {
11737
12166
  max-width: var(--bottombar-chat-max-width);
11738
12167
  }
11739
12168
 
11740
- /* Let the composer fill the wider bar instead of its standalone 768px cap. */
11741
- .muka-bottombar--chat .muka-chat-composer {
11742
- max-width: none;
11743
- }
11744
-
11745
12169
  /* ─── Tab item ────────────────────────────────────────── */
11746
12170
 
11747
12171
  .muka-bottombar__tab {
@@ -11953,6 +12377,14 @@ li.muka-listitem {
11953
12377
  }
11954
12378
  }
11955
12379
 
12380
+ /* ─── Print ────────────────────────────────────────────── */
12381
+
12382
+ @media print {
12383
+ .muka-bottombar {
12384
+ display: none;
12385
+ }
12386
+ }
12387
+
11956
12388
 
11957
12389
  /* Badge */
11958
12390
  /* Badge Component Styles - Using Muka Design Tokens */
@@ -12728,12 +13160,19 @@ li.muka-listitem {
12728
13160
  margin: 0;
12729
13161
  cursor: pointer;
12730
13162
  color: var(--color-text-subtle-default);
13163
+ font-family: var(--text-body-sm-regular-fontFamily);
13164
+ font-weight: var(--text-body-sm-regular-fontWeight);
13165
+ font-size: var(--text-body-sm-regular-fontSize);
13166
+ line-height: var(--text-body-sm-regular-lineHeight);
13167
+ text-align: left;
13168
+ -webkit-tap-highlight-color: transparent;
13169
+ }
13170
+
13171
+ .muka-agent-task-list--open .muka-agent-task-list__header {
12731
13172
  font-family: var(--text-body-sm-bold-fontFamily);
12732
13173
  font-weight: var(--text-body-sm-bold-fontWeight);
12733
13174
  font-size: var(--text-body-sm-bold-fontSize);
12734
13175
  line-height: var(--text-body-sm-bold-lineHeight);
12735
- text-align: left;
12736
- -webkit-tap-highlight-color: transparent;
12737
13176
  }
12738
13177
 
12739
13178
  .muka-agent-task-list__header:focus-visible {
@@ -12791,7 +13230,7 @@ li.muka-listitem {
12791
13230
  position: absolute;
12792
13231
  left: 7px;
12793
13232
  width: 1px;
12794
- background-color: var(--color-border-default, #d9d9d9);
13233
+ background-color: var(--color-border-default);
12795
13234
  }
12796
13235
 
12797
13236
  .muka-agent-task-list__line--top {
@@ -12854,6 +13293,18 @@ li.muka-listitem {
12854
13293
  word-break: break-word;
12855
13294
  }
12856
13295
 
13296
+ /* ─── Print ────────────────────────────────────────────── */
13297
+
13298
+ @media print {
13299
+ .muka-agent-task-list {
13300
+ break-inside: avoid;
13301
+ }
13302
+
13303
+ .muka-agent-task-list__chevron {
13304
+ display: none;
13305
+ }
13306
+ }
13307
+
12857
13308
 
12858
13309
  /* ActionSheet */
12859
13310
  /* ActionSheet Component Styles */