@revikornmann/muka-ui 0.13.0 → 0.14.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.
- package/dist/cjs/components/ChatMessage/ChatMessage.css +13 -17
- package/dist/cjs/components/ChatMessage/ChatMessage.js +12 -15
- package/dist/cjs/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/esm/components/ChatMessage/ChatMessage.css +13 -17
- package/dist/esm/components/ChatMessage/ChatMessage.js +12 -15
- package/dist/esm/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/styles/components/ChatMessage.css +13 -17
- package/dist/styles/index.css +1665 -1669
- package/dist/styles/muka-dark.css +1665 -1669
- package/dist/styles/muka-light.css +1665 -1669
- package/dist/styles/wireframe-dark.css +1665 -1669
- package/dist/styles/wireframe-light.css +1665 -1669
- package/dist/types/components/ChatMessage/ChatMessage.d.ts +7 -10
- package/dist/types/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2919,6 +2919,196 @@ body {
|
|
|
2919
2919
|
}
|
|
2920
2920
|
|
|
2921
2921
|
|
|
2922
|
+
/* Toast */
|
|
2923
|
+
/* Toast Component Styles - Using Muka Design Tokens */
|
|
2924
|
+
|
|
2925
|
+
.muka-toast {
|
|
2926
|
+
display: flex;
|
|
2927
|
+
align-items: flex-start;
|
|
2928
|
+
gap: var(--toast-gap);
|
|
2929
|
+
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
2930
|
+
border-radius: var(--toast-radius);
|
|
2931
|
+
box-shadow: var(--toast-shadow);
|
|
2932
|
+
min-width: var(--toast-width-min);
|
|
2933
|
+
max-width: var(--toast-width-max);
|
|
2934
|
+
pointer-events: auto;
|
|
2935
|
+
animation: muka-toast-slide-in 0.2s ease-out;
|
|
2936
|
+
}
|
|
2937
|
+
|
|
2938
|
+
/* Entry animation */
|
|
2939
|
+
@keyframes muka-toast-slide-in {
|
|
2940
|
+
from {
|
|
2941
|
+
opacity: 0;
|
|
2942
|
+
transform: translateY(8px);
|
|
2943
|
+
}
|
|
2944
|
+
to {
|
|
2945
|
+
opacity: 1;
|
|
2946
|
+
transform: translateY(0);
|
|
2947
|
+
}
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
/* Position variants (for standalone use - typically managed by ToastProvider) */
|
|
2951
|
+
.muka-toast--top-right,
|
|
2952
|
+
.muka-toast--top-left,
|
|
2953
|
+
.muka-toast--top-center,
|
|
2954
|
+
.muka-toast--bottom-right,
|
|
2955
|
+
.muka-toast--bottom-left,
|
|
2956
|
+
.muka-toast--bottom-center {
|
|
2957
|
+
position: fixed;
|
|
2958
|
+
z-index: 9999;
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
.muka-toast--top-right {
|
|
2962
|
+
top: var(--spacing-4);
|
|
2963
|
+
right: var(--spacing-4);
|
|
2964
|
+
}
|
|
2965
|
+
|
|
2966
|
+
.muka-toast--top-left {
|
|
2967
|
+
top: var(--spacing-4);
|
|
2968
|
+
left: var(--spacing-4);
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
.muka-toast--top-center {
|
|
2972
|
+
top: var(--spacing-4);
|
|
2973
|
+
left: 50%;
|
|
2974
|
+
transform: translateX(-50%);
|
|
2975
|
+
}
|
|
2976
|
+
|
|
2977
|
+
.muka-toast--bottom-right {
|
|
2978
|
+
bottom: var(--spacing-4);
|
|
2979
|
+
right: var(--spacing-4);
|
|
2980
|
+
}
|
|
2981
|
+
|
|
2982
|
+
.muka-toast--bottom-left {
|
|
2983
|
+
bottom: var(--spacing-4);
|
|
2984
|
+
left: var(--spacing-4);
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2987
|
+
.muka-toast--bottom-center {
|
|
2988
|
+
bottom: var(--spacing-4);
|
|
2989
|
+
left: 50%;
|
|
2990
|
+
transform: translateX(-50%);
|
|
2991
|
+
}
|
|
2992
|
+
|
|
2993
|
+
/* Variant: Info */
|
|
2994
|
+
.muka-toast--info {
|
|
2995
|
+
background-color: var(--toast-color-info-background);
|
|
2996
|
+
color: var(--toast-color-info-foreground);
|
|
2997
|
+
}
|
|
2998
|
+
|
|
2999
|
+
.muka-toast--info .muka-toast__icon {
|
|
3000
|
+
color: var(--toast-color-info-accent);
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
/* Variant: Success */
|
|
3004
|
+
.muka-toast--success {
|
|
3005
|
+
background-color: var(--toast-color-success-background);
|
|
3006
|
+
color: var(--toast-color-success-foreground);
|
|
3007
|
+
}
|
|
3008
|
+
|
|
3009
|
+
.muka-toast--success .muka-toast__icon {
|
|
3010
|
+
color: var(--toast-color-success-accent);
|
|
3011
|
+
}
|
|
3012
|
+
|
|
3013
|
+
/* Variant: Warning */
|
|
3014
|
+
.muka-toast--warning {
|
|
3015
|
+
background-color: var(--toast-color-warning-background);
|
|
3016
|
+
color: var(--toast-color-warning-foreground);
|
|
3017
|
+
}
|
|
3018
|
+
|
|
3019
|
+
.muka-toast--warning .muka-toast__icon {
|
|
3020
|
+
color: var(--toast-color-warning-accent);
|
|
3021
|
+
}
|
|
3022
|
+
|
|
3023
|
+
/* Variant: Error */
|
|
3024
|
+
.muka-toast--error {
|
|
3025
|
+
background-color: var(--toast-color-error-background);
|
|
3026
|
+
color: var(--toast-color-error-foreground);
|
|
3027
|
+
}
|
|
3028
|
+
|
|
3029
|
+
.muka-toast--error .muka-toast__icon {
|
|
3030
|
+
color: var(--toast-color-error-accent);
|
|
3031
|
+
}
|
|
3032
|
+
|
|
3033
|
+
/* Icon */
|
|
3034
|
+
.muka-toast__icon {
|
|
3035
|
+
display: flex;
|
|
3036
|
+
align-items: center;
|
|
3037
|
+
justify-content: center;
|
|
3038
|
+
flex-shrink: 0;
|
|
3039
|
+
width: var(--toast-icon-size);
|
|
3040
|
+
height: var(--toast-icon-size);
|
|
3041
|
+
}
|
|
3042
|
+
|
|
3043
|
+
.muka-toast__icon svg {
|
|
3044
|
+
width: 100%;
|
|
3045
|
+
height: 100%;
|
|
3046
|
+
}
|
|
3047
|
+
|
|
3048
|
+
/* Content */
|
|
3049
|
+
.muka-toast__content {
|
|
3050
|
+
flex: 1;
|
|
3051
|
+
min-width: 0;
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3054
|
+
.muka-toast__title {
|
|
3055
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3056
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3057
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
3058
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3059
|
+
margin-bottom: var(--spacing-1);
|
|
3060
|
+
}
|
|
3061
|
+
|
|
3062
|
+
.muka-toast__message {
|
|
3063
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3064
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3065
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
3066
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3069
|
+
/* Action slot */
|
|
3070
|
+
.muka-toast__action {
|
|
3071
|
+
display: flex;
|
|
3072
|
+
align-items: center;
|
|
3073
|
+
flex-shrink: 0;
|
|
3074
|
+
}
|
|
3075
|
+
|
|
3076
|
+
/* Dismiss button */
|
|
3077
|
+
.muka-toast__dismiss {
|
|
3078
|
+
display: flex;
|
|
3079
|
+
align-items: center;
|
|
3080
|
+
justify-content: center;
|
|
3081
|
+
flex-shrink: 0;
|
|
3082
|
+
width: 24px;
|
|
3083
|
+
height: 24px;
|
|
3084
|
+
padding: 0;
|
|
3085
|
+
margin: -2px -4px -2px 0;
|
|
3086
|
+
border: none;
|
|
3087
|
+
background: transparent;
|
|
3088
|
+
color: inherit;
|
|
3089
|
+
opacity: 0.7;
|
|
3090
|
+
cursor: pointer;
|
|
3091
|
+
border-radius: var(--border-radius-sm);
|
|
3092
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3093
|
+
}
|
|
3094
|
+
|
|
3095
|
+
.muka-toast__dismiss:hover {
|
|
3096
|
+
opacity: 1;
|
|
3097
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
3098
|
+
}
|
|
3099
|
+
|
|
3100
|
+
.muka-toast__dismiss:focus-visible {
|
|
3101
|
+
outline: 2px solid var(--color-border-focus);
|
|
3102
|
+
outline-offset: 2px;
|
|
3103
|
+
opacity: 1;
|
|
3104
|
+
}
|
|
3105
|
+
|
|
3106
|
+
.muka-toast__dismiss svg {
|
|
3107
|
+
width: 16px;
|
|
3108
|
+
height: 16px;
|
|
3109
|
+
}
|
|
3110
|
+
|
|
3111
|
+
|
|
2922
3112
|
/* Tile */
|
|
2923
3113
|
/* Tile Component Styles - Using Muka Design Tokens */
|
|
2924
3114
|
|
|
@@ -3280,230 +3470,40 @@ body {
|
|
|
3280
3470
|
}
|
|
3281
3471
|
|
|
3282
3472
|
|
|
3283
|
-
/*
|
|
3284
|
-
/*
|
|
3473
|
+
/* Thumbnail */
|
|
3474
|
+
/* Thumbnail Component Styles - Using Muka Design Tokens */
|
|
3285
3475
|
|
|
3286
|
-
.muka-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
gap: var(--toast-gap);
|
|
3290
|
-
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
3291
|
-
border-radius: var(--toast-radius);
|
|
3292
|
-
box-shadow: var(--toast-shadow);
|
|
3293
|
-
min-width: var(--toast-width-min);
|
|
3294
|
-
max-width: var(--toast-width-max);
|
|
3295
|
-
pointer-events: auto;
|
|
3296
|
-
animation: muka-toast-slide-in 0.2s ease-out;
|
|
3476
|
+
.muka-thumbnail {
|
|
3477
|
+
position: relative;
|
|
3478
|
+
flex-shrink: 0;
|
|
3297
3479
|
}
|
|
3298
3480
|
|
|
3299
|
-
/*
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3481
|
+
/* The frame carries the border, background and shape clip. Keeping it separate
|
|
3482
|
+
from the root lets the remove (×) button sit outside the clip (needed for the
|
|
3483
|
+
circular/ellipse shape, whose corners would otherwise clip the button). */
|
|
3484
|
+
.muka-thumbnail__frame {
|
|
3485
|
+
position: absolute;
|
|
3486
|
+
inset: 0;
|
|
3487
|
+
overflow: hidden;
|
|
3488
|
+
border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
|
|
3489
|
+
border-radius: var(--border-radius-lg);
|
|
3490
|
+
background-color: var(--color-surface-level1);
|
|
3309
3491
|
}
|
|
3310
3492
|
|
|
3311
|
-
/*
|
|
3312
|
-
.muka-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
.muka-toast--bottom-right,
|
|
3316
|
-
.muka-toast--bottom-left,
|
|
3317
|
-
.muka-toast--bottom-center {
|
|
3318
|
-
position: fixed;
|
|
3319
|
-
z-index: 9999;
|
|
3493
|
+
/* ─── Shapes ──────────────────────────────────────────── */
|
|
3494
|
+
.muka-thumbnail--4-3 {
|
|
3495
|
+
width: 160px;
|
|
3496
|
+
height: 120px;
|
|
3320
3497
|
}
|
|
3321
3498
|
|
|
3322
|
-
.muka-
|
|
3323
|
-
|
|
3324
|
-
|
|
3499
|
+
.muka-thumbnail--1-1 {
|
|
3500
|
+
width: 120px;
|
|
3501
|
+
height: 120px;
|
|
3325
3502
|
}
|
|
3326
3503
|
|
|
3327
|
-
.muka-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
}
|
|
3331
|
-
|
|
3332
|
-
.muka-toast--top-center {
|
|
3333
|
-
top: var(--spacing-4);
|
|
3334
|
-
left: 50%;
|
|
3335
|
-
transform: translateX(-50%);
|
|
3336
|
-
}
|
|
3337
|
-
|
|
3338
|
-
.muka-toast--bottom-right {
|
|
3339
|
-
bottom: var(--spacing-4);
|
|
3340
|
-
right: var(--spacing-4);
|
|
3341
|
-
}
|
|
3342
|
-
|
|
3343
|
-
.muka-toast--bottom-left {
|
|
3344
|
-
bottom: var(--spacing-4);
|
|
3345
|
-
left: var(--spacing-4);
|
|
3346
|
-
}
|
|
3347
|
-
|
|
3348
|
-
.muka-toast--bottom-center {
|
|
3349
|
-
bottom: var(--spacing-4);
|
|
3350
|
-
left: 50%;
|
|
3351
|
-
transform: translateX(-50%);
|
|
3352
|
-
}
|
|
3353
|
-
|
|
3354
|
-
/* Variant: Info */
|
|
3355
|
-
.muka-toast--info {
|
|
3356
|
-
background-color: var(--toast-color-info-background);
|
|
3357
|
-
color: var(--toast-color-info-foreground);
|
|
3358
|
-
}
|
|
3359
|
-
|
|
3360
|
-
.muka-toast--info .muka-toast__icon {
|
|
3361
|
-
color: var(--toast-color-info-accent);
|
|
3362
|
-
}
|
|
3363
|
-
|
|
3364
|
-
/* Variant: Success */
|
|
3365
|
-
.muka-toast--success {
|
|
3366
|
-
background-color: var(--toast-color-success-background);
|
|
3367
|
-
color: var(--toast-color-success-foreground);
|
|
3368
|
-
}
|
|
3369
|
-
|
|
3370
|
-
.muka-toast--success .muka-toast__icon {
|
|
3371
|
-
color: var(--toast-color-success-accent);
|
|
3372
|
-
}
|
|
3373
|
-
|
|
3374
|
-
/* Variant: Warning */
|
|
3375
|
-
.muka-toast--warning {
|
|
3376
|
-
background-color: var(--toast-color-warning-background);
|
|
3377
|
-
color: var(--toast-color-warning-foreground);
|
|
3378
|
-
}
|
|
3379
|
-
|
|
3380
|
-
.muka-toast--warning .muka-toast__icon {
|
|
3381
|
-
color: var(--toast-color-warning-accent);
|
|
3382
|
-
}
|
|
3383
|
-
|
|
3384
|
-
/* Variant: Error */
|
|
3385
|
-
.muka-toast--error {
|
|
3386
|
-
background-color: var(--toast-color-error-background);
|
|
3387
|
-
color: var(--toast-color-error-foreground);
|
|
3388
|
-
}
|
|
3389
|
-
|
|
3390
|
-
.muka-toast--error .muka-toast__icon {
|
|
3391
|
-
color: var(--toast-color-error-accent);
|
|
3392
|
-
}
|
|
3393
|
-
|
|
3394
|
-
/* Icon */
|
|
3395
|
-
.muka-toast__icon {
|
|
3396
|
-
display: flex;
|
|
3397
|
-
align-items: center;
|
|
3398
|
-
justify-content: center;
|
|
3399
|
-
flex-shrink: 0;
|
|
3400
|
-
width: var(--toast-icon-size);
|
|
3401
|
-
height: var(--toast-icon-size);
|
|
3402
|
-
}
|
|
3403
|
-
|
|
3404
|
-
.muka-toast__icon svg {
|
|
3405
|
-
width: 100%;
|
|
3406
|
-
height: 100%;
|
|
3407
|
-
}
|
|
3408
|
-
|
|
3409
|
-
/* Content */
|
|
3410
|
-
.muka-toast__content {
|
|
3411
|
-
flex: 1;
|
|
3412
|
-
min-width: 0;
|
|
3413
|
-
}
|
|
3414
|
-
|
|
3415
|
-
.muka-toast__title {
|
|
3416
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3417
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3418
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
3419
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3420
|
-
margin-bottom: var(--spacing-1);
|
|
3421
|
-
}
|
|
3422
|
-
|
|
3423
|
-
.muka-toast__message {
|
|
3424
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3425
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3426
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3427
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3428
|
-
}
|
|
3429
|
-
|
|
3430
|
-
/* Action slot */
|
|
3431
|
-
.muka-toast__action {
|
|
3432
|
-
display: flex;
|
|
3433
|
-
align-items: center;
|
|
3434
|
-
flex-shrink: 0;
|
|
3435
|
-
}
|
|
3436
|
-
|
|
3437
|
-
/* Dismiss button */
|
|
3438
|
-
.muka-toast__dismiss {
|
|
3439
|
-
display: flex;
|
|
3440
|
-
align-items: center;
|
|
3441
|
-
justify-content: center;
|
|
3442
|
-
flex-shrink: 0;
|
|
3443
|
-
width: 24px;
|
|
3444
|
-
height: 24px;
|
|
3445
|
-
padding: 0;
|
|
3446
|
-
margin: -2px -4px -2px 0;
|
|
3447
|
-
border: none;
|
|
3448
|
-
background: transparent;
|
|
3449
|
-
color: inherit;
|
|
3450
|
-
opacity: 0.7;
|
|
3451
|
-
cursor: pointer;
|
|
3452
|
-
border-radius: var(--border-radius-sm);
|
|
3453
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3454
|
-
}
|
|
3455
|
-
|
|
3456
|
-
.muka-toast__dismiss:hover {
|
|
3457
|
-
opacity: 1;
|
|
3458
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
3459
|
-
}
|
|
3460
|
-
|
|
3461
|
-
.muka-toast__dismiss:focus-visible {
|
|
3462
|
-
outline: 2px solid var(--color-border-focus);
|
|
3463
|
-
outline-offset: 2px;
|
|
3464
|
-
opacity: 1;
|
|
3465
|
-
}
|
|
3466
|
-
|
|
3467
|
-
.muka-toast__dismiss svg {
|
|
3468
|
-
width: 16px;
|
|
3469
|
-
height: 16px;
|
|
3470
|
-
}
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
/* Thumbnail */
|
|
3474
|
-
/* Thumbnail Component Styles - Using Muka Design Tokens */
|
|
3475
|
-
|
|
3476
|
-
.muka-thumbnail {
|
|
3477
|
-
position: relative;
|
|
3478
|
-
flex-shrink: 0;
|
|
3479
|
-
}
|
|
3480
|
-
|
|
3481
|
-
/* The frame carries the border, background and shape clip. Keeping it separate
|
|
3482
|
-
from the root lets the remove (×) button sit outside the clip (needed for the
|
|
3483
|
-
circular/ellipse shape, whose corners would otherwise clip the button). */
|
|
3484
|
-
.muka-thumbnail__frame {
|
|
3485
|
-
position: absolute;
|
|
3486
|
-
inset: 0;
|
|
3487
|
-
overflow: hidden;
|
|
3488
|
-
border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
|
|
3489
|
-
border-radius: var(--border-radius-lg);
|
|
3490
|
-
background-color: var(--color-surface-level1);
|
|
3491
|
-
}
|
|
3492
|
-
|
|
3493
|
-
/* ─── Shapes ──────────────────────────────────────────── */
|
|
3494
|
-
.muka-thumbnail--4-3 {
|
|
3495
|
-
width: 160px;
|
|
3496
|
-
height: 120px;
|
|
3497
|
-
}
|
|
3498
|
-
|
|
3499
|
-
.muka-thumbnail--1-1 {
|
|
3500
|
-
width: 120px;
|
|
3501
|
-
height: 120px;
|
|
3502
|
-
}
|
|
3503
|
-
|
|
3504
|
-
.muka-thumbnail--ellipse {
|
|
3505
|
-
width: 120px;
|
|
3506
|
-
height: 120px;
|
|
3504
|
+
.muka-thumbnail--ellipse {
|
|
3505
|
+
width: 120px;
|
|
3506
|
+
height: 120px;
|
|
3507
3507
|
}
|
|
3508
3508
|
|
|
3509
3509
|
.muka-thumbnail--ellipse .muka-thumbnail__frame {
|
|
@@ -4865,724 +4865,450 @@ body {
|
|
|
4865
4865
|
}
|
|
4866
4866
|
|
|
4867
4867
|
|
|
4868
|
-
/*
|
|
4869
|
-
/*
|
|
4870
|
-
|
|
4871
|
-
/* ─── Backdrop ────────────────────────────────────────── */
|
|
4868
|
+
/* SegmentGroup */
|
|
4869
|
+
/* SegmentGroup Component Styles - Using Muka Design Tokens */
|
|
4872
4870
|
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4871
|
+
/* Container */
|
|
4872
|
+
.muka-segmentgroup {
|
|
4873
|
+
display: inline-flex;
|
|
4874
|
+
align-items: center;
|
|
4875
|
+
gap: 0;
|
|
4876
|
+
padding: var(--segmentgroup-container-padding);
|
|
4877
|
+
background-color: var(--segmentgroup-container-background);
|
|
4878
|
+
border-radius: var(--segmentgroup-container-radius);
|
|
4879
|
+
position: relative;
|
|
4880
|
+
transition: background-color 0.2s ease, box-shadow 0.2s ease;
|
|
4878
4881
|
}
|
|
4879
4882
|
|
|
4880
|
-
/*
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
position:
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
display: flex;
|
|
4890
|
-
flex-direction: column;
|
|
4891
|
-
|
|
4892
|
-
max-height: 96dvh;
|
|
4893
|
-
|
|
4894
|
-
background-color: var(--color-surface-level3);
|
|
4895
|
-
border-top-left-radius: var(--radius-lg);
|
|
4896
|
-
border-top-right-radius: var(--radius-lg);
|
|
4897
|
-
box-shadow: var(--shadow-level5);
|
|
4898
|
-
|
|
4899
|
-
outline: none;
|
|
4883
|
+
/* Inset shadow on container */
|
|
4884
|
+
.muka-segmentgroup::after {
|
|
4885
|
+
content: '';
|
|
4886
|
+
position: absolute;
|
|
4887
|
+
inset: 0;
|
|
4888
|
+
border-radius: inherit;
|
|
4889
|
+
box-shadow: var(--segmentgroup-container-shadow);
|
|
4890
|
+
pointer-events: none;
|
|
4900
4891
|
}
|
|
4901
4892
|
|
|
4902
|
-
/*
|
|
4903
|
-
.muka-
|
|
4904
|
-
|
|
4893
|
+
/* Full width variant */
|
|
4894
|
+
.muka-segmentgroup--full-width {
|
|
4895
|
+
width: 100%;
|
|
4905
4896
|
}
|
|
4906
4897
|
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
.muka-sheet__handle-container {
|
|
4910
|
-
display: flex;
|
|
4911
|
-
justify-content: center;
|
|
4912
|
-
flex-shrink: 0;
|
|
4913
|
-
padding: var(--spacing-3) 0;
|
|
4898
|
+
.muka-segmentgroup--full-width .muka-segmentgroup__segment {
|
|
4899
|
+
flex: 1;
|
|
4914
4900
|
}
|
|
4915
4901
|
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4902
|
+
/* Pill */
|
|
4903
|
+
.muka-segmentgroup__pill {
|
|
4904
|
+
position: absolute;
|
|
4905
|
+
top: var(--segmentgroup-container-padding);
|
|
4906
|
+
bottom: var(--segmentgroup-container-padding);
|
|
4907
|
+
left: 0;
|
|
4908
|
+
margin: 0;
|
|
4909
|
+
background-color: var(--segmentgroup-segment-color-selected-background);
|
|
4910
|
+
box-shadow: var(--segmentgroup-segment-shadow-selected);
|
|
4911
|
+
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
4912
|
+
z-index: 0;
|
|
4913
|
+
pointer-events: none;
|
|
4921
4914
|
}
|
|
4922
4915
|
|
|
4923
|
-
/*
|
|
4916
|
+
/* Segment button */
|
|
4917
|
+
.muka-segmentgroup__segment {
|
|
4918
|
+
display: inline-flex;
|
|
4919
|
+
align-items: center;
|
|
4920
|
+
justify-content: center;
|
|
4921
|
+
gap: var(--segmentgroup-segment-gap);
|
|
4922
|
+
border: none;
|
|
4923
|
+
background-color: var(--segmentgroup-segment-color-unselected-background);
|
|
4924
|
+
color: var(--segmentgroup-segment-color-unselected-foreground);
|
|
4925
|
+
border-radius: var(--segmentgroup-segment-radius);
|
|
4926
|
+
cursor: pointer;
|
|
4927
|
+
transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
|
|
4928
|
+
position: relative;
|
|
4929
|
+
outline: none;
|
|
4930
|
+
box-shadow: var(--segmentgroup-segment-shadow-unselected);
|
|
4931
|
+
font-family: var(--alias-font-plain-family);
|
|
4932
|
+
font-weight: var(--segmentgroup-segment-fontWeight);
|
|
4933
|
+
z-index: 1; /* Keep above pill */
|
|
4934
|
+
}
|
|
4924
4935
|
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4936
|
+
/* Size variants */
|
|
4937
|
+
.muka-segmentgroup--sm {
|
|
4938
|
+
border-radius: var(--border-radius-xl, 16px);
|
|
4939
|
+
}
|
|
4940
|
+
.muka-segmentgroup--sm .muka-segmentgroup__segment,
|
|
4941
|
+
.muka-segmentgroup--sm .muka-segmentgroup__pill {
|
|
4942
|
+
border-radius: var(--border-radius-xl, 16px);
|
|
4943
|
+
}
|
|
4944
|
+
.muka-segmentgroup--sm .muka-segmentgroup__segment {
|
|
4945
|
+
padding: var(--segmentgroup-segment-padding-sm-y) var(--segmentgroup-segment-padding-sm-x);
|
|
4946
|
+
height: var(--segmentgroup-segment-height-sm);
|
|
4947
|
+
font-size: var(--text-label-sm-fontSize);
|
|
4948
|
+
line-height: var(--text-label-sm-lineHeight);
|
|
4931
4949
|
}
|
|
4932
4950
|
|
|
4933
|
-
|
|
4951
|
+
.muka-segmentgroup--md {
|
|
4952
|
+
border-radius: var(--border-radius-xl, 16px);
|
|
4953
|
+
}
|
|
4954
|
+
.muka-segmentgroup--md .muka-segmentgroup__segment,
|
|
4955
|
+
.muka-segmentgroup--md .muka-segmentgroup__pill {
|
|
4956
|
+
border-radius: var(--border-radius-xl, 16px);
|
|
4957
|
+
}
|
|
4958
|
+
.muka-segmentgroup--md .muka-segmentgroup__segment {
|
|
4959
|
+
padding: var(--segmentgroup-segment-padding-md-y) var(--segmentgroup-segment-padding-md-x);
|
|
4960
|
+
font-size: var(--text-label-md-fontSize);
|
|
4961
|
+
line-height: var(--text-label-md-lineHeight);
|
|
4962
|
+
}
|
|
4934
4963
|
|
|
4935
|
-
.muka-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4964
|
+
.muka-segmentgroup--lg {
|
|
4965
|
+
border-radius: var(--border-radius-full, 9999px);
|
|
4966
|
+
}
|
|
4967
|
+
.muka-segmentgroup--lg .muka-segmentgroup__segment,
|
|
4968
|
+
.muka-segmentgroup--lg .muka-segmentgroup__pill {
|
|
4969
|
+
border-radius: var(--border-radius-full, 9999px);
|
|
4970
|
+
}
|
|
4971
|
+
.muka-segmentgroup--lg .muka-segmentgroup__segment {
|
|
4972
|
+
padding: var(--segmentgroup-segment-padding-lg-y) var(--segmentgroup-segment-padding-lg-x);
|
|
4973
|
+
height: 40px;
|
|
4974
|
+
font-size: var(--text-label-lg-fontSize);
|
|
4975
|
+
line-height: var(--text-label-lg-lineHeight);
|
|
4976
|
+
}
|
|
4977
|
+
|
|
4978
|
+
/* Icon-only variants */
|
|
4979
|
+
.muka-segmentgroup--icon-only {
|
|
4980
|
+
gap: var(--spacing-1, 4px);
|
|
4981
|
+
}
|
|
4982
|
+
|
|
4983
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--sm .muka-segmentgroup__segment {
|
|
4984
|
+
width: 24px;
|
|
4985
|
+
height: 24px;
|
|
4939
4986
|
padding: 0;
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
border: 0;
|
|
4987
|
+
}
|
|
4988
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--sm .muka-segmentgroup__icon svg {
|
|
4989
|
+
width: 16px;
|
|
4990
|
+
height: 16px;
|
|
4945
4991
|
}
|
|
4946
4992
|
|
|
4993
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--md .muka-segmentgroup__segment {
|
|
4994
|
+
width: 32px;
|
|
4995
|
+
height: 32px;
|
|
4996
|
+
padding: 0;
|
|
4997
|
+
}
|
|
4998
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--md .muka-segmentgroup__icon svg {
|
|
4999
|
+
width: 20px;
|
|
5000
|
+
height: 20px;
|
|
5001
|
+
}
|
|
4947
5002
|
|
|
4948
|
-
|
|
4949
|
-
|
|
5003
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--lg .muka-segmentgroup__segment {
|
|
5004
|
+
width: 40px;
|
|
5005
|
+
height: 40px;
|
|
5006
|
+
padding: 0;
|
|
5007
|
+
}
|
|
5008
|
+
.muka-segmentgroup--icon-only.muka-segmentgroup--lg .muka-segmentgroup__icon svg {
|
|
5009
|
+
width: 24px;
|
|
5010
|
+
height: 24px;
|
|
5011
|
+
}
|
|
4950
5012
|
|
|
4951
|
-
|
|
5013
|
+
/* Icon */
|
|
5014
|
+
.muka-segmentgroup__icon {
|
|
4952
5015
|
display: inline-flex;
|
|
4953
|
-
|
|
4954
|
-
|
|
5016
|
+
align-items: center;
|
|
5017
|
+
justify-content: center;
|
|
4955
5018
|
}
|
|
4956
5019
|
|
|
4957
|
-
|
|
4958
|
-
|
|
5020
|
+
/* Selected state */
|
|
5021
|
+
.muka-segmentgroup__segment--selected {
|
|
5022
|
+
background-color: transparent;
|
|
5023
|
+
box-shadow: none;
|
|
5024
|
+
color: var(--segmentgroup-segment-color-selected-foreground);
|
|
5025
|
+
z-index: 2; /* Highlight pill when focused is tested below */
|
|
5026
|
+
}
|
|
5027
|
+
|
|
5028
|
+
/* Hover state (only for unselected) */
|
|
5029
|
+
.muka-segmentgroup__segment:not(.muka-segmentgroup__segment--selected):not(:disabled):hover {
|
|
5030
|
+
color: var(--segmentgroup-segment-color-hover-foreground);
|
|
5031
|
+
}
|
|
5032
|
+
|
|
5033
|
+
/* Focus visible */
|
|
5034
|
+
.muka-segmentgroup__segment:focus-visible {
|
|
5035
|
+
outline: 2px solid var(--color-border-focus);
|
|
5036
|
+
outline-offset: 2px;
|
|
5037
|
+
z-index: 2;
|
|
5038
|
+
}
|
|
5039
|
+
|
|
5040
|
+
/* Disabled state */
|
|
5041
|
+
.muka-segmentgroup__segment--disabled,
|
|
5042
|
+
.muka-segmentgroup__segment:disabled {
|
|
5043
|
+
cursor: not-allowed;
|
|
5044
|
+
opacity: 0.5;
|
|
4959
5045
|
}
|
|
4960
5046
|
|
|
4961
5047
|
/* Label */
|
|
4962
|
-
.muka-
|
|
4963
|
-
|
|
4964
|
-
|
|
5048
|
+
.muka-segmentgroup__label {
|
|
5049
|
+
display: inline-flex;
|
|
5050
|
+
align-items: center;
|
|
5051
|
+
white-space: nowrap;
|
|
5052
|
+
user-select: none;
|
|
4965
5053
|
}
|
|
4966
5054
|
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
5055
|
+
|
|
5056
|
+
/* Section */
|
|
5057
|
+
/* Section Component - Layout tokens (section.padding) */
|
|
5058
|
+
|
|
5059
|
+
.muka-section {
|
|
5060
|
+
box-sizing: border-box;
|
|
4972
5061
|
}
|
|
4973
5062
|
|
|
4974
|
-
.muka-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
4978
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
5063
|
+
.muka-section--padding-compact {
|
|
5064
|
+
padding-block: var(--section-padding-vertical-compact);
|
|
5065
|
+
padding-inline: var(--section-padding-horizontal-compact);
|
|
4979
5066
|
}
|
|
4980
5067
|
|
|
4981
|
-
.muka-
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
4985
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
5068
|
+
.muka-section--padding-default {
|
|
5069
|
+
padding-block: var(--section-padding-vertical-default);
|
|
5070
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
4986
5071
|
}
|
|
4987
5072
|
|
|
4988
|
-
.muka-
|
|
4989
|
-
|
|
5073
|
+
.muka-section--padding-spacious {
|
|
5074
|
+
padding-block: var(--section-padding-vertical-spacious);
|
|
5075
|
+
padding-inline: var(--section-padding-horizontal-spacious);
|
|
4990
5076
|
}
|
|
4991
5077
|
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
5078
|
+
|
|
5079
|
+
/* SearchInput */
|
|
5080
|
+
/* SearchInput Component Styles */
|
|
5081
|
+
|
|
5082
|
+
.muka-search-input {
|
|
5083
|
+
display: flex;
|
|
5084
|
+
align-items: center;
|
|
5085
|
+
gap: var(--spacing-3);
|
|
5086
|
+
width: 100%;
|
|
4996
5087
|
}
|
|
4997
5088
|
|
|
4998
|
-
/* Field
|
|
4999
|
-
|
|
5089
|
+
/* ─── Field wrapper ───────────────────────────────────── */
|
|
5090
|
+
|
|
5091
|
+
.muka-search-input__field {
|
|
5092
|
+
flex: 1 1 auto;
|
|
5000
5093
|
display: flex;
|
|
5001
5094
|
align-items: center;
|
|
5002
5095
|
gap: var(--spacing-2);
|
|
5003
|
-
position: relative;
|
|
5004
5096
|
background-color: var(--input-field-color-default-background);
|
|
5005
5097
|
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
5006
5098
|
border-radius: var(--input-field-radius-md);
|
|
5007
|
-
padding:
|
|
5008
|
-
transition: border-color 0.
|
|
5009
|
-
cursor: pointer;
|
|
5010
|
-
box-sizing: border-box;
|
|
5099
|
+
padding: 0 var(--input-field-padding-x);
|
|
5100
|
+
transition: border-color 0.12s ease, background-color 0.12s ease;
|
|
5011
5101
|
}
|
|
5012
5102
|
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
content: '';
|
|
5016
|
-
position: absolute;
|
|
5017
|
-
inset: 0;
|
|
5018
|
-
border-radius: inherit;
|
|
5019
|
-
box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
|
|
5020
|
-
pointer-events: none;
|
|
5103
|
+
.muka-search-input--focused .muka-search-input__field {
|
|
5104
|
+
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
5021
5105
|
}
|
|
5022
5106
|
|
|
5023
|
-
/*
|
|
5024
|
-
|
|
5107
|
+
/* ─── Sizes ───────────────────────────────────────────── */
|
|
5108
|
+
|
|
5109
|
+
.muka-search-input--sm .muka-search-input__field {
|
|
5025
5110
|
min-height: var(--input-field-height-sm);
|
|
5026
5111
|
border-radius: var(--input-field-radius-sm);
|
|
5027
5112
|
}
|
|
5028
5113
|
|
|
5029
|
-
.muka-
|
|
5114
|
+
.muka-search-input--md .muka-search-input__field {
|
|
5030
5115
|
min-height: var(--input-field-height-default);
|
|
5031
|
-
border-radius: var(--input-field-radius-md);
|
|
5032
5116
|
}
|
|
5033
5117
|
|
|
5034
|
-
.muka-
|
|
5118
|
+
.muka-search-input--lg .muka-search-input__field {
|
|
5035
5119
|
min-height: var(--input-field-height-lg);
|
|
5036
5120
|
border-radius: var(--input-field-radius-lg);
|
|
5037
5121
|
}
|
|
5038
5122
|
|
|
5039
|
-
/*
|
|
5123
|
+
/* ─── Embedded variant (e.g. inside TopBar) ───────────── */
|
|
5040
5124
|
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
border-
|
|
5044
|
-
border-color: var(--input-field-color-focus-border);
|
|
5045
|
-
background-color: var(--input-field-color-focus-background);
|
|
5046
|
-
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
5125
|
+
.muka-search-input--embedded .muka-search-input__field {
|
|
5126
|
+
background-color: var(--color-surface-level1);
|
|
5127
|
+
border-color: transparent;
|
|
5047
5128
|
}
|
|
5048
5129
|
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
border-color: var(--input-field-color-error-border);
|
|
5053
|
-
background-color: var(--input-field-color-error-background);
|
|
5054
|
-
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
5130
|
+
.muka-search-input--embedded.muka-search-input--focused .muka-search-input__field {
|
|
5131
|
+
border-color: transparent;
|
|
5132
|
+
background-color: var(--color-surface-level2);
|
|
5055
5133
|
}
|
|
5056
5134
|
|
|
5057
|
-
/* Disabled
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5135
|
+
/* ─── Disabled ────────────────────────────────────────── */
|
|
5136
|
+
|
|
5137
|
+
.muka-search-input--disabled .muka-search-input__field {
|
|
5138
|
+
opacity: 0.5;
|
|
5139
|
+
pointer-events: none;
|
|
5062
5140
|
}
|
|
5063
5141
|
|
|
5064
|
-
|
|
5065
|
-
|
|
5142
|
+
/* ─── Leading icon ────────────────────────────────────── */
|
|
5143
|
+
|
|
5144
|
+
.muka-search-input__leading {
|
|
5145
|
+
display: inline-flex;
|
|
5146
|
+
align-items: center;
|
|
5147
|
+
justify-content: center;
|
|
5148
|
+
flex-shrink: 0;
|
|
5149
|
+
color: var(--color-text-subtle-default);
|
|
5066
5150
|
}
|
|
5067
5151
|
|
|
5068
|
-
/*
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5152
|
+
/* ─── Input element ───────────────────────────────────── */
|
|
5153
|
+
|
|
5154
|
+
.muka-search-input__input {
|
|
5155
|
+
flex: 1 1 auto;
|
|
5156
|
+
min-width: 0;
|
|
5073
5157
|
border: none;
|
|
5074
|
-
outline: none;
|
|
5075
5158
|
background: transparent;
|
|
5076
|
-
|
|
5077
|
-
font-family: var(--text-input-md-fontFamily);
|
|
5078
|
-
font-weight: var(--text-input-md-fontWeight);
|
|
5079
|
-
font-size: var(--text-input-md-fontSize);
|
|
5080
|
-
line-height: var(--text-input-md-lineHeight);
|
|
5159
|
+
outline: none;
|
|
5081
5160
|
padding: 0;
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5161
|
+
color: var(--color-text-default-default);
|
|
5162
|
+
font-family: var(--text-body-md-regular-fontFamily);
|
|
5163
|
+
font-weight: var(--text-body-md-regular-fontWeight);
|
|
5164
|
+
font-size: var(--text-body-md-regular-fontSize);
|
|
5165
|
+
line-height: var(--text-body-md-regular-lineHeight);
|
|
5166
|
+
appearance: none;
|
|
5167
|
+
-webkit-appearance: none;
|
|
5086
5168
|
}
|
|
5087
5169
|
|
|
5088
|
-
.muka-
|
|
5089
|
-
|
|
5090
|
-
font-weight: var(--text-input-sm-fontWeight);
|
|
5091
|
-
font-size: var(--text-input-sm-fontSize);
|
|
5092
|
-
line-height: var(--text-input-sm-lineHeight);
|
|
5170
|
+
.muka-search-input__input::placeholder {
|
|
5171
|
+
color: var(--color-text-subtle-default);
|
|
5093
5172
|
}
|
|
5094
5173
|
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5174
|
+
/* Hide the browser-supplied clear button (WebKit + Edge) */
|
|
5175
|
+
.muka-search-input__input::-webkit-search-cancel-button,
|
|
5176
|
+
.muka-search-input__input::-webkit-search-decoration {
|
|
5177
|
+
-webkit-appearance: none;
|
|
5178
|
+
appearance: none;
|
|
5100
5179
|
}
|
|
5101
5180
|
|
|
5102
|
-
.muka-
|
|
5103
|
-
|
|
5104
|
-
cursor: not-allowed;
|
|
5181
|
+
.muka-search-input__input::-ms-clear {
|
|
5182
|
+
display: none;
|
|
5105
5183
|
}
|
|
5106
5184
|
|
|
5107
|
-
/*
|
|
5108
|
-
|
|
5185
|
+
/* ─── Trailing slot (loading spinner) ─────────────────── */
|
|
5186
|
+
|
|
5187
|
+
.muka-search-input__trailing {
|
|
5109
5188
|
display: inline-flex;
|
|
5110
5189
|
align-items: center;
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
pointer-events: none;
|
|
5114
|
-
color: var(--color-text-subtle-default);
|
|
5190
|
+
justify-content: center;
|
|
5191
|
+
flex-shrink: 0;
|
|
5115
5192
|
}
|
|
5116
5193
|
|
|
5117
|
-
|
|
5118
|
-
color: var(--input-field-color-disabled-foreground);
|
|
5119
|
-
}
|
|
5194
|
+
/* ─── Clear button ────────────────────────────────────── */
|
|
5120
5195
|
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5196
|
+
.muka-search-input__clear {
|
|
5197
|
+
display: inline-flex;
|
|
5198
|
+
align-items: center;
|
|
5199
|
+
justify-content: center;
|
|
5200
|
+
width: 20px;
|
|
5201
|
+
height: 20px;
|
|
5202
|
+
border: none;
|
|
5203
|
+
background: none;
|
|
5204
|
+
padding: 0;
|
|
5205
|
+
cursor: pointer;
|
|
5127
5206
|
color: var(--color-text-subtle-default);
|
|
5128
|
-
|
|
5207
|
+
flex-shrink: 0;
|
|
5208
|
+
-webkit-tap-highlight-color: transparent;
|
|
5129
5209
|
}
|
|
5130
5210
|
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
5134
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
5135
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
5136
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
5137
|
-
color: var(--color-state-error-foreground);
|
|
5138
|
-
margin: 0;
|
|
5211
|
+
.muka-search-input__clear:hover {
|
|
5212
|
+
color: var(--color-text-default-default);
|
|
5139
5213
|
}
|
|
5140
5214
|
|
|
5215
|
+
.muka-search-input__clear:focus-visible {
|
|
5216
|
+
outline: 2px solid var(--color-action-default);
|
|
5217
|
+
outline-offset: 2px;
|
|
5218
|
+
border-radius: 50%;
|
|
5219
|
+
}
|
|
5141
5220
|
|
|
5142
|
-
/*
|
|
5143
|
-
/* SegmentGroup Component Styles - Using Muka Design Tokens */
|
|
5221
|
+
/* ─── Cancel button ───────────────────────────────────── */
|
|
5144
5222
|
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5223
|
+
.muka-search-input__cancel {
|
|
5224
|
+
flex-shrink: 0;
|
|
5225
|
+
background: none;
|
|
5226
|
+
border: none;
|
|
5227
|
+
padding: var(--spacing-1) var(--spacing-2);
|
|
5228
|
+
cursor: pointer;
|
|
5229
|
+
color: var(--color-action-default);
|
|
5230
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
5231
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
5232
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
5233
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
5234
|
+
-webkit-tap-highlight-color: transparent;
|
|
5155
5235
|
}
|
|
5156
5236
|
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
content: '';
|
|
5160
|
-
position: absolute;
|
|
5161
|
-
inset: 0;
|
|
5162
|
-
border-radius: inherit;
|
|
5163
|
-
box-shadow: var(--segmentgroup-container-shadow);
|
|
5164
|
-
pointer-events: none;
|
|
5237
|
+
.muka-search-input__cancel:hover {
|
|
5238
|
+
color: var(--color-action-hover);
|
|
5165
5239
|
}
|
|
5166
5240
|
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5241
|
+
.muka-search-input__cancel:focus-visible {
|
|
5242
|
+
outline: 2px solid var(--color-action-default);
|
|
5243
|
+
outline-offset: 2px;
|
|
5244
|
+
border-radius: var(--radius-sm);
|
|
5170
5245
|
}
|
|
5171
5246
|
|
|
5172
|
-
|
|
5173
|
-
|
|
5247
|
+
|
|
5248
|
+
/* RangeSlider */
|
|
5249
|
+
/* RangeSlider Component Styles - Using Muka Design Tokens */
|
|
5250
|
+
|
|
5251
|
+
.muka-range-slider {
|
|
5252
|
+
display: flex;
|
|
5253
|
+
flex-direction: column;
|
|
5254
|
+
gap: var(--spacing-1);
|
|
5255
|
+
width: 100%;
|
|
5174
5256
|
}
|
|
5175
5257
|
|
|
5176
|
-
/*
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
z-index: 0;
|
|
5187
|
-
pointer-events: none;
|
|
5258
|
+
/* ========================================
|
|
5259
|
+
HEADER: label group (label + info + optional) and value readout
|
|
5260
|
+
======================================== */
|
|
5261
|
+
|
|
5262
|
+
.muka-range-slider__header {
|
|
5263
|
+
display: flex;
|
|
5264
|
+
align-items: center;
|
|
5265
|
+
justify-content: space-between;
|
|
5266
|
+
gap: var(--spacing-2);
|
|
5267
|
+
min-height: 24px;
|
|
5188
5268
|
}
|
|
5189
5269
|
|
|
5190
|
-
|
|
5191
|
-
.muka-segmentgroup__segment {
|
|
5270
|
+
.muka-range-slider__label-group {
|
|
5192
5271
|
display: inline-flex;
|
|
5193
5272
|
align-items: center;
|
|
5194
|
-
|
|
5195
|
-
gap: var(--segmentgroup-segment-gap);
|
|
5196
|
-
border: none;
|
|
5197
|
-
background-color: var(--segmentgroup-segment-color-unselected-background);
|
|
5198
|
-
color: var(--segmentgroup-segment-color-unselected-foreground);
|
|
5199
|
-
border-radius: var(--segmentgroup-segment-radius);
|
|
5200
|
-
cursor: pointer;
|
|
5201
|
-
transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
|
|
5202
|
-
position: relative;
|
|
5203
|
-
outline: none;
|
|
5204
|
-
box-shadow: var(--segmentgroup-segment-shadow-unselected);
|
|
5205
|
-
font-family: var(--alias-font-plain-family);
|
|
5206
|
-
font-weight: var(--segmentgroup-segment-fontWeight);
|
|
5207
|
-
z-index: 1; /* Keep above pill */
|
|
5273
|
+
gap: var(--spacing-2);
|
|
5208
5274
|
}
|
|
5209
5275
|
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
border-radius: var(--border-radius-xl, 16px);
|
|
5217
|
-
}
|
|
5218
|
-
.muka-segmentgroup--sm .muka-segmentgroup__segment {
|
|
5219
|
-
padding: var(--segmentgroup-segment-padding-sm-y) var(--segmentgroup-segment-padding-sm-x);
|
|
5220
|
-
height: var(--segmentgroup-segment-height-sm);
|
|
5221
|
-
font-size: var(--text-label-sm-fontSize);
|
|
5222
|
-
line-height: var(--text-label-sm-lineHeight);
|
|
5276
|
+
.muka-range-slider__label {
|
|
5277
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
5278
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
5279
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
5280
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
5281
|
+
color: var(--color-text-default-default);
|
|
5223
5282
|
}
|
|
5224
5283
|
|
|
5225
|
-
.muka-
|
|
5226
|
-
|
|
5284
|
+
.muka-range-slider__info {
|
|
5285
|
+
color: var(--color-text-subtle-default);
|
|
5227
5286
|
}
|
|
5228
|
-
|
|
5229
|
-
.muka-
|
|
5230
|
-
|
|
5287
|
+
|
|
5288
|
+
.muka-range-slider__optional {
|
|
5289
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
5290
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
5291
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
5292
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
5293
|
+
color: var(--color-text-subtle-default);
|
|
5231
5294
|
}
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
font-
|
|
5235
|
-
|
|
5295
|
+
|
|
5296
|
+
.muka-range-slider__value {
|
|
5297
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
5298
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
5299
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
5300
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
5301
|
+
color: var(--color-text-default-default);
|
|
5302
|
+
font-variant-numeric: tabular-nums;
|
|
5236
5303
|
}
|
|
5237
5304
|
|
|
5238
|
-
.muka-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
.muka-segmentgroup--lg .muka-segmentgroup__segment {
|
|
5246
|
-
padding: var(--segmentgroup-segment-padding-lg-y) var(--segmentgroup-segment-padding-lg-x);
|
|
5247
|
-
height: 40px;
|
|
5248
|
-
font-size: var(--text-label-lg-fontSize);
|
|
5249
|
-
line-height: var(--text-label-lg-lineHeight);
|
|
5250
|
-
}
|
|
5251
|
-
|
|
5252
|
-
/* Icon-only variants */
|
|
5253
|
-
.muka-segmentgroup--icon-only {
|
|
5254
|
-
gap: var(--spacing-1, 4px);
|
|
5255
|
-
}
|
|
5256
|
-
|
|
5257
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--sm .muka-segmentgroup__segment {
|
|
5258
|
-
width: 24px;
|
|
5259
|
-
height: 24px;
|
|
5260
|
-
padding: 0;
|
|
5261
|
-
}
|
|
5262
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--sm .muka-segmentgroup__icon svg {
|
|
5263
|
-
width: 16px;
|
|
5264
|
-
height: 16px;
|
|
5265
|
-
}
|
|
5266
|
-
|
|
5267
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--md .muka-segmentgroup__segment {
|
|
5268
|
-
width: 32px;
|
|
5269
|
-
height: 32px;
|
|
5270
|
-
padding: 0;
|
|
5271
|
-
}
|
|
5272
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--md .muka-segmentgroup__icon svg {
|
|
5273
|
-
width: 20px;
|
|
5274
|
-
height: 20px;
|
|
5275
|
-
}
|
|
5276
|
-
|
|
5277
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--lg .muka-segmentgroup__segment {
|
|
5278
|
-
width: 40px;
|
|
5279
|
-
height: 40px;
|
|
5280
|
-
padding: 0;
|
|
5281
|
-
}
|
|
5282
|
-
.muka-segmentgroup--icon-only.muka-segmentgroup--lg .muka-segmentgroup__icon svg {
|
|
5283
|
-
width: 24px;
|
|
5284
|
-
height: 24px;
|
|
5285
|
-
}
|
|
5286
|
-
|
|
5287
|
-
/* Icon */
|
|
5288
|
-
.muka-segmentgroup__icon {
|
|
5289
|
-
display: inline-flex;
|
|
5290
|
-
align-items: center;
|
|
5291
|
-
justify-content: center;
|
|
5292
|
-
}
|
|
5293
|
-
|
|
5294
|
-
/* Selected state */
|
|
5295
|
-
.muka-segmentgroup__segment--selected {
|
|
5296
|
-
background-color: transparent;
|
|
5297
|
-
box-shadow: none;
|
|
5298
|
-
color: var(--segmentgroup-segment-color-selected-foreground);
|
|
5299
|
-
z-index: 2; /* Highlight pill when focused is tested below */
|
|
5300
|
-
}
|
|
5301
|
-
|
|
5302
|
-
/* Hover state (only for unselected) */
|
|
5303
|
-
.muka-segmentgroup__segment:not(.muka-segmentgroup__segment--selected):not(:disabled):hover {
|
|
5304
|
-
color: var(--segmentgroup-segment-color-hover-foreground);
|
|
5305
|
-
}
|
|
5306
|
-
|
|
5307
|
-
/* Focus visible */
|
|
5308
|
-
.muka-segmentgroup__segment:focus-visible {
|
|
5309
|
-
outline: 2px solid var(--color-border-focus);
|
|
5310
|
-
outline-offset: 2px;
|
|
5311
|
-
z-index: 2;
|
|
5312
|
-
}
|
|
5313
|
-
|
|
5314
|
-
/* Disabled state */
|
|
5315
|
-
.muka-segmentgroup__segment--disabled,
|
|
5316
|
-
.muka-segmentgroup__segment:disabled {
|
|
5317
|
-
cursor: not-allowed;
|
|
5318
|
-
opacity: 0.5;
|
|
5319
|
-
}
|
|
5320
|
-
|
|
5321
|
-
/* Label */
|
|
5322
|
-
.muka-segmentgroup__label {
|
|
5323
|
-
display: inline-flex;
|
|
5324
|
-
align-items: center;
|
|
5325
|
-
white-space: nowrap;
|
|
5326
|
-
user-select: none;
|
|
5327
|
-
}
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
/* Section */
|
|
5331
|
-
/* Section Component - Layout tokens (section.padding) */
|
|
5332
|
-
|
|
5333
|
-
.muka-section {
|
|
5334
|
-
box-sizing: border-box;
|
|
5335
|
-
}
|
|
5336
|
-
|
|
5337
|
-
.muka-section--padding-compact {
|
|
5338
|
-
padding-block: var(--section-padding-vertical-compact);
|
|
5339
|
-
padding-inline: var(--section-padding-horizontal-compact);
|
|
5340
|
-
}
|
|
5341
|
-
|
|
5342
|
-
.muka-section--padding-default {
|
|
5343
|
-
padding-block: var(--section-padding-vertical-default);
|
|
5344
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
5345
|
-
}
|
|
5346
|
-
|
|
5347
|
-
.muka-section--padding-spacious {
|
|
5348
|
-
padding-block: var(--section-padding-vertical-spacious);
|
|
5349
|
-
padding-inline: var(--section-padding-horizontal-spacious);
|
|
5350
|
-
}
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
/* SearchInput */
|
|
5354
|
-
/* SearchInput Component Styles */
|
|
5355
|
-
|
|
5356
|
-
.muka-search-input {
|
|
5357
|
-
display: flex;
|
|
5358
|
-
align-items: center;
|
|
5359
|
-
gap: var(--spacing-3);
|
|
5360
|
-
width: 100%;
|
|
5361
|
-
}
|
|
5362
|
-
|
|
5363
|
-
/* ─── Field wrapper ───────────────────────────────────── */
|
|
5364
|
-
|
|
5365
|
-
.muka-search-input__field {
|
|
5366
|
-
flex: 1 1 auto;
|
|
5367
|
-
display: flex;
|
|
5368
|
-
align-items: center;
|
|
5369
|
-
gap: var(--spacing-2);
|
|
5370
|
-
background-color: var(--input-field-color-default-background);
|
|
5371
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
5372
|
-
border-radius: var(--input-field-radius-md);
|
|
5373
|
-
padding: 0 var(--input-field-padding-x);
|
|
5374
|
-
transition: border-color 0.12s ease, background-color 0.12s ease;
|
|
5375
|
-
}
|
|
5376
|
-
|
|
5377
|
-
.muka-search-input--focused .muka-search-input__field {
|
|
5378
|
-
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
5379
|
-
}
|
|
5380
|
-
|
|
5381
|
-
/* ─── Sizes ───────────────────────────────────────────── */
|
|
5382
|
-
|
|
5383
|
-
.muka-search-input--sm .muka-search-input__field {
|
|
5384
|
-
min-height: var(--input-field-height-sm);
|
|
5385
|
-
border-radius: var(--input-field-radius-sm);
|
|
5386
|
-
}
|
|
5387
|
-
|
|
5388
|
-
.muka-search-input--md .muka-search-input__field {
|
|
5389
|
-
min-height: var(--input-field-height-default);
|
|
5390
|
-
}
|
|
5391
|
-
|
|
5392
|
-
.muka-search-input--lg .muka-search-input__field {
|
|
5393
|
-
min-height: var(--input-field-height-lg);
|
|
5394
|
-
border-radius: var(--input-field-radius-lg);
|
|
5395
|
-
}
|
|
5396
|
-
|
|
5397
|
-
/* ─── Embedded variant (e.g. inside TopBar) ───────────── */
|
|
5398
|
-
|
|
5399
|
-
.muka-search-input--embedded .muka-search-input__field {
|
|
5400
|
-
background-color: var(--color-surface-level1);
|
|
5401
|
-
border-color: transparent;
|
|
5402
|
-
}
|
|
5403
|
-
|
|
5404
|
-
.muka-search-input--embedded.muka-search-input--focused .muka-search-input__field {
|
|
5405
|
-
border-color: transparent;
|
|
5406
|
-
background-color: var(--color-surface-level2);
|
|
5407
|
-
}
|
|
5408
|
-
|
|
5409
|
-
/* ─── Disabled ────────────────────────────────────────── */
|
|
5410
|
-
|
|
5411
|
-
.muka-search-input--disabled .muka-search-input__field {
|
|
5412
|
-
opacity: 0.5;
|
|
5413
|
-
pointer-events: none;
|
|
5414
|
-
}
|
|
5415
|
-
|
|
5416
|
-
/* ─── Leading icon ────────────────────────────────────── */
|
|
5417
|
-
|
|
5418
|
-
.muka-search-input__leading {
|
|
5419
|
-
display: inline-flex;
|
|
5420
|
-
align-items: center;
|
|
5421
|
-
justify-content: center;
|
|
5422
|
-
flex-shrink: 0;
|
|
5423
|
-
color: var(--color-text-subtle-default);
|
|
5424
|
-
}
|
|
5425
|
-
|
|
5426
|
-
/* ─── Input element ───────────────────────────────────── */
|
|
5427
|
-
|
|
5428
|
-
.muka-search-input__input {
|
|
5429
|
-
flex: 1 1 auto;
|
|
5430
|
-
min-width: 0;
|
|
5431
|
-
border: none;
|
|
5432
|
-
background: transparent;
|
|
5433
|
-
outline: none;
|
|
5434
|
-
padding: 0;
|
|
5435
|
-
color: var(--color-text-default-default);
|
|
5436
|
-
font-family: var(--text-body-md-regular-fontFamily);
|
|
5437
|
-
font-weight: var(--text-body-md-regular-fontWeight);
|
|
5438
|
-
font-size: var(--text-body-md-regular-fontSize);
|
|
5439
|
-
line-height: var(--text-body-md-regular-lineHeight);
|
|
5440
|
-
appearance: none;
|
|
5441
|
-
-webkit-appearance: none;
|
|
5442
|
-
}
|
|
5443
|
-
|
|
5444
|
-
.muka-search-input__input::placeholder {
|
|
5445
|
-
color: var(--color-text-subtle-default);
|
|
5446
|
-
}
|
|
5447
|
-
|
|
5448
|
-
/* Hide the browser-supplied clear button (WebKit + Edge) */
|
|
5449
|
-
.muka-search-input__input::-webkit-search-cancel-button,
|
|
5450
|
-
.muka-search-input__input::-webkit-search-decoration {
|
|
5451
|
-
-webkit-appearance: none;
|
|
5452
|
-
appearance: none;
|
|
5453
|
-
}
|
|
5454
|
-
|
|
5455
|
-
.muka-search-input__input::-ms-clear {
|
|
5456
|
-
display: none;
|
|
5457
|
-
}
|
|
5458
|
-
|
|
5459
|
-
/* ─── Trailing slot (loading spinner) ─────────────────── */
|
|
5460
|
-
|
|
5461
|
-
.muka-search-input__trailing {
|
|
5462
|
-
display: inline-flex;
|
|
5463
|
-
align-items: center;
|
|
5464
|
-
justify-content: center;
|
|
5465
|
-
flex-shrink: 0;
|
|
5466
|
-
}
|
|
5467
|
-
|
|
5468
|
-
/* ─── Clear button ────────────────────────────────────── */
|
|
5469
|
-
|
|
5470
|
-
.muka-search-input__clear {
|
|
5471
|
-
display: inline-flex;
|
|
5472
|
-
align-items: center;
|
|
5473
|
-
justify-content: center;
|
|
5474
|
-
width: 20px;
|
|
5475
|
-
height: 20px;
|
|
5476
|
-
border: none;
|
|
5477
|
-
background: none;
|
|
5478
|
-
padding: 0;
|
|
5479
|
-
cursor: pointer;
|
|
5480
|
-
color: var(--color-text-subtle-default);
|
|
5481
|
-
flex-shrink: 0;
|
|
5482
|
-
-webkit-tap-highlight-color: transparent;
|
|
5483
|
-
}
|
|
5484
|
-
|
|
5485
|
-
.muka-search-input__clear:hover {
|
|
5486
|
-
color: var(--color-text-default-default);
|
|
5487
|
-
}
|
|
5488
|
-
|
|
5489
|
-
.muka-search-input__clear:focus-visible {
|
|
5490
|
-
outline: 2px solid var(--color-action-default);
|
|
5491
|
-
outline-offset: 2px;
|
|
5492
|
-
border-radius: 50%;
|
|
5493
|
-
}
|
|
5494
|
-
|
|
5495
|
-
/* ─── Cancel button ───────────────────────────────────── */
|
|
5496
|
-
|
|
5497
|
-
.muka-search-input__cancel {
|
|
5498
|
-
flex-shrink: 0;
|
|
5499
|
-
background: none;
|
|
5500
|
-
border: none;
|
|
5501
|
-
padding: var(--spacing-1) var(--spacing-2);
|
|
5502
|
-
cursor: pointer;
|
|
5503
|
-
color: var(--color-action-default);
|
|
5504
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
5505
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
5506
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
5507
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
5508
|
-
-webkit-tap-highlight-color: transparent;
|
|
5509
|
-
}
|
|
5510
|
-
|
|
5511
|
-
.muka-search-input__cancel:hover {
|
|
5512
|
-
color: var(--color-action-hover);
|
|
5513
|
-
}
|
|
5514
|
-
|
|
5515
|
-
.muka-search-input__cancel:focus-visible {
|
|
5516
|
-
outline: 2px solid var(--color-action-default);
|
|
5517
|
-
outline-offset: 2px;
|
|
5518
|
-
border-radius: var(--radius-sm);
|
|
5519
|
-
}
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
/* RangeSlider */
|
|
5523
|
-
/* RangeSlider Component Styles - Using Muka Design Tokens */
|
|
5524
|
-
|
|
5525
|
-
.muka-range-slider {
|
|
5526
|
-
display: flex;
|
|
5527
|
-
flex-direction: column;
|
|
5528
|
-
gap: var(--spacing-1);
|
|
5529
|
-
width: 100%;
|
|
5530
|
-
}
|
|
5531
|
-
|
|
5532
|
-
/* ========================================
|
|
5533
|
-
HEADER: label group (label + info + optional) and value readout
|
|
5534
|
-
======================================== */
|
|
5535
|
-
|
|
5536
|
-
.muka-range-slider__header {
|
|
5537
|
-
display: flex;
|
|
5538
|
-
align-items: center;
|
|
5539
|
-
justify-content: space-between;
|
|
5540
|
-
gap: var(--spacing-2);
|
|
5541
|
-
min-height: 24px;
|
|
5542
|
-
}
|
|
5543
|
-
|
|
5544
|
-
.muka-range-slider__label-group {
|
|
5545
|
-
display: inline-flex;
|
|
5546
|
-
align-items: center;
|
|
5547
|
-
gap: var(--spacing-2);
|
|
5548
|
-
}
|
|
5549
|
-
|
|
5550
|
-
.muka-range-slider__label {
|
|
5551
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
5552
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
5553
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
5554
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
5555
|
-
color: var(--color-text-default-default);
|
|
5556
|
-
}
|
|
5557
|
-
|
|
5558
|
-
.muka-range-slider__info {
|
|
5559
|
-
color: var(--color-text-subtle-default);
|
|
5560
|
-
}
|
|
5561
|
-
|
|
5562
|
-
.muka-range-slider__optional {
|
|
5563
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
5564
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
5565
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
5566
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
5567
|
-
color: var(--color-text-subtle-default);
|
|
5568
|
-
}
|
|
5569
|
-
|
|
5570
|
-
.muka-range-slider__value {
|
|
5571
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
5572
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
5573
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
5574
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
5575
|
-
color: var(--color-text-default-default);
|
|
5576
|
-
font-variant-numeric: tabular-nums;
|
|
5577
|
-
}
|
|
5578
|
-
|
|
5579
|
-
.muka-range-slider__helper {
|
|
5580
|
-
margin: 0;
|
|
5581
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
5582
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
5583
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
5584
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
5585
|
-
color: var(--color-text-subtle-default);
|
|
5305
|
+
.muka-range-slider__helper {
|
|
5306
|
+
margin: 0;
|
|
5307
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
5308
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
5309
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
5310
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
5311
|
+
color: var(--color-text-subtle-default);
|
|
5586
5312
|
}
|
|
5587
5313
|
|
|
5588
5314
|
/* ========================================
|
|
@@ -11098,11 +10824,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11098
10824
|
grid-template-areas: 'rail bubble';
|
|
11099
10825
|
}
|
|
11100
10826
|
|
|
11101
|
-
.muka-chat-message--own.muka-chat-message--has-avatar .muka-chat-message__row {
|
|
11102
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
11103
|
-
grid-template-areas: 'bubble rail';
|
|
11104
|
-
}
|
|
11105
|
-
|
|
11106
10827
|
.muka-chat-message__rail {
|
|
11107
10828
|
grid-area: rail;
|
|
11108
10829
|
/* Sits on the bubble's baseline (Figma 5355:44091) */
|
|
@@ -11137,6 +10858,12 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11137
10858
|
|
|
11138
10859
|
.muka-chat-message__bubble {
|
|
11139
10860
|
grid-area: bubble;
|
|
10861
|
+
/*
|
|
10862
|
+
* Width follows the content: a single line hugs, and once the text wraps the
|
|
10863
|
+
* bubble fills to the shared max width. Robust to string or rich children —
|
|
10864
|
+
* no length measuring needed (Figma `Text length` on 5355:44091).
|
|
10865
|
+
*/
|
|
10866
|
+
width: fit-content;
|
|
11140
10867
|
max-width: var(--chatbubble-max-width);
|
|
11141
10868
|
position: relative;
|
|
11142
10869
|
display: flex;
|
|
@@ -11149,18 +10876,11 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11149
10876
|
word-break: break-word;
|
|
11150
10877
|
}
|
|
11151
10878
|
|
|
11152
|
-
/*
|
|
11153
|
-
|
|
11154
|
-
* content, long ones fill the row up to the shared max width.
|
|
11155
|
-
*/
|
|
11156
|
-
.muka-chat-message--long .muka-chat-message__bubble {
|
|
10879
|
+
/* Media, an embed or an action stack always run the full bubble width. */
|
|
10880
|
+
.muka-chat-message--has-blocks .muka-chat-message__bubble {
|
|
11157
10881
|
width: 100%;
|
|
11158
10882
|
}
|
|
11159
10883
|
|
|
11160
|
-
.muka-chat-message--short .muka-chat-message__bubble {
|
|
11161
|
-
width: fit-content;
|
|
11162
|
-
}
|
|
11163
|
-
|
|
11164
10884
|
.muka-chat-message--own .muka-chat-message__bubble {
|
|
11165
10885
|
justify-self: end;
|
|
11166
10886
|
}
|
|
@@ -11337,68 +11057,198 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11337
11057
|
bottom: var(--spacing-1);
|
|
11338
11058
|
}
|
|
11339
11059
|
|
|
11340
|
-
/*
|
|
11341
|
-
*
|
|
11342
|
-
*
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11060
|
+
/*
|
|
11061
|
+
* When the last block in the body is media, an embed or an action stack (not
|
|
11062
|
+
* trailing text), it runs the full width, so reserve a line below for the inset
|
|
11063
|
+
* timestamp. A message that ends in text clears the corner inline instead (see
|
|
11064
|
+
* `__message` padding-right above), so it needs no extra bottom space.
|
|
11065
|
+
*/
|
|
11066
|
+
.muka-chat-message--has-timestamp.muka-chat-message--trailing-block .muka-chat-message__body {
|
|
11067
|
+
padding-bottom: var(--text-body-xs-regular-lineHeight);
|
|
11068
|
+
}
|
|
11069
|
+
|
|
11070
|
+
/* ─── Menu affordance ──────────────────────────────────── */
|
|
11071
|
+
|
|
11072
|
+
/*
|
|
11073
|
+
* Hidden at rest. Revealed on hover on pointer devices, on keyboard focus
|
|
11074
|
+
* everywhere, and pinned while its menu is open. On touch the equivalent
|
|
11075
|
+
* affordance is a long-press on the bubble, which opens an ActionSheet.
|
|
11076
|
+
*/
|
|
11077
|
+
.muka-chat-message__menu {
|
|
11078
|
+
position: absolute;
|
|
11079
|
+
top: var(--spacing-1);
|
|
11080
|
+
right: var(--spacing-1);
|
|
11081
|
+
opacity: 0;
|
|
11082
|
+
pointer-events: none;
|
|
11083
|
+
}
|
|
11084
|
+
|
|
11085
|
+
.muka-chat-message__menu:focus-within,
|
|
11086
|
+
.muka-chat-message--menu-open .muka-chat-message__menu {
|
|
11087
|
+
opacity: 1;
|
|
11088
|
+
pointer-events: auto;
|
|
11089
|
+
}
|
|
11090
|
+
|
|
11091
|
+
@media (hover: hover) and (pointer: fine) and (min-width: 1024px) {
|
|
11092
|
+
.muka-chat-message__bubble:hover .muka-chat-message__menu {
|
|
11093
|
+
opacity: 1;
|
|
11094
|
+
pointer-events: auto;
|
|
11095
|
+
}
|
|
11096
|
+
}
|
|
11097
|
+
|
|
11098
|
+
/* Suppress iOS Safari's own callout so the long-press sheet can take over */
|
|
11099
|
+
@media (pointer: coarse) {
|
|
11100
|
+
.muka-chat-message--has-menu .muka-chat-message__bubble {
|
|
11101
|
+
-webkit-touch-callout: none;
|
|
11102
|
+
}
|
|
11103
|
+
}
|
|
11104
|
+
|
|
11105
|
+
/* ─── Print ────────────────────────────────────────────── */
|
|
11106
|
+
|
|
11107
|
+
@media print {
|
|
11108
|
+
.muka-chat-message__bubble {
|
|
11109
|
+
box-shadow: none;
|
|
11110
|
+
break-inside: avoid;
|
|
11111
|
+
print-color-adjust: exact;
|
|
11112
|
+
-webkit-print-color-adjust: exact;
|
|
11113
|
+
}
|
|
11114
|
+
|
|
11115
|
+
.muka-chat-message__embed {
|
|
11116
|
+
break-inside: avoid;
|
|
11117
|
+
print-color-adjust: exact;
|
|
11118
|
+
-webkit-print-color-adjust: exact;
|
|
11119
|
+
}
|
|
11120
|
+
|
|
11121
|
+
.muka-chat-message__menu,
|
|
11122
|
+
.muka-chat-message__embed-copy,
|
|
11123
|
+
.muka-chat-message__action-stack {
|
|
11124
|
+
display: none;
|
|
11125
|
+
}
|
|
11126
|
+
}
|
|
11127
|
+
|
|
11128
|
+
|
|
11129
|
+
/* ChatComposer */
|
|
11130
|
+
/* ChatComposer Component Styles */
|
|
11131
|
+
|
|
11132
|
+
/*
|
|
11133
|
+
* The composer is a bare, fill-width row: no padding, background, border or
|
|
11134
|
+
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
11135
|
+
* container — see BottomBar's `chat` variant.
|
|
11136
|
+
*/
|
|
11137
|
+
.muka-chat-composer {
|
|
11138
|
+
display: flex;
|
|
11139
|
+
flex-direction: column;
|
|
11140
|
+
gap: var(--spacing-3);
|
|
11141
|
+
width: 100%;
|
|
11142
|
+
}
|
|
11143
|
+
|
|
11144
|
+
.muka-chat-composer--disabled {
|
|
11145
|
+
opacity: 0.6;
|
|
11146
|
+
pointer-events: none;
|
|
11147
|
+
}
|
|
11148
|
+
|
|
11149
|
+
/* ─── Input row ────────────────────────────────────────── */
|
|
11150
|
+
|
|
11151
|
+
.muka-chat-composer__row {
|
|
11152
|
+
display: flex;
|
|
11153
|
+
width: 100%;
|
|
11154
|
+
align-items: flex-end;
|
|
11155
|
+
gap: var(--spacing-3);
|
|
11156
|
+
}
|
|
11157
|
+
|
|
11158
|
+
/* ─── Text field ───────────────────────────────────────── */
|
|
11159
|
+
|
|
11160
|
+
.muka-chat-composer__field {
|
|
11161
|
+
display: flex;
|
|
11162
|
+
flex: 1 1 auto;
|
|
11163
|
+
min-width: 0;
|
|
11164
|
+
box-sizing: border-box;
|
|
11165
|
+
align-items: center;
|
|
11166
|
+
gap: var(--spacing-1);
|
|
11167
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11168
|
+
padding: 0 var(--spacing-2);
|
|
11169
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
11170
|
+
border-radius: var(--input-field-radius-lg);
|
|
11171
|
+
background-color: var(--input-field-color-default-background);
|
|
11172
|
+
transition: border-color 0.12s ease;
|
|
11173
|
+
}
|
|
11174
|
+
|
|
11175
|
+
.muka-chat-composer__field:focus-within {
|
|
11176
|
+
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
11177
|
+
}
|
|
11178
|
+
|
|
11179
|
+
.muka-chat-composer__input {
|
|
11180
|
+
flex: 1 1 auto;
|
|
11181
|
+
min-width: 0;
|
|
11182
|
+
width: 100%;
|
|
11183
|
+
box-sizing: border-box;
|
|
11184
|
+
resize: none;
|
|
11185
|
+
border: none;
|
|
11186
|
+
background: transparent;
|
|
11187
|
+
outline: none;
|
|
11188
|
+
padding: 0 var(--spacing-1);
|
|
11189
|
+
color: var(--color-text-default-default);
|
|
11190
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
11191
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11192
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
11193
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
11194
|
+
appearance: none;
|
|
11195
|
+
-webkit-appearance: none;
|
|
11196
|
+
}
|
|
11197
|
+
|
|
11198
|
+
.muka-chat-composer__input::placeholder {
|
|
11199
|
+
color: var(--color-text-subtle-default);
|
|
11200
|
+
}
|
|
11201
|
+
|
|
11202
|
+
/* Keep the in-field emoji button flush to the bottom-right as the field grows */
|
|
11203
|
+
.muka-chat-composer__emoji {
|
|
11204
|
+
flex-shrink: 0;
|
|
11205
|
+
}
|
|
11206
|
+
|
|
11207
|
+
/* ─── Recording bar ────────────────────────────────────── */
|
|
11208
|
+
|
|
11209
|
+
.muka-chat-composer__recording {
|
|
11210
|
+
display: flex;
|
|
11211
|
+
flex: 1 1 auto;
|
|
11212
|
+
min-width: 0;
|
|
11213
|
+
box-sizing: border-box;
|
|
11214
|
+
align-items: center;
|
|
11215
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11216
|
+
padding: var(--card-padding-sm);
|
|
11217
|
+
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11218
|
+
border-radius: var(--radius-lg);
|
|
11219
|
+
background-color: var(--card-color-default-background);
|
|
11346
11220
|
}
|
|
11347
11221
|
|
|
11348
|
-
/* ───
|
|
11222
|
+
/* ─── Staged attachments strip ─────────────────────────── */
|
|
11349
11223
|
|
|
11350
|
-
|
|
11351
|
-
|
|
11352
|
-
|
|
11353
|
-
* affordance is a long-press on the bubble, which opens an ActionSheet.
|
|
11354
|
-
*/
|
|
11355
|
-
.muka-chat-message__menu {
|
|
11356
|
-
position: absolute;
|
|
11357
|
-
top: var(--spacing-1);
|
|
11358
|
-
right: var(--spacing-1);
|
|
11359
|
-
opacity: 0;
|
|
11360
|
-
pointer-events: none;
|
|
11224
|
+
.muka-chat-composer__attachments-strip {
|
|
11225
|
+
position: relative;
|
|
11226
|
+
width: 100%;
|
|
11361
11227
|
}
|
|
11362
11228
|
|
|
11363
|
-
.muka-chat-
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
|
|
11229
|
+
.muka-chat-composer__attachments {
|
|
11230
|
+
display: flex;
|
|
11231
|
+
gap: var(--spacing-3);
|
|
11232
|
+
overflow-x: auto;
|
|
11233
|
+
scroll-behavior: smooth;
|
|
11234
|
+
scrollbar-width: none;
|
|
11367
11235
|
}
|
|
11368
11236
|
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
opacity: 1;
|
|
11372
|
-
pointer-events: auto;
|
|
11373
|
-
}
|
|
11237
|
+
.muka-chat-composer__attachments::-webkit-scrollbar {
|
|
11238
|
+
display: none;
|
|
11374
11239
|
}
|
|
11375
11240
|
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
|
|
11241
|
+
.muka-chat-composer__overflow {
|
|
11242
|
+
position: absolute;
|
|
11243
|
+
top: 50%;
|
|
11244
|
+
right: var(--spacing-2);
|
|
11245
|
+
transform: translateY(-50%);
|
|
11381
11246
|
}
|
|
11382
11247
|
|
|
11383
11248
|
/* ─── Print ────────────────────────────────────────────── */
|
|
11384
11249
|
|
|
11385
11250
|
@media print {
|
|
11386
|
-
.muka-chat-
|
|
11387
|
-
box-shadow: none;
|
|
11388
|
-
break-inside: avoid;
|
|
11389
|
-
print-color-adjust: exact;
|
|
11390
|
-
-webkit-print-color-adjust: exact;
|
|
11391
|
-
}
|
|
11392
|
-
|
|
11393
|
-
.muka-chat-message__embed {
|
|
11394
|
-
break-inside: avoid;
|
|
11395
|
-
print-color-adjust: exact;
|
|
11396
|
-
-webkit-print-color-adjust: exact;
|
|
11397
|
-
}
|
|
11398
|
-
|
|
11399
|
-
.muka-chat-message__menu,
|
|
11400
|
-
.muka-chat-message__embed-copy,
|
|
11401
|
-
.muka-chat-message__action-stack {
|
|
11251
|
+
.muka-chat-composer {
|
|
11402
11252
|
display: none;
|
|
11403
11253
|
}
|
|
11404
11254
|
}
|
|
@@ -11548,254 +11398,441 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11548
11398
|
overflow: hidden;
|
|
11549
11399
|
}
|
|
11550
11400
|
|
|
11551
|
-
.muka-chat-attachment-chip__progress-fill {
|
|
11552
|
-
display: block;
|
|
11553
|
-
height: 100%;
|
|
11554
|
-
background-color: var(--color-action-default);
|
|
11555
|
-
transition: width 0.16s ease;
|
|
11401
|
+
.muka-chat-attachment-chip__progress-fill {
|
|
11402
|
+
display: block;
|
|
11403
|
+
height: 100%;
|
|
11404
|
+
background-color: var(--color-action-default);
|
|
11405
|
+
transition: width 0.16s ease;
|
|
11406
|
+
}
|
|
11407
|
+
|
|
11408
|
+
.muka-chat-attachment-chip--error .muka-chat-attachment-chip__progress-fill {
|
|
11409
|
+
background-color: var(--color-state-error-default, var(--color-text-default-default));
|
|
11410
|
+
}
|
|
11411
|
+
|
|
11412
|
+
|
|
11413
|
+
/* Card */
|
|
11414
|
+
/* Card Component Styles - Using Muka Design Tokens */
|
|
11415
|
+
|
|
11416
|
+
.muka-card {
|
|
11417
|
+
background-color: var(--card-color-default-background);
|
|
11418
|
+
color: var(--card-color-default-foreground);
|
|
11419
|
+
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11420
|
+
box-shadow: var(--card-shadow-default);
|
|
11421
|
+
transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
|
|
11422
|
+
overflow: hidden;
|
|
11423
|
+
}
|
|
11424
|
+
|
|
11425
|
+
/* Padding variants */
|
|
11426
|
+
.muka-card--padding-none {
|
|
11427
|
+
padding: 0;
|
|
11428
|
+
}
|
|
11429
|
+
|
|
11430
|
+
.muka-card--padding-sm {
|
|
11431
|
+
padding: var(--card-padding-sm);
|
|
11432
|
+
}
|
|
11433
|
+
|
|
11434
|
+
.muka-card--padding-md {
|
|
11435
|
+
padding: var(--card-padding-md);
|
|
11436
|
+
}
|
|
11437
|
+
|
|
11438
|
+
.muka-card--padding-lg {
|
|
11439
|
+
padding: var(--card-padding-lg);
|
|
11440
|
+
}
|
|
11441
|
+
|
|
11442
|
+
/* Radius variants */
|
|
11443
|
+
.muka-card--radius-sm {
|
|
11444
|
+
border-radius: var(--card-radius-sm);
|
|
11445
|
+
}
|
|
11446
|
+
|
|
11447
|
+
.muka-card--radius-md {
|
|
11448
|
+
border-radius: var(--card-radius-md);
|
|
11449
|
+
}
|
|
11450
|
+
|
|
11451
|
+
.muka-card--radius-lg {
|
|
11452
|
+
border-radius: var(--card-radius-lg);
|
|
11453
|
+
}
|
|
11454
|
+
|
|
11455
|
+
/* Interactive variant */
|
|
11456
|
+
.muka-card--interactive {
|
|
11457
|
+
cursor: pointer;
|
|
11458
|
+
user-select: none;
|
|
11459
|
+
}
|
|
11460
|
+
|
|
11461
|
+
.muka-card--interactive:hover {
|
|
11462
|
+
background-color: var(--card-color-hover-background);
|
|
11463
|
+
border-color: var(--card-color-hover-border);
|
|
11464
|
+
box-shadow: var(--card-shadow-hover);
|
|
11465
|
+
}
|
|
11466
|
+
|
|
11467
|
+
.muka-card--interactive:active,
|
|
11468
|
+
.muka-card--interactive.muka-card--pressed {
|
|
11469
|
+
background-color: var(--card-color-pressed-background);
|
|
11470
|
+
border-color: var(--card-color-pressed-border);
|
|
11471
|
+
box-shadow: var(--card-shadow-pressed);
|
|
11472
|
+
}
|
|
11473
|
+
|
|
11474
|
+
.muka-card--interactive:focus-visible {
|
|
11475
|
+
outline: 2px solid var(--color-border-focus);
|
|
11476
|
+
outline-offset: 2px;
|
|
11477
|
+
}
|
|
11478
|
+
|
|
11479
|
+
/* Selected variant */
|
|
11480
|
+
.muka-card--selected {
|
|
11481
|
+
background-color: var(--card-color-selected-background);
|
|
11482
|
+
border-color: var(--card-color-selected-border);
|
|
11483
|
+
border-width: var(--border-width-bold);
|
|
11484
|
+
box-shadow: var(--card-shadow-selected);
|
|
11485
|
+
}
|
|
11486
|
+
|
|
11487
|
+
/* Optional header (title + description) */
|
|
11488
|
+
.muka-card__header {
|
|
11489
|
+
margin-bottom: var(--spacing-4);
|
|
11490
|
+
}
|
|
11491
|
+
|
|
11492
|
+
.muka-card__title {
|
|
11493
|
+
margin: 0;
|
|
11494
|
+
color: var(--color-text-default-default);
|
|
11495
|
+
font-family: var(--text-heading-xs-fontFamily);
|
|
11496
|
+
font-weight: var(--text-heading-xs-fontWeight);
|
|
11497
|
+
font-size: var(--text-heading-xs-fontSize);
|
|
11498
|
+
line-height: var(--text-heading-xs-lineHeight);
|
|
11499
|
+
letter-spacing: var(--text-heading-xs-letterSpacing);
|
|
11500
|
+
}
|
|
11501
|
+
|
|
11502
|
+
.muka-card__description {
|
|
11503
|
+
margin: var(--spacing-1) 0 0;
|
|
11504
|
+
color: var(--color-text-subtle-default);
|
|
11505
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
11506
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
11507
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
11508
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
11509
|
+
}
|
|
11510
|
+
|
|
11511
|
+
/* Hide divider on last list item inside card */
|
|
11512
|
+
.muka-card > .muka-listitem:last-child > .muka-listitem__divider {
|
|
11513
|
+
display: none;
|
|
11514
|
+
}
|
|
11515
|
+
|
|
11516
|
+
/* Disabled state */
|
|
11517
|
+
.muka-card--disabled {
|
|
11518
|
+
opacity: 0.5;
|
|
11519
|
+
cursor: not-allowed;
|
|
11520
|
+
pointer-events: none;
|
|
11521
|
+
}
|
|
11522
|
+
|
|
11523
|
+
|
|
11524
|
+
/* Button */
|
|
11525
|
+
/* Button Component Styles - Using Muka Design Tokens */
|
|
11526
|
+
|
|
11527
|
+
/* Base button styles */
|
|
11528
|
+
.muka-button {
|
|
11529
|
+
/* Layout */
|
|
11530
|
+
display: inline-flex;
|
|
11531
|
+
align-items: center;
|
|
11532
|
+
justify-content: center;
|
|
11533
|
+
|
|
11534
|
+
/* Typography - using semantic tokens */
|
|
11535
|
+
font-family: var(--alias-font-brand-family);
|
|
11536
|
+
font-weight: var(--alias-font-brand-weight-semibold);
|
|
11537
|
+
text-decoration: none;
|
|
11538
|
+
|
|
11539
|
+
/* Interaction */
|
|
11540
|
+
border: none;
|
|
11541
|
+
cursor: pointer;
|
|
11542
|
+
user-select: none;
|
|
11543
|
+
transition: all 0.2s ease;
|
|
11544
|
+
|
|
11545
|
+
/* Accessibility */
|
|
11546
|
+
outline: none;
|
|
11547
|
+
position: relative;
|
|
11548
|
+
}
|
|
11549
|
+
|
|
11550
|
+
/* Focus styles for accessibility */
|
|
11551
|
+
.muka-button:focus-visible {
|
|
11552
|
+
outline: 2px solid var(--color-border-focus);
|
|
11553
|
+
outline-offset: 2px;
|
|
11554
|
+
}
|
|
11555
|
+
|
|
11556
|
+
/* Size variants
|
|
11557
|
+
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
11558
|
+
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
11559
|
+
the button's padding is the outer container inset, and the label's own
|
|
11560
|
+
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
11561
|
+
.muka-button--sm {
|
|
11562
|
+
padding: 0 var(--button-padding-sm-x);
|
|
11563
|
+
border-radius: var(--button-radius-sm);
|
|
11564
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11565
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11566
|
+
min-height: 32px;
|
|
11567
|
+
}
|
|
11568
|
+
|
|
11569
|
+
.muka-button--sm .muka-button__label {
|
|
11570
|
+
padding: 0 var(--button-gap-sm);
|
|
11571
|
+
}
|
|
11572
|
+
|
|
11573
|
+
.muka-button--md {
|
|
11574
|
+
padding: 0 var(--button-padding-md-x);
|
|
11575
|
+
border-radius: var(--button-radius-md);
|
|
11576
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11577
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11578
|
+
min-height: 40px;
|
|
11579
|
+
}
|
|
11580
|
+
|
|
11581
|
+
.muka-button--md .muka-button__label {
|
|
11582
|
+
padding: 0 var(--button-gap-md);
|
|
11556
11583
|
}
|
|
11557
11584
|
|
|
11558
|
-
.muka-
|
|
11559
|
-
|
|
11585
|
+
.muka-button--lg {
|
|
11586
|
+
padding: 0 var(--button-padding-lg-x);
|
|
11587
|
+
border-radius: var(--button-radius-lg);
|
|
11588
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
11589
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
11590
|
+
min-height: 48px;
|
|
11560
11591
|
}
|
|
11561
11592
|
|
|
11593
|
+
.muka-button--lg .muka-button__label {
|
|
11594
|
+
padding: 0 var(--button-gap-lg);
|
|
11595
|
+
}
|
|
11562
11596
|
|
|
11563
|
-
|
|
11564
|
-
|
|
11565
|
-
|
|
11566
|
-
|
|
11567
|
-
|
|
11568
|
-
|
|
11569
|
-
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11570
|
-
box-shadow: var(--card-shadow-default);
|
|
11571
|
-
transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
|
|
11572
|
-
overflow: hidden;
|
|
11597
|
+
.muka-button--xl {
|
|
11598
|
+
padding: 0 var(--button-padding-xl-x);
|
|
11599
|
+
border-radius: var(--button-radius-xl);
|
|
11600
|
+
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
11601
|
+
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
11602
|
+
min-height: 64px;
|
|
11573
11603
|
}
|
|
11574
11604
|
|
|
11575
|
-
|
|
11576
|
-
|
|
11577
|
-
padding: 0;
|
|
11605
|
+
.muka-button--xl .muka-button__label {
|
|
11606
|
+
padding: 0 var(--button-gap-xl);
|
|
11578
11607
|
}
|
|
11579
11608
|
|
|
11580
|
-
|
|
11581
|
-
|
|
11609
|
+
/* Primary variant - your main CTA button */
|
|
11610
|
+
.muka-button--primary {
|
|
11611
|
+
background-color: var(--button-color-primary-background-default);
|
|
11612
|
+
color: var(--button-color-primary-foreground-default);
|
|
11613
|
+
box-shadow: var(--button-color-primary-shadow-default);
|
|
11582
11614
|
}
|
|
11583
11615
|
|
|
11584
|
-
.muka-
|
|
11585
|
-
|
|
11616
|
+
.muka-button--primary:hover:not(:disabled) {
|
|
11617
|
+
background-color: var(--button-color-primary-background-hover);
|
|
11618
|
+
color: var(--button-color-primary-foreground-hover);
|
|
11619
|
+
box-shadow: var(--button-color-primary-shadow-hover);
|
|
11586
11620
|
}
|
|
11587
11621
|
|
|
11588
|
-
|
|
11589
|
-
|
|
11622
|
+
/* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
|
|
11623
|
+
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
11624
|
+
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
11625
|
+
to sighted users by the accessibility tree alone. */
|
|
11626
|
+
.muka-button--primary:active:not(:disabled),
|
|
11627
|
+
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
11628
|
+
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
11629
|
+
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
11630
|
+
background-color: var(--button-color-primary-background-pressed);
|
|
11631
|
+
color: var(--button-color-primary-foreground-pressed);
|
|
11632
|
+
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
11590
11633
|
}
|
|
11591
11634
|
|
|
11592
|
-
|
|
11593
|
-
|
|
11594
|
-
|
|
11635
|
+
.muka-button--primary:disabled {
|
|
11636
|
+
background-color: var(--button-color-primary-background-disabled);
|
|
11637
|
+
color: var(--button-color-primary-foreground-disabled);
|
|
11638
|
+
box-shadow: var(--button-color-primary-shadow-disabled);
|
|
11639
|
+
cursor: not-allowed;
|
|
11640
|
+
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
11595
11641
|
}
|
|
11596
11642
|
|
|
11597
|
-
|
|
11598
|
-
|
|
11643
|
+
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
11644
|
+
.muka-button--secondary {
|
|
11645
|
+
background-color: var(--button-color-secondary-background-default);
|
|
11646
|
+
color: var(--button-color-secondary-foreground-default);
|
|
11647
|
+
box-shadow: var(--button-color-secondary-shadow-default);
|
|
11599
11648
|
}
|
|
11600
11649
|
|
|
11601
|
-
.muka-
|
|
11602
|
-
|
|
11650
|
+
.muka-button--secondary:hover:not(:disabled) {
|
|
11651
|
+
background-color: var(--button-color-secondary-background-hover);
|
|
11652
|
+
color: var(--button-color-secondary-foreground-hover);
|
|
11653
|
+
box-shadow: var(--button-color-secondary-shadow-hover);
|
|
11603
11654
|
}
|
|
11604
11655
|
|
|
11605
|
-
|
|
11606
|
-
.muka-
|
|
11607
|
-
|
|
11608
|
-
|
|
11656
|
+
.muka-button--secondary:active:not(:disabled),
|
|
11657
|
+
.muka-button--secondary.muka-button--pressed:not(:disabled),
|
|
11658
|
+
.muka-button--secondary[data-state="open"]:not(:disabled),
|
|
11659
|
+
.muka-button--secondary[aria-pressed="true"]:not(:disabled) {
|
|
11660
|
+
background-color: var(--button-color-secondary-background-pressed);
|
|
11661
|
+
color: var(--button-color-secondary-foreground-pressed);
|
|
11662
|
+
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
11609
11663
|
}
|
|
11610
11664
|
|
|
11611
|
-
.muka-
|
|
11612
|
-
background-color: var(--
|
|
11613
|
-
|
|
11614
|
-
box-shadow: var(--
|
|
11665
|
+
.muka-button--secondary:disabled {
|
|
11666
|
+
background-color: var(--button-color-secondary-background-disabled);
|
|
11667
|
+
color: var(--button-color-secondary-foreground-disabled);
|
|
11668
|
+
box-shadow: var(--button-color-secondary-shadow-disabled);
|
|
11669
|
+
cursor: not-allowed;
|
|
11670
|
+
opacity: 1;
|
|
11615
11671
|
}
|
|
11616
11672
|
|
|
11617
|
-
|
|
11618
|
-
.muka-
|
|
11619
|
-
background-color: var(--
|
|
11620
|
-
|
|
11621
|
-
|
|
11673
|
+
/* Tertiary variant - tinted background with accent text and border */
|
|
11674
|
+
.muka-button--tertiary {
|
|
11675
|
+
background-color: var(--button-color-tertiary-background-default);
|
|
11676
|
+
color: var(--button-color-tertiary-foreground-default);
|
|
11677
|
+
border: 1px solid var(--button-color-tertiary-border-default);
|
|
11622
11678
|
}
|
|
11623
11679
|
|
|
11624
|
-
.muka-
|
|
11625
|
-
|
|
11626
|
-
|
|
11680
|
+
.muka-button--tertiary:hover:not(:disabled) {
|
|
11681
|
+
background-color: var(--button-color-tertiary-background-hover);
|
|
11682
|
+
color: var(--button-color-tertiary-foreground-hover);
|
|
11683
|
+
border-color: var(--button-color-tertiary-border-hover);
|
|
11627
11684
|
}
|
|
11628
11685
|
|
|
11629
|
-
|
|
11630
|
-
.muka-
|
|
11631
|
-
|
|
11632
|
-
|
|
11633
|
-
|
|
11634
|
-
|
|
11686
|
+
.muka-button--tertiary:active:not(:disabled),
|
|
11687
|
+
.muka-button--tertiary.muka-button--pressed:not(:disabled),
|
|
11688
|
+
.muka-button--tertiary[data-state="open"]:not(:disabled),
|
|
11689
|
+
.muka-button--tertiary[aria-pressed="true"]:not(:disabled) {
|
|
11690
|
+
background-color: var(--button-color-tertiary-background-pressed);
|
|
11691
|
+
color: var(--button-color-tertiary-foreground-pressed);
|
|
11692
|
+
border-color: var(--button-color-tertiary-border-pressed);
|
|
11635
11693
|
}
|
|
11636
11694
|
|
|
11637
|
-
|
|
11638
|
-
|
|
11639
|
-
|
|
11695
|
+
.muka-button--tertiary:disabled {
|
|
11696
|
+
background-color: var(--button-color-tertiary-background-disabled);
|
|
11697
|
+
color: var(--button-color-tertiary-foreground-disabled);
|
|
11698
|
+
border-color: var(--button-color-tertiary-border-disabled);
|
|
11699
|
+
cursor: not-allowed;
|
|
11700
|
+
opacity: 1;
|
|
11640
11701
|
}
|
|
11641
11702
|
|
|
11642
|
-
|
|
11643
|
-
|
|
11644
|
-
color: var(--color-
|
|
11645
|
-
|
|
11646
|
-
|
|
11647
|
-
font-size: var(--text-heading-xs-fontSize);
|
|
11648
|
-
line-height: var(--text-heading-xs-lineHeight);
|
|
11649
|
-
letter-spacing: var(--text-heading-xs-letterSpacing);
|
|
11703
|
+
/* Ghost variant - minimal styling, border appears on hover */
|
|
11704
|
+
.muka-button--ghost {
|
|
11705
|
+
background-color: var(--button-color-ghost-background-default);
|
|
11706
|
+
color: var(--button-color-ghost-foreground-default);
|
|
11707
|
+
border: 1px solid var(--button-color-ghost-border-default);
|
|
11650
11708
|
}
|
|
11651
11709
|
|
|
11652
|
-
.muka-
|
|
11653
|
-
|
|
11654
|
-
color: var(--color-
|
|
11655
|
-
|
|
11656
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
11657
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
11658
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
11710
|
+
.muka-button--ghost:hover:not(:disabled) {
|
|
11711
|
+
background-color: var(--button-color-ghost-background-hover);
|
|
11712
|
+
color: var(--button-color-ghost-foreground-hover);
|
|
11713
|
+
border-color: var(--button-color-ghost-border-hover);
|
|
11659
11714
|
}
|
|
11660
11715
|
|
|
11661
|
-
|
|
11662
|
-
.muka-
|
|
11663
|
-
|
|
11716
|
+
.muka-button--ghost:active:not(:disabled),
|
|
11717
|
+
.muka-button--ghost.muka-button--pressed:not(:disabled),
|
|
11718
|
+
.muka-button--ghost[data-state="open"]:not(:disabled),
|
|
11719
|
+
.muka-button--ghost[aria-pressed="true"]:not(:disabled) {
|
|
11720
|
+
background-color: var(--button-color-ghost-background-pressed);
|
|
11721
|
+
color: var(--button-color-ghost-foreground-pressed);
|
|
11722
|
+
border-color: var(--button-color-ghost-border-pressed);
|
|
11664
11723
|
}
|
|
11665
11724
|
|
|
11666
|
-
|
|
11667
|
-
|
|
11668
|
-
|
|
11725
|
+
.muka-button--ghost:disabled {
|
|
11726
|
+
background-color: var(--button-color-ghost-background-disabled);
|
|
11727
|
+
color: var(--button-color-ghost-foreground-disabled);
|
|
11728
|
+
border-color: var(--button-color-ghost-border-disabled);
|
|
11669
11729
|
cursor: not-allowed;
|
|
11670
|
-
|
|
11730
|
+
opacity: 1;
|
|
11671
11731
|
}
|
|
11672
11732
|
|
|
11673
|
-
|
|
11674
|
-
|
|
11675
|
-
|
|
11676
|
-
|
|
11677
|
-
|
|
11678
|
-
* The composer is a bare, fill-width row: no padding, background, border or
|
|
11679
|
-
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
11680
|
-
* container — see BottomBar's `chat` variant.
|
|
11681
|
-
*/
|
|
11682
|
-
.muka-chat-composer {
|
|
11683
|
-
display: flex;
|
|
11684
|
-
flex-direction: column;
|
|
11685
|
-
gap: var(--spacing-3);
|
|
11686
|
-
width: 100%;
|
|
11733
|
+
/* Muted variant - same as ghost but resting foreground is subtle, darkens on interaction */
|
|
11734
|
+
.muka-button--muted {
|
|
11735
|
+
background-color: var(--button-color-muted-background-default);
|
|
11736
|
+
color: var(--button-color-muted-foreground-default);
|
|
11737
|
+
border: 1px solid var(--button-color-muted-border-default);
|
|
11687
11738
|
}
|
|
11688
11739
|
|
|
11689
|
-
.muka-
|
|
11690
|
-
|
|
11691
|
-
|
|
11740
|
+
.muka-button--muted:hover:not(:disabled) {
|
|
11741
|
+
background-color: var(--button-color-muted-background-hover);
|
|
11742
|
+
color: var(--button-color-muted-foreground-hover);
|
|
11743
|
+
border-color: var(--button-color-muted-border-hover);
|
|
11692
11744
|
}
|
|
11693
11745
|
|
|
11694
|
-
|
|
11695
|
-
|
|
11696
|
-
.muka-
|
|
11697
|
-
|
|
11698
|
-
|
|
11699
|
-
|
|
11700
|
-
|
|
11746
|
+
.muka-button--muted:active:not(:disabled),
|
|
11747
|
+
.muka-button--muted.muka-button--pressed:not(:disabled),
|
|
11748
|
+
.muka-button--muted[data-state="open"]:not(:disabled),
|
|
11749
|
+
.muka-button--muted[aria-pressed="true"]:not(:disabled) {
|
|
11750
|
+
background-color: var(--button-color-muted-background-pressed);
|
|
11751
|
+
color: var(--button-color-muted-foreground-pressed);
|
|
11752
|
+
border-color: var(--button-color-muted-border-pressed);
|
|
11701
11753
|
}
|
|
11702
11754
|
|
|
11703
|
-
|
|
11755
|
+
.muka-button--muted:disabled {
|
|
11756
|
+
background-color: var(--button-color-muted-background-disabled);
|
|
11757
|
+
color: var(--button-color-muted-foreground-disabled);
|
|
11758
|
+
border-color: var(--button-color-muted-border-disabled);
|
|
11759
|
+
cursor: not-allowed;
|
|
11760
|
+
opacity: 1;
|
|
11761
|
+
}
|
|
11704
11762
|
|
|
11705
|
-
|
|
11706
|
-
|
|
11707
|
-
|
|
11708
|
-
|
|
11709
|
-
|
|
11710
|
-
|
|
11711
|
-
|
|
11712
|
-
|
|
11713
|
-
|
|
11714
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
11715
|
-
border-radius: var(--input-field-radius-lg);
|
|
11716
|
-
background-color: var(--input-field-color-default-background);
|
|
11717
|
-
transition: border-color 0.12s ease;
|
|
11763
|
+
/* General disabled state - fallback */
|
|
11764
|
+
.muka-button:disabled {
|
|
11765
|
+
cursor: not-allowed;
|
|
11766
|
+
pointer-events: none;
|
|
11767
|
+
}
|
|
11768
|
+
|
|
11769
|
+
/* Full width modifier */
|
|
11770
|
+
.muka-button--full-width {
|
|
11771
|
+
width: 100%;
|
|
11718
11772
|
}
|
|
11719
11773
|
|
|
11720
|
-
|
|
11721
|
-
|
|
11774
|
+
/* Icons - forced to the Figma per-size dimension regardless of the icon passed */
|
|
11775
|
+
.muka-button__icon {
|
|
11776
|
+
display: inline-flex;
|
|
11777
|
+
align-items: center;
|
|
11778
|
+
justify-content: center;
|
|
11779
|
+
flex-shrink: 0;
|
|
11722
11780
|
}
|
|
11723
11781
|
|
|
11724
|
-
.
|
|
11725
|
-
|
|
11726
|
-
|
|
11782
|
+
/* Make the icon content (raw <svg> or a nested Icon span) fill the wrapper.
|
|
11783
|
+
Scoped under .muka-button to outrank Icon.css's own `.muka-icon--{size}`
|
|
11784
|
+
rule, so the button's size wins even when the icon hardcodes its own size. */
|
|
11785
|
+
.muka-button .muka-button__icon > *,
|
|
11786
|
+
.muka-button .muka-button__icon svg {
|
|
11727
11787
|
width: 100%;
|
|
11728
|
-
|
|
11729
|
-
|
|
11730
|
-
border: none;
|
|
11731
|
-
background: transparent;
|
|
11732
|
-
outline: none;
|
|
11733
|
-
padding: 0 var(--spacing-1);
|
|
11734
|
-
color: var(--color-text-default-default);
|
|
11735
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
11736
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11737
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
11738
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
11739
|
-
appearance: none;
|
|
11740
|
-
-webkit-appearance: none;
|
|
11788
|
+
height: 100%;
|
|
11789
|
+
display: block;
|
|
11741
11790
|
}
|
|
11742
11791
|
|
|
11743
|
-
.muka-
|
|
11744
|
-
|
|
11792
|
+
.muka-button--sm .muka-button__icon {
|
|
11793
|
+
width: var(--button-icon-sm);
|
|
11794
|
+
height: var(--button-icon-sm);
|
|
11745
11795
|
}
|
|
11746
11796
|
|
|
11747
|
-
|
|
11748
|
-
|
|
11749
|
-
|
|
11797
|
+
.muka-button--md .muka-button__icon {
|
|
11798
|
+
width: var(--button-icon-md);
|
|
11799
|
+
height: var(--button-icon-md);
|
|
11750
11800
|
}
|
|
11751
11801
|
|
|
11752
|
-
|
|
11753
|
-
|
|
11754
|
-
|
|
11755
|
-
display: flex;
|
|
11756
|
-
flex: 1 1 auto;
|
|
11757
|
-
min-width: 0;
|
|
11758
|
-
box-sizing: border-box;
|
|
11759
|
-
align-items: center;
|
|
11760
|
-
min-height: var(--input-field-height-lg, 48px);
|
|
11761
|
-
padding: var(--card-padding-sm);
|
|
11762
|
-
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11763
|
-
border-radius: var(--radius-lg);
|
|
11764
|
-
background-color: var(--card-color-default-background);
|
|
11802
|
+
.muka-button--lg .muka-button__icon {
|
|
11803
|
+
width: var(--button-icon-lg);
|
|
11804
|
+
height: var(--button-icon-lg);
|
|
11765
11805
|
}
|
|
11766
11806
|
|
|
11767
|
-
|
|
11807
|
+
.muka-button--xl .muka-button__icon {
|
|
11808
|
+
width: var(--button-icon-xl);
|
|
11809
|
+
height: var(--button-icon-xl);
|
|
11810
|
+
}
|
|
11768
11811
|
|
|
11769
|
-
.muka-
|
|
11770
|
-
|
|
11771
|
-
|
|
11812
|
+
.muka-button__label {
|
|
11813
|
+
display: inline-flex;
|
|
11814
|
+
align-items: center;
|
|
11772
11815
|
}
|
|
11773
11816
|
|
|
11774
|
-
|
|
11775
|
-
|
|
11776
|
-
|
|
11777
|
-
overflow-x: auto;
|
|
11778
|
-
scroll-behavior: smooth;
|
|
11779
|
-
scrollbar-width: none;
|
|
11817
|
+
/* Icon-only buttons - square, sized to the button height per size */
|
|
11818
|
+
.muka-button--icon-only {
|
|
11819
|
+
padding: 0;
|
|
11780
11820
|
}
|
|
11781
11821
|
|
|
11782
|
-
.muka-
|
|
11783
|
-
|
|
11822
|
+
.muka-button--icon-only.muka-button--sm {
|
|
11823
|
+
width: 32px;
|
|
11784
11824
|
}
|
|
11785
11825
|
|
|
11786
|
-
.muka-
|
|
11787
|
-
|
|
11788
|
-
top: 50%;
|
|
11789
|
-
right: var(--spacing-2);
|
|
11790
|
-
transform: translateY(-50%);
|
|
11826
|
+
.muka-button--icon-only.muka-button--md {
|
|
11827
|
+
width: 40px;
|
|
11791
11828
|
}
|
|
11792
11829
|
|
|
11793
|
-
|
|
11830
|
+
.muka-button--icon-only.muka-button--lg {
|
|
11831
|
+
width: 48px;
|
|
11832
|
+
}
|
|
11794
11833
|
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
display: none;
|
|
11798
|
-
}
|
|
11834
|
+
.muka-button--icon-only.muka-button--xl {
|
|
11835
|
+
width: 64px;
|
|
11799
11836
|
}
|
|
11800
11837
|
|
|
11801
11838
|
|
|
@@ -12249,362 +12286,231 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12249
12286
|
padding: 0 var(--badge-number-padding-lg);
|
|
12250
12287
|
font-family: var(--text-label-2xl-bold-fontFamily);
|
|
12251
12288
|
font-weight: var(--text-label-2xl-bold-fontWeight);
|
|
12252
|
-
font-size: var(--text-label-2xl-bold-fontSize);
|
|
12253
|
-
line-height: var(--text-label-2xl-bold-lineHeight);
|
|
12254
|
-
}
|
|
12255
|
-
|
|
12256
|
-
.muka-badge-number__label {
|
|
12257
|
-
/*
|
|
12258
|
-
* The badge sets a tight line-height for compact sizing, which would clip
|
|
12259
|
-
* glyph descenders; give the label a roomier line-height. Vertical centering
|
|
12260
|
-
* is unaffected because the badge height is fixed and content is centered.
|
|
12261
|
-
*/
|
|
12262
|
-
line-height: normal;
|
|
12263
|
-
}
|
|
12264
|
-
|
|
12265
|
-
/* Neutral variant */
|
|
12266
|
-
.muka-badge-number--neutral {
|
|
12267
|
-
background-color: var(--color-surface-level1);
|
|
12268
|
-
color: var(--color-text-default-default);
|
|
12269
|
-
}
|
|
12270
|
-
|
|
12271
|
-
/* Info variant */
|
|
12272
|
-
.muka-badge-number--info {
|
|
12273
|
-
background-color: var(--color-state-info-contrast);
|
|
12274
|
-
color: var(--color-text-default-inverse);
|
|
12275
|
-
}
|
|
12276
|
-
|
|
12277
|
-
/* Success variant */
|
|
12278
|
-
.muka-badge-number--success {
|
|
12279
|
-
background-color: var(--color-state-success-contrast);
|
|
12280
|
-
color: var(--color-text-default-inverse);
|
|
12281
|
-
}
|
|
12282
|
-
|
|
12283
|
-
/* Warning variant */
|
|
12284
|
-
.muka-badge-number--warning {
|
|
12285
|
-
background-color: var(--color-state-warning-contrast);
|
|
12286
|
-
color: var(--color-text-default-inverse);
|
|
12287
|
-
}
|
|
12288
|
-
|
|
12289
|
-
/* Error variant */
|
|
12290
|
-
.muka-badge-number--error {
|
|
12291
|
-
background-color: var(--color-state-error-contrast);
|
|
12292
|
-
color: var(--color-text-default-inverse);
|
|
12293
|
-
}
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
/* Button */
|
|
12297
|
-
/* Button Component Styles - Using Muka Design Tokens */
|
|
12298
|
-
|
|
12299
|
-
/* Base button styles */
|
|
12300
|
-
.muka-button {
|
|
12301
|
-
/* Layout */
|
|
12302
|
-
display: inline-flex;
|
|
12303
|
-
align-items: center;
|
|
12304
|
-
justify-content: center;
|
|
12305
|
-
|
|
12306
|
-
/* Typography - using semantic tokens */
|
|
12307
|
-
font-family: var(--alias-font-brand-family);
|
|
12308
|
-
font-weight: var(--alias-font-brand-weight-semibold);
|
|
12309
|
-
text-decoration: none;
|
|
12310
|
-
|
|
12311
|
-
/* Interaction */
|
|
12312
|
-
border: none;
|
|
12313
|
-
cursor: pointer;
|
|
12314
|
-
user-select: none;
|
|
12315
|
-
transition: all 0.2s ease;
|
|
12316
|
-
|
|
12317
|
-
/* Accessibility */
|
|
12318
|
-
outline: none;
|
|
12319
|
-
position: relative;
|
|
12320
|
-
}
|
|
12321
|
-
|
|
12322
|
-
/* Focus styles for accessibility */
|
|
12323
|
-
.muka-button:focus-visible {
|
|
12324
|
-
outline: 2px solid var(--color-border-focus);
|
|
12325
|
-
outline-offset: 2px;
|
|
12326
|
-
}
|
|
12327
|
-
|
|
12328
|
-
/* Size variants
|
|
12329
|
-
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
12330
|
-
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
12331
|
-
the button's padding is the outer container inset, and the label's own
|
|
12332
|
-
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
12333
|
-
.muka-button--sm {
|
|
12334
|
-
padding: 0 var(--button-padding-sm-x);
|
|
12335
|
-
border-radius: var(--button-radius-sm);
|
|
12336
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12337
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12338
|
-
min-height: 32px;
|
|
12339
|
-
}
|
|
12340
|
-
|
|
12341
|
-
.muka-button--sm .muka-button__label {
|
|
12342
|
-
padding: 0 var(--button-gap-sm);
|
|
12343
|
-
}
|
|
12344
|
-
|
|
12345
|
-
.muka-button--md {
|
|
12346
|
-
padding: 0 var(--button-padding-md-x);
|
|
12347
|
-
border-radius: var(--button-radius-md);
|
|
12348
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12349
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12350
|
-
min-height: 40px;
|
|
12351
|
-
}
|
|
12352
|
-
|
|
12353
|
-
.muka-button--md .muka-button__label {
|
|
12354
|
-
padding: 0 var(--button-gap-md);
|
|
12355
|
-
}
|
|
12356
|
-
|
|
12357
|
-
.muka-button--lg {
|
|
12358
|
-
padding: 0 var(--button-padding-lg-x);
|
|
12359
|
-
border-radius: var(--button-radius-lg);
|
|
12360
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
12361
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
12362
|
-
min-height: 48px;
|
|
12363
|
-
}
|
|
12364
|
-
|
|
12365
|
-
.muka-button--lg .muka-button__label {
|
|
12366
|
-
padding: 0 var(--button-gap-lg);
|
|
12367
|
-
}
|
|
12368
|
-
|
|
12369
|
-
.muka-button--xl {
|
|
12370
|
-
padding: 0 var(--button-padding-xl-x);
|
|
12371
|
-
border-radius: var(--button-radius-xl);
|
|
12372
|
-
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
12373
|
-
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
12374
|
-
min-height: 64px;
|
|
12375
|
-
}
|
|
12376
|
-
|
|
12377
|
-
.muka-button--xl .muka-button__label {
|
|
12378
|
-
padding: 0 var(--button-gap-xl);
|
|
12379
|
-
}
|
|
12380
|
-
|
|
12381
|
-
/* Primary variant - your main CTA button */
|
|
12382
|
-
.muka-button--primary {
|
|
12383
|
-
background-color: var(--button-color-primary-background-default);
|
|
12384
|
-
color: var(--button-color-primary-foreground-default);
|
|
12385
|
-
box-shadow: var(--button-color-primary-shadow-default);
|
|
12386
|
-
}
|
|
12387
|
-
|
|
12388
|
-
.muka-button--primary:hover:not(:disabled) {
|
|
12389
|
-
background-color: var(--button-color-primary-background-hover);
|
|
12390
|
-
color: var(--button-color-primary-foreground-hover);
|
|
12391
|
-
box-shadow: var(--button-color-primary-shadow-hover);
|
|
12392
|
-
}
|
|
12393
|
-
|
|
12394
|
-
/* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
|
|
12395
|
-
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
12396
|
-
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
12397
|
-
to sighted users by the accessibility tree alone. */
|
|
12398
|
-
.muka-button--primary:active:not(:disabled),
|
|
12399
|
-
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
12400
|
-
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
12401
|
-
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
12402
|
-
background-color: var(--button-color-primary-background-pressed);
|
|
12403
|
-
color: var(--button-color-primary-foreground-pressed);
|
|
12404
|
-
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
12289
|
+
font-size: var(--text-label-2xl-bold-fontSize);
|
|
12290
|
+
line-height: var(--text-label-2xl-bold-lineHeight);
|
|
12405
12291
|
}
|
|
12406
12292
|
|
|
12407
|
-
.muka-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12293
|
+
.muka-badge-number__label {
|
|
12294
|
+
/*
|
|
12295
|
+
* The badge sets a tight line-height for compact sizing, which would clip
|
|
12296
|
+
* glyph descenders; give the label a roomier line-height. Vertical centering
|
|
12297
|
+
* is unaffected because the badge height is fixed and content is centered.
|
|
12298
|
+
*/
|
|
12299
|
+
line-height: normal;
|
|
12413
12300
|
}
|
|
12414
12301
|
|
|
12415
|
-
/*
|
|
12416
|
-
.muka-
|
|
12417
|
-
background-color: var(--
|
|
12418
|
-
color: var(--
|
|
12419
|
-
box-shadow: var(--button-color-secondary-shadow-default);
|
|
12302
|
+
/* Neutral variant */
|
|
12303
|
+
.muka-badge-number--neutral {
|
|
12304
|
+
background-color: var(--color-surface-level1);
|
|
12305
|
+
color: var(--color-text-default-default);
|
|
12420
12306
|
}
|
|
12421
12307
|
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
color: var(--
|
|
12425
|
-
|
|
12308
|
+
/* Info variant */
|
|
12309
|
+
.muka-badge-number--info {
|
|
12310
|
+
background-color: var(--color-state-info-contrast);
|
|
12311
|
+
color: var(--color-text-default-inverse);
|
|
12426
12312
|
}
|
|
12427
12313
|
|
|
12428
|
-
|
|
12429
|
-
.muka-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
background-color: var(--button-color-secondary-background-pressed);
|
|
12433
|
-
color: var(--button-color-secondary-foreground-pressed);
|
|
12434
|
-
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
12314
|
+
/* Success variant */
|
|
12315
|
+
.muka-badge-number--success {
|
|
12316
|
+
background-color: var(--color-state-success-contrast);
|
|
12317
|
+
color: var(--color-text-default-inverse);
|
|
12435
12318
|
}
|
|
12436
12319
|
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
color: var(--
|
|
12440
|
-
|
|
12441
|
-
cursor: not-allowed;
|
|
12442
|
-
opacity: 1;
|
|
12320
|
+
/* Warning variant */
|
|
12321
|
+
.muka-badge-number--warning {
|
|
12322
|
+
background-color: var(--color-state-warning-contrast);
|
|
12323
|
+
color: var(--color-text-default-inverse);
|
|
12443
12324
|
}
|
|
12444
12325
|
|
|
12445
|
-
/*
|
|
12446
|
-
.muka-
|
|
12447
|
-
background-color: var(--
|
|
12448
|
-
color: var(--
|
|
12449
|
-
border: 1px solid var(--button-color-tertiary-border-default);
|
|
12326
|
+
/* Error variant */
|
|
12327
|
+
.muka-badge-number--error {
|
|
12328
|
+
background-color: var(--color-state-error-contrast);
|
|
12329
|
+
color: var(--color-text-default-inverse);
|
|
12450
12330
|
}
|
|
12451
12331
|
|
|
12452
|
-
.muka-button--tertiary:hover:not(:disabled) {
|
|
12453
|
-
background-color: var(--button-color-tertiary-background-hover);
|
|
12454
|
-
color: var(--button-color-tertiary-foreground-hover);
|
|
12455
|
-
border-color: var(--button-color-tertiary-border-hover);
|
|
12456
|
-
}
|
|
12457
12332
|
|
|
12458
|
-
|
|
12459
|
-
|
|
12460
|
-
|
|
12461
|
-
.muka-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
border-
|
|
12333
|
+
/* Badge */
|
|
12334
|
+
/* Badge Component Styles - Using Muka Design Tokens */
|
|
12335
|
+
|
|
12336
|
+
.muka-badge {
|
|
12337
|
+
display: inline-flex;
|
|
12338
|
+
align-items: center;
|
|
12339
|
+
border-radius: var(--border-radius-full);
|
|
12340
|
+
white-space: nowrap;
|
|
12341
|
+
user-select: none;
|
|
12342
|
+
box-sizing: border-box;
|
|
12465
12343
|
}
|
|
12466
12344
|
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12345
|
+
/*
|
|
12346
|
+
* Sizes — height, gap, type, and default (label-edge) horizontal padding.
|
|
12347
|
+
* Mirrors Chip so the two components share sizing, fonts, and spacing.
|
|
12348
|
+
* Vertical centering is handled by the fixed height + align-items: center.
|
|
12349
|
+
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
12350
|
+
* --has-icon / --has-dot modifiers below.
|
|
12351
|
+
*/
|
|
12352
|
+
.muka-badge--sm {
|
|
12353
|
+
height: var(--badge-size-height-sm);
|
|
12354
|
+
gap: var(--badge-gap-sm);
|
|
12355
|
+
padding: 0 var(--badge-padding-label-sm);
|
|
12356
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
12357
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
12358
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
12359
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
12473
12360
|
}
|
|
12474
12361
|
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12362
|
+
.muka-badge--md {
|
|
12363
|
+
height: var(--badge-size-height-md);
|
|
12364
|
+
gap: var(--badge-gap-md);
|
|
12365
|
+
padding: 0 var(--badge-padding-label-md);
|
|
12366
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
12367
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
12368
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
12369
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
12480
12370
|
}
|
|
12481
12371
|
|
|
12482
|
-
.muka-
|
|
12483
|
-
|
|
12484
|
-
|
|
12485
|
-
|
|
12372
|
+
.muka-badge--lg {
|
|
12373
|
+
height: var(--badge-size-height-lg);
|
|
12374
|
+
gap: var(--badge-gap-lg);
|
|
12375
|
+
padding: 0 var(--badge-padding-label-lg);
|
|
12376
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
12377
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
12378
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
12379
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
12486
12380
|
}
|
|
12487
12381
|
|
|
12488
|
-
|
|
12489
|
-
.muka-
|
|
12490
|
-
.muka-
|
|
12491
|
-
|
|
12492
|
-
|
|
12493
|
-
|
|
12494
|
-
|
|
12382
|
+
/* Tighter leading padding when a leading icon or dot is present */
|
|
12383
|
+
.muka-badge--sm.muka-badge--has-icon,
|
|
12384
|
+
.muka-badge--sm.muka-badge--has-dot {
|
|
12385
|
+
padding-left: var(--badge-padding-leading-sm);
|
|
12386
|
+
}
|
|
12387
|
+
.muka-badge--md.muka-badge--has-icon,
|
|
12388
|
+
.muka-badge--md.muka-badge--has-dot {
|
|
12389
|
+
padding-left: var(--badge-padding-leading-md);
|
|
12390
|
+
}
|
|
12391
|
+
.muka-badge--lg.muka-badge--has-icon,
|
|
12392
|
+
.muka-badge--lg.muka-badge--has-dot {
|
|
12393
|
+
padding-left: var(--badge-padding-leading-lg);
|
|
12495
12394
|
}
|
|
12496
12395
|
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12501
|
-
|
|
12502
|
-
|
|
12396
|
+
/* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
|
|
12397
|
+
.muka-badge__icon {
|
|
12398
|
+
display: inline-flex;
|
|
12399
|
+
align-items: center;
|
|
12400
|
+
justify-content: center;
|
|
12401
|
+
flex-shrink: 0;
|
|
12503
12402
|
}
|
|
12504
12403
|
|
|
12505
|
-
|
|
12506
|
-
|
|
12507
|
-
|
|
12508
|
-
|
|
12509
|
-
|
|
12404
|
+
.muka-badge--sm .muka-badge__icon {
|
|
12405
|
+
width: var(--icon-size-xs);
|
|
12406
|
+
height: var(--icon-size-xs);
|
|
12407
|
+
}
|
|
12408
|
+
.muka-badge--md .muka-badge__icon {
|
|
12409
|
+
width: var(--icon-size-sm);
|
|
12410
|
+
height: var(--icon-size-sm);
|
|
12411
|
+
}
|
|
12412
|
+
.muka-badge--lg .muka-badge__icon {
|
|
12413
|
+
width: var(--icon-size-default);
|
|
12414
|
+
height: var(--icon-size-default);
|
|
12510
12415
|
}
|
|
12511
12416
|
|
|
12512
|
-
|
|
12513
|
-
|
|
12514
|
-
|
|
12515
|
-
|
|
12417
|
+
/* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
|
|
12418
|
+
so callers don't have to size the icon to match each badge size. The
|
|
12419
|
+
.muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
|
|
12420
|
+
.muka-badge__icon .muka-icon,
|
|
12421
|
+
.muka-badge__icon svg {
|
|
12422
|
+
width: 100%;
|
|
12423
|
+
height: 100%;
|
|
12516
12424
|
}
|
|
12517
12425
|
|
|
12518
|
-
|
|
12519
|
-
.muka-
|
|
12520
|
-
|
|
12521
|
-
.muka-button--muted[aria-pressed="true"]:not(:disabled) {
|
|
12522
|
-
background-color: var(--button-color-muted-background-pressed);
|
|
12523
|
-
color: var(--button-color-muted-foreground-pressed);
|
|
12524
|
-
border-color: var(--button-color-muted-border-pressed);
|
|
12426
|
+
/* Icons inherit the badge's per-variant foreground color */
|
|
12427
|
+
.muka-badge .muka-icon {
|
|
12428
|
+
color: inherit;
|
|
12525
12429
|
}
|
|
12526
12430
|
|
|
12527
|
-
|
|
12528
|
-
|
|
12529
|
-
|
|
12530
|
-
border-
|
|
12531
|
-
cursor: not-allowed;
|
|
12532
|
-
opacity: 1;
|
|
12431
|
+
/* Dot indicator */
|
|
12432
|
+
.muka-badge__dot {
|
|
12433
|
+
flex-shrink: 0;
|
|
12434
|
+
border-radius: var(--border-radius-full);
|
|
12533
12435
|
}
|
|
12534
12436
|
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
-
|
|
12538
|
-
pointer-events: none;
|
|
12437
|
+
.muka-badge--sm .muka-badge__dot {
|
|
12438
|
+
width: var(--badge-size-dot-sm);
|
|
12439
|
+
height: var(--badge-size-dot-sm);
|
|
12539
12440
|
}
|
|
12540
12441
|
|
|
12541
|
-
|
|
12542
|
-
|
|
12543
|
-
|
|
12442
|
+
.muka-badge--md .muka-badge__dot {
|
|
12443
|
+
width: var(--badge-size-dot-md);
|
|
12444
|
+
height: var(--badge-size-dot-md);
|
|
12544
12445
|
}
|
|
12545
12446
|
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
align-items: center;
|
|
12550
|
-
justify-content: center;
|
|
12551
|
-
flex-shrink: 0;
|
|
12447
|
+
.muka-badge--lg .muka-badge__dot {
|
|
12448
|
+
width: var(--badge-size-dot-lg);
|
|
12449
|
+
height: var(--badge-size-dot-lg);
|
|
12552
12450
|
}
|
|
12553
12451
|
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
|
|
12452
|
+
.muka-badge__label {
|
|
12453
|
+
flex: 0 1 auto;
|
|
12454
|
+
min-width: 0;
|
|
12455
|
+
overflow: hidden;
|
|
12456
|
+
text-overflow: ellipsis;
|
|
12457
|
+
/*
|
|
12458
|
+
* The badge sets a tight line-height for compact sizing, but the label's
|
|
12459
|
+
* `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
|
|
12460
|
+
* label its own roomier line-height so descenders render; vertical centering is unaffected
|
|
12461
|
+
* because the badge height is fixed and content is centered via align-items: center.
|
|
12462
|
+
*/
|
|
12463
|
+
line-height: normal;
|
|
12562
12464
|
}
|
|
12563
12465
|
|
|
12564
|
-
|
|
12565
|
-
|
|
12566
|
-
|
|
12466
|
+
/* Neutral variant */
|
|
12467
|
+
.muka-badge--neutral {
|
|
12468
|
+
background-color: var(--color-surface-level1);
|
|
12469
|
+
color: var(--color-text-default-default);
|
|
12567
12470
|
}
|
|
12568
12471
|
|
|
12569
|
-
.muka-
|
|
12570
|
-
|
|
12571
|
-
height: var(--button-icon-md);
|
|
12472
|
+
.muka-badge--neutral .muka-badge__dot {
|
|
12473
|
+
background-color: var(--color-text-subtle-default);
|
|
12572
12474
|
}
|
|
12573
12475
|
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12476
|
+
/* Info variant */
|
|
12477
|
+
.muka-badge--info {
|
|
12478
|
+
background-color: var(--color-state-info-background);
|
|
12479
|
+
color: var(--color-state-info-contrast);
|
|
12577
12480
|
}
|
|
12578
12481
|
|
|
12579
|
-
.muka-
|
|
12580
|
-
|
|
12581
|
-
height: var(--button-icon-xl);
|
|
12482
|
+
.muka-badge--info .muka-badge__dot {
|
|
12483
|
+
background-color: var(--color-state-info-default);
|
|
12582
12484
|
}
|
|
12583
12485
|
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12486
|
+
/* Success variant */
|
|
12487
|
+
.muka-badge--success {
|
|
12488
|
+
background-color: var(--color-state-success-background);
|
|
12489
|
+
color: var(--color-state-success-contrast);
|
|
12587
12490
|
}
|
|
12588
12491
|
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
padding: 0;
|
|
12492
|
+
.muka-badge--success .muka-badge__dot {
|
|
12493
|
+
background-color: var(--color-state-success-default);
|
|
12592
12494
|
}
|
|
12593
12495
|
|
|
12594
|
-
|
|
12595
|
-
|
|
12496
|
+
/* Warning variant */
|
|
12497
|
+
.muka-badge--warning {
|
|
12498
|
+
background-color: var(--color-state-warning-background);
|
|
12499
|
+
color: var(--color-state-warning-contrast);
|
|
12596
12500
|
}
|
|
12597
12501
|
|
|
12598
|
-
.muka-
|
|
12599
|
-
|
|
12502
|
+
.muka-badge--warning .muka-badge__dot {
|
|
12503
|
+
background-color: var(--color-state-warning-default);
|
|
12600
12504
|
}
|
|
12601
12505
|
|
|
12602
|
-
|
|
12603
|
-
|
|
12506
|
+
/* Error variant */
|
|
12507
|
+
.muka-badge--error {
|
|
12508
|
+
background-color: var(--color-state-error-background);
|
|
12509
|
+
color: var(--color-state-error-contrast);
|
|
12604
12510
|
}
|
|
12605
12511
|
|
|
12606
|
-
.muka-
|
|
12607
|
-
|
|
12512
|
+
.muka-badge--error .muka-badge__dot {
|
|
12513
|
+
background-color: var(--color-state-error-default);
|
|
12608
12514
|
}
|
|
12609
12515
|
|
|
12610
12516
|
|
|
@@ -13126,236 +13032,52 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13126
13032
|
font-size: var(--text-body-sm-regular-fontSize);
|
|
13127
13033
|
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13128
13034
|
}
|
|
13129
|
-
|
|
13130
|
-
.muka-alert--lg .muka-alert__message {
|
|
13131
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
13132
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
13133
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
13134
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
13135
|
-
}
|
|
13136
|
-
|
|
13137
|
-
/* Action slot */
|
|
13138
|
-
.muka-alert__action {
|
|
13139
|
-
display: flex;
|
|
13140
|
-
align-items: center;
|
|
13141
|
-
flex-shrink: 0;
|
|
13142
|
-
}
|
|
13143
|
-
|
|
13144
|
-
/* Dismiss button - uses accent color per variant, aligned with icon row */
|
|
13145
|
-
.muka-alert__dismiss {
|
|
13146
|
-
display: flex;
|
|
13147
|
-
align-items: center;
|
|
13148
|
-
justify-content: center;
|
|
13149
|
-
flex-shrink: 0;
|
|
13150
|
-
align-self: flex-start;
|
|
13151
|
-
width: 24px;
|
|
13152
|
-
height: 24px;
|
|
13153
|
-
padding: 0;
|
|
13154
|
-
margin: 0 0 0 auto;
|
|
13155
|
-
border: none;
|
|
13156
|
-
background: transparent;
|
|
13157
|
-
cursor: pointer;
|
|
13158
|
-
border-radius: var(--border-radius-sm);
|
|
13159
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13160
|
-
}
|
|
13161
|
-
|
|
13162
|
-
.muka-alert__dismiss:hover {
|
|
13163
|
-
opacity: 0.85;
|
|
13164
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
13165
|
-
}
|
|
13166
|
-
|
|
13167
|
-
.muka-alert__dismiss:focus-visible {
|
|
13168
|
-
outline: 2px solid var(--color-border-focus);
|
|
13169
|
-
outline-offset: 2px;
|
|
13170
|
-
}
|
|
13171
|
-
|
|
13172
|
-
.muka-alert__dismiss svg {
|
|
13173
|
-
width: 16px;
|
|
13174
|
-
height: 16px;
|
|
13175
|
-
}
|
|
13176
|
-
|
|
13177
|
-
|
|
13178
|
-
/* Badge */
|
|
13179
|
-
/* Badge Component Styles - Using Muka Design Tokens */
|
|
13180
|
-
|
|
13181
|
-
.muka-badge {
|
|
13182
|
-
display: inline-flex;
|
|
13183
|
-
align-items: center;
|
|
13184
|
-
border-radius: var(--border-radius-full);
|
|
13185
|
-
white-space: nowrap;
|
|
13186
|
-
user-select: none;
|
|
13187
|
-
box-sizing: border-box;
|
|
13188
|
-
}
|
|
13189
|
-
|
|
13190
|
-
/*
|
|
13191
|
-
* Sizes — height, gap, type, and default (label-edge) horizontal padding.
|
|
13192
|
-
* Mirrors Chip so the two components share sizing, fonts, and spacing.
|
|
13193
|
-
* Vertical centering is handled by the fixed height + align-items: center.
|
|
13194
|
-
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
13195
|
-
* --has-icon / --has-dot modifiers below.
|
|
13196
|
-
*/
|
|
13197
|
-
.muka-badge--sm {
|
|
13198
|
-
height: var(--badge-size-height-sm);
|
|
13199
|
-
gap: var(--badge-gap-sm);
|
|
13200
|
-
padding: 0 var(--badge-padding-label-sm);
|
|
13201
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
13202
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
13203
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
13204
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
13205
|
-
}
|
|
13206
|
-
|
|
13207
|
-
.muka-badge--md {
|
|
13208
|
-
height: var(--badge-size-height-md);
|
|
13209
|
-
gap: var(--badge-gap-md);
|
|
13210
|
-
padding: 0 var(--badge-padding-label-md);
|
|
13211
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
13212
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
13213
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
13214
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
13215
|
-
}
|
|
13216
|
-
|
|
13217
|
-
.muka-badge--lg {
|
|
13218
|
-
height: var(--badge-size-height-lg);
|
|
13219
|
-
gap: var(--badge-gap-lg);
|
|
13220
|
-
padding: 0 var(--badge-padding-label-lg);
|
|
13221
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
13222
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
13223
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
13224
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
13225
|
-
}
|
|
13226
|
-
|
|
13227
|
-
/* Tighter leading padding when a leading icon or dot is present */
|
|
13228
|
-
.muka-badge--sm.muka-badge--has-icon,
|
|
13229
|
-
.muka-badge--sm.muka-badge--has-dot {
|
|
13230
|
-
padding-left: var(--badge-padding-leading-sm);
|
|
13231
|
-
}
|
|
13232
|
-
.muka-badge--md.muka-badge--has-icon,
|
|
13233
|
-
.muka-badge--md.muka-badge--has-dot {
|
|
13234
|
-
padding-left: var(--badge-padding-leading-md);
|
|
13235
|
-
}
|
|
13236
|
-
.muka-badge--lg.muka-badge--has-icon,
|
|
13237
|
-
.muka-badge--lg.muka-badge--has-dot {
|
|
13238
|
-
padding-left: var(--badge-padding-leading-lg);
|
|
13239
|
-
}
|
|
13240
|
-
|
|
13241
|
-
/* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
|
|
13242
|
-
.muka-badge__icon {
|
|
13243
|
-
display: inline-flex;
|
|
13244
|
-
align-items: center;
|
|
13245
|
-
justify-content: center;
|
|
13246
|
-
flex-shrink: 0;
|
|
13247
|
-
}
|
|
13248
|
-
|
|
13249
|
-
.muka-badge--sm .muka-badge__icon {
|
|
13250
|
-
width: var(--icon-size-xs);
|
|
13251
|
-
height: var(--icon-size-xs);
|
|
13252
|
-
}
|
|
13253
|
-
.muka-badge--md .muka-badge__icon {
|
|
13254
|
-
width: var(--icon-size-sm);
|
|
13255
|
-
height: var(--icon-size-sm);
|
|
13256
|
-
}
|
|
13257
|
-
.muka-badge--lg .muka-badge__icon {
|
|
13258
|
-
width: var(--icon-size-default);
|
|
13259
|
-
height: var(--icon-size-default);
|
|
13260
|
-
}
|
|
13261
|
-
|
|
13262
|
-
/* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
|
|
13263
|
-
so callers don't have to size the icon to match each badge size. The
|
|
13264
|
-
.muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
|
|
13265
|
-
.muka-badge__icon .muka-icon,
|
|
13266
|
-
.muka-badge__icon svg {
|
|
13267
|
-
width: 100%;
|
|
13268
|
-
height: 100%;
|
|
13269
|
-
}
|
|
13270
|
-
|
|
13271
|
-
/* Icons inherit the badge's per-variant foreground color */
|
|
13272
|
-
.muka-badge .muka-icon {
|
|
13273
|
-
color: inherit;
|
|
13274
|
-
}
|
|
13275
|
-
|
|
13276
|
-
/* Dot indicator */
|
|
13277
|
-
.muka-badge__dot {
|
|
13278
|
-
flex-shrink: 0;
|
|
13279
|
-
border-radius: var(--border-radius-full);
|
|
13280
|
-
}
|
|
13281
|
-
|
|
13282
|
-
.muka-badge--sm .muka-badge__dot {
|
|
13283
|
-
width: var(--badge-size-dot-sm);
|
|
13284
|
-
height: var(--badge-size-dot-sm);
|
|
13285
|
-
}
|
|
13286
|
-
|
|
13287
|
-
.muka-badge--md .muka-badge__dot {
|
|
13288
|
-
width: var(--badge-size-dot-md);
|
|
13289
|
-
height: var(--badge-size-dot-md);
|
|
13290
|
-
}
|
|
13291
|
-
|
|
13292
|
-
.muka-badge--lg .muka-badge__dot {
|
|
13293
|
-
width: var(--badge-size-dot-lg);
|
|
13294
|
-
height: var(--badge-size-dot-lg);
|
|
13295
|
-
}
|
|
13296
|
-
|
|
13297
|
-
.muka-badge__label {
|
|
13298
|
-
flex: 0 1 auto;
|
|
13299
|
-
min-width: 0;
|
|
13300
|
-
overflow: hidden;
|
|
13301
|
-
text-overflow: ellipsis;
|
|
13302
|
-
/*
|
|
13303
|
-
* The badge sets a tight line-height for compact sizing, but the label's
|
|
13304
|
-
* `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
|
|
13305
|
-
* label its own roomier line-height so descenders render; vertical centering is unaffected
|
|
13306
|
-
* because the badge height is fixed and content is centered via align-items: center.
|
|
13307
|
-
*/
|
|
13308
|
-
line-height: normal;
|
|
13309
|
-
}
|
|
13310
|
-
|
|
13311
|
-
/* Neutral variant */
|
|
13312
|
-
.muka-badge--neutral {
|
|
13313
|
-
background-color: var(--color-surface-level1);
|
|
13314
|
-
color: var(--color-text-default-default);
|
|
13315
|
-
}
|
|
13316
|
-
|
|
13317
|
-
.muka-badge--neutral .muka-badge__dot {
|
|
13318
|
-
background-color: var(--color-text-subtle-default);
|
|
13319
|
-
}
|
|
13320
|
-
|
|
13321
|
-
/* Info variant */
|
|
13322
|
-
.muka-badge--info {
|
|
13323
|
-
background-color: var(--color-state-info-background);
|
|
13324
|
-
color: var(--color-state-info-contrast);
|
|
13325
|
-
}
|
|
13326
|
-
|
|
13327
|
-
.muka-badge--info .muka-badge__dot {
|
|
13328
|
-
background-color: var(--color-state-info-default);
|
|
13329
|
-
}
|
|
13330
|
-
|
|
13331
|
-
/* Success variant */
|
|
13332
|
-
.muka-badge--success {
|
|
13333
|
-
background-color: var(--color-state-success-background);
|
|
13334
|
-
color: var(--color-state-success-contrast);
|
|
13035
|
+
|
|
13036
|
+
.muka-alert--lg .muka-alert__message {
|
|
13037
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
13038
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
13039
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
13040
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
13335
13041
|
}
|
|
13336
13042
|
|
|
13337
|
-
|
|
13338
|
-
|
|
13043
|
+
/* Action slot */
|
|
13044
|
+
.muka-alert__action {
|
|
13045
|
+
display: flex;
|
|
13046
|
+
align-items: center;
|
|
13047
|
+
flex-shrink: 0;
|
|
13339
13048
|
}
|
|
13340
13049
|
|
|
13341
|
-
/*
|
|
13342
|
-
.muka-
|
|
13343
|
-
|
|
13344
|
-
|
|
13050
|
+
/* Dismiss button - uses accent color per variant, aligned with icon row */
|
|
13051
|
+
.muka-alert__dismiss {
|
|
13052
|
+
display: flex;
|
|
13053
|
+
align-items: center;
|
|
13054
|
+
justify-content: center;
|
|
13055
|
+
flex-shrink: 0;
|
|
13056
|
+
align-self: flex-start;
|
|
13057
|
+
width: 24px;
|
|
13058
|
+
height: 24px;
|
|
13059
|
+
padding: 0;
|
|
13060
|
+
margin: 0 0 0 auto;
|
|
13061
|
+
border: none;
|
|
13062
|
+
background: transparent;
|
|
13063
|
+
cursor: pointer;
|
|
13064
|
+
border-radius: var(--border-radius-sm);
|
|
13065
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13345
13066
|
}
|
|
13346
13067
|
|
|
13347
|
-
.muka-
|
|
13348
|
-
|
|
13068
|
+
.muka-alert__dismiss:hover {
|
|
13069
|
+
opacity: 0.85;
|
|
13070
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
13349
13071
|
}
|
|
13350
13072
|
|
|
13351
|
-
|
|
13352
|
-
|
|
13353
|
-
|
|
13354
|
-
color: var(--color-state-error-contrast);
|
|
13073
|
+
.muka-alert__dismiss:focus-visible {
|
|
13074
|
+
outline: 2px solid var(--color-border-focus);
|
|
13075
|
+
outline-offset: 2px;
|
|
13355
13076
|
}
|
|
13356
13077
|
|
|
13357
|
-
.muka-
|
|
13358
|
-
|
|
13078
|
+
.muka-alert__dismiss svg {
|
|
13079
|
+
width: 16px;
|
|
13080
|
+
height: 16px;
|
|
13359
13081
|
}
|
|
13360
13082
|
|
|
13361
13083
|
|
|
@@ -13528,6 +13250,148 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13528
13250
|
}
|
|
13529
13251
|
|
|
13530
13252
|
|
|
13253
|
+
/* ActionSheet */
|
|
13254
|
+
/* ActionSheet Component Styles */
|
|
13255
|
+
|
|
13256
|
+
.muka-action-sheet__inner {
|
|
13257
|
+
display: flex;
|
|
13258
|
+
flex-direction: column;
|
|
13259
|
+
padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
|
|
13260
|
+
gap: var(--spacing-3);
|
|
13261
|
+
}
|
|
13262
|
+
|
|
13263
|
+
/* ─── Header ──────────────────────────────────────────── */
|
|
13264
|
+
|
|
13265
|
+
.muka-action-sheet__header {
|
|
13266
|
+
display: flex;
|
|
13267
|
+
flex-direction: column;
|
|
13268
|
+
align-items: center;
|
|
13269
|
+
gap: var(--spacing-1);
|
|
13270
|
+
padding: var(--spacing-2) 0 var(--spacing-3);
|
|
13271
|
+
text-align: center;
|
|
13272
|
+
}
|
|
13273
|
+
|
|
13274
|
+
.muka-action-sheet__title {
|
|
13275
|
+
margin: 0;
|
|
13276
|
+
color: var(--color-text-default-default);
|
|
13277
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13278
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13279
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13280
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13281
|
+
}
|
|
13282
|
+
|
|
13283
|
+
.muka-action-sheet__description {
|
|
13284
|
+
margin: 0;
|
|
13285
|
+
color: var(--color-text-subtle-default);
|
|
13286
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13287
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13288
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
13289
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13290
|
+
}
|
|
13291
|
+
|
|
13292
|
+
/* ─── Actions group ───────────────────────────────────── */
|
|
13293
|
+
|
|
13294
|
+
.muka-action-sheet__actions {
|
|
13295
|
+
display: flex;
|
|
13296
|
+
flex-direction: column;
|
|
13297
|
+
background-color: var(--color-surface-level1);
|
|
13298
|
+
border-radius: var(--radius-md);
|
|
13299
|
+
overflow: hidden;
|
|
13300
|
+
}
|
|
13301
|
+
|
|
13302
|
+
.muka-action-sheet__item {
|
|
13303
|
+
display: flex;
|
|
13304
|
+
align-items: center;
|
|
13305
|
+
gap: var(--spacing-3);
|
|
13306
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
13307
|
+
background: none;
|
|
13308
|
+
border: none;
|
|
13309
|
+
cursor: pointer;
|
|
13310
|
+
text-align: left;
|
|
13311
|
+
color: var(--color-text-default-default);
|
|
13312
|
+
font-family: var(--text-body-md-regular-fontFamily);
|
|
13313
|
+
font-weight: var(--text-body-md-regular-fontWeight);
|
|
13314
|
+
font-size: var(--text-body-md-regular-fontSize);
|
|
13315
|
+
line-height: var(--text-body-md-regular-lineHeight);
|
|
13316
|
+
-webkit-tap-highlight-color: transparent;
|
|
13317
|
+
transition: background-color 0.12s ease;
|
|
13318
|
+
}
|
|
13319
|
+
|
|
13320
|
+
.muka-action-sheet__item + .muka-action-sheet__item {
|
|
13321
|
+
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
13322
|
+
}
|
|
13323
|
+
|
|
13324
|
+
.muka-action-sheet__item:hover:not(:disabled) {
|
|
13325
|
+
background-color: var(--color-surface-level2);
|
|
13326
|
+
}
|
|
13327
|
+
|
|
13328
|
+
.muka-action-sheet__item:active:not(:disabled) {
|
|
13329
|
+
background-color: var(--color-surface-level3);
|
|
13330
|
+
}
|
|
13331
|
+
|
|
13332
|
+
.muka-action-sheet__item:focus-visible {
|
|
13333
|
+
outline: 2px solid var(--color-action-default);
|
|
13334
|
+
outline-offset: -2px;
|
|
13335
|
+
}
|
|
13336
|
+
|
|
13337
|
+
.muka-action-sheet__item--destructive {
|
|
13338
|
+
color: var(--color-state-error-default);
|
|
13339
|
+
}
|
|
13340
|
+
|
|
13341
|
+
.muka-action-sheet__item--disabled,
|
|
13342
|
+
.muka-action-sheet__item:disabled {
|
|
13343
|
+
opacity: 0.5;
|
|
13344
|
+
cursor: not-allowed;
|
|
13345
|
+
}
|
|
13346
|
+
|
|
13347
|
+
.muka-action-sheet__item-icon {
|
|
13348
|
+
display: inline-flex;
|
|
13349
|
+
align-items: center;
|
|
13350
|
+
justify-content: center;
|
|
13351
|
+
width: 24px;
|
|
13352
|
+
height: 24px;
|
|
13353
|
+
flex-shrink: 0;
|
|
13354
|
+
}
|
|
13355
|
+
|
|
13356
|
+
.muka-action-sheet__item-icon svg {
|
|
13357
|
+
width: 100%;
|
|
13358
|
+
height: 100%;
|
|
13359
|
+
}
|
|
13360
|
+
|
|
13361
|
+
.muka-action-sheet__item-label {
|
|
13362
|
+
flex: 1;
|
|
13363
|
+
}
|
|
13364
|
+
|
|
13365
|
+
/* ─── Cancel button (separate at bottom) ──────────────── */
|
|
13366
|
+
|
|
13367
|
+
.muka-action-sheet__cancel {
|
|
13368
|
+
display: flex;
|
|
13369
|
+
align-items: center;
|
|
13370
|
+
justify-content: center;
|
|
13371
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
13372
|
+
background-color: var(--color-surface-level1);
|
|
13373
|
+
border: none;
|
|
13374
|
+
border-radius: var(--radius-md);
|
|
13375
|
+
cursor: pointer;
|
|
13376
|
+
color: var(--color-text-default-default);
|
|
13377
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13378
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13379
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13380
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13381
|
+
-webkit-tap-highlight-color: transparent;
|
|
13382
|
+
transition: background-color 0.12s ease;
|
|
13383
|
+
}
|
|
13384
|
+
|
|
13385
|
+
.muka-action-sheet__cancel:hover {
|
|
13386
|
+
background-color: var(--color-surface-level2);
|
|
13387
|
+
}
|
|
13388
|
+
|
|
13389
|
+
.muka-action-sheet__cancel:focus-visible {
|
|
13390
|
+
outline: 2px solid var(--color-action-default);
|
|
13391
|
+
outline-offset: 2px;
|
|
13392
|
+
}
|
|
13393
|
+
|
|
13394
|
+
|
|
13531
13395
|
/* Accordion */
|
|
13532
13396
|
/* Accordion Component Styles */
|
|
13533
13397
|
|
|
@@ -13650,153 +13514,285 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13650
13514
|
overflow: hidden;
|
|
13651
13515
|
}
|
|
13652
13516
|
|
|
13653
|
-
.muka-accordion--contained .muka-accordion__item {
|
|
13654
|
-
background-color: var(--color-surface-level3);
|
|
13517
|
+
.muka-accordion--contained .muka-accordion__item {
|
|
13518
|
+
background-color: var(--color-surface-level3);
|
|
13519
|
+
}
|
|
13520
|
+
|
|
13521
|
+
.muka-accordion--contained .muka-accordion__item:last-child {
|
|
13522
|
+
border-bottom: none;
|
|
13523
|
+
}
|
|
13524
|
+
|
|
13525
|
+
|
|
13526
|
+
/* Sheet */
|
|
13527
|
+
/* Sheet Component Styles */
|
|
13528
|
+
|
|
13529
|
+
/* ─── Backdrop ────────────────────────────────────────── */
|
|
13530
|
+
|
|
13531
|
+
.muka-sheet__overlay {
|
|
13532
|
+
position: fixed;
|
|
13533
|
+
inset: 0;
|
|
13534
|
+
background-color: var(--color-surface-backdrop);
|
|
13535
|
+
z-index: 50;
|
|
13536
|
+
}
|
|
13537
|
+
|
|
13538
|
+
/* ─── Surface ─────────────────────────────────────────── */
|
|
13539
|
+
|
|
13540
|
+
.muka-sheet {
|
|
13541
|
+
position: fixed;
|
|
13542
|
+
left: 0;
|
|
13543
|
+
right: 0;
|
|
13544
|
+
bottom: 0;
|
|
13545
|
+
z-index: 51;
|
|
13546
|
+
|
|
13547
|
+
display: flex;
|
|
13548
|
+
flex-direction: column;
|
|
13549
|
+
|
|
13550
|
+
max-height: 96dvh;
|
|
13551
|
+
|
|
13552
|
+
background-color: var(--color-surface-level3);
|
|
13553
|
+
border-top-left-radius: var(--radius-lg);
|
|
13554
|
+
border-top-right-radius: var(--radius-lg);
|
|
13555
|
+
box-shadow: var(--shadow-level5);
|
|
13556
|
+
|
|
13557
|
+
outline: none;
|
|
13558
|
+
}
|
|
13559
|
+
|
|
13560
|
+
/* Safe-area bottom inset for the iPhone home indicator. */
|
|
13561
|
+
.muka-sheet:not(.muka-sheet--no-safe-area) {
|
|
13562
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
13563
|
+
}
|
|
13564
|
+
|
|
13565
|
+
/* ─── Drag handle ─────────────────────────────────────── */
|
|
13566
|
+
|
|
13567
|
+
.muka-sheet__handle-container {
|
|
13568
|
+
display: flex;
|
|
13569
|
+
justify-content: center;
|
|
13570
|
+
flex-shrink: 0;
|
|
13571
|
+
padding: var(--spacing-3) 0;
|
|
13572
|
+
}
|
|
13573
|
+
|
|
13574
|
+
.muka-sheet__handle {
|
|
13575
|
+
width: var(--dialog-drag-handle-width);
|
|
13576
|
+
height: var(--dialog-drag-handle-height);
|
|
13577
|
+
background-color: var(--dialog-drag-handle-color);
|
|
13578
|
+
border-radius: var(--dialog-drag-handle-radius);
|
|
13579
|
+
}
|
|
13580
|
+
|
|
13581
|
+
/* ─── Body (scrollable) ───────────────────────────────── */
|
|
13582
|
+
|
|
13583
|
+
.muka-sheet__body {
|
|
13584
|
+
flex: 1 1 0%;
|
|
13585
|
+
min-height: 0;
|
|
13586
|
+
overflow-y: auto;
|
|
13587
|
+
-webkit-overflow-scrolling: touch;
|
|
13588
|
+
overscroll-behavior: contain;
|
|
13655
13589
|
}
|
|
13656
13590
|
|
|
13657
|
-
|
|
13658
|
-
|
|
13591
|
+
/* ─── Visually-hidden title (a11y) ────────────────────── */
|
|
13592
|
+
|
|
13593
|
+
.muka-sheet__sr-title {
|
|
13594
|
+
position: absolute;
|
|
13595
|
+
width: 1px;
|
|
13596
|
+
height: 1px;
|
|
13597
|
+
padding: 0;
|
|
13598
|
+
margin: -1px;
|
|
13599
|
+
overflow: hidden;
|
|
13600
|
+
clip: rect(0, 0, 0, 0);
|
|
13601
|
+
white-space: nowrap;
|
|
13602
|
+
border: 0;
|
|
13659
13603
|
}
|
|
13660
13604
|
|
|
13661
13605
|
|
|
13662
|
-
/*
|
|
13663
|
-
/*
|
|
13606
|
+
/* Select */
|
|
13607
|
+
/* Select Component Styles - Aligned with Input for consistency */
|
|
13664
13608
|
|
|
13665
|
-
.muka-
|
|
13666
|
-
display: flex;
|
|
13609
|
+
.muka-select {
|
|
13610
|
+
display: inline-flex;
|
|
13667
13611
|
flex-direction: column;
|
|
13668
|
-
|
|
13669
|
-
gap: var(--spacing-3);
|
|
13612
|
+
gap: var(--spacing-2);
|
|
13670
13613
|
}
|
|
13671
13614
|
|
|
13672
|
-
|
|
13673
|
-
|
|
13674
|
-
.muka-action-sheet__header {
|
|
13675
|
-
display: flex;
|
|
13676
|
-
flex-direction: column;
|
|
13677
|
-
align-items: center;
|
|
13678
|
-
gap: var(--spacing-1);
|
|
13679
|
-
padding: var(--spacing-2) 0 var(--spacing-3);
|
|
13680
|
-
text-align: center;
|
|
13615
|
+
.muka-select--full-width {
|
|
13616
|
+
width: 100%;
|
|
13681
13617
|
}
|
|
13682
13618
|
|
|
13683
|
-
|
|
13684
|
-
|
|
13619
|
+
/* Label */
|
|
13620
|
+
.muka-select__label {
|
|
13685
13621
|
color: var(--color-text-default-default);
|
|
13622
|
+
cursor: pointer;
|
|
13623
|
+
}
|
|
13624
|
+
|
|
13625
|
+
.muka-select__label--sm {
|
|
13626
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
13627
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
13628
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
13629
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
13630
|
+
}
|
|
13631
|
+
|
|
13632
|
+
.muka-select__label--md {
|
|
13686
13633
|
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13687
13634
|
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13688
13635
|
font-size: var(--text-label-md-semibold-fontSize);
|
|
13689
13636
|
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13690
13637
|
}
|
|
13691
13638
|
|
|
13692
|
-
.muka-
|
|
13693
|
-
|
|
13694
|
-
|
|
13695
|
-
font-
|
|
13696
|
-
|
|
13697
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
13698
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13639
|
+
.muka-select__label--lg {
|
|
13640
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
13641
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
13642
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
13643
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
13699
13644
|
}
|
|
13700
13645
|
|
|
13701
|
-
|
|
13646
|
+
.muka-select__required {
|
|
13647
|
+
color: var(--color-state-error-foreground);
|
|
13648
|
+
}
|
|
13702
13649
|
|
|
13703
|
-
.muka-
|
|
13704
|
-
|
|
13705
|
-
|
|
13706
|
-
|
|
13707
|
-
border-radius: var(--radius-md);
|
|
13708
|
-
overflow: hidden;
|
|
13650
|
+
.muka-select__label--sm + .muka-select__field--disabled,
|
|
13651
|
+
.muka-select__label--md + .muka-select__field--disabled,
|
|
13652
|
+
.muka-select__label--lg + .muka-select__field--disabled {
|
|
13653
|
+
cursor: not-allowed;
|
|
13709
13654
|
}
|
|
13710
13655
|
|
|
13711
|
-
|
|
13656
|
+
/* Field container — same as Input: 1px border, radius, padding, inset shadow */
|
|
13657
|
+
.muka-select__field {
|
|
13712
13658
|
display: flex;
|
|
13713
13659
|
align-items: center;
|
|
13714
|
-
gap: var(--spacing-
|
|
13715
|
-
|
|
13716
|
-
background:
|
|
13717
|
-
border:
|
|
13660
|
+
gap: var(--spacing-2);
|
|
13661
|
+
position: relative;
|
|
13662
|
+
background-color: var(--input-field-color-default-background);
|
|
13663
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
13664
|
+
border-radius: var(--input-field-radius-md);
|
|
13665
|
+
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
13666
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
13718
13667
|
cursor: pointer;
|
|
13719
|
-
|
|
13720
|
-
color: var(--color-text-default-default);
|
|
13721
|
-
font-family: var(--text-body-md-regular-fontFamily);
|
|
13722
|
-
font-weight: var(--text-body-md-regular-fontWeight);
|
|
13723
|
-
font-size: var(--text-body-md-regular-fontSize);
|
|
13724
|
-
line-height: var(--text-body-md-regular-lineHeight);
|
|
13725
|
-
-webkit-tap-highlight-color: transparent;
|
|
13726
|
-
transition: background-color 0.12s ease;
|
|
13668
|
+
box-sizing: border-box;
|
|
13727
13669
|
}
|
|
13728
13670
|
|
|
13729
|
-
|
|
13730
|
-
|
|
13671
|
+
/* Inset shadow — same as Input (single subtle line) */
|
|
13672
|
+
.muka-select__field::after {
|
|
13673
|
+
content: '';
|
|
13674
|
+
position: absolute;
|
|
13675
|
+
inset: 0;
|
|
13676
|
+
border-radius: inherit;
|
|
13677
|
+
box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
|
|
13678
|
+
pointer-events: none;
|
|
13731
13679
|
}
|
|
13732
13680
|
|
|
13733
|
-
|
|
13734
|
-
|
|
13681
|
+
/* Size variants — same radius/height as Input */
|
|
13682
|
+
.muka-select__field--sm {
|
|
13683
|
+
min-height: var(--input-field-height-sm);
|
|
13684
|
+
border-radius: var(--input-field-radius-sm);
|
|
13735
13685
|
}
|
|
13736
13686
|
|
|
13737
|
-
.muka-
|
|
13738
|
-
|
|
13687
|
+
.muka-select__field--md {
|
|
13688
|
+
min-height: var(--input-field-height-default);
|
|
13689
|
+
border-radius: var(--input-field-radius-md);
|
|
13739
13690
|
}
|
|
13740
13691
|
|
|
13741
|
-
.muka-
|
|
13742
|
-
|
|
13743
|
-
|
|
13692
|
+
.muka-select__field--lg {
|
|
13693
|
+
min-height: var(--input-field-height-lg);
|
|
13694
|
+
border-radius: var(--input-field-radius-lg);
|
|
13744
13695
|
}
|
|
13745
13696
|
|
|
13746
|
-
|
|
13747
|
-
|
|
13697
|
+
/* Hover — no visual change (same as Input) */
|
|
13698
|
+
|
|
13699
|
+
/* Focus (active) — same as Input: 2px border, padding compensation */
|
|
13700
|
+
.muka-select__field--focused:not(.muka-select__field--disabled) {
|
|
13701
|
+
border-width: var(--border-width-bold);
|
|
13702
|
+
border-color: var(--input-field-color-focus-border);
|
|
13703
|
+
background-color: var(--input-field-color-focus-background);
|
|
13704
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
13748
13705
|
}
|
|
13749
13706
|
|
|
13750
|
-
|
|
13751
|
-
.muka-
|
|
13752
|
-
|
|
13707
|
+
/* Error — same as Input: 2px border, padding compensation */
|
|
13708
|
+
.muka-select__field--error:not(.muka-select__field--disabled) {
|
|
13709
|
+
border-width: var(--border-width-bold);
|
|
13710
|
+
border-color: var(--input-field-color-error-border);
|
|
13711
|
+
background-color: var(--input-field-color-error-background);
|
|
13712
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
13713
|
+
}
|
|
13714
|
+
|
|
13715
|
+
/* Disabled — same as Input */
|
|
13716
|
+
.muka-select__field--disabled {
|
|
13717
|
+
background-color: var(--input-field-color-disabled-background);
|
|
13718
|
+
border-color: var(--input-field-color-disabled-border);
|
|
13753
13719
|
cursor: not-allowed;
|
|
13754
13720
|
}
|
|
13755
13721
|
|
|
13756
|
-
.muka-
|
|
13757
|
-
display:
|
|
13758
|
-
align-items: center;
|
|
13759
|
-
justify-content: center;
|
|
13760
|
-
width: 24px;
|
|
13761
|
-
height: 24px;
|
|
13762
|
-
flex-shrink: 0;
|
|
13722
|
+
.muka-select__field--disabled::after {
|
|
13723
|
+
display: none;
|
|
13763
13724
|
}
|
|
13764
13725
|
|
|
13765
|
-
|
|
13726
|
+
/* Native select — padding on field so native has 0 + right space for chevron */
|
|
13727
|
+
.muka-select__native {
|
|
13728
|
+
appearance: none;
|
|
13729
|
+
-webkit-appearance: none;
|
|
13730
|
+
flex: 1;
|
|
13731
|
+
border: none;
|
|
13732
|
+
outline: none;
|
|
13733
|
+
background: transparent;
|
|
13734
|
+
color: var(--input-field-color-default-foreground);
|
|
13735
|
+
font-family: var(--text-input-md-fontFamily);
|
|
13736
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
13737
|
+
font-size: var(--text-input-md-fontSize);
|
|
13738
|
+
line-height: var(--text-input-md-lineHeight);
|
|
13739
|
+
padding: 0;
|
|
13740
|
+
padding-right: calc(var(--input-field-padding-x) + 1.5rem);
|
|
13741
|
+
cursor: pointer;
|
|
13742
|
+
min-width: 0;
|
|
13766
13743
|
width: 100%;
|
|
13767
|
-
height: 100%;
|
|
13768
13744
|
}
|
|
13769
13745
|
|
|
13770
|
-
.muka-
|
|
13771
|
-
|
|
13746
|
+
.muka-select__field--sm .muka-select__native {
|
|
13747
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
13748
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
13749
|
+
font-size: var(--text-input-sm-fontSize);
|
|
13750
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
13772
13751
|
}
|
|
13773
13752
|
|
|
13774
|
-
|
|
13753
|
+
.muka-select__field--lg .muka-select__native {
|
|
13754
|
+
font-family: var(--text-input-lg-fontFamily);
|
|
13755
|
+
font-weight: var(--text-input-lg-fontWeight);
|
|
13756
|
+
font-size: var(--text-input-lg-fontSize);
|
|
13757
|
+
line-height: var(--text-input-lg-lineHeight);
|
|
13758
|
+
}
|
|
13775
13759
|
|
|
13776
|
-
.muka-
|
|
13777
|
-
|
|
13760
|
+
.muka-select__field--disabled .muka-select__native {
|
|
13761
|
+
color: var(--input-field-color-disabled-foreground);
|
|
13762
|
+
cursor: not-allowed;
|
|
13763
|
+
}
|
|
13764
|
+
|
|
13765
|
+
/* Chevron — aligned with field padding */
|
|
13766
|
+
.muka-select__chevron {
|
|
13767
|
+
display: inline-flex;
|
|
13778
13768
|
align-items: center;
|
|
13779
|
-
|
|
13780
|
-
|
|
13781
|
-
|
|
13782
|
-
|
|
13783
|
-
border-radius: var(--radius-md);
|
|
13784
|
-
cursor: pointer;
|
|
13785
|
-
color: var(--color-text-default-default);
|
|
13786
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13787
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13788
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
13789
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13790
|
-
-webkit-tap-highlight-color: transparent;
|
|
13791
|
-
transition: background-color 0.12s ease;
|
|
13769
|
+
position: absolute;
|
|
13770
|
+
right: var(--input-field-padding-x);
|
|
13771
|
+
pointer-events: none;
|
|
13772
|
+
color: var(--color-text-subtle-default);
|
|
13792
13773
|
}
|
|
13793
13774
|
|
|
13794
|
-
.muka-
|
|
13795
|
-
|
|
13775
|
+
.muka-select__field--disabled .muka-select__chevron {
|
|
13776
|
+
color: var(--input-field-color-disabled-foreground);
|
|
13796
13777
|
}
|
|
13797
13778
|
|
|
13798
|
-
|
|
13799
|
-
|
|
13800
|
-
|
|
13779
|
+
/* Helper text — same as Input */
|
|
13780
|
+
.muka-select__helper {
|
|
13781
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
13782
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
13783
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
13784
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
13785
|
+
color: var(--color-text-subtle-default);
|
|
13786
|
+
margin: 0;
|
|
13787
|
+
}
|
|
13788
|
+
|
|
13789
|
+
/* Error message — same as Input */
|
|
13790
|
+
.muka-select__error {
|
|
13791
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
13792
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
13793
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
13794
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
13795
|
+
color: var(--color-state-error-foreground);
|
|
13796
|
+
margin: 0;
|
|
13801
13797
|
}
|
|
13802
13798
|
|