@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
@@ -1693,7 +1693,9 @@ body {
1693
1693
  --card-border-hover: 0.0625rem solid #d0cdd7;
1694
1694
  --card-border-pressed: 0.125rem solid #3e63dd;
1695
1695
  --card-border-selected: 0.125rem solid #3e63dd;
1696
- --chatbubble-max-width: 640px;
1696
+ --chat-column-max-width: 768px;
1697
+ --chatbubble-max-width: 37rem;
1698
+ --chatbubble-max-width-ratio: 77%;
1697
1699
  --chatbubble-radius: 0.75rem;
1698
1700
  --chatbubble-padding-block: 0.75rem;
1699
1701
  --chatbubble-padding-inline: 1rem;
@@ -2116,7 +2118,7 @@ body {
2116
2118
  --bottombar-floating-backdrop-start: transparent;
2117
2119
  --bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.027);
2118
2120
  --bottombar-floating-padding-top: 2rem;
2119
- --bottombar-chat-max-width: 1024px;
2121
+ --bottombar-chat-max-width: 768px;
2120
2122
  --bottombar-chat-padding: 0.75rem;
2121
2123
  --bottombar-tab-icon-size: 24px;
2122
2124
  --bottombar-tab-gap: 0.25rem;
@@ -2919,196 +2921,6 @@ body {
2919
2921
  }
2920
2922
 
2921
2923
 
2922
- /* Toast */
2923
- /* Toast Component Styles - Using Muka Design Tokens */
2924
-
2925
- .muka-toast {
2926
- display: flex;
2927
- align-items: flex-start;
2928
- gap: var(--toast-gap);
2929
- padding: var(--toast-padding-y) var(--toast-padding-x);
2930
- border-radius: var(--toast-radius);
2931
- box-shadow: var(--toast-shadow);
2932
- min-width: var(--toast-width-min);
2933
- max-width: var(--toast-width-max);
2934
- pointer-events: auto;
2935
- animation: muka-toast-slide-in 0.2s ease-out;
2936
- }
2937
-
2938
- /* Entry animation */
2939
- @keyframes muka-toast-slide-in {
2940
- from {
2941
- opacity: 0;
2942
- transform: translateY(8px);
2943
- }
2944
- to {
2945
- opacity: 1;
2946
- transform: translateY(0);
2947
- }
2948
- }
2949
-
2950
- /* Position variants (for standalone use - typically managed by ToastProvider) */
2951
- .muka-toast--top-right,
2952
- .muka-toast--top-left,
2953
- .muka-toast--top-center,
2954
- .muka-toast--bottom-right,
2955
- .muka-toast--bottom-left,
2956
- .muka-toast--bottom-center {
2957
- position: fixed;
2958
- z-index: 9999;
2959
- }
2960
-
2961
- .muka-toast--top-right {
2962
- top: var(--spacing-4);
2963
- right: var(--spacing-4);
2964
- }
2965
-
2966
- .muka-toast--top-left {
2967
- top: var(--spacing-4);
2968
- left: var(--spacing-4);
2969
- }
2970
-
2971
- .muka-toast--top-center {
2972
- top: var(--spacing-4);
2973
- left: 50%;
2974
- transform: translateX(-50%);
2975
- }
2976
-
2977
- .muka-toast--bottom-right {
2978
- bottom: var(--spacing-4);
2979
- right: var(--spacing-4);
2980
- }
2981
-
2982
- .muka-toast--bottom-left {
2983
- bottom: var(--spacing-4);
2984
- left: var(--spacing-4);
2985
- }
2986
-
2987
- .muka-toast--bottom-center {
2988
- bottom: var(--spacing-4);
2989
- left: 50%;
2990
- transform: translateX(-50%);
2991
- }
2992
-
2993
- /* Variant: Info */
2994
- .muka-toast--info {
2995
- background-color: var(--toast-color-info-background);
2996
- color: var(--toast-color-info-foreground);
2997
- }
2998
-
2999
- .muka-toast--info .muka-toast__icon {
3000
- color: var(--toast-color-info-accent);
3001
- }
3002
-
3003
- /* Variant: Success */
3004
- .muka-toast--success {
3005
- background-color: var(--toast-color-success-background);
3006
- color: var(--toast-color-success-foreground);
3007
- }
3008
-
3009
- .muka-toast--success .muka-toast__icon {
3010
- color: var(--toast-color-success-accent);
3011
- }
3012
-
3013
- /* Variant: Warning */
3014
- .muka-toast--warning {
3015
- background-color: var(--toast-color-warning-background);
3016
- color: var(--toast-color-warning-foreground);
3017
- }
3018
-
3019
- .muka-toast--warning .muka-toast__icon {
3020
- color: var(--toast-color-warning-accent);
3021
- }
3022
-
3023
- /* Variant: Error */
3024
- .muka-toast--error {
3025
- background-color: var(--toast-color-error-background);
3026
- color: var(--toast-color-error-foreground);
3027
- }
3028
-
3029
- .muka-toast--error .muka-toast__icon {
3030
- color: var(--toast-color-error-accent);
3031
- }
3032
-
3033
- /* Icon */
3034
- .muka-toast__icon {
3035
- display: flex;
3036
- align-items: center;
3037
- justify-content: center;
3038
- flex-shrink: 0;
3039
- width: var(--toast-icon-size);
3040
- height: var(--toast-icon-size);
3041
- }
3042
-
3043
- .muka-toast__icon svg {
3044
- width: 100%;
3045
- height: 100%;
3046
- }
3047
-
3048
- /* Content */
3049
- .muka-toast__content {
3050
- flex: 1;
3051
- min-width: 0;
3052
- }
3053
-
3054
- .muka-toast__title {
3055
- font-family: var(--text-label-md-semibold-fontFamily);
3056
- font-weight: var(--text-label-md-semibold-fontWeight);
3057
- font-size: var(--text-label-md-semibold-fontSize);
3058
- line-height: var(--text-label-md-semibold-lineHeight);
3059
- margin-bottom: var(--spacing-1);
3060
- }
3061
-
3062
- .muka-toast__message {
3063
- font-family: var(--text-body-sm-regular-fontFamily);
3064
- font-weight: var(--text-body-sm-regular-fontWeight);
3065
- font-size: var(--text-body-sm-regular-fontSize);
3066
- line-height: var(--text-body-sm-regular-lineHeight);
3067
- }
3068
-
3069
- /* Action slot */
3070
- .muka-toast__action {
3071
- display: flex;
3072
- align-items: center;
3073
- flex-shrink: 0;
3074
- }
3075
-
3076
- /* Dismiss button */
3077
- .muka-toast__dismiss {
3078
- display: flex;
3079
- align-items: center;
3080
- justify-content: center;
3081
- flex-shrink: 0;
3082
- width: 24px;
3083
- height: 24px;
3084
- padding: 0;
3085
- margin: -2px -4px -2px 0;
3086
- border: none;
3087
- background: transparent;
3088
- color: inherit;
3089
- opacity: 0.7;
3090
- cursor: pointer;
3091
- border-radius: var(--border-radius-sm);
3092
- transition: opacity 0.15s ease, background-color 0.15s ease;
3093
- }
3094
-
3095
- .muka-toast__dismiss:hover {
3096
- opacity: 1;
3097
- background-color: rgba(0, 0, 0, 0.05);
3098
- }
3099
-
3100
- .muka-toast__dismiss:focus-visible {
3101
- outline: 2px solid var(--color-border-focus);
3102
- outline-offset: 2px;
3103
- opacity: 1;
3104
- }
3105
-
3106
- .muka-toast__dismiss svg {
3107
- width: 16px;
3108
- height: 16px;
3109
- }
3110
-
3111
-
3112
2924
  /* Tile */
3113
2925
  /* Tile Component Styles - Using Muka Design Tokens */
3114
2926
 
@@ -3470,45 +3282,235 @@ body {
3470
3282
  }
3471
3283
 
3472
3284
 
3473
- /* Thumbnail */
3474
- /* Thumbnail Component Styles - Using Muka Design Tokens */
3285
+ /* Toast */
3286
+ /* Toast Component Styles - Using Muka Design Tokens */
3475
3287
 
3476
- .muka-thumbnail {
3477
- position: relative;
3478
- flex-shrink: 0;
3288
+ .muka-toast {
3289
+ display: flex;
3290
+ align-items: flex-start;
3291
+ gap: var(--toast-gap);
3292
+ padding: var(--toast-padding-y) var(--toast-padding-x);
3293
+ border-radius: var(--toast-radius);
3294
+ box-shadow: var(--toast-shadow);
3295
+ min-width: var(--toast-width-min);
3296
+ max-width: var(--toast-width-max);
3297
+ pointer-events: auto;
3298
+ animation: muka-toast-slide-in 0.2s ease-out;
3479
3299
  }
3480
3300
 
3481
- /* The frame carries the border, background and shape clip. Keeping it separate
3482
- from the root lets the remove (×) button sit outside the clip (needed for the
3483
- circular/ellipse shape, whose corners would otherwise clip the button). */
3484
- .muka-thumbnail__frame {
3485
- position: absolute;
3486
- inset: 0;
3487
- overflow: hidden;
3488
- border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
3489
- border-radius: var(--border-radius-lg);
3490
- background-color: var(--color-surface-level1);
3301
+ /* Entry animation */
3302
+ @keyframes muka-toast-slide-in {
3303
+ from {
3304
+ opacity: 0;
3305
+ transform: translateY(8px);
3306
+ }
3307
+ to {
3308
+ opacity: 1;
3309
+ transform: translateY(0);
3310
+ }
3491
3311
  }
3492
3312
 
3493
- /* ─── Shapes ──────────────────────────────────────────── */
3494
- .muka-thumbnail--4-3 {
3495
- width: 160px;
3496
- height: 120px;
3313
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
3314
+ .muka-toast--top-right,
3315
+ .muka-toast--top-left,
3316
+ .muka-toast--top-center,
3317
+ .muka-toast--bottom-right,
3318
+ .muka-toast--bottom-left,
3319
+ .muka-toast--bottom-center {
3320
+ position: fixed;
3321
+ z-index: 9999;
3497
3322
  }
3498
3323
 
3499
- .muka-thumbnail--1-1 {
3500
- width: 120px;
3501
- height: 120px;
3324
+ .muka-toast--top-right {
3325
+ top: var(--spacing-4);
3326
+ right: var(--spacing-4);
3502
3327
  }
3503
3328
 
3504
- .muka-thumbnail--ellipse {
3505
- width: 120px;
3506
- height: 120px;
3329
+ .muka-toast--top-left {
3330
+ top: var(--spacing-4);
3331
+ left: var(--spacing-4);
3507
3332
  }
3508
3333
 
3509
- .muka-thumbnail--ellipse .muka-thumbnail__frame {
3510
- border-radius: var(--border-radius-full);
3511
- }
3334
+ .muka-toast--top-center {
3335
+ top: var(--spacing-4);
3336
+ left: 50%;
3337
+ transform: translateX(-50%);
3338
+ }
3339
+
3340
+ .muka-toast--bottom-right {
3341
+ bottom: var(--spacing-4);
3342
+ right: var(--spacing-4);
3343
+ }
3344
+
3345
+ .muka-toast--bottom-left {
3346
+ bottom: var(--spacing-4);
3347
+ left: var(--spacing-4);
3348
+ }
3349
+
3350
+ .muka-toast--bottom-center {
3351
+ bottom: var(--spacing-4);
3352
+ left: 50%;
3353
+ transform: translateX(-50%);
3354
+ }
3355
+
3356
+ /* Variant: Info */
3357
+ .muka-toast--info {
3358
+ background-color: var(--toast-color-info-background);
3359
+ color: var(--toast-color-info-foreground);
3360
+ }
3361
+
3362
+ .muka-toast--info .muka-toast__icon {
3363
+ color: var(--toast-color-info-accent);
3364
+ }
3365
+
3366
+ /* Variant: Success */
3367
+ .muka-toast--success {
3368
+ background-color: var(--toast-color-success-background);
3369
+ color: var(--toast-color-success-foreground);
3370
+ }
3371
+
3372
+ .muka-toast--success .muka-toast__icon {
3373
+ color: var(--toast-color-success-accent);
3374
+ }
3375
+
3376
+ /* Variant: Warning */
3377
+ .muka-toast--warning {
3378
+ background-color: var(--toast-color-warning-background);
3379
+ color: var(--toast-color-warning-foreground);
3380
+ }
3381
+
3382
+ .muka-toast--warning .muka-toast__icon {
3383
+ color: var(--toast-color-warning-accent);
3384
+ }
3385
+
3386
+ /* Variant: Error */
3387
+ .muka-toast--error {
3388
+ background-color: var(--toast-color-error-background);
3389
+ color: var(--toast-color-error-foreground);
3390
+ }
3391
+
3392
+ .muka-toast--error .muka-toast__icon {
3393
+ color: var(--toast-color-error-accent);
3394
+ }
3395
+
3396
+ /* Icon */
3397
+ .muka-toast__icon {
3398
+ display: flex;
3399
+ align-items: center;
3400
+ justify-content: center;
3401
+ flex-shrink: 0;
3402
+ width: var(--toast-icon-size);
3403
+ height: var(--toast-icon-size);
3404
+ }
3405
+
3406
+ .muka-toast__icon svg {
3407
+ width: 100%;
3408
+ height: 100%;
3409
+ }
3410
+
3411
+ /* Content */
3412
+ .muka-toast__content {
3413
+ flex: 1;
3414
+ min-width: 0;
3415
+ }
3416
+
3417
+ .muka-toast__title {
3418
+ font-family: var(--text-label-md-semibold-fontFamily);
3419
+ font-weight: var(--text-label-md-semibold-fontWeight);
3420
+ font-size: var(--text-label-md-semibold-fontSize);
3421
+ line-height: var(--text-label-md-semibold-lineHeight);
3422
+ margin-bottom: var(--spacing-1);
3423
+ }
3424
+
3425
+ .muka-toast__message {
3426
+ font-family: var(--text-body-sm-regular-fontFamily);
3427
+ font-weight: var(--text-body-sm-regular-fontWeight);
3428
+ font-size: var(--text-body-sm-regular-fontSize);
3429
+ line-height: var(--text-body-sm-regular-lineHeight);
3430
+ }
3431
+
3432
+ /* Action slot */
3433
+ .muka-toast__action {
3434
+ display: flex;
3435
+ align-items: center;
3436
+ flex-shrink: 0;
3437
+ }
3438
+
3439
+ /* Dismiss button */
3440
+ .muka-toast__dismiss {
3441
+ display: flex;
3442
+ align-items: center;
3443
+ justify-content: center;
3444
+ flex-shrink: 0;
3445
+ width: 24px;
3446
+ height: 24px;
3447
+ padding: 0;
3448
+ margin: -2px -4px -2px 0;
3449
+ border: none;
3450
+ background: transparent;
3451
+ color: inherit;
3452
+ opacity: 0.7;
3453
+ cursor: pointer;
3454
+ border-radius: var(--border-radius-sm);
3455
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3456
+ }
3457
+
3458
+ .muka-toast__dismiss:hover {
3459
+ opacity: 1;
3460
+ background-color: rgba(0, 0, 0, 0.05);
3461
+ }
3462
+
3463
+ .muka-toast__dismiss:focus-visible {
3464
+ outline: 2px solid var(--color-border-focus);
3465
+ outline-offset: 2px;
3466
+ opacity: 1;
3467
+ }
3468
+
3469
+ .muka-toast__dismiss svg {
3470
+ width: 16px;
3471
+ height: 16px;
3472
+ }
3473
+
3474
+
3475
+ /* Thumbnail */
3476
+ /* Thumbnail Component Styles - Using Muka Design Tokens */
3477
+
3478
+ .muka-thumbnail {
3479
+ position: relative;
3480
+ flex-shrink: 0;
3481
+ }
3482
+
3483
+ /* The frame carries the border, background and shape clip. Keeping it separate
3484
+ from the root lets the remove (×) button sit outside the clip (needed for the
3485
+ circular/ellipse shape, whose corners would otherwise clip the button). */
3486
+ .muka-thumbnail__frame {
3487
+ position: absolute;
3488
+ inset: 0;
3489
+ overflow: hidden;
3490
+ border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
3491
+ border-radius: var(--border-radius-lg);
3492
+ background-color: var(--color-surface-level1);
3493
+ }
3494
+
3495
+ /* ─── Shapes ──────────────────────────────────────────── */
3496
+ .muka-thumbnail--4-3 {
3497
+ width: 160px;
3498
+ height: 120px;
3499
+ }
3500
+
3501
+ .muka-thumbnail--1-1 {
3502
+ width: 120px;
3503
+ height: 120px;
3504
+ }
3505
+
3506
+ .muka-thumbnail--ellipse {
3507
+ width: 120px;
3508
+ height: 120px;
3509
+ }
3510
+
3511
+ .muka-thumbnail--ellipse .muka-thumbnail__frame {
3512
+ border-radius: var(--border-radius-full);
3513
+ }
3512
3514
 
3513
3515
  /* Image fills the frame, cropped to cover. Sits at scale(1) by default so the
3514
3516
  interactive hover zoom has a clean origin. */
@@ -3808,6 +3810,88 @@ body {
3808
3810
  }
3809
3811
 
3810
3812
 
3813
+ /* TextLink */
3814
+ /* TextLink Component Styles - Using Muka Design Tokens */
3815
+
3816
+ .muka-text-link {
3817
+ display: inline;
3818
+ cursor: pointer;
3819
+ text-decoration: underline;
3820
+ /* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
3821
+ text-underline-offset: 0.2em;
3822
+ text-decoration-thickness: from-font;
3823
+ /* Rounds the focus ring's corners; the link itself has no visible box. */
3824
+ border-radius: var(--border-radius-sm);
3825
+ transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
3826
+ }
3827
+
3828
+ /* ─── Sizes ───────────────────────────────────────────────
3829
+ Mirrors the body text scale so a link matches the copy it sits in. */
3830
+ .muka-text-link--sm {
3831
+ font-family: var(--text-body-sm-regular-fontFamily);
3832
+ font-weight: var(--text-body-sm-regular-fontWeight);
3833
+ font-size: var(--text-body-sm-regular-fontSize);
3834
+ line-height: var(--text-body-sm-regular-lineHeight);
3835
+ }
3836
+
3837
+ .muka-text-link--base {
3838
+ font-family: var(--text-body-base-regular-fontFamily);
3839
+ font-weight: var(--text-body-base-regular-fontWeight);
3840
+ font-size: var(--text-body-base-regular-fontSize);
3841
+ line-height: var(--text-body-base-regular-lineHeight);
3842
+ }
3843
+
3844
+ .muka-text-link--lg {
3845
+ font-family: var(--text-body-lg-regular-fontFamily);
3846
+ font-weight: var(--text-body-lg-regular-fontWeight);
3847
+ font-size: var(--text-body-lg-regular-fontSize);
3848
+ line-height: var(--text-body-lg-regular-lineHeight);
3849
+ }
3850
+
3851
+ /* ─── Variant: default (accent) ───────────────────────────
3852
+ Visited repeats the default colour on purpose: the design treats visited and
3853
+ default the same, and pinning it stops the browser's purple from showing. */
3854
+ .muka-text-link--default,
3855
+ .muka-text-link--default:visited {
3856
+ color: var(--color-text-action-default);
3857
+ }
3858
+
3859
+ .muka-text-link--default:hover,
3860
+ .muka-text-link--default:focus-visible {
3861
+ color: var(--color-text-action-hover);
3862
+ }
3863
+
3864
+ .muka-text-link--default:active {
3865
+ color: var(--color-text-action-pressed);
3866
+ }
3867
+
3868
+ /* ─── Variant: subtle (neutral) ───────────────────────────
3869
+ Hover, focus and pressed all darken to the default text colour. */
3870
+ .muka-text-link--subtle,
3871
+ .muka-text-link--subtle:visited {
3872
+ color: var(--color-text-subtle-default);
3873
+ }
3874
+
3875
+ .muka-text-link--subtle:hover,
3876
+ .muka-text-link--subtle:focus-visible,
3877
+ .muka-text-link--subtle:active {
3878
+ color: var(--color-text-default-default);
3879
+ }
3880
+
3881
+ /* ─── Focus ───────────────────────────────────────────────
3882
+ Same ring as every other focusable Muka component. */
3883
+ .muka-text-link:focus-visible {
3884
+ outline: 2px solid var(--color-border-focus);
3885
+ outline-offset: 2px;
3886
+ }
3887
+
3888
+ @media (prefers-reduced-motion: reduce) {
3889
+ .muka-text-link {
3890
+ transition: none;
3891
+ }
3892
+ }
3893
+
3894
+
3811
3895
  /* Tabs */
3812
3896
  /* Tabs Component Styles - Clean underline style tabs matching Figma */
3813
3897
 
@@ -5327,29 +5411,6 @@ body {
5327
5411
  }
5328
5412
 
5329
5413
 
5330
- /* Section */
5331
- /* Section Component - Layout tokens (section.padding) */
5332
-
5333
- .muka-section {
5334
- box-sizing: border-box;
5335
- }
5336
-
5337
- .muka-section--padding-compact {
5338
- padding-block: var(--section-padding-vertical-compact);
5339
- padding-inline: var(--section-padding-horizontal-compact);
5340
- }
5341
-
5342
- .muka-section--padding-default {
5343
- padding-block: var(--section-padding-vertical-default);
5344
- padding-inline: var(--section-padding-horizontal-default);
5345
- }
5346
-
5347
- .muka-section--padding-spacious {
5348
- padding-block: var(--section-padding-vertical-spacious);
5349
- padding-inline: var(--section-padding-horizontal-spacious);
5350
- }
5351
-
5352
-
5353
5414
  /* SearchInput */
5354
5415
  /* SearchInput Component Styles */
5355
5416
 
@@ -5519,11 +5580,34 @@ body {
5519
5580
  }
5520
5581
 
5521
5582
 
5522
- /* RangeSlider */
5523
- /* RangeSlider Component Styles - Using Muka Design Tokens */
5583
+ /* Section */
5584
+ /* Section Component - Layout tokens (section.padding) */
5524
5585
 
5525
- .muka-range-slider {
5526
- display: flex;
5586
+ .muka-section {
5587
+ box-sizing: border-box;
5588
+ }
5589
+
5590
+ .muka-section--padding-compact {
5591
+ padding-block: var(--section-padding-vertical-compact);
5592
+ padding-inline: var(--section-padding-horizontal-compact);
5593
+ }
5594
+
5595
+ .muka-section--padding-default {
5596
+ padding-block: var(--section-padding-vertical-default);
5597
+ padding-inline: var(--section-padding-horizontal-default);
5598
+ }
5599
+
5600
+ .muka-section--padding-spacious {
5601
+ padding-block: var(--section-padding-vertical-spacious);
5602
+ padding-inline: var(--section-padding-horizontal-spacious);
5603
+ }
5604
+
5605
+
5606
+ /* RangeSlider */
5607
+ /* RangeSlider Component Styles - Using Muka Design Tokens */
5608
+
5609
+ .muka-range-slider {
5610
+ display: flex;
5527
5611
  flex-direction: column;
5528
5612
  gap: var(--spacing-1);
5529
5613
  width: 100%;
@@ -7071,36 +7155,6 @@ body {
7071
7155
  }
7072
7156
 
7073
7157
 
7074
- /* NumberInput */
7075
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
7076
- /* Only the prefix/suffix affixes are NumberInput-specific. */
7077
-
7078
- .muka-numberinput__addon {
7079
- display: inline-flex;
7080
- align-items: center;
7081
- flex: none;
7082
- color: var(--color-text-subtle-default);
7083
- font-family: var(--text-input-md-fontFamily);
7084
- font-size: var(--text-input-md-fontSize);
7085
- line-height: var(--text-input-md-lineHeight);
7086
- user-select: none;
7087
- pointer-events: none;
7088
- white-space: nowrap;
7089
- }
7090
-
7091
- /* Hide the native number spinners — affixes/step API replace them. */
7092
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7093
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7094
- -webkit-appearance: none;
7095
- margin: 0;
7096
- }
7097
-
7098
- .muka-numberinput__field .muka-input__native {
7099
- -moz-appearance: textfield;
7100
- appearance: textfield;
7101
- }
7102
-
7103
-
7104
7158
  /* Pagination */
7105
7159
  /* Pagination Component Styles */
7106
7160
 
@@ -7203,6 +7257,36 @@ body {
7203
7257
  }
7204
7258
 
7205
7259
 
7260
+ /* NumberInput */
7261
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
7262
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
7263
+
7264
+ .muka-numberinput__addon {
7265
+ display: inline-flex;
7266
+ align-items: center;
7267
+ flex: none;
7268
+ color: var(--color-text-subtle-default);
7269
+ font-family: var(--text-input-md-fontFamily);
7270
+ font-size: var(--text-input-md-fontSize);
7271
+ line-height: var(--text-input-md-lineHeight);
7272
+ user-select: none;
7273
+ pointer-events: none;
7274
+ white-space: nowrap;
7275
+ }
7276
+
7277
+ /* Hide the native number spinners — affixes/step API replace them. */
7278
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7279
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7280
+ -webkit-appearance: none;
7281
+ margin: 0;
7282
+ }
7283
+
7284
+ .muka-numberinput__field .muka-input__native {
7285
+ -moz-appearance: textfield;
7286
+ appearance: textfield;
7287
+ }
7288
+
7289
+
7206
7290
  /* NavigationTransition */
7207
7291
  /* NavigationTransition Component Styles */
7208
7292
 
@@ -8158,26 +8242,6 @@ li.muka-listitem {
8158
8242
  }
8159
8243
 
8160
8244
 
8161
- /* Form */
8162
- .muka-form {
8163
- display: flex;
8164
- flex-direction: column;
8165
- width: 100%;
8166
- }
8167
-
8168
- .muka-form--gap-sm {
8169
- gap: var(--size-sm);
8170
- }
8171
-
8172
- .muka-form--gap-md {
8173
- gap: var(--size-md);
8174
- }
8175
-
8176
- .muka-form--gap-lg {
8177
- gap: var(--size-lg);
8178
- }
8179
-
8180
-
8181
8245
  /* Icon */
8182
8246
  /* Icon Component Styles - Using Muka Design Tokens */
8183
8247
 
@@ -8232,6 +8296,26 @@ li.muka-listitem {
8232
8296
  }
8233
8297
 
8234
8298
 
8299
+ /* Form */
8300
+ .muka-form {
8301
+ display: flex;
8302
+ flex-direction: column;
8303
+ width: 100%;
8304
+ }
8305
+
8306
+ .muka-form--gap-sm {
8307
+ gap: var(--size-sm);
8308
+ }
8309
+
8310
+ .muka-form--gap-md {
8311
+ gap: var(--size-md);
8312
+ }
8313
+
8314
+ .muka-form--gap-lg {
8315
+ gap: var(--size-lg);
8316
+ }
8317
+
8318
+
8235
8319
  /* FileUpload */
8236
8320
  /* FileUpload Component Styles */
8237
8321
 
@@ -10152,6 +10236,19 @@ li.muka-listitem {
10152
10236
  /* Combobox */
10153
10237
  /* Combobox Component Styles */
10154
10238
 
10239
+ /* ─── Trigger group (positioning context for the trailing controls) ── */
10240
+
10241
+ /*
10242
+ * The clear control is a sibling of the trigger, not a child (a <button> may
10243
+ * not contain interactive content), so it is overlaid on the trigger's trailing
10244
+ * padding. The trigger reserves that space with padding-right below.
10245
+ */
10246
+ .muka-combobox__trigger-group {
10247
+ position: relative;
10248
+ display: block;
10249
+ width: 100%;
10250
+ }
10251
+
10155
10252
  /* ─── Trigger (looks like an Input field, behaves like a button) ── */
10156
10253
 
10157
10254
  .muka-combobox {
@@ -10159,7 +10256,7 @@ li.muka-listitem {
10159
10256
  align-items: center;
10160
10257
  gap: var(--spacing-2);
10161
10258
  width: 100%;
10162
- padding: 0 var(--input-field-padding-x);
10259
+ padding: 0 var(--muka-combobox-trailing-space) 0 var(--input-field-padding-x);
10163
10260
  background-color: var(--input-field-color-default-background);
10164
10261
  border: var(--border-width-regular) solid var(--input-field-color-default-border);
10165
10262
  color: var(--color-text-default-default);
@@ -10171,6 +10268,19 @@ li.muka-listitem {
10171
10268
  line-height: var(--text-body-md-regular-lineHeight);
10172
10269
  -webkit-tap-highlight-color: transparent;
10173
10270
  transition: border-color 0.12s ease;
10271
+
10272
+ /* Room for the chevron overlaid on the trailing edge. */
10273
+ --muka-combobox-trailing-space: calc(
10274
+ var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2)
10275
+ );
10276
+ }
10277
+
10278
+ /* …and for the clear button next to it, when one is rendered. */
10279
+ .muka-combobox--clearable {
10280
+ --muka-combobox-trailing-space: calc(
10281
+ var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2) +
10282
+ var(--icon-size-xs) + var(--spacing-1) * 2 + var(--spacing-2)
10283
+ );
10174
10284
  }
10175
10285
 
10176
10286
  .muka-combobox--sm {
@@ -10223,6 +10333,23 @@ li.muka-listitem {
10223
10333
  text-overflow: ellipsis;
10224
10334
  }
10225
10335
 
10336
+ /* ─── Trailing controls (clear + chevron) ─────────────── */
10337
+
10338
+ .muka-combobox__actions {
10339
+ position: absolute;
10340
+ top: 0;
10341
+ right: var(--input-field-padding-x);
10342
+ height: 100%;
10343
+ display: flex;
10344
+ align-items: center;
10345
+ gap: var(--spacing-2);
10346
+ /*
10347
+ * The strip sits on top of the trigger, so it must not swallow taps meant to
10348
+ * open the picker. Only the clear button takes pointer events back.
10349
+ */
10350
+ pointer-events: none;
10351
+ }
10352
+
10226
10353
  .muka-combobox__clear,
10227
10354
  .muka-combobox__chevron {
10228
10355
  display: inline-flex;
@@ -10233,9 +10360,13 @@ li.muka-listitem {
10233
10360
  }
10234
10361
 
10235
10362
  .muka-combobox__clear {
10363
+ pointer-events: auto;
10236
10364
  cursor: pointer;
10237
10365
  padding: var(--spacing-1);
10366
+ border: none;
10367
+ background: none;
10238
10368
  border-radius: var(--radius-sm);
10369
+ -webkit-tap-highlight-color: transparent;
10239
10370
  }
10240
10371
 
10241
10372
  .muka-combobox__clear:hover {
@@ -10243,6 +10374,17 @@ li.muka-listitem {
10243
10374
  background-color: var(--color-surface-level1);
10244
10375
  }
10245
10376
 
10377
+ .muka-combobox__clear:focus-visible {
10378
+ outline: 2px solid var(--color-border-focus);
10379
+ outline-offset: 2px;
10380
+ color: var(--color-text-default-default);
10381
+ }
10382
+
10383
+ .muka-combobox--disabled ~ .muka-combobox__actions,
10384
+ .muka-combobox:disabled ~ .muka-combobox__actions {
10385
+ opacity: 0.5;
10386
+ }
10387
+
10246
10388
  /* ─── Picker sheet body ───────────────────────────────── */
10247
10389
 
10248
10390
  .muka-combobox__picker {
@@ -11052,7 +11194,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
11052
11194
  align-items: stretch;
11053
11195
  gap: var(--spacing-8);
11054
11196
  width: 100%;
11055
- max-width: var(--container-max-width-sm);
11197
+ max-width: var(--chat-column-max-width);
11056
11198
  margin: 0 auto;
11057
11199
  }
11058
11200
 
@@ -11138,7 +11280,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
11138
11280
  * no length measuring needed (Figma `Text length` on 5355:44091).
11139
11281
  */
11140
11282
  width: fit-content;
11141
- max-width: var(--chatbubble-max-width);
11283
+ /*
11284
+ * Stops short of the far edge at every width: the fixed cap once the
11285
+ * conversation column reaches its own cap, the ratio below that, where the
11286
+ * column runs full-bleed. Without that gap a long `own` bubble spans the
11287
+ * column and reads no differently from a `peer` one.
11288
+ */
11289
+ max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
11142
11290
  position: relative;
11143
11291
  display: flex;
11144
11292
  flex-direction: column;
@@ -12261,19 +12409,34 @@ button.muka-chat-photo-grid__tile:focus-visible {
12261
12409
 
12262
12410
  .muka-bottombar--chat .muka-bottombar__content {
12263
12411
  flex-direction: row;
12264
- max-width: var(--bottombar-chat-max-width);
12265
12412
  width: 100%;
12266
12413
  margin: 0 auto;
12267
12414
  }
12268
12415
 
12269
- /* Docked chat pads its content; the floating card supplies its own padding. */
12416
+ /*
12417
+ * `--bottombar-chat-max-width` is the conversation column (it derives from
12418
+ * `chat.column.max-width`, the same token `ChatMessageList` caps its column
12419
+ * with). The cap here carries the padding on top of it, so it is the
12420
+ * composer's own edges — not the padding around it — that land on the column.
12421
+ */
12422
+
12423
+ /*
12424
+ * Docked chat pads its content; the floating card supplies its own padding.
12425
+ * The inline half is the section gutter `ChatMessageList` pads its scroller
12426
+ * with, so below the cap — where the column runs full-bleed — the composer
12427
+ * keeps to the same gutters as the messages.
12428
+ */
12270
12429
  .muka-bottombar--chat:not(.muka-bottombar--floating) .muka-bottombar__content {
12271
- padding: var(--bottombar-chat-padding);
12430
+ padding: var(--bottombar-chat-padding)
12431
+ var(--section-padding-horizontal-default, var(--spacing-4));
12432
+ max-width: calc(
12433
+ var(--bottombar-chat-max-width) + 2 * var(--section-padding-horizontal-default, var(--spacing-4))
12434
+ );
12272
12435
  }
12273
12436
 
12274
12437
  /* Floating chat card widens to the chat cap (overrides the md default below). */
12275
12438
  .muka-bottombar--chat.muka-bottombar--floating .muka-bottombar__content {
12276
- max-width: var(--bottombar-chat-max-width);
12439
+ max-width: calc(var(--bottombar-chat-max-width) + 2 * var(--bottombar-floating-padding));
12277
12440
  }
12278
12441
 
12279
12442
  /* ─── Tab item ────────────────────────────────────────── */
@@ -13355,6 +13518,148 @@ button.muka-chat-photo-grid__tile:focus-visible {
13355
13518
  }
13356
13519
 
13357
13520
 
13521
+ /* ActionSheet */
13522
+ /* ActionSheet Component Styles */
13523
+
13524
+ .muka-action-sheet__inner {
13525
+ display: flex;
13526
+ flex-direction: column;
13527
+ padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13528
+ gap: var(--spacing-3);
13529
+ }
13530
+
13531
+ /* ─── Header ──────────────────────────────────────────── */
13532
+
13533
+ .muka-action-sheet__header {
13534
+ display: flex;
13535
+ flex-direction: column;
13536
+ align-items: center;
13537
+ gap: var(--spacing-1);
13538
+ padding: var(--spacing-2) 0 var(--spacing-3);
13539
+ text-align: center;
13540
+ }
13541
+
13542
+ .muka-action-sheet__title {
13543
+ margin: 0;
13544
+ color: var(--color-text-default-default);
13545
+ font-family: var(--text-label-md-semibold-fontFamily);
13546
+ font-weight: var(--text-label-md-semibold-fontWeight);
13547
+ font-size: var(--text-label-md-semibold-fontSize);
13548
+ line-height: var(--text-label-md-semibold-lineHeight);
13549
+ }
13550
+
13551
+ .muka-action-sheet__description {
13552
+ margin: 0;
13553
+ color: var(--color-text-subtle-default);
13554
+ font-family: var(--text-body-sm-regular-fontFamily);
13555
+ font-weight: var(--text-body-sm-regular-fontWeight);
13556
+ font-size: var(--text-body-sm-regular-fontSize);
13557
+ line-height: var(--text-body-sm-regular-lineHeight);
13558
+ }
13559
+
13560
+ /* ─── Actions group ───────────────────────────────────── */
13561
+
13562
+ .muka-action-sheet__actions {
13563
+ display: flex;
13564
+ flex-direction: column;
13565
+ background-color: var(--color-surface-level1);
13566
+ border-radius: var(--radius-md);
13567
+ overflow: hidden;
13568
+ }
13569
+
13570
+ .muka-action-sheet__item {
13571
+ display: flex;
13572
+ align-items: center;
13573
+ gap: var(--spacing-3);
13574
+ padding: var(--spacing-3) var(--spacing-4);
13575
+ background: none;
13576
+ border: none;
13577
+ cursor: pointer;
13578
+ text-align: left;
13579
+ color: var(--color-text-default-default);
13580
+ font-family: var(--text-body-md-regular-fontFamily);
13581
+ font-weight: var(--text-body-md-regular-fontWeight);
13582
+ font-size: var(--text-body-md-regular-fontSize);
13583
+ line-height: var(--text-body-md-regular-lineHeight);
13584
+ -webkit-tap-highlight-color: transparent;
13585
+ transition: background-color 0.12s ease;
13586
+ }
13587
+
13588
+ .muka-action-sheet__item + .muka-action-sheet__item {
13589
+ border-top: var(--border-width-regular) solid var(--color-border-default);
13590
+ }
13591
+
13592
+ .muka-action-sheet__item:hover:not(:disabled) {
13593
+ background-color: var(--color-surface-level2);
13594
+ }
13595
+
13596
+ .muka-action-sheet__item:active:not(:disabled) {
13597
+ background-color: var(--color-surface-level3);
13598
+ }
13599
+
13600
+ .muka-action-sheet__item:focus-visible {
13601
+ outline: 2px solid var(--color-action-default);
13602
+ outline-offset: -2px;
13603
+ }
13604
+
13605
+ .muka-action-sheet__item--destructive {
13606
+ color: var(--color-state-error-default);
13607
+ }
13608
+
13609
+ .muka-action-sheet__item--disabled,
13610
+ .muka-action-sheet__item:disabled {
13611
+ opacity: 0.5;
13612
+ cursor: not-allowed;
13613
+ }
13614
+
13615
+ .muka-action-sheet__item-icon {
13616
+ display: inline-flex;
13617
+ align-items: center;
13618
+ justify-content: center;
13619
+ width: 24px;
13620
+ height: 24px;
13621
+ flex-shrink: 0;
13622
+ }
13623
+
13624
+ .muka-action-sheet__item-icon svg {
13625
+ width: 100%;
13626
+ height: 100%;
13627
+ }
13628
+
13629
+ .muka-action-sheet__item-label {
13630
+ flex: 1;
13631
+ }
13632
+
13633
+ /* ─── Cancel button (separate at bottom) ──────────────── */
13634
+
13635
+ .muka-action-sheet__cancel {
13636
+ display: flex;
13637
+ align-items: center;
13638
+ justify-content: center;
13639
+ padding: var(--spacing-3) var(--spacing-4);
13640
+ background-color: var(--color-surface-level1);
13641
+ border: none;
13642
+ border-radius: var(--radius-md);
13643
+ cursor: pointer;
13644
+ color: var(--color-text-default-default);
13645
+ font-family: var(--text-label-md-semibold-fontFamily);
13646
+ font-weight: var(--text-label-md-semibold-fontWeight);
13647
+ font-size: var(--text-label-md-semibold-fontSize);
13648
+ line-height: var(--text-label-md-semibold-lineHeight);
13649
+ -webkit-tap-highlight-color: transparent;
13650
+ transition: background-color 0.12s ease;
13651
+ }
13652
+
13653
+ .muka-action-sheet__cancel:hover {
13654
+ background-color: var(--color-surface-level2);
13655
+ }
13656
+
13657
+ .muka-action-sheet__cancel:focus-visible {
13658
+ outline: 2px solid var(--color-action-default);
13659
+ outline-offset: 2px;
13660
+ }
13661
+
13662
+
13358
13663
  /* AgentTaskList */
13359
13664
  /* AgentTaskList Component Styles */
13360
13665
 
@@ -13524,148 +13829,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13524
13829
  }
13525
13830
 
13526
13831
 
13527
- /* ActionSheet */
13528
- /* ActionSheet Component Styles */
13529
-
13530
- .muka-action-sheet__inner {
13531
- display: flex;
13532
- flex-direction: column;
13533
- padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13534
- gap: var(--spacing-3);
13535
- }
13536
-
13537
- /* ─── Header ──────────────────────────────────────────── */
13538
-
13539
- .muka-action-sheet__header {
13540
- display: flex;
13541
- flex-direction: column;
13542
- align-items: center;
13543
- gap: var(--spacing-1);
13544
- padding: var(--spacing-2) 0 var(--spacing-3);
13545
- text-align: center;
13546
- }
13547
-
13548
- .muka-action-sheet__title {
13549
- margin: 0;
13550
- color: var(--color-text-default-default);
13551
- font-family: var(--text-label-md-semibold-fontFamily);
13552
- font-weight: var(--text-label-md-semibold-fontWeight);
13553
- font-size: var(--text-label-md-semibold-fontSize);
13554
- line-height: var(--text-label-md-semibold-lineHeight);
13555
- }
13556
-
13557
- .muka-action-sheet__description {
13558
- margin: 0;
13559
- color: var(--color-text-subtle-default);
13560
- font-family: var(--text-body-sm-regular-fontFamily);
13561
- font-weight: var(--text-body-sm-regular-fontWeight);
13562
- font-size: var(--text-body-sm-regular-fontSize);
13563
- line-height: var(--text-body-sm-regular-lineHeight);
13564
- }
13565
-
13566
- /* ─── Actions group ───────────────────────────────────── */
13567
-
13568
- .muka-action-sheet__actions {
13569
- display: flex;
13570
- flex-direction: column;
13571
- background-color: var(--color-surface-level1);
13572
- border-radius: var(--radius-md);
13573
- overflow: hidden;
13574
- }
13575
-
13576
- .muka-action-sheet__item {
13577
- display: flex;
13578
- align-items: center;
13579
- gap: var(--spacing-3);
13580
- padding: var(--spacing-3) var(--spacing-4);
13581
- background: none;
13582
- border: none;
13583
- cursor: pointer;
13584
- text-align: left;
13585
- color: var(--color-text-default-default);
13586
- font-family: var(--text-body-md-regular-fontFamily);
13587
- font-weight: var(--text-body-md-regular-fontWeight);
13588
- font-size: var(--text-body-md-regular-fontSize);
13589
- line-height: var(--text-body-md-regular-lineHeight);
13590
- -webkit-tap-highlight-color: transparent;
13591
- transition: background-color 0.12s ease;
13592
- }
13593
-
13594
- .muka-action-sheet__item + .muka-action-sheet__item {
13595
- border-top: var(--border-width-regular) solid var(--color-border-default);
13596
- }
13597
-
13598
- .muka-action-sheet__item:hover:not(:disabled) {
13599
- background-color: var(--color-surface-level2);
13600
- }
13601
-
13602
- .muka-action-sheet__item:active:not(:disabled) {
13603
- background-color: var(--color-surface-level3);
13604
- }
13605
-
13606
- .muka-action-sheet__item:focus-visible {
13607
- outline: 2px solid var(--color-action-default);
13608
- outline-offset: -2px;
13609
- }
13610
-
13611
- .muka-action-sheet__item--destructive {
13612
- color: var(--color-state-error-default);
13613
- }
13614
-
13615
- .muka-action-sheet__item--disabled,
13616
- .muka-action-sheet__item:disabled {
13617
- opacity: 0.5;
13618
- cursor: not-allowed;
13619
- }
13620
-
13621
- .muka-action-sheet__item-icon {
13622
- display: inline-flex;
13623
- align-items: center;
13624
- justify-content: center;
13625
- width: 24px;
13626
- height: 24px;
13627
- flex-shrink: 0;
13628
- }
13629
-
13630
- .muka-action-sheet__item-icon svg {
13631
- width: 100%;
13632
- height: 100%;
13633
- }
13634
-
13635
- .muka-action-sheet__item-label {
13636
- flex: 1;
13637
- }
13638
-
13639
- /* ─── Cancel button (separate at bottom) ──────────────── */
13640
-
13641
- .muka-action-sheet__cancel {
13642
- display: flex;
13643
- align-items: center;
13644
- justify-content: center;
13645
- padding: var(--spacing-3) var(--spacing-4);
13646
- background-color: var(--color-surface-level1);
13647
- border: none;
13648
- border-radius: var(--radius-md);
13649
- cursor: pointer;
13650
- color: var(--color-text-default-default);
13651
- font-family: var(--text-label-md-semibold-fontFamily);
13652
- font-weight: var(--text-label-md-semibold-fontWeight);
13653
- font-size: var(--text-label-md-semibold-fontSize);
13654
- line-height: var(--text-label-md-semibold-lineHeight);
13655
- -webkit-tap-highlight-color: transparent;
13656
- transition: background-color 0.12s ease;
13657
- }
13658
-
13659
- .muka-action-sheet__cancel:hover {
13660
- background-color: var(--color-surface-level2);
13661
- }
13662
-
13663
- .muka-action-sheet__cancel:focus-visible {
13664
- outline: 2px solid var(--color-action-default);
13665
- outline-offset: 2px;
13666
- }
13667
-
13668
-
13669
13832
  /* Accordion */
13670
13833
  /* Accordion Component Styles */
13671
13834