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