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