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