@revikornmann/muka-ui 0.16.0 → 0.17.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 (111) hide show
  1. package/dist/cjs/components/ChatComposer/ChatComposer.js +12 -4
  2. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  3. package/dist/cjs/components/EmojiPicker/EmojiPicker.css +19 -0
  4. package/dist/cjs/components/EmojiPicker/EmojiPicker.js +54 -0
  5. package/dist/cjs/components/EmojiPicker/EmojiPicker.js.map +1 -0
  6. package/dist/cjs/components/EmojiPicker/index.js +12 -0
  7. package/dist/cjs/components/EmojiPicker/index.js.map +1 -0
  8. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
  9. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js +36 -0
  10. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
  11. package/dist/cjs/components/PhotoDraftStrip/index.js +11 -0
  12. package/dist/cjs/components/PhotoDraftStrip/index.js.map +1 -0
  13. package/dist/cjs/components/RecordingBar/RecordingBar.css +47 -0
  14. package/dist/cjs/components/RecordingBar/RecordingBar.js +22 -0
  15. package/dist/cjs/components/RecordingBar/RecordingBar.js.map +1 -0
  16. package/dist/cjs/components/RecordingBar/index.js +11 -0
  17. package/dist/cjs/components/RecordingBar/index.js.map +1 -0
  18. package/dist/cjs/components/VoiceMessage/VoiceMessage.css +29 -0
  19. package/dist/cjs/components/VoiceMessage/VoiceMessage.js +85 -0
  20. package/dist/cjs/components/VoiceMessage/VoiceMessage.js.map +1 -0
  21. package/dist/cjs/components/VoiceMessage/index.js +11 -0
  22. package/dist/cjs/components/VoiceMessage/index.js.map +1 -0
  23. package/dist/cjs/components/VoiceRecorder/audio.js +61 -0
  24. package/dist/cjs/components/VoiceRecorder/audio.js.map +1 -0
  25. package/dist/cjs/components/VoiceRecorder/index.js +16 -0
  26. package/dist/cjs/components/VoiceRecorder/index.js.map +1 -0
  27. package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js +213 -0
  28. package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  29. package/dist/cjs/components/Waveform/Waveform.css +23 -0
  30. package/dist/cjs/components/Waveform/Waveform.js +36 -0
  31. package/dist/cjs/components/Waveform/Waveform.js.map +1 -0
  32. package/dist/cjs/components/Waveform/index.js +11 -0
  33. package/dist/cjs/components/Waveform/index.js.map +1 -0
  34. package/dist/cjs/components/index.js +18 -1
  35. package/dist/cjs/components/index.js.map +1 -1
  36. package/dist/esm/components/ChatComposer/ChatComposer.js +12 -4
  37. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  38. package/dist/esm/components/EmojiPicker/EmojiPicker.css +19 -0
  39. package/dist/esm/components/EmojiPicker/EmojiPicker.js +50 -0
  40. package/dist/esm/components/EmojiPicker/EmojiPicker.js.map +1 -0
  41. package/dist/esm/components/EmojiPicker/index.js +3 -0
  42. package/dist/esm/components/EmojiPicker/index.js.map +1 -0
  43. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
  44. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js +32 -0
  45. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
  46. package/dist/esm/components/PhotoDraftStrip/index.js +3 -0
  47. package/dist/esm/components/PhotoDraftStrip/index.js.map +1 -0
  48. package/dist/esm/components/RecordingBar/RecordingBar.css +47 -0
  49. package/dist/esm/components/RecordingBar/RecordingBar.js +18 -0
  50. package/dist/esm/components/RecordingBar/RecordingBar.js.map +1 -0
  51. package/dist/esm/components/RecordingBar/index.js +3 -0
  52. package/dist/esm/components/RecordingBar/index.js.map +1 -0
  53. package/dist/esm/components/VoiceMessage/VoiceMessage.css +29 -0
  54. package/dist/esm/components/VoiceMessage/VoiceMessage.js +81 -0
  55. package/dist/esm/components/VoiceMessage/VoiceMessage.js.map +1 -0
  56. package/dist/esm/components/VoiceMessage/index.js +3 -0
  57. package/dist/esm/components/VoiceMessage/index.js.map +1 -0
  58. package/dist/esm/components/VoiceRecorder/audio.js +55 -0
  59. package/dist/esm/components/VoiceRecorder/audio.js.map +1 -0
  60. package/dist/esm/components/VoiceRecorder/index.js +4 -0
  61. package/dist/esm/components/VoiceRecorder/index.js.map +1 -0
  62. package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js +210 -0
  63. package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  64. package/dist/esm/components/Waveform/Waveform.css +23 -0
  65. package/dist/esm/components/Waveform/Waveform.js +32 -0
  66. package/dist/esm/components/Waveform/Waveform.js.map +1 -0
  67. package/dist/esm/components/Waveform/index.js +3 -0
  68. package/dist/esm/components/Waveform/index.js.map +1 -0
  69. package/dist/esm/components/index.js +6 -0
  70. package/dist/esm/components/index.js.map +1 -1
  71. package/dist/styles/components/EmojiPicker.css +19 -0
  72. package/dist/styles/components/PhotoDraftStrip.css +27 -0
  73. package/dist/styles/components/RecordingBar.css +47 -0
  74. package/dist/styles/components/VoiceMessage.css +29 -0
  75. package/dist/styles/components/Waveform.css +23 -0
  76. package/dist/styles/index.css +516 -356
  77. package/dist/styles/muka-dark.css +516 -356
  78. package/dist/styles/muka-light.css +516 -356
  79. package/dist/styles/wireframe-dark.css +516 -356
  80. package/dist/styles/wireframe-light.css +516 -356
  81. package/dist/types/components/ChatComposer/ChatComposer.d.ts +7 -0
  82. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  83. package/dist/types/components/EmojiPicker/EmojiPicker.d.ts +28 -0
  84. package/dist/types/components/EmojiPicker/EmojiPicker.d.ts.map +1 -0
  85. package/dist/types/components/EmojiPicker/index.d.ts +3 -0
  86. package/dist/types/components/EmojiPicker/index.d.ts.map +1 -0
  87. package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts +51 -0
  88. package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts.map +1 -0
  89. package/dist/types/components/PhotoDraftStrip/index.d.ts +3 -0
  90. package/dist/types/components/PhotoDraftStrip/index.d.ts.map +1 -0
  91. package/dist/types/components/RecordingBar/RecordingBar.d.ts +22 -0
  92. package/dist/types/components/RecordingBar/RecordingBar.d.ts.map +1 -0
  93. package/dist/types/components/RecordingBar/index.d.ts +3 -0
  94. package/dist/types/components/RecordingBar/index.d.ts.map +1 -0
  95. package/dist/types/components/VoiceMessage/VoiceMessage.d.ts +34 -0
  96. package/dist/types/components/VoiceMessage/VoiceMessage.d.ts.map +1 -0
  97. package/dist/types/components/VoiceMessage/index.d.ts +3 -0
  98. package/dist/types/components/VoiceMessage/index.d.ts.map +1 -0
  99. package/dist/types/components/VoiceRecorder/audio.d.ts +20 -0
  100. package/dist/types/components/VoiceRecorder/audio.d.ts.map +1 -0
  101. package/dist/types/components/VoiceRecorder/index.d.ts +4 -0
  102. package/dist/types/components/VoiceRecorder/index.d.ts.map +1 -0
  103. package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts +48 -0
  104. package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts.map +1 -0
  105. package/dist/types/components/Waveform/Waveform.d.ts +31 -0
  106. package/dist/types/components/Waveform/Waveform.d.ts.map +1 -0
  107. package/dist/types/components/Waveform/index.d.ts +3 -0
  108. package/dist/types/components/Waveform/index.d.ts.map +1 -0
  109. package/dist/types/components/index.d.ts +6 -0
  110. package/dist/types/components/index.d.ts.map +1 -1
  111. package/package.json +1 -1
@@ -2390,6 +2390,64 @@ body {
2390
2390
 
2391
2391
 
2392
2392
  /* ========== Component Styles ========== */
2393
+ /* Waveform */
2394
+ /* Waveform Component Styles */
2395
+
2396
+ /*
2397
+ * A row of amplitude bars. Muka ships no audio/waveform primitive; this is
2398
+ * drawn from color + spacing tokens only. Bar height (per-peak magnitude) and
2399
+ * the played/unplayed color split are data-driven, so they arrive as inline
2400
+ * styles from the component; everything else is tokenized here.
2401
+ */
2402
+ .muka-waveform {
2403
+ display: flex;
2404
+ align-items: center;
2405
+ gap: var(--spacing-05, 2px);
2406
+ width: 100%;
2407
+ min-width: 0;
2408
+ }
2409
+
2410
+ .muka-waveform__bar {
2411
+ flex: 1 1 0;
2412
+ min-width: 2px;
2413
+ max-width: 4px;
2414
+ border-radius: var(--radius-full, 9999px);
2415
+ background: var(--color-border-contrast);
2416
+ }
2417
+
2418
+
2419
+ /* VoiceMessage */
2420
+ /* VoiceMessage Component Styles */
2421
+
2422
+ .muka-voice-message {
2423
+ display: flex;
2424
+ align-items: center;
2425
+ gap: var(--spacing-3);
2426
+ width: 100%;
2427
+ min-width: min(16rem, 60vw);
2428
+ }
2429
+
2430
+ .muka-voice-message__wave {
2431
+ flex: 1 1 auto;
2432
+ min-width: 0;
2433
+ }
2434
+
2435
+ .muka-voice-message__time {
2436
+ flex: 0 0 auto;
2437
+ white-space: nowrap;
2438
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
2439
+ line-height: var(--text-label-sm-lineHeight, 1);
2440
+ font-variant-numeric: tabular-nums;
2441
+ color: var(--color-text-subtle-default);
2442
+ }
2443
+
2444
+ /* On the tinted own bubble the surface is the action color, so the timer flips
2445
+ * to the inverse text token for contrast. */
2446
+ .muka-voice-message--own .muka-voice-message__time {
2447
+ color: var(--color-text-default-inverse);
2448
+ }
2449
+
2450
+
2393
2451
  /* View */
2394
2452
  /* View Component Styles */
2395
2453
 
@@ -2921,6 +2979,196 @@ body {
2921
2979
  }
2922
2980
 
2923
2981
 
2982
+ /* Toast */
2983
+ /* Toast Component Styles - Using Muka Design Tokens */
2984
+
2985
+ .muka-toast {
2986
+ display: flex;
2987
+ align-items: flex-start;
2988
+ gap: var(--toast-gap);
2989
+ padding: var(--toast-padding-y) var(--toast-padding-x);
2990
+ border-radius: var(--toast-radius);
2991
+ box-shadow: var(--toast-shadow);
2992
+ min-width: var(--toast-width-min);
2993
+ max-width: var(--toast-width-max);
2994
+ pointer-events: auto;
2995
+ animation: muka-toast-slide-in 0.2s ease-out;
2996
+ }
2997
+
2998
+ /* Entry animation */
2999
+ @keyframes muka-toast-slide-in {
3000
+ from {
3001
+ opacity: 0;
3002
+ transform: translateY(8px);
3003
+ }
3004
+ to {
3005
+ opacity: 1;
3006
+ transform: translateY(0);
3007
+ }
3008
+ }
3009
+
3010
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
3011
+ .muka-toast--top-right,
3012
+ .muka-toast--top-left,
3013
+ .muka-toast--top-center,
3014
+ .muka-toast--bottom-right,
3015
+ .muka-toast--bottom-left,
3016
+ .muka-toast--bottom-center {
3017
+ position: fixed;
3018
+ z-index: 9999;
3019
+ }
3020
+
3021
+ .muka-toast--top-right {
3022
+ top: var(--spacing-4);
3023
+ right: var(--spacing-4);
3024
+ }
3025
+
3026
+ .muka-toast--top-left {
3027
+ top: var(--spacing-4);
3028
+ left: var(--spacing-4);
3029
+ }
3030
+
3031
+ .muka-toast--top-center {
3032
+ top: var(--spacing-4);
3033
+ left: 50%;
3034
+ transform: translateX(-50%);
3035
+ }
3036
+
3037
+ .muka-toast--bottom-right {
3038
+ bottom: var(--spacing-4);
3039
+ right: var(--spacing-4);
3040
+ }
3041
+
3042
+ .muka-toast--bottom-left {
3043
+ bottom: var(--spacing-4);
3044
+ left: var(--spacing-4);
3045
+ }
3046
+
3047
+ .muka-toast--bottom-center {
3048
+ bottom: var(--spacing-4);
3049
+ left: 50%;
3050
+ transform: translateX(-50%);
3051
+ }
3052
+
3053
+ /* Variant: Info */
3054
+ .muka-toast--info {
3055
+ background-color: var(--toast-color-info-background);
3056
+ color: var(--toast-color-info-foreground);
3057
+ }
3058
+
3059
+ .muka-toast--info .muka-toast__icon {
3060
+ color: var(--toast-color-info-accent);
3061
+ }
3062
+
3063
+ /* Variant: Success */
3064
+ .muka-toast--success {
3065
+ background-color: var(--toast-color-success-background);
3066
+ color: var(--toast-color-success-foreground);
3067
+ }
3068
+
3069
+ .muka-toast--success .muka-toast__icon {
3070
+ color: var(--toast-color-success-accent);
3071
+ }
3072
+
3073
+ /* Variant: Warning */
3074
+ .muka-toast--warning {
3075
+ background-color: var(--toast-color-warning-background);
3076
+ color: var(--toast-color-warning-foreground);
3077
+ }
3078
+
3079
+ .muka-toast--warning .muka-toast__icon {
3080
+ color: var(--toast-color-warning-accent);
3081
+ }
3082
+
3083
+ /* Variant: Error */
3084
+ .muka-toast--error {
3085
+ background-color: var(--toast-color-error-background);
3086
+ color: var(--toast-color-error-foreground);
3087
+ }
3088
+
3089
+ .muka-toast--error .muka-toast__icon {
3090
+ color: var(--toast-color-error-accent);
3091
+ }
3092
+
3093
+ /* Icon */
3094
+ .muka-toast__icon {
3095
+ display: flex;
3096
+ align-items: center;
3097
+ justify-content: center;
3098
+ flex-shrink: 0;
3099
+ width: var(--toast-icon-size);
3100
+ height: var(--toast-icon-size);
3101
+ }
3102
+
3103
+ .muka-toast__icon svg {
3104
+ width: 100%;
3105
+ height: 100%;
3106
+ }
3107
+
3108
+ /* Content */
3109
+ .muka-toast__content {
3110
+ flex: 1;
3111
+ min-width: 0;
3112
+ }
3113
+
3114
+ .muka-toast__title {
3115
+ font-family: var(--text-label-md-semibold-fontFamily);
3116
+ font-weight: var(--text-label-md-semibold-fontWeight);
3117
+ font-size: var(--text-label-md-semibold-fontSize);
3118
+ line-height: var(--text-label-md-semibold-lineHeight);
3119
+ margin-bottom: var(--spacing-1);
3120
+ }
3121
+
3122
+ .muka-toast__message {
3123
+ font-family: var(--text-body-sm-regular-fontFamily);
3124
+ font-weight: var(--text-body-sm-regular-fontWeight);
3125
+ font-size: var(--text-body-sm-regular-fontSize);
3126
+ line-height: var(--text-body-sm-regular-lineHeight);
3127
+ }
3128
+
3129
+ /* Action slot */
3130
+ .muka-toast__action {
3131
+ display: flex;
3132
+ align-items: center;
3133
+ flex-shrink: 0;
3134
+ }
3135
+
3136
+ /* Dismiss button */
3137
+ .muka-toast__dismiss {
3138
+ display: flex;
3139
+ align-items: center;
3140
+ justify-content: center;
3141
+ flex-shrink: 0;
3142
+ width: 24px;
3143
+ height: 24px;
3144
+ padding: 0;
3145
+ margin: -2px -4px -2px 0;
3146
+ border: none;
3147
+ background: transparent;
3148
+ color: inherit;
3149
+ opacity: 0.7;
3150
+ cursor: pointer;
3151
+ border-radius: var(--border-radius-sm);
3152
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3153
+ }
3154
+
3155
+ .muka-toast__dismiss:hover {
3156
+ opacity: 1;
3157
+ background-color: rgba(0, 0, 0, 0.05);
3158
+ }
3159
+
3160
+ .muka-toast__dismiss:focus-visible {
3161
+ outline: 2px solid var(--color-border-focus);
3162
+ outline-offset: 2px;
3163
+ opacity: 1;
3164
+ }
3165
+
3166
+ .muka-toast__dismiss svg {
3167
+ width: 16px;
3168
+ height: 16px;
3169
+ }
3170
+
3171
+
2924
3172
  /* Tile */
2925
3173
  /* Tile Component Styles - Using Muka Design Tokens */
2926
3174
 
@@ -3282,202 +3530,12 @@ body {
3282
3530
  }
3283
3531
 
3284
3532
 
3285
- /* Toast */
3286
- /* Toast Component Styles - Using Muka Design Tokens */
3287
-
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;
3299
- }
3533
+ /* Thumbnail */
3534
+ /* Thumbnail Component Styles - Using Muka Design Tokens */
3300
3535
 
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
- }
3311
- }
3312
-
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;
3322
- }
3323
-
3324
- .muka-toast--top-right {
3325
- top: var(--spacing-4);
3326
- right: var(--spacing-4);
3327
- }
3328
-
3329
- .muka-toast--top-left {
3330
- top: var(--spacing-4);
3331
- left: var(--spacing-4);
3332
- }
3333
-
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;
3536
+ .muka-thumbnail {
3537
+ position: relative;
3538
+ flex-shrink: 0;
3481
3539
  }
3482
3540
 
3483
3541
  /* The frame carries the border, background and shape clip. Keeping it separate
@@ -5411,6 +5469,29 @@ body {
5411
5469
  }
5412
5470
 
5413
5471
 
5472
+ /* Section */
5473
+ /* Section Component - Layout tokens (section.padding) */
5474
+
5475
+ .muka-section {
5476
+ box-sizing: border-box;
5477
+ }
5478
+
5479
+ .muka-section--padding-compact {
5480
+ padding-block: var(--section-padding-vertical-compact);
5481
+ padding-inline: var(--section-padding-horizontal-compact);
5482
+ }
5483
+
5484
+ .muka-section--padding-default {
5485
+ padding-block: var(--section-padding-vertical-default);
5486
+ padding-inline: var(--section-padding-horizontal-default);
5487
+ }
5488
+
5489
+ .muka-section--padding-spacious {
5490
+ padding-block: var(--section-padding-vertical-spacious);
5491
+ padding-inline: var(--section-padding-horizontal-spacious);
5492
+ }
5493
+
5494
+
5414
5495
  /* SearchInput */
5415
5496
  /* SearchInput Component Styles */
5416
5497
 
@@ -5580,26 +5661,53 @@ body {
5580
5661
  }
5581
5662
 
5582
5663
 
5583
- /* Section */
5584
- /* Section Component - Layout tokens (section.padding) */
5664
+ /* RecordingBar */
5665
+ /* RecordingBar Component Styles */
5585
5666
 
5586
- .muka-section {
5587
- box-sizing: border-box;
5667
+ .muka-recording-bar {
5668
+ display: flex;
5669
+ align-items: center;
5670
+ gap: var(--spacing-3);
5671
+ width: 100%;
5672
+ min-width: 0;
5588
5673
  }
5589
5674
 
5590
- .muka-section--padding-compact {
5591
- padding-block: var(--section-padding-vertical-compact);
5592
- padding-inline: var(--section-padding-horizontal-compact);
5675
+ .muka-recording-bar__dot {
5676
+ flex: 0 0 auto;
5677
+ width: 0.625rem;
5678
+ height: 0.625rem;
5679
+ border-radius: var(--radius-full, 9999px);
5680
+ background: var(--alert-color-error-accent, var(--color-text-default-default));
5681
+ animation: muka-recording-bar-pulse 1s ease-in-out infinite;
5593
5682
  }
5594
5683
 
5595
- .muka-section--padding-default {
5596
- padding-block: var(--section-padding-vertical-default);
5597
- padding-inline: var(--section-padding-horizontal-default);
5684
+ .muka-recording-bar__time {
5685
+ flex: 0 0 auto;
5686
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
5687
+ line-height: var(--text-label-sm-lineHeight, 1);
5688
+ font-variant-numeric: tabular-nums;
5689
+ color: var(--color-text-default-default);
5598
5690
  }
5599
5691
 
5600
- .muka-section--padding-spacious {
5601
- padding-block: var(--section-padding-vertical-spacious);
5602
- padding-inline: var(--section-padding-horizontal-spacious);
5692
+ .muka-recording-bar__wave {
5693
+ flex: 1 1 auto;
5694
+ min-width: 0;
5695
+ }
5696
+
5697
+ @keyframes muka-recording-bar-pulse {
5698
+ 0%,
5699
+ 100% {
5700
+ opacity: 1;
5701
+ }
5702
+ 50% {
5703
+ opacity: 0.3;
5704
+ }
5705
+ }
5706
+
5707
+ @media (prefers-reduced-motion: reduce) {
5708
+ .muka-recording-bar__dot {
5709
+ animation: none;
5710
+ }
5603
5711
  }
5604
5712
 
5605
5713
 
@@ -7155,6 +7263,36 @@ body {
7155
7263
  }
7156
7264
 
7157
7265
 
7266
+ /* PhotoDraftStrip */
7267
+ /* PhotoDraftStrip Component Styles */
7268
+
7269
+ .muka-photo-draft-strip {
7270
+ display: flex;
7271
+ align-items: center;
7272
+ gap: var(--spacing-3);
7273
+ width: 100%;
7274
+ padding: var(--spacing-2) 0;
7275
+ }
7276
+
7277
+ .muka-photo-draft-strip__track {
7278
+ display: flex;
7279
+ gap: var(--spacing-2);
7280
+ flex: 1 1 auto;
7281
+ min-width: 0;
7282
+ overflow-x: auto;
7283
+ scroll-behavior: smooth;
7284
+ scrollbar-width: none;
7285
+ }
7286
+
7287
+ .muka-photo-draft-strip__track::-webkit-scrollbar {
7288
+ display: none;
7289
+ }
7290
+
7291
+ .muka-photo-draft-strip__item {
7292
+ flex: 0 0 auto;
7293
+ }
7294
+
7295
+
7158
7296
  /* Pagination */
7159
7297
  /* Pagination Component Styles */
7160
7298
 
@@ -8860,13 +8998,35 @@ li.muka-listitem {
8860
8998
  }
8861
8999
 
8862
9000
 
8863
- /* Drawer */
8864
- /* Drawer Component Styles */
9001
+ /* EmojiPicker */
9002
+ /* EmojiPicker Component Styles */
8865
9003
 
8866
- /* Size tokens (local to Drawer) */
8867
- .muka-drawer {
8868
- --drawer-width-sm: 18rem;
8869
- --drawer-width-md: 26rem;
9004
+ .muka-emoji-picker {
9005
+ display: grid;
9006
+ grid-template-columns: repeat(8, 1fr);
9007
+ gap: var(--spacing-1);
9008
+ padding: var(--spacing-2);
9009
+ max-height: 12rem;
9010
+ overflow-y: auto;
9011
+ background: var(--color-surface-level2);
9012
+ border: var(--border-width-regular, 1px) solid var(--color-border-default);
9013
+ border-radius: var(--radius-lg);
9014
+ box-shadow: var(--menu-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
9015
+ }
9016
+
9017
+ .muka-emoji-picker__glyph {
9018
+ font-size: 1.25rem;
9019
+ line-height: 1;
9020
+ }
9021
+
9022
+
9023
+ /* Drawer */
9024
+ /* Drawer Component Styles */
9025
+
9026
+ /* Size tokens (local to Drawer) */
9027
+ .muka-drawer {
9028
+ --drawer-width-sm: 18rem;
9029
+ --drawer-width-md: 26rem;
8870
9030
  --drawer-width-lg: 36rem;
8871
9031
  }
8872
9032
 
@@ -13518,148 +13678,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13518
13678
  }
13519
13679
 
13520
13680
 
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
-
13663
13681
  /* AgentTaskList */
13664
13682
  /* AgentTaskList Component Styles */
13665
13683
 
@@ -13829,6 +13847,148 @@ button.muka-chat-photo-grid__tile:focus-visible {
13829
13847
  }
13830
13848
 
13831
13849
 
13850
+ /* ActionSheet */
13851
+ /* ActionSheet Component Styles */
13852
+
13853
+ .muka-action-sheet__inner {
13854
+ display: flex;
13855
+ flex-direction: column;
13856
+ padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13857
+ gap: var(--spacing-3);
13858
+ }
13859
+
13860
+ /* ─── Header ──────────────────────────────────────────── */
13861
+
13862
+ .muka-action-sheet__header {
13863
+ display: flex;
13864
+ flex-direction: column;
13865
+ align-items: center;
13866
+ gap: var(--spacing-1);
13867
+ padding: var(--spacing-2) 0 var(--spacing-3);
13868
+ text-align: center;
13869
+ }
13870
+
13871
+ .muka-action-sheet__title {
13872
+ margin: 0;
13873
+ color: var(--color-text-default-default);
13874
+ font-family: var(--text-label-md-semibold-fontFamily);
13875
+ font-weight: var(--text-label-md-semibold-fontWeight);
13876
+ font-size: var(--text-label-md-semibold-fontSize);
13877
+ line-height: var(--text-label-md-semibold-lineHeight);
13878
+ }
13879
+
13880
+ .muka-action-sheet__description {
13881
+ margin: 0;
13882
+ color: var(--color-text-subtle-default);
13883
+ font-family: var(--text-body-sm-regular-fontFamily);
13884
+ font-weight: var(--text-body-sm-regular-fontWeight);
13885
+ font-size: var(--text-body-sm-regular-fontSize);
13886
+ line-height: var(--text-body-sm-regular-lineHeight);
13887
+ }
13888
+
13889
+ /* ─── Actions group ───────────────────────────────────── */
13890
+
13891
+ .muka-action-sheet__actions {
13892
+ display: flex;
13893
+ flex-direction: column;
13894
+ background-color: var(--color-surface-level1);
13895
+ border-radius: var(--radius-md);
13896
+ overflow: hidden;
13897
+ }
13898
+
13899
+ .muka-action-sheet__item {
13900
+ display: flex;
13901
+ align-items: center;
13902
+ gap: var(--spacing-3);
13903
+ padding: var(--spacing-3) var(--spacing-4);
13904
+ background: none;
13905
+ border: none;
13906
+ cursor: pointer;
13907
+ text-align: left;
13908
+ color: var(--color-text-default-default);
13909
+ font-family: var(--text-body-md-regular-fontFamily);
13910
+ font-weight: var(--text-body-md-regular-fontWeight);
13911
+ font-size: var(--text-body-md-regular-fontSize);
13912
+ line-height: var(--text-body-md-regular-lineHeight);
13913
+ -webkit-tap-highlight-color: transparent;
13914
+ transition: background-color 0.12s ease;
13915
+ }
13916
+
13917
+ .muka-action-sheet__item + .muka-action-sheet__item {
13918
+ border-top: var(--border-width-regular) solid var(--color-border-default);
13919
+ }
13920
+
13921
+ .muka-action-sheet__item:hover:not(:disabled) {
13922
+ background-color: var(--color-surface-level2);
13923
+ }
13924
+
13925
+ .muka-action-sheet__item:active:not(:disabled) {
13926
+ background-color: var(--color-surface-level3);
13927
+ }
13928
+
13929
+ .muka-action-sheet__item:focus-visible {
13930
+ outline: 2px solid var(--color-action-default);
13931
+ outline-offset: -2px;
13932
+ }
13933
+
13934
+ .muka-action-sheet__item--destructive {
13935
+ color: var(--color-state-error-default);
13936
+ }
13937
+
13938
+ .muka-action-sheet__item--disabled,
13939
+ .muka-action-sheet__item:disabled {
13940
+ opacity: 0.5;
13941
+ cursor: not-allowed;
13942
+ }
13943
+
13944
+ .muka-action-sheet__item-icon {
13945
+ display: inline-flex;
13946
+ align-items: center;
13947
+ justify-content: center;
13948
+ width: 24px;
13949
+ height: 24px;
13950
+ flex-shrink: 0;
13951
+ }
13952
+
13953
+ .muka-action-sheet__item-icon svg {
13954
+ width: 100%;
13955
+ height: 100%;
13956
+ }
13957
+
13958
+ .muka-action-sheet__item-label {
13959
+ flex: 1;
13960
+ }
13961
+
13962
+ /* ─── Cancel button (separate at bottom) ──────────────── */
13963
+
13964
+ .muka-action-sheet__cancel {
13965
+ display: flex;
13966
+ align-items: center;
13967
+ justify-content: center;
13968
+ padding: var(--spacing-3) var(--spacing-4);
13969
+ background-color: var(--color-surface-level1);
13970
+ border: none;
13971
+ border-radius: var(--radius-md);
13972
+ cursor: pointer;
13973
+ color: var(--color-text-default-default);
13974
+ font-family: var(--text-label-md-semibold-fontFamily);
13975
+ font-weight: var(--text-label-md-semibold-fontWeight);
13976
+ font-size: var(--text-label-md-semibold-fontSize);
13977
+ line-height: var(--text-label-md-semibold-lineHeight);
13978
+ -webkit-tap-highlight-color: transparent;
13979
+ transition: background-color 0.12s ease;
13980
+ }
13981
+
13982
+ .muka-action-sheet__cancel:hover {
13983
+ background-color: var(--color-surface-level2);
13984
+ }
13985
+
13986
+ .muka-action-sheet__cancel:focus-visible {
13987
+ outline: 2px solid var(--color-action-default);
13988
+ outline-offset: 2px;
13989
+ }
13990
+
13991
+
13832
13992
  /* Accordion */
13833
13993
  /* Accordion Component Styles */
13834
13994