@revikornmann/muka-ui 0.10.0 → 0.11.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.
@@ -2040,9 +2040,10 @@ body {
2040
2040
  --bottombar-floating-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.090), 0 8px 16px 0 rgba(0, 0, 0, 0.090);
2041
2041
  --bottombar-floating-max-width: 768px;
2042
2042
  --bottombar-floating-backdrop-start: transparent;
2043
- --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.090);
2044
- --bottombar-floating-backdrop-blur: 2px;
2043
+ --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.027);
2045
2044
  --bottombar-floating-padding-top: 2rem;
2045
+ --bottombar-chat-max-width: 1024px;
2046
+ --bottombar-chat-padding: 0.75rem;
2046
2047
  --bottombar-tab-icon-size: 24px;
2047
2048
  --bottombar-tab-gap: 0.25rem;
2048
2049
  --bottombar-tab-padding-y: 0.5rem;
@@ -7429,200 +7430,6 @@ body {
7429
7430
  }
7430
7431
 
7431
7432
 
7432
- /* ListItem */
7433
- /* ListItem Component Styles - Using Muka Design Tokens */
7434
-
7435
- /* Base list item styles */
7436
- .muka-listitem {
7437
- /* Layout */
7438
- display: flex;
7439
- align-items: flex-start;
7440
- gap: var(--spacing-4);
7441
- padding: var(--spacing-5) var(--spacing-4);
7442
-
7443
- /* Background - using semantic tokens */
7444
- background-color: var(--color-surface-level3);
7445
-
7446
- /* Typography */
7447
- font-family: var(--alias-font-brand-family);
7448
-
7449
- /* Border and spacing */
7450
- border: none;
7451
- position: relative;
7452
-
7453
- /* Interaction - only apply if interactive */
7454
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
7455
- }
7456
-
7457
- /* Interactive state */
7458
- .muka-listitem--interactive {
7459
- cursor: pointer;
7460
- }
7461
-
7462
- /*
7463
- * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
7464
- * are layered on top of the item's base surface via an inset box-shadow overlay
7465
- * rather than replacing background-color. This preserves the base level (level3,
7466
- * or level2 when selected) and lets the tint read correctly on any surface.
7467
- */
7468
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
7469
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7470
- }
7471
-
7472
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
7473
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
7474
- box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
7475
- }
7476
-
7477
- /* Focus styles for accessibility */
7478
- .muka-listitem:focus-visible {
7479
- outline: 2px solid var(--color-border-focus);
7480
- outline-offset: -2px;
7481
- }
7482
-
7483
- /* Disabled state */
7484
- .muka-listitem--disabled {
7485
- opacity: 0.5;
7486
- cursor: not-allowed;
7487
- pointer-events: none;
7488
- }
7489
-
7490
- .muka-listitem--disabled:hover {
7491
- background-color: var(--color-surface-level3);
7492
- }
7493
-
7494
- /* Selected state */
7495
- .muka-listitem--selected {
7496
- background-color: var(--color-surface-level2);
7497
- }
7498
-
7499
- .muka-listitem--selected:hover {
7500
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7501
- }
7502
-
7503
- /* No divider modifier */
7504
- .muka-listitem--no-divider .muka-listitem__divider {
7505
- display: none;
7506
- }
7507
-
7508
- /* Center content vertically when no caption */
7509
- .muka-listitem--no-caption {
7510
- align-items: center;
7511
- }
7512
-
7513
- /* Leading content (icon or image) */
7514
- .muka-listitem__leading {
7515
- display: flex;
7516
- align-items: center;
7517
- justify-content: center;
7518
- flex-shrink: 0;
7519
- width: 48px;
7520
- height: 48px;
7521
- }
7522
-
7523
- .muka-listitem__icon {
7524
- display: inline-flex;
7525
- align-items: center;
7526
- justify-content: center;
7527
- width: 32px;
7528
- height: 32px;
7529
- color: var(--color-text-default-default);
7530
- }
7531
-
7532
- .muka-listitem__image {
7533
- width: 48px;
7534
- height: 48px;
7535
- border-radius: var(--radius-md);
7536
- object-fit: cover;
7537
- }
7538
-
7539
- /* Main content area */
7540
- .muka-listitem__content {
7541
- flex: 1;
7542
- display: flex;
7543
- align-items: center;
7544
- gap: var(--spacing-4);
7545
- min-width: 0;
7546
- }
7547
-
7548
- .muka-listitem__text {
7549
- flex: 1;
7550
- display: flex;
7551
- flex-direction: column;
7552
- gap: var(--spacing-1);
7553
- min-width: 0;
7554
- }
7555
-
7556
- /* Label text */
7557
- .muka-listitem__label {
7558
- margin: 0;
7559
- padding: 0;
7560
-
7561
- /* Typography - using semantic tokens */
7562
- font-family: var(--alias-font-plain-family);
7563
- font-weight: var(--alias-font-plain-weight-semibold, 600);
7564
- font-size: var(--text-label-md-fontSize);
7565
- line-height: var(--text-label-md-lineHeight);
7566
- color: var(--color-text-default-default);
7567
-
7568
- /* Text handling */
7569
- overflow: hidden;
7570
- text-overflow: ellipsis;
7571
- white-space: nowrap;
7572
- }
7573
-
7574
- /* Caption text */
7575
- .muka-listitem__caption {
7576
- margin: 0;
7577
- padding: 0;
7578
-
7579
- /* Typography - using semantic tokens */
7580
- font-family: var(--alias-font-plain-family);
7581
- font-weight: var(--alias-font-plain-weight-regular, 400);
7582
- font-size: var(--text-body-sm-fontSize);
7583
- line-height: var(--text-body-sm-lineHeight);
7584
- color: var(--color-text-subtle-default);
7585
-
7586
- /* Text handling */
7587
- overflow: hidden;
7588
- text-overflow: ellipsis;
7589
- white-space: nowrap;
7590
- }
7591
-
7592
- /* Trailing chevron */
7593
- .muka-listitem__chevron {
7594
- display: inline-flex;
7595
- align-items: center;
7596
- justify-content: center;
7597
- flex-shrink: 0;
7598
- width: 24px;
7599
- height: 24px;
7600
- color: var(--color-text-subtle-default);
7601
- }
7602
-
7603
- /* Bottom divider */
7604
- .muka-listitem__divider {
7605
- position: absolute;
7606
- bottom: 0;
7607
- left: 0;
7608
- right: 0;
7609
- height: 1px;
7610
- background-color: var(--color-border-default);
7611
- }
7612
-
7613
- /* Button and anchor specific styles */
7614
- button.muka-listitem,
7615
- a.muka-listitem {
7616
- text-align: left;
7617
- width: 100%;
7618
- }
7619
-
7620
- /* List item specific styles */
7621
- li.muka-listitem {
7622
- list-style: none;
7623
- }
7624
-
7625
-
7626
7433
  /* LicensePlateInput */
7627
7434
  /* LicensePlateInput — Dutch RDW-style plate input
7628
7435
  *
@@ -8147,229 +7954,491 @@ li.muka-listitem {
8147
7954
  }
8148
7955
 
8149
7956
 
8150
- /* FAB */
8151
- /* FAB (Floating Action Button) Component Styles */
7957
+ /* FileUpload */
7958
+ /* FileUpload Component Styles */
8152
7959
 
8153
- .muka-fab {
8154
- position: fixed;
8155
- z-index: 40;
7960
+ .muka-fileupload-wrapper {
7961
+ display: flex;
7962
+ flex-direction: column;
7963
+ gap: var(--spacing-3);
7964
+ width: 100%;
7965
+ }
8156
7966
 
8157
- display: inline-flex;
7967
+ /* Dropzone */
7968
+ .muka-fileupload {
7969
+ display: flex;
7970
+ flex-direction: column;
8158
7971
  align-items: center;
8159
7972
  justify-content: center;
8160
- gap: var(--spacing-2);
8161
-
8162
- border: none;
7973
+ gap: var(--fileupload-dropzone-gap);
7974
+ padding: var(--fileupload-dropzone-padding-md);
7975
+ background-color: var(--fileupload-dropzone-color-default-background);
7976
+ border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
7977
+ border-radius: var(--fileupload-dropzone-radius);
8163
7978
  cursor: pointer;
8164
- font-family: inherit;
8165
- box-shadow: var(--shadow-level4);
8166
-
8167
- transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
8168
- -webkit-tap-highlight-color: transparent;
8169
- }
8170
-
8171
- .muka-fab:active {
8172
- transform: scale(0.96);
8173
- box-shadow: var(--shadow-level3);
7979
+ transition: background-color 0.2s ease, border-color 0.2s ease;
7980
+ text-align: center;
7981
+ min-height: 120px;
8174
7982
  }
8175
7983
 
8176
- .muka-fab:focus-visible {
8177
- outline: 2px solid var(--color-action-default);
7984
+ .muka-fileupload:focus-visible {
7985
+ outline: 2px solid var(--color-border-focus);
8178
7986
  outline-offset: 2px;
8179
7987
  }
8180
7988
 
8181
- .muka-fab:disabled {
8182
- opacity: 0.5;
8183
- cursor: not-allowed;
8184
- box-shadow: none;
7989
+ /* Size variants */
7990
+ .muka-fileupload--sm {
7991
+ padding: var(--fileupload-dropzone-padding-sm);
7992
+ min-height: 80px;
8185
7993
  }
8186
7994
 
8187
- /* ─── Variants ────────────────────────────────────────── */
8188
-
8189
- .muka-fab--primary {
8190
- background-color: var(--color-action-default);
8191
- color: var(--color-text-inverse-default);
7995
+ .muka-fileupload--lg {
7996
+ padding: var(--fileupload-dropzone-padding-lg);
7997
+ min-height: 160px;
8192
7998
  }
8193
7999
 
8194
- .muka-fab--primary:hover:not(:disabled) {
8195
- background-color: var(--color-action-hover);
8196
- }
8197
-
8198
- .muka-fab--secondary {
8199
- background-color: var(--color-surface-level3);
8200
- color: var(--color-text-default-default);
8000
+ /* Button variant */
8001
+ .muka-fileupload--button {
8002
+ flex-direction: row;
8003
+ min-height: auto;
8004
+ padding: var(--spacing-2) var(--spacing-3);
8005
+ border-style: solid;
8006
+ border-width: var(--border-width-regular);
8007
+ border-radius: var(--border-radius-md);
8201
8008
  }
8202
8009
 
8203
- .muka-fab--secondary:hover:not(:disabled) {
8204
- background-color: var(--color-surface-level2);
8010
+ /* Hover state */
8011
+ .muka-fileupload:hover:not(.muka-fileupload--disabled) {
8012
+ background-color: var(--fileupload-dropzone-color-hover-background);
8013
+ border-color: var(--fileupload-dropzone-color-hover-border);
8205
8014
  }
8206
8015
 
8207
- /* ─── Sizes (circular by default) ─────────────────────── */
8208
-
8209
- .muka-fab--md {
8210
- width: 56px;
8211
- height: 56px;
8212
- border-radius: 50%;
8016
+ /* Active/drag state */
8017
+ .muka-fileupload--active:not(.muka-fileupload--disabled) {
8018
+ background-color: var(--fileupload-dropzone-color-active-background);
8019
+ border-color: var(--fileupload-dropzone-color-active-border);
8213
8020
  }
8214
8021
 
8215
- .muka-fab--lg {
8216
- width: 64px;
8217
- height: 64px;
8218
- border-radius: 50%;
8022
+ /* Disabled state */
8023
+ .muka-fileupload--disabled {
8024
+ background-color: var(--fileupload-dropzone-color-disabled-background);
8025
+ border-color: var(--fileupload-dropzone-color-disabled-border);
8026
+ cursor: not-allowed;
8027
+ opacity: 0.6;
8219
8028
  }
8220
8029
 
8221
- /* ─── Extended (pill shape with label) ────────────────── */
8222
-
8223
- .muka-fab--extended {
8224
- width: auto;
8225
- height: auto;
8226
- padding: var(--spacing-3) var(--spacing-4);
8227
- border-radius: var(--radius-full);
8030
+ /* Hidden file input */
8031
+ .muka-fileupload__input {
8032
+ position: absolute;
8033
+ width: 1px;
8034
+ height: 1px;
8035
+ padding: 0;
8036
+ margin: -1px;
8037
+ overflow: hidden;
8038
+ clip: rect(0, 0, 0, 0);
8039
+ white-space: nowrap;
8040
+ border: 0;
8228
8041
  }
8229
8042
 
8230
- .muka-fab--extended.muka-fab--lg {
8231
- padding: var(--spacing-4) var(--spacing-5);
8043
+ /* Content container */
8044
+ .muka-fileupload__content {
8045
+ display: flex;
8046
+ flex-direction: column;
8047
+ align-items: center;
8048
+ gap: var(--spacing-2);
8232
8049
  }
8233
8050
 
8234
- .muka-fab__icon {
8235
- display: inline-flex;
8051
+ /* Upload icon */
8052
+ .muka-fileupload__icon {
8053
+ display: flex;
8236
8054
  align-items: center;
8237
8055
  justify-content: center;
8238
- width: 24px;
8239
- height: 24px;
8056
+ width: var(--size-3xl);
8057
+ height: var(--size-3xl);
8058
+ color: var(--fileupload-dropzone-color-default-foreground);
8240
8059
  }
8241
8060
 
8242
- .muka-fab__icon svg {
8061
+ .muka-fileupload__icon svg {
8243
8062
  width: 100%;
8244
8063
  height: 100%;
8245
8064
  }
8246
8065
 
8247
- .muka-fab__label {
8248
- font-family: var(--text-label-md-semibold-fontFamily);
8249
- font-weight: var(--text-label-md-semibold-fontWeight);
8250
- font-size: var(--text-label-md-semibold-fontSize);
8251
- line-height: var(--text-label-md-semibold-lineHeight);
8066
+ .muka-fileupload--sm .muka-fileupload__icon {
8067
+ width: var(--size-2xl);
8068
+ height: var(--size-2xl);
8252
8069
  }
8253
8070
 
8254
- /* ─── Positioning ─────────────────────────────────────── */
8255
-
8256
- .muka-fab--bottom-right {
8257
- right: var(--spacing-4);
8258
- bottom: var(--spacing-4);
8071
+ .muka-fileupload--lg .muka-fileupload__icon {
8072
+ width: var(--size-4xl);
8073
+ height: var(--size-4xl);
8259
8074
  }
8260
8075
 
8261
- .muka-fab--bottom-left {
8262
- left: var(--spacing-4);
8263
- bottom: var(--spacing-4);
8076
+ /* Text */
8077
+ .muka-fileupload__text {
8078
+ font-family: var(--text-body-md-regular-fontFamily);
8079
+ font-size: var(--text-body-md-regular-fontSize);
8080
+ font-weight: var(--text-body-md-regular-fontWeight);
8081
+ line-height: var(--text-body-md-regular-lineHeight);
8082
+ color: var(--color-text-default-default);
8264
8083
  }
8265
8084
 
8266
- .muka-fab--bottom-center {
8267
- left: 50%;
8268
- bottom: var(--spacing-4);
8269
- transform: translateX(-50%);
8085
+ .muka-fileupload--sm .muka-fileupload__text {
8086
+ font-size: var(--text-body-sm-regular-fontSize);
8270
8087
  }
8271
8088
 
8272
- .muka-fab--bottom-center:active {
8273
- transform: translateX(-50%) scale(0.96);
8089
+ /* Hint text */
8090
+ .muka-fileupload__hint {
8091
+ font-family: var(--text-label-sm-regular-fontFamily);
8092
+ font-size: var(--text-label-sm-regular-fontSize);
8093
+ font-weight: var(--text-label-sm-regular-fontWeight);
8094
+ line-height: var(--text-label-sm-regular-lineHeight);
8095
+ color: var(--fileupload-dropzone-color-default-foreground);
8274
8096
  }
8275
8097
 
8276
- /* Add the iOS home-indicator inset to the bottom offset. */
8277
- .muka-fab:not(.muka-fab--no-safe-area) {
8278
- bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
8098
+ /* File list */
8099
+ .muka-fileupload__list {
8100
+ display: flex;
8101
+ flex-direction: column;
8102
+ gap: var(--spacing-2);
8103
+ list-style: none;
8104
+ margin: 0;
8105
+ padding: 0;
8279
8106
  }
8280
8107
 
8281
- /* Lateral safe-area for landscape iPhone with notch. */
8282
- .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
8283
- right: max(var(--spacing-4), env(safe-area-inset-right));
8108
+ .muka-fileupload__list li {
8109
+ margin: 0;
8110
+ padding: 0;
8284
8111
  }
8285
8112
 
8286
- .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
8287
- left: max(var(--spacing-4), env(safe-area-inset-left));
8113
+ /* File item */
8114
+ .muka-fileupload-item {
8115
+ display: flex;
8116
+ align-items: center;
8117
+ gap: var(--fileupload-item-gap);
8118
+ padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
8119
+ background-color: var(--fileupload-item-color-default-background);
8120
+ border-radius: var(--fileupload-item-radius);
8288
8121
  }
8289
8122
 
8123
+ .muka-fileupload-item--error {
8124
+ background-color: var(--fileupload-item-color-error-background);
8125
+ }
8290
8126
 
8291
- /* EmptyState */
8292
- /* EmptyState Component Styles - Using Muka Design Tokens */
8127
+ .muka-fileupload-item--success {
8128
+ background-color: var(--fileupload-item-color-default-background);
8129
+ }
8293
8130
 
8294
- .muka-emptystate {
8131
+ /* Preview/Icon container */
8132
+ .muka-fileupload-item__preview {
8295
8133
  display: flex;
8296
- flex-direction: column;
8297
8134
  align-items: center;
8298
8135
  justify-content: center;
8299
- gap: var(--emptystate-container-gap);
8300
- max-width: var(--emptystate-container-maxWidth);
8301
- margin: 0 auto;
8302
- text-align: center;
8136
+ flex-shrink: 0;
8137
+ width: var(--fileupload-preview-size);
8138
+ height: var(--fileupload-preview-size);
8139
+ border-radius: var(--fileupload-preview-radius);
8140
+ overflow: hidden;
8141
+ background-color: var(--color-surface-level1);
8303
8142
  }
8304
8143
 
8305
- /* Alignment variants */
8306
- .muka-emptystate--left {
8307
- align-items: flex-start;
8308
- text-align: left;
8144
+ .muka-fileupload-item__thumbnail {
8145
+ width: 100%;
8146
+ height: 100%;
8147
+ object-fit: cover;
8309
8148
  }
8310
8149
 
8311
- /* Size variants */
8312
- .muka-emptystate--sm {
8313
- padding: var(--emptystate-container-padding-sm);
8150
+ .muka-fileupload-item__icon {
8151
+ color: var(--color-text-subtle-default);
8314
8152
  }
8315
8153
 
8316
- .muka-emptystate--md {
8317
- padding: var(--emptystate-container-padding-md);
8154
+ /* File info */
8155
+ .muka-fileupload-item__info {
8156
+ flex: 1;
8157
+ min-width: 0;
8158
+ display: flex;
8159
+ flex-direction: column;
8160
+ gap: var(--spacing-1);
8318
8161
  }
8319
8162
 
8320
- .muka-emptystate--lg {
8321
- padding: var(--emptystate-container-padding-lg);
8163
+ .muka-fileupload-item__name {
8164
+ font-family: var(--text-body-sm-medium-fontFamily);
8165
+ font-size: var(--text-body-sm-medium-fontSize);
8166
+ font-weight: var(--text-body-sm-medium-fontWeight);
8167
+ line-height: var(--text-body-sm-medium-lineHeight);
8168
+ color: var(--fileupload-item-color-default-foreground);
8169
+ white-space: nowrap;
8170
+ overflow: hidden;
8171
+ text-overflow: ellipsis;
8322
8172
  }
8323
8173
 
8324
- /* Visual (icon or illustration) */
8325
- .muka-emptystate__visual {
8326
- display: flex;
8327
- align-items: center;
8328
- justify-content: center;
8329
- color: var(--emptystate-icon-color);
8330
- flex-shrink: 0;
8174
+ .muka-fileupload-item--error .muka-fileupload-item__name {
8175
+ color: var(--fileupload-item-color-error-foreground);
8331
8176
  }
8332
8177
 
8333
- .muka-emptystate--sm .muka-emptystate__visual {
8334
- width: var(--emptystate-icon-size-sm);
8335
- height: var(--emptystate-icon-size-sm);
8178
+ .muka-fileupload-item__meta {
8179
+ font-family: var(--text-label-sm-regular-fontFamily);
8180
+ font-size: var(--text-label-sm-regular-fontSize);
8181
+ font-weight: var(--text-label-sm-regular-fontWeight);
8182
+ line-height: var(--text-label-sm-regular-lineHeight);
8183
+ color: var(--color-text-subtle-default);
8336
8184
  }
8337
8185
 
8338
- .muka-emptystate--md .muka-emptystate__visual {
8339
- width: var(--emptystate-icon-size-md);
8340
- height: var(--emptystate-icon-size-md);
8186
+ .muka-fileupload-item__error {
8187
+ color: var(--fileupload-item-color-error-foreground);
8341
8188
  }
8342
8189
 
8343
- .muka-emptystate--lg .muka-emptystate__visual {
8344
- width: var(--emptystate-icon-size-lg);
8345
- height: var(--emptystate-icon-size-lg);
8190
+ .muka-fileupload-item__progress {
8191
+ margin-top: var(--spacing-1);
8346
8192
  }
8347
8193
 
8348
- .muka-emptystate__visual svg {
8349
- width: 100%;
8350
- height: 100%;
8194
+ /* Actions */
8195
+ .muka-fileupload-item__actions {
8196
+ display: flex;
8197
+ align-items: center;
8198
+ gap: var(--spacing-2);
8199
+ flex-shrink: 0;
8351
8200
  }
8352
8201
 
8353
- .muka-emptystate__visual img {
8354
- width: 100%;
8355
- height: 100%;
8356
- object-fit: contain;
8202
+ .muka-fileupload-item__status-icon--success {
8203
+ color: var(--color-state-success-foreground);
8357
8204
  }
8358
8205
 
8359
- /* Content */
8360
- .muka-emptystate__content {
8361
- display: flex;
8362
- flex-direction: column;
8363
- gap: var(--spacing-2);
8206
+ .muka-fileupload-item__status-icon--error {
8207
+ color: var(--color-state-error-foreground);
8364
8208
  }
8365
8209
 
8366
- .muka-emptystate--left .muka-emptystate__content {
8367
- align-items: flex-start;
8210
+ .muka-fileupload-item__remove {
8211
+ opacity: 0.7;
8368
8212
  }
8369
8213
 
8370
- /* Title */
8371
- .muka-emptystate__title {
8372
- color: var(--emptystate-title-color);
8214
+ .muka-fileupload-item__remove:hover {
8215
+ opacity: 1;
8216
+ }
8217
+
8218
+
8219
+ /* FAB */
8220
+ /* FAB (Floating Action Button) Component Styles */
8221
+
8222
+ .muka-fab {
8223
+ position: fixed;
8224
+ z-index: 40;
8225
+
8226
+ display: inline-flex;
8227
+ align-items: center;
8228
+ justify-content: center;
8229
+ gap: var(--spacing-2);
8230
+
8231
+ border: none;
8232
+ cursor: pointer;
8233
+ font-family: inherit;
8234
+ box-shadow: var(--shadow-level4);
8235
+
8236
+ transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
8237
+ -webkit-tap-highlight-color: transparent;
8238
+ }
8239
+
8240
+ .muka-fab:active {
8241
+ transform: scale(0.96);
8242
+ box-shadow: var(--shadow-level3);
8243
+ }
8244
+
8245
+ .muka-fab:focus-visible {
8246
+ outline: 2px solid var(--color-action-default);
8247
+ outline-offset: 2px;
8248
+ }
8249
+
8250
+ .muka-fab:disabled {
8251
+ opacity: 0.5;
8252
+ cursor: not-allowed;
8253
+ box-shadow: none;
8254
+ }
8255
+
8256
+ /* ─── Variants ────────────────────────────────────────── */
8257
+
8258
+ .muka-fab--primary {
8259
+ background-color: var(--color-action-default);
8260
+ color: var(--color-text-inverse-default);
8261
+ }
8262
+
8263
+ .muka-fab--primary:hover:not(:disabled) {
8264
+ background-color: var(--color-action-hover);
8265
+ }
8266
+
8267
+ .muka-fab--secondary {
8268
+ background-color: var(--color-surface-level3);
8269
+ color: var(--color-text-default-default);
8270
+ }
8271
+
8272
+ .muka-fab--secondary:hover:not(:disabled) {
8273
+ background-color: var(--color-surface-level2);
8274
+ }
8275
+
8276
+ /* ─── Sizes (circular by default) ─────────────────────── */
8277
+
8278
+ .muka-fab--md {
8279
+ width: 56px;
8280
+ height: 56px;
8281
+ border-radius: 50%;
8282
+ }
8283
+
8284
+ .muka-fab--lg {
8285
+ width: 64px;
8286
+ height: 64px;
8287
+ border-radius: 50%;
8288
+ }
8289
+
8290
+ /* ─── Extended (pill shape with label) ────────────────── */
8291
+
8292
+ .muka-fab--extended {
8293
+ width: auto;
8294
+ height: auto;
8295
+ padding: var(--spacing-3) var(--spacing-4);
8296
+ border-radius: var(--radius-full);
8297
+ }
8298
+
8299
+ .muka-fab--extended.muka-fab--lg {
8300
+ padding: var(--spacing-4) var(--spacing-5);
8301
+ }
8302
+
8303
+ .muka-fab__icon {
8304
+ display: inline-flex;
8305
+ align-items: center;
8306
+ justify-content: center;
8307
+ width: 24px;
8308
+ height: 24px;
8309
+ }
8310
+
8311
+ .muka-fab__icon svg {
8312
+ width: 100%;
8313
+ height: 100%;
8314
+ }
8315
+
8316
+ .muka-fab__label {
8317
+ font-family: var(--text-label-md-semibold-fontFamily);
8318
+ font-weight: var(--text-label-md-semibold-fontWeight);
8319
+ font-size: var(--text-label-md-semibold-fontSize);
8320
+ line-height: var(--text-label-md-semibold-lineHeight);
8321
+ }
8322
+
8323
+ /* ─── Positioning ─────────────────────────────────────── */
8324
+
8325
+ .muka-fab--bottom-right {
8326
+ right: var(--spacing-4);
8327
+ bottom: var(--spacing-4);
8328
+ }
8329
+
8330
+ .muka-fab--bottom-left {
8331
+ left: var(--spacing-4);
8332
+ bottom: var(--spacing-4);
8333
+ }
8334
+
8335
+ .muka-fab--bottom-center {
8336
+ left: 50%;
8337
+ bottom: var(--spacing-4);
8338
+ transform: translateX(-50%);
8339
+ }
8340
+
8341
+ .muka-fab--bottom-center:active {
8342
+ transform: translateX(-50%) scale(0.96);
8343
+ }
8344
+
8345
+ /* Add the iOS home-indicator inset to the bottom offset. */
8346
+ .muka-fab:not(.muka-fab--no-safe-area) {
8347
+ bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
8348
+ }
8349
+
8350
+ /* Lateral safe-area for landscape iPhone with notch. */
8351
+ .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
8352
+ right: max(var(--spacing-4), env(safe-area-inset-right));
8353
+ }
8354
+
8355
+ .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
8356
+ left: max(var(--spacing-4), env(safe-area-inset-left));
8357
+ }
8358
+
8359
+
8360
+ /* EmptyState */
8361
+ /* EmptyState Component Styles - Using Muka Design Tokens */
8362
+
8363
+ .muka-emptystate {
8364
+ display: flex;
8365
+ flex-direction: column;
8366
+ align-items: center;
8367
+ justify-content: center;
8368
+ gap: var(--emptystate-container-gap);
8369
+ max-width: var(--emptystate-container-maxWidth);
8370
+ margin: 0 auto;
8371
+ text-align: center;
8372
+ }
8373
+
8374
+ /* Alignment variants */
8375
+ .muka-emptystate--left {
8376
+ align-items: flex-start;
8377
+ text-align: left;
8378
+ }
8379
+
8380
+ /* Size variants */
8381
+ .muka-emptystate--sm {
8382
+ padding: var(--emptystate-container-padding-sm);
8383
+ }
8384
+
8385
+ .muka-emptystate--md {
8386
+ padding: var(--emptystate-container-padding-md);
8387
+ }
8388
+
8389
+ .muka-emptystate--lg {
8390
+ padding: var(--emptystate-container-padding-lg);
8391
+ }
8392
+
8393
+ /* Visual (icon or illustration) */
8394
+ .muka-emptystate__visual {
8395
+ display: flex;
8396
+ align-items: center;
8397
+ justify-content: center;
8398
+ color: var(--emptystate-icon-color);
8399
+ flex-shrink: 0;
8400
+ }
8401
+
8402
+ .muka-emptystate--sm .muka-emptystate__visual {
8403
+ width: var(--emptystate-icon-size-sm);
8404
+ height: var(--emptystate-icon-size-sm);
8405
+ }
8406
+
8407
+ .muka-emptystate--md .muka-emptystate__visual {
8408
+ width: var(--emptystate-icon-size-md);
8409
+ height: var(--emptystate-icon-size-md);
8410
+ }
8411
+
8412
+ .muka-emptystate--lg .muka-emptystate__visual {
8413
+ width: var(--emptystate-icon-size-lg);
8414
+ height: var(--emptystate-icon-size-lg);
8415
+ }
8416
+
8417
+ .muka-emptystate__visual svg {
8418
+ width: 100%;
8419
+ height: 100%;
8420
+ }
8421
+
8422
+ .muka-emptystate__visual img {
8423
+ width: 100%;
8424
+ height: 100%;
8425
+ object-fit: contain;
8426
+ }
8427
+
8428
+ /* Content */
8429
+ .muka-emptystate__content {
8430
+ display: flex;
8431
+ flex-direction: column;
8432
+ gap: var(--spacing-2);
8433
+ }
8434
+
8435
+ .muka-emptystate--left .muka-emptystate__content {
8436
+ align-items: flex-start;
8437
+ }
8438
+
8439
+ /* Title */
8440
+ .muka-emptystate__title {
8441
+ color: var(--emptystate-title-color);
8373
8442
  margin: 0;
8374
8443
  font-family: var(--text-heading-h4-fontFamily);
8375
8444
  font-weight: var(--text-heading-h4-fontWeight);
@@ -9933,33 +10002,227 @@ li.muka-listitem {
9933
10002
  }
9934
10003
 
9935
10004
 
9936
- /* Chip */
9937
- /* Chip Component Styles - Using Muka Design Tokens (Figma: Chip) */
9938
-
9939
- .muka-chip {
9940
- display: inline-flex;
9941
- align-items: center;
9942
- border-radius: var(--border-radius-full);
9943
- white-space: nowrap;
9944
- user-select: none;
9945
- border: var(--border-width-regular) solid transparent;
9946
- box-sizing: border-box;
9947
- }
10005
+ /* ListItem */
10006
+ /* ListItem Component Styles - Using Muka Design Tokens */
9948
10007
 
9949
- /*
9950
- * Sizes — height, gap, type, and default (label-edge) horizontal padding.
9951
- * Vertical centering is handled by the fixed height + align-items: center.
9952
- * The side that carries an adornment (leading icon / dismiss button) gets a
9953
- * tighter padding, applied via the --has-icon / --dismissible modifiers below.
9954
- */
9955
- .muka-chip--sm {
9956
- height: var(--chip-size-height-sm);
9957
- gap: var(--chip-gap-sm);
9958
- padding: 0 var(--chip-padding-label-sm);
9959
- font-family: var(--text-label-sm-regular-fontFamily);
9960
- font-weight: var(--text-label-sm-regular-fontWeight);
9961
- font-size: var(--text-label-sm-regular-fontSize);
9962
- line-height: var(--text-label-sm-regular-lineHeight);
10008
+ /* Base list item styles */
10009
+ .muka-listitem {
10010
+ /* Layout */
10011
+ display: flex;
10012
+ align-items: flex-start;
10013
+ gap: var(--spacing-4);
10014
+ padding: var(--spacing-5) var(--spacing-4);
10015
+
10016
+ /* Background - using semantic tokens */
10017
+ background-color: var(--color-surface-level3);
10018
+
10019
+ /* Typography */
10020
+ font-family: var(--alias-font-brand-family);
10021
+
10022
+ /* Border and spacing */
10023
+ border: none;
10024
+ position: relative;
10025
+
10026
+ /* Interaction - only apply if interactive */
10027
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
10028
+ }
10029
+
10030
+ /* Interactive state */
10031
+ .muka-listitem--interactive {
10032
+ cursor: pointer;
10033
+ }
10034
+
10035
+ /*
10036
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
10037
+ * are layered on top of the item's base surface via an inset box-shadow overlay
10038
+ * rather than replacing background-color. This preserves the base level (level3,
10039
+ * or level2 when selected) and lets the tint read correctly on any surface.
10040
+ */
10041
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
10042
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10043
+ }
10044
+
10045
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
10046
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
10047
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
10048
+ }
10049
+
10050
+ /* Focus styles for accessibility */
10051
+ .muka-listitem:focus-visible {
10052
+ outline: 2px solid var(--color-border-focus);
10053
+ outline-offset: -2px;
10054
+ }
10055
+
10056
+ /* Disabled state */
10057
+ .muka-listitem--disabled {
10058
+ opacity: 0.5;
10059
+ cursor: not-allowed;
10060
+ pointer-events: none;
10061
+ }
10062
+
10063
+ .muka-listitem--disabled:hover {
10064
+ background-color: var(--color-surface-level3);
10065
+ }
10066
+
10067
+ /* Selected state */
10068
+ .muka-listitem--selected {
10069
+ background-color: var(--color-surface-level2);
10070
+ }
10071
+
10072
+ .muka-listitem--selected:hover {
10073
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10074
+ }
10075
+
10076
+ /* No divider modifier */
10077
+ .muka-listitem--no-divider .muka-listitem__divider {
10078
+ display: none;
10079
+ }
10080
+
10081
+ /* Center content vertically when no caption */
10082
+ .muka-listitem--no-caption {
10083
+ align-items: center;
10084
+ }
10085
+
10086
+ /* Leading content (icon or image) */
10087
+ .muka-listitem__leading {
10088
+ display: flex;
10089
+ align-items: center;
10090
+ justify-content: center;
10091
+ flex-shrink: 0;
10092
+ width: 48px;
10093
+ height: 48px;
10094
+ }
10095
+
10096
+ .muka-listitem__icon {
10097
+ display: inline-flex;
10098
+ align-items: center;
10099
+ justify-content: center;
10100
+ width: 32px;
10101
+ height: 32px;
10102
+ color: var(--color-text-default-default);
10103
+ }
10104
+
10105
+ .muka-listitem__image {
10106
+ width: 48px;
10107
+ height: 48px;
10108
+ border-radius: var(--radius-md);
10109
+ object-fit: cover;
10110
+ }
10111
+
10112
+ /* Main content area */
10113
+ .muka-listitem__content {
10114
+ flex: 1;
10115
+ display: flex;
10116
+ align-items: center;
10117
+ gap: var(--spacing-4);
10118
+ min-width: 0;
10119
+ }
10120
+
10121
+ .muka-listitem__text {
10122
+ flex: 1;
10123
+ display: flex;
10124
+ flex-direction: column;
10125
+ gap: var(--spacing-1);
10126
+ min-width: 0;
10127
+ }
10128
+
10129
+ /* Label text */
10130
+ .muka-listitem__label {
10131
+ margin: 0;
10132
+ padding: 0;
10133
+
10134
+ /* Typography - using semantic tokens */
10135
+ font-family: var(--alias-font-plain-family);
10136
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
10137
+ font-size: var(--text-label-md-fontSize);
10138
+ line-height: var(--text-label-md-lineHeight);
10139
+ color: var(--color-text-default-default);
10140
+
10141
+ /* Text handling */
10142
+ overflow: hidden;
10143
+ text-overflow: ellipsis;
10144
+ white-space: nowrap;
10145
+ }
10146
+
10147
+ /* Caption text */
10148
+ .muka-listitem__caption {
10149
+ margin: 0;
10150
+ padding: 0;
10151
+
10152
+ /* Typography - using semantic tokens */
10153
+ font-family: var(--alias-font-plain-family);
10154
+ font-weight: var(--alias-font-plain-weight-regular, 400);
10155
+ font-size: var(--text-body-sm-fontSize);
10156
+ line-height: var(--text-body-sm-lineHeight);
10157
+ color: var(--color-text-subtle-default);
10158
+
10159
+ /* Text handling */
10160
+ overflow: hidden;
10161
+ text-overflow: ellipsis;
10162
+ white-space: nowrap;
10163
+ }
10164
+
10165
+ /* Trailing chevron */
10166
+ .muka-listitem__chevron {
10167
+ display: inline-flex;
10168
+ align-items: center;
10169
+ justify-content: center;
10170
+ flex-shrink: 0;
10171
+ width: 24px;
10172
+ height: 24px;
10173
+ color: var(--color-text-subtle-default);
10174
+ }
10175
+
10176
+ /* Bottom divider */
10177
+ .muka-listitem__divider {
10178
+ position: absolute;
10179
+ bottom: 0;
10180
+ left: 0;
10181
+ right: 0;
10182
+ height: 1px;
10183
+ background-color: var(--color-border-default);
10184
+ }
10185
+
10186
+ /* Button and anchor specific styles */
10187
+ button.muka-listitem,
10188
+ a.muka-listitem {
10189
+ text-align: left;
10190
+ width: 100%;
10191
+ }
10192
+
10193
+ /* List item specific styles */
10194
+ li.muka-listitem {
10195
+ list-style: none;
10196
+ }
10197
+
10198
+
10199
+ /* Chip */
10200
+ /* Chip Component Styles - Using Muka Design Tokens (Figma: Chip) */
10201
+
10202
+ .muka-chip {
10203
+ display: inline-flex;
10204
+ align-items: center;
10205
+ border-radius: var(--border-radius-full);
10206
+ white-space: nowrap;
10207
+ user-select: none;
10208
+ border: var(--border-width-regular) solid transparent;
10209
+ box-sizing: border-box;
10210
+ }
10211
+
10212
+ /*
10213
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
10214
+ * Vertical centering is handled by the fixed height + align-items: center.
10215
+ * The side that carries an adornment (leading icon / dismiss button) gets a
10216
+ * tighter padding, applied via the --has-icon / --dismissible modifiers below.
10217
+ */
10218
+ .muka-chip--sm {
10219
+ height: var(--chip-size-height-sm);
10220
+ gap: var(--chip-gap-sm);
10221
+ padding: 0 var(--chip-padding-label-sm);
10222
+ font-family: var(--text-label-sm-regular-fontFamily);
10223
+ font-weight: var(--text-label-sm-regular-fontWeight);
10224
+ font-size: var(--text-label-sm-regular-fontSize);
10225
+ line-height: var(--text-label-sm-regular-lineHeight);
9963
10226
  }
9964
10227
 
9965
10228
  .muka-chip--md {
@@ -11000,25 +11263,107 @@ li.muka-listitem {
11000
11263
  }
11001
11264
 
11002
11265
 
11003
- /* Button */
11004
- /* Button Component Styles - Using Muka Design Tokens */
11266
+ /* Breadcrumb */
11267
+ /* Breadcrumb Component Styles */
11005
11268
 
11006
- /* Base button styles */
11007
- .muka-button {
11008
- /* Layout */
11269
+ .muka-breadcrumb__list {
11270
+ display: flex;
11271
+ align-items: center;
11272
+ flex-wrap: wrap;
11273
+ list-style: none;
11274
+ margin: 0;
11275
+ padding: 0;
11276
+ gap: var(--spacing-1);
11277
+ }
11278
+
11279
+ .muka-breadcrumb__item {
11009
11280
  display: inline-flex;
11010
11281
  align-items: center;
11011
- justify-content: center;
11282
+ gap: var(--spacing-1);
11283
+ }
11012
11284
 
11013
- /* Typography - using semantic tokens */
11014
- font-family: var(--alias-font-brand-family);
11015
- font-weight: var(--alias-font-brand-weight-semibold);
11285
+ .muka-breadcrumb__icon {
11286
+ display: inline-flex;
11287
+ align-items: center;
11288
+ color: var(--color-text-subtle-default);
11289
+ }
11290
+
11291
+ /* Link styles */
11292
+ .muka-breadcrumb__link {
11293
+ color: var(--color-text-subtle-default);
11016
11294
  text-decoration: none;
11017
-
11018
- /* Interaction */
11019
11295
  border: none;
11296
+ background: none;
11297
+ padding: 0;
11020
11298
  cursor: pointer;
11021
- user-select: none;
11299
+ font: inherit;
11300
+ transition: color 0.15s ease;
11301
+ }
11302
+
11303
+ .muka-breadcrumb__link:hover {
11304
+ color: var(--color-text-action-default);
11305
+ text-decoration: underline;
11306
+ }
11307
+
11308
+ /* Current page (last item) */
11309
+ .muka-breadcrumb__current {
11310
+ color: var(--color-text-default-default);
11311
+ font-weight: 600;
11312
+ }
11313
+
11314
+ /* Separator */
11315
+ .muka-breadcrumb__separator {
11316
+ color: var(--color-text-subtle-default);
11317
+ user-select: none;
11318
+ }
11319
+
11320
+ /* Ellipsis */
11321
+ .muka-breadcrumb__ellipsis {
11322
+ color: var(--color-text-subtle-default);
11323
+ }
11324
+
11325
+ /* Size variants */
11326
+ .muka-breadcrumb--sm {
11327
+ font-family: var(--text-label-sm-regular-fontFamily);
11328
+ font-weight: var(--text-label-sm-regular-fontWeight);
11329
+ font-size: var(--text-label-sm-regular-fontSize);
11330
+ line-height: var(--text-label-sm-regular-lineHeight);
11331
+ }
11332
+
11333
+ .muka-breadcrumb--md {
11334
+ font-family: var(--text-label-md-regular-fontFamily);
11335
+ font-weight: var(--text-label-md-regular-fontWeight);
11336
+ font-size: var(--text-label-md-regular-fontSize);
11337
+ line-height: var(--text-label-md-regular-lineHeight);
11338
+ }
11339
+
11340
+ .muka-breadcrumb--lg {
11341
+ font-family: var(--text-label-lg-regular-fontFamily);
11342
+ font-weight: var(--text-label-lg-regular-fontWeight);
11343
+ font-size: var(--text-label-lg-regular-fontSize);
11344
+ line-height: var(--text-label-lg-regular-lineHeight);
11345
+ }
11346
+
11347
+
11348
+ /* Button */
11349
+ /* Button Component Styles - Using Muka Design Tokens */
11350
+
11351
+ /* Base button styles */
11352
+ .muka-button {
11353
+ /* Layout */
11354
+ display: inline-flex;
11355
+ align-items: center;
11356
+ justify-content: center;
11357
+
11358
+ /* Typography - using semantic tokens */
11359
+ font-family: var(--alias-font-brand-family);
11360
+ font-weight: var(--alias-font-brand-weight-semibold);
11361
+ text-decoration: none;
11362
+
11363
+ /* Interaction */
11364
+ border: none;
11365
+ cursor: pointer;
11366
+ user-select: none;
11022
11367
  transition: all 0.2s ease;
11023
11368
 
11024
11369
  /* Accessibility */
@@ -11308,88 +11653,6 @@ li.muka-listitem {
11308
11653
  }
11309
11654
 
11310
11655
 
11311
- /* Breadcrumb */
11312
- /* Breadcrumb Component Styles */
11313
-
11314
- .muka-breadcrumb__list {
11315
- display: flex;
11316
- align-items: center;
11317
- flex-wrap: wrap;
11318
- list-style: none;
11319
- margin: 0;
11320
- padding: 0;
11321
- gap: var(--spacing-1);
11322
- }
11323
-
11324
- .muka-breadcrumb__item {
11325
- display: inline-flex;
11326
- align-items: center;
11327
- gap: var(--spacing-1);
11328
- }
11329
-
11330
- .muka-breadcrumb__icon {
11331
- display: inline-flex;
11332
- align-items: center;
11333
- color: var(--color-text-subtle-default);
11334
- }
11335
-
11336
- /* Link styles */
11337
- .muka-breadcrumb__link {
11338
- color: var(--color-text-subtle-default);
11339
- text-decoration: none;
11340
- border: none;
11341
- background: none;
11342
- padding: 0;
11343
- cursor: pointer;
11344
- font: inherit;
11345
- transition: color 0.15s ease;
11346
- }
11347
-
11348
- .muka-breadcrumb__link:hover {
11349
- color: var(--color-text-action-default);
11350
- text-decoration: underline;
11351
- }
11352
-
11353
- /* Current page (last item) */
11354
- .muka-breadcrumb__current {
11355
- color: var(--color-text-default-default);
11356
- font-weight: 600;
11357
- }
11358
-
11359
- /* Separator */
11360
- .muka-breadcrumb__separator {
11361
- color: var(--color-text-subtle-default);
11362
- user-select: none;
11363
- }
11364
-
11365
- /* Ellipsis */
11366
- .muka-breadcrumb__ellipsis {
11367
- color: var(--color-text-subtle-default);
11368
- }
11369
-
11370
- /* Size variants */
11371
- .muka-breadcrumb--sm {
11372
- font-family: var(--text-label-sm-regular-fontFamily);
11373
- font-weight: var(--text-label-sm-regular-fontWeight);
11374
- font-size: var(--text-label-sm-regular-fontSize);
11375
- line-height: var(--text-label-sm-regular-lineHeight);
11376
- }
11377
-
11378
- .muka-breadcrumb--md {
11379
- font-family: var(--text-label-md-regular-fontFamily);
11380
- font-weight: var(--text-label-md-regular-fontWeight);
11381
- font-size: var(--text-label-md-regular-fontSize);
11382
- line-height: var(--text-label-md-regular-lineHeight);
11383
- }
11384
-
11385
- .muka-breadcrumb--lg {
11386
- font-family: var(--text-label-lg-regular-fontFamily);
11387
- font-weight: var(--text-label-lg-regular-fontWeight);
11388
- font-size: var(--text-label-lg-regular-fontSize);
11389
- line-height: var(--text-label-lg-regular-lineHeight);
11390
- }
11391
-
11392
-
11393
11656
  /* BottomBar */
11394
11657
  /* BottomBar Component Styles */
11395
11658
 
@@ -11455,6 +11718,30 @@ li.muka-listitem {
11455
11718
  flex-direction: row;
11456
11719
  }
11457
11720
 
11721
+ /* ─── Chat variant (houses a ChatComposer) ───────────── */
11722
+
11723
+ .muka-bottombar--chat .muka-bottombar__content {
11724
+ flex-direction: row;
11725
+ max-width: var(--bottombar-chat-max-width);
11726
+ width: 100%;
11727
+ margin: 0 auto;
11728
+ }
11729
+
11730
+ /* Docked chat pads its content; the floating card supplies its own padding. */
11731
+ .muka-bottombar--chat:not(.muka-bottombar--floating) .muka-bottombar__content {
11732
+ padding: var(--bottombar-chat-padding);
11733
+ }
11734
+
11735
+ /* Floating chat card widens to the chat cap (overrides the md default below). */
11736
+ .muka-bottombar--chat.muka-bottombar--floating .muka-bottombar__content {
11737
+ max-width: var(--bottombar-chat-max-width);
11738
+ }
11739
+
11740
+ /* Let the composer fill the wider bar instead of its standalone 768px cap. */
11741
+ .muka-bottombar--chat .muka-chat-composer {
11742
+ max-width: none;
11743
+ }
11744
+
11458
11745
  /* ─── Tab item ────────────────────────────────────────── */
11459
11746
 
11460
11747
  .muka-bottombar__tab {
@@ -11511,8 +11798,6 @@ li.muka-listitem {
11511
11798
  var(--bottombar-floating-backdrop-start),
11512
11799
  var(--bottombar-floating-backdrop-end)
11513
11800
  );
11514
- backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
11515
- -webkit-backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
11516
11801
  padding: var(--bottombar-floating-padding-top) var(--bottombar-floating-margin-x) var(--bottombar-floating-margin-bottom);
11517
11802
 
11518
11803
  /* The transparent frosted margin around the pill overlays scrolling content;
@@ -12842,265 +13127,3 @@ li.muka-listitem {
12842
13127
  border-bottom: none;
12843
13128
  }
12844
13129
 
12845
-
12846
- /* FileUpload */
12847
- /* FileUpload Component Styles */
12848
-
12849
- .muka-fileupload-wrapper {
12850
- display: flex;
12851
- flex-direction: column;
12852
- gap: var(--spacing-3);
12853
- width: 100%;
12854
- }
12855
-
12856
- /* Dropzone */
12857
- .muka-fileupload {
12858
- display: flex;
12859
- flex-direction: column;
12860
- align-items: center;
12861
- justify-content: center;
12862
- gap: var(--fileupload-dropzone-gap);
12863
- padding: var(--fileupload-dropzone-padding-md);
12864
- background-color: var(--fileupload-dropzone-color-default-background);
12865
- border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
12866
- border-radius: var(--fileupload-dropzone-radius);
12867
- cursor: pointer;
12868
- transition: background-color 0.2s ease, border-color 0.2s ease;
12869
- text-align: center;
12870
- min-height: 120px;
12871
- }
12872
-
12873
- .muka-fileupload:focus-visible {
12874
- outline: 2px solid var(--color-border-focus);
12875
- outline-offset: 2px;
12876
- }
12877
-
12878
- /* Size variants */
12879
- .muka-fileupload--sm {
12880
- padding: var(--fileupload-dropzone-padding-sm);
12881
- min-height: 80px;
12882
- }
12883
-
12884
- .muka-fileupload--lg {
12885
- padding: var(--fileupload-dropzone-padding-lg);
12886
- min-height: 160px;
12887
- }
12888
-
12889
- /* Button variant */
12890
- .muka-fileupload--button {
12891
- flex-direction: row;
12892
- min-height: auto;
12893
- padding: var(--spacing-2) var(--spacing-3);
12894
- border-style: solid;
12895
- border-width: var(--border-width-regular);
12896
- border-radius: var(--border-radius-md);
12897
- }
12898
-
12899
- /* Hover state */
12900
- .muka-fileupload:hover:not(.muka-fileupload--disabled) {
12901
- background-color: var(--fileupload-dropzone-color-hover-background);
12902
- border-color: var(--fileupload-dropzone-color-hover-border);
12903
- }
12904
-
12905
- /* Active/drag state */
12906
- .muka-fileupload--active:not(.muka-fileupload--disabled) {
12907
- background-color: var(--fileupload-dropzone-color-active-background);
12908
- border-color: var(--fileupload-dropzone-color-active-border);
12909
- }
12910
-
12911
- /* Disabled state */
12912
- .muka-fileupload--disabled {
12913
- background-color: var(--fileupload-dropzone-color-disabled-background);
12914
- border-color: var(--fileupload-dropzone-color-disabled-border);
12915
- cursor: not-allowed;
12916
- opacity: 0.6;
12917
- }
12918
-
12919
- /* Hidden file input */
12920
- .muka-fileupload__input {
12921
- position: absolute;
12922
- width: 1px;
12923
- height: 1px;
12924
- padding: 0;
12925
- margin: -1px;
12926
- overflow: hidden;
12927
- clip: rect(0, 0, 0, 0);
12928
- white-space: nowrap;
12929
- border: 0;
12930
- }
12931
-
12932
- /* Content container */
12933
- .muka-fileupload__content {
12934
- display: flex;
12935
- flex-direction: column;
12936
- align-items: center;
12937
- gap: var(--spacing-2);
12938
- }
12939
-
12940
- /* Upload icon */
12941
- .muka-fileupload__icon {
12942
- display: flex;
12943
- align-items: center;
12944
- justify-content: center;
12945
- width: var(--size-3xl);
12946
- height: var(--size-3xl);
12947
- color: var(--fileupload-dropzone-color-default-foreground);
12948
- }
12949
-
12950
- .muka-fileupload__icon svg {
12951
- width: 100%;
12952
- height: 100%;
12953
- }
12954
-
12955
- .muka-fileupload--sm .muka-fileupload__icon {
12956
- width: var(--size-2xl);
12957
- height: var(--size-2xl);
12958
- }
12959
-
12960
- .muka-fileupload--lg .muka-fileupload__icon {
12961
- width: var(--size-4xl);
12962
- height: var(--size-4xl);
12963
- }
12964
-
12965
- /* Text */
12966
- .muka-fileupload__text {
12967
- font-family: var(--text-body-md-regular-fontFamily);
12968
- font-size: var(--text-body-md-regular-fontSize);
12969
- font-weight: var(--text-body-md-regular-fontWeight);
12970
- line-height: var(--text-body-md-regular-lineHeight);
12971
- color: var(--color-text-default-default);
12972
- }
12973
-
12974
- .muka-fileupload--sm .muka-fileupload__text {
12975
- font-size: var(--text-body-sm-regular-fontSize);
12976
- }
12977
-
12978
- /* Hint text */
12979
- .muka-fileupload__hint {
12980
- font-family: var(--text-label-sm-regular-fontFamily);
12981
- font-size: var(--text-label-sm-regular-fontSize);
12982
- font-weight: var(--text-label-sm-regular-fontWeight);
12983
- line-height: var(--text-label-sm-regular-lineHeight);
12984
- color: var(--fileupload-dropzone-color-default-foreground);
12985
- }
12986
-
12987
- /* File list */
12988
- .muka-fileupload__list {
12989
- display: flex;
12990
- flex-direction: column;
12991
- gap: var(--spacing-2);
12992
- list-style: none;
12993
- margin: 0;
12994
- padding: 0;
12995
- }
12996
-
12997
- .muka-fileupload__list li {
12998
- margin: 0;
12999
- padding: 0;
13000
- }
13001
-
13002
- /* File item */
13003
- .muka-fileupload-item {
13004
- display: flex;
13005
- align-items: center;
13006
- gap: var(--fileupload-item-gap);
13007
- padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
13008
- background-color: var(--fileupload-item-color-default-background);
13009
- border-radius: var(--fileupload-item-radius);
13010
- }
13011
-
13012
- .muka-fileupload-item--error {
13013
- background-color: var(--fileupload-item-color-error-background);
13014
- }
13015
-
13016
- .muka-fileupload-item--success {
13017
- background-color: var(--fileupload-item-color-default-background);
13018
- }
13019
-
13020
- /* Preview/Icon container */
13021
- .muka-fileupload-item__preview {
13022
- display: flex;
13023
- align-items: center;
13024
- justify-content: center;
13025
- flex-shrink: 0;
13026
- width: var(--fileupload-preview-size);
13027
- height: var(--fileupload-preview-size);
13028
- border-radius: var(--fileupload-preview-radius);
13029
- overflow: hidden;
13030
- background-color: var(--color-surface-level1);
13031
- }
13032
-
13033
- .muka-fileupload-item__thumbnail {
13034
- width: 100%;
13035
- height: 100%;
13036
- object-fit: cover;
13037
- }
13038
-
13039
- .muka-fileupload-item__icon {
13040
- color: var(--color-text-subtle-default);
13041
- }
13042
-
13043
- /* File info */
13044
- .muka-fileupload-item__info {
13045
- flex: 1;
13046
- min-width: 0;
13047
- display: flex;
13048
- flex-direction: column;
13049
- gap: var(--spacing-1);
13050
- }
13051
-
13052
- .muka-fileupload-item__name {
13053
- font-family: var(--text-body-sm-medium-fontFamily);
13054
- font-size: var(--text-body-sm-medium-fontSize);
13055
- font-weight: var(--text-body-sm-medium-fontWeight);
13056
- line-height: var(--text-body-sm-medium-lineHeight);
13057
- color: var(--fileupload-item-color-default-foreground);
13058
- white-space: nowrap;
13059
- overflow: hidden;
13060
- text-overflow: ellipsis;
13061
- }
13062
-
13063
- .muka-fileupload-item--error .muka-fileupload-item__name {
13064
- color: var(--fileupload-item-color-error-foreground);
13065
- }
13066
-
13067
- .muka-fileupload-item__meta {
13068
- font-family: var(--text-label-sm-regular-fontFamily);
13069
- font-size: var(--text-label-sm-regular-fontSize);
13070
- font-weight: var(--text-label-sm-regular-fontWeight);
13071
- line-height: var(--text-label-sm-regular-lineHeight);
13072
- color: var(--color-text-subtle-default);
13073
- }
13074
-
13075
- .muka-fileupload-item__error {
13076
- color: var(--fileupload-item-color-error-foreground);
13077
- }
13078
-
13079
- .muka-fileupload-item__progress {
13080
- margin-top: var(--spacing-1);
13081
- }
13082
-
13083
- /* Actions */
13084
- .muka-fileupload-item__actions {
13085
- display: flex;
13086
- align-items: center;
13087
- gap: var(--spacing-2);
13088
- flex-shrink: 0;
13089
- }
13090
-
13091
- .muka-fileupload-item__status-icon--success {
13092
- color: var(--color-state-success-foreground);
13093
- }
13094
-
13095
- .muka-fileupload-item__status-icon--error {
13096
- color: var(--color-state-error-foreground);
13097
- }
13098
-
13099
- .muka-fileupload-item__remove {
13100
- opacity: 0.7;
13101
- }
13102
-
13103
- .muka-fileupload-item__remove:hover {
13104
- opacity: 1;
13105
- }
13106
-