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