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