@revikornmann/muka-ui 0.23.0 → 0.23.1

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.
@@ -4835,156 +4835,6 @@ body {
4835
4835
  }
4836
4836
 
4837
4837
 
4838
- /* SocialSignInButton */
4839
- /*
4840
- * SocialSignInButton lockup colors are provider-mandated (Apple HIG /
4841
- * Google Identity branding) and intentionally fixed across Muka brands —
4842
- * same exception pattern as LicensePlateInput regulatory colors.
4843
- *
4844
- * Apple: https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple
4845
- * Google: https://developers.google.com/identity/branding-guidelines
4846
- */
4847
- .muka-social-sign-in-button {
4848
- --ssi-white: #ffffff;
4849
- --ssi-black: #000000;
4850
- --ssi-google-text-light: #1f1f1f;
4851
-
4852
- display: inline-flex;
4853
- align-items: center;
4854
- justify-content: center;
4855
-
4856
- /* Provider lockup type — matches Figma / HIG, not brand font tokens.
4857
- * SF Pro Text is OS-provided on Apple platforms (not redistributable).
4858
- * Google Sans is not freely shippable; Roboto is the closest system fallback. */
4859
- font-family: inherit;
4860
- font-weight: 600;
4861
- text-decoration: none;
4862
- white-space: nowrap;
4863
-
4864
- border: 1px solid transparent;
4865
- cursor: pointer;
4866
- user-select: none;
4867
- transition: opacity 0.15s ease, filter 0.15s ease;
4868
-
4869
- outline: none;
4870
- position: relative;
4871
- box-sizing: border-box;
4872
- }
4873
-
4874
- .muka-social-sign-in-button--apple {
4875
- font-family: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
4876
- Helvetica, Arial, sans-serif;
4877
- font-weight: 600;
4878
- }
4879
-
4880
- .muka-social-sign-in-button--google {
4881
- font-family: 'Google Sans', Roboto, 'Helvetica Neue', Arial, sans-serif;
4882
- font-weight: 500;
4883
- }
4884
-
4885
- .muka-social-sign-in-button:focus-visible {
4886
- outline: 2px solid var(--color-border-focus);
4887
- outline-offset: 2px;
4888
- }
4889
-
4890
- /* Sizes — heights align with Button md/lg */
4891
- .muka-social-sign-in-button--md {
4892
- padding: 0 var(--button-padding-md-x);
4893
- border-radius: var(--button-radius-md);
4894
- font-size: var(--text-label-sm-semibold-fontSize);
4895
- line-height: var(--text-label-sm-semibold-lineHeight);
4896
- min-height: 40px;
4897
- min-width: 240px;
4898
- }
4899
-
4900
- .muka-social-sign-in-button--md .muka-social-sign-in-button__label {
4901
- padding: 0 var(--button-gap-md);
4902
- }
4903
-
4904
- .muka-social-sign-in-button--md .muka-social-sign-in-button__icon {
4905
- width: var(--button-icon-md);
4906
- height: var(--button-icon-md);
4907
- }
4908
-
4909
- .muka-social-sign-in-button--lg {
4910
- padding: 0 var(--button-padding-lg-x);
4911
- border-radius: var(--button-radius-lg);
4912
- font-size: var(--text-label-lg-semibold-fontSize);
4913
- line-height: var(--text-label-lg-semibold-lineHeight);
4914
- min-height: 48px;
4915
- min-width: 280px;
4916
- }
4917
-
4918
- .muka-social-sign-in-button--lg .muka-social-sign-in-button__label {
4919
- padding: 0 var(--button-gap-lg);
4920
- }
4921
-
4922
- .muka-social-sign-in-button--lg .muka-social-sign-in-button__icon {
4923
- width: var(--button-icon-lg);
4924
- height: var(--button-icon-lg);
4925
- }
4926
-
4927
- /* White lockup — for dark surfaces (Apple White with Outline) */
4928
- .muka-social-sign-in-button--white {
4929
- background-color: var(--ssi-white);
4930
- color: var(--ssi-black);
4931
- border-color: var(--ssi-black);
4932
- }
4933
-
4934
- .muka-social-sign-in-button--white.muka-social-sign-in-button--google {
4935
- color: var(--ssi-google-text-light);
4936
- }
4937
-
4938
- /* Black lockup — for light surfaces */
4939
- .muka-social-sign-in-button--black {
4940
- background-color: var(--ssi-black);
4941
- color: var(--ssi-white);
4942
- border-color: transparent;
4943
- }
4944
-
4945
- /* Interaction — luminance/opacity only; no brand tint */
4946
- .muka-social-sign-in-button:hover:not(:disabled) {
4947
- filter: brightness(0.92);
4948
- }
4949
-
4950
- .muka-social-sign-in-button:active:not(:disabled) {
4951
- filter: brightness(0.85);
4952
- }
4953
-
4954
- .muka-social-sign-in-button:disabled,
4955
- .muka-social-sign-in-button--disabled {
4956
- cursor: not-allowed;
4957
- opacity: 0.4;
4958
- pointer-events: none;
4959
- filter: none;
4960
- }
4961
-
4962
- .muka-social-sign-in-button--full-width {
4963
- width: 100%;
4964
- min-width: 0;
4965
- }
4966
-
4967
- .muka-social-sign-in-button__icon {
4968
- display: inline-flex;
4969
- align-items: center;
4970
- justify-content: center;
4971
- flex-shrink: 0;
4972
- }
4973
-
4974
- .muka-social-sign-in-button__icon > *,
4975
- .muka-social-sign-in-button__icon svg {
4976
- width: auto;
4977
- height: 100%;
4978
- max-width: 100%;
4979
- display: block;
4980
- }
4981
-
4982
- .muka-social-sign-in-button__label {
4983
- display: inline-flex;
4984
- align-items: center;
4985
- }
4986
-
4987
-
4988
4838
  /* SmsOtpField */
4989
4839
  /* SmsOtpField Component Styles - Using Muka Design Tokens */
4990
4840
 
@@ -5177,64 +5027,214 @@ body {
5177
5027
  }
5178
5028
 
5179
5029
 
5180
- /* Skeleton */
5181
- /* Skeleton Component Styles */
5030
+ /* SocialSignInButton */
5031
+ /*
5032
+ * SocialSignInButton lockup colors are provider-mandated (Apple HIG /
5033
+ * Google Identity branding) and intentionally fixed across Muka brands —
5034
+ * same exception pattern as LicensePlateInput regulatory colors.
5035
+ *
5036
+ * Apple: https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple
5037
+ * Google: https://developers.google.com/identity/branding-guidelines
5038
+ */
5039
+ .muka-social-sign-in-button {
5040
+ --ssi-white: #ffffff;
5041
+ --ssi-black: #000000;
5042
+ --ssi-google-text-light: #1f1f1f;
5182
5043
 
5183
- .muka-skeleton {
5184
- background-color: var(--color-surface-level1);
5185
- display: block;
5044
+ display: inline-flex;
5045
+ align-items: center;
5046
+ justify-content: center;
5047
+
5048
+ /* Provider lockup type — matches Figma / HIG, not brand font tokens.
5049
+ * SF Pro Text is OS-provided on Apple platforms (not redistributable).
5050
+ * Google Sans is not freely shippable; Roboto is the closest system fallback. */
5051
+ font-family: inherit;
5052
+ font-weight: 600;
5053
+ text-decoration: none;
5054
+ white-space: nowrap;
5055
+
5056
+ border: 1px solid transparent;
5057
+ cursor: pointer;
5058
+ user-select: none;
5059
+ transition: opacity 0.15s ease, filter 0.15s ease;
5060
+
5061
+ outline: none;
5062
+ position: relative;
5063
+ box-sizing: border-box;
5186
5064
  }
5187
5065
 
5188
- /* Variants */
5189
- .muka-skeleton--text {
5190
- height: 1em;
5191
- border-radius: var(--radius-md);
5192
- width: 100%;
5066
+ .muka-social-sign-in-button--apple {
5067
+ font-family: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
5068
+ Helvetica, Arial, sans-serif;
5069
+ font-weight: 600;
5193
5070
  }
5194
5071
 
5195
- .muka-skeleton--circular {
5196
- width: 2.5rem;
5197
- height: 2.5rem;
5198
- border-radius: var(--radius-full);
5072
+ .muka-social-sign-in-button--google {
5073
+ font-family: 'Google Sans', Roboto, 'Helvetica Neue', Arial, sans-serif;
5074
+ font-weight: 500;
5199
5075
  }
5200
5076
 
5201
- .muka-skeleton--rectangular {
5202
- height: 7.5rem;
5203
- border-radius: var(--radius-md);
5204
- width: 100%;
5077
+ .muka-social-sign-in-button:focus-visible {
5078
+ outline: 2px solid var(--color-border-focus);
5079
+ outline-offset: 2px;
5205
5080
  }
5206
5081
 
5207
- /* Last line in multi-line text is shorter */
5208
- .muka-skeleton--last-line {
5209
- width: 80%;
5082
+ /* Sizes — heights align with Button md/lg */
5083
+ .muka-social-sign-in-button--md {
5084
+ padding: 0 var(--button-padding-md-x);
5085
+ border-radius: var(--button-radius-md);
5086
+ font-size: var(--text-label-sm-semibold-fontSize);
5087
+ line-height: var(--text-label-sm-semibold-lineHeight);
5088
+ min-height: 40px;
5089
+ min-width: 240px;
5210
5090
  }
5211
5091
 
5212
- /* Lines container */
5213
- .muka-skeleton__lines {
5214
- display: flex;
5215
- flex-direction: column;
5216
- gap: var(--spacing-2);
5092
+ .muka-social-sign-in-button--md .muka-social-sign-in-button__label {
5093
+ padding: 0 var(--button-gap-md);
5217
5094
  }
5218
5095
 
5219
- /* Shimmer animation */
5220
- @keyframes muka-skeleton-shimmer {
5221
- 0% {
5222
- background-position: -200% 0;
5223
- }
5224
- 100% {
5225
- background-position: 200% 0;
5226
- }
5096
+ .muka-social-sign-in-button--md .muka-social-sign-in-button__icon {
5097
+ width: var(--button-icon-md);
5098
+ height: var(--button-icon-md);
5227
5099
  }
5228
5100
 
5229
- .muka-skeleton--shimmer {
5230
- background: linear-gradient(
5231
- 90deg,
5232
- var(--color-surface-level1) 25%,
5233
- var(--color-surface-level2) 50%,
5234
- var(--color-surface-level1) 75%
5235
- );
5236
- background-size: 200% 100%;
5237
- animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
5101
+ .muka-social-sign-in-button--lg {
5102
+ padding: 0 var(--button-padding-lg-x);
5103
+ border-radius: var(--button-radius-lg);
5104
+ font-size: var(--text-label-lg-semibold-fontSize);
5105
+ line-height: var(--text-label-lg-semibold-lineHeight);
5106
+ min-height: 48px;
5107
+ min-width: 280px;
5108
+ }
5109
+
5110
+ .muka-social-sign-in-button--lg .muka-social-sign-in-button__label {
5111
+ padding: 0 var(--button-gap-lg);
5112
+ }
5113
+
5114
+ .muka-social-sign-in-button--lg .muka-social-sign-in-button__icon {
5115
+ width: var(--button-icon-lg);
5116
+ height: var(--button-icon-lg);
5117
+ }
5118
+
5119
+ /* White lockup — for dark surfaces (Apple White with Outline) */
5120
+ .muka-social-sign-in-button--white {
5121
+ background-color: var(--ssi-white);
5122
+ color: var(--ssi-black);
5123
+ border-color: var(--ssi-black);
5124
+ }
5125
+
5126
+ .muka-social-sign-in-button--white.muka-social-sign-in-button--google {
5127
+ color: var(--ssi-google-text-light);
5128
+ }
5129
+
5130
+ /* Black lockup — for light surfaces */
5131
+ .muka-social-sign-in-button--black {
5132
+ background-color: var(--ssi-black);
5133
+ color: var(--ssi-white);
5134
+ border-color: transparent;
5135
+ }
5136
+
5137
+ /* Interaction — luminance/opacity only; no brand tint */
5138
+ .muka-social-sign-in-button:hover:not(:disabled) {
5139
+ filter: brightness(0.92);
5140
+ }
5141
+
5142
+ .muka-social-sign-in-button:active:not(:disabled) {
5143
+ filter: brightness(0.85);
5144
+ }
5145
+
5146
+ .muka-social-sign-in-button:disabled,
5147
+ .muka-social-sign-in-button--disabled {
5148
+ cursor: not-allowed;
5149
+ opacity: 0.4;
5150
+ pointer-events: none;
5151
+ filter: none;
5152
+ }
5153
+
5154
+ .muka-social-sign-in-button--full-width {
5155
+ width: 100%;
5156
+ min-width: 0;
5157
+ }
5158
+
5159
+ .muka-social-sign-in-button__icon {
5160
+ display: inline-flex;
5161
+ align-items: center;
5162
+ justify-content: center;
5163
+ flex-shrink: 0;
5164
+ }
5165
+
5166
+ .muka-social-sign-in-button__icon > *,
5167
+ .muka-social-sign-in-button__icon svg {
5168
+ width: auto;
5169
+ height: 100%;
5170
+ max-width: 100%;
5171
+ display: block;
5172
+ }
5173
+
5174
+ .muka-social-sign-in-button__label {
5175
+ display: inline-flex;
5176
+ align-items: center;
5177
+ }
5178
+
5179
+
5180
+ /* Skeleton */
5181
+ /* Skeleton Component Styles */
5182
+
5183
+ .muka-skeleton {
5184
+ background-color: var(--color-surface-level1);
5185
+ display: block;
5186
+ }
5187
+
5188
+ /* Variants */
5189
+ .muka-skeleton--text {
5190
+ height: 1em;
5191
+ border-radius: var(--radius-md);
5192
+ width: 100%;
5193
+ }
5194
+
5195
+ .muka-skeleton--circular {
5196
+ width: 2.5rem;
5197
+ height: 2.5rem;
5198
+ border-radius: var(--radius-full);
5199
+ }
5200
+
5201
+ .muka-skeleton--rectangular {
5202
+ height: 7.5rem;
5203
+ border-radius: var(--radius-md);
5204
+ width: 100%;
5205
+ }
5206
+
5207
+ /* Last line in multi-line text is shorter */
5208
+ .muka-skeleton--last-line {
5209
+ width: 80%;
5210
+ }
5211
+
5212
+ /* Lines container */
5213
+ .muka-skeleton__lines {
5214
+ display: flex;
5215
+ flex-direction: column;
5216
+ gap: var(--spacing-2);
5217
+ }
5218
+
5219
+ /* Shimmer animation */
5220
+ @keyframes muka-skeleton-shimmer {
5221
+ 0% {
5222
+ background-position: -200% 0;
5223
+ }
5224
+ 100% {
5225
+ background-position: 200% 0;
5226
+ }
5227
+ }
5228
+
5229
+ .muka-skeleton--shimmer {
5230
+ background: linear-gradient(
5231
+ 90deg,
5232
+ var(--color-surface-level1) 25%,
5233
+ var(--color-surface-level2) 50%,
5234
+ var(--color-surface-level1) 75%
5235
+ );
5236
+ background-size: 200% 100%;
5237
+ animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
5238
5238
  }
5239
5239
 
5240
5240
  /* Pulse animation */
@@ -7537,37 +7537,6 @@ body {
7537
7537
  }
7538
7538
 
7539
7539
 
7540
- /* Popover */
7541
- /* Popover Component Styles */
7542
-
7543
- .muka-popover__content {
7544
- background-color: var(--color-surface-level3);
7545
- border: var(--border-width-regular) solid var(--color-border-default);
7546
- border-radius: var(--radius-md);
7547
- padding: var(--spacing-4);
7548
- box-shadow: var(--shadow-level3);
7549
- max-width: 20rem;
7550
- z-index: 50;
7551
- animation: muka-popover-fade-in 150ms ease;
7552
- }
7553
-
7554
- @keyframes muka-popover-fade-in {
7555
- from {
7556
- opacity: 0;
7557
- transform: scale(0.96);
7558
- }
7559
- to {
7560
- opacity: 1;
7561
- transform: scale(1);
7562
- }
7563
- }
7564
-
7565
- /* Arrow */
7566
- .muka-popover__arrow {
7567
- fill: var(--color-surface-level3);
7568
- }
7569
-
7570
-
7571
7540
  /* PriceTag */
7572
7541
  /* PriceTag Component Styles - Using Muka Design Tokens */
7573
7542
 
@@ -7665,6 +7634,37 @@ body {
7665
7634
  }
7666
7635
 
7667
7636
 
7637
+ /* Popover */
7638
+ /* Popover Component Styles */
7639
+
7640
+ .muka-popover__content {
7641
+ background-color: var(--color-surface-level3);
7642
+ border: var(--border-width-regular) solid var(--color-border-default);
7643
+ border-radius: var(--radius-md);
7644
+ padding: var(--spacing-4);
7645
+ box-shadow: var(--shadow-level3);
7646
+ max-width: 20rem;
7647
+ z-index: 50;
7648
+ animation: muka-popover-fade-in 150ms ease;
7649
+ }
7650
+
7651
+ @keyframes muka-popover-fade-in {
7652
+ from {
7653
+ opacity: 0;
7654
+ transform: scale(0.96);
7655
+ }
7656
+ to {
7657
+ opacity: 1;
7658
+ transform: scale(1);
7659
+ }
7660
+ }
7661
+
7662
+ /* Arrow */
7663
+ .muka-popover__arrow {
7664
+ fill: var(--color-surface-level3);
7665
+ }
7666
+
7667
+
7668
7668
  /* PieChart */
7669
7669
  /* PieChart Component Styles - Using Muka Design Tokens */
7670
7670
 
@@ -8080,716 +8080,329 @@ body {
8080
8080
  .muka-nav-transition__view--top { z-index: 2; }
8081
8081
 
8082
8082
 
8083
- /* ListItem */
8084
- /* ListItem Component Styles - Using Muka Design Tokens */
8083
+ /* Menu */
8084
+ /* Menu Component Styles */
8085
8085
 
8086
- /* Base list item styles */
8087
- .muka-listitem {
8088
- /* Layout */
8086
+ /* ─── Content Container ──────────────────────────────────────────────────── */
8087
+
8088
+ .muka-menu__content {
8089
8089
  display: flex;
8090
- align-items: flex-start;
8091
- gap: var(--spacing-4);
8092
- padding: var(--spacing-5) var(--spacing-4);
8093
-
8094
- /* Background - using semantic tokens */
8095
- background-color: var(--color-surface-level3);
8096
-
8097
- /* Typography */
8098
- font-family: var(--alias-font-brand-family);
8099
-
8100
- /* Border and spacing */
8101
- border: none;
8102
- position: relative;
8103
-
8104
- /* Interaction - only apply if interactive */
8105
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
8090
+ flex-direction: column;
8091
+ min-width: var(--menu-content-min-width);
8092
+ max-height: var(--menu-content-max-height);
8093
+ overflow: hidden;
8094
+ background-color: var(--menu-content-color-background);
8095
+ border: var(--menu-content-border-width) solid var(--menu-content-color-border);
8096
+ border-radius: var(--menu-content-border-radius);
8097
+ box-shadow: var(--menu-content-shadow);
8098
+ padding: 0;
8099
+ z-index: 50;
8100
+
8101
+ /* Animation */
8102
+ animation-duration: 150ms;
8103
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
8106
8104
  }
8107
8105
 
8108
- /* Interactive state */
8109
- .muka-listitem--interactive {
8110
- cursor: pointer;
8106
+ .muka-menu__body {
8107
+ display: flex;
8108
+ flex: 1 1 auto;
8109
+ min-height: 0;
8110
+ align-items: stretch;
8111
+ width: 100%;
8111
8112
  }
8112
8113
 
8113
- /*
8114
- * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
8115
- * are layered on top of the item's base surface via an inset box-shadow overlay
8116
- * rather than replacing background-color. This preserves the base level (level3,
8117
- * or level2 when selected) and lets the tint read correctly on any surface.
8118
- */
8119
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
8120
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
8114
+ .muka-menu__viewport {
8115
+ flex: 1 1 auto;
8116
+ min-width: 0;
8117
+ min-height: 0;
8118
+ overflow-y: auto;
8119
+ padding: var(--menu-content-padding);
8121
8120
  }
8122
8121
 
8123
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
8124
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
8125
- box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
8126
- }
8127
-
8128
- /* Focus styles for accessibility */
8129
- .muka-listitem:focus-visible {
8130
- outline: 2px solid var(--color-border-focus);
8131
- outline-offset: -2px;
8132
- }
8133
-
8134
- /* Disabled state */
8135
- .muka-listitem--disabled {
8136
- opacity: 0.5;
8137
- cursor: not-allowed;
8138
- pointer-events: none;
8139
- }
8140
-
8141
- .muka-listitem--disabled:hover {
8142
- background-color: var(--color-surface-level3);
8122
+ .muka-menu__content--scrollbar .muka-menu__viewport {
8123
+ /* Custom scrollbar owns the chrome; hide native track */
8124
+ scrollbar-width: none;
8143
8125
  }
8144
8126
 
8145
- /* Selected state */
8146
- .muka-listitem--selected {
8147
- background-color: var(--color-surface-level2);
8127
+ .muka-menu__content--scrollbar .muka-menu__viewport::-webkit-scrollbar {
8128
+ display: none;
8148
8129
  }
8149
8130
 
8150
- .muka-listitem--selected:hover {
8151
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
8152
- }
8131
+ /* ─── Search header ──────────────────────────────────────────────────────── */
8153
8132
 
8154
- /* No divider modifier */
8155
- .muka-listitem--no-divider .muka-listitem__divider {
8156
- display: none;
8133
+ .muka-menu__search {
8134
+ display: flex;
8135
+ align-items: center;
8136
+ flex-shrink: 0;
8137
+ /* Figma dropdown filter header: 48px, 8px inset, 32px icon slots. */
8138
+ height: var(--input-field-height-lg, 3rem);
8139
+ padding: 0 var(--spacing-2);
8140
+ border-bottom: var(--border-width-regular) solid var(--color-border-default);
8157
8141
  }
8158
8142
 
8159
- /* Center content vertically when no caption */
8160
- .muka-listitem--no-caption {
8161
- align-items: center;
8143
+ .muka-menu__search--sm {
8144
+ height: calc(var(--size-xl, 1.5rem) + var(--spacing-2) * 2);
8162
8145
  }
8163
8146
 
8164
- /* Leading content (icon or image) */
8165
- .muka-listitem__leading {
8147
+ .muka-menu__search-icon,
8148
+ .muka-menu__search-clear {
8166
8149
  display: flex;
8167
8150
  align-items: center;
8168
8151
  justify-content: center;
8169
8152
  flex-shrink: 0;
8170
- width: 48px;
8171
- height: 48px;
8153
+ width: var(--size-2xl, 2rem);
8154
+ height: var(--size-2xl, 2rem);
8155
+ color: var(--color-text-subtle-default);
8172
8156
  }
8173
8157
 
8174
- .muka-listitem__icon {
8175
- display: inline-flex;
8176
- align-items: center;
8177
- justify-content: center;
8178
- width: 32px;
8179
- height: 32px;
8180
- color: var(--color-text-default-default);
8158
+ .muka-menu__search-icon .muka-icon,
8159
+ .muka-menu__search-clear .muka-icon,
8160
+ .muka-menu__search-clear:hover,
8161
+ .muka-menu__search-clear:hover .muka-icon {
8162
+ color: var(--color-text-subtle-default);
8181
8163
  }
8182
8164
 
8183
- .muka-listitem__image {
8184
- width: 48px;
8185
- height: 48px;
8186
- border-radius: var(--radius-md);
8187
- object-fit: cover;
8165
+ .muka-menu__search--sm .muka-menu__search-icon,
8166
+ .muka-menu__search--sm .muka-menu__search-clear {
8167
+ width: var(--size-xl, 1.5rem);
8168
+ height: var(--size-xl, 1.5rem);
8188
8169
  }
8189
8170
 
8190
- /* Main content area */
8191
- .muka-listitem__content {
8192
- flex: 1;
8193
- display: flex;
8194
- align-items: center;
8195
- gap: var(--spacing-4);
8171
+ .muka-menu__search-input {
8172
+ flex: 1 1 auto;
8196
8173
  min-width: 0;
8174
+ border: none;
8175
+ outline: none;
8176
+ background: transparent;
8177
+ padding: 0 var(--spacing-1);
8178
+ font-family: var(--text-input-md-fontFamily);
8179
+ font-size: var(--text-input-md-fontSize);
8180
+ font-weight: var(--text-input-md-fontWeight);
8181
+ line-height: var(--text-input-md-lineHeight);
8182
+ color: var(--color-text-default-default);
8197
8183
  }
8198
8184
 
8199
- .muka-listitem__text {
8200
- flex: 1;
8201
- display: flex;
8202
- flex-direction: column;
8203
- gap: var(--spacing-1);
8204
- min-width: 0;
8185
+ .muka-menu__search--sm .muka-menu__search-input {
8186
+ font-family: var(--text-input-sm-fontFamily);
8187
+ font-size: var(--text-input-sm-fontSize);
8188
+ font-weight: var(--text-input-sm-fontWeight);
8189
+ line-height: var(--text-input-sm-lineHeight);
8205
8190
  }
8206
8191
 
8207
- /* Label text */
8208
- .muka-listitem__label {
8209
- margin: 0;
8210
- padding: 0;
8211
-
8212
- /* Typography - using semantic tokens */
8213
- font-family: var(--alias-font-plain-family);
8214
- font-weight: var(--alias-font-plain-weight-semibold, 600);
8215
- font-size: var(--text-label-md-fontSize);
8216
- line-height: var(--text-label-md-lineHeight);
8217
- color: var(--color-text-default-default);
8218
-
8219
- /* Text handling */
8220
- overflow: hidden;
8221
- text-overflow: ellipsis;
8222
- white-space: nowrap;
8192
+ .muka-menu__search-input::placeholder {
8193
+ color: var(--color-text-subtle-default);
8223
8194
  }
8224
8195
 
8225
- /* Caption text */
8226
- .muka-listitem__caption {
8227
- margin: 0;
8228
- padding: 0;
8229
-
8230
- /* Typography - using semantic tokens */
8231
- font-family: var(--alias-font-plain-family);
8232
- font-weight: var(--alias-font-plain-weight-regular, 400);
8233
- font-size: var(--text-body-sm-fontSize);
8234
- line-height: var(--text-body-sm-lineHeight);
8235
- color: var(--color-text-subtle-default);
8236
-
8237
- /* Text handling */
8238
- overflow: hidden;
8239
- text-overflow: ellipsis;
8240
- white-space: nowrap;
8196
+ .muka-menu__search-input::-webkit-search-cancel-button,
8197
+ .muka-menu__search-input::-webkit-search-decoration {
8198
+ -webkit-appearance: none;
8199
+ appearance: none;
8241
8200
  }
8242
8201
 
8243
- /* Trailing chevron */
8244
- .muka-listitem__chevron {
8245
- display: inline-flex;
8202
+ .muka-menu__empty {
8203
+ display: flex;
8246
8204
  align-items: center;
8247
- justify-content: center;
8248
- flex-shrink: 0;
8249
- width: 24px;
8250
- height: 24px;
8205
+ min-height: var(--menu-item-height);
8206
+ padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
8251
8207
  color: var(--color-text-subtle-default);
8208
+ font-family: var(--text-input-md-fontFamily);
8209
+ font-size: var(--text-input-md-fontSize);
8210
+ font-weight: var(--text-input-md-fontWeight);
8211
+ line-height: var(--text-input-md-lineHeight);
8212
+ pointer-events: none;
8213
+ user-select: none;
8252
8214
  }
8253
8215
 
8254
- /* Bottom divider */
8255
- .muka-listitem__divider {
8256
- position: absolute;
8257
- bottom: 0;
8258
- left: 0;
8259
- right: 0;
8260
- height: 1px;
8261
- background-color: var(--color-border-default);
8216
+ .muka-menu__search-clear {
8217
+ padding: 0;
8218
+ border: none;
8219
+ background: transparent;
8220
+ cursor: pointer;
8262
8221
  }
8263
8222
 
8264
- /* Button and anchor specific styles */
8265
- button.muka-listitem,
8266
- a.muka-listitem {
8267
- text-align: left;
8268
- width: 100%;
8223
+ .muka-menu__match {
8224
+ font-weight: var(--text-label-md-bold-fontWeight);
8269
8225
  }
8270
8226
 
8271
- /* List item specific styles */
8272
- li.muka-listitem {
8273
- list-style: none;
8227
+ .muka-menu__content--scrollbar {
8228
+ height: var(--menu-content-scroll-height, 20.625rem);
8229
+ max-height: var(--menu-content-scroll-height, 20.625rem);
8274
8230
  }
8275
8231
 
8276
-
8277
- /* LicensePlateInput */
8278
- /* LicensePlateInput — Dutch RDW-style plate input
8279
- *
8280
- * Plate body colors are regulatory (EU/NL) and intentionally fixed:
8281
- * - Plate yellow: #F0CE3D
8282
- * - EU strip blue: #003399
8283
- * - EU stars yellow: #FFCC00
8284
- * - Plate text: #1A1A1A
8285
- *
8286
- * All surrounding UI (label, helper, focus ring, error border) uses Muka tokens.
8287
- */
8288
-
8289
- .muka-license-plate-input {
8290
- --plate-yellow: #f0ce3d;
8291
- --plate-blue: #003399;
8292
- --plate-text: #1a1a1a;
8293
- --plate-stars: #ffcc00;
8294
-
8295
- display: inline-flex;
8296
- flex-direction: column;
8297
- gap: var(--spacing-2);
8232
+ .muka-menu__content[data-state='open'] {
8233
+ animation-name: muka-menu-fade-in;
8298
8234
  }
8299
8235
 
8300
- /* Plate body */
8301
- .muka-license-plate-input__plate {
8302
- display: inline-flex;
8303
- align-items: stretch;
8304
- background-color: var(--plate-yellow);
8305
- border-radius: var(--input-field-radius-md);
8306
- cursor: text;
8307
- position: relative;
8308
- overflow: hidden;
8309
- box-sizing: border-box;
8310
- /* Subtle outline to lift the plate from light backgrounds */
8311
- box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
8312
- /* Reserve space for the focus / error solid ring without shifting layout */
8313
- outline: 3px solid transparent;
8314
- outline-offset: 2px;
8315
- transition: outline-color 0.15s ease, opacity 0.15s ease;
8236
+ .muka-menu__content[data-state='closed'] {
8237
+ animation-name: muka-menu-fade-out;
8316
8238
  }
8317
8239
 
8318
- /* Size variants — plate aspect echoes the real RDW plate (~5:1) */
8319
- .muka-license-plate-input__plate--sm {
8320
- height: 44px;
8321
- min-width: 220px;
8322
- border-radius: var(--input-field-radius-sm);
8240
+ .muka-menu__content[data-side='top'] {
8241
+ animation-name: muka-menu-slide-down;
8323
8242
  }
8324
8243
 
8325
- .muka-license-plate-input__plate--md {
8326
- height: 60px;
8327
- min-width: 300px;
8328
- border-radius: var(--input-field-radius-md);
8244
+ .muka-menu__content[data-side='bottom'] {
8245
+ animation-name: muka-menu-slide-up;
8329
8246
  }
8330
8247
 
8331
- .muka-license-plate-input__plate--lg {
8332
- height: 80px;
8333
- min-width: 400px;
8334
- border-radius: var(--input-field-radius-lg);
8248
+ .muka-menu__content[data-side='left'] {
8249
+ animation-name: muka-menu-slide-right;
8335
8250
  }
8336
8251
 
8337
- /* Focus — solid outline ring */
8338
- .muka-license-plate-input__plate--focused:not(.muka-license-plate-input__plate--disabled) {
8339
- outline-color: var(--input-field-color-focus-border);
8252
+ .muka-menu__content[data-side='right'] {
8253
+ animation-name: muka-menu-slide-left;
8340
8254
  }
8341
8255
 
8342
- /* Error — solid outline ring in error color */
8343
- .muka-license-plate-input__plate--error:not(.muka-license-plate-input__plate--disabled) {
8344
- outline-color: var(--input-field-color-error-border);
8345
- }
8346
-
8347
- /* Disabled */
8348
- .muka-license-plate-input__plate--disabled {
8349
- cursor: not-allowed;
8350
- opacity: 0.55;
8351
- }
8256
+ /* ─── Menu Item ──────────────────────────────────────────────────────────── */
8352
8257
 
8353
- /* EU strip */
8354
- .muka-license-plate-input__eu-strip {
8355
- display: inline-flex;
8356
- flex-direction: column;
8258
+ .muka-menu__item {
8259
+ position: relative;
8260
+ display: flex;
8357
8261
  align-items: center;
8358
- justify-content: center;
8359
- background-color: var(--plate-blue);
8360
- color: #ffffff;
8361
- flex-shrink: 0;
8362
- padding: 0 0.4em;
8363
- gap: 0.15em;
8364
- /* Strip width scales with plate height for a consistent ratio */
8365
- width: 14%;
8366
- min-width: 36px;
8262
+ gap: var(--menu-item-gap);
8263
+ min-height: var(--menu-item-height);
8264
+ /* Right gutter always reserved for floating trailers (enter / check). */
8265
+ padding: var(--menu-item-padding-y) var(--menu-item-padding-right) var(--menu-item-padding-y)
8266
+ var(--menu-item-padding-x);
8267
+ border-radius: var(--menu-item-border-radius);
8268
+ cursor: pointer;
8269
+ user-select: none;
8270
+ outline: none;
8271
+ font-family: var(--text-label-md-regular-fontFamily);
8272
+ font-size: var(--text-label-md-regular-fontSize);
8273
+ font-weight: var(--text-label-md-regular-fontWeight);
8274
+ line-height: var(--text-label-md-regular-lineHeight);
8275
+ color: var(--menu-item-color-default-foreground);
8276
+ background-color: var(--menu-item-color-default-background);
8277
+ transition: background-color 100ms ease, color 100ms ease;
8278
+ white-space: nowrap;
8367
8279
  }
8368
8280
 
8369
- .muka-license-plate-input__eu-stars {
8370
- width: 60%;
8371
- max-width: 28px;
8372
- aspect-ratio: 1 / 1;
8373
- display: block;
8281
+ .muka-menu__item:hover,
8282
+ .muka-menu__item[data-highlighted] {
8283
+ background-color: var(--menu-item-color-hover-background);
8284
+ color: var(--menu-item-color-hover-foreground);
8374
8285
  }
8375
8286
 
8376
- .muka-license-plate-input__plate--sm .muka-license-plate-input__eu-stars {
8377
- max-width: 20px;
8287
+ .muka-menu__item:focus,
8288
+ .muka-menu__item[data-highlighted]:focus {
8289
+ background-color: var(--menu-item-color-focus-background);
8290
+ color: var(--menu-item-color-focus-foreground);
8378
8291
  }
8379
8292
 
8380
- .muka-license-plate-input__plate--lg .muka-license-plate-input__eu-stars {
8381
- max-width: 36px;
8293
+ /* Disabled */
8294
+ .muka-menu__item--disabled,
8295
+ .muka-menu__item[data-disabled] {
8296
+ color: var(--menu-item-color-disabled-foreground);
8297
+ background-color: var(--menu-item-color-disabled-background);
8298
+ cursor: not-allowed;
8299
+ pointer-events: none;
8382
8300
  }
8383
8301
 
8384
- .muka-license-plate-input__country-code {
8385
- font-family:
8386
- 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
8387
- font-weight: 700;
8388
- letter-spacing: 0.04em;
8389
- line-height: 1;
8390
- color: #ffffff;
8302
+ .muka-menu__item--disabled .muka-menu__item-icon,
8303
+ .muka-menu__item[data-disabled] .muka-menu__item-icon {
8304
+ color: var(--menu-item-color-disabled-icon);
8391
8305
  }
8392
8306
 
8393
- .muka-license-plate-input__plate--sm .muka-license-plate-input__country-code {
8394
- font-size: 10px;
8307
+ /* Destructive */
8308
+ .muka-menu__item--destructive {
8309
+ color: var(--menu-item-color-destructive-default-foreground);
8395
8310
  }
8396
8311
 
8397
- .muka-license-plate-input__plate--md .muka-license-plate-input__country-code {
8398
- font-size: 13px;
8312
+ .muka-menu__item--destructive .muka-menu__item-icon {
8313
+ color: var(--menu-item-color-destructive-default-icon);
8399
8314
  }
8400
8315
 
8401
- .muka-license-plate-input__plate--lg .muka-license-plate-input__country-code {
8402
- font-size: 16px;
8316
+ .muka-menu__item--destructive:hover,
8317
+ .muka-menu__item--destructive[data-highlighted] {
8318
+ background-color: var(--menu-item-color-destructive-hover-background);
8319
+ color: var(--menu-item-color-destructive-hover-foreground);
8403
8320
  }
8404
8321
 
8405
- /* Native input */
8406
- .muka-license-plate-input__native {
8407
- flex: 1;
8408
- min-width: 0;
8409
- border: none;
8410
- outline: none;
8411
- background: transparent;
8412
- color: var(--plate-text);
8413
- text-align: center;
8414
- text-transform: uppercase;
8415
- letter-spacing: 0.06em;
8416
- /* Plate font — bold condensed sans is closest to the FE-Schrift look without
8417
- shipping a custom font. JetBrains Mono is the system mono brand font. */
8418
- font-family:
8419
- 'Arial Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
8420
- font-weight: 800;
8421
- padding: 0 0.5em;
8422
- width: 100%;
8423
- caret-color: var(--plate-text);
8322
+ .muka-menu__item--destructive:hover .muka-menu__item-icon,
8323
+ .muka-menu__item--destructive[data-highlighted] .muka-menu__item-icon {
8324
+ color: var(--menu-item-color-destructive-hover-icon);
8424
8325
  }
8425
8326
 
8426
- .muka-license-plate-input__plate--sm .muka-license-plate-input__native {
8427
- font-size: 22px;
8428
- }
8327
+ /* ─── Item Parts ─────────────────────────────────────────────────────────── */
8429
8328
 
8430
- .muka-license-plate-input__plate--md .muka-license-plate-input__native {
8431
- font-size: 30px;
8329
+ .muka-menu__item-icon {
8330
+ display: flex;
8331
+ align-items: center;
8332
+ justify-content: center;
8333
+ flex-shrink: 0;
8334
+ color: var(--menu-item-color-default-icon);
8335
+ transition: color 100ms ease;
8432
8336
  }
8433
8337
 
8434
- .muka-license-plate-input__plate--lg .muka-license-plate-input__native {
8435
- font-size: 42px;
8338
+ .muka-menu__item:hover .muka-menu__item-icon,
8339
+ .muka-menu__item[data-highlighted] .muka-menu__item-icon {
8340
+ color: var(--menu-item-color-hover-icon);
8436
8341
  }
8437
8342
 
8438
- .muka-license-plate-input__native::placeholder {
8439
- color: var(--plate-text);
8440
- opacity: 0.55;
8441
- font-weight: 700;
8442
- letter-spacing: 0.08em;
8343
+ .muka-menu__item-label {
8344
+ flex: 1 1 auto;
8345
+ min-width: 0;
8346
+ white-space: nowrap;
8443
8347
  }
8444
8348
 
8445
- .muka-license-plate-input__plate--disabled .muka-license-plate-input__native {
8446
- cursor: not-allowed;
8349
+ /* Shortcut trailers replace icons and sit with an 8px right inset. */
8350
+ .muka-menu__item--has-shortcut {
8351
+ padding-right: var(--spacing-2);
8447
8352
  }
8448
8353
 
8449
- /* Helper text */
8450
- .muka-license-plate-input__helper {
8354
+ .muka-menu__item-shortcut {
8355
+ flex-shrink: 0;
8356
+ margin-left: auto;
8357
+ padding-left: var(--menu-item-gap);
8451
8358
  font-family: var(--text-label-sm-regular-fontFamily);
8452
- font-weight: var(--text-label-sm-regular-fontWeight);
8453
8359
  font-size: var(--text-label-sm-regular-fontSize);
8454
- line-height: var(--text-label-sm-regular-lineHeight);
8455
- color: var(--color-text-subtle-default);
8456
- margin: 0;
8457
- }
8458
-
8459
- /* Error message */
8460
- .muka-license-plate-input__error {
8461
- font-family: var(--text-label-sm-regular-fontFamily);
8462
8360
  font-weight: var(--text-label-sm-regular-fontWeight);
8463
- font-size: var(--text-label-sm-regular-fontSize);
8464
8361
  line-height: var(--text-label-sm-regular-lineHeight);
8465
- color: var(--color-state-error-default);
8466
- margin: 0;
8362
+ color: var(--color-text-muted-default);
8363
+ white-space: nowrap;
8467
8364
  }
8468
8365
 
8469
-
8470
- /* Menu */
8471
- /* Menu Component Styles */
8472
-
8473
- /* ─── Content Container ──────────────────────────────────────────────────── */
8474
-
8475
- .muka-menu__content {
8476
- display: flex;
8477
- flex-direction: column;
8478
- min-width: var(--menu-content-min-width);
8479
- max-height: var(--menu-content-max-height);
8480
- overflow: hidden;
8481
- background-color: var(--menu-content-color-background);
8482
- border: var(--menu-content-border-width) solid var(--menu-content-color-border);
8483
- border-radius: var(--menu-content-border-radius);
8484
- box-shadow: var(--menu-content-shadow);
8485
- padding: 0;
8486
- z-index: 50;
8487
-
8488
- /* Animation */
8489
- animation-duration: 150ms;
8490
- animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
8366
+ .muka-menu__item-hint {
8367
+ /* Figma: trailer sits with 8px margin top / right / bottom; 24px glyph centered inside. */
8368
+ position: absolute;
8369
+ top: var(--spacing-2);
8370
+ right: var(--spacing-2);
8371
+ bottom: var(--spacing-2);
8372
+ display: none;
8373
+ align-items: center;
8374
+ justify-content: center;
8375
+ width: var(--icon-size-default, 1.5rem);
8376
+ color: var(--color-text-muted-default);
8377
+ pointer-events: none;
8491
8378
  }
8492
8379
 
8493
- .muka-menu__body {
8380
+ .muka-menu__item--hint-enter[data-highlighted] .muka-menu__item-hint {
8494
8381
  display: flex;
8495
- flex: 1 1 auto;
8496
- min-height: 0;
8497
- align-items: stretch;
8498
- width: 100%;
8499
- }
8500
-
8501
- .muka-menu__viewport {
8502
- flex: 1 1 auto;
8503
- min-width: 0;
8504
- min-height: 0;
8505
- overflow-y: auto;
8506
- padding: var(--menu-content-padding);
8507
- }
8508
-
8509
- .muka-menu__content--scrollbar .muka-menu__viewport {
8510
- /* Custom scrollbar owns the chrome; hide native track */
8511
- scrollbar-width: none;
8512
8382
  }
8513
8383
 
8514
- .muka-menu__content--scrollbar .muka-menu__viewport::-webkit-scrollbar {
8515
- display: none;
8516
- }
8517
-
8518
- /* ─── Search header ──────────────────────────────────────────────────────── */
8519
-
8520
- .muka-menu__search {
8384
+ .muka-menu__item-chevron {
8385
+ position: absolute;
8386
+ top: var(--spacing-2);
8387
+ right: var(--spacing-2);
8388
+ bottom: var(--spacing-2);
8521
8389
  display: flex;
8522
8390
  align-items: center;
8523
- flex-shrink: 0;
8524
- /* Figma dropdown filter header: 48px, 8px inset, 32px icon slots. */
8525
- height: var(--input-field-height-lg, 3rem);
8526
- padding: 0 var(--spacing-2);
8527
- border-bottom: var(--border-width-regular) solid var(--color-border-default);
8391
+ justify-content: center;
8392
+ width: var(--icon-size-default, 1.5rem);
8393
+ color: var(--menu-shortcut-color);
8528
8394
  }
8529
8395
 
8530
- .muka-menu__search--sm {
8531
- height: calc(var(--size-xl, 1.5rem) + var(--spacing-2) * 2);
8532
- }
8396
+ /* ─── Indicator (Checkbox/Radio) ─────────────────────────────────────────── */
8533
8397
 
8534
- .muka-menu__search-icon,
8535
- .muka-menu__search-clear {
8398
+ .muka-menu__item-indicator {
8536
8399
  display: flex;
8537
8400
  align-items: center;
8538
8401
  justify-content: center;
8402
+ width: var(--menu-checkbox-indicator-size);
8403
+ height: var(--menu-checkbox-indicator-size);
8539
8404
  flex-shrink: 0;
8540
- width: var(--size-2xl, 2rem);
8541
- height: var(--size-2xl, 2rem);
8542
- color: var(--color-text-subtle-default);
8543
- }
8544
-
8545
- .muka-menu__search-icon .muka-icon,
8546
- .muka-menu__search-clear .muka-icon,
8547
- .muka-menu__search-clear:hover,
8548
- .muka-menu__search-clear:hover .muka-icon {
8549
- color: var(--color-text-subtle-default);
8550
- }
8551
-
8552
- .muka-menu__search--sm .muka-menu__search-icon,
8553
- .muka-menu__search--sm .muka-menu__search-clear {
8554
- width: var(--size-xl, 1.5rem);
8555
- height: var(--size-xl, 1.5rem);
8556
- }
8557
-
8558
- .muka-menu__search-input {
8559
- flex: 1 1 auto;
8560
- min-width: 0;
8561
- border: none;
8562
- outline: none;
8563
- background: transparent;
8564
- padding: 0 var(--spacing-1);
8565
- font-family: var(--text-input-md-fontFamily);
8566
- font-size: var(--text-input-md-fontSize);
8567
- font-weight: var(--text-input-md-fontWeight);
8568
- line-height: var(--text-input-md-lineHeight);
8569
- color: var(--color-text-default-default);
8570
- }
8571
-
8572
- .muka-menu__search--sm .muka-menu__search-input {
8573
- font-family: var(--text-input-sm-fontFamily);
8574
- font-size: var(--text-input-sm-fontSize);
8575
- font-weight: var(--text-input-sm-fontWeight);
8576
- line-height: var(--text-input-sm-lineHeight);
8577
- }
8578
-
8579
- .muka-menu__search-input::placeholder {
8580
- color: var(--color-text-subtle-default);
8581
- }
8582
-
8583
- .muka-menu__search-input::-webkit-search-cancel-button,
8584
- .muka-menu__search-input::-webkit-search-decoration {
8585
- -webkit-appearance: none;
8586
- appearance: none;
8587
- }
8588
-
8589
- .muka-menu__empty {
8590
- display: flex;
8591
- align-items: center;
8592
- min-height: var(--menu-item-height);
8593
- padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
8594
- color: var(--color-text-subtle-default);
8595
- font-family: var(--text-input-md-fontFamily);
8596
- font-size: var(--text-input-md-fontSize);
8597
- font-weight: var(--text-input-md-fontWeight);
8598
- line-height: var(--text-input-md-lineHeight);
8599
- pointer-events: none;
8600
- user-select: none;
8601
- }
8602
-
8603
- .muka-menu__search-clear {
8604
- padding: 0;
8605
- border: none;
8606
- background: transparent;
8607
- cursor: pointer;
8608
- }
8609
-
8610
- .muka-menu__match {
8611
- font-weight: var(--text-label-md-bold-fontWeight);
8612
- }
8613
-
8614
- .muka-menu__content--scrollbar {
8615
- height: var(--menu-content-scroll-height, 20.625rem);
8616
- max-height: var(--menu-content-scroll-height, 20.625rem);
8617
- }
8618
-
8619
- .muka-menu__content[data-state='open'] {
8620
- animation-name: muka-menu-fade-in;
8621
- }
8622
-
8623
- .muka-menu__content[data-state='closed'] {
8624
- animation-name: muka-menu-fade-out;
8625
- }
8626
-
8627
- .muka-menu__content[data-side='top'] {
8628
- animation-name: muka-menu-slide-down;
8629
- }
8630
-
8631
- .muka-menu__content[data-side='bottom'] {
8632
- animation-name: muka-menu-slide-up;
8633
- }
8634
-
8635
- .muka-menu__content[data-side='left'] {
8636
- animation-name: muka-menu-slide-right;
8637
- }
8638
-
8639
- .muka-menu__content[data-side='right'] {
8640
- animation-name: muka-menu-slide-left;
8641
- }
8642
-
8643
- /* ─── Menu Item ──────────────────────────────────────────────────────────── */
8644
-
8645
- .muka-menu__item {
8646
- position: relative;
8647
- display: flex;
8648
- align-items: center;
8649
- gap: var(--menu-item-gap);
8650
- min-height: var(--menu-item-height);
8651
- /* Right gutter always reserved for floating trailers (enter / check). */
8652
- padding: var(--menu-item-padding-y) var(--menu-item-padding-right) var(--menu-item-padding-y)
8653
- var(--menu-item-padding-x);
8654
- border-radius: var(--menu-item-border-radius);
8655
- cursor: pointer;
8656
- user-select: none;
8657
- outline: none;
8658
- font-family: var(--text-label-md-regular-fontFamily);
8659
- font-size: var(--text-label-md-regular-fontSize);
8660
- font-weight: var(--text-label-md-regular-fontWeight);
8661
- line-height: var(--text-label-md-regular-lineHeight);
8662
- color: var(--menu-item-color-default-foreground);
8663
- background-color: var(--menu-item-color-default-background);
8664
- transition: background-color 100ms ease, color 100ms ease;
8665
- white-space: nowrap;
8666
- }
8667
-
8668
- .muka-menu__item:hover,
8669
- .muka-menu__item[data-highlighted] {
8670
- background-color: var(--menu-item-color-hover-background);
8671
- color: var(--menu-item-color-hover-foreground);
8672
- }
8673
-
8674
- .muka-menu__item:focus,
8675
- .muka-menu__item[data-highlighted]:focus {
8676
- background-color: var(--menu-item-color-focus-background);
8677
- color: var(--menu-item-color-focus-foreground);
8678
- }
8679
-
8680
- /* Disabled */
8681
- .muka-menu__item--disabled,
8682
- .muka-menu__item[data-disabled] {
8683
- color: var(--menu-item-color-disabled-foreground);
8684
- background-color: var(--menu-item-color-disabled-background);
8685
- cursor: not-allowed;
8686
- pointer-events: none;
8687
- }
8688
-
8689
- .muka-menu__item--disabled .muka-menu__item-icon,
8690
- .muka-menu__item[data-disabled] .muka-menu__item-icon {
8691
- color: var(--menu-item-color-disabled-icon);
8692
- }
8693
-
8694
- /* Destructive */
8695
- .muka-menu__item--destructive {
8696
- color: var(--menu-item-color-destructive-default-foreground);
8697
- }
8698
-
8699
- .muka-menu__item--destructive .muka-menu__item-icon {
8700
- color: var(--menu-item-color-destructive-default-icon);
8701
- }
8702
-
8703
- .muka-menu__item--destructive:hover,
8704
- .muka-menu__item--destructive[data-highlighted] {
8705
- background-color: var(--menu-item-color-destructive-hover-background);
8706
- color: var(--menu-item-color-destructive-hover-foreground);
8707
- }
8708
-
8709
- .muka-menu__item--destructive:hover .muka-menu__item-icon,
8710
- .muka-menu__item--destructive[data-highlighted] .muka-menu__item-icon {
8711
- color: var(--menu-item-color-destructive-hover-icon);
8712
- }
8713
-
8714
- /* ─── Item Parts ─────────────────────────────────────────────────────────── */
8715
-
8716
- .muka-menu__item-icon {
8717
- display: flex;
8718
- align-items: center;
8719
- justify-content: center;
8720
- flex-shrink: 0;
8721
- color: var(--menu-item-color-default-icon);
8722
- transition: color 100ms ease;
8723
- }
8724
-
8725
- .muka-menu__item:hover .muka-menu__item-icon,
8726
- .muka-menu__item[data-highlighted] .muka-menu__item-icon {
8727
- color: var(--menu-item-color-hover-icon);
8728
- }
8729
-
8730
- .muka-menu__item-label {
8731
- flex: 1 1 auto;
8732
- min-width: 0;
8733
- white-space: nowrap;
8734
- }
8735
-
8736
- /* Shortcut trailers replace icons and sit with an 8px right inset. */
8737
- .muka-menu__item--has-shortcut {
8738
- padding-right: var(--spacing-2);
8739
- }
8740
-
8741
- .muka-menu__item-shortcut {
8742
- flex-shrink: 0;
8743
- margin-left: auto;
8744
- padding-left: var(--menu-item-gap);
8745
- font-family: var(--text-label-sm-regular-fontFamily);
8746
- font-size: var(--text-label-sm-regular-fontSize);
8747
- font-weight: var(--text-label-sm-regular-fontWeight);
8748
- line-height: var(--text-label-sm-regular-lineHeight);
8749
- color: var(--color-text-muted-default);
8750
- white-space: nowrap;
8751
- }
8752
-
8753
- .muka-menu__item-hint {
8754
- /* Figma: trailer sits with 8px margin top / right / bottom; 24px glyph centered inside. */
8755
- position: absolute;
8756
- top: var(--spacing-2);
8757
- right: var(--spacing-2);
8758
- bottom: var(--spacing-2);
8759
- display: none;
8760
- align-items: center;
8761
- justify-content: center;
8762
- width: var(--icon-size-default, 1.5rem);
8763
- color: var(--color-text-muted-default);
8764
- pointer-events: none;
8765
- }
8766
-
8767
- .muka-menu__item--hint-enter[data-highlighted] .muka-menu__item-hint {
8768
- display: flex;
8769
- }
8770
-
8771
- .muka-menu__item-chevron {
8772
- position: absolute;
8773
- top: var(--spacing-2);
8774
- right: var(--spacing-2);
8775
- bottom: var(--spacing-2);
8776
- display: flex;
8777
- align-items: center;
8778
- justify-content: center;
8779
- width: var(--icon-size-default, 1.5rem);
8780
- color: var(--menu-shortcut-color);
8781
- }
8782
-
8783
- /* ─── Indicator (Checkbox/Radio) ─────────────────────────────────────────── */
8784
-
8785
- .muka-menu__item-indicator {
8786
- display: flex;
8787
- align-items: center;
8788
- justify-content: center;
8789
- width: var(--menu-checkbox-indicator-size);
8790
- height: var(--menu-checkbox-indicator-size);
8791
- flex-shrink: 0;
8792
- color: var(--menu-checkbox-indicator-color);
8405
+ color: var(--menu-checkbox-indicator-color);
8793
8406
  }
8794
8407
 
8795
8408
  .muka-menu__item--checkbox,
@@ -8946,6 +8559,393 @@ li.muka-listitem {
8946
8559
  }
8947
8560
 
8948
8561
 
8562
+ /* ListItem */
8563
+ /* ListItem Component Styles - Using Muka Design Tokens */
8564
+
8565
+ /* Base list item styles */
8566
+ .muka-listitem {
8567
+ /* Layout */
8568
+ display: flex;
8569
+ align-items: flex-start;
8570
+ gap: var(--spacing-4);
8571
+ padding: var(--spacing-5) var(--spacing-4);
8572
+
8573
+ /* Background - using semantic tokens */
8574
+ background-color: var(--color-surface-level3);
8575
+
8576
+ /* Typography */
8577
+ font-family: var(--alias-font-brand-family);
8578
+
8579
+ /* Border and spacing */
8580
+ border: none;
8581
+ position: relative;
8582
+
8583
+ /* Interaction - only apply if interactive */
8584
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
8585
+ }
8586
+
8587
+ /* Interactive state */
8588
+ .muka-listitem--interactive {
8589
+ cursor: pointer;
8590
+ }
8591
+
8592
+ /*
8593
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
8594
+ * are layered on top of the item's base surface via an inset box-shadow overlay
8595
+ * rather than replacing background-color. This preserves the base level (level3,
8596
+ * or level2 when selected) and lets the tint read correctly on any surface.
8597
+ */
8598
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
8599
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
8600
+ }
8601
+
8602
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
8603
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
8604
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
8605
+ }
8606
+
8607
+ /* Focus styles for accessibility */
8608
+ .muka-listitem:focus-visible {
8609
+ outline: 2px solid var(--color-border-focus);
8610
+ outline-offset: -2px;
8611
+ }
8612
+
8613
+ /* Disabled state */
8614
+ .muka-listitem--disabled {
8615
+ opacity: 0.5;
8616
+ cursor: not-allowed;
8617
+ pointer-events: none;
8618
+ }
8619
+
8620
+ .muka-listitem--disabled:hover {
8621
+ background-color: var(--color-surface-level3);
8622
+ }
8623
+
8624
+ /* Selected state */
8625
+ .muka-listitem--selected {
8626
+ background-color: var(--color-surface-level2);
8627
+ }
8628
+
8629
+ .muka-listitem--selected:hover {
8630
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
8631
+ }
8632
+
8633
+ /* No divider modifier */
8634
+ .muka-listitem--no-divider .muka-listitem__divider {
8635
+ display: none;
8636
+ }
8637
+
8638
+ /* Center content vertically when no caption */
8639
+ .muka-listitem--no-caption {
8640
+ align-items: center;
8641
+ }
8642
+
8643
+ /* Leading content (icon or image) */
8644
+ .muka-listitem__leading {
8645
+ display: flex;
8646
+ align-items: center;
8647
+ justify-content: center;
8648
+ flex-shrink: 0;
8649
+ width: 48px;
8650
+ height: 48px;
8651
+ }
8652
+
8653
+ .muka-listitem__icon {
8654
+ display: inline-flex;
8655
+ align-items: center;
8656
+ justify-content: center;
8657
+ width: 32px;
8658
+ height: 32px;
8659
+ color: var(--color-text-default-default);
8660
+ }
8661
+
8662
+ .muka-listitem__image {
8663
+ width: 48px;
8664
+ height: 48px;
8665
+ border-radius: var(--radius-md);
8666
+ object-fit: cover;
8667
+ }
8668
+
8669
+ /* Main content area */
8670
+ .muka-listitem__content {
8671
+ flex: 1;
8672
+ display: flex;
8673
+ align-items: center;
8674
+ gap: var(--spacing-4);
8675
+ min-width: 0;
8676
+ }
8677
+
8678
+ .muka-listitem__text {
8679
+ flex: 1;
8680
+ display: flex;
8681
+ flex-direction: column;
8682
+ gap: var(--spacing-1);
8683
+ min-width: 0;
8684
+ }
8685
+
8686
+ /* Label text */
8687
+ .muka-listitem__label {
8688
+ margin: 0;
8689
+ padding: 0;
8690
+
8691
+ /* Typography - using semantic tokens */
8692
+ font-family: var(--alias-font-plain-family);
8693
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
8694
+ font-size: var(--text-label-md-fontSize);
8695
+ line-height: var(--text-label-md-lineHeight);
8696
+ color: var(--color-text-default-default);
8697
+
8698
+ /* Text handling */
8699
+ overflow: hidden;
8700
+ text-overflow: ellipsis;
8701
+ white-space: nowrap;
8702
+ }
8703
+
8704
+ /* Caption text */
8705
+ .muka-listitem__caption {
8706
+ margin: 0;
8707
+ padding: 0;
8708
+
8709
+ /* Typography - using semantic tokens */
8710
+ font-family: var(--alias-font-plain-family);
8711
+ font-weight: var(--alias-font-plain-weight-regular, 400);
8712
+ font-size: var(--text-body-sm-fontSize);
8713
+ line-height: var(--text-body-sm-lineHeight);
8714
+ color: var(--color-text-subtle-default);
8715
+
8716
+ /* Text handling */
8717
+ overflow: hidden;
8718
+ text-overflow: ellipsis;
8719
+ white-space: nowrap;
8720
+ }
8721
+
8722
+ /* Trailing chevron */
8723
+ .muka-listitem__chevron {
8724
+ display: inline-flex;
8725
+ align-items: center;
8726
+ justify-content: center;
8727
+ flex-shrink: 0;
8728
+ width: 24px;
8729
+ height: 24px;
8730
+ color: var(--color-text-subtle-default);
8731
+ }
8732
+
8733
+ /* Bottom divider */
8734
+ .muka-listitem__divider {
8735
+ position: absolute;
8736
+ bottom: 0;
8737
+ left: 0;
8738
+ right: 0;
8739
+ height: 1px;
8740
+ background-color: var(--color-border-default);
8741
+ }
8742
+
8743
+ /* Button and anchor specific styles */
8744
+ button.muka-listitem,
8745
+ a.muka-listitem {
8746
+ text-align: left;
8747
+ width: 100%;
8748
+ }
8749
+
8750
+ /* List item specific styles */
8751
+ li.muka-listitem {
8752
+ list-style: none;
8753
+ }
8754
+
8755
+
8756
+ /* LicensePlateInput */
8757
+ /* LicensePlateInput — Dutch RDW-style plate input
8758
+ *
8759
+ * Plate body colors are regulatory (EU/NL) and intentionally fixed:
8760
+ * - Plate yellow: #F0CE3D
8761
+ * - EU strip blue: #003399
8762
+ * - EU stars yellow: #FFCC00
8763
+ * - Plate text: #1A1A1A
8764
+ *
8765
+ * All surrounding UI (label, helper, focus ring, error border) uses Muka tokens.
8766
+ */
8767
+
8768
+ .muka-license-plate-input {
8769
+ --plate-yellow: #f0ce3d;
8770
+ --plate-blue: #003399;
8771
+ --plate-text: #1a1a1a;
8772
+ --plate-stars: #ffcc00;
8773
+
8774
+ display: inline-flex;
8775
+ flex-direction: column;
8776
+ gap: var(--spacing-2);
8777
+ }
8778
+
8779
+ /* Plate body */
8780
+ .muka-license-plate-input__plate {
8781
+ display: inline-flex;
8782
+ align-items: stretch;
8783
+ background-color: var(--plate-yellow);
8784
+ border-radius: var(--input-field-radius-md);
8785
+ cursor: text;
8786
+ position: relative;
8787
+ overflow: hidden;
8788
+ box-sizing: border-box;
8789
+ /* Subtle outline to lift the plate from light backgrounds */
8790
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
8791
+ /* Reserve space for the focus / error solid ring without shifting layout */
8792
+ outline: 3px solid transparent;
8793
+ outline-offset: 2px;
8794
+ transition: outline-color 0.15s ease, opacity 0.15s ease;
8795
+ }
8796
+
8797
+ /* Size variants — plate aspect echoes the real RDW plate (~5:1) */
8798
+ .muka-license-plate-input__plate--sm {
8799
+ height: 44px;
8800
+ min-width: 220px;
8801
+ border-radius: var(--input-field-radius-sm);
8802
+ }
8803
+
8804
+ .muka-license-plate-input__plate--md {
8805
+ height: 60px;
8806
+ min-width: 300px;
8807
+ border-radius: var(--input-field-radius-md);
8808
+ }
8809
+
8810
+ .muka-license-plate-input__plate--lg {
8811
+ height: 80px;
8812
+ min-width: 400px;
8813
+ border-radius: var(--input-field-radius-lg);
8814
+ }
8815
+
8816
+ /* Focus — solid outline ring */
8817
+ .muka-license-plate-input__plate--focused:not(.muka-license-plate-input__plate--disabled) {
8818
+ outline-color: var(--input-field-color-focus-border);
8819
+ }
8820
+
8821
+ /* Error — solid outline ring in error color */
8822
+ .muka-license-plate-input__plate--error:not(.muka-license-plate-input__plate--disabled) {
8823
+ outline-color: var(--input-field-color-error-border);
8824
+ }
8825
+
8826
+ /* Disabled */
8827
+ .muka-license-plate-input__plate--disabled {
8828
+ cursor: not-allowed;
8829
+ opacity: 0.55;
8830
+ }
8831
+
8832
+ /* EU strip */
8833
+ .muka-license-plate-input__eu-strip {
8834
+ display: inline-flex;
8835
+ flex-direction: column;
8836
+ align-items: center;
8837
+ justify-content: center;
8838
+ background-color: var(--plate-blue);
8839
+ color: #ffffff;
8840
+ flex-shrink: 0;
8841
+ padding: 0 0.4em;
8842
+ gap: 0.15em;
8843
+ /* Strip width scales with plate height for a consistent ratio */
8844
+ width: 14%;
8845
+ min-width: 36px;
8846
+ }
8847
+
8848
+ .muka-license-plate-input__eu-stars {
8849
+ width: 60%;
8850
+ max-width: 28px;
8851
+ aspect-ratio: 1 / 1;
8852
+ display: block;
8853
+ }
8854
+
8855
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__eu-stars {
8856
+ max-width: 20px;
8857
+ }
8858
+
8859
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__eu-stars {
8860
+ max-width: 36px;
8861
+ }
8862
+
8863
+ .muka-license-plate-input__country-code {
8864
+ font-family:
8865
+ 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
8866
+ font-weight: 700;
8867
+ letter-spacing: 0.04em;
8868
+ line-height: 1;
8869
+ color: #ffffff;
8870
+ }
8871
+
8872
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__country-code {
8873
+ font-size: 10px;
8874
+ }
8875
+
8876
+ .muka-license-plate-input__plate--md .muka-license-plate-input__country-code {
8877
+ font-size: 13px;
8878
+ }
8879
+
8880
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__country-code {
8881
+ font-size: 16px;
8882
+ }
8883
+
8884
+ /* Native input */
8885
+ .muka-license-plate-input__native {
8886
+ flex: 1;
8887
+ min-width: 0;
8888
+ border: none;
8889
+ outline: none;
8890
+ background: transparent;
8891
+ color: var(--plate-text);
8892
+ text-align: center;
8893
+ text-transform: uppercase;
8894
+ letter-spacing: 0.06em;
8895
+ /* Plate font — bold condensed sans is closest to the FE-Schrift look without
8896
+ shipping a custom font. JetBrains Mono is the system mono brand font. */
8897
+ font-family:
8898
+ 'Arial Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
8899
+ font-weight: 800;
8900
+ padding: 0 0.5em;
8901
+ width: 100%;
8902
+ caret-color: var(--plate-text);
8903
+ }
8904
+
8905
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__native {
8906
+ font-size: 22px;
8907
+ }
8908
+
8909
+ .muka-license-plate-input__plate--md .muka-license-plate-input__native {
8910
+ font-size: 30px;
8911
+ }
8912
+
8913
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__native {
8914
+ font-size: 42px;
8915
+ }
8916
+
8917
+ .muka-license-plate-input__native::placeholder {
8918
+ color: var(--plate-text);
8919
+ opacity: 0.55;
8920
+ font-weight: 700;
8921
+ letter-spacing: 0.08em;
8922
+ }
8923
+
8924
+ .muka-license-plate-input__plate--disabled .muka-license-plate-input__native {
8925
+ cursor: not-allowed;
8926
+ }
8927
+
8928
+ /* Helper text */
8929
+ .muka-license-plate-input__helper {
8930
+ font-family: var(--text-label-sm-regular-fontFamily);
8931
+ font-weight: var(--text-label-sm-regular-fontWeight);
8932
+ font-size: var(--text-label-sm-regular-fontSize);
8933
+ line-height: var(--text-label-sm-regular-lineHeight);
8934
+ color: var(--color-text-subtle-default);
8935
+ margin: 0;
8936
+ }
8937
+
8938
+ /* Error message */
8939
+ .muka-license-plate-input__error {
8940
+ font-family: var(--text-label-sm-regular-fontFamily);
8941
+ font-weight: var(--text-label-sm-regular-fontWeight);
8942
+ font-size: var(--text-label-sm-regular-fontSize);
8943
+ line-height: var(--text-label-sm-regular-lineHeight);
8944
+ color: var(--color-state-error-default);
8945
+ margin: 0;
8946
+ }
8947
+
8948
+
8949
8949
  /* Label */
8950
8950
  /* Label Component Styles - Using Muka Design Tokens */
8951
8951
 
@@ -12910,6 +12910,134 @@ button.muka-chat-photo-grid__tile:focus-visible {
12910
12910
  }
12911
12911
 
12912
12912
 
12913
+ /* ChatComposer */
12914
+ /* ChatComposer Component Styles */
12915
+
12916
+ /*
12917
+ * The composer is a bare, fill-width row: no padding, background, border or
12918
+ * max-width of its own (Figma 5243:14141). Whatever hosts it owns the
12919
+ * container — see BottomBar's `chat` variant.
12920
+ */
12921
+ .muka-chat-composer {
12922
+ display: flex;
12923
+ flex-direction: column;
12924
+ gap: var(--spacing-3);
12925
+ width: 100%;
12926
+ }
12927
+
12928
+ .muka-chat-composer--disabled {
12929
+ opacity: 0.6;
12930
+ pointer-events: none;
12931
+ }
12932
+
12933
+ /* ─── Input row ────────────────────────────────────────── */
12934
+
12935
+ .muka-chat-composer__row {
12936
+ display: flex;
12937
+ width: 100%;
12938
+ align-items: flex-end;
12939
+ gap: var(--spacing-3);
12940
+ }
12941
+
12942
+ /* ─── Text field ───────────────────────────────────────── */
12943
+
12944
+ .muka-chat-composer__field {
12945
+ display: flex;
12946
+ flex: 1 1 auto;
12947
+ min-width: 0;
12948
+ box-sizing: border-box;
12949
+ align-items: center;
12950
+ gap: var(--spacing-1);
12951
+ min-height: var(--input-field-height-lg, 48px);
12952
+ padding: 0 var(--spacing-2);
12953
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
12954
+ border-radius: var(--input-field-radius-lg);
12955
+ background-color: var(--input-field-color-default-background);
12956
+ transition: border-color 0.12s ease;
12957
+ }
12958
+
12959
+ .muka-chat-composer__field:focus-within {
12960
+ border-color: var(--input-field-color-focus-border, var(--color-action-default));
12961
+ }
12962
+
12963
+ .muka-chat-composer__input {
12964
+ flex: 1 1 auto;
12965
+ min-width: 0;
12966
+ width: 100%;
12967
+ box-sizing: border-box;
12968
+ resize: none;
12969
+ border: none;
12970
+ background: transparent;
12971
+ outline: none;
12972
+ padding: 0 var(--spacing-1);
12973
+ color: var(--color-text-default-default);
12974
+ font-family: var(--text-body-base-regular-fontFamily);
12975
+ font-weight: var(--text-body-base-regular-fontWeight);
12976
+ font-size: var(--text-body-base-regular-fontSize);
12977
+ line-height: var(--text-body-base-regular-lineHeight);
12978
+ appearance: none;
12979
+ -webkit-appearance: none;
12980
+ }
12981
+
12982
+ .muka-chat-composer__input::placeholder {
12983
+ color: var(--color-text-subtle-default);
12984
+ }
12985
+
12986
+ /* Keep the in-field emoji button flush to the bottom-right as the field grows */
12987
+ .muka-chat-composer__emoji {
12988
+ flex-shrink: 0;
12989
+ }
12990
+
12991
+ /* ─── Recording bar ────────────────────────────────────── */
12992
+
12993
+ .muka-chat-composer__recording {
12994
+ display: flex;
12995
+ flex: 1 1 auto;
12996
+ min-width: 0;
12997
+ box-sizing: border-box;
12998
+ align-items: center;
12999
+ min-height: var(--input-field-height-lg, 48px);
13000
+ padding: var(--card-padding-sm);
13001
+ border: var(--border-width-regular) solid var(--card-color-default-border);
13002
+ border-radius: var(--radius-lg);
13003
+ background-color: var(--card-color-default-background);
13004
+ }
13005
+
13006
+ /* ─── Staged attachments strip ─────────────────────────── */
13007
+
13008
+ .muka-chat-composer__attachments-strip {
13009
+ position: relative;
13010
+ width: 100%;
13011
+ }
13012
+
13013
+ .muka-chat-composer__attachments {
13014
+ display: flex;
13015
+ gap: var(--spacing-3);
13016
+ overflow-x: auto;
13017
+ scroll-behavior: smooth;
13018
+ scrollbar-width: none;
13019
+ }
13020
+
13021
+ .muka-chat-composer__attachments::-webkit-scrollbar {
13022
+ display: none;
13023
+ }
13024
+
13025
+ .muka-chat-composer__overflow {
13026
+ position: absolute;
13027
+ top: 50%;
13028
+ right: var(--spacing-2);
13029
+ transform: translateY(-50%);
13030
+ }
13031
+
13032
+ /* ─── Print ────────────────────────────────────────────── */
13033
+
13034
+ @media print {
13035
+ .muka-chat-composer {
13036
+ display: none;
13037
+ }
13038
+ }
13039
+
13040
+
12913
13041
  /* ChatAttachmentChip */
12914
13042
  /* ChatAttachmentChip Component Styles */
12915
13043
 
@@ -14483,134 +14611,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
14483
14611
  }
14484
14612
 
14485
14613
 
14486
- /* ChatComposer */
14487
- /* ChatComposer Component Styles */
14488
-
14489
- /*
14490
- * The composer is a bare, fill-width row: no padding, background, border or
14491
- * max-width of its own (Figma 5243:14141). Whatever hosts it owns the
14492
- * container — see BottomBar's `chat` variant.
14493
- */
14494
- .muka-chat-composer {
14495
- display: flex;
14496
- flex-direction: column;
14497
- gap: var(--spacing-3);
14498
- width: 100%;
14499
- }
14500
-
14501
- .muka-chat-composer--disabled {
14502
- opacity: 0.6;
14503
- pointer-events: none;
14504
- }
14505
-
14506
- /* ─── Input row ────────────────────────────────────────── */
14507
-
14508
- .muka-chat-composer__row {
14509
- display: flex;
14510
- width: 100%;
14511
- align-items: flex-end;
14512
- gap: var(--spacing-3);
14513
- }
14514
-
14515
- /* ─── Text field ───────────────────────────────────────── */
14516
-
14517
- .muka-chat-composer__field {
14518
- display: flex;
14519
- flex: 1 1 auto;
14520
- min-width: 0;
14521
- box-sizing: border-box;
14522
- align-items: center;
14523
- gap: var(--spacing-1);
14524
- min-height: var(--input-field-height-lg, 48px);
14525
- padding: 0 var(--spacing-2);
14526
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
14527
- border-radius: var(--input-field-radius-lg);
14528
- background-color: var(--input-field-color-default-background);
14529
- transition: border-color 0.12s ease;
14530
- }
14531
-
14532
- .muka-chat-composer__field:focus-within {
14533
- border-color: var(--input-field-color-focus-border, var(--color-action-default));
14534
- }
14535
-
14536
- .muka-chat-composer__input {
14537
- flex: 1 1 auto;
14538
- min-width: 0;
14539
- width: 100%;
14540
- box-sizing: border-box;
14541
- resize: none;
14542
- border: none;
14543
- background: transparent;
14544
- outline: none;
14545
- padding: 0 var(--spacing-1);
14546
- color: var(--color-text-default-default);
14547
- font-family: var(--text-body-base-regular-fontFamily);
14548
- font-weight: var(--text-body-base-regular-fontWeight);
14549
- font-size: var(--text-body-base-regular-fontSize);
14550
- line-height: var(--text-body-base-regular-lineHeight);
14551
- appearance: none;
14552
- -webkit-appearance: none;
14553
- }
14554
-
14555
- .muka-chat-composer__input::placeholder {
14556
- color: var(--color-text-subtle-default);
14557
- }
14558
-
14559
- /* Keep the in-field emoji button flush to the bottom-right as the field grows */
14560
- .muka-chat-composer__emoji {
14561
- flex-shrink: 0;
14562
- }
14563
-
14564
- /* ─── Recording bar ────────────────────────────────────── */
14565
-
14566
- .muka-chat-composer__recording {
14567
- display: flex;
14568
- flex: 1 1 auto;
14569
- min-width: 0;
14570
- box-sizing: border-box;
14571
- align-items: center;
14572
- min-height: var(--input-field-height-lg, 48px);
14573
- padding: var(--card-padding-sm);
14574
- border: var(--border-width-regular) solid var(--card-color-default-border);
14575
- border-radius: var(--radius-lg);
14576
- background-color: var(--card-color-default-background);
14577
- }
14578
-
14579
- /* ─── Staged attachments strip ─────────────────────────── */
14580
-
14581
- .muka-chat-composer__attachments-strip {
14582
- position: relative;
14583
- width: 100%;
14584
- }
14585
-
14586
- .muka-chat-composer__attachments {
14587
- display: flex;
14588
- gap: var(--spacing-3);
14589
- overflow-x: auto;
14590
- scroll-behavior: smooth;
14591
- scrollbar-width: none;
14592
- }
14593
-
14594
- .muka-chat-composer__attachments::-webkit-scrollbar {
14595
- display: none;
14596
- }
14597
-
14598
- .muka-chat-composer__overflow {
14599
- position: absolute;
14600
- top: 50%;
14601
- right: var(--spacing-2);
14602
- transform: translateY(-50%);
14603
- }
14604
-
14605
- /* ─── Print ────────────────────────────────────────────── */
14606
-
14607
- @media print {
14608
- .muka-chat-composer {
14609
- display: none;
14610
- }
14611
- }
14612
-
14613
-
14614
14614
  /* AppShell */
14615
14615
  /* AppShell Component Styles */
14616
14616