@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.
@@ -2007,9 +2007,10 @@ body {
2007
2007
  --bottombar-floating-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.090), 0 8px 16px 0 rgba(0, 0, 0, 0.090);
2008
2008
  --bottombar-floating-max-width: 768px;
2009
2009
  --bottombar-floating-backdrop-start: transparent;
2010
- --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.090);
2011
- --bottombar-floating-backdrop-blur: 2px;
2010
+ --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.027);
2012
2011
  --bottombar-floating-padding-top: 2rem;
2012
+ --bottombar-chat-max-width: 1024px;
2013
+ --bottombar-chat-padding: 0.75rem;
2013
2014
  --bottombar-tab-icon-size: 24px;
2014
2015
  --bottombar-tab-gap: 0.25rem;
2015
2016
  --bottombar-tab-padding-y: 0.5rem;
@@ -7396,200 +7397,6 @@ body {
7396
7397
  }
7397
7398
 
7398
7399
 
7399
- /* ListItem */
7400
- /* ListItem Component Styles - Using Muka Design Tokens */
7401
-
7402
- /* Base list item styles */
7403
- .muka-listitem {
7404
- /* Layout */
7405
- display: flex;
7406
- align-items: flex-start;
7407
- gap: var(--spacing-4);
7408
- padding: var(--spacing-5) var(--spacing-4);
7409
-
7410
- /* Background - using semantic tokens */
7411
- background-color: var(--color-surface-level3);
7412
-
7413
- /* Typography */
7414
- font-family: var(--alias-font-brand-family);
7415
-
7416
- /* Border and spacing */
7417
- border: none;
7418
- position: relative;
7419
-
7420
- /* Interaction - only apply if interactive */
7421
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
7422
- }
7423
-
7424
- /* Interactive state */
7425
- .muka-listitem--interactive {
7426
- cursor: pointer;
7427
- }
7428
-
7429
- /*
7430
- * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
7431
- * are layered on top of the item's base surface via an inset box-shadow overlay
7432
- * rather than replacing background-color. This preserves the base level (level3,
7433
- * or level2 when selected) and lets the tint read correctly on any surface.
7434
- */
7435
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
7436
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7437
- }
7438
-
7439
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
7440
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
7441
- box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
7442
- }
7443
-
7444
- /* Focus styles for accessibility */
7445
- .muka-listitem:focus-visible {
7446
- outline: 2px solid var(--color-border-focus);
7447
- outline-offset: -2px;
7448
- }
7449
-
7450
- /* Disabled state */
7451
- .muka-listitem--disabled {
7452
- opacity: 0.5;
7453
- cursor: not-allowed;
7454
- pointer-events: none;
7455
- }
7456
-
7457
- .muka-listitem--disabled:hover {
7458
- background-color: var(--color-surface-level3);
7459
- }
7460
-
7461
- /* Selected state */
7462
- .muka-listitem--selected {
7463
- background-color: var(--color-surface-level2);
7464
- }
7465
-
7466
- .muka-listitem--selected:hover {
7467
- box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
7468
- }
7469
-
7470
- /* No divider modifier */
7471
- .muka-listitem--no-divider .muka-listitem__divider {
7472
- display: none;
7473
- }
7474
-
7475
- /* Center content vertically when no caption */
7476
- .muka-listitem--no-caption {
7477
- align-items: center;
7478
- }
7479
-
7480
- /* Leading content (icon or image) */
7481
- .muka-listitem__leading {
7482
- display: flex;
7483
- align-items: center;
7484
- justify-content: center;
7485
- flex-shrink: 0;
7486
- width: 48px;
7487
- height: 48px;
7488
- }
7489
-
7490
- .muka-listitem__icon {
7491
- display: inline-flex;
7492
- align-items: center;
7493
- justify-content: center;
7494
- width: 32px;
7495
- height: 32px;
7496
- color: var(--color-text-default-default);
7497
- }
7498
-
7499
- .muka-listitem__image {
7500
- width: 48px;
7501
- height: 48px;
7502
- border-radius: var(--radius-md);
7503
- object-fit: cover;
7504
- }
7505
-
7506
- /* Main content area */
7507
- .muka-listitem__content {
7508
- flex: 1;
7509
- display: flex;
7510
- align-items: center;
7511
- gap: var(--spacing-4);
7512
- min-width: 0;
7513
- }
7514
-
7515
- .muka-listitem__text {
7516
- flex: 1;
7517
- display: flex;
7518
- flex-direction: column;
7519
- gap: var(--spacing-1);
7520
- min-width: 0;
7521
- }
7522
-
7523
- /* Label text */
7524
- .muka-listitem__label {
7525
- margin: 0;
7526
- padding: 0;
7527
-
7528
- /* Typography - using semantic tokens */
7529
- font-family: var(--alias-font-plain-family);
7530
- font-weight: var(--alias-font-plain-weight-semibold, 600);
7531
- font-size: var(--text-label-md-fontSize);
7532
- line-height: var(--text-label-md-lineHeight);
7533
- color: var(--color-text-default-default);
7534
-
7535
- /* Text handling */
7536
- overflow: hidden;
7537
- text-overflow: ellipsis;
7538
- white-space: nowrap;
7539
- }
7540
-
7541
- /* Caption text */
7542
- .muka-listitem__caption {
7543
- margin: 0;
7544
- padding: 0;
7545
-
7546
- /* Typography - using semantic tokens */
7547
- font-family: var(--alias-font-plain-family);
7548
- font-weight: var(--alias-font-plain-weight-regular, 400);
7549
- font-size: var(--text-body-sm-fontSize);
7550
- line-height: var(--text-body-sm-lineHeight);
7551
- color: var(--color-text-subtle-default);
7552
-
7553
- /* Text handling */
7554
- overflow: hidden;
7555
- text-overflow: ellipsis;
7556
- white-space: nowrap;
7557
- }
7558
-
7559
- /* Trailing chevron */
7560
- .muka-listitem__chevron {
7561
- display: inline-flex;
7562
- align-items: center;
7563
- justify-content: center;
7564
- flex-shrink: 0;
7565
- width: 24px;
7566
- height: 24px;
7567
- color: var(--color-text-subtle-default);
7568
- }
7569
-
7570
- /* Bottom divider */
7571
- .muka-listitem__divider {
7572
- position: absolute;
7573
- bottom: 0;
7574
- left: 0;
7575
- right: 0;
7576
- height: 1px;
7577
- background-color: var(--color-border-default);
7578
- }
7579
-
7580
- /* Button and anchor specific styles */
7581
- button.muka-listitem,
7582
- a.muka-listitem {
7583
- text-align: left;
7584
- width: 100%;
7585
- }
7586
-
7587
- /* List item specific styles */
7588
- li.muka-listitem {
7589
- list-style: none;
7590
- }
7591
-
7592
-
7593
7400
  /* LicensePlateInput */
7594
7401
  /* LicensePlateInput — Dutch RDW-style plate input
7595
7402
  *
@@ -8114,229 +7921,491 @@ li.muka-listitem {
8114
7921
  }
8115
7922
 
8116
7923
 
8117
- /* FAB */
8118
- /* FAB (Floating Action Button) Component Styles */
7924
+ /* FileUpload */
7925
+ /* FileUpload Component Styles */
8119
7926
 
8120
- .muka-fab {
8121
- position: fixed;
8122
- z-index: 40;
7927
+ .muka-fileupload-wrapper {
7928
+ display: flex;
7929
+ flex-direction: column;
7930
+ gap: var(--spacing-3);
7931
+ width: 100%;
7932
+ }
8123
7933
 
8124
- display: inline-flex;
7934
+ /* Dropzone */
7935
+ .muka-fileupload {
7936
+ display: flex;
7937
+ flex-direction: column;
8125
7938
  align-items: center;
8126
7939
  justify-content: center;
8127
- gap: var(--spacing-2);
8128
-
8129
- border: none;
7940
+ gap: var(--fileupload-dropzone-gap);
7941
+ padding: var(--fileupload-dropzone-padding-md);
7942
+ background-color: var(--fileupload-dropzone-color-default-background);
7943
+ border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
7944
+ border-radius: var(--fileupload-dropzone-radius);
8130
7945
  cursor: pointer;
8131
- font-family: inherit;
8132
- box-shadow: var(--shadow-level4);
8133
-
8134
- transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
8135
- -webkit-tap-highlight-color: transparent;
8136
- }
8137
-
8138
- .muka-fab:active {
8139
- transform: scale(0.96);
8140
- box-shadow: var(--shadow-level3);
7946
+ transition: background-color 0.2s ease, border-color 0.2s ease;
7947
+ text-align: center;
7948
+ min-height: 120px;
8141
7949
  }
8142
7950
 
8143
- .muka-fab:focus-visible {
8144
- outline: 2px solid var(--color-action-default);
7951
+ .muka-fileupload:focus-visible {
7952
+ outline: 2px solid var(--color-border-focus);
8145
7953
  outline-offset: 2px;
8146
7954
  }
8147
7955
 
8148
- .muka-fab:disabled {
8149
- opacity: 0.5;
8150
- cursor: not-allowed;
8151
- box-shadow: none;
7956
+ /* Size variants */
7957
+ .muka-fileupload--sm {
7958
+ padding: var(--fileupload-dropzone-padding-sm);
7959
+ min-height: 80px;
8152
7960
  }
8153
7961
 
8154
- /* ─── Variants ────────────────────────────────────────── */
8155
-
8156
- .muka-fab--primary {
8157
- background-color: var(--color-action-default);
8158
- color: var(--color-text-inverse-default);
7962
+ .muka-fileupload--lg {
7963
+ padding: var(--fileupload-dropzone-padding-lg);
7964
+ min-height: 160px;
8159
7965
  }
8160
7966
 
8161
- .muka-fab--primary:hover:not(:disabled) {
8162
- background-color: var(--color-action-hover);
8163
- }
8164
-
8165
- .muka-fab--secondary {
8166
- background-color: var(--color-surface-level3);
8167
- color: var(--color-text-default-default);
7967
+ /* Button variant */
7968
+ .muka-fileupload--button {
7969
+ flex-direction: row;
7970
+ min-height: auto;
7971
+ padding: var(--spacing-2) var(--spacing-3);
7972
+ border-style: solid;
7973
+ border-width: var(--border-width-regular);
7974
+ border-radius: var(--border-radius-md);
8168
7975
  }
8169
7976
 
8170
- .muka-fab--secondary:hover:not(:disabled) {
8171
- background-color: var(--color-surface-level2);
7977
+ /* Hover state */
7978
+ .muka-fileupload:hover:not(.muka-fileupload--disabled) {
7979
+ background-color: var(--fileupload-dropzone-color-hover-background);
7980
+ border-color: var(--fileupload-dropzone-color-hover-border);
8172
7981
  }
8173
7982
 
8174
- /* ─── Sizes (circular by default) ─────────────────────── */
8175
-
8176
- .muka-fab--md {
8177
- width: 56px;
8178
- height: 56px;
8179
- border-radius: 50%;
7983
+ /* Active/drag state */
7984
+ .muka-fileupload--active:not(.muka-fileupload--disabled) {
7985
+ background-color: var(--fileupload-dropzone-color-active-background);
7986
+ border-color: var(--fileupload-dropzone-color-active-border);
8180
7987
  }
8181
7988
 
8182
- .muka-fab--lg {
8183
- width: 64px;
8184
- height: 64px;
8185
- border-radius: 50%;
7989
+ /* Disabled state */
7990
+ .muka-fileupload--disabled {
7991
+ background-color: var(--fileupload-dropzone-color-disabled-background);
7992
+ border-color: var(--fileupload-dropzone-color-disabled-border);
7993
+ cursor: not-allowed;
7994
+ opacity: 0.6;
8186
7995
  }
8187
7996
 
8188
- /* ─── Extended (pill shape with label) ────────────────── */
8189
-
8190
- .muka-fab--extended {
8191
- width: auto;
8192
- height: auto;
8193
- padding: var(--spacing-3) var(--spacing-4);
8194
- border-radius: var(--radius-full);
7997
+ /* Hidden file input */
7998
+ .muka-fileupload__input {
7999
+ position: absolute;
8000
+ width: 1px;
8001
+ height: 1px;
8002
+ padding: 0;
8003
+ margin: -1px;
8004
+ overflow: hidden;
8005
+ clip: rect(0, 0, 0, 0);
8006
+ white-space: nowrap;
8007
+ border: 0;
8195
8008
  }
8196
8009
 
8197
- .muka-fab--extended.muka-fab--lg {
8198
- padding: var(--spacing-4) var(--spacing-5);
8010
+ /* Content container */
8011
+ .muka-fileupload__content {
8012
+ display: flex;
8013
+ flex-direction: column;
8014
+ align-items: center;
8015
+ gap: var(--spacing-2);
8199
8016
  }
8200
8017
 
8201
- .muka-fab__icon {
8202
- display: inline-flex;
8018
+ /* Upload icon */
8019
+ .muka-fileupload__icon {
8020
+ display: flex;
8203
8021
  align-items: center;
8204
8022
  justify-content: center;
8205
- width: 24px;
8206
- height: 24px;
8023
+ width: var(--size-3xl);
8024
+ height: var(--size-3xl);
8025
+ color: var(--fileupload-dropzone-color-default-foreground);
8207
8026
  }
8208
8027
 
8209
- .muka-fab__icon svg {
8028
+ .muka-fileupload__icon svg {
8210
8029
  width: 100%;
8211
8030
  height: 100%;
8212
8031
  }
8213
8032
 
8214
- .muka-fab__label {
8215
- font-family: var(--text-label-md-semibold-fontFamily);
8216
- font-weight: var(--text-label-md-semibold-fontWeight);
8217
- font-size: var(--text-label-md-semibold-fontSize);
8218
- line-height: var(--text-label-md-semibold-lineHeight);
8033
+ .muka-fileupload--sm .muka-fileupload__icon {
8034
+ width: var(--size-2xl);
8035
+ height: var(--size-2xl);
8219
8036
  }
8220
8037
 
8221
- /* ─── Positioning ─────────────────────────────────────── */
8222
-
8223
- .muka-fab--bottom-right {
8224
- right: var(--spacing-4);
8225
- bottom: var(--spacing-4);
8038
+ .muka-fileupload--lg .muka-fileupload__icon {
8039
+ width: var(--size-4xl);
8040
+ height: var(--size-4xl);
8226
8041
  }
8227
8042
 
8228
- .muka-fab--bottom-left {
8229
- left: var(--spacing-4);
8230
- bottom: var(--spacing-4);
8043
+ /* Text */
8044
+ .muka-fileupload__text {
8045
+ font-family: var(--text-body-md-regular-fontFamily);
8046
+ font-size: var(--text-body-md-regular-fontSize);
8047
+ font-weight: var(--text-body-md-regular-fontWeight);
8048
+ line-height: var(--text-body-md-regular-lineHeight);
8049
+ color: var(--color-text-default-default);
8231
8050
  }
8232
8051
 
8233
- .muka-fab--bottom-center {
8234
- left: 50%;
8235
- bottom: var(--spacing-4);
8236
- transform: translateX(-50%);
8052
+ .muka-fileupload--sm .muka-fileupload__text {
8053
+ font-size: var(--text-body-sm-regular-fontSize);
8237
8054
  }
8238
8055
 
8239
- .muka-fab--bottom-center:active {
8240
- transform: translateX(-50%) scale(0.96);
8056
+ /* Hint text */
8057
+ .muka-fileupload__hint {
8058
+ font-family: var(--text-label-sm-regular-fontFamily);
8059
+ font-size: var(--text-label-sm-regular-fontSize);
8060
+ font-weight: var(--text-label-sm-regular-fontWeight);
8061
+ line-height: var(--text-label-sm-regular-lineHeight);
8062
+ color: var(--fileupload-dropzone-color-default-foreground);
8241
8063
  }
8242
8064
 
8243
- /* Add the iOS home-indicator inset to the bottom offset. */
8244
- .muka-fab:not(.muka-fab--no-safe-area) {
8245
- bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
8065
+ /* File list */
8066
+ .muka-fileupload__list {
8067
+ display: flex;
8068
+ flex-direction: column;
8069
+ gap: var(--spacing-2);
8070
+ list-style: none;
8071
+ margin: 0;
8072
+ padding: 0;
8246
8073
  }
8247
8074
 
8248
- /* Lateral safe-area for landscape iPhone with notch. */
8249
- .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
8250
- right: max(var(--spacing-4), env(safe-area-inset-right));
8075
+ .muka-fileupload__list li {
8076
+ margin: 0;
8077
+ padding: 0;
8251
8078
  }
8252
8079
 
8253
- .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
8254
- left: max(var(--spacing-4), env(safe-area-inset-left));
8080
+ /* File item */
8081
+ .muka-fileupload-item {
8082
+ display: flex;
8083
+ align-items: center;
8084
+ gap: var(--fileupload-item-gap);
8085
+ padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
8086
+ background-color: var(--fileupload-item-color-default-background);
8087
+ border-radius: var(--fileupload-item-radius);
8255
8088
  }
8256
8089
 
8090
+ .muka-fileupload-item--error {
8091
+ background-color: var(--fileupload-item-color-error-background);
8092
+ }
8257
8093
 
8258
- /* EmptyState */
8259
- /* EmptyState Component Styles - Using Muka Design Tokens */
8094
+ .muka-fileupload-item--success {
8095
+ background-color: var(--fileupload-item-color-default-background);
8096
+ }
8260
8097
 
8261
- .muka-emptystate {
8098
+ /* Preview/Icon container */
8099
+ .muka-fileupload-item__preview {
8262
8100
  display: flex;
8263
- flex-direction: column;
8264
8101
  align-items: center;
8265
8102
  justify-content: center;
8266
- gap: var(--emptystate-container-gap);
8267
- max-width: var(--emptystate-container-maxWidth);
8268
- margin: 0 auto;
8269
- text-align: center;
8103
+ flex-shrink: 0;
8104
+ width: var(--fileupload-preview-size);
8105
+ height: var(--fileupload-preview-size);
8106
+ border-radius: var(--fileupload-preview-radius);
8107
+ overflow: hidden;
8108
+ background-color: var(--color-surface-level1);
8270
8109
  }
8271
8110
 
8272
- /* Alignment variants */
8273
- .muka-emptystate--left {
8274
- align-items: flex-start;
8275
- text-align: left;
8111
+ .muka-fileupload-item__thumbnail {
8112
+ width: 100%;
8113
+ height: 100%;
8114
+ object-fit: cover;
8276
8115
  }
8277
8116
 
8278
- /* Size variants */
8279
- .muka-emptystate--sm {
8280
- padding: var(--emptystate-container-padding-sm);
8117
+ .muka-fileupload-item__icon {
8118
+ color: var(--color-text-subtle-default);
8281
8119
  }
8282
8120
 
8283
- .muka-emptystate--md {
8284
- padding: var(--emptystate-container-padding-md);
8121
+ /* File info */
8122
+ .muka-fileupload-item__info {
8123
+ flex: 1;
8124
+ min-width: 0;
8125
+ display: flex;
8126
+ flex-direction: column;
8127
+ gap: var(--spacing-1);
8285
8128
  }
8286
8129
 
8287
- .muka-emptystate--lg {
8288
- padding: var(--emptystate-container-padding-lg);
8130
+ .muka-fileupload-item__name {
8131
+ font-family: var(--text-body-sm-medium-fontFamily);
8132
+ font-size: var(--text-body-sm-medium-fontSize);
8133
+ font-weight: var(--text-body-sm-medium-fontWeight);
8134
+ line-height: var(--text-body-sm-medium-lineHeight);
8135
+ color: var(--fileupload-item-color-default-foreground);
8136
+ white-space: nowrap;
8137
+ overflow: hidden;
8138
+ text-overflow: ellipsis;
8289
8139
  }
8290
8140
 
8291
- /* Visual (icon or illustration) */
8292
- .muka-emptystate__visual {
8293
- display: flex;
8294
- align-items: center;
8295
- justify-content: center;
8296
- color: var(--emptystate-icon-color);
8297
- flex-shrink: 0;
8141
+ .muka-fileupload-item--error .muka-fileupload-item__name {
8142
+ color: var(--fileupload-item-color-error-foreground);
8298
8143
  }
8299
8144
 
8300
- .muka-emptystate--sm .muka-emptystate__visual {
8301
- width: var(--emptystate-icon-size-sm);
8302
- height: var(--emptystate-icon-size-sm);
8145
+ .muka-fileupload-item__meta {
8146
+ font-family: var(--text-label-sm-regular-fontFamily);
8147
+ font-size: var(--text-label-sm-regular-fontSize);
8148
+ font-weight: var(--text-label-sm-regular-fontWeight);
8149
+ line-height: var(--text-label-sm-regular-lineHeight);
8150
+ color: var(--color-text-subtle-default);
8303
8151
  }
8304
8152
 
8305
- .muka-emptystate--md .muka-emptystate__visual {
8306
- width: var(--emptystate-icon-size-md);
8307
- height: var(--emptystate-icon-size-md);
8153
+ .muka-fileupload-item__error {
8154
+ color: var(--fileupload-item-color-error-foreground);
8308
8155
  }
8309
8156
 
8310
- .muka-emptystate--lg .muka-emptystate__visual {
8311
- width: var(--emptystate-icon-size-lg);
8312
- height: var(--emptystate-icon-size-lg);
8157
+ .muka-fileupload-item__progress {
8158
+ margin-top: var(--spacing-1);
8313
8159
  }
8314
8160
 
8315
- .muka-emptystate__visual svg {
8316
- width: 100%;
8317
- height: 100%;
8161
+ /* Actions */
8162
+ .muka-fileupload-item__actions {
8163
+ display: flex;
8164
+ align-items: center;
8165
+ gap: var(--spacing-2);
8166
+ flex-shrink: 0;
8318
8167
  }
8319
8168
 
8320
- .muka-emptystate__visual img {
8321
- width: 100%;
8322
- height: 100%;
8323
- object-fit: contain;
8169
+ .muka-fileupload-item__status-icon--success {
8170
+ color: var(--color-state-success-foreground);
8324
8171
  }
8325
8172
 
8326
- /* Content */
8327
- .muka-emptystate__content {
8328
- display: flex;
8329
- flex-direction: column;
8330
- gap: var(--spacing-2);
8173
+ .muka-fileupload-item__status-icon--error {
8174
+ color: var(--color-state-error-foreground);
8331
8175
  }
8332
8176
 
8333
- .muka-emptystate--left .muka-emptystate__content {
8334
- align-items: flex-start;
8177
+ .muka-fileupload-item__remove {
8178
+ opacity: 0.7;
8335
8179
  }
8336
8180
 
8337
- /* Title */
8338
- .muka-emptystate__title {
8339
- color: var(--emptystate-title-color);
8181
+ .muka-fileupload-item__remove:hover {
8182
+ opacity: 1;
8183
+ }
8184
+
8185
+
8186
+ /* FAB */
8187
+ /* FAB (Floating Action Button) Component Styles */
8188
+
8189
+ .muka-fab {
8190
+ position: fixed;
8191
+ z-index: 40;
8192
+
8193
+ display: inline-flex;
8194
+ align-items: center;
8195
+ justify-content: center;
8196
+ gap: var(--spacing-2);
8197
+
8198
+ border: none;
8199
+ cursor: pointer;
8200
+ font-family: inherit;
8201
+ box-shadow: var(--shadow-level4);
8202
+
8203
+ transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
8204
+ -webkit-tap-highlight-color: transparent;
8205
+ }
8206
+
8207
+ .muka-fab:active {
8208
+ transform: scale(0.96);
8209
+ box-shadow: var(--shadow-level3);
8210
+ }
8211
+
8212
+ .muka-fab:focus-visible {
8213
+ outline: 2px solid var(--color-action-default);
8214
+ outline-offset: 2px;
8215
+ }
8216
+
8217
+ .muka-fab:disabled {
8218
+ opacity: 0.5;
8219
+ cursor: not-allowed;
8220
+ box-shadow: none;
8221
+ }
8222
+
8223
+ /* ─── Variants ────────────────────────────────────────── */
8224
+
8225
+ .muka-fab--primary {
8226
+ background-color: var(--color-action-default);
8227
+ color: var(--color-text-inverse-default);
8228
+ }
8229
+
8230
+ .muka-fab--primary:hover:not(:disabled) {
8231
+ background-color: var(--color-action-hover);
8232
+ }
8233
+
8234
+ .muka-fab--secondary {
8235
+ background-color: var(--color-surface-level3);
8236
+ color: var(--color-text-default-default);
8237
+ }
8238
+
8239
+ .muka-fab--secondary:hover:not(:disabled) {
8240
+ background-color: var(--color-surface-level2);
8241
+ }
8242
+
8243
+ /* ─── Sizes (circular by default) ─────────────────────── */
8244
+
8245
+ .muka-fab--md {
8246
+ width: 56px;
8247
+ height: 56px;
8248
+ border-radius: 50%;
8249
+ }
8250
+
8251
+ .muka-fab--lg {
8252
+ width: 64px;
8253
+ height: 64px;
8254
+ border-radius: 50%;
8255
+ }
8256
+
8257
+ /* ─── Extended (pill shape with label) ────────────────── */
8258
+
8259
+ .muka-fab--extended {
8260
+ width: auto;
8261
+ height: auto;
8262
+ padding: var(--spacing-3) var(--spacing-4);
8263
+ border-radius: var(--radius-full);
8264
+ }
8265
+
8266
+ .muka-fab--extended.muka-fab--lg {
8267
+ padding: var(--spacing-4) var(--spacing-5);
8268
+ }
8269
+
8270
+ .muka-fab__icon {
8271
+ display: inline-flex;
8272
+ align-items: center;
8273
+ justify-content: center;
8274
+ width: 24px;
8275
+ height: 24px;
8276
+ }
8277
+
8278
+ .muka-fab__icon svg {
8279
+ width: 100%;
8280
+ height: 100%;
8281
+ }
8282
+
8283
+ .muka-fab__label {
8284
+ font-family: var(--text-label-md-semibold-fontFamily);
8285
+ font-weight: var(--text-label-md-semibold-fontWeight);
8286
+ font-size: var(--text-label-md-semibold-fontSize);
8287
+ line-height: var(--text-label-md-semibold-lineHeight);
8288
+ }
8289
+
8290
+ /* ─── Positioning ─────────────────────────────────────── */
8291
+
8292
+ .muka-fab--bottom-right {
8293
+ right: var(--spacing-4);
8294
+ bottom: var(--spacing-4);
8295
+ }
8296
+
8297
+ .muka-fab--bottom-left {
8298
+ left: var(--spacing-4);
8299
+ bottom: var(--spacing-4);
8300
+ }
8301
+
8302
+ .muka-fab--bottom-center {
8303
+ left: 50%;
8304
+ bottom: var(--spacing-4);
8305
+ transform: translateX(-50%);
8306
+ }
8307
+
8308
+ .muka-fab--bottom-center:active {
8309
+ transform: translateX(-50%) scale(0.96);
8310
+ }
8311
+
8312
+ /* Add the iOS home-indicator inset to the bottom offset. */
8313
+ .muka-fab:not(.muka-fab--no-safe-area) {
8314
+ bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
8315
+ }
8316
+
8317
+ /* Lateral safe-area for landscape iPhone with notch. */
8318
+ .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
8319
+ right: max(var(--spacing-4), env(safe-area-inset-right));
8320
+ }
8321
+
8322
+ .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
8323
+ left: max(var(--spacing-4), env(safe-area-inset-left));
8324
+ }
8325
+
8326
+
8327
+ /* EmptyState */
8328
+ /* EmptyState Component Styles - Using Muka Design Tokens */
8329
+
8330
+ .muka-emptystate {
8331
+ display: flex;
8332
+ flex-direction: column;
8333
+ align-items: center;
8334
+ justify-content: center;
8335
+ gap: var(--emptystate-container-gap);
8336
+ max-width: var(--emptystate-container-maxWidth);
8337
+ margin: 0 auto;
8338
+ text-align: center;
8339
+ }
8340
+
8341
+ /* Alignment variants */
8342
+ .muka-emptystate--left {
8343
+ align-items: flex-start;
8344
+ text-align: left;
8345
+ }
8346
+
8347
+ /* Size variants */
8348
+ .muka-emptystate--sm {
8349
+ padding: var(--emptystate-container-padding-sm);
8350
+ }
8351
+
8352
+ .muka-emptystate--md {
8353
+ padding: var(--emptystate-container-padding-md);
8354
+ }
8355
+
8356
+ .muka-emptystate--lg {
8357
+ padding: var(--emptystate-container-padding-lg);
8358
+ }
8359
+
8360
+ /* Visual (icon or illustration) */
8361
+ .muka-emptystate__visual {
8362
+ display: flex;
8363
+ align-items: center;
8364
+ justify-content: center;
8365
+ color: var(--emptystate-icon-color);
8366
+ flex-shrink: 0;
8367
+ }
8368
+
8369
+ .muka-emptystate--sm .muka-emptystate__visual {
8370
+ width: var(--emptystate-icon-size-sm);
8371
+ height: var(--emptystate-icon-size-sm);
8372
+ }
8373
+
8374
+ .muka-emptystate--md .muka-emptystate__visual {
8375
+ width: var(--emptystate-icon-size-md);
8376
+ height: var(--emptystate-icon-size-md);
8377
+ }
8378
+
8379
+ .muka-emptystate--lg .muka-emptystate__visual {
8380
+ width: var(--emptystate-icon-size-lg);
8381
+ height: var(--emptystate-icon-size-lg);
8382
+ }
8383
+
8384
+ .muka-emptystate__visual svg {
8385
+ width: 100%;
8386
+ height: 100%;
8387
+ }
8388
+
8389
+ .muka-emptystate__visual img {
8390
+ width: 100%;
8391
+ height: 100%;
8392
+ object-fit: contain;
8393
+ }
8394
+
8395
+ /* Content */
8396
+ .muka-emptystate__content {
8397
+ display: flex;
8398
+ flex-direction: column;
8399
+ gap: var(--spacing-2);
8400
+ }
8401
+
8402
+ .muka-emptystate--left .muka-emptystate__content {
8403
+ align-items: flex-start;
8404
+ }
8405
+
8406
+ /* Title */
8407
+ .muka-emptystate__title {
8408
+ color: var(--emptystate-title-color);
8340
8409
  margin: 0;
8341
8410
  font-family: var(--text-heading-h4-fontFamily);
8342
8411
  font-weight: var(--text-heading-h4-fontWeight);
@@ -9900,33 +9969,227 @@ li.muka-listitem {
9900
9969
  }
9901
9970
 
9902
9971
 
9903
- /* Chip */
9904
- /* Chip Component Styles - Using Muka Design Tokens (Figma: Chip) */
9905
-
9906
- .muka-chip {
9907
- display: inline-flex;
9908
- align-items: center;
9909
- border-radius: var(--border-radius-full);
9910
- white-space: nowrap;
9911
- user-select: none;
9912
- border: var(--border-width-regular) solid transparent;
9913
- box-sizing: border-box;
9914
- }
9972
+ /* ListItem */
9973
+ /* ListItem Component Styles - Using Muka Design Tokens */
9915
9974
 
9916
- /*
9917
- * Sizes — height, gap, type, and default (label-edge) horizontal padding.
9918
- * Vertical centering is handled by the fixed height + align-items: center.
9919
- * The side that carries an adornment (leading icon / dismiss button) gets a
9920
- * tighter padding, applied via the --has-icon / --dismissible modifiers below.
9921
- */
9922
- .muka-chip--sm {
9923
- height: var(--chip-size-height-sm);
9924
- gap: var(--chip-gap-sm);
9925
- padding: 0 var(--chip-padding-label-sm);
9926
- font-family: var(--text-label-sm-regular-fontFamily);
9927
- font-weight: var(--text-label-sm-regular-fontWeight);
9928
- font-size: var(--text-label-sm-regular-fontSize);
9929
- line-height: var(--text-label-sm-regular-lineHeight);
9975
+ /* Base list item styles */
9976
+ .muka-listitem {
9977
+ /* Layout */
9978
+ display: flex;
9979
+ align-items: flex-start;
9980
+ gap: var(--spacing-4);
9981
+ padding: var(--spacing-5) var(--spacing-4);
9982
+
9983
+ /* Background - using semantic tokens */
9984
+ background-color: var(--color-surface-level3);
9985
+
9986
+ /* Typography */
9987
+ font-family: var(--alias-font-brand-family);
9988
+
9989
+ /* Border and spacing */
9990
+ border: none;
9991
+ position: relative;
9992
+
9993
+ /* Interaction - only apply if interactive */
9994
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
9995
+ }
9996
+
9997
+ /* Interactive state */
9998
+ .muka-listitem--interactive {
9999
+ cursor: pointer;
10000
+ }
10001
+
10002
+ /*
10003
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
10004
+ * are layered on top of the item's base surface via an inset box-shadow overlay
10005
+ * rather than replacing background-color. This preserves the base level (level3,
10006
+ * or level2 when selected) and lets the tint read correctly on any surface.
10007
+ */
10008
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
10009
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10010
+ }
10011
+
10012
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
10013
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
10014
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
10015
+ }
10016
+
10017
+ /* Focus styles for accessibility */
10018
+ .muka-listitem:focus-visible {
10019
+ outline: 2px solid var(--color-border-focus);
10020
+ outline-offset: -2px;
10021
+ }
10022
+
10023
+ /* Disabled state */
10024
+ .muka-listitem--disabled {
10025
+ opacity: 0.5;
10026
+ cursor: not-allowed;
10027
+ pointer-events: none;
10028
+ }
10029
+
10030
+ .muka-listitem--disabled:hover {
10031
+ background-color: var(--color-surface-level3);
10032
+ }
10033
+
10034
+ /* Selected state */
10035
+ .muka-listitem--selected {
10036
+ background-color: var(--color-surface-level2);
10037
+ }
10038
+
10039
+ .muka-listitem--selected:hover {
10040
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
10041
+ }
10042
+
10043
+ /* No divider modifier */
10044
+ .muka-listitem--no-divider .muka-listitem__divider {
10045
+ display: none;
10046
+ }
10047
+
10048
+ /* Center content vertically when no caption */
10049
+ .muka-listitem--no-caption {
10050
+ align-items: center;
10051
+ }
10052
+
10053
+ /* Leading content (icon or image) */
10054
+ .muka-listitem__leading {
10055
+ display: flex;
10056
+ align-items: center;
10057
+ justify-content: center;
10058
+ flex-shrink: 0;
10059
+ width: 48px;
10060
+ height: 48px;
10061
+ }
10062
+
10063
+ .muka-listitem__icon {
10064
+ display: inline-flex;
10065
+ align-items: center;
10066
+ justify-content: center;
10067
+ width: 32px;
10068
+ height: 32px;
10069
+ color: var(--color-text-default-default);
10070
+ }
10071
+
10072
+ .muka-listitem__image {
10073
+ width: 48px;
10074
+ height: 48px;
10075
+ border-radius: var(--radius-md);
10076
+ object-fit: cover;
10077
+ }
10078
+
10079
+ /* Main content area */
10080
+ .muka-listitem__content {
10081
+ flex: 1;
10082
+ display: flex;
10083
+ align-items: center;
10084
+ gap: var(--spacing-4);
10085
+ min-width: 0;
10086
+ }
10087
+
10088
+ .muka-listitem__text {
10089
+ flex: 1;
10090
+ display: flex;
10091
+ flex-direction: column;
10092
+ gap: var(--spacing-1);
10093
+ min-width: 0;
10094
+ }
10095
+
10096
+ /* Label text */
10097
+ .muka-listitem__label {
10098
+ margin: 0;
10099
+ padding: 0;
10100
+
10101
+ /* Typography - using semantic tokens */
10102
+ font-family: var(--alias-font-plain-family);
10103
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
10104
+ font-size: var(--text-label-md-fontSize);
10105
+ line-height: var(--text-label-md-lineHeight);
10106
+ color: var(--color-text-default-default);
10107
+
10108
+ /* Text handling */
10109
+ overflow: hidden;
10110
+ text-overflow: ellipsis;
10111
+ white-space: nowrap;
10112
+ }
10113
+
10114
+ /* Caption text */
10115
+ .muka-listitem__caption {
10116
+ margin: 0;
10117
+ padding: 0;
10118
+
10119
+ /* Typography - using semantic tokens */
10120
+ font-family: var(--alias-font-plain-family);
10121
+ font-weight: var(--alias-font-plain-weight-regular, 400);
10122
+ font-size: var(--text-body-sm-fontSize);
10123
+ line-height: var(--text-body-sm-lineHeight);
10124
+ color: var(--color-text-subtle-default);
10125
+
10126
+ /* Text handling */
10127
+ overflow: hidden;
10128
+ text-overflow: ellipsis;
10129
+ white-space: nowrap;
10130
+ }
10131
+
10132
+ /* Trailing chevron */
10133
+ .muka-listitem__chevron {
10134
+ display: inline-flex;
10135
+ align-items: center;
10136
+ justify-content: center;
10137
+ flex-shrink: 0;
10138
+ width: 24px;
10139
+ height: 24px;
10140
+ color: var(--color-text-subtle-default);
10141
+ }
10142
+
10143
+ /* Bottom divider */
10144
+ .muka-listitem__divider {
10145
+ position: absolute;
10146
+ bottom: 0;
10147
+ left: 0;
10148
+ right: 0;
10149
+ height: 1px;
10150
+ background-color: var(--color-border-default);
10151
+ }
10152
+
10153
+ /* Button and anchor specific styles */
10154
+ button.muka-listitem,
10155
+ a.muka-listitem {
10156
+ text-align: left;
10157
+ width: 100%;
10158
+ }
10159
+
10160
+ /* List item specific styles */
10161
+ li.muka-listitem {
10162
+ list-style: none;
10163
+ }
10164
+
10165
+
10166
+ /* Chip */
10167
+ /* Chip Component Styles - Using Muka Design Tokens (Figma: Chip) */
10168
+
10169
+ .muka-chip {
10170
+ display: inline-flex;
10171
+ align-items: center;
10172
+ border-radius: var(--border-radius-full);
10173
+ white-space: nowrap;
10174
+ user-select: none;
10175
+ border: var(--border-width-regular) solid transparent;
10176
+ box-sizing: border-box;
10177
+ }
10178
+
10179
+ /*
10180
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
10181
+ * Vertical centering is handled by the fixed height + align-items: center.
10182
+ * The side that carries an adornment (leading icon / dismiss button) gets a
10183
+ * tighter padding, applied via the --has-icon / --dismissible modifiers below.
10184
+ */
10185
+ .muka-chip--sm {
10186
+ height: var(--chip-size-height-sm);
10187
+ gap: var(--chip-gap-sm);
10188
+ padding: 0 var(--chip-padding-label-sm);
10189
+ font-family: var(--text-label-sm-regular-fontFamily);
10190
+ font-weight: var(--text-label-sm-regular-fontWeight);
10191
+ font-size: var(--text-label-sm-regular-fontSize);
10192
+ line-height: var(--text-label-sm-regular-lineHeight);
9930
10193
  }
9931
10194
 
9932
10195
  .muka-chip--md {
@@ -10967,25 +11230,107 @@ li.muka-listitem {
10967
11230
  }
10968
11231
 
10969
11232
 
10970
- /* Button */
10971
- /* Button Component Styles - Using Muka Design Tokens */
11233
+ /* Breadcrumb */
11234
+ /* Breadcrumb Component Styles */
10972
11235
 
10973
- /* Base button styles */
10974
- .muka-button {
10975
- /* Layout */
11236
+ .muka-breadcrumb__list {
11237
+ display: flex;
11238
+ align-items: center;
11239
+ flex-wrap: wrap;
11240
+ list-style: none;
11241
+ margin: 0;
11242
+ padding: 0;
11243
+ gap: var(--spacing-1);
11244
+ }
11245
+
11246
+ .muka-breadcrumb__item {
10976
11247
  display: inline-flex;
10977
11248
  align-items: center;
10978
- justify-content: center;
11249
+ gap: var(--spacing-1);
11250
+ }
10979
11251
 
10980
- /* Typography - using semantic tokens */
10981
- font-family: var(--alias-font-brand-family);
10982
- font-weight: var(--alias-font-brand-weight-semibold);
11252
+ .muka-breadcrumb__icon {
11253
+ display: inline-flex;
11254
+ align-items: center;
11255
+ color: var(--color-text-subtle-default);
11256
+ }
11257
+
11258
+ /* Link styles */
11259
+ .muka-breadcrumb__link {
11260
+ color: var(--color-text-subtle-default);
10983
11261
  text-decoration: none;
10984
-
10985
- /* Interaction */
10986
11262
  border: none;
11263
+ background: none;
11264
+ padding: 0;
10987
11265
  cursor: pointer;
10988
- user-select: none;
11266
+ font: inherit;
11267
+ transition: color 0.15s ease;
11268
+ }
11269
+
11270
+ .muka-breadcrumb__link:hover {
11271
+ color: var(--color-text-action-default);
11272
+ text-decoration: underline;
11273
+ }
11274
+
11275
+ /* Current page (last item) */
11276
+ .muka-breadcrumb__current {
11277
+ color: var(--color-text-default-default);
11278
+ font-weight: 600;
11279
+ }
11280
+
11281
+ /* Separator */
11282
+ .muka-breadcrumb__separator {
11283
+ color: var(--color-text-subtle-default);
11284
+ user-select: none;
11285
+ }
11286
+
11287
+ /* Ellipsis */
11288
+ .muka-breadcrumb__ellipsis {
11289
+ color: var(--color-text-subtle-default);
11290
+ }
11291
+
11292
+ /* Size variants */
11293
+ .muka-breadcrumb--sm {
11294
+ font-family: var(--text-label-sm-regular-fontFamily);
11295
+ font-weight: var(--text-label-sm-regular-fontWeight);
11296
+ font-size: var(--text-label-sm-regular-fontSize);
11297
+ line-height: var(--text-label-sm-regular-lineHeight);
11298
+ }
11299
+
11300
+ .muka-breadcrumb--md {
11301
+ font-family: var(--text-label-md-regular-fontFamily);
11302
+ font-weight: var(--text-label-md-regular-fontWeight);
11303
+ font-size: var(--text-label-md-regular-fontSize);
11304
+ line-height: var(--text-label-md-regular-lineHeight);
11305
+ }
11306
+
11307
+ .muka-breadcrumb--lg {
11308
+ font-family: var(--text-label-lg-regular-fontFamily);
11309
+ font-weight: var(--text-label-lg-regular-fontWeight);
11310
+ font-size: var(--text-label-lg-regular-fontSize);
11311
+ line-height: var(--text-label-lg-regular-lineHeight);
11312
+ }
11313
+
11314
+
11315
+ /* Button */
11316
+ /* Button Component Styles - Using Muka Design Tokens */
11317
+
11318
+ /* Base button styles */
11319
+ .muka-button {
11320
+ /* Layout */
11321
+ display: inline-flex;
11322
+ align-items: center;
11323
+ justify-content: center;
11324
+
11325
+ /* Typography - using semantic tokens */
11326
+ font-family: var(--alias-font-brand-family);
11327
+ font-weight: var(--alias-font-brand-weight-semibold);
11328
+ text-decoration: none;
11329
+
11330
+ /* Interaction */
11331
+ border: none;
11332
+ cursor: pointer;
11333
+ user-select: none;
10989
11334
  transition: all 0.2s ease;
10990
11335
 
10991
11336
  /* Accessibility */
@@ -11275,88 +11620,6 @@ li.muka-listitem {
11275
11620
  }
11276
11621
 
11277
11622
 
11278
- /* Breadcrumb */
11279
- /* Breadcrumb Component Styles */
11280
-
11281
- .muka-breadcrumb__list {
11282
- display: flex;
11283
- align-items: center;
11284
- flex-wrap: wrap;
11285
- list-style: none;
11286
- margin: 0;
11287
- padding: 0;
11288
- gap: var(--spacing-1);
11289
- }
11290
-
11291
- .muka-breadcrumb__item {
11292
- display: inline-flex;
11293
- align-items: center;
11294
- gap: var(--spacing-1);
11295
- }
11296
-
11297
- .muka-breadcrumb__icon {
11298
- display: inline-flex;
11299
- align-items: center;
11300
- color: var(--color-text-subtle-default);
11301
- }
11302
-
11303
- /* Link styles */
11304
- .muka-breadcrumb__link {
11305
- color: var(--color-text-subtle-default);
11306
- text-decoration: none;
11307
- border: none;
11308
- background: none;
11309
- padding: 0;
11310
- cursor: pointer;
11311
- font: inherit;
11312
- transition: color 0.15s ease;
11313
- }
11314
-
11315
- .muka-breadcrumb__link:hover {
11316
- color: var(--color-text-action-default);
11317
- text-decoration: underline;
11318
- }
11319
-
11320
- /* Current page (last item) */
11321
- .muka-breadcrumb__current {
11322
- color: var(--color-text-default-default);
11323
- font-weight: 600;
11324
- }
11325
-
11326
- /* Separator */
11327
- .muka-breadcrumb__separator {
11328
- color: var(--color-text-subtle-default);
11329
- user-select: none;
11330
- }
11331
-
11332
- /* Ellipsis */
11333
- .muka-breadcrumb__ellipsis {
11334
- color: var(--color-text-subtle-default);
11335
- }
11336
-
11337
- /* Size variants */
11338
- .muka-breadcrumb--sm {
11339
- font-family: var(--text-label-sm-regular-fontFamily);
11340
- font-weight: var(--text-label-sm-regular-fontWeight);
11341
- font-size: var(--text-label-sm-regular-fontSize);
11342
- line-height: var(--text-label-sm-regular-lineHeight);
11343
- }
11344
-
11345
- .muka-breadcrumb--md {
11346
- font-family: var(--text-label-md-regular-fontFamily);
11347
- font-weight: var(--text-label-md-regular-fontWeight);
11348
- font-size: var(--text-label-md-regular-fontSize);
11349
- line-height: var(--text-label-md-regular-lineHeight);
11350
- }
11351
-
11352
- .muka-breadcrumb--lg {
11353
- font-family: var(--text-label-lg-regular-fontFamily);
11354
- font-weight: var(--text-label-lg-regular-fontWeight);
11355
- font-size: var(--text-label-lg-regular-fontSize);
11356
- line-height: var(--text-label-lg-regular-lineHeight);
11357
- }
11358
-
11359
-
11360
11623
  /* BottomBar */
11361
11624
  /* BottomBar Component Styles */
11362
11625
 
@@ -11422,6 +11685,30 @@ li.muka-listitem {
11422
11685
  flex-direction: row;
11423
11686
  }
11424
11687
 
11688
+ /* ─── Chat variant (houses a ChatComposer) ───────────── */
11689
+
11690
+ .muka-bottombar--chat .muka-bottombar__content {
11691
+ flex-direction: row;
11692
+ max-width: var(--bottombar-chat-max-width);
11693
+ width: 100%;
11694
+ margin: 0 auto;
11695
+ }
11696
+
11697
+ /* Docked chat pads its content; the floating card supplies its own padding. */
11698
+ .muka-bottombar--chat:not(.muka-bottombar--floating) .muka-bottombar__content {
11699
+ padding: var(--bottombar-chat-padding);
11700
+ }
11701
+
11702
+ /* Floating chat card widens to the chat cap (overrides the md default below). */
11703
+ .muka-bottombar--chat.muka-bottombar--floating .muka-bottombar__content {
11704
+ max-width: var(--bottombar-chat-max-width);
11705
+ }
11706
+
11707
+ /* Let the composer fill the wider bar instead of its standalone 768px cap. */
11708
+ .muka-bottombar--chat .muka-chat-composer {
11709
+ max-width: none;
11710
+ }
11711
+
11425
11712
  /* ─── Tab item ────────────────────────────────────────── */
11426
11713
 
11427
11714
  .muka-bottombar__tab {
@@ -11478,8 +11765,6 @@ li.muka-listitem {
11478
11765
  var(--bottombar-floating-backdrop-start),
11479
11766
  var(--bottombar-floating-backdrop-end)
11480
11767
  );
11481
- backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
11482
- -webkit-backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
11483
11768
  padding: var(--bottombar-floating-padding-top) var(--bottombar-floating-margin-x) var(--bottombar-floating-margin-bottom);
11484
11769
 
11485
11770
  /* The transparent frosted margin around the pill overlays scrolling content;
@@ -12809,265 +13094,3 @@ li.muka-listitem {
12809
13094
  border-bottom: none;
12810
13095
  }
12811
13096
 
12812
-
12813
- /* FileUpload */
12814
- /* FileUpload Component Styles */
12815
-
12816
- .muka-fileupload-wrapper {
12817
- display: flex;
12818
- flex-direction: column;
12819
- gap: var(--spacing-3);
12820
- width: 100%;
12821
- }
12822
-
12823
- /* Dropzone */
12824
- .muka-fileupload {
12825
- display: flex;
12826
- flex-direction: column;
12827
- align-items: center;
12828
- justify-content: center;
12829
- gap: var(--fileupload-dropzone-gap);
12830
- padding: var(--fileupload-dropzone-padding-md);
12831
- background-color: var(--fileupload-dropzone-color-default-background);
12832
- border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
12833
- border-radius: var(--fileupload-dropzone-radius);
12834
- cursor: pointer;
12835
- transition: background-color 0.2s ease, border-color 0.2s ease;
12836
- text-align: center;
12837
- min-height: 120px;
12838
- }
12839
-
12840
- .muka-fileupload:focus-visible {
12841
- outline: 2px solid var(--color-border-focus);
12842
- outline-offset: 2px;
12843
- }
12844
-
12845
- /* Size variants */
12846
- .muka-fileupload--sm {
12847
- padding: var(--fileupload-dropzone-padding-sm);
12848
- min-height: 80px;
12849
- }
12850
-
12851
- .muka-fileupload--lg {
12852
- padding: var(--fileupload-dropzone-padding-lg);
12853
- min-height: 160px;
12854
- }
12855
-
12856
- /* Button variant */
12857
- .muka-fileupload--button {
12858
- flex-direction: row;
12859
- min-height: auto;
12860
- padding: var(--spacing-2) var(--spacing-3);
12861
- border-style: solid;
12862
- border-width: var(--border-width-regular);
12863
- border-radius: var(--border-radius-md);
12864
- }
12865
-
12866
- /* Hover state */
12867
- .muka-fileupload:hover:not(.muka-fileupload--disabled) {
12868
- background-color: var(--fileupload-dropzone-color-hover-background);
12869
- border-color: var(--fileupload-dropzone-color-hover-border);
12870
- }
12871
-
12872
- /* Active/drag state */
12873
- .muka-fileupload--active:not(.muka-fileupload--disabled) {
12874
- background-color: var(--fileupload-dropzone-color-active-background);
12875
- border-color: var(--fileupload-dropzone-color-active-border);
12876
- }
12877
-
12878
- /* Disabled state */
12879
- .muka-fileupload--disabled {
12880
- background-color: var(--fileupload-dropzone-color-disabled-background);
12881
- border-color: var(--fileupload-dropzone-color-disabled-border);
12882
- cursor: not-allowed;
12883
- opacity: 0.6;
12884
- }
12885
-
12886
- /* Hidden file input */
12887
- .muka-fileupload__input {
12888
- position: absolute;
12889
- width: 1px;
12890
- height: 1px;
12891
- padding: 0;
12892
- margin: -1px;
12893
- overflow: hidden;
12894
- clip: rect(0, 0, 0, 0);
12895
- white-space: nowrap;
12896
- border: 0;
12897
- }
12898
-
12899
- /* Content container */
12900
- .muka-fileupload__content {
12901
- display: flex;
12902
- flex-direction: column;
12903
- align-items: center;
12904
- gap: var(--spacing-2);
12905
- }
12906
-
12907
- /* Upload icon */
12908
- .muka-fileupload__icon {
12909
- display: flex;
12910
- align-items: center;
12911
- justify-content: center;
12912
- width: var(--size-3xl);
12913
- height: var(--size-3xl);
12914
- color: var(--fileupload-dropzone-color-default-foreground);
12915
- }
12916
-
12917
- .muka-fileupload__icon svg {
12918
- width: 100%;
12919
- height: 100%;
12920
- }
12921
-
12922
- .muka-fileupload--sm .muka-fileupload__icon {
12923
- width: var(--size-2xl);
12924
- height: var(--size-2xl);
12925
- }
12926
-
12927
- .muka-fileupload--lg .muka-fileupload__icon {
12928
- width: var(--size-4xl);
12929
- height: var(--size-4xl);
12930
- }
12931
-
12932
- /* Text */
12933
- .muka-fileupload__text {
12934
- font-family: var(--text-body-md-regular-fontFamily);
12935
- font-size: var(--text-body-md-regular-fontSize);
12936
- font-weight: var(--text-body-md-regular-fontWeight);
12937
- line-height: var(--text-body-md-regular-lineHeight);
12938
- color: var(--color-text-default-default);
12939
- }
12940
-
12941
- .muka-fileupload--sm .muka-fileupload__text {
12942
- font-size: var(--text-body-sm-regular-fontSize);
12943
- }
12944
-
12945
- /* Hint text */
12946
- .muka-fileupload__hint {
12947
- font-family: var(--text-label-sm-regular-fontFamily);
12948
- font-size: var(--text-label-sm-regular-fontSize);
12949
- font-weight: var(--text-label-sm-regular-fontWeight);
12950
- line-height: var(--text-label-sm-regular-lineHeight);
12951
- color: var(--fileupload-dropzone-color-default-foreground);
12952
- }
12953
-
12954
- /* File list */
12955
- .muka-fileupload__list {
12956
- display: flex;
12957
- flex-direction: column;
12958
- gap: var(--spacing-2);
12959
- list-style: none;
12960
- margin: 0;
12961
- padding: 0;
12962
- }
12963
-
12964
- .muka-fileupload__list li {
12965
- margin: 0;
12966
- padding: 0;
12967
- }
12968
-
12969
- /* File item */
12970
- .muka-fileupload-item {
12971
- display: flex;
12972
- align-items: center;
12973
- gap: var(--fileupload-item-gap);
12974
- padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
12975
- background-color: var(--fileupload-item-color-default-background);
12976
- border-radius: var(--fileupload-item-radius);
12977
- }
12978
-
12979
- .muka-fileupload-item--error {
12980
- background-color: var(--fileupload-item-color-error-background);
12981
- }
12982
-
12983
- .muka-fileupload-item--success {
12984
- background-color: var(--fileupload-item-color-default-background);
12985
- }
12986
-
12987
- /* Preview/Icon container */
12988
- .muka-fileupload-item__preview {
12989
- display: flex;
12990
- align-items: center;
12991
- justify-content: center;
12992
- flex-shrink: 0;
12993
- width: var(--fileupload-preview-size);
12994
- height: var(--fileupload-preview-size);
12995
- border-radius: var(--fileupload-preview-radius);
12996
- overflow: hidden;
12997
- background-color: var(--color-surface-level1);
12998
- }
12999
-
13000
- .muka-fileupload-item__thumbnail {
13001
- width: 100%;
13002
- height: 100%;
13003
- object-fit: cover;
13004
- }
13005
-
13006
- .muka-fileupload-item__icon {
13007
- color: var(--color-text-subtle-default);
13008
- }
13009
-
13010
- /* File info */
13011
- .muka-fileupload-item__info {
13012
- flex: 1;
13013
- min-width: 0;
13014
- display: flex;
13015
- flex-direction: column;
13016
- gap: var(--spacing-1);
13017
- }
13018
-
13019
- .muka-fileupload-item__name {
13020
- font-family: var(--text-body-sm-medium-fontFamily);
13021
- font-size: var(--text-body-sm-medium-fontSize);
13022
- font-weight: var(--text-body-sm-medium-fontWeight);
13023
- line-height: var(--text-body-sm-medium-lineHeight);
13024
- color: var(--fileupload-item-color-default-foreground);
13025
- white-space: nowrap;
13026
- overflow: hidden;
13027
- text-overflow: ellipsis;
13028
- }
13029
-
13030
- .muka-fileupload-item--error .muka-fileupload-item__name {
13031
- color: var(--fileupload-item-color-error-foreground);
13032
- }
13033
-
13034
- .muka-fileupload-item__meta {
13035
- font-family: var(--text-label-sm-regular-fontFamily);
13036
- font-size: var(--text-label-sm-regular-fontSize);
13037
- font-weight: var(--text-label-sm-regular-fontWeight);
13038
- line-height: var(--text-label-sm-regular-lineHeight);
13039
- color: var(--color-text-subtle-default);
13040
- }
13041
-
13042
- .muka-fileupload-item__error {
13043
- color: var(--fileupload-item-color-error-foreground);
13044
- }
13045
-
13046
- .muka-fileupload-item__progress {
13047
- margin-top: var(--spacing-1);
13048
- }
13049
-
13050
- /* Actions */
13051
- .muka-fileupload-item__actions {
13052
- display: flex;
13053
- align-items: center;
13054
- gap: var(--spacing-2);
13055
- flex-shrink: 0;
13056
- }
13057
-
13058
- .muka-fileupload-item__status-icon--success {
13059
- color: var(--color-state-success-foreground);
13060
- }
13061
-
13062
- .muka-fileupload-item__status-icon--error {
13063
- color: var(--color-state-error-foreground);
13064
- }
13065
-
13066
- .muka-fileupload-item__remove {
13067
- opacity: 0.7;
13068
- }
13069
-
13070
- .muka-fileupload-item__remove:hover {
13071
- opacity: 1;
13072
- }
13073
-