@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
@@ -1181,6 +1181,19 @@ body {
1181
1181
  --color-state-warning-default: #ffc53d;
1182
1182
  --color-state-warning-contrast: #ab6400;
1183
1183
  --color-state-warning-background: #fff7c2;
1184
+ --color-conversation-own-background: #e9f6ec;
1185
+ --color-conversation-own-background-raised: #f2fcf4;
1186
+ --color-conversation-own-border: #ccebd1;
1187
+ --color-conversation-own-foreground: #202020;
1188
+ --color-conversation-peer-background: #fcfcfc;
1189
+ --color-conversation-peer-background-raised: #f0f0f0;
1190
+ --color-conversation-peer-border: #d9d9d9;
1191
+ --color-conversation-peer-foreground: #202020;
1192
+ --color-conversation-agent-background: #fff7c2;
1193
+ --color-conversation-agent-background-raised: #fefbe9;
1194
+ --color-conversation-agent-border: #fbe577;
1195
+ --color-conversation-agent-foreground: #202020;
1196
+ --color-conversation-meta: #202020;
1184
1197
  --color-border-contrast: #bbbbbb;
1185
1198
  --color-border-default: #e0e0e0;
1186
1199
  --color-border-muted: #e8e8e8;
@@ -1280,6 +1293,16 @@ body {
1280
1293
  --alias-color-state-neutral-surface-level1: #f0f0f0;
1281
1294
  --alias-color-state-neutral-surface-level2: #e8e8e8;
1282
1295
  --alias-color-state-neutral-surface-level3: #e0e0e0;
1296
+ --alias-color-conversation-own-surface-default: #e9f6ec;
1297
+ --alias-color-conversation-own-surface-raised: #f2fcf4;
1298
+ --alias-color-conversation-own-border: #ccebd1;
1299
+ --alias-color-conversation-peer-surface-default: #fcfcfc;
1300
+ --alias-color-conversation-peer-surface-raised: #f0f0f0;
1301
+ --alias-color-conversation-peer-border: #d9d9d9;
1302
+ --alias-color-conversation-agent-surface-default: #fff7c2;
1303
+ --alias-color-conversation-agent-surface-raised: #fefbe9;
1304
+ --alias-color-conversation-agent-border: #fbe577;
1305
+ --alias-color-conversation-meta: #202020;
1283
1306
  --alias-font-plain-family: Helvetica;
1284
1307
  --alias-font-plain-weight-regular: 400;
1285
1308
  --alias-font-plain-weight-medium: 500;
@@ -1626,6 +1649,41 @@ body {
1626
1649
  --card-border-hover: 0.0625rem solid #bbbbbb;
1627
1650
  --card-border-pressed: 0.125rem solid #113264;
1628
1651
  --card-border-selected: 0.125rem solid #113264;
1652
+ --chatbubble-max-width: 640px;
1653
+ --chatbubble-radius: 0px;
1654
+ --chatbubble-padding: 1rem;
1655
+ --chatbubble-gap: 0.25rem;
1656
+ --chatbubble-body-gap: 1.5rem;
1657
+ --chatbubble-row-gap: 0.75rem;
1658
+ --chatbubble-avatar-size: 3rem;
1659
+ --chatbubble-color-own-background: #e9f6ec;
1660
+ --chatbubble-color-own-border: #ccebd1;
1661
+ --chatbubble-color-own-foreground: #202020;
1662
+ --chatbubble-color-peer-background: #fcfcfc;
1663
+ --chatbubble-color-peer-border: #d9d9d9;
1664
+ --chatbubble-color-peer-foreground: #202020;
1665
+ --chatbubble-color-agent-background: #fff7c2;
1666
+ --chatbubble-color-agent-border: #fbe577;
1667
+ --chatbubble-color-agent-foreground: #202020;
1668
+ --chatbubble-color-timestamp: #202020;
1669
+ --chatbubble-embed-padding: 0.75rem;
1670
+ --chatbubble-embed-gap: 0.5rem;
1671
+ --chatbubble-embed-radius: 0px;
1672
+ --chatbubble-embed-color-own-background: #f2fcf4;
1673
+ --chatbubble-embed-color-own-border: #ccebd1;
1674
+ --chatbubble-embed-color-own-foreground: #202020;
1675
+ --chatbubble-embed-color-peer-background: #f0f0f0;
1676
+ --chatbubble-embed-color-peer-border: #d9d9d9;
1677
+ --chatbubble-embed-color-peer-foreground: #202020;
1678
+ --chatbubble-embed-color-agent-background: #fefbe9;
1679
+ --chatbubble-embed-color-agent-border: #fbe577;
1680
+ --chatbubble-embed-color-agent-foreground: #202020;
1681
+ --chatbubble-action-stack-gap: 0.75rem;
1682
+ --chatphotogrid-gap: 0.5rem;
1683
+ --chatphotogrid-radius: 0px;
1684
+ --chatphotogrid-color-placeholder: #e8e8e8;
1685
+ --chatphotogrid-color-overflow-background: rgba(0, 0, 0, 0.565);
1686
+ --chatphotogrid-color-overflow-foreground: #fcfcfc;
1629
1687
  --input-field-color-default-background: #fcfcfc;
1630
1688
  --input-field-color-default-foreground: #202020;
1631
1689
  --input-field-color-default-border: #bbbbbb;
@@ -7056,6 +7114,34 @@ body {
7056
7114
  }
7057
7115
 
7058
7116
 
7117
+ /* NavigationTransition */
7118
+ /* NavigationTransition Component Styles */
7119
+
7120
+ /* ─── Wrapper ────────────────────────────────────────── */
7121
+
7122
+ .muka-nav-transition {
7123
+ position: relative;
7124
+ height: 100vh;
7125
+ overflow: hidden;
7126
+ }
7127
+
7128
+ /* Disable interaction during animation */
7129
+ .muka-nav-transition--active {
7130
+ pointer-events: none;
7131
+ }
7132
+
7133
+ /* ─── View slots ─────────────────────────────────────── */
7134
+
7135
+ .muka-nav-transition--active .muka-nav-transition__view {
7136
+ position: absolute;
7137
+ inset: 0;
7138
+ }
7139
+
7140
+ /* Z-index layering */
7141
+ .muka-nav-transition__view--bottom { z-index: 1; }
7142
+ .muka-nav-transition__view--top { z-index: 2; }
7143
+
7144
+
7059
7145
  /* NumberInput */
7060
7146
  /* NumberInput — reuses Input field styles (../Input/Input.css). */
7061
7147
  /* Only the prefix/suffix affixes are NumberInput-specific. */
@@ -7086,34 +7172,6 @@ body {
7086
7172
  }
7087
7173
 
7088
7174
 
7089
- /* NavigationTransition */
7090
- /* NavigationTransition Component Styles */
7091
-
7092
- /* ─── Wrapper ────────────────────────────────────────── */
7093
-
7094
- .muka-nav-transition {
7095
- position: relative;
7096
- height: 100vh;
7097
- overflow: hidden;
7098
- }
7099
-
7100
- /* Disable interaction during animation */
7101
- .muka-nav-transition--active {
7102
- pointer-events: none;
7103
- }
7104
-
7105
- /* ─── View slots ─────────────────────────────────────── */
7106
-
7107
- .muka-nav-transition--active .muka-nav-transition__view {
7108
- position: absolute;
7109
- inset: 0;
7110
- }
7111
-
7112
- /* Z-index layering */
7113
- .muka-nav-transition__view--bottom { z-index: 1; }
7114
- .muka-nav-transition__view--top { z-index: 2; }
7115
-
7116
-
7117
7175
  /* Menu */
7118
7176
  /* Menu Component Styles */
7119
7177
 
@@ -7397,6 +7455,200 @@ body {
7397
7455
  }
7398
7456
 
7399
7457
 
7458
+ /* ListItem */
7459
+ /* ListItem Component Styles - Using Muka Design Tokens */
7460
+
7461
+ /* Base list item styles */
7462
+ .muka-listitem {
7463
+ /* Layout */
7464
+ display: flex;
7465
+ align-items: flex-start;
7466
+ gap: var(--spacing-4);
7467
+ padding: var(--spacing-5) var(--spacing-4);
7468
+
7469
+ /* Background - using semantic tokens */
7470
+ background-color: var(--color-surface-level3);
7471
+
7472
+ /* Typography */
7473
+ font-family: var(--alias-font-brand-family);
7474
+
7475
+ /* Border and spacing */
7476
+ border: none;
7477
+ position: relative;
7478
+
7479
+ /* Interaction - only apply if interactive */
7480
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
7481
+ }
7482
+
7483
+ /* Interactive state */
7484
+ .muka-listitem--interactive {
7485
+ cursor: pointer;
7486
+ }
7487
+
7488
+ /*
7489
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
7490
+ * are layered on top of the item's base surface via an inset box-shadow overlay
7491
+ * rather than replacing background-color. This preserves the base level (level3,
7492
+ * or level2 when selected) and lets the tint read correctly on any surface.
7493
+ */
7494
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
7495
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7496
+ }
7497
+
7498
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
7499
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
7500
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
7501
+ }
7502
+
7503
+ /* Focus styles for accessibility */
7504
+ .muka-listitem:focus-visible {
7505
+ outline: 2px solid var(--color-border-focus);
7506
+ outline-offset: -2px;
7507
+ }
7508
+
7509
+ /* Disabled state */
7510
+ .muka-listitem--disabled {
7511
+ opacity: 0.5;
7512
+ cursor: not-allowed;
7513
+ pointer-events: none;
7514
+ }
7515
+
7516
+ .muka-listitem--disabled:hover {
7517
+ background-color: var(--color-surface-level3);
7518
+ }
7519
+
7520
+ /* Selected state */
7521
+ .muka-listitem--selected {
7522
+ background-color: var(--color-surface-level2);
7523
+ }
7524
+
7525
+ .muka-listitem--selected:hover {
7526
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7527
+ }
7528
+
7529
+ /* No divider modifier */
7530
+ .muka-listitem--no-divider .muka-listitem__divider {
7531
+ display: none;
7532
+ }
7533
+
7534
+ /* Center content vertically when no caption */
7535
+ .muka-listitem--no-caption {
7536
+ align-items: center;
7537
+ }
7538
+
7539
+ /* Leading content (icon or image) */
7540
+ .muka-listitem__leading {
7541
+ display: flex;
7542
+ align-items: center;
7543
+ justify-content: center;
7544
+ flex-shrink: 0;
7545
+ width: 48px;
7546
+ height: 48px;
7547
+ }
7548
+
7549
+ .muka-listitem__icon {
7550
+ display: inline-flex;
7551
+ align-items: center;
7552
+ justify-content: center;
7553
+ width: 32px;
7554
+ height: 32px;
7555
+ color: var(--color-text-default-default);
7556
+ }
7557
+
7558
+ .muka-listitem__image {
7559
+ width: 48px;
7560
+ height: 48px;
7561
+ border-radius: var(--radius-md);
7562
+ object-fit: cover;
7563
+ }
7564
+
7565
+ /* Main content area */
7566
+ .muka-listitem__content {
7567
+ flex: 1;
7568
+ display: flex;
7569
+ align-items: center;
7570
+ gap: var(--spacing-4);
7571
+ min-width: 0;
7572
+ }
7573
+
7574
+ .muka-listitem__text {
7575
+ flex: 1;
7576
+ display: flex;
7577
+ flex-direction: column;
7578
+ gap: var(--spacing-1);
7579
+ min-width: 0;
7580
+ }
7581
+
7582
+ /* Label text */
7583
+ .muka-listitem__label {
7584
+ margin: 0;
7585
+ padding: 0;
7586
+
7587
+ /* Typography - using semantic tokens */
7588
+ font-family: var(--alias-font-plain-family);
7589
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
7590
+ font-size: var(--text-label-md-fontSize);
7591
+ line-height: var(--text-label-md-lineHeight);
7592
+ color: var(--color-text-default-default);
7593
+
7594
+ /* Text handling */
7595
+ overflow: hidden;
7596
+ text-overflow: ellipsis;
7597
+ white-space: nowrap;
7598
+ }
7599
+
7600
+ /* Caption text */
7601
+ .muka-listitem__caption {
7602
+ margin: 0;
7603
+ padding: 0;
7604
+
7605
+ /* Typography - using semantic tokens */
7606
+ font-family: var(--alias-font-plain-family);
7607
+ font-weight: var(--alias-font-plain-weight-regular, 400);
7608
+ font-size: var(--text-body-sm-fontSize);
7609
+ line-height: var(--text-body-sm-lineHeight);
7610
+ color: var(--color-text-subtle-default);
7611
+
7612
+ /* Text handling */
7613
+ overflow: hidden;
7614
+ text-overflow: ellipsis;
7615
+ white-space: nowrap;
7616
+ }
7617
+
7618
+ /* Trailing chevron */
7619
+ .muka-listitem__chevron {
7620
+ display: inline-flex;
7621
+ align-items: center;
7622
+ justify-content: center;
7623
+ flex-shrink: 0;
7624
+ width: 24px;
7625
+ height: 24px;
7626
+ color: var(--color-text-subtle-default);
7627
+ }
7628
+
7629
+ /* Bottom divider */
7630
+ .muka-listitem__divider {
7631
+ position: absolute;
7632
+ bottom: 0;
7633
+ left: 0;
7634
+ right: 0;
7635
+ height: 1px;
7636
+ background-color: var(--color-border-default);
7637
+ }
7638
+
7639
+ /* Button and anchor specific styles */
7640
+ button.muka-listitem,
7641
+ a.muka-listitem {
7642
+ text-align: left;
7643
+ width: 100%;
7644
+ }
7645
+
7646
+ /* List item specific styles */
7647
+ li.muka-listitem {
7648
+ list-style: none;
7649
+ }
7650
+
7651
+
7400
7652
  /* LicensePlateInput */
7401
7653
  /* LicensePlateInput — Dutch RDW-style plate input
7402
7654
  *
@@ -8465,164 +8717,8 @@ body {
8465
8717
  }
8466
8718
 
8467
8719
 
8468
- /* Drawer */
8469
- /* Drawer Component Styles */
8470
-
8471
- /* Size tokens (local to Drawer) */
8472
- .muka-drawer {
8473
- --drawer-width-sm: 18rem;
8474
- --drawer-width-md: 26rem;
8475
- --drawer-width-lg: 36rem;
8476
- }
8477
-
8478
- /* Reset native dialog */
8479
- .muka-drawer {
8480
- border: none;
8481
- padding: 0;
8482
- max-width: none;
8483
- max-height: none;
8484
- background: transparent;
8485
- overflow: visible;
8486
- }
8487
-
8488
- /* Backdrop */
8489
- .muka-drawer::backdrop {
8490
- background-color: var(--color-surface-backdrop);
8491
- opacity: 0;
8492
- transition: opacity 200ms ease;
8493
- }
8494
-
8495
- .muka-drawer--slide-in::backdrop {
8496
- opacity: 1;
8497
- }
8498
-
8499
- /* Surface */
8500
- .muka-drawer__surface {
8501
- display: flex;
8502
- flex-direction: column;
8503
- background-color: var(--color-surface-level3);
8504
- box-shadow: var(--shadow-level5);
8505
- height: 100%;
8506
- overflow: hidden;
8507
- position: fixed;
8508
- transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
8509
- }
8510
-
8511
- /* Side positioning + initial transforms */
8512
- .muka-drawer--right .muka-drawer__surface {
8513
- top: 0;
8514
- right: 0;
8515
- bottom: 0;
8516
- border-radius: var(--radius-lg) 0 0 var(--radius-lg);
8517
- transform: translateX(100%);
8518
- }
8519
-
8520
- .muka-drawer--left .muka-drawer__surface {
8521
- top: 0;
8522
- left: 0;
8523
- bottom: 0;
8524
- border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
8525
- transform: translateX(-100%);
8526
- }
8527
-
8528
- .muka-drawer--bottom .muka-drawer__surface {
8529
- left: 0;
8530
- right: 0;
8531
- bottom: 0;
8532
- border-radius: var(--radius-lg) var(--radius-lg) 0 0;
8533
- transform: translateY(100%);
8534
- }
8535
-
8536
- .muka-drawer--top .muka-drawer__surface {
8537
- left: 0;
8538
- right: 0;
8539
- top: 0;
8540
- border-radius: 0 0 var(--radius-lg) var(--radius-lg);
8541
- transform: translateY(-100%);
8542
- }
8543
-
8544
- /* Slide-in state */
8545
- .muka-drawer--slide-in .muka-drawer__surface {
8546
- transform: translate(0, 0);
8547
- }
8548
-
8549
- /* Width sizes (left/right) */
8550
- .muka-drawer--right .muka-drawer__surface,
8551
- .muka-drawer--left .muka-drawer__surface {
8552
- width: var(--drawer-width-md);
8553
- }
8554
-
8555
- .muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
8556
- .muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
8557
- width: var(--drawer-width-sm);
8558
- }
8559
-
8560
- .muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
8561
- .muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
8562
- width: var(--drawer-width-lg);
8563
- }
8564
-
8565
- .muka-drawer--full.muka-drawer--right .muka-drawer__surface,
8566
- .muka-drawer--full.muka-drawer--left .muka-drawer__surface {
8567
- width: 100%;
8568
- }
8569
-
8570
- /* Height sizes (top/bottom) */
8571
- .muka-drawer--top .muka-drawer__surface,
8572
- .muka-drawer--bottom .muka-drawer__surface {
8573
- height: auto;
8574
- max-height: 80vh;
8575
- }
8576
-
8577
- .muka-drawer--full.muka-drawer--top .muka-drawer__surface,
8578
- .muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
8579
- max-height: 100vh;
8580
- }
8581
-
8582
- /* Header */
8583
- .muka-drawer__header {
8584
- display: flex;
8585
- align-items: center;
8586
- gap: var(--spacing-3);
8587
- padding: var(--spacing-4);
8588
- border-bottom: var(--border-width-regular) solid var(--color-border-default);
8589
- flex-shrink: 0;
8590
- }
8591
-
8592
- .muka-drawer__title {
8593
- flex: 1;
8594
- margin: 0;
8595
- font-family: var(--text-label-lg-semibold-fontFamily);
8596
- font-weight: var(--text-label-lg-semibold-fontWeight);
8597
- font-size: var(--text-label-lg-semibold-fontSize);
8598
- line-height: var(--text-label-lg-semibold-lineHeight);
8599
- color: var(--color-text-default-default);
8600
- }
8601
-
8602
- .muka-drawer__leading,
8603
- .muka-drawer__trailing {
8604
- display: flex;
8605
- align-items: center;
8606
- flex-shrink: 0;
8607
- }
8608
-
8609
- /* Body */
8610
- .muka-drawer__body {
8611
- flex: 1;
8612
- overflow-y: auto;
8613
- padding: var(--spacing-4);
8614
- }
8615
-
8616
- /* Footer */
8617
- .muka-drawer__footer {
8618
- padding: var(--spacing-4);
8619
- border-top: var(--border-width-regular) solid var(--color-border-default);
8620
- flex-shrink: 0;
8621
- }
8622
-
8623
-
8624
- /* DocumentViewer */
8625
- /* DocumentViewer Component Styles - Using Muka Design Tokens */
8720
+ /* DocumentViewer */
8721
+ /* DocumentViewer Component Styles - Using Muka Design Tokens */
8626
8722
 
8627
8723
  .muka-documentviewer {
8628
8724
  display: flex;
@@ -8900,30 +8996,159 @@ body {
8900
8996
  }
8901
8997
 
8902
8998
 
8903
- /* Divider */
8904
- /* Divider Component Styles - Using Muka Design Tokens */
8999
+ /* Drawer */
9000
+ /* Drawer Component Styles */
8905
9001
 
8906
- .muka-divider {
9002
+ /* Size tokens (local to Drawer) */
9003
+ .muka-drawer {
9004
+ --drawer-width-sm: 18rem;
9005
+ --drawer-width-md: 26rem;
9006
+ --drawer-width-lg: 36rem;
9007
+ }
9008
+
9009
+ /* Reset native dialog */
9010
+ .muka-drawer {
9011
+ border: none;
9012
+ padding: 0;
9013
+ max-width: none;
9014
+ max-height: none;
9015
+ background: transparent;
9016
+ overflow: visible;
9017
+ }
9018
+
9019
+ /* Backdrop */
9020
+ .muka-drawer::backdrop {
9021
+ background-color: var(--color-surface-backdrop);
9022
+ opacity: 0;
9023
+ transition: opacity 200ms ease;
9024
+ }
9025
+
9026
+ .muka-drawer--slide-in::backdrop {
9027
+ opacity: 1;
9028
+ }
9029
+
9030
+ /* Surface */
9031
+ .muka-drawer__surface {
9032
+ display: flex;
9033
+ flex-direction: column;
9034
+ background-color: var(--color-surface-level3);
9035
+ box-shadow: var(--shadow-level5);
9036
+ height: 100%;
9037
+ overflow: hidden;
9038
+ position: fixed;
9039
+ transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
9040
+ }
9041
+
9042
+ /* Side positioning + initial transforms */
9043
+ .muka-drawer--right .muka-drawer__surface {
9044
+ top: 0;
9045
+ right: 0;
9046
+ bottom: 0;
9047
+ border-radius: var(--radius-lg) 0 0 var(--radius-lg);
9048
+ transform: translateX(100%);
9049
+ }
9050
+
9051
+ .muka-drawer--left .muka-drawer__surface {
9052
+ top: 0;
9053
+ left: 0;
9054
+ bottom: 0;
9055
+ border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
9056
+ transform: translateX(-100%);
9057
+ }
9058
+
9059
+ .muka-drawer--bottom .muka-drawer__surface {
9060
+ left: 0;
9061
+ right: 0;
9062
+ bottom: 0;
9063
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
9064
+ transform: translateY(100%);
9065
+ }
9066
+
9067
+ .muka-drawer--top .muka-drawer__surface {
9068
+ left: 0;
9069
+ right: 0;
9070
+ top: 0;
9071
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
9072
+ transform: translateY(-100%);
9073
+ }
9074
+
9075
+ /* Slide-in state */
9076
+ .muka-drawer--slide-in .muka-drawer__surface {
9077
+ transform: translate(0, 0);
9078
+ }
9079
+
9080
+ /* Width sizes (left/right) */
9081
+ .muka-drawer--right .muka-drawer__surface,
9082
+ .muka-drawer--left .muka-drawer__surface {
9083
+ width: var(--drawer-width-md);
9084
+ }
9085
+
9086
+ .muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
9087
+ .muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
9088
+ width: var(--drawer-width-sm);
9089
+ }
9090
+
9091
+ .muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
9092
+ .muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
9093
+ width: var(--drawer-width-lg);
9094
+ }
9095
+
9096
+ .muka-drawer--full.muka-drawer--right .muka-drawer__surface,
9097
+ .muka-drawer--full.muka-drawer--left .muka-drawer__surface {
9098
+ width: 100%;
9099
+ }
9100
+
9101
+ /* Height sizes (top/bottom) */
9102
+ .muka-drawer--top .muka-drawer__surface,
9103
+ .muka-drawer--bottom .muka-drawer__surface {
9104
+ height: auto;
9105
+ max-height: 80vh;
9106
+ }
9107
+
9108
+ .muka-drawer--full.muka-drawer--top .muka-drawer__surface,
9109
+ .muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
9110
+ max-height: 100vh;
9111
+ }
9112
+
9113
+ /* Header */
9114
+ .muka-drawer__header {
9115
+ display: flex;
9116
+ align-items: center;
9117
+ gap: var(--spacing-3);
9118
+ padding: var(--spacing-4);
9119
+ border-bottom: var(--border-width-regular) solid var(--color-border-default);
8907
9120
  flex-shrink: 0;
8908
9121
  }
8909
9122
 
8910
- .muka-divider--horizontal {
8911
- width: 100%;
8912
- height: var(--separator-width);
9123
+ .muka-drawer__title {
9124
+ flex: 1;
9125
+ margin: 0;
9126
+ font-family: var(--text-label-lg-semibold-fontFamily);
9127
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9128
+ font-size: var(--text-label-lg-semibold-fontSize);
9129
+ line-height: var(--text-label-lg-semibold-lineHeight);
9130
+ color: var(--color-text-default-default);
8913
9131
  }
8914
9132
 
8915
- .muka-divider--vertical {
8916
- height: 100%;
8917
- width: var(--separator-width);
8918
- align-self: stretch;
9133
+ .muka-drawer__leading,
9134
+ .muka-drawer__trailing {
9135
+ display: flex;
9136
+ align-items: center;
9137
+ flex-shrink: 0;
8919
9138
  }
8920
9139
 
8921
- .muka-divider--default {
8922
- background-color: var(--separator-color-default);
9140
+ /* Body */
9141
+ .muka-drawer__body {
9142
+ flex: 1;
9143
+ overflow-y: auto;
9144
+ padding: var(--spacing-4);
8923
9145
  }
8924
9146
 
8925
- .muka-divider--contrast {
8926
- background-color: var(--separator-color-contrast);
9147
+ /* Footer */
9148
+ .muka-drawer__footer {
9149
+ padding: var(--spacing-4);
9150
+ border-top: var(--border-width-regular) solid var(--color-border-default);
9151
+ flex-shrink: 0;
8927
9152
  }
8928
9153
 
8929
9154
 
@@ -9911,255 +10136,61 @@ body {
9911
10136
  overflow: hidden;
9912
10137
  text-overflow: ellipsis;
9913
10138
  }
9914
-
9915
- .muka-combobox__clear,
9916
- .muka-combobox__chevron {
9917
- display: inline-flex;
9918
- align-items: center;
9919
- justify-content: center;
9920
- flex-shrink: 0;
9921
- color: var(--color-text-subtle-default);
9922
- }
9923
-
9924
- .muka-combobox__clear {
9925
- cursor: pointer;
9926
- padding: var(--spacing-1);
9927
- border-radius: var(--radius-sm);
9928
- }
9929
-
9930
- .muka-combobox__clear:hover {
9931
- color: var(--color-text-default-default);
9932
- background-color: var(--color-surface-level1);
9933
- }
9934
-
9935
- /* ─── Picker sheet body ───────────────────────────────── */
9936
-
9937
- .muka-combobox__picker {
9938
- display: flex;
9939
- flex-direction: column;
9940
- gap: var(--spacing-3);
9941
- padding: 0 var(--spacing-4) var(--spacing-4);
9942
- min-height: 0;
9943
- max-height: 80vh;
9944
- }
9945
-
9946
- .muka-combobox__title {
9947
- margin: 0;
9948
- padding: var(--spacing-2) 0;
9949
- color: var(--color-text-default-default);
9950
- font-family: var(--text-heading-sm-fontFamily);
9951
- font-weight: var(--text-heading-sm-fontWeight);
9952
- font-size: var(--text-heading-sm-fontSize);
9953
- line-height: var(--text-heading-sm-lineHeight);
9954
- }
9955
-
9956
- .muka-combobox__search {
9957
- position: sticky;
9958
- top: 0;
9959
- z-index: 1;
9960
- padding-bottom: var(--spacing-2);
9961
- background-color: var(--color-surface-level3);
9962
- }
9963
-
9964
- .muka-combobox__list {
9965
- flex: 1 1 auto;
9966
- min-height: 0;
9967
- overflow-y: auto;
9968
- -webkit-overflow-scrolling: touch;
9969
- }
9970
-
9971
-
9972
- /* ListItem */
9973
- /* ListItem Component Styles - Using Muka Design Tokens */
9974
-
9975
- /* Base list item styles */
9976
- .muka-listitem {
9977
- /* Layout */
9978
- display: flex;
9979
- align-items: flex-start;
9980
- gap: var(--spacing-4);
9981
- padding: var(--spacing-5) var(--spacing-4);
9982
-
9983
- /* Background - using semantic tokens */
9984
- background-color: var(--color-surface-level3);
9985
-
9986
- /* Typography */
9987
- font-family: var(--alias-font-brand-family);
9988
-
9989
- /* Border and spacing */
9990
- border: none;
9991
- position: relative;
9992
-
9993
- /* Interaction - only apply if interactive */
9994
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
9995
- }
9996
-
9997
- /* Interactive state */
9998
- .muka-listitem--interactive {
9999
- cursor: pointer;
10000
- }
10001
-
10002
- /*
10003
- * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
10004
- * are layered on top of the item's base surface via an inset box-shadow overlay
10005
- * rather than replacing background-color. This preserves the base level (level3,
10006
- * or level2 when selected) and lets the tint read correctly on any surface.
10007
- */
10008
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
10009
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10010
- }
10011
-
10012
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
10013
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
10014
- box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
10015
- }
10016
-
10017
- /* Focus styles for accessibility */
10018
- .muka-listitem:focus-visible {
10019
- outline: 2px solid var(--color-border-focus);
10020
- outline-offset: -2px;
10021
- }
10022
-
10023
- /* Disabled state */
10024
- .muka-listitem--disabled {
10025
- opacity: 0.5;
10026
- cursor: not-allowed;
10027
- pointer-events: none;
10028
- }
10029
-
10030
- .muka-listitem--disabled:hover {
10031
- background-color: var(--color-surface-level3);
10032
- }
10033
-
10034
- /* Selected state */
10035
- .muka-listitem--selected {
10036
- background-color: var(--color-surface-level2);
10037
- }
10038
-
10039
- .muka-listitem--selected:hover {
10040
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10041
- }
10042
-
10043
- /* No divider modifier */
10044
- .muka-listitem--no-divider .muka-listitem__divider {
10045
- display: none;
10046
- }
10047
-
10048
- /* Center content vertically when no caption */
10049
- .muka-listitem--no-caption {
10050
- align-items: center;
10051
- }
10052
-
10053
- /* Leading content (icon or image) */
10054
- .muka-listitem__leading {
10055
- display: flex;
10056
- align-items: center;
10057
- justify-content: center;
10058
- flex-shrink: 0;
10059
- width: 48px;
10060
- height: 48px;
10061
- }
10062
-
10063
- .muka-listitem__icon {
10064
- display: inline-flex;
10065
- align-items: center;
10066
- justify-content: center;
10067
- width: 32px;
10068
- height: 32px;
10069
- color: var(--color-text-default-default);
10070
- }
10071
-
10072
- .muka-listitem__image {
10073
- width: 48px;
10074
- height: 48px;
10075
- border-radius: var(--radius-md);
10076
- object-fit: cover;
10077
- }
10078
-
10079
- /* Main content area */
10080
- .muka-listitem__content {
10081
- flex: 1;
10082
- display: flex;
10083
- align-items: center;
10084
- gap: var(--spacing-4);
10085
- min-width: 0;
10086
- }
10087
-
10088
- .muka-listitem__text {
10089
- flex: 1;
10090
- display: flex;
10091
- flex-direction: column;
10092
- gap: var(--spacing-1);
10093
- min-width: 0;
10094
- }
10095
-
10096
- /* Label text */
10097
- .muka-listitem__label {
10098
- margin: 0;
10099
- padding: 0;
10100
-
10101
- /* Typography - using semantic tokens */
10102
- font-family: var(--alias-font-plain-family);
10103
- font-weight: var(--alias-font-plain-weight-semibold, 600);
10104
- font-size: var(--text-label-md-fontSize);
10105
- line-height: var(--text-label-md-lineHeight);
10106
- color: var(--color-text-default-default);
10107
-
10108
- /* Text handling */
10109
- overflow: hidden;
10110
- text-overflow: ellipsis;
10111
- white-space: nowrap;
10112
- }
10113
-
10114
- /* Caption text */
10115
- .muka-listitem__caption {
10116
- margin: 0;
10117
- padding: 0;
10118
-
10119
- /* Typography - using semantic tokens */
10120
- font-family: var(--alias-font-plain-family);
10121
- font-weight: var(--alias-font-plain-weight-regular, 400);
10122
- font-size: var(--text-body-sm-fontSize);
10123
- line-height: var(--text-body-sm-lineHeight);
10124
- color: var(--color-text-subtle-default);
10125
-
10126
- /* Text handling */
10127
- overflow: hidden;
10128
- text-overflow: ellipsis;
10129
- white-space: nowrap;
10130
- }
10131
-
10132
- /* Trailing chevron */
10133
- .muka-listitem__chevron {
10139
+
10140
+ .muka-combobox__clear,
10141
+ .muka-combobox__chevron {
10134
10142
  display: inline-flex;
10135
10143
  align-items: center;
10136
10144
  justify-content: center;
10137
10145
  flex-shrink: 0;
10138
- width: 24px;
10139
- height: 24px;
10140
10146
  color: var(--color-text-subtle-default);
10141
10147
  }
10142
10148
 
10143
- /* Bottom divider */
10144
- .muka-listitem__divider {
10145
- position: absolute;
10146
- bottom: 0;
10147
- left: 0;
10148
- right: 0;
10149
- height: 1px;
10150
- background-color: var(--color-border-default);
10149
+ .muka-combobox__clear {
10150
+ cursor: pointer;
10151
+ padding: var(--spacing-1);
10152
+ border-radius: var(--radius-sm);
10151
10153
  }
10152
10154
 
10153
- /* Button and anchor specific styles */
10154
- button.muka-listitem,
10155
- a.muka-listitem {
10156
- text-align: left;
10157
- width: 100%;
10155
+ .muka-combobox__clear:hover {
10156
+ color: var(--color-text-default-default);
10157
+ background-color: var(--color-surface-level1);
10158
10158
  }
10159
10159
 
10160
- /* List item specific styles */
10161
- li.muka-listitem {
10162
- list-style: none;
10160
+ /* ─── Picker sheet body ───────────────────────────────── */
10161
+
10162
+ .muka-combobox__picker {
10163
+ display: flex;
10164
+ flex-direction: column;
10165
+ gap: var(--spacing-3);
10166
+ padding: 0 var(--spacing-4) var(--spacing-4);
10167
+ min-height: 0;
10168
+ max-height: 80vh;
10169
+ }
10170
+
10171
+ .muka-combobox__title {
10172
+ margin: 0;
10173
+ padding: var(--spacing-2) 0;
10174
+ color: var(--color-text-default-default);
10175
+ font-family: var(--text-heading-sm-fontFamily);
10176
+ font-weight: var(--text-heading-sm-fontWeight);
10177
+ font-size: var(--text-heading-sm-fontSize);
10178
+ line-height: var(--text-heading-sm-lineHeight);
10179
+ }
10180
+
10181
+ .muka-combobox__search {
10182
+ position: sticky;
10183
+ top: 0;
10184
+ z-index: 1;
10185
+ padding-bottom: var(--spacing-2);
10186
+ background-color: var(--color-surface-level3);
10187
+ }
10188
+
10189
+ .muka-combobox__list {
10190
+ flex: 1 1 auto;
10191
+ min-height: 0;
10192
+ overflow-y: auto;
10193
+ -webkit-overflow-scrolling: touch;
10163
10194
  }
10164
10195
 
10165
10196
 
@@ -10412,6 +10443,33 @@ li.muka-listitem {
10412
10443
  }
10413
10444
 
10414
10445
 
10446
+ /* Divider */
10447
+ /* Divider Component Styles - Using Muka Design Tokens */
10448
+
10449
+ .muka-divider {
10450
+ flex-shrink: 0;
10451
+ }
10452
+
10453
+ .muka-divider--horizontal {
10454
+ width: 100%;
10455
+ height: var(--separator-width);
10456
+ }
10457
+
10458
+ .muka-divider--vertical {
10459
+ height: 100%;
10460
+ width: var(--separator-width);
10461
+ align-self: stretch;
10462
+ }
10463
+
10464
+ .muka-divider--default {
10465
+ background-color: var(--separator-color-default);
10466
+ }
10467
+
10468
+ .muka-divider--contrast {
10469
+ background-color: var(--separator-color-contrast);
10470
+ }
10471
+
10472
+
10415
10473
  /* CheckboxTile */
10416
10474
  /* CheckboxTile Component Styles - Using Muka Design Tokens */
10417
10475
 
@@ -10737,6 +10795,122 @@ li.muka-listitem {
10737
10795
  }
10738
10796
 
10739
10797
 
10798
+ /* ChatPhotoGrid */
10799
+ /* ChatPhotoGrid Component Styles */
10800
+
10801
+ .muka-chat-photo-grid {
10802
+ display: grid;
10803
+ gap: var(--chatphotogrid-gap);
10804
+ width: 100%;
10805
+ min-width: 0;
10806
+ }
10807
+
10808
+ /* ─── Tiles ────────────────────────────────────────────── */
10809
+
10810
+ .muka-chat-photo-grid__tile {
10811
+ position: relative;
10812
+ display: block;
10813
+ overflow: hidden;
10814
+ min-width: 0;
10815
+ padding: 0;
10816
+ margin: 0;
10817
+ border: none;
10818
+ border-radius: var(--chatphotogrid-radius);
10819
+ background-color: var(--chatphotogrid-color-placeholder);
10820
+ aspect-ratio: 1 / 1;
10821
+ }
10822
+
10823
+ button.muka-chat-photo-grid__tile {
10824
+ cursor: pointer;
10825
+ appearance: none;
10826
+ }
10827
+
10828
+ button.muka-chat-photo-grid__tile:focus-visible {
10829
+ outline: var(--border-width-bold) solid var(--color-border-focus);
10830
+ outline-offset: var(--spacing-1);
10831
+ }
10832
+
10833
+ .muka-chat-photo-grid__image {
10834
+ display: block;
10835
+ width: 100%;
10836
+ height: 100%;
10837
+ object-fit: cover;
10838
+ }
10839
+
10840
+ /* ─── Overflow tile ────────────────────────────────────── */
10841
+
10842
+ .muka-chat-photo-grid__overflow {
10843
+ position: absolute;
10844
+ inset: 0;
10845
+ display: flex;
10846
+ align-items: center;
10847
+ justify-content: center;
10848
+ background-color: var(--chatphotogrid-color-overflow-background);
10849
+ color: var(--chatphotogrid-color-overflow-foreground);
10850
+ font-family: var(--text-body-2xl-regular-fontFamily);
10851
+ font-weight: var(--text-body-2xl-regular-fontWeight);
10852
+ font-size: var(--text-body-2xl-regular-fontSize);
10853
+ line-height: var(--text-body-2xl-regular-lineHeight);
10854
+ }
10855
+
10856
+ /* ─── Layouts ──────────────────────────────────────────── */
10857
+
10858
+ .muka-chat-photo-grid--1 {
10859
+ grid-template-columns: 1fr;
10860
+ }
10861
+
10862
+ .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
10863
+ aspect-ratio: 4 / 3;
10864
+ }
10865
+
10866
+ .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
10867
+ aspect-ratio: 3 / 4;
10868
+ }
10869
+
10870
+ .muka-chat-photo-grid--2 {
10871
+ grid-template-columns: repeat(2, 1fr);
10872
+ }
10873
+
10874
+ .muka-chat-photo-grid--3 {
10875
+ grid-template-columns: repeat(3, 1fr);
10876
+ }
10877
+
10878
+ .muka-chat-photo-grid--4 {
10879
+ grid-template-columns: repeat(2, 1fr);
10880
+ }
10881
+
10882
+ /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
10883
+ .muka-chat-photo-grid--5 {
10884
+ grid-template-columns: repeat(6, 1fr);
10885
+ }
10886
+
10887
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
10888
+ grid-column: span 3;
10889
+ }
10890
+
10891
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
10892
+ grid-column: span 2;
10893
+ }
10894
+
10895
+ .muka-chat-photo-grid--6,
10896
+ .muka-chat-photo-grid--overflow {
10897
+ grid-template-columns: repeat(3, 1fr);
10898
+ }
10899
+
10900
+ /* ─── Print ────────────────────────────────────────────── */
10901
+
10902
+ @media print {
10903
+ .muka-chat-photo-grid {
10904
+ break-inside: avoid;
10905
+ }
10906
+
10907
+ .muka-chat-photo-grid__image {
10908
+ print-color-adjust: exact;
10909
+ -webkit-print-color-adjust: exact;
10910
+ }
10911
+ }
10912
+
10913
+
10740
10914
  /* ChatMessageList */
10741
10915
  /* ChatMessageList Component Styles */
10742
10916
 
@@ -10759,20 +10933,40 @@ li.muka-listitem {
10759
10933
  align-items: stretch;
10760
10934
  gap: var(--spacing-8);
10761
10935
  width: 100%;
10762
- max-width: 640px;
10936
+ max-width: var(--container-max-width-sm);
10763
10937
  margin: 0 auto;
10764
10938
  }
10765
10939
 
10940
+ /* ─── Print ────────────────────────────────────────────── */
10941
+
10942
+ @media print {
10943
+ .muka-chat-message-list {
10944
+ overflow: visible;
10945
+ height: auto;
10946
+ max-height: none;
10947
+ background: none;
10948
+ padding: 0;
10949
+ }
10950
+
10951
+ .muka-chat-message-list__inner {
10952
+ max-width: 100%;
10953
+ }
10954
+ }
10955
+
10766
10956
 
10767
10957
  /* ChatComposer */
10768
10958
  /* ChatComposer Component Styles */
10769
10959
 
10960
+ /*
10961
+ * The composer is a bare, fill-width row: no padding, background, border or
10962
+ * max-width of its own (Figma 5243:14141). Whatever hosts it owns the
10963
+ * container — see BottomBar's `chat` variant.
10964
+ */
10770
10965
  .muka-chat-composer {
10771
10966
  display: flex;
10772
10967
  flex-direction: column;
10773
10968
  gap: var(--spacing-3);
10774
10969
  width: 100%;
10775
- max-width: 768px;
10776
10970
  }
10777
10971
 
10778
10972
  .muka-chat-composer--disabled {
@@ -10879,6 +11073,14 @@ li.muka-listitem {
10879
11073
  transform: translateY(-50%);
10880
11074
  }
10881
11075
 
11076
+ /* ─── Print ────────────────────────────────────────────── */
11077
+
11078
+ @media print {
11079
+ .muka-chat-composer {
11080
+ display: none;
11081
+ }
11082
+ }
11083
+
10882
11084
 
10883
11085
  /* ChatBubble */
10884
11086
  /* ChatBubble Component Styles */
@@ -10886,69 +11088,222 @@ li.muka-listitem {
10886
11088
  .muka-chat-bubble {
10887
11089
  display: flex;
10888
11090
  flex-direction: column;
10889
- gap: var(--spacing-1);
10890
11091
  width: 100%;
10891
11092
  max-width: 100%;
10892
11093
  }
10893
11094
 
10894
- /* ─── User variant — right-aligned bubble ──────────────── */
11095
+ /* ─── Row: avatar rail + bubble + action bar ───────────────
11096
+ *
11097
+ * A two-row grid rather than a flex column, so the avatar bottom-aligns to the
11098
+ * bubble itself and not to the action bar underneath it (Figma 5223:8520).
11099
+ */
10895
11100
 
10896
- .muka-chat-bubble--user {
10897
- align-items: flex-end;
11101
+ .muka-chat-bubble__row {
11102
+ display: grid;
11103
+ grid-template-columns: minmax(0, 1fr);
11104
+ grid-template-areas:
11105
+ 'bubble'
11106
+ 'actions';
11107
+ column-gap: var(--chatbubble-row-gap);
11108
+ row-gap: var(--chatbubble-gap);
11109
+ width: 100%;
10898
11110
  }
10899
11111
 
10900
- .muka-chat-bubble--user .muka-chat-bubble__message {
10901
- background-color: var(--color-surface-level2);
10902
- color: var(--color-text-default-default);
10903
- border-radius: var(--radius-lg);
10904
- padding: var(--spacing-4);
10905
- max-width: min(600px, 100%);
11112
+ .muka-chat-bubble--has-avatar .muka-chat-bubble__row {
11113
+ grid-template-columns: auto minmax(0, 1fr);
11114
+ grid-template-areas:
11115
+ 'rail bubble'
11116
+ '. actions';
11117
+ }
11118
+
11119
+ .muka-chat-bubble--own.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
11120
+ grid-template-columns: minmax(0, 1fr) auto;
11121
+ grid-template-areas:
11122
+ 'bubble rail'
11123
+ 'actions .';
11124
+ }
11125
+
11126
+ .muka-chat-bubble__rail {
11127
+ grid-area: rail;
11128
+ /* Sits on the bubble's baseline, above the action bar */
11129
+ align-self: end;
11130
+ display: flex;
11131
+ justify-content: center;
11132
+ min-width: var(--chatbubble-avatar-size);
11133
+ }
11134
+
11135
+ /* ─── Bubble surface ───────────────────────────────────── */
11136
+
11137
+ .muka-chat-bubble__bubble {
11138
+ grid-area: bubble;
11139
+ max-width: var(--chatbubble-max-width);
11140
+ position: relative;
11141
+ display: flex;
11142
+ flex-direction: column;
11143
+ gap: var(--chatbubble-gap);
11144
+ width: 100%;
11145
+ padding: var(--chatbubble-padding);
11146
+ border-radius: var(--chatbubble-radius);
11147
+ border: var(--border-width-regular) solid transparent;
11148
+ word-break: break-word;
11149
+ }
11150
+
11151
+ .muka-chat-bubble--own .muka-chat-bubble__bubble,
11152
+ .muka-chat-bubble--own .muka-chat-bubble__actions {
11153
+ justify-self: end;
11154
+ }
11155
+
11156
+ .muka-chat-bubble--own .muka-chat-bubble__bubble {
11157
+ background-color: var(--chatbubble-color-own-background);
11158
+ border-color: var(--chatbubble-color-own-border);
11159
+ color: var(--chatbubble-color-own-foreground);
11160
+ /* Room for the inset timestamp in the bottom-right corner */
11161
+ padding-right: var(--spacing-6);
11162
+ }
11163
+
11164
+ .muka-chat-bubble--peer .muka-chat-bubble__bubble {
11165
+ background-color: var(--chatbubble-color-peer-background);
11166
+ border-color: var(--chatbubble-color-peer-border);
11167
+ color: var(--chatbubble-color-peer-foreground);
11168
+ box-shadow: var(--shadow-level2);
11169
+ }
11170
+
11171
+ .muka-chat-bubble--agent .muka-chat-bubble__bubble {
11172
+ background-color: var(--chatbubble-color-agent-background);
11173
+ border-color: var(--chatbubble-color-agent-border);
11174
+ color: var(--chatbubble-color-agent-foreground);
11175
+ }
11176
+
11177
+ /* ─── Header row (author · meta · time · badge) ────────── */
11178
+
11179
+ .muka-chat-bubble__header {
11180
+ display: flex;
11181
+ flex-flow: row wrap;
11182
+ align-items: center;
11183
+ gap: var(--chatbubble-row-gap);
11184
+ }
11185
+
11186
+ .muka-chat-bubble__author {
11187
+ font-family: var(--text-body-base-bold-fontFamily);
11188
+ font-weight: var(--text-body-base-bold-fontWeight);
11189
+ font-size: var(--text-body-base-bold-fontSize);
11190
+ line-height: var(--text-body-base-bold-lineHeight);
11191
+ }
11192
+
11193
+ .muka-chat-bubble__author-meta {
11194
+ /* Inherits the variant's body colour from the bubble */
11195
+ color: inherit;
11196
+ font-family: var(--text-body-base-regular-fontFamily);
11197
+ font-weight: var(--text-body-base-regular-fontWeight);
11198
+ font-size: var(--text-body-base-regular-fontSize);
11199
+ line-height: var(--text-body-base-regular-lineHeight);
11200
+ }
11201
+
11202
+ .muka-chat-bubble__badge {
11203
+ display: inline-flex;
11204
+ align-items: center;
11205
+ }
11206
+
11207
+ /*
11208
+ * Keep the first line of content clear of the absolutely positioned menu
11209
+ * button in the bubble's top-right corner.
11210
+ */
11211
+ .muka-chat-bubble--has-menu .muka-chat-bubble__header,
11212
+ .muka-chat-bubble--has-menu.muka-chat-bubble--no-header .muka-chat-bubble__message {
11213
+ padding-right: var(--spacing-6);
11214
+ }
11215
+
11216
+ /* ─── Body ─────────────────────────────────────────────── */
11217
+
11218
+ .muka-chat-bubble__body {
11219
+ display: flex;
11220
+ flex-direction: column;
11221
+ gap: var(--chatbubble-gap);
11222
+ min-width: 0;
11223
+ }
11224
+
11225
+ /* The agent balloon spaces its blocks further apart (Figma 5223:8520) */
11226
+ .muka-chat-bubble--agent .muka-chat-bubble__body {
11227
+ gap: var(--chatbubble-body-gap);
11228
+ }
11229
+
11230
+ .muka-chat-bubble__media {
11231
+ min-width: 0;
11232
+ }
11233
+
11234
+ .muka-chat-bubble__message {
11235
+ font-family: var(--text-body-base-regular-fontFamily);
11236
+ font-weight: var(--text-body-base-regular-fontWeight);
11237
+ font-size: var(--text-body-base-regular-fontSize);
11238
+ line-height: var(--text-body-base-regular-lineHeight);
11239
+ white-space: pre-wrap;
10906
11240
  word-break: break-word;
10907
11241
  }
10908
11242
 
10909
- .muka-chat-bubble--user .muka-chat-bubble__meta {
10910
- justify-content: flex-end;
11243
+ /* Empty message block should not add a gap of its own */
11244
+ .muka-chat-bubble__message:empty {
11245
+ display: none;
11246
+ }
11247
+
11248
+ /* ─── Embedded card ────────────────────────────────────── */
11249
+
11250
+ .muka-chat-bubble__embed {
11251
+ position: relative;
11252
+ display: flex;
11253
+ flex-direction: column;
11254
+ gap: var(--chatbubble-embed-gap);
11255
+ padding: var(--chatbubble-embed-padding);
11256
+ border-radius: var(--chatbubble-embed-radius);
11257
+ border: var(--border-width-regular) solid transparent;
11258
+ }
11259
+
11260
+ /*
11261
+ * The embed sits on the raised surface of its author's role, one step apart
11262
+ * from the bubble it is nested in, and reuses that role's border colour.
11263
+ */
11264
+ .muka-chat-bubble--own .muka-chat-bubble__embed {
11265
+ background-color: var(--chatbubble-embed-color-own-background);
11266
+ border-color: var(--chatbubble-embed-color-own-border);
11267
+ color: var(--chatbubble-embed-color-own-foreground);
10911
11268
  }
10912
11269
 
10913
- /* ─── Agent variant — no bubble, full width ────────────── */
10914
-
10915
- .muka-chat-bubble--agent {
10916
- align-items: flex-start;
11270
+ .muka-chat-bubble--peer .muka-chat-bubble__embed {
11271
+ background-color: var(--chatbubble-embed-color-peer-background);
11272
+ border-color: var(--chatbubble-embed-color-peer-border);
11273
+ color: var(--chatbubble-embed-color-peer-foreground);
10917
11274
  }
10918
11275
 
10919
- .muka-chat-bubble--agent .muka-chat-bubble__message {
10920
- color: var(--color-text-default-default);
10921
- padding: 0 var(--spacing-2);
10922
- width: 100%;
10923
- word-break: break-word;
11276
+ .muka-chat-bubble--agent .muka-chat-bubble__embed {
11277
+ background-color: var(--chatbubble-embed-color-agent-background);
11278
+ border-color: var(--chatbubble-embed-color-agent-border);
11279
+ color: var(--chatbubble-embed-color-agent-foreground);
10924
11280
  }
10925
11281
 
10926
- .muka-chat-bubble--agent .muka-chat-bubble__meta {
10927
- justify-content: flex-start;
11282
+ .muka-chat-bubble__embed-content {
11283
+ display: flex;
11284
+ flex-direction: column;
11285
+ gap: var(--chatbubble-embed-gap);
11286
+ min-width: 0;
10928
11287
  }
10929
11288
 
10930
- /* ─── Message typography ───────────────────────────────── */
10931
-
10932
- .muka-chat-bubble__message {
10933
- font-family: var(--text-body-base-regular-fontFamily);
10934
- font-weight: var(--text-body-base-regular-fontWeight);
10935
- font-size: var(--text-body-base-regular-fontSize);
10936
- line-height: var(--text-body-base-regular-lineHeight);
11289
+ .muka-chat-bubble__embed-copy {
11290
+ position: absolute;
11291
+ top: var(--chatbubble-embed-padding);
11292
+ right: var(--chatbubble-embed-padding);
10937
11293
  }
10938
11294
 
10939
- /* ─── Meta row (timestamp + actions) ───────────────────── */
11295
+ /* ─── Stacked full-width action buttons ────────────────── */
10940
11296
 
10941
- .muka-chat-bubble__meta {
11297
+ .muka-chat-bubble__action-stack {
10942
11298
  display: flex;
10943
- align-items: center;
10944
- gap: var(--spacing-1);
11299
+ flex-direction: column;
11300
+ gap: var(--chatbubble-action-stack-gap);
10945
11301
  }
10946
11302
 
11303
+ /* ─── Inset timestamp (user variant) ───────────────────── */
11304
+
10947
11305
  .muka-chat-bubble__timestamp {
10948
- display: inline-flex;
10949
- align-items: center;
10950
- padding: 0 var(--spacing-2);
10951
- color: var(--color-text-subtle-default);
11306
+ color: var(--chatbubble-color-timestamp);
10952
11307
  font-family: var(--text-body-sm-regular-fontFamily);
10953
11308
  font-weight: var(--text-body-sm-regular-fontWeight);
10954
11309
  font-size: var(--text-body-sm-regular-fontSize);
@@ -10956,12 +11311,79 @@ li.muka-listitem {
10956
11311
  white-space: nowrap;
10957
11312
  }
10958
11313
 
11314
+ .muka-chat-bubble__timestamp--inset {
11315
+ align-self: flex-end;
11316
+ }
11317
+
11318
+ /* ─── Menu affordance ──────────────────────────────────── */
11319
+
11320
+ .muka-chat-bubble__menu {
11321
+ position: absolute;
11322
+ top: var(--spacing-1);
11323
+ right: var(--spacing-1);
11324
+ }
11325
+
11326
+ /* ─── Meta action row (below the bubble) ───────────────── */
11327
+
10959
11328
  .muka-chat-bubble__actions {
11329
+ grid-area: actions;
11330
+ max-width: var(--chatbubble-max-width);
10960
11331
  display: flex;
10961
11332
  align-items: center;
10962
11333
  gap: 0;
10963
11334
  }
10964
11335
 
11336
+ .muka-chat-bubble--own .muka-chat-bubble__actions,
11337
+ .muka-chat-bubble--agent .muka-chat-bubble__actions {
11338
+ justify-content: flex-end;
11339
+ }
11340
+
11341
+ /*
11342
+ * The meta row uses 32px icon buttons per the design. Expand the pointer/touch
11343
+ * target to the 44px WCAG 2.1 AA minimum without changing the visual size.
11344
+ */
11345
+ .muka-chat-bubble__actions .muka-button--icon-only {
11346
+ position: relative;
11347
+ }
11348
+
11349
+ .muka-chat-bubble__actions .muka-button--icon-only::after {
11350
+ content: '';
11351
+ position: absolute;
11352
+ top: 50%;
11353
+ left: 50%;
11354
+ width: 44px;
11355
+ height: 44px;
11356
+ transform: translate(-50%, -50%);
11357
+ }
11358
+
11359
+ /* ─── Print ────────────────────────────────────────────── */
11360
+
11361
+ @media print {
11362
+ .muka-chat-bubble__bubble {
11363
+ box-shadow: none;
11364
+ break-inside: avoid;
11365
+ print-color-adjust: exact;
11366
+ -webkit-print-color-adjust: exact;
11367
+ }
11368
+
11369
+ .muka-chat-bubble__embed {
11370
+ break-inside: avoid;
11371
+ print-color-adjust: exact;
11372
+ -webkit-print-color-adjust: exact;
11373
+ }
11374
+
11375
+ .muka-chat-bubble__menu,
11376
+ .muka-chat-bubble__actions,
11377
+ .muka-chat-bubble__embed-copy,
11378
+ .muka-chat-bubble__action-stack {
11379
+ display: none;
11380
+ }
11381
+
11382
+ .muka-chat-bubble__column {
11383
+ max-width: 100%;
11384
+ }
11385
+ }
11386
+
10965
11387
 
10966
11388
  /* ChatAttachmentChip */
10967
11389
  /* ChatAttachmentChip Component Styles */
@@ -11230,88 +11652,6 @@ li.muka-listitem {
11230
11652
  }
11231
11653
 
11232
11654
 
11233
- /* Breadcrumb */
11234
- /* Breadcrumb Component Styles */
11235
-
11236
- .muka-breadcrumb__list {
11237
- display: flex;
11238
- align-items: center;
11239
- flex-wrap: wrap;
11240
- list-style: none;
11241
- margin: 0;
11242
- padding: 0;
11243
- gap: var(--spacing-1);
11244
- }
11245
-
11246
- .muka-breadcrumb__item {
11247
- display: inline-flex;
11248
- align-items: center;
11249
- gap: var(--spacing-1);
11250
- }
11251
-
11252
- .muka-breadcrumb__icon {
11253
- display: inline-flex;
11254
- align-items: center;
11255
- color: var(--color-text-subtle-default);
11256
- }
11257
-
11258
- /* Link styles */
11259
- .muka-breadcrumb__link {
11260
- color: var(--color-text-subtle-default);
11261
- text-decoration: none;
11262
- border: none;
11263
- background: none;
11264
- padding: 0;
11265
- cursor: pointer;
11266
- font: inherit;
11267
- transition: color 0.15s ease;
11268
- }
11269
-
11270
- .muka-breadcrumb__link:hover {
11271
- color: var(--color-text-action-default);
11272
- text-decoration: underline;
11273
- }
11274
-
11275
- /* Current page (last item) */
11276
- .muka-breadcrumb__current {
11277
- color: var(--color-text-default-default);
11278
- font-weight: 600;
11279
- }
11280
-
11281
- /* Separator */
11282
- .muka-breadcrumb__separator {
11283
- color: var(--color-text-subtle-default);
11284
- user-select: none;
11285
- }
11286
-
11287
- /* Ellipsis */
11288
- .muka-breadcrumb__ellipsis {
11289
- color: var(--color-text-subtle-default);
11290
- }
11291
-
11292
- /* Size variants */
11293
- .muka-breadcrumb--sm {
11294
- font-family: var(--text-label-sm-regular-fontFamily);
11295
- font-weight: var(--text-label-sm-regular-fontWeight);
11296
- font-size: var(--text-label-sm-regular-fontSize);
11297
- line-height: var(--text-label-sm-regular-lineHeight);
11298
- }
11299
-
11300
- .muka-breadcrumb--md {
11301
- font-family: var(--text-label-md-regular-fontFamily);
11302
- font-weight: var(--text-label-md-regular-fontWeight);
11303
- font-size: var(--text-label-md-regular-fontSize);
11304
- line-height: var(--text-label-md-regular-lineHeight);
11305
- }
11306
-
11307
- .muka-breadcrumb--lg {
11308
- font-family: var(--text-label-lg-regular-fontFamily);
11309
- font-weight: var(--text-label-lg-regular-fontWeight);
11310
- font-size: var(--text-label-lg-regular-fontSize);
11311
- line-height: var(--text-label-lg-regular-lineHeight);
11312
- }
11313
-
11314
-
11315
11655
  /* Button */
11316
11656
  /* Button Component Styles - Using Muka Design Tokens */
11317
11657
 
@@ -11411,10 +11751,13 @@ li.muka-listitem {
11411
11751
  }
11412
11752
 
11413
11753
  /* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
11414
- trigger (Radix Menu/Popover set this on the trigger). */
11754
+ trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
11755
+ gives toggle buttons a visible selected state, so the toggle is not conveyed
11756
+ to sighted users by the accessibility tree alone. */
11415
11757
  .muka-button--primary:active:not(:disabled),
11416
11758
  .muka-button--primary.muka-button--pressed:not(:disabled),
11417
- .muka-button--primary[data-state="open"]:not(:disabled) {
11759
+ .muka-button--primary[data-state="open"]:not(:disabled),
11760
+ .muka-button--primary[aria-pressed="true"]:not(:disabled) {
11418
11761
  background-color: var(--button-color-primary-background-pressed);
11419
11762
  color: var(--button-color-primary-foreground-pressed);
11420
11763
  box-shadow: var(--button-color-primary-shadow-pressed);
@@ -11443,7 +11786,8 @@ li.muka-listitem {
11443
11786
 
11444
11787
  .muka-button--secondary:active:not(:disabled),
11445
11788
  .muka-button--secondary.muka-button--pressed:not(:disabled),
11446
- .muka-button--secondary[data-state="open"]:not(:disabled) {
11789
+ .muka-button--secondary[data-state="open"]:not(:disabled),
11790
+ .muka-button--secondary[aria-pressed="true"]:not(:disabled) {
11447
11791
  background-color: var(--button-color-secondary-background-pressed);
11448
11792
  color: var(--button-color-secondary-foreground-pressed);
11449
11793
  box-shadow: var(--button-color-secondary-shadow-pressed);
@@ -11472,7 +11816,8 @@ li.muka-listitem {
11472
11816
 
11473
11817
  .muka-button--tertiary:active:not(:disabled),
11474
11818
  .muka-button--tertiary.muka-button--pressed:not(:disabled),
11475
- .muka-button--tertiary[data-state="open"]:not(:disabled) {
11819
+ .muka-button--tertiary[data-state="open"]:not(:disabled),
11820
+ .muka-button--tertiary[aria-pressed="true"]:not(:disabled) {
11476
11821
  background-color: var(--button-color-tertiary-background-pressed);
11477
11822
  color: var(--button-color-tertiary-foreground-pressed);
11478
11823
  border-color: var(--button-color-tertiary-border-pressed);
@@ -11501,7 +11846,8 @@ li.muka-listitem {
11501
11846
 
11502
11847
  .muka-button--ghost:active:not(:disabled),
11503
11848
  .muka-button--ghost.muka-button--pressed:not(:disabled),
11504
- .muka-button--ghost[data-state="open"]:not(:disabled) {
11849
+ .muka-button--ghost[data-state="open"]:not(:disabled),
11850
+ .muka-button--ghost[aria-pressed="true"]:not(:disabled) {
11505
11851
  background-color: var(--button-color-ghost-background-pressed);
11506
11852
  color: var(--button-color-ghost-foreground-pressed);
11507
11853
  border-color: var(--button-color-ghost-border-pressed);
@@ -11530,7 +11876,8 @@ li.muka-listitem {
11530
11876
 
11531
11877
  .muka-button--muted:active:not(:disabled),
11532
11878
  .muka-button--muted.muka-button--pressed:not(:disabled),
11533
- .muka-button--muted[data-state="open"]:not(:disabled) {
11879
+ .muka-button--muted[data-state="open"]:not(:disabled),
11880
+ .muka-button--muted[aria-pressed="true"]:not(:disabled) {
11534
11881
  background-color: var(--button-color-muted-background-pressed);
11535
11882
  color: var(--button-color-muted-foreground-pressed);
11536
11883
  border-color: var(--button-color-muted-border-pressed);
@@ -11620,6 +11967,88 @@ li.muka-listitem {
11620
11967
  }
11621
11968
 
11622
11969
 
11970
+ /* Breadcrumb */
11971
+ /* Breadcrumb Component Styles */
11972
+
11973
+ .muka-breadcrumb__list {
11974
+ display: flex;
11975
+ align-items: center;
11976
+ flex-wrap: wrap;
11977
+ list-style: none;
11978
+ margin: 0;
11979
+ padding: 0;
11980
+ gap: var(--spacing-1);
11981
+ }
11982
+
11983
+ .muka-breadcrumb__item {
11984
+ display: inline-flex;
11985
+ align-items: center;
11986
+ gap: var(--spacing-1);
11987
+ }
11988
+
11989
+ .muka-breadcrumb__icon {
11990
+ display: inline-flex;
11991
+ align-items: center;
11992
+ color: var(--color-text-subtle-default);
11993
+ }
11994
+
11995
+ /* Link styles */
11996
+ .muka-breadcrumb__link {
11997
+ color: var(--color-text-subtle-default);
11998
+ text-decoration: none;
11999
+ border: none;
12000
+ background: none;
12001
+ padding: 0;
12002
+ cursor: pointer;
12003
+ font: inherit;
12004
+ transition: color 0.15s ease;
12005
+ }
12006
+
12007
+ .muka-breadcrumb__link:hover {
12008
+ color: var(--color-text-action-default);
12009
+ text-decoration: underline;
12010
+ }
12011
+
12012
+ /* Current page (last item) */
12013
+ .muka-breadcrumb__current {
12014
+ color: var(--color-text-default-default);
12015
+ font-weight: 600;
12016
+ }
12017
+
12018
+ /* Separator */
12019
+ .muka-breadcrumb__separator {
12020
+ color: var(--color-text-subtle-default);
12021
+ user-select: none;
12022
+ }
12023
+
12024
+ /* Ellipsis */
12025
+ .muka-breadcrumb__ellipsis {
12026
+ color: var(--color-text-subtle-default);
12027
+ }
12028
+
12029
+ /* Size variants */
12030
+ .muka-breadcrumb--sm {
12031
+ font-family: var(--text-label-sm-regular-fontFamily);
12032
+ font-weight: var(--text-label-sm-regular-fontWeight);
12033
+ font-size: var(--text-label-sm-regular-fontSize);
12034
+ line-height: var(--text-label-sm-regular-lineHeight);
12035
+ }
12036
+
12037
+ .muka-breadcrumb--md {
12038
+ font-family: var(--text-label-md-regular-fontFamily);
12039
+ font-weight: var(--text-label-md-regular-fontWeight);
12040
+ font-size: var(--text-label-md-regular-fontSize);
12041
+ line-height: var(--text-label-md-regular-lineHeight);
12042
+ }
12043
+
12044
+ .muka-breadcrumb--lg {
12045
+ font-family: var(--text-label-lg-regular-fontFamily);
12046
+ font-weight: var(--text-label-lg-regular-fontWeight);
12047
+ font-size: var(--text-label-lg-regular-fontSize);
12048
+ line-height: var(--text-label-lg-regular-lineHeight);
12049
+ }
12050
+
12051
+
11623
12052
  /* BottomBar */
11624
12053
  /* BottomBar Component Styles */
11625
12054
 
@@ -11704,11 +12133,6 @@ li.muka-listitem {
11704
12133
  max-width: var(--bottombar-chat-max-width);
11705
12134
  }
11706
12135
 
11707
- /* Let the composer fill the wider bar instead of its standalone 768px cap. */
11708
- .muka-bottombar--chat .muka-chat-composer {
11709
- max-width: none;
11710
- }
11711
-
11712
12136
  /* ─── Tab item ────────────────────────────────────────── */
11713
12137
 
11714
12138
  .muka-bottombar__tab {
@@ -11920,6 +12344,14 @@ li.muka-listitem {
11920
12344
  }
11921
12345
  }
11922
12346
 
12347
+ /* ─── Print ────────────────────────────────────────────── */
12348
+
12349
+ @media print {
12350
+ .muka-bottombar {
12351
+ display: none;
12352
+ }
12353
+ }
12354
+
11923
12355
 
11924
12356
  /* Badge */
11925
12357
  /* Badge Component Styles - Using Muka Design Tokens */
@@ -12695,12 +13127,19 @@ li.muka-listitem {
12695
13127
  margin: 0;
12696
13128
  cursor: pointer;
12697
13129
  color: var(--color-text-subtle-default);
13130
+ font-family: var(--text-body-sm-regular-fontFamily);
13131
+ font-weight: var(--text-body-sm-regular-fontWeight);
13132
+ font-size: var(--text-body-sm-regular-fontSize);
13133
+ line-height: var(--text-body-sm-regular-lineHeight);
13134
+ text-align: left;
13135
+ -webkit-tap-highlight-color: transparent;
13136
+ }
13137
+
13138
+ .muka-agent-task-list--open .muka-agent-task-list__header {
12698
13139
  font-family: var(--text-body-sm-bold-fontFamily);
12699
13140
  font-weight: var(--text-body-sm-bold-fontWeight);
12700
13141
  font-size: var(--text-body-sm-bold-fontSize);
12701
13142
  line-height: var(--text-body-sm-bold-lineHeight);
12702
- text-align: left;
12703
- -webkit-tap-highlight-color: transparent;
12704
13143
  }
12705
13144
 
12706
13145
  .muka-agent-task-list__header:focus-visible {
@@ -12758,7 +13197,7 @@ li.muka-listitem {
12758
13197
  position: absolute;
12759
13198
  left: 7px;
12760
13199
  width: 1px;
12761
- background-color: var(--color-border-default, #d9d9d9);
13200
+ background-color: var(--color-border-default);
12762
13201
  }
12763
13202
 
12764
13203
  .muka-agent-task-list__line--top {
@@ -12821,6 +13260,18 @@ li.muka-listitem {
12821
13260
  word-break: break-word;
12822
13261
  }
12823
13262
 
13263
+ /* ─── Print ────────────────────────────────────────────── */
13264
+
13265
+ @media print {
13266
+ .muka-agent-task-list {
13267
+ break-inside: avoid;
13268
+ }
13269
+
13270
+ .muka-agent-task-list__chevron {
13271
+ display: none;
13272
+ }
13273
+ }
13274
+
12824
13275
 
12825
13276
  /* ActionSheet */
12826
13277
  /* ActionSheet Component Styles */