@revikornmann/muka-ui 0.15.0 → 0.16.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.
Files changed (68) hide show
  1. package/build/manifest.json +10 -0
  2. package/dist/cjs/components/BottomBar/BottomBar.css +19 -4
  3. package/dist/cjs/components/ChatMessage/ChatMessage.css +7 -1
  4. package/dist/cjs/components/ChatMessage/ChatMessage.js.map +1 -1
  5. package/dist/cjs/components/ChatMessageList/ChatMessageList.css +1 -1
  6. package/dist/cjs/components/Combobox/Combobox.css +59 -1
  7. package/dist/cjs/components/Combobox/Combobox.js +22 -3
  8. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  9. package/dist/cjs/components/SearchInput/SearchInput.js +7 -2
  10. package/dist/cjs/components/SearchInput/SearchInput.js.map +1 -1
  11. package/dist/cjs/components/TextLink/TextLink.css +79 -0
  12. package/dist/cjs/components/TextLink/TextLink.js +28 -0
  13. package/dist/cjs/components/TextLink/TextLink.js.map +1 -0
  14. package/dist/cjs/components/TextLink/index.js +11 -0
  15. package/dist/cjs/components/TextLink/index.js.map +1 -0
  16. package/dist/cjs/components/index.js +3 -1
  17. package/dist/cjs/components/index.js.map +1 -1
  18. package/dist/esm/components/BottomBar/BottomBar.css +19 -4
  19. package/dist/esm/components/ChatMessage/ChatMessage.css +7 -1
  20. package/dist/esm/components/ChatMessage/ChatMessage.js.map +1 -1
  21. package/dist/esm/components/ChatMessageList/ChatMessageList.css +1 -1
  22. package/dist/esm/components/Combobox/Combobox.css +59 -1
  23. package/dist/esm/components/Combobox/Combobox.js +23 -4
  24. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  25. package/dist/esm/components/SearchInput/SearchInput.js +7 -2
  26. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  27. package/dist/esm/components/TextLink/TextLink.css +79 -0
  28. package/dist/esm/components/TextLink/TextLink.js +24 -0
  29. package/dist/esm/components/TextLink/TextLink.js.map +1 -0
  30. package/dist/esm/components/TextLink/index.js +3 -0
  31. package/dist/esm/components/TextLink/index.js.map +1 -0
  32. package/dist/esm/components/index.js +1 -0
  33. package/dist/esm/components/index.js.map +1 -1
  34. package/dist/styles/components/BottomBar.css +19 -4
  35. package/dist/styles/components/ChatMessage.css +7 -1
  36. package/dist/styles/components/ChatMessageList.css +1 -1
  37. package/dist/styles/components/Combobox.css +59 -1
  38. package/dist/styles/components/TextLink.css +79 -0
  39. package/dist/styles/index.css +609 -446
  40. package/dist/styles/muka-dark.css +609 -446
  41. package/dist/styles/muka-light.css +609 -446
  42. package/dist/styles/tokens-bouwplan-dark.css +4 -2
  43. package/dist/styles/tokens-bouwplan-light.css +4 -2
  44. package/dist/styles/tokens-fscl-dark.css +4 -2
  45. package/dist/styles/tokens-fscl-light.css +4 -2
  46. package/dist/styles/tokens-grip-dark.css +4 -2
  47. package/dist/styles/tokens-grip-light.css +4 -2
  48. package/dist/styles/tokens-muka-dark.css +4 -2
  49. package/dist/styles/tokens-muka-light.css +4 -2
  50. package/dist/styles/tokens-wireframe-dark.css +4 -2
  51. package/dist/styles/tokens-wireframe-light.css +4 -2
  52. package/dist/styles/wireframe-dark.css +609 -446
  53. package/dist/styles/wireframe-light.css +609 -446
  54. package/dist/types/components/ChatMessage/ChatMessage.d.ts +4 -1
  55. package/dist/types/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  56. package/dist/types/components/Combobox/Combobox.d.ts +7 -0
  57. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  58. package/dist/types/components/SearchInput/SearchInput.d.ts.map +1 -1
  59. package/dist/types/components/TextLink/TextLink.d.ts +30 -0
  60. package/dist/types/components/TextLink/TextLink.d.ts.map +1 -0
  61. package/dist/types/components/TextLink/index.d.ts +3 -0
  62. package/dist/types/components/TextLink/index.d.ts.map +1 -0
  63. package/dist/types/components/index.d.ts +1 -0
  64. package/dist/types/components/index.d.ts.map +1 -1
  65. package/package.json +2 -1
  66. package/tokens/t4-components/bottombar.json +2 -1
  67. package/tokens/t4-components/chat.json +15 -0
  68. package/tokens/t4-components/chatbubble.json +7 -1
@@ -1661,7 +1661,9 @@ body {
1661
1661
  --card-border-hover: 0.0625rem solid #bbbbbb;
1662
1662
  --card-border-pressed: 0.125rem solid #113264;
1663
1663
  --card-border-selected: 0.125rem solid #113264;
1664
- --chatbubble-max-width: 640px;
1664
+ --chat-column-max-width: 768px;
1665
+ --chatbubble-max-width: 37rem;
1666
+ --chatbubble-max-width-ratio: 77%;
1665
1667
  --chatbubble-radius: 0px;
1666
1668
  --chatbubble-padding-block: 0.75rem;
1667
1669
  --chatbubble-padding-inline: 1rem;
@@ -2084,7 +2086,7 @@ body {
2084
2086
  --bottombar-floating-backdrop-start: transparent;
2085
2087
  --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.027);
2086
2088
  --bottombar-floating-padding-top: 2rem;
2087
- --bottombar-chat-max-width: 1024px;
2089
+ --bottombar-chat-max-width: 768px;
2088
2090
  --bottombar-chat-padding: 0.75rem;
2089
2091
  --bottombar-tab-icon-size: 24px;
2090
2092
  --bottombar-tab-gap: 0.25rem;
@@ -2887,196 +2889,6 @@ body {
2887
2889
  }
2888
2890
 
2889
2891
 
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
-
3080
2892
  /* Tile */
3081
2893
  /* Tile Component Styles - Using Muka Design Tokens */
3082
2894
 
@@ -3438,45 +3250,235 @@ body {
3438
3250
  }
3439
3251
 
3440
3252
 
3441
- /* Thumbnail */
3442
- /* Thumbnail Component Styles - Using Muka Design Tokens */
3253
+ /* Toast */
3254
+ /* Toast Component Styles - Using Muka Design Tokens */
3443
3255
 
3444
- .muka-thumbnail {
3445
- position: relative;
3446
- flex-shrink: 0;
3256
+ .muka-toast {
3257
+ display: flex;
3258
+ align-items: flex-start;
3259
+ gap: var(--toast-gap);
3260
+ padding: var(--toast-padding-y) var(--toast-padding-x);
3261
+ border-radius: var(--toast-radius);
3262
+ box-shadow: var(--toast-shadow);
3263
+ min-width: var(--toast-width-min);
3264
+ max-width: var(--toast-width-max);
3265
+ pointer-events: auto;
3266
+ animation: muka-toast-slide-in 0.2s ease-out;
3447
3267
  }
3448
3268
 
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);
3269
+ /* Entry animation */
3270
+ @keyframes muka-toast-slide-in {
3271
+ from {
3272
+ opacity: 0;
3273
+ transform: translateY(8px);
3274
+ }
3275
+ to {
3276
+ opacity: 1;
3277
+ transform: translateY(0);
3278
+ }
3459
3279
  }
3460
3280
 
3461
- /* ─── Shapes ──────────────────────────────────────────── */
3462
- .muka-thumbnail--4-3 {
3463
- width: 160px;
3464
- height: 120px;
3281
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
3282
+ .muka-toast--top-right,
3283
+ .muka-toast--top-left,
3284
+ .muka-toast--top-center,
3285
+ .muka-toast--bottom-right,
3286
+ .muka-toast--bottom-left,
3287
+ .muka-toast--bottom-center {
3288
+ position: fixed;
3289
+ z-index: 9999;
3465
3290
  }
3466
3291
 
3467
- .muka-thumbnail--1-1 {
3468
- width: 120px;
3469
- height: 120px;
3292
+ .muka-toast--top-right {
3293
+ top: var(--spacing-4);
3294
+ right: var(--spacing-4);
3470
3295
  }
3471
3296
 
3472
- .muka-thumbnail--ellipse {
3473
- width: 120px;
3474
- height: 120px;
3297
+ .muka-toast--top-left {
3298
+ top: var(--spacing-4);
3299
+ left: var(--spacing-4);
3475
3300
  }
3476
3301
 
3477
- .muka-thumbnail--ellipse .muka-thumbnail__frame {
3478
- border-radius: var(--border-radius-full);
3479
- }
3302
+ .muka-toast--top-center {
3303
+ top: var(--spacing-4);
3304
+ left: 50%;
3305
+ transform: translateX(-50%);
3306
+ }
3307
+
3308
+ .muka-toast--bottom-right {
3309
+ bottom: var(--spacing-4);
3310
+ right: var(--spacing-4);
3311
+ }
3312
+
3313
+ .muka-toast--bottom-left {
3314
+ bottom: var(--spacing-4);
3315
+ left: var(--spacing-4);
3316
+ }
3317
+
3318
+ .muka-toast--bottom-center {
3319
+ bottom: var(--spacing-4);
3320
+ left: 50%;
3321
+ transform: translateX(-50%);
3322
+ }
3323
+
3324
+ /* Variant: Info */
3325
+ .muka-toast--info {
3326
+ background-color: var(--toast-color-info-background);
3327
+ color: var(--toast-color-info-foreground);
3328
+ }
3329
+
3330
+ .muka-toast--info .muka-toast__icon {
3331
+ color: var(--toast-color-info-accent);
3332
+ }
3333
+
3334
+ /* Variant: Success */
3335
+ .muka-toast--success {
3336
+ background-color: var(--toast-color-success-background);
3337
+ color: var(--toast-color-success-foreground);
3338
+ }
3339
+
3340
+ .muka-toast--success .muka-toast__icon {
3341
+ color: var(--toast-color-success-accent);
3342
+ }
3343
+
3344
+ /* Variant: Warning */
3345
+ .muka-toast--warning {
3346
+ background-color: var(--toast-color-warning-background);
3347
+ color: var(--toast-color-warning-foreground);
3348
+ }
3349
+
3350
+ .muka-toast--warning .muka-toast__icon {
3351
+ color: var(--toast-color-warning-accent);
3352
+ }
3353
+
3354
+ /* Variant: Error */
3355
+ .muka-toast--error {
3356
+ background-color: var(--toast-color-error-background);
3357
+ color: var(--toast-color-error-foreground);
3358
+ }
3359
+
3360
+ .muka-toast--error .muka-toast__icon {
3361
+ color: var(--toast-color-error-accent);
3362
+ }
3363
+
3364
+ /* Icon */
3365
+ .muka-toast__icon {
3366
+ display: flex;
3367
+ align-items: center;
3368
+ justify-content: center;
3369
+ flex-shrink: 0;
3370
+ width: var(--toast-icon-size);
3371
+ height: var(--toast-icon-size);
3372
+ }
3373
+
3374
+ .muka-toast__icon svg {
3375
+ width: 100%;
3376
+ height: 100%;
3377
+ }
3378
+
3379
+ /* Content */
3380
+ .muka-toast__content {
3381
+ flex: 1;
3382
+ min-width: 0;
3383
+ }
3384
+
3385
+ .muka-toast__title {
3386
+ font-family: var(--text-label-md-semibold-fontFamily);
3387
+ font-weight: var(--text-label-md-semibold-fontWeight);
3388
+ font-size: var(--text-label-md-semibold-fontSize);
3389
+ line-height: var(--text-label-md-semibold-lineHeight);
3390
+ margin-bottom: var(--spacing-1);
3391
+ }
3392
+
3393
+ .muka-toast__message {
3394
+ font-family: var(--text-body-sm-regular-fontFamily);
3395
+ font-weight: var(--text-body-sm-regular-fontWeight);
3396
+ font-size: var(--text-body-sm-regular-fontSize);
3397
+ line-height: var(--text-body-sm-regular-lineHeight);
3398
+ }
3399
+
3400
+ /* Action slot */
3401
+ .muka-toast__action {
3402
+ display: flex;
3403
+ align-items: center;
3404
+ flex-shrink: 0;
3405
+ }
3406
+
3407
+ /* Dismiss button */
3408
+ .muka-toast__dismiss {
3409
+ display: flex;
3410
+ align-items: center;
3411
+ justify-content: center;
3412
+ flex-shrink: 0;
3413
+ width: 24px;
3414
+ height: 24px;
3415
+ padding: 0;
3416
+ margin: -2px -4px -2px 0;
3417
+ border: none;
3418
+ background: transparent;
3419
+ color: inherit;
3420
+ opacity: 0.7;
3421
+ cursor: pointer;
3422
+ border-radius: var(--border-radius-sm);
3423
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3424
+ }
3425
+
3426
+ .muka-toast__dismiss:hover {
3427
+ opacity: 1;
3428
+ background-color: rgba(0, 0, 0, 0.05);
3429
+ }
3430
+
3431
+ .muka-toast__dismiss:focus-visible {
3432
+ outline: 2px solid var(--color-border-focus);
3433
+ outline-offset: 2px;
3434
+ opacity: 1;
3435
+ }
3436
+
3437
+ .muka-toast__dismiss svg {
3438
+ width: 16px;
3439
+ height: 16px;
3440
+ }
3441
+
3442
+
3443
+ /* Thumbnail */
3444
+ /* Thumbnail Component Styles - Using Muka Design Tokens */
3445
+
3446
+ .muka-thumbnail {
3447
+ position: relative;
3448
+ flex-shrink: 0;
3449
+ }
3450
+
3451
+ /* The frame carries the border, background and shape clip. Keeping it separate
3452
+ from the root lets the remove (×) button sit outside the clip (needed for the
3453
+ circular/ellipse shape, whose corners would otherwise clip the button). */
3454
+ .muka-thumbnail__frame {
3455
+ position: absolute;
3456
+ inset: 0;
3457
+ overflow: hidden;
3458
+ border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
3459
+ border-radius: var(--border-radius-lg);
3460
+ background-color: var(--color-surface-level1);
3461
+ }
3462
+
3463
+ /* ─── Shapes ──────────────────────────────────────────── */
3464
+ .muka-thumbnail--4-3 {
3465
+ width: 160px;
3466
+ height: 120px;
3467
+ }
3468
+
3469
+ .muka-thumbnail--1-1 {
3470
+ width: 120px;
3471
+ height: 120px;
3472
+ }
3473
+
3474
+ .muka-thumbnail--ellipse {
3475
+ width: 120px;
3476
+ height: 120px;
3477
+ }
3478
+
3479
+ .muka-thumbnail--ellipse .muka-thumbnail__frame {
3480
+ border-radius: var(--border-radius-full);
3481
+ }
3480
3482
 
3481
3483
  /* Image fills the frame, cropped to cover. Sits at scale(1) by default so the
3482
3484
  interactive hover zoom has a clean origin. */
@@ -3776,6 +3778,88 @@ body {
3776
3778
  }
3777
3779
 
3778
3780
 
3781
+ /* TextLink */
3782
+ /* TextLink Component Styles - Using Muka Design Tokens */
3783
+
3784
+ .muka-text-link {
3785
+ display: inline;
3786
+ cursor: pointer;
3787
+ text-decoration: underline;
3788
+ /* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
3789
+ text-underline-offset: 0.2em;
3790
+ text-decoration-thickness: from-font;
3791
+ /* Rounds the focus ring's corners; the link itself has no visible box. */
3792
+ border-radius: var(--border-radius-sm);
3793
+ transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
3794
+ }
3795
+
3796
+ /* ─── Sizes ───────────────────────────────────────────────
3797
+ Mirrors the body text scale so a link matches the copy it sits in. */
3798
+ .muka-text-link--sm {
3799
+ font-family: var(--text-body-sm-regular-fontFamily);
3800
+ font-weight: var(--text-body-sm-regular-fontWeight);
3801
+ font-size: var(--text-body-sm-regular-fontSize);
3802
+ line-height: var(--text-body-sm-regular-lineHeight);
3803
+ }
3804
+
3805
+ .muka-text-link--base {
3806
+ font-family: var(--text-body-base-regular-fontFamily);
3807
+ font-weight: var(--text-body-base-regular-fontWeight);
3808
+ font-size: var(--text-body-base-regular-fontSize);
3809
+ line-height: var(--text-body-base-regular-lineHeight);
3810
+ }
3811
+
3812
+ .muka-text-link--lg {
3813
+ font-family: var(--text-body-lg-regular-fontFamily);
3814
+ font-weight: var(--text-body-lg-regular-fontWeight);
3815
+ font-size: var(--text-body-lg-regular-fontSize);
3816
+ line-height: var(--text-body-lg-regular-lineHeight);
3817
+ }
3818
+
3819
+ /* ─── Variant: default (accent) ───────────────────────────
3820
+ Visited repeats the default colour on purpose: the design treats visited and
3821
+ default the same, and pinning it stops the browser's purple from showing. */
3822
+ .muka-text-link--default,
3823
+ .muka-text-link--default:visited {
3824
+ color: var(--color-text-action-default);
3825
+ }
3826
+
3827
+ .muka-text-link--default:hover,
3828
+ .muka-text-link--default:focus-visible {
3829
+ color: var(--color-text-action-hover);
3830
+ }
3831
+
3832
+ .muka-text-link--default:active {
3833
+ color: var(--color-text-action-pressed);
3834
+ }
3835
+
3836
+ /* ─── Variant: subtle (neutral) ───────────────────────────
3837
+ Hover, focus and pressed all darken to the default text colour. */
3838
+ .muka-text-link--subtle,
3839
+ .muka-text-link--subtle:visited {
3840
+ color: var(--color-text-subtle-default);
3841
+ }
3842
+
3843
+ .muka-text-link--subtle:hover,
3844
+ .muka-text-link--subtle:focus-visible,
3845
+ .muka-text-link--subtle:active {
3846
+ color: var(--color-text-default-default);
3847
+ }
3848
+
3849
+ /* ─── Focus ───────────────────────────────────────────────
3850
+ Same ring as every other focusable Muka component. */
3851
+ .muka-text-link:focus-visible {
3852
+ outline: 2px solid var(--color-border-focus);
3853
+ outline-offset: 2px;
3854
+ }
3855
+
3856
+ @media (prefers-reduced-motion: reduce) {
3857
+ .muka-text-link {
3858
+ transition: none;
3859
+ }
3860
+ }
3861
+
3862
+
3779
3863
  /* Tabs */
3780
3864
  /* Tabs Component Styles - Clean underline style tabs matching Figma */
3781
3865
 
@@ -5295,29 +5379,6 @@ body {
5295
5379
  }
5296
5380
 
5297
5381
 
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
5382
  /* SearchInput */
5322
5383
  /* SearchInput Component Styles */
5323
5384
 
@@ -5487,11 +5548,34 @@ body {
5487
5548
  }
5488
5549
 
5489
5550
 
5490
- /* RangeSlider */
5491
- /* RangeSlider Component Styles - Using Muka Design Tokens */
5551
+ /* Section */
5552
+ /* Section Component - Layout tokens (section.padding) */
5492
5553
 
5493
- .muka-range-slider {
5494
- display: flex;
5554
+ .muka-section {
5555
+ box-sizing: border-box;
5556
+ }
5557
+
5558
+ .muka-section--padding-compact {
5559
+ padding-block: var(--section-padding-vertical-compact);
5560
+ padding-inline: var(--section-padding-horizontal-compact);
5561
+ }
5562
+
5563
+ .muka-section--padding-default {
5564
+ padding-block: var(--section-padding-vertical-default);
5565
+ padding-inline: var(--section-padding-horizontal-default);
5566
+ }
5567
+
5568
+ .muka-section--padding-spacious {
5569
+ padding-block: var(--section-padding-vertical-spacious);
5570
+ padding-inline: var(--section-padding-horizontal-spacious);
5571
+ }
5572
+
5573
+
5574
+ /* RangeSlider */
5575
+ /* RangeSlider Component Styles - Using Muka Design Tokens */
5576
+
5577
+ .muka-range-slider {
5578
+ display: flex;
5495
5579
  flex-direction: column;
5496
5580
  gap: var(--spacing-1);
5497
5581
  width: 100%;
@@ -7039,36 +7123,6 @@ body {
7039
7123
  }
7040
7124
 
7041
7125
 
7042
- /* NumberInput */
7043
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
7044
- /* Only the prefix/suffix affixes are NumberInput-specific. */
7045
-
7046
- .muka-numberinput__addon {
7047
- display: inline-flex;
7048
- align-items: center;
7049
- flex: none;
7050
- color: var(--color-text-subtle-default);
7051
- font-family: var(--text-input-md-fontFamily);
7052
- font-size: var(--text-input-md-fontSize);
7053
- line-height: var(--text-input-md-lineHeight);
7054
- user-select: none;
7055
- pointer-events: none;
7056
- white-space: nowrap;
7057
- }
7058
-
7059
- /* Hide the native number spinners — affixes/step API replace them. */
7060
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7061
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7062
- -webkit-appearance: none;
7063
- margin: 0;
7064
- }
7065
-
7066
- .muka-numberinput__field .muka-input__native {
7067
- -moz-appearance: textfield;
7068
- appearance: textfield;
7069
- }
7070
-
7071
-
7072
7126
  /* Pagination */
7073
7127
  /* Pagination Component Styles */
7074
7128
 
@@ -7171,6 +7225,36 @@ body {
7171
7225
  }
7172
7226
 
7173
7227
 
7228
+ /* NumberInput */
7229
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
7230
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
7231
+
7232
+ .muka-numberinput__addon {
7233
+ display: inline-flex;
7234
+ align-items: center;
7235
+ flex: none;
7236
+ color: var(--color-text-subtle-default);
7237
+ font-family: var(--text-input-md-fontFamily);
7238
+ font-size: var(--text-input-md-fontSize);
7239
+ line-height: var(--text-input-md-lineHeight);
7240
+ user-select: none;
7241
+ pointer-events: none;
7242
+ white-space: nowrap;
7243
+ }
7244
+
7245
+ /* Hide the native number spinners — affixes/step API replace them. */
7246
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7247
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7248
+ -webkit-appearance: none;
7249
+ margin: 0;
7250
+ }
7251
+
7252
+ .muka-numberinput__field .muka-input__native {
7253
+ -moz-appearance: textfield;
7254
+ appearance: textfield;
7255
+ }
7256
+
7257
+
7174
7258
  /* NavigationTransition */
7175
7259
  /* NavigationTransition Component Styles */
7176
7260
 
@@ -8126,26 +8210,6 @@ li.muka-listitem {
8126
8210
  }
8127
8211
 
8128
8212
 
8129
- /* Form */
8130
- .muka-form {
8131
- display: flex;
8132
- flex-direction: column;
8133
- width: 100%;
8134
- }
8135
-
8136
- .muka-form--gap-sm {
8137
- gap: var(--size-sm);
8138
- }
8139
-
8140
- .muka-form--gap-md {
8141
- gap: var(--size-md);
8142
- }
8143
-
8144
- .muka-form--gap-lg {
8145
- gap: var(--size-lg);
8146
- }
8147
-
8148
-
8149
8213
  /* Icon */
8150
8214
  /* Icon Component Styles - Using Muka Design Tokens */
8151
8215
 
@@ -8200,6 +8264,26 @@ li.muka-listitem {
8200
8264
  }
8201
8265
 
8202
8266
 
8267
+ /* Form */
8268
+ .muka-form {
8269
+ display: flex;
8270
+ flex-direction: column;
8271
+ width: 100%;
8272
+ }
8273
+
8274
+ .muka-form--gap-sm {
8275
+ gap: var(--size-sm);
8276
+ }
8277
+
8278
+ .muka-form--gap-md {
8279
+ gap: var(--size-md);
8280
+ }
8281
+
8282
+ .muka-form--gap-lg {
8283
+ gap: var(--size-lg);
8284
+ }
8285
+
8286
+
8203
8287
  /* FileUpload */
8204
8288
  /* FileUpload Component Styles */
8205
8289
 
@@ -10120,6 +10204,19 @@ li.muka-listitem {
10120
10204
  /* Combobox */
10121
10205
  /* Combobox Component Styles */
10122
10206
 
10207
+ /* ─── Trigger group (positioning context for the trailing controls) ── */
10208
+
10209
+ /*
10210
+ * The clear control is a sibling of the trigger, not a child (a <button> may
10211
+ * not contain interactive content), so it is overlaid on the trigger's trailing
10212
+ * padding. The trigger reserves that space with padding-right below.
10213
+ */
10214
+ .muka-combobox__trigger-group {
10215
+ position: relative;
10216
+ display: block;
10217
+ width: 100%;
10218
+ }
10219
+
10123
10220
  /* ─── Trigger (looks like an Input field, behaves like a button) ── */
10124
10221
 
10125
10222
  .muka-combobox {
@@ -10127,7 +10224,7 @@ li.muka-listitem {
10127
10224
  align-items: center;
10128
10225
  gap: var(--spacing-2);
10129
10226
  width: 100%;
10130
- padding: 0 var(--input-field-padding-x);
10227
+ padding: 0 var(--muka-combobox-trailing-space) 0 var(--input-field-padding-x);
10131
10228
  background-color: var(--input-field-color-default-background);
10132
10229
  border: var(--border-width-regular) solid var(--input-field-color-default-border);
10133
10230
  color: var(--color-text-default-default);
@@ -10139,6 +10236,19 @@ li.muka-listitem {
10139
10236
  line-height: var(--text-body-md-regular-lineHeight);
10140
10237
  -webkit-tap-highlight-color: transparent;
10141
10238
  transition: border-color 0.12s ease;
10239
+
10240
+ /* Room for the chevron overlaid on the trailing edge. */
10241
+ --muka-combobox-trailing-space: calc(
10242
+ var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2)
10243
+ );
10244
+ }
10245
+
10246
+ /* …and for the clear button next to it, when one is rendered. */
10247
+ .muka-combobox--clearable {
10248
+ --muka-combobox-trailing-space: calc(
10249
+ var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2) +
10250
+ var(--icon-size-xs) + var(--spacing-1) * 2 + var(--spacing-2)
10251
+ );
10142
10252
  }
10143
10253
 
10144
10254
  .muka-combobox--sm {
@@ -10191,6 +10301,23 @@ li.muka-listitem {
10191
10301
  text-overflow: ellipsis;
10192
10302
  }
10193
10303
 
10304
+ /* ─── Trailing controls (clear + chevron) ─────────────── */
10305
+
10306
+ .muka-combobox__actions {
10307
+ position: absolute;
10308
+ top: 0;
10309
+ right: var(--input-field-padding-x);
10310
+ height: 100%;
10311
+ display: flex;
10312
+ align-items: center;
10313
+ gap: var(--spacing-2);
10314
+ /*
10315
+ * The strip sits on top of the trigger, so it must not swallow taps meant to
10316
+ * open the picker. Only the clear button takes pointer events back.
10317
+ */
10318
+ pointer-events: none;
10319
+ }
10320
+
10194
10321
  .muka-combobox__clear,
10195
10322
  .muka-combobox__chevron {
10196
10323
  display: inline-flex;
@@ -10201,9 +10328,13 @@ li.muka-listitem {
10201
10328
  }
10202
10329
 
10203
10330
  .muka-combobox__clear {
10331
+ pointer-events: auto;
10204
10332
  cursor: pointer;
10205
10333
  padding: var(--spacing-1);
10334
+ border: none;
10335
+ background: none;
10206
10336
  border-radius: var(--radius-sm);
10337
+ -webkit-tap-highlight-color: transparent;
10207
10338
  }
10208
10339
 
10209
10340
  .muka-combobox__clear:hover {
@@ -10211,6 +10342,17 @@ li.muka-listitem {
10211
10342
  background-color: var(--color-surface-level1);
10212
10343
  }
10213
10344
 
10345
+ .muka-combobox__clear:focus-visible {
10346
+ outline: 2px solid var(--color-border-focus);
10347
+ outline-offset: 2px;
10348
+ color: var(--color-text-default-default);
10349
+ }
10350
+
10351
+ .muka-combobox--disabled ~ .muka-combobox__actions,
10352
+ .muka-combobox:disabled ~ .muka-combobox__actions {
10353
+ opacity: 0.5;
10354
+ }
10355
+
10214
10356
  /* ─── Picker sheet body ───────────────────────────────── */
10215
10357
 
10216
10358
  .muka-combobox__picker {
@@ -11020,7 +11162,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
11020
11162
  align-items: stretch;
11021
11163
  gap: var(--spacing-8);
11022
11164
  width: 100%;
11023
- max-width: var(--container-max-width-sm);
11165
+ max-width: var(--chat-column-max-width);
11024
11166
  margin: 0 auto;
11025
11167
  }
11026
11168
 
@@ -11106,7 +11248,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
11106
11248
  * no length measuring needed (Figma `Text length` on 5355:44091).
11107
11249
  */
11108
11250
  width: fit-content;
11109
- max-width: var(--chatbubble-max-width);
11251
+ /*
11252
+ * Stops short of the far edge at every width: the fixed cap once the
11253
+ * conversation column reaches its own cap, the ratio below that, where the
11254
+ * column runs full-bleed. Without that gap a long `own` bubble spans the
11255
+ * column and reads no differently from a `peer` one.
11256
+ */
11257
+ max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
11110
11258
  position: relative;
11111
11259
  display: flex;
11112
11260
  flex-direction: column;
@@ -12229,19 +12377,34 @@ button.muka-chat-photo-grid__tile:focus-visible {
12229
12377
 
12230
12378
  .muka-bottombar--chat .muka-bottombar__content {
12231
12379
  flex-direction: row;
12232
- max-width: var(--bottombar-chat-max-width);
12233
12380
  width: 100%;
12234
12381
  margin: 0 auto;
12235
12382
  }
12236
12383
 
12237
- /* Docked chat pads its content; the floating card supplies its own padding. */
12384
+ /*
12385
+ * `--bottombar-chat-max-width` is the conversation column (it derives from
12386
+ * `chat.column.max-width`, the same token `ChatMessageList` caps its column
12387
+ * with). The cap here carries the padding on top of it, so it is the
12388
+ * composer's own edges — not the padding around it — that land on the column.
12389
+ */
12390
+
12391
+ /*
12392
+ * Docked chat pads its content; the floating card supplies its own padding.
12393
+ * The inline half is the section gutter `ChatMessageList` pads its scroller
12394
+ * with, so below the cap — where the column runs full-bleed — the composer
12395
+ * keeps to the same gutters as the messages.
12396
+ */
12238
12397
  .muka-bottombar--chat:not(.muka-bottombar--floating) .muka-bottombar__content {
12239
- padding: var(--bottombar-chat-padding);
12398
+ padding: var(--bottombar-chat-padding)
12399
+ var(--section-padding-horizontal-default, var(--spacing-4));
12400
+ max-width: calc(
12401
+ var(--bottombar-chat-max-width) + 2 * var(--section-padding-horizontal-default, var(--spacing-4))
12402
+ );
12240
12403
  }
12241
12404
 
12242
12405
  /* Floating chat card widens to the chat cap (overrides the md default below). */
12243
12406
  .muka-bottombar--chat.muka-bottombar--floating .muka-bottombar__content {
12244
- max-width: var(--bottombar-chat-max-width);
12407
+ max-width: calc(var(--bottombar-chat-max-width) + 2 * var(--bottombar-floating-padding));
12245
12408
  }
12246
12409
 
12247
12410
  /* ─── Tab item ────────────────────────────────────────── */
@@ -13323,6 +13486,148 @@ button.muka-chat-photo-grid__tile:focus-visible {
13323
13486
  }
13324
13487
 
13325
13488
 
13489
+ /* ActionSheet */
13490
+ /* ActionSheet Component Styles */
13491
+
13492
+ .muka-action-sheet__inner {
13493
+ display: flex;
13494
+ flex-direction: column;
13495
+ padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13496
+ gap: var(--spacing-3);
13497
+ }
13498
+
13499
+ /* ─── Header ──────────────────────────────────────────── */
13500
+
13501
+ .muka-action-sheet__header {
13502
+ display: flex;
13503
+ flex-direction: column;
13504
+ align-items: center;
13505
+ gap: var(--spacing-1);
13506
+ padding: var(--spacing-2) 0 var(--spacing-3);
13507
+ text-align: center;
13508
+ }
13509
+
13510
+ .muka-action-sheet__title {
13511
+ margin: 0;
13512
+ color: var(--color-text-default-default);
13513
+ font-family: var(--text-label-md-semibold-fontFamily);
13514
+ font-weight: var(--text-label-md-semibold-fontWeight);
13515
+ font-size: var(--text-label-md-semibold-fontSize);
13516
+ line-height: var(--text-label-md-semibold-lineHeight);
13517
+ }
13518
+
13519
+ .muka-action-sheet__description {
13520
+ margin: 0;
13521
+ color: var(--color-text-subtle-default);
13522
+ font-family: var(--text-body-sm-regular-fontFamily);
13523
+ font-weight: var(--text-body-sm-regular-fontWeight);
13524
+ font-size: var(--text-body-sm-regular-fontSize);
13525
+ line-height: var(--text-body-sm-regular-lineHeight);
13526
+ }
13527
+
13528
+ /* ─── Actions group ───────────────────────────────────── */
13529
+
13530
+ .muka-action-sheet__actions {
13531
+ display: flex;
13532
+ flex-direction: column;
13533
+ background-color: var(--color-surface-level1);
13534
+ border-radius: var(--radius-md);
13535
+ overflow: hidden;
13536
+ }
13537
+
13538
+ .muka-action-sheet__item {
13539
+ display: flex;
13540
+ align-items: center;
13541
+ gap: var(--spacing-3);
13542
+ padding: var(--spacing-3) var(--spacing-4);
13543
+ background: none;
13544
+ border: none;
13545
+ cursor: pointer;
13546
+ text-align: left;
13547
+ color: var(--color-text-default-default);
13548
+ font-family: var(--text-body-md-regular-fontFamily);
13549
+ font-weight: var(--text-body-md-regular-fontWeight);
13550
+ font-size: var(--text-body-md-regular-fontSize);
13551
+ line-height: var(--text-body-md-regular-lineHeight);
13552
+ -webkit-tap-highlight-color: transparent;
13553
+ transition: background-color 0.12s ease;
13554
+ }
13555
+
13556
+ .muka-action-sheet__item + .muka-action-sheet__item {
13557
+ border-top: var(--border-width-regular) solid var(--color-border-default);
13558
+ }
13559
+
13560
+ .muka-action-sheet__item:hover:not(:disabled) {
13561
+ background-color: var(--color-surface-level2);
13562
+ }
13563
+
13564
+ .muka-action-sheet__item:active:not(:disabled) {
13565
+ background-color: var(--color-surface-level3);
13566
+ }
13567
+
13568
+ .muka-action-sheet__item:focus-visible {
13569
+ outline: 2px solid var(--color-action-default);
13570
+ outline-offset: -2px;
13571
+ }
13572
+
13573
+ .muka-action-sheet__item--destructive {
13574
+ color: var(--color-state-error-default);
13575
+ }
13576
+
13577
+ .muka-action-sheet__item--disabled,
13578
+ .muka-action-sheet__item:disabled {
13579
+ opacity: 0.5;
13580
+ cursor: not-allowed;
13581
+ }
13582
+
13583
+ .muka-action-sheet__item-icon {
13584
+ display: inline-flex;
13585
+ align-items: center;
13586
+ justify-content: center;
13587
+ width: 24px;
13588
+ height: 24px;
13589
+ flex-shrink: 0;
13590
+ }
13591
+
13592
+ .muka-action-sheet__item-icon svg {
13593
+ width: 100%;
13594
+ height: 100%;
13595
+ }
13596
+
13597
+ .muka-action-sheet__item-label {
13598
+ flex: 1;
13599
+ }
13600
+
13601
+ /* ─── Cancel button (separate at bottom) ──────────────── */
13602
+
13603
+ .muka-action-sheet__cancel {
13604
+ display: flex;
13605
+ align-items: center;
13606
+ justify-content: center;
13607
+ padding: var(--spacing-3) var(--spacing-4);
13608
+ background-color: var(--color-surface-level1);
13609
+ border: none;
13610
+ border-radius: var(--radius-md);
13611
+ cursor: pointer;
13612
+ color: var(--color-text-default-default);
13613
+ font-family: var(--text-label-md-semibold-fontFamily);
13614
+ font-weight: var(--text-label-md-semibold-fontWeight);
13615
+ font-size: var(--text-label-md-semibold-fontSize);
13616
+ line-height: var(--text-label-md-semibold-lineHeight);
13617
+ -webkit-tap-highlight-color: transparent;
13618
+ transition: background-color 0.12s ease;
13619
+ }
13620
+
13621
+ .muka-action-sheet__cancel:hover {
13622
+ background-color: var(--color-surface-level2);
13623
+ }
13624
+
13625
+ .muka-action-sheet__cancel:focus-visible {
13626
+ outline: 2px solid var(--color-action-default);
13627
+ outline-offset: 2px;
13628
+ }
13629
+
13630
+
13326
13631
  /* AgentTaskList */
13327
13632
  /* AgentTaskList Component Styles */
13328
13633
 
@@ -13492,148 +13797,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13492
13797
  }
13493
13798
 
13494
13799
 
13495
- /* ActionSheet */
13496
- /* ActionSheet Component Styles */
13497
-
13498
- .muka-action-sheet__inner {
13499
- display: flex;
13500
- flex-direction: column;
13501
- padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13502
- gap: var(--spacing-3);
13503
- }
13504
-
13505
- /* ─── Header ──────────────────────────────────────────── */
13506
-
13507
- .muka-action-sheet__header {
13508
- display: flex;
13509
- flex-direction: column;
13510
- align-items: center;
13511
- gap: var(--spacing-1);
13512
- padding: var(--spacing-2) 0 var(--spacing-3);
13513
- text-align: center;
13514
- }
13515
-
13516
- .muka-action-sheet__title {
13517
- margin: 0;
13518
- color: var(--color-text-default-default);
13519
- font-family: var(--text-label-md-semibold-fontFamily);
13520
- font-weight: var(--text-label-md-semibold-fontWeight);
13521
- font-size: var(--text-label-md-semibold-fontSize);
13522
- line-height: var(--text-label-md-semibold-lineHeight);
13523
- }
13524
-
13525
- .muka-action-sheet__description {
13526
- margin: 0;
13527
- color: var(--color-text-subtle-default);
13528
- font-family: var(--text-body-sm-regular-fontFamily);
13529
- font-weight: var(--text-body-sm-regular-fontWeight);
13530
- font-size: var(--text-body-sm-regular-fontSize);
13531
- line-height: var(--text-body-sm-regular-lineHeight);
13532
- }
13533
-
13534
- /* ─── Actions group ───────────────────────────────────── */
13535
-
13536
- .muka-action-sheet__actions {
13537
- display: flex;
13538
- flex-direction: column;
13539
- background-color: var(--color-surface-level1);
13540
- border-radius: var(--radius-md);
13541
- overflow: hidden;
13542
- }
13543
-
13544
- .muka-action-sheet__item {
13545
- display: flex;
13546
- align-items: center;
13547
- gap: var(--spacing-3);
13548
- padding: var(--spacing-3) var(--spacing-4);
13549
- background: none;
13550
- border: none;
13551
- cursor: pointer;
13552
- text-align: left;
13553
- color: var(--color-text-default-default);
13554
- font-family: var(--text-body-md-regular-fontFamily);
13555
- font-weight: var(--text-body-md-regular-fontWeight);
13556
- font-size: var(--text-body-md-regular-fontSize);
13557
- line-height: var(--text-body-md-regular-lineHeight);
13558
- -webkit-tap-highlight-color: transparent;
13559
- transition: background-color 0.12s ease;
13560
- }
13561
-
13562
- .muka-action-sheet__item + .muka-action-sheet__item {
13563
- border-top: var(--border-width-regular) solid var(--color-border-default);
13564
- }
13565
-
13566
- .muka-action-sheet__item:hover:not(:disabled) {
13567
- background-color: var(--color-surface-level2);
13568
- }
13569
-
13570
- .muka-action-sheet__item:active:not(:disabled) {
13571
- background-color: var(--color-surface-level3);
13572
- }
13573
-
13574
- .muka-action-sheet__item:focus-visible {
13575
- outline: 2px solid var(--color-action-default);
13576
- outline-offset: -2px;
13577
- }
13578
-
13579
- .muka-action-sheet__item--destructive {
13580
- color: var(--color-state-error-default);
13581
- }
13582
-
13583
- .muka-action-sheet__item--disabled,
13584
- .muka-action-sheet__item:disabled {
13585
- opacity: 0.5;
13586
- cursor: not-allowed;
13587
- }
13588
-
13589
- .muka-action-sheet__item-icon {
13590
- display: inline-flex;
13591
- align-items: center;
13592
- justify-content: center;
13593
- width: 24px;
13594
- height: 24px;
13595
- flex-shrink: 0;
13596
- }
13597
-
13598
- .muka-action-sheet__item-icon svg {
13599
- width: 100%;
13600
- height: 100%;
13601
- }
13602
-
13603
- .muka-action-sheet__item-label {
13604
- flex: 1;
13605
- }
13606
-
13607
- /* ─── Cancel button (separate at bottom) ──────────────── */
13608
-
13609
- .muka-action-sheet__cancel {
13610
- display: flex;
13611
- align-items: center;
13612
- justify-content: center;
13613
- padding: var(--spacing-3) var(--spacing-4);
13614
- background-color: var(--color-surface-level1);
13615
- border: none;
13616
- border-radius: var(--radius-md);
13617
- cursor: pointer;
13618
- color: var(--color-text-default-default);
13619
- font-family: var(--text-label-md-semibold-fontFamily);
13620
- font-weight: var(--text-label-md-semibold-fontWeight);
13621
- font-size: var(--text-label-md-semibold-fontSize);
13622
- line-height: var(--text-label-md-semibold-lineHeight);
13623
- -webkit-tap-highlight-color: transparent;
13624
- transition: background-color 0.12s ease;
13625
- }
13626
-
13627
- .muka-action-sheet__cancel:hover {
13628
- background-color: var(--color-surface-level2);
13629
- }
13630
-
13631
- .muka-action-sheet__cancel:focus-visible {
13632
- outline: 2px solid var(--color-action-default);
13633
- outline-offset: 2px;
13634
- }
13635
-
13636
-
13637
13800
  /* Accordion */
13638
13801
  /* Accordion Component Styles */
13639
13802