@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
@@ -2358,6 +2358,64 @@ body {
2358
2358
 
2359
2359
 
2360
2360
  /* ========== Component Styles ========== */
2361
+ /* Waveform */
2362
+ /* Waveform Component Styles */
2363
+
2364
+ /*
2365
+ * A row of amplitude bars. Muka ships no audio/waveform primitive; this is
2366
+ * drawn from color + spacing tokens only. Bar height (per-peak magnitude) and
2367
+ * the played/unplayed color split are data-driven, so they arrive as inline
2368
+ * styles from the component; everything else is tokenized here.
2369
+ */
2370
+ .muka-waveform {
2371
+ display: flex;
2372
+ align-items: center;
2373
+ gap: var(--spacing-05, 2px);
2374
+ width: 100%;
2375
+ min-width: 0;
2376
+ }
2377
+
2378
+ .muka-waveform__bar {
2379
+ flex: 1 1 0;
2380
+ min-width: 2px;
2381
+ max-width: 4px;
2382
+ border-radius: var(--radius-full, 9999px);
2383
+ background: var(--color-border-contrast);
2384
+ }
2385
+
2386
+
2387
+ /* VoiceMessage */
2388
+ /* VoiceMessage Component Styles */
2389
+
2390
+ .muka-voice-message {
2391
+ display: flex;
2392
+ align-items: center;
2393
+ gap: var(--spacing-3);
2394
+ width: 100%;
2395
+ min-width: min(16rem, 60vw);
2396
+ }
2397
+
2398
+ .muka-voice-message__wave {
2399
+ flex: 1 1 auto;
2400
+ min-width: 0;
2401
+ }
2402
+
2403
+ .muka-voice-message__time {
2404
+ flex: 0 0 auto;
2405
+ white-space: nowrap;
2406
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
2407
+ line-height: var(--text-label-sm-lineHeight, 1);
2408
+ font-variant-numeric: tabular-nums;
2409
+ color: var(--color-text-subtle-default);
2410
+ }
2411
+
2412
+ /* On the tinted own bubble the surface is the action color, so the timer flips
2413
+ * to the inverse text token for contrast. */
2414
+ .muka-voice-message--own .muka-voice-message__time {
2415
+ color: var(--color-text-default-inverse);
2416
+ }
2417
+
2418
+
2361
2419
  /* View */
2362
2420
  /* View Component Styles */
2363
2421
 
@@ -2889,6 +2947,196 @@ body {
2889
2947
  }
2890
2948
 
2891
2949
 
2950
+ /* Toast */
2951
+ /* Toast Component Styles - Using Muka Design Tokens */
2952
+
2953
+ .muka-toast {
2954
+ display: flex;
2955
+ align-items: flex-start;
2956
+ gap: var(--toast-gap);
2957
+ padding: var(--toast-padding-y) var(--toast-padding-x);
2958
+ border-radius: var(--toast-radius);
2959
+ box-shadow: var(--toast-shadow);
2960
+ min-width: var(--toast-width-min);
2961
+ max-width: var(--toast-width-max);
2962
+ pointer-events: auto;
2963
+ animation: muka-toast-slide-in 0.2s ease-out;
2964
+ }
2965
+
2966
+ /* Entry animation */
2967
+ @keyframes muka-toast-slide-in {
2968
+ from {
2969
+ opacity: 0;
2970
+ transform: translateY(8px);
2971
+ }
2972
+ to {
2973
+ opacity: 1;
2974
+ transform: translateY(0);
2975
+ }
2976
+ }
2977
+
2978
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
2979
+ .muka-toast--top-right,
2980
+ .muka-toast--top-left,
2981
+ .muka-toast--top-center,
2982
+ .muka-toast--bottom-right,
2983
+ .muka-toast--bottom-left,
2984
+ .muka-toast--bottom-center {
2985
+ position: fixed;
2986
+ z-index: 9999;
2987
+ }
2988
+
2989
+ .muka-toast--top-right {
2990
+ top: var(--spacing-4);
2991
+ right: var(--spacing-4);
2992
+ }
2993
+
2994
+ .muka-toast--top-left {
2995
+ top: var(--spacing-4);
2996
+ left: var(--spacing-4);
2997
+ }
2998
+
2999
+ .muka-toast--top-center {
3000
+ top: var(--spacing-4);
3001
+ left: 50%;
3002
+ transform: translateX(-50%);
3003
+ }
3004
+
3005
+ .muka-toast--bottom-right {
3006
+ bottom: var(--spacing-4);
3007
+ right: var(--spacing-4);
3008
+ }
3009
+
3010
+ .muka-toast--bottom-left {
3011
+ bottom: var(--spacing-4);
3012
+ left: var(--spacing-4);
3013
+ }
3014
+
3015
+ .muka-toast--bottom-center {
3016
+ bottom: var(--spacing-4);
3017
+ left: 50%;
3018
+ transform: translateX(-50%);
3019
+ }
3020
+
3021
+ /* Variant: Info */
3022
+ .muka-toast--info {
3023
+ background-color: var(--toast-color-info-background);
3024
+ color: var(--toast-color-info-foreground);
3025
+ }
3026
+
3027
+ .muka-toast--info .muka-toast__icon {
3028
+ color: var(--toast-color-info-accent);
3029
+ }
3030
+
3031
+ /* Variant: Success */
3032
+ .muka-toast--success {
3033
+ background-color: var(--toast-color-success-background);
3034
+ color: var(--toast-color-success-foreground);
3035
+ }
3036
+
3037
+ .muka-toast--success .muka-toast__icon {
3038
+ color: var(--toast-color-success-accent);
3039
+ }
3040
+
3041
+ /* Variant: Warning */
3042
+ .muka-toast--warning {
3043
+ background-color: var(--toast-color-warning-background);
3044
+ color: var(--toast-color-warning-foreground);
3045
+ }
3046
+
3047
+ .muka-toast--warning .muka-toast__icon {
3048
+ color: var(--toast-color-warning-accent);
3049
+ }
3050
+
3051
+ /* Variant: Error */
3052
+ .muka-toast--error {
3053
+ background-color: var(--toast-color-error-background);
3054
+ color: var(--toast-color-error-foreground);
3055
+ }
3056
+
3057
+ .muka-toast--error .muka-toast__icon {
3058
+ color: var(--toast-color-error-accent);
3059
+ }
3060
+
3061
+ /* Icon */
3062
+ .muka-toast__icon {
3063
+ display: flex;
3064
+ align-items: center;
3065
+ justify-content: center;
3066
+ flex-shrink: 0;
3067
+ width: var(--toast-icon-size);
3068
+ height: var(--toast-icon-size);
3069
+ }
3070
+
3071
+ .muka-toast__icon svg {
3072
+ width: 100%;
3073
+ height: 100%;
3074
+ }
3075
+
3076
+ /* Content */
3077
+ .muka-toast__content {
3078
+ flex: 1;
3079
+ min-width: 0;
3080
+ }
3081
+
3082
+ .muka-toast__title {
3083
+ font-family: var(--text-label-md-semibold-fontFamily);
3084
+ font-weight: var(--text-label-md-semibold-fontWeight);
3085
+ font-size: var(--text-label-md-semibold-fontSize);
3086
+ line-height: var(--text-label-md-semibold-lineHeight);
3087
+ margin-bottom: var(--spacing-1);
3088
+ }
3089
+
3090
+ .muka-toast__message {
3091
+ font-family: var(--text-body-sm-regular-fontFamily);
3092
+ font-weight: var(--text-body-sm-regular-fontWeight);
3093
+ font-size: var(--text-body-sm-regular-fontSize);
3094
+ line-height: var(--text-body-sm-regular-lineHeight);
3095
+ }
3096
+
3097
+ /* Action slot */
3098
+ .muka-toast__action {
3099
+ display: flex;
3100
+ align-items: center;
3101
+ flex-shrink: 0;
3102
+ }
3103
+
3104
+ /* Dismiss button */
3105
+ .muka-toast__dismiss {
3106
+ display: flex;
3107
+ align-items: center;
3108
+ justify-content: center;
3109
+ flex-shrink: 0;
3110
+ width: 24px;
3111
+ height: 24px;
3112
+ padding: 0;
3113
+ margin: -2px -4px -2px 0;
3114
+ border: none;
3115
+ background: transparent;
3116
+ color: inherit;
3117
+ opacity: 0.7;
3118
+ cursor: pointer;
3119
+ border-radius: var(--border-radius-sm);
3120
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3121
+ }
3122
+
3123
+ .muka-toast__dismiss:hover {
3124
+ opacity: 1;
3125
+ background-color: rgba(0, 0, 0, 0.05);
3126
+ }
3127
+
3128
+ .muka-toast__dismiss:focus-visible {
3129
+ outline: 2px solid var(--color-border-focus);
3130
+ outline-offset: 2px;
3131
+ opacity: 1;
3132
+ }
3133
+
3134
+ .muka-toast__dismiss svg {
3135
+ width: 16px;
3136
+ height: 16px;
3137
+ }
3138
+
3139
+
2892
3140
  /* Tile */
2893
3141
  /* Tile Component Styles - Using Muka Design Tokens */
2894
3142
 
@@ -3250,202 +3498,12 @@ body {
3250
3498
  }
3251
3499
 
3252
3500
 
3253
- /* Toast */
3254
- /* Toast Component Styles - Using Muka Design Tokens */
3255
-
3256
- .muka-toast {
3257
- display: flex;
3258
- align-items: flex-start;
3259
- gap: var(--toast-gap);
3260
- padding: var(--toast-padding-y) var(--toast-padding-x);
3261
- border-radius: var(--toast-radius);
3262
- box-shadow: var(--toast-shadow);
3263
- min-width: var(--toast-width-min);
3264
- max-width: var(--toast-width-max);
3265
- pointer-events: auto;
3266
- animation: muka-toast-slide-in 0.2s ease-out;
3267
- }
3501
+ /* Thumbnail */
3502
+ /* Thumbnail Component Styles - Using Muka Design Tokens */
3268
3503
 
3269
- /* Entry animation */
3270
- @keyframes muka-toast-slide-in {
3271
- from {
3272
- opacity: 0;
3273
- transform: translateY(8px);
3274
- }
3275
- to {
3276
- opacity: 1;
3277
- transform: translateY(0);
3278
- }
3279
- }
3280
-
3281
- /* Position variants (for standalone use - typically managed by ToastProvider) */
3282
- .muka-toast--top-right,
3283
- .muka-toast--top-left,
3284
- .muka-toast--top-center,
3285
- .muka-toast--bottom-right,
3286
- .muka-toast--bottom-left,
3287
- .muka-toast--bottom-center {
3288
- position: fixed;
3289
- z-index: 9999;
3290
- }
3291
-
3292
- .muka-toast--top-right {
3293
- top: var(--spacing-4);
3294
- right: var(--spacing-4);
3295
- }
3296
-
3297
- .muka-toast--top-left {
3298
- top: var(--spacing-4);
3299
- left: var(--spacing-4);
3300
- }
3301
-
3302
- .muka-toast--top-center {
3303
- top: var(--spacing-4);
3304
- left: 50%;
3305
- transform: translateX(-50%);
3306
- }
3307
-
3308
- .muka-toast--bottom-right {
3309
- bottom: var(--spacing-4);
3310
- right: var(--spacing-4);
3311
- }
3312
-
3313
- .muka-toast--bottom-left {
3314
- bottom: var(--spacing-4);
3315
- left: var(--spacing-4);
3316
- }
3317
-
3318
- .muka-toast--bottom-center {
3319
- bottom: var(--spacing-4);
3320
- left: 50%;
3321
- transform: translateX(-50%);
3322
- }
3323
-
3324
- /* Variant: Info */
3325
- .muka-toast--info {
3326
- background-color: var(--toast-color-info-background);
3327
- color: var(--toast-color-info-foreground);
3328
- }
3329
-
3330
- .muka-toast--info .muka-toast__icon {
3331
- color: var(--toast-color-info-accent);
3332
- }
3333
-
3334
- /* Variant: Success */
3335
- .muka-toast--success {
3336
- background-color: var(--toast-color-success-background);
3337
- color: var(--toast-color-success-foreground);
3338
- }
3339
-
3340
- .muka-toast--success .muka-toast__icon {
3341
- color: var(--toast-color-success-accent);
3342
- }
3343
-
3344
- /* Variant: Warning */
3345
- .muka-toast--warning {
3346
- background-color: var(--toast-color-warning-background);
3347
- color: var(--toast-color-warning-foreground);
3348
- }
3349
-
3350
- .muka-toast--warning .muka-toast__icon {
3351
- color: var(--toast-color-warning-accent);
3352
- }
3353
-
3354
- /* Variant: Error */
3355
- .muka-toast--error {
3356
- background-color: var(--toast-color-error-background);
3357
- color: var(--toast-color-error-foreground);
3358
- }
3359
-
3360
- .muka-toast--error .muka-toast__icon {
3361
- color: var(--toast-color-error-accent);
3362
- }
3363
-
3364
- /* Icon */
3365
- .muka-toast__icon {
3366
- display: flex;
3367
- align-items: center;
3368
- justify-content: center;
3369
- flex-shrink: 0;
3370
- width: var(--toast-icon-size);
3371
- height: var(--toast-icon-size);
3372
- }
3373
-
3374
- .muka-toast__icon svg {
3375
- width: 100%;
3376
- height: 100%;
3377
- }
3378
-
3379
- /* Content */
3380
- .muka-toast__content {
3381
- flex: 1;
3382
- min-width: 0;
3383
- }
3384
-
3385
- .muka-toast__title {
3386
- font-family: var(--text-label-md-semibold-fontFamily);
3387
- font-weight: var(--text-label-md-semibold-fontWeight);
3388
- font-size: var(--text-label-md-semibold-fontSize);
3389
- line-height: var(--text-label-md-semibold-lineHeight);
3390
- margin-bottom: var(--spacing-1);
3391
- }
3392
-
3393
- .muka-toast__message {
3394
- font-family: var(--text-body-sm-regular-fontFamily);
3395
- font-weight: var(--text-body-sm-regular-fontWeight);
3396
- font-size: var(--text-body-sm-regular-fontSize);
3397
- line-height: var(--text-body-sm-regular-lineHeight);
3398
- }
3399
-
3400
- /* Action slot */
3401
- .muka-toast__action {
3402
- display: flex;
3403
- align-items: center;
3404
- flex-shrink: 0;
3405
- }
3406
-
3407
- /* Dismiss button */
3408
- .muka-toast__dismiss {
3409
- display: flex;
3410
- align-items: center;
3411
- justify-content: center;
3412
- flex-shrink: 0;
3413
- width: 24px;
3414
- height: 24px;
3415
- padding: 0;
3416
- margin: -2px -4px -2px 0;
3417
- border: none;
3418
- background: transparent;
3419
- color: inherit;
3420
- opacity: 0.7;
3421
- cursor: pointer;
3422
- border-radius: var(--border-radius-sm);
3423
- transition: opacity 0.15s ease, background-color 0.15s ease;
3424
- }
3425
-
3426
- .muka-toast__dismiss:hover {
3427
- opacity: 1;
3428
- background-color: rgba(0, 0, 0, 0.05);
3429
- }
3430
-
3431
- .muka-toast__dismiss:focus-visible {
3432
- outline: 2px solid var(--color-border-focus);
3433
- outline-offset: 2px;
3434
- opacity: 1;
3435
- }
3436
-
3437
- .muka-toast__dismiss svg {
3438
- width: 16px;
3439
- height: 16px;
3440
- }
3441
-
3442
-
3443
- /* Thumbnail */
3444
- /* Thumbnail Component Styles - Using Muka Design Tokens */
3445
-
3446
- .muka-thumbnail {
3447
- position: relative;
3448
- flex-shrink: 0;
3504
+ .muka-thumbnail {
3505
+ position: relative;
3506
+ flex-shrink: 0;
3449
3507
  }
3450
3508
 
3451
3509
  /* The frame carries the border, background and shape clip. Keeping it separate
@@ -5379,6 +5437,29 @@ body {
5379
5437
  }
5380
5438
 
5381
5439
 
5440
+ /* Section */
5441
+ /* Section Component - Layout tokens (section.padding) */
5442
+
5443
+ .muka-section {
5444
+ box-sizing: border-box;
5445
+ }
5446
+
5447
+ .muka-section--padding-compact {
5448
+ padding-block: var(--section-padding-vertical-compact);
5449
+ padding-inline: var(--section-padding-horizontal-compact);
5450
+ }
5451
+
5452
+ .muka-section--padding-default {
5453
+ padding-block: var(--section-padding-vertical-default);
5454
+ padding-inline: var(--section-padding-horizontal-default);
5455
+ }
5456
+
5457
+ .muka-section--padding-spacious {
5458
+ padding-block: var(--section-padding-vertical-spacious);
5459
+ padding-inline: var(--section-padding-horizontal-spacious);
5460
+ }
5461
+
5462
+
5382
5463
  /* SearchInput */
5383
5464
  /* SearchInput Component Styles */
5384
5465
 
@@ -5548,26 +5629,53 @@ body {
5548
5629
  }
5549
5630
 
5550
5631
 
5551
- /* Section */
5552
- /* Section Component - Layout tokens (section.padding) */
5632
+ /* RecordingBar */
5633
+ /* RecordingBar Component Styles */
5553
5634
 
5554
- .muka-section {
5555
- box-sizing: border-box;
5635
+ .muka-recording-bar {
5636
+ display: flex;
5637
+ align-items: center;
5638
+ gap: var(--spacing-3);
5639
+ width: 100%;
5640
+ min-width: 0;
5556
5641
  }
5557
5642
 
5558
- .muka-section--padding-compact {
5559
- padding-block: var(--section-padding-vertical-compact);
5560
- padding-inline: var(--section-padding-horizontal-compact);
5643
+ .muka-recording-bar__dot {
5644
+ flex: 0 0 auto;
5645
+ width: 0.625rem;
5646
+ height: 0.625rem;
5647
+ border-radius: var(--radius-full, 9999px);
5648
+ background: var(--alert-color-error-accent, var(--color-text-default-default));
5649
+ animation: muka-recording-bar-pulse 1s ease-in-out infinite;
5561
5650
  }
5562
5651
 
5563
- .muka-section--padding-default {
5564
- padding-block: var(--section-padding-vertical-default);
5565
- padding-inline: var(--section-padding-horizontal-default);
5652
+ .muka-recording-bar__time {
5653
+ flex: 0 0 auto;
5654
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
5655
+ line-height: var(--text-label-sm-lineHeight, 1);
5656
+ font-variant-numeric: tabular-nums;
5657
+ color: var(--color-text-default-default);
5566
5658
  }
5567
5659
 
5568
- .muka-section--padding-spacious {
5569
- padding-block: var(--section-padding-vertical-spacious);
5570
- padding-inline: var(--section-padding-horizontal-spacious);
5660
+ .muka-recording-bar__wave {
5661
+ flex: 1 1 auto;
5662
+ min-width: 0;
5663
+ }
5664
+
5665
+ @keyframes muka-recording-bar-pulse {
5666
+ 0%,
5667
+ 100% {
5668
+ opacity: 1;
5669
+ }
5670
+ 50% {
5671
+ opacity: 0.3;
5672
+ }
5673
+ }
5674
+
5675
+ @media (prefers-reduced-motion: reduce) {
5676
+ .muka-recording-bar__dot {
5677
+ animation: none;
5678
+ }
5571
5679
  }
5572
5680
 
5573
5681
 
@@ -7123,6 +7231,36 @@ body {
7123
7231
  }
7124
7232
 
7125
7233
 
7234
+ /* PhotoDraftStrip */
7235
+ /* PhotoDraftStrip Component Styles */
7236
+
7237
+ .muka-photo-draft-strip {
7238
+ display: flex;
7239
+ align-items: center;
7240
+ gap: var(--spacing-3);
7241
+ width: 100%;
7242
+ padding: var(--spacing-2) 0;
7243
+ }
7244
+
7245
+ .muka-photo-draft-strip__track {
7246
+ display: flex;
7247
+ gap: var(--spacing-2);
7248
+ flex: 1 1 auto;
7249
+ min-width: 0;
7250
+ overflow-x: auto;
7251
+ scroll-behavior: smooth;
7252
+ scrollbar-width: none;
7253
+ }
7254
+
7255
+ .muka-photo-draft-strip__track::-webkit-scrollbar {
7256
+ display: none;
7257
+ }
7258
+
7259
+ .muka-photo-draft-strip__item {
7260
+ flex: 0 0 auto;
7261
+ }
7262
+
7263
+
7126
7264
  /* Pagination */
7127
7265
  /* Pagination Component Styles */
7128
7266
 
@@ -8828,13 +8966,35 @@ li.muka-listitem {
8828
8966
  }
8829
8967
 
8830
8968
 
8831
- /* Drawer */
8832
- /* Drawer Component Styles */
8969
+ /* EmojiPicker */
8970
+ /* EmojiPicker Component Styles */
8833
8971
 
8834
- /* Size tokens (local to Drawer) */
8835
- .muka-drawer {
8836
- --drawer-width-sm: 18rem;
8837
- --drawer-width-md: 26rem;
8972
+ .muka-emoji-picker {
8973
+ display: grid;
8974
+ grid-template-columns: repeat(8, 1fr);
8975
+ gap: var(--spacing-1);
8976
+ padding: var(--spacing-2);
8977
+ max-height: 12rem;
8978
+ overflow-y: auto;
8979
+ background: var(--color-surface-level2);
8980
+ border: var(--border-width-regular, 1px) solid var(--color-border-default);
8981
+ border-radius: var(--radius-lg);
8982
+ box-shadow: var(--menu-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
8983
+ }
8984
+
8985
+ .muka-emoji-picker__glyph {
8986
+ font-size: 1.25rem;
8987
+ line-height: 1;
8988
+ }
8989
+
8990
+
8991
+ /* Drawer */
8992
+ /* Drawer Component Styles */
8993
+
8994
+ /* Size tokens (local to Drawer) */
8995
+ .muka-drawer {
8996
+ --drawer-width-sm: 18rem;
8997
+ --drawer-width-md: 26rem;
8838
8998
  --drawer-width-lg: 36rem;
8839
8999
  }
8840
9000
 
@@ -13486,148 +13646,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13486
13646
  }
13487
13647
 
13488
13648
 
13489
- /* ActionSheet */
13490
- /* ActionSheet Component Styles */
13491
-
13492
- .muka-action-sheet__inner {
13493
- display: flex;
13494
- flex-direction: column;
13495
- padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13496
- gap: var(--spacing-3);
13497
- }
13498
-
13499
- /* ─── Header ──────────────────────────────────────────── */
13500
-
13501
- .muka-action-sheet__header {
13502
- display: flex;
13503
- flex-direction: column;
13504
- align-items: center;
13505
- gap: var(--spacing-1);
13506
- padding: var(--spacing-2) 0 var(--spacing-3);
13507
- text-align: center;
13508
- }
13509
-
13510
- .muka-action-sheet__title {
13511
- margin: 0;
13512
- color: var(--color-text-default-default);
13513
- font-family: var(--text-label-md-semibold-fontFamily);
13514
- font-weight: var(--text-label-md-semibold-fontWeight);
13515
- font-size: var(--text-label-md-semibold-fontSize);
13516
- line-height: var(--text-label-md-semibold-lineHeight);
13517
- }
13518
-
13519
- .muka-action-sheet__description {
13520
- margin: 0;
13521
- color: var(--color-text-subtle-default);
13522
- font-family: var(--text-body-sm-regular-fontFamily);
13523
- font-weight: var(--text-body-sm-regular-fontWeight);
13524
- font-size: var(--text-body-sm-regular-fontSize);
13525
- line-height: var(--text-body-sm-regular-lineHeight);
13526
- }
13527
-
13528
- /* ─── Actions group ───────────────────────────────────── */
13529
-
13530
- .muka-action-sheet__actions {
13531
- display: flex;
13532
- flex-direction: column;
13533
- background-color: var(--color-surface-level1);
13534
- border-radius: var(--radius-md);
13535
- overflow: hidden;
13536
- }
13537
-
13538
- .muka-action-sheet__item {
13539
- display: flex;
13540
- align-items: center;
13541
- gap: var(--spacing-3);
13542
- padding: var(--spacing-3) var(--spacing-4);
13543
- background: none;
13544
- border: none;
13545
- cursor: pointer;
13546
- text-align: left;
13547
- color: var(--color-text-default-default);
13548
- font-family: var(--text-body-md-regular-fontFamily);
13549
- font-weight: var(--text-body-md-regular-fontWeight);
13550
- font-size: var(--text-body-md-regular-fontSize);
13551
- line-height: var(--text-body-md-regular-lineHeight);
13552
- -webkit-tap-highlight-color: transparent;
13553
- transition: background-color 0.12s ease;
13554
- }
13555
-
13556
- .muka-action-sheet__item + .muka-action-sheet__item {
13557
- border-top: var(--border-width-regular) solid var(--color-border-default);
13558
- }
13559
-
13560
- .muka-action-sheet__item:hover:not(:disabled) {
13561
- background-color: var(--color-surface-level2);
13562
- }
13563
-
13564
- .muka-action-sheet__item:active:not(:disabled) {
13565
- background-color: var(--color-surface-level3);
13566
- }
13567
-
13568
- .muka-action-sheet__item:focus-visible {
13569
- outline: 2px solid var(--color-action-default);
13570
- outline-offset: -2px;
13571
- }
13572
-
13573
- .muka-action-sheet__item--destructive {
13574
- color: var(--color-state-error-default);
13575
- }
13576
-
13577
- .muka-action-sheet__item--disabled,
13578
- .muka-action-sheet__item:disabled {
13579
- opacity: 0.5;
13580
- cursor: not-allowed;
13581
- }
13582
-
13583
- .muka-action-sheet__item-icon {
13584
- display: inline-flex;
13585
- align-items: center;
13586
- justify-content: center;
13587
- width: 24px;
13588
- height: 24px;
13589
- flex-shrink: 0;
13590
- }
13591
-
13592
- .muka-action-sheet__item-icon svg {
13593
- width: 100%;
13594
- height: 100%;
13595
- }
13596
-
13597
- .muka-action-sheet__item-label {
13598
- flex: 1;
13599
- }
13600
-
13601
- /* ─── Cancel button (separate at bottom) ──────────────── */
13602
-
13603
- .muka-action-sheet__cancel {
13604
- display: flex;
13605
- align-items: center;
13606
- justify-content: center;
13607
- padding: var(--spacing-3) var(--spacing-4);
13608
- background-color: var(--color-surface-level1);
13609
- border: none;
13610
- border-radius: var(--radius-md);
13611
- cursor: pointer;
13612
- color: var(--color-text-default-default);
13613
- font-family: var(--text-label-md-semibold-fontFamily);
13614
- font-weight: var(--text-label-md-semibold-fontWeight);
13615
- font-size: var(--text-label-md-semibold-fontSize);
13616
- line-height: var(--text-label-md-semibold-lineHeight);
13617
- -webkit-tap-highlight-color: transparent;
13618
- transition: background-color 0.12s ease;
13619
- }
13620
-
13621
- .muka-action-sheet__cancel:hover {
13622
- background-color: var(--color-surface-level2);
13623
- }
13624
-
13625
- .muka-action-sheet__cancel:focus-visible {
13626
- outline: 2px solid var(--color-action-default);
13627
- outline-offset: 2px;
13628
- }
13629
-
13630
-
13631
13649
  /* AgentTaskList */
13632
13650
  /* AgentTaskList Component Styles */
13633
13651
 
@@ -13797,6 +13815,148 @@ button.muka-chat-photo-grid__tile:focus-visible {
13797
13815
  }
13798
13816
 
13799
13817
 
13818
+ /* ActionSheet */
13819
+ /* ActionSheet Component Styles */
13820
+
13821
+ .muka-action-sheet__inner {
13822
+ display: flex;
13823
+ flex-direction: column;
13824
+ padding: 0 var(--spacing-4) var(--spacing-3) var(--spacing-4);
13825
+ gap: var(--spacing-3);
13826
+ }
13827
+
13828
+ /* ─── Header ──────────────────────────────────────────── */
13829
+
13830
+ .muka-action-sheet__header {
13831
+ display: flex;
13832
+ flex-direction: column;
13833
+ align-items: center;
13834
+ gap: var(--spacing-1);
13835
+ padding: var(--spacing-2) 0 var(--spacing-3);
13836
+ text-align: center;
13837
+ }
13838
+
13839
+ .muka-action-sheet__title {
13840
+ margin: 0;
13841
+ color: var(--color-text-default-default);
13842
+ font-family: var(--text-label-md-semibold-fontFamily);
13843
+ font-weight: var(--text-label-md-semibold-fontWeight);
13844
+ font-size: var(--text-label-md-semibold-fontSize);
13845
+ line-height: var(--text-label-md-semibold-lineHeight);
13846
+ }
13847
+
13848
+ .muka-action-sheet__description {
13849
+ margin: 0;
13850
+ color: var(--color-text-subtle-default);
13851
+ font-family: var(--text-body-sm-regular-fontFamily);
13852
+ font-weight: var(--text-body-sm-regular-fontWeight);
13853
+ font-size: var(--text-body-sm-regular-fontSize);
13854
+ line-height: var(--text-body-sm-regular-lineHeight);
13855
+ }
13856
+
13857
+ /* ─── Actions group ───────────────────────────────────── */
13858
+
13859
+ .muka-action-sheet__actions {
13860
+ display: flex;
13861
+ flex-direction: column;
13862
+ background-color: var(--color-surface-level1);
13863
+ border-radius: var(--radius-md);
13864
+ overflow: hidden;
13865
+ }
13866
+
13867
+ .muka-action-sheet__item {
13868
+ display: flex;
13869
+ align-items: center;
13870
+ gap: var(--spacing-3);
13871
+ padding: var(--spacing-3) var(--spacing-4);
13872
+ background: none;
13873
+ border: none;
13874
+ cursor: pointer;
13875
+ text-align: left;
13876
+ color: var(--color-text-default-default);
13877
+ font-family: var(--text-body-md-regular-fontFamily);
13878
+ font-weight: var(--text-body-md-regular-fontWeight);
13879
+ font-size: var(--text-body-md-regular-fontSize);
13880
+ line-height: var(--text-body-md-regular-lineHeight);
13881
+ -webkit-tap-highlight-color: transparent;
13882
+ transition: background-color 0.12s ease;
13883
+ }
13884
+
13885
+ .muka-action-sheet__item + .muka-action-sheet__item {
13886
+ border-top: var(--border-width-regular) solid var(--color-border-default);
13887
+ }
13888
+
13889
+ .muka-action-sheet__item:hover:not(:disabled) {
13890
+ background-color: var(--color-surface-level2);
13891
+ }
13892
+
13893
+ .muka-action-sheet__item:active:not(:disabled) {
13894
+ background-color: var(--color-surface-level3);
13895
+ }
13896
+
13897
+ .muka-action-sheet__item:focus-visible {
13898
+ outline: 2px solid var(--color-action-default);
13899
+ outline-offset: -2px;
13900
+ }
13901
+
13902
+ .muka-action-sheet__item--destructive {
13903
+ color: var(--color-state-error-default);
13904
+ }
13905
+
13906
+ .muka-action-sheet__item--disabled,
13907
+ .muka-action-sheet__item:disabled {
13908
+ opacity: 0.5;
13909
+ cursor: not-allowed;
13910
+ }
13911
+
13912
+ .muka-action-sheet__item-icon {
13913
+ display: inline-flex;
13914
+ align-items: center;
13915
+ justify-content: center;
13916
+ width: 24px;
13917
+ height: 24px;
13918
+ flex-shrink: 0;
13919
+ }
13920
+
13921
+ .muka-action-sheet__item-icon svg {
13922
+ width: 100%;
13923
+ height: 100%;
13924
+ }
13925
+
13926
+ .muka-action-sheet__item-label {
13927
+ flex: 1;
13928
+ }
13929
+
13930
+ /* ─── Cancel button (separate at bottom) ──────────────── */
13931
+
13932
+ .muka-action-sheet__cancel {
13933
+ display: flex;
13934
+ align-items: center;
13935
+ justify-content: center;
13936
+ padding: var(--spacing-3) var(--spacing-4);
13937
+ background-color: var(--color-surface-level1);
13938
+ border: none;
13939
+ border-radius: var(--radius-md);
13940
+ cursor: pointer;
13941
+ color: var(--color-text-default-default);
13942
+ font-family: var(--text-label-md-semibold-fontFamily);
13943
+ font-weight: var(--text-label-md-semibold-fontWeight);
13944
+ font-size: var(--text-label-md-semibold-fontSize);
13945
+ line-height: var(--text-label-md-semibold-lineHeight);
13946
+ -webkit-tap-highlight-color: transparent;
13947
+ transition: background-color 0.12s ease;
13948
+ }
13949
+
13950
+ .muka-action-sheet__cancel:hover {
13951
+ background-color: var(--color-surface-level2);
13952
+ }
13953
+
13954
+ .muka-action-sheet__cancel:focus-visible {
13955
+ outline: 2px solid var(--color-action-default);
13956
+ outline-offset: 2px;
13957
+ }
13958
+
13959
+
13800
13960
  /* Accordion */
13801
13961
  /* Accordion Component Styles */
13802
13962