@yewdiel21/motion-kit 0.17.0 → 0.19.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 (181) hide show
  1. package/README.md +240 -199
  2. package/dist/auto/index.d.ts +19 -3
  3. package/dist/auto/index.js +35 -3
  4. package/dist/auto/index.js.map +1 -1
  5. package/dist/{chunk-QFBOHPWZ.js → chunk-CQP66AZK.js} +2 -2
  6. package/dist/{chunk-QP4QJOEN.js → chunk-H4STLMCM.js} +2 -2
  7. package/dist/{chunk-BZLMCHUD.js → chunk-KDIJX6G4.js} +3 -3
  8. package/dist/{chunk-DOOMULVV.js → chunk-OLT3CWDJ.js} +4 -2
  9. package/dist/chunk-OLT3CWDJ.js.map +1 -0
  10. package/dist/{chunk-VJFPTLAK.js → chunk-PEDYJ2TV.js} +8 -22
  11. package/dist/chunk-PEDYJ2TV.js.map +1 -0
  12. package/dist/{chunk-7IQTMF7Y.js → chunk-Y4GIBTRG.js} +5130 -2153
  13. package/dist/chunk-Y4GIBTRG.js.map +1 -0
  14. package/dist/css/components/badge-button.css +16 -0
  15. package/dist/css/components/bento-grid.css +13 -0
  16. package/dist/css/components/code-block.css +267 -0
  17. package/dist/css/components/command-search.css +274 -2
  18. package/dist/css/components/dialog.css +264 -0
  19. package/dist/css/components/drilldown-menu.css +11 -7
  20. package/dist/css/components/equalizer-slider.css +26 -0
  21. package/dist/css/components/handwriting-text.css +15 -0
  22. package/dist/css/components/heatmap-chart.css +267 -1
  23. package/dist/css/components/magnetize-button.css +18 -0
  24. package/dist/css/components/morphing-page-dots.css +13 -0
  25. package/dist/css/components/not-found.css +22 -0
  26. package/dist/css/components/notification-stack.css +42 -0
  27. package/dist/css/components/particle-button.css +14 -0
  28. package/dist/css/components/radio-group.css +29 -0
  29. package/dist/css/components/rating-scale.css +23 -0
  30. package/dist/css/components/scroll-area.css +261 -0
  31. package/dist/css/components/scroll-preview-dock.css +18 -0
  32. package/dist/css/components/select.css +300 -4
  33. package/dist/css/components/signature-pad.css +130 -103
  34. package/dist/css/components/stepper.css +36 -0
  35. package/dist/css/components/sticky-header.css +10 -0
  36. package/dist/css/components/temperature-slider.css +29 -0
  37. package/dist/css/components/voice-message-bubble.css +62 -45
  38. package/dist/css/components/waveform-player.css +49 -34
  39. package/dist/css/components/wheel-picker.css +16 -15
  40. package/dist/css/tokens.css +4 -0
  41. package/dist/elements/index.d.ts +217 -4
  42. package/dist/elements/index.js +614 -9
  43. package/dist/elements/index.js.map +1 -1
  44. package/dist/{engine-Bn6hC87X.d.ts → engine-D6XV-WNt.d.ts} +390 -1
  45. package/dist/gl/index.js +2 -2
  46. package/dist/index.css +886 -177
  47. package/dist/index.d.ts +23 -23
  48. package/dist/index.js +37 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/react/index.d.ts +126 -7
  51. package/dist/react/index.js +722 -7
  52. package/dist/react/index.js.map +1 -1
  53. package/dist/{reduced-YS6TZjpa.d.ts → reduced-4croIXl-.d.ts} +1 -1
  54. package/dist/{store-CZ6vdtIE.d.ts → store-CAHWkurn.d.ts} +1 -1
  55. package/package.json +110 -110
  56. package/registry.json +1357 -1160
  57. package/src/auto/auto-init.ts +341 -308
  58. package/src/components/badge-button/README.md +28 -0
  59. package/src/components/badge-button/badge-button.css +15 -0
  60. package/src/components/badge-button/element.ts +16 -0
  61. package/src/components/badge-button/engine.ts +85 -0
  62. package/src/components/badge-button/react.tsx +31 -0
  63. package/src/components/bento-grid/README.md +26 -0
  64. package/src/components/bento-grid/bento-grid.css +12 -0
  65. package/src/components/bento-grid/element.ts +22 -0
  66. package/src/components/bento-grid/engine.ts +153 -0
  67. package/src/components/bento-grid/react.tsx +25 -0
  68. package/src/components/code-block/README.md +1 -1
  69. package/src/components/code-block/code-block.css +5 -0
  70. package/src/components/code-block/engine.ts +5 -0
  71. package/src/components/command-search/README.md +1 -1
  72. package/src/components/command-search/command-search.css +12 -2
  73. package/src/components/command-search/engine.ts +6 -0
  74. package/src/components/dialog/README.md +104 -103
  75. package/src/components/dialog/dialog.css +2 -0
  76. package/src/components/dialog/engine.ts +465 -449
  77. package/src/components/drilldown-menu/drilldown-menu.css +11 -7
  78. package/src/components/drilldown-menu/engine.ts +44 -4
  79. package/src/components/equalizer-slider/README.md +43 -0
  80. package/src/components/equalizer-slider/element.ts +41 -0
  81. package/src/components/equalizer-slider/engine.ts +32 -0
  82. package/src/components/equalizer-slider/equalizer-slider.css +26 -0
  83. package/src/components/equalizer-slider/react.tsx +60 -0
  84. package/src/components/equalizer-slider/shared.ts +161 -0
  85. package/src/components/handwriting-text/README.md +29 -0
  86. package/src/components/handwriting-text/element.ts +14 -0
  87. package/src/components/handwriting-text/engine.ts +108 -0
  88. package/src/components/handwriting-text/glyphs.ts +71 -0
  89. package/src/components/handwriting-text/handwriting-text.css +14 -0
  90. package/src/components/handwriting-text/react.tsx +23 -0
  91. package/src/components/heatmap-chart/README.md +48 -48
  92. package/src/components/heatmap-chart/engine.ts +6 -1
  93. package/src/components/heatmap-chart/heatmap-chart.css +5 -1
  94. package/src/components/icons.ts +1 -0
  95. package/src/components/magnetize-button/README.md +26 -0
  96. package/src/components/magnetize-button/element.ts +13 -0
  97. package/src/components/magnetize-button/engine.ts +84 -0
  98. package/src/components/magnetize-button/magnetize-button.css +17 -0
  99. package/src/components/magnetize-button/react.tsx +22 -0
  100. package/src/components/morphing-page-dots/README.md +28 -0
  101. package/src/components/morphing-page-dots/element.ts +16 -0
  102. package/src/components/morphing-page-dots/engine.ts +89 -0
  103. package/src/components/morphing-page-dots/morphing-page-dots.css +12 -0
  104. package/src/components/morphing-page-dots/react.tsx +32 -0
  105. package/src/components/not-found/README.md +26 -0
  106. package/src/components/not-found/element.ts +15 -0
  107. package/src/components/not-found/engine.ts +57 -0
  108. package/src/components/not-found/not-found.css +21 -0
  109. package/src/components/not-found/react.tsx +23 -0
  110. package/src/components/notification-stack/README.md +24 -0
  111. package/src/components/notification-stack/element.ts +26 -0
  112. package/src/components/notification-stack/engine.ts +329 -0
  113. package/src/components/notification-stack/notification-stack.css +41 -0
  114. package/src/components/notification-stack/react.tsx +28 -0
  115. package/src/components/particle-button/README.md +26 -0
  116. package/src/components/particle-button/element.ts +13 -0
  117. package/src/components/particle-button/engine.ts +52 -0
  118. package/src/components/particle-button/particle-button.css +13 -0
  119. package/src/components/particle-button/react.tsx +22 -0
  120. package/src/components/radio-group/README.md +43 -0
  121. package/src/components/radio-group/element.ts +41 -0
  122. package/src/components/radio-group/engine.ts +11 -0
  123. package/src/components/radio-group/radio-group.css +28 -0
  124. package/src/components/radio-group/react.tsx +60 -0
  125. package/src/components/radio-group/shared.ts +118 -0
  126. package/src/components/rating-scale/README.md +43 -0
  127. package/src/components/rating-scale/element.ts +41 -0
  128. package/src/components/rating-scale/engine.ts +63 -0
  129. package/src/components/rating-scale/rating-scale.css +22 -0
  130. package/src/components/rating-scale/react.tsx +60 -0
  131. package/src/components/scroll-area/README.md +89 -0
  132. package/src/components/scroll-area/element.ts +35 -0
  133. package/src/components/scroll-area/engine.ts +528 -0
  134. package/src/components/scroll-area/react.tsx +67 -0
  135. package/src/components/scroll-area/scroll-area.css +260 -0
  136. package/src/components/scroll-preview-dock/README.md +24 -0
  137. package/src/components/scroll-preview-dock/element.ts +20 -0
  138. package/src/components/scroll-preview-dock/engine.ts +228 -0
  139. package/src/components/scroll-preview-dock/react.tsx +26 -0
  140. package/src/components/scroll-preview-dock/scroll-preview-dock.css +17 -0
  141. package/src/components/select/README.md +23 -9
  142. package/src/components/select/engine.ts +16 -4
  143. package/src/components/select/select.css +38 -4
  144. package/src/components/signature-pad/engine.ts +550 -437
  145. package/src/components/signature-pad/signature-pad.css +130 -103
  146. package/src/components/stepper/README.md +46 -0
  147. package/src/components/stepper/element.ts +42 -0
  148. package/src/components/stepper/engine.ts +103 -0
  149. package/src/components/stepper/react.tsx +60 -0
  150. package/src/components/stepper/stepper.css +35 -0
  151. package/src/components/sticky-header/README.md +30 -0
  152. package/src/components/sticky-header/element.ts +19 -0
  153. package/src/components/sticky-header/engine.ts +95 -0
  154. package/src/components/sticky-header/react.tsx +25 -0
  155. package/src/components/sticky-header/sticky-header.css +9 -0
  156. package/src/components/temperature-slider/README.md +42 -0
  157. package/src/components/temperature-slider/element.ts +53 -0
  158. package/src/components/temperature-slider/engine.ts +44 -0
  159. package/src/components/temperature-slider/react.tsx +66 -0
  160. package/src/components/temperature-slider/temperature-slider.css +29 -0
  161. package/src/components/voice-message-bubble/engine.ts +11 -0
  162. package/src/components/voice-message-bubble/voice-message-bubble.css +14 -12
  163. package/src/components/waveform-player/README.md +1 -1
  164. package/src/components/waveform-player/engine.ts +344 -261
  165. package/src/components/waveform-player/waveform-player.css +50 -35
  166. package/src/components/wheel-picker/README.md +3 -1
  167. package/src/components/wheel-picker/element.ts +12 -5
  168. package/src/components/wheel-picker/engine.ts +37 -8
  169. package/src/components/wheel-picker/wheel-picker.css +17 -16
  170. package/src/core/timing.ts +2 -0
  171. package/src/css/tokens.css +4 -0
  172. package/src/elements/index.ts +321 -273
  173. package/src/index.ts +312 -295
  174. package/src/motion/morph.ts +5 -2
  175. package/src/react/index.ts +17 -0
  176. package/dist/chunk-7IQTMF7Y.js.map +0 -1
  177. package/dist/chunk-DOOMULVV.js.map +0 -1
  178. package/dist/chunk-VJFPTLAK.js.map +0 -1
  179. /package/dist/{chunk-QFBOHPWZ.js.map → chunk-CQP66AZK.js.map} +0 -0
  180. /package/dist/{chunk-QP4QJOEN.js.map → chunk-H4STLMCM.js.map} +0 -0
  181. /package/dist/{chunk-BZLMCHUD.js.map → chunk-KDIJX6G4.js.map} +0 -0
@@ -1,50 +1,67 @@
1
1
  /* components/waveform-player/waveform-player.css */
2
- .mk-waveform-player, mk-waveform-player {
3
- --mk-wave-color: var(--mk-accent);
4
- --mk-wave-track: color-mix(in srgb, var(--mk-text) 38%, transparent);
5
- display: block;
6
- width: 100%;
7
- min-width: 0;
8
- color: var(--mk-text);
9
- font-family: var(--mk-font);
10
- }
11
- [data-mk-wave-content] { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .875rem; }
12
- [data-mk-wave-toggle] { display: grid; place-items: center; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: var(--mk-wave-color); color: var(--mk-on-accent, var(--mk-bg)); cursor: pointer; }
13
- [data-mk-wave-toggle] svg { width: 1.4rem; height: 1.4rem; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
14
- [data-mk-wave-body] { min-width: 0; }
15
- [data-mk-wave-track] { position: relative; height: 3rem; border-radius: .5rem; }
16
- [data-mk-wave-bars] { display: flex; align-items: center; gap: 3px; height: 100%; pointer-events: none; overflow: hidden; }
17
- [data-mk-wave-bar] { display: block; flex: 1 1 0; min-width: 1px; border-radius: 999px; background: var(--mk-wave-track); transition: background-color .16s ease; }
18
- [data-mk-wave-bar][data-mk-played] { background: var(--mk-wave-color); }
19
- [data-mk-wave-seek] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
20
- [data-mk-wave-track]:has(input:focus-visible) { outline: 2px solid var(--mk-wave-color); outline-offset: 4px; }
21
- [data-mk-wave-footer] { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 2rem; }
22
- [data-mk-wave-time] { color: var(--mk-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
23
- [data-mk-wave-rate] { min-width: 44px; min-height: 44px; padding: .25rem .5rem; border: 0; border-radius: 99px; color: var(--mk-text); background: var(--mk-surface-2); font: 600 .75rem var(--mk-font); cursor: pointer; }
24
- [data-mk-wave-rate][hidden] { display: none; }
25
- [data-mk-wave-message] { grid-column: 2; color: var(--mk-muted); font-size: .75rem; line-height: 1.5; }
26
- [data-mk-wave-message]:empty { display: none; }
27
- [data-mk-wave-toggle]:focus-visible, [data-mk-wave-rate]:focus-visible { outline: 2px solid var(--mk-wave-color); outline-offset: 3px; }
28
- [data-mk-wave-toggle]:disabled, [data-mk-wave-rate]:disabled { opacity: .5; cursor: default; }
29
- [data-mk-wave-track]:has(input:disabled) { opacity: .55; }
30
- [data-mk-wave-state='error'] [data-mk-wave-message] { color: var(--mk-error, var(--mk-text)); }
31
- @media (prefers-reduced-motion: reduce) { [data-mk-wave-bar] { transition: none; } }
32
- @media (forced-colors: active) {
33
- [data-mk-wave-toggle], [data-mk-wave-rate] { border: 1px solid ButtonText; }
34
- [data-mk-wave-bar] { background: GrayText; }
35
- [data-mk-wave-bar][data-mk-played] { background: Highlight; }
2
+ /* Shares the equalizer's vocabulary: tonal track, pill bars, a cut-out head that grows when held. */
3
+ .mk-waveform-player, mk-waveform-player {
4
+ --mk-wave-color: var(--mk-text);
5
+ --mk-wave-track: var(--mk-outline-soft);
6
+ --mk-wave-surface: var(--mk-surface-2);
7
+ --mk-wave-inset: 14px;
8
+ display: block;
9
+ width: 100%;
10
+ min-width: 0;
11
+ color: var(--mk-text);
12
+ font-family: var(--mk-font);
13
+ }
14
+ [data-mk-wave-content] { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .875rem; }
15
+ [data-mk-wave-toggle] { display: grid; place-items: center; align-self: start; width: 3.5rem; height: 3.5rem; margin-top: .25rem; border: 0; border-radius: 50%; background: var(--mk-text); color: var(--mk-bg); cursor: pointer; transition: border-radius .4s var(--mk-ease-playful); }
16
+ [data-mk-wave-toggle]:hover:enabled { border-radius: 22px; }
17
+ [data-mk-wave-icon] { display: grid; place-items: center; width: 24px; height: 24px; }
18
+ [data-mk-wave-state='playing'] [data-mk-wave-toggle] { border-radius: 20px; }
19
+ [data-mk-wave-toggle] svg { width: 1.4rem; height: 1.4rem; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
20
+ [data-mk-wave-body] { display: grid; gap: .5rem; min-width: 0; }
21
+ [data-mk-wave-track] { position: relative; height: 4rem; min-width: 0; border-radius: 24px; background: var(--mk-wave-surface); }
22
+ [data-mk-wave-bars] { position: absolute; inset: 12px var(--mk-wave-inset); display: flex; align-items: center; gap: 3px; pointer-events: none; }
23
+ [data-mk-wave-bar] { display: block; flex: 1 1 0; min-width: 1px; min-height: 4px; border-radius: 64px; background: var(--mk-wave-track); transform-origin: center; transition: background-color .16s; }
24
+ [data-mk-wave-bar][data-mk-played] { background: var(--mk-wave-color); }
25
+ [data-mk-wave-head] { position: absolute; z-index: 2; top: 50%; left: calc(var(--mk-wave-inset) + (100% - 2 * var(--mk-wave-inset)) * var(--mk-wave-progress, 0)); box-sizing: content-box; width: 4px; height: calc(100% - 20px); border: 3px solid var(--mk-wave-surface); border-radius: 64px; background: var(--mk-wave-color); translate: -50% -50%; pointer-events: none; transition: height .35s var(--mk-ease-swatch), border-width .35s var(--mk-ease-swatch); }
26
+ [data-mk-wave-scrubbing] [data-mk-wave-head] { height: calc(100% - 10px); border-width: 5px; }
27
+ @media (hover: hover) { [data-mk-wave-track]:has(input:enabled:hover) [data-mk-wave-head] { height: calc(100% - 14px); } }
28
+ [data-mk-wave-preview] { position: absolute; bottom: calc(100% + 10px); left: calc(var(--mk-wave-inset) + (100% - 2 * var(--mk-wave-inset)) * var(--mk-wave-at, 0)); z-index: 3; padding: .4rem .7rem; border-radius: 99px; background: var(--mk-glass-inverse); color: var(--mk-bg); backdrop-filter: blur(16px); box-shadow: inset 1px 1px 1px color-mix(in srgb, var(--mk-bg) 20%, transparent); font-size: .6875rem; font-variant-numeric: tabular-nums; translate: -50% 0; pointer-events: none; }
29
+ [data-mk-wave-preview][hidden] { display: none; }
30
+ [data-mk-wave-seek] { position: absolute; z-index: 4; inset: 0; box-sizing: border-box; width: 100%; height: 100%; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; opacity: 0; cursor: ew-resize; }
31
+ [data-mk-wave-seek]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: calc(2 * var(--mk-wave-inset)); height: 4rem; background: transparent; }
32
+ [data-mk-wave-seek]::-moz-range-thumb { width: calc(2 * var(--mk-wave-inset)); height: 4rem; border: 0; background: transparent; }
33
+ [data-mk-wave-track]:has(input:focus-visible) { outline: 2px solid var(--mk-accent); outline-offset: 4px; }
34
+ [data-mk-wave-footer] { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 2rem; }
35
+ [data-mk-wave-time] { color: var(--mk-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
36
+ [data-mk-wave-rate] { min-width: 44px; min-height: 36px; padding: .375rem .75rem; border: 0; border-radius: 64px; color: var(--mk-text); background: var(--mk-wave-surface); font: 600 .75rem var(--mk-font); font-variant-numeric: tabular-nums; cursor: pointer; transition: padding .35s var(--mk-ease-swatch), background .15s; }
37
+ [data-mk-wave-rate]:hover:enabled { padding-inline: 1rem; background: color-mix(in srgb, var(--mk-text) 8%, var(--mk-wave-surface)); }
38
+ [data-mk-wave-rate][hidden] { display: none; }
39
+ [data-mk-wave-message] { grid-column: 2; color: var(--mk-muted); font-size: .75rem; line-height: 1.5; }
40
+ [data-mk-wave-message]:empty { display: none; }
41
+ [data-mk-wave-toggle]:focus-visible, [data-mk-wave-rate]:focus-visible { outline: 2px solid var(--mk-accent); outline-offset: 3px; }
42
+ [data-mk-wave-toggle]:disabled, [data-mk-wave-rate]:disabled { opacity: .5; cursor: default; }
43
+ [data-mk-wave-track]:has(input:disabled) { opacity: .55; }
44
+ [data-mk-wave-track]:has(input:disabled) [data-mk-wave-seek] { cursor: default; }
45
+ [data-mk-wave-state='error'] [data-mk-wave-message] { color: var(--mk-error, var(--mk-text)); }
46
+ @media (prefers-reduced-motion: reduce) { [data-mk-wave-bar], [data-mk-wave-toggle], [data-mk-wave-head], [data-mk-wave-rate] { transition: none; } }
47
+ @media (forced-colors: active) {
48
+ [data-mk-wave-toggle], [data-mk-wave-rate] { border: 1px solid ButtonText; }
49
+ [data-mk-wave-bar] { background: GrayText; }
50
+ [data-mk-wave-bar][data-mk-played], [data-mk-wave-head] { background: Highlight; }
36
51
  }
37
52
 
38
53
  /* components/voice-message-bubble/voice-message-bubble.css */
39
- /* Requires waveform-player.css; the bubble composes its player without duplicating it. */
40
- .mk-voice-message-bubble, mk-voice-message-bubble { display: block; width: min(100%, 25rem); color: var(--mk-text); font-family: var(--mk-font); }
41
- [data-mk-voice-message-content] { display: grid; gap: .75rem; padding: 1rem 1.125rem .75rem; background: var(--mk-surface-2); border: 1px solid var(--mk-outline-soft); border-radius: 1.5rem 1.5rem 1.5rem .375rem; }
42
- :is(.mk-voice-message-bubble, mk-voice-message-bubble)[data-mk-direction='outgoing'] { margin-inline-start: auto; }
43
- :is(.mk-voice-message-bubble, mk-voice-message-bubble)[data-mk-direction='outgoing'] [data-mk-voice-message-content] { background: color-mix(in srgb, var(--mk-accent) 10%, var(--mk-surface-1)); border-radius: 1.5rem 1.5rem .375rem 1.5rem; }
44
- [data-mk-voice-message-header], [data-mk-voice-message-footer] { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; font-size: .6875rem; color: var(--mk-muted); }
45
- [data-mk-voice-message-author] { font-weight: 600; color: var(--mk-text); }
46
- [data-mk-voice-message-caption] { margin-inline-start: auto; }
47
- [data-mk-voice-message-footer] { justify-content: flex-end; }
48
- [data-mk-voice-message-status] { color: var(--mk-accent); }
49
- [data-mk-voice-message-content] .mk-waveform-player { --mk-wave-track: color-mix(in srgb, var(--mk-text) 38%, transparent); }
54
+ /* Requires waveform-player.css; the bubble composes its player without duplicating it. */
55
+ .mk-voice-message-bubble, mk-voice-message-bubble { display: block; width: min(100%, 25rem); color: var(--mk-text); font-family: var(--mk-font); }
56
+ [data-mk-voice-message-content] { display: grid; gap: .5rem; padding: 1rem 1.25rem .75rem; background: var(--mk-surface-2); border: 0; border-radius: 32px 32px 32px 12px; }
57
+ :is(.mk-voice-message-bubble, mk-voice-message-bubble)[data-mk-direction='outgoing'] { margin-inline-start: auto; }
58
+ :is(.mk-voice-message-bubble, mk-voice-message-bubble)[data-mk-direction='outgoing'] [data-mk-voice-message-content] { background: var(--mk-surface-3); border-radius: 32px 32px 12px 32px; }
59
+ [data-mk-voice-message-header], [data-mk-voice-message-footer] { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; font-size: .6875rem; color: var(--mk-muted); }
60
+ [data-mk-voice-message-author] { font-weight: 600; color: var(--mk-text); }
61
+ [data-mk-voice-message-caption] { margin-inline-start: auto; }
62
+ [data-mk-voice-message-footer] { justify-content: flex-end; }
63
+ [data-mk-voice-message-status] { color: var(--mk-accent); }
64
+ /* The track steps one tonal level above its bubble, like the equalizer above the page. */
65
+ [data-mk-voice-message-content] .mk-waveform-player { --mk-wave-surface: var(--mk-surface-3); }
66
+ :is(.mk-voice-message-bubble, mk-voice-message-bubble)[data-mk-direction='outgoing'] .mk-waveform-player { --mk-wave-surface: var(--mk-surface-4); }
50
67
  @media (forced-colors: active) { [data-mk-voice-message-content] { border-color: CanvasText; } }
@@ -1,36 +1,51 @@
1
1
  /* components/waveform-player/waveform-player.css */
2
- .mk-waveform-player, mk-waveform-player {
3
- --mk-wave-color: var(--mk-accent);
4
- --mk-wave-track: color-mix(in srgb, var(--mk-text) 38%, transparent);
5
- display: block;
6
- width: 100%;
7
- min-width: 0;
8
- color: var(--mk-text);
9
- font-family: var(--mk-font);
10
- }
11
- [data-mk-wave-content] { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .875rem; }
12
- [data-mk-wave-toggle] { display: grid; place-items: center; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: var(--mk-wave-color); color: var(--mk-on-accent, var(--mk-bg)); cursor: pointer; }
13
- [data-mk-wave-toggle] svg { width: 1.4rem; height: 1.4rem; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
14
- [data-mk-wave-body] { min-width: 0; }
15
- [data-mk-wave-track] { position: relative; height: 3rem; border-radius: .5rem; }
16
- [data-mk-wave-bars] { display: flex; align-items: center; gap: 3px; height: 100%; pointer-events: none; overflow: hidden; }
17
- [data-mk-wave-bar] { display: block; flex: 1 1 0; min-width: 1px; border-radius: 999px; background: var(--mk-wave-track); transition: background-color .16s ease; }
18
- [data-mk-wave-bar][data-mk-played] { background: var(--mk-wave-color); }
19
- [data-mk-wave-seek] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
20
- [data-mk-wave-track]:has(input:focus-visible) { outline: 2px solid var(--mk-wave-color); outline-offset: 4px; }
21
- [data-mk-wave-footer] { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 2rem; }
22
- [data-mk-wave-time] { color: var(--mk-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
23
- [data-mk-wave-rate] { min-width: 44px; min-height: 44px; padding: .25rem .5rem; border: 0; border-radius: 99px; color: var(--mk-text); background: var(--mk-surface-2); font: 600 .75rem var(--mk-font); cursor: pointer; }
24
- [data-mk-wave-rate][hidden] { display: none; }
25
- [data-mk-wave-message] { grid-column: 2; color: var(--mk-muted); font-size: .75rem; line-height: 1.5; }
26
- [data-mk-wave-message]:empty { display: none; }
27
- [data-mk-wave-toggle]:focus-visible, [data-mk-wave-rate]:focus-visible { outline: 2px solid var(--mk-wave-color); outline-offset: 3px; }
28
- [data-mk-wave-toggle]:disabled, [data-mk-wave-rate]:disabled { opacity: .5; cursor: default; }
29
- [data-mk-wave-track]:has(input:disabled) { opacity: .55; }
30
- [data-mk-wave-state='error'] [data-mk-wave-message] { color: var(--mk-error, var(--mk-text)); }
31
- @media (prefers-reduced-motion: reduce) { [data-mk-wave-bar] { transition: none; } }
32
- @media (forced-colors: active) {
33
- [data-mk-wave-toggle], [data-mk-wave-rate] { border: 1px solid ButtonText; }
34
- [data-mk-wave-bar] { background: GrayText; }
35
- [data-mk-wave-bar][data-mk-played] { background: Highlight; }
2
+ /* Shares the equalizer's vocabulary: tonal track, pill bars, a cut-out head that grows when held. */
3
+ .mk-waveform-player, mk-waveform-player {
4
+ --mk-wave-color: var(--mk-text);
5
+ --mk-wave-track: var(--mk-outline-soft);
6
+ --mk-wave-surface: var(--mk-surface-2);
7
+ --mk-wave-inset: 14px;
8
+ display: block;
9
+ width: 100%;
10
+ min-width: 0;
11
+ color: var(--mk-text);
12
+ font-family: var(--mk-font);
13
+ }
14
+ [data-mk-wave-content] { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .875rem; }
15
+ [data-mk-wave-toggle] { display: grid; place-items: center; align-self: start; width: 3.5rem; height: 3.5rem; margin-top: .25rem; border: 0; border-radius: 50%; background: var(--mk-text); color: var(--mk-bg); cursor: pointer; transition: border-radius .4s var(--mk-ease-playful); }
16
+ [data-mk-wave-toggle]:hover:enabled { border-radius: 22px; }
17
+ [data-mk-wave-icon] { display: grid; place-items: center; width: 24px; height: 24px; }
18
+ [data-mk-wave-state='playing'] [data-mk-wave-toggle] { border-radius: 20px; }
19
+ [data-mk-wave-toggle] svg { width: 1.4rem; height: 1.4rem; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
20
+ [data-mk-wave-body] { display: grid; gap: .5rem; min-width: 0; }
21
+ [data-mk-wave-track] { position: relative; height: 4rem; min-width: 0; border-radius: 24px; background: var(--mk-wave-surface); }
22
+ [data-mk-wave-bars] { position: absolute; inset: 12px var(--mk-wave-inset); display: flex; align-items: center; gap: 3px; pointer-events: none; }
23
+ [data-mk-wave-bar] { display: block; flex: 1 1 0; min-width: 1px; min-height: 4px; border-radius: 64px; background: var(--mk-wave-track); transform-origin: center; transition: background-color .16s; }
24
+ [data-mk-wave-bar][data-mk-played] { background: var(--mk-wave-color); }
25
+ [data-mk-wave-head] { position: absolute; z-index: 2; top: 50%; left: calc(var(--mk-wave-inset) + (100% - 2 * var(--mk-wave-inset)) * var(--mk-wave-progress, 0)); box-sizing: content-box; width: 4px; height: calc(100% - 20px); border: 3px solid var(--mk-wave-surface); border-radius: 64px; background: var(--mk-wave-color); translate: -50% -50%; pointer-events: none; transition: height .35s var(--mk-ease-swatch), border-width .35s var(--mk-ease-swatch); }
26
+ [data-mk-wave-scrubbing] [data-mk-wave-head] { height: calc(100% - 10px); border-width: 5px; }
27
+ @media (hover: hover) { [data-mk-wave-track]:has(input:enabled:hover) [data-mk-wave-head] { height: calc(100% - 14px); } }
28
+ [data-mk-wave-preview] { position: absolute; bottom: calc(100% + 10px); left: calc(var(--mk-wave-inset) + (100% - 2 * var(--mk-wave-inset)) * var(--mk-wave-at, 0)); z-index: 3; padding: .4rem .7rem; border-radius: 99px; background: var(--mk-glass-inverse); color: var(--mk-bg); backdrop-filter: blur(16px); box-shadow: inset 1px 1px 1px color-mix(in srgb, var(--mk-bg) 20%, transparent); font-size: .6875rem; font-variant-numeric: tabular-nums; translate: -50% 0; pointer-events: none; }
29
+ [data-mk-wave-preview][hidden] { display: none; }
30
+ [data-mk-wave-seek] { position: absolute; z-index: 4; inset: 0; box-sizing: border-box; width: 100%; height: 100%; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; opacity: 0; cursor: ew-resize; }
31
+ [data-mk-wave-seek]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: calc(2 * var(--mk-wave-inset)); height: 4rem; background: transparent; }
32
+ [data-mk-wave-seek]::-moz-range-thumb { width: calc(2 * var(--mk-wave-inset)); height: 4rem; border: 0; background: transparent; }
33
+ [data-mk-wave-track]:has(input:focus-visible) { outline: 2px solid var(--mk-accent); outline-offset: 4px; }
34
+ [data-mk-wave-footer] { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 2rem; }
35
+ [data-mk-wave-time] { color: var(--mk-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
36
+ [data-mk-wave-rate] { min-width: 44px; min-height: 36px; padding: .375rem .75rem; border: 0; border-radius: 64px; color: var(--mk-text); background: var(--mk-wave-surface); font: 600 .75rem var(--mk-font); font-variant-numeric: tabular-nums; cursor: pointer; transition: padding .35s var(--mk-ease-swatch), background .15s; }
37
+ [data-mk-wave-rate]:hover:enabled { padding-inline: 1rem; background: color-mix(in srgb, var(--mk-text) 8%, var(--mk-wave-surface)); }
38
+ [data-mk-wave-rate][hidden] { display: none; }
39
+ [data-mk-wave-message] { grid-column: 2; color: var(--mk-muted); font-size: .75rem; line-height: 1.5; }
40
+ [data-mk-wave-message]:empty { display: none; }
41
+ [data-mk-wave-toggle]:focus-visible, [data-mk-wave-rate]:focus-visible { outline: 2px solid var(--mk-accent); outline-offset: 3px; }
42
+ [data-mk-wave-toggle]:disabled, [data-mk-wave-rate]:disabled { opacity: .5; cursor: default; }
43
+ [data-mk-wave-track]:has(input:disabled) { opacity: .55; }
44
+ [data-mk-wave-track]:has(input:disabled) [data-mk-wave-seek] { cursor: default; }
45
+ [data-mk-wave-state='error'] [data-mk-wave-message] { color: var(--mk-error, var(--mk-text)); }
46
+ @media (prefers-reduced-motion: reduce) { [data-mk-wave-bar], [data-mk-wave-toggle], [data-mk-wave-head], [data-mk-wave-rate] { transition: none; } }
47
+ @media (forced-colors: active) {
48
+ [data-mk-wave-toggle], [data-mk-wave-rate] { border: 1px solid ButtonText; }
49
+ [data-mk-wave-bar] { background: GrayText; }
50
+ [data-mk-wave-bar][data-mk-played], [data-mk-wave-head] { background: Highlight; }
36
51
  }
@@ -1,17 +1,18 @@
1
1
  /* components/wheel-picker/wheel-picker.css */
2
- .mk-wheel-picker, mk-wheel-picker { --mk-wheel-row: 44px; --mk-wheel-rows: 5; display: grid; gap: .75rem; min-width: 0; color: var(--mk-text); font-family: var(--mk-font); }
3
- [data-mk-wheel-label] { color: var(--mk-muted); font-size: .8125rem; text-align: center; }
4
- [data-mk-wheel-frame] { position: relative; isolation: isolate; min-width: 0; }
5
- [data-mk-wheel-highlight] { position: absolute; top: calc(50% - var(--mk-wheel-row) / 2); right: .5rem; left: .5rem; height: var(--mk-wheel-row); border: 1px solid var(--mk-outline-soft); border-radius: var(--mk-radius-full); background: var(--mk-surface-3); pointer-events: none; z-index: -1; }
6
- [data-mk-wheel-viewport] { height: calc(var(--mk-wheel-row) * var(--mk-wheel-rows)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scroll-snap-type: y mandatory; scrollbar-width: none; -webkit-tap-highlight-color: transparent; mask-image: linear-gradient(transparent, #000 35%, #000 65%, transparent); }
7
- [data-mk-wheel-viewport]::-webkit-scrollbar { display: none; }
8
- [data-mk-wheel-viewport]:focus { outline: none; }
9
- [data-mk-wheel-frame]:has([data-mk-wheel-viewport]:focus-visible) { outline: 2px solid var(--mk-accent); outline-offset: 3px; border-radius: 24px; }
10
- [data-mk-wheel-list] { padding-block: calc(var(--mk-wheel-row) * (var(--mk-wheel-rows) - 1) / 2); }
11
- [data-mk-wheel-option] { display: grid; place-items: center; height: var(--mk-wheel-row); min-height: 44px; padding-inline: 1rem; color: var(--mk-muted); font-size: 1.1rem; font-variant-numeric: tabular-nums; font-weight: 450; scroll-snap-align: center; cursor: pointer; user-select: none; transform-origin: center; transition: color .18s ease; }
12
- [data-mk-wheel-option][aria-selected='true'] { color: var(--mk-text); font-weight: 650; }
13
- [data-mk-wheel-option][aria-disabled='true'] { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
14
- [data-mk-wheel-empty] { display: block; text-align: center; color: var(--mk-muted); font-size: .875rem; }
15
- [data-mk-disabled] [data-mk-wheel-viewport] { overflow: hidden; opacity: .5; }
16
- @media (prefers-reduced-motion: reduce) { [data-mk-wheel-option] { transition: none; transform: none !important; } }
2
+ .mk-wheel-picker, mk-wheel-picker { --mk-wheel-row: 44px; --mk-wheel-rows: 5; display: grid; gap: .75rem; min-width: 0; color: var(--mk-text); font-family: var(--mk-font); }
3
+ [data-mk-wheel-label] { color: var(--mk-muted); font-size: .8125rem; text-align: center; }
4
+ [data-mk-wheel-frame] { position: relative; isolation: isolate; min-width: 0; overflow: hidden; border-radius: var(--mk-radius-xl); background: var(--mk-surface-1); }
5
+ [data-mk-wheel-highlight] { position: absolute; top: calc(50% - var(--mk-wheel-row) / 2); right: .5rem; left: .5rem; height: var(--mk-wheel-row); border-radius: var(--mk-radius-md); background: var(--mk-surface-3); box-shadow: inset 0 1px color-mix(in srgb, var(--mk-text) 5%, transparent), inset 0 -1px color-mix(in srgb, var(--mk-text) 4%, transparent); pointer-events: none; z-index: -1; }
6
+ [data-mk-wheel-viewport] { height: calc(var(--mk-wheel-row) * var(--mk-wheel-rows)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scroll-snap-type: y mandatory; scrollbar-width: none; -webkit-tap-highlight-color: transparent; mask-image: linear-gradient(transparent, #000 16%, #000 84%, transparent); }
7
+ [data-mk-wheel-viewport]::-webkit-scrollbar { display: none; }
8
+ [data-mk-wheel-viewport]:focus { outline: none; }
9
+ [data-mk-wheel-frame]:has([data-mk-wheel-viewport]:focus-visible) { outline: 2px solid var(--mk-accent); outline-offset: 3px; border-radius: 24px; }
10
+ [data-mk-wheel-list] { padding-block: calc(var(--mk-wheel-row) * (var(--mk-wheel-rows) - 1) / 2); }
11
+ [data-mk-wheel-option] { display: grid; place-items: center; height: var(--mk-wheel-row); min-height: 44px; padding-inline: 1rem; color: var(--mk-text); font-size: 1.35rem; font-variant-numeric: tabular-nums; font-weight: 450; scroll-snap-align: center; cursor: pointer; user-select: none; transform-origin: center; backface-visibility: hidden; transition: color .18s ease; }
12
+ [data-mk-wheel-option][aria-selected='true'] { color: var(--mk-text); font-weight: 650; }
13
+ [data-mk-wheel-option]:not([aria-disabled='true']):hover { color: var(--mk-accent); }
14
+ [data-mk-wheel-option][aria-disabled='true'] { color: var(--mk-muted); cursor: not-allowed; }
15
+ [data-mk-wheel-empty] { display: block; text-align: center; color: var(--mk-muted); font-size: .875rem; }
16
+ [data-mk-disabled] [data-mk-wheel-viewport] { overflow: hidden; opacity: .5; }
17
+ @media (prefers-reduced-motion: reduce) { [data-mk-wheel-option] { transition: none; transform: none !important; } }
17
18
  @media (forced-colors: active) { [data-mk-wheel-highlight] { border: 2px solid Highlight; } }
@@ -16,6 +16,10 @@
16
16
  --mk-ease-nav-move: cubic-bezier(0.38, 0.49, 0, 1.2);
17
17
  --mk-ease-swatch: cubic-bezier(0.38, 0.49, 0, 1.5);
18
18
  --mk-ease-swatch-light: cubic-bezier(0.11, 1, 0, 1);
19
+ --mk-ease-click: cubic-bezier(0.37, 1.42, 0.37, 1);
20
+ --mk-ease-playful: cubic-bezier(0.38, 0.49, 0, 2);
21
+ --mk-ease-pop: cubic-bezier(0.1, 0.8, 0, 1.1);
22
+ --mk-ease-wipe: cubic-bezier(0.38, 0.49, 0, 1);
19
23
  --mk-ease-slot: cubic-bezier(0.34, 1.56, 0.64, 1);
20
24
  /* Glass, sheet and control curves */
21
25
  --mk-ease-glass: cubic-bezier(0.25, 1, 0.5, 1);
@@ -1,7 +1,7 @@
1
1
  import { I as Instance } from '../types-BkS_raL8.js';
2
- import { dh as StudioDockInstance, dk as StudioDockView, dy as TrailerInstance, bg as DialogInstance, bi as DialogOptions, c3 as MenuInstance, cp as QuantityInstance, cb as PaginationInstance, bO as HoverCardInstance, bU as InputOtpInstance, av as CalendarInstance, d4 as SlotPickerInstance, ai as AttachmentInstance, ah as AttachmentFile, an as AttachmentStatus, d1 as SkeletonInstance, cs as QuestionnaireInstance, cr as QuestionnaireAnswers, aK as CodeBlockInstance, aZ as ContextMenuInstance, bZ as LinkPreviewInstance, cm as ProgressInstance, cx as RangeSliderInstance, cz as RangeValue, aB as ChartInstance, aC as ChartOptions, b0 as CreditCardInstance, a$ as CreditCardField, b3 as CreditCardValues, aA as CardBrand, aX as CommandSearchInstance, aW as CommandItem, bM as HoldConfirmInstance, bS as ImagePreviewInstance, c8 as NotificationBellInstance, cg as PasswordStrengthInstance, cL as ScratchCardInstance, dd as StarRatingInstance, aU as ColorSliderInstance, aM as ColorAreaInstance, aP as ColorFieldInstance, aS as ColorPickerInstance, dp as TimeFieldInstance, cv as RangeCalendarInstance, bb as DateRange, bc as DateRangePickerInstance, dw as TooltipInstance, ck as PopoverInstance, c0 as LoadingButtonInstance, c2 as LoadingState, ap as BreadcrumbInstance, bu as EmptyStateInstance, df as StatCardInstance, aF as ChartTooltipInstance, c5 as MultiSelectInstance, dm as TagInputInstance, be as DateTimePickerInstance, bE as FilterBuilderInstance, bI as FilterGroup, dt as TimelineInstance, ds as TimelineEvent, ab as ActivityFeedInstance, ad as ActivityItem, dB as TreeViewInstance, bz as FileExplorerInstance, bX as JsonViewerInstance, dE as VirtualListInstance, cA as ResizablePanelInstance, db as SplitViewInstance, b9 as DataTableInstance, b7 as DataRow, bp as EditableTableInstance, cG as RichTextEditorInstance, cP as SelectInstance, af as AddToCartInstance, cN as ScrollIslandInstance, cY as SignaturePadInstance, cT as SignatureData, cU as SignatureExportOptions, cV as SignaturePNGOptions, dM as WaveformPlayerInstance, dN as WaveformPlayerOptions, dO as WaveformPlayerState, dJ as VoiceMessageBubbleInstance, dK as VoiceMessageBubbleOptions, bl as DrilldownMenuInstance, bm as DrilldownMenuItem, dR as WheelPickerInstance, dQ as WheelPickerEntry } from '../engine-Bn6hC87X.js';
3
- import { E as ThemePickerInstance, M as ToasterInstance, C as ChatInstance, d as ChatRole, l as NavInstance, n as NavStyle, o as NavStyleAlias, e as CursorInstance, I as IslandInstance, V as ToolbarInstance, B as BidirectionalSliderInstance, X as VoiceDotsInstance, Z as VoiceState, r as PieChartInstance, s as PieChartOptions, R as RadarChartInstance, u as RadarChartOptions, w as RadialChartInstance, x as RadialChartOptions, S as SankeyChartInstance, z as SankeyChartOptions, H as HeatmapChartInstance, h as HeatmapChartOptions, O as OrbitMenuInstance } from '../store-CZ6vdtIE.js';
4
- export { an as toast } from '../store-CZ6vdtIE.js';
2
+ import { e7 as StudioDockInstance, ea as StudioDockView, eq as TrailerInstance, bA as DialogInstance, bC as DialogOptions, ct as MenuInstance, cZ as QuantityInstance, cJ as PaginationInstance, ca as HoverCardInstance, cg as InputOtpInstance, aP as CalendarInstance, dR as SlotPickerInstance, ay as AttachmentInstance, ax as AttachmentFile, aD as AttachmentStatus, dO as SkeletonInstance, d0 as QuestionnaireInstance, c$ as QuestionnaireAnswers, b2 as CodeBlockInstance, bh as ContextMenuInstance, cl as LinkPreviewInstance, cW as ProgressInstance, d8 as RangeSliderInstance, da as RangeValue, aV as ChartInstance, aW as ChartOptions, bk as CreditCardInstance, bj as CreditCardField, bn as CreditCardValues, aU as CardBrand, bf as CommandSearchInstance, be as CommandItem, c8 as HoldConfirmInstance, ce as ImagePreviewInstance, cC as NotificationBellInstance, cQ as PasswordStrengthInstance, dp as ScratchCardInstance, d_ as StarRatingInstance, bc as ColorSliderInstance, b4 as ColorAreaInstance, b7 as ColorFieldInstance, ba as ColorPickerInstance, eh as TimeFieldInstance, d6 as RangeCalendarInstance, bv as DateRange, bw as DateRangePickerInstance, eo as TooltipInstance, cU as PopoverInstance, co as LoadingButtonInstance, cq as LoadingState, aJ as BreadcrumbInstance, bO as EmptyStateInstance, e0 as StatCardInstance, aZ as ChartTooltipInstance, cx as MultiSelectInstance, ec as TagInputInstance, by as DateTimePickerInstance, b_ as FilterBuilderInstance, c2 as FilterGroup, el as TimelineInstance, ek as TimelineEvent, ar as ActivityFeedInstance, at as ActivityItem, et as TreeViewInstance, bV as FileExplorerInstance, cj as JsonViewerInstance, ew as VirtualListInstance, dd as ResizablePanelInstance, dY as SplitViewInstance, bt as DataTableInstance, br as DataRow, bJ as EditableTableInstance, dj as RichTextEditorInstance, dA as SelectInstance, av as AddToCartInstance, dv as ScrollIslandInstance, dJ as SignaturePadInstance, dE as SignatureData, dF as SignatureExportOptions, dG as SignaturePNGOptions, eE as WaveformPlayerInstance, eF as WaveformPlayerOptions, eG as WaveformPlayerState, eB as VoiceMessageBubbleInstance, eC as VoiceMessageBubbleOptions, bF as DrilldownMenuInstance, bG as DrilldownMenuItem, eJ as WheelPickerInstance, eI as WheelPickerEntry, e2 as StepperInstance, d3 as RadioGroupInstance, bQ as EqualizerSliderInstance, ee as TemperatureSliderInstance, eg as TemperatureUnit, db as RatingScaleInstance, cF as NotificationStackInstance, cH as NotificationStackOptions, cG as NotificationStackItem, aH as BentoGridInstance, aI as BentoGridOptions, dx as ScrollPreviewDockInstance, dz as ScrollPreviewDockOptions, dy as ScrollPreviewDockItem, e5 as StickyHeaderInstance, e6 as StickyHeaderOptions, c6 as HandwritingTextInstance, cM as ParticleButtonInstance, cr as MagnetizeButtonInstance, aF as BadgeButtonInstance, cv as MorphingPageDotsInstance, cA as NotFoundInstance, ds as ScrollAreaInstance } from '../engine-D6XV-WNt.js';
3
+ import { E as ThemePickerInstance, M as ToasterInstance, C as ChatInstance, d as ChatRole, l as NavInstance, n as NavStyle, o as NavStyleAlias, e as CursorInstance, I as IslandInstance, V as ToolbarInstance, B as BidirectionalSliderInstance, X as VoiceDotsInstance, Z as VoiceState, r as PieChartInstance, s as PieChartOptions, R as RadarChartInstance, u as RadarChartOptions, w as RadialChartInstance, x as RadialChartOptions, S as SankeyChartInstance, z as SankeyChartOptions, H as HeatmapChartInstance, h as HeatmapChartOptions, O as OrbitMenuInstance } from '../store-CAHWkurn.js';
4
+ export { an as toast } from '../store-CAHWkurn.js';
5
5
  import { C as ChatBackgroundInstance, c as StepsInstance, P as PillButtonInstance } from '../engine-5zRIssTO.js';
6
6
  import { L as LikeButtonInstance, S as SwipeActionsInstance } from '../engine-QECQnGz1.js';
7
7
  import 'gsap/Flip';
@@ -1075,8 +1075,11 @@ declare const defineDrilldownMenu: () => void;
1075
1075
 
1076
1076
  declare class MkWheelPickerElement extends MkElement<WheelPickerInstance> {
1077
1077
  static options: Record<string, OptionType>;
1078
+ private savedValue;
1079
+ private savedItems;
1078
1080
  protected create(options: Record<string, unknown>): WheelPickerInstance;
1079
1081
  attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1082
+ disconnectedCallback(): void;
1080
1083
  get value(): string;
1081
1084
  set value(next: string);
1082
1085
  setValue(value: string, notify?: boolean): void;
@@ -1084,6 +1087,200 @@ declare class MkWheelPickerElement extends MkElement<WheelPickerInstance> {
1084
1087
  }
1085
1088
  declare const defineWheelPicker: () => void;
1086
1089
 
1090
+ /** Light DOM; attribute changes keep the current imperative value and reset baseline. */
1091
+ declare class MkStepperElement extends MkElement<StepperInstance> {
1092
+ static options: Record<string, OptionType>;
1093
+ private baseline;
1094
+ private saved;
1095
+ protected create(options: Record<string, unknown>): StepperInstance;
1096
+ disconnectedCallback(): void;
1097
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1098
+ get value(): number;
1099
+ set value(next: number);
1100
+ setValue(value: number, notify?: boolean): void;
1101
+ reset(notify?: boolean): void;
1102
+ next(notify?: boolean): void;
1103
+ previous(notify?: boolean): void;
1104
+ }
1105
+ declare const defineStepper: () => void;
1106
+
1107
+ /** Light DOM; attribute changes keep the current imperative value and reset baseline. */
1108
+ declare class MkRadioGroupElement extends MkElement<RadioGroupInstance> {
1109
+ static options: Record<string, OptionType>;
1110
+ private baseline;
1111
+ private saved;
1112
+ protected create(options: Record<string, unknown>): RadioGroupInstance;
1113
+ disconnectedCallback(): void;
1114
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1115
+ get value(): string | null;
1116
+ set value(next: string | null);
1117
+ setValue(value: string | null, notify?: boolean): void;
1118
+ reset(notify?: boolean): void;
1119
+ }
1120
+ declare const defineRadioGroup: () => void;
1121
+
1122
+ /** Light DOM; attribute changes keep the current imperative value and reset baseline. */
1123
+ declare class MkEqualizerSliderElement extends MkElement<EqualizerSliderInstance> {
1124
+ static options: Record<string, OptionType>;
1125
+ private baseline;
1126
+ private saved;
1127
+ protected create(options: Record<string, unknown>): EqualizerSliderInstance;
1128
+ disconnectedCallback(): void;
1129
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1130
+ get value(): number;
1131
+ set value(next: number);
1132
+ setValue(value: number, notify?: boolean): void;
1133
+ reset(notify?: boolean): void;
1134
+ }
1135
+ declare const defineEqualizerSlider: () => void;
1136
+
1137
+ /** Light DOM; attribute changes keep the current imperative value and reset baseline. */
1138
+ declare class MkTemperatureSliderElement extends MkElement<TemperatureSliderInstance> {
1139
+ static options: Record<string, OptionType>;
1140
+ private baseline;
1141
+ private saved;
1142
+ private syncing;
1143
+ protected create(options: Record<string, unknown>): TemperatureSliderInstance;
1144
+ disconnectedCallback(): void;
1145
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1146
+ get value(): number;
1147
+ set value(next: number);
1148
+ setValue(value: number, notify?: boolean): void;
1149
+ reset(notify?: boolean): void;
1150
+ get unit(): TemperatureUnit;
1151
+ /** Converts in place and glides; the unit, min and max attributes follow without remounting. */
1152
+ setUnit(unit: TemperatureUnit, notify?: boolean): void;
1153
+ }
1154
+ declare const defineTemperatureSlider: () => void;
1155
+
1156
+ /** Light DOM; attribute changes keep the current imperative value and reset baseline. */
1157
+ declare class MkRatingScaleElement extends MkElement<RatingScaleInstance> {
1158
+ static options: Record<string, OptionType>;
1159
+ private baseline;
1160
+ private saved;
1161
+ protected create(options: Record<string, unknown>): RatingScaleInstance;
1162
+ disconnectedCallback(): void;
1163
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1164
+ get value(): number | null;
1165
+ set value(next: number | null);
1166
+ setValue(value: number | null, notify?: boolean): void;
1167
+ reset(notify?: boolean): void;
1168
+ }
1169
+ declare const defineRatingScale: () => void;
1170
+
1171
+ declare class MkNotificationStackElement extends MkElement<NotificationStackInstance> {
1172
+ static options: Record<string, OptionType>;
1173
+ protected create(options: Record<string, unknown>): NotificationStackInstance;
1174
+ setOptions(options: Partial<NotificationStackOptions>): void;
1175
+ push(item: NotificationStackItem): void;
1176
+ dismiss(id: string): void;
1177
+ clear(): void;
1178
+ expand(): void;
1179
+ collapse(): void;
1180
+ toggle(): void;
1181
+ get expanded(): boolean;
1182
+ set expanded(value: boolean);
1183
+ get items(): NotificationStackItem[];
1184
+ set items(value: NotificationStackItem[]);
1185
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1186
+ }
1187
+ declare const defineNotificationStack: () => void;
1188
+
1189
+ declare class MkBentoGridElement extends MkElement<BentoGridInstance> {
1190
+ static options: Record<string, OptionType>;
1191
+ protected create(options: Record<string, unknown>): BentoGridInstance;
1192
+ setOptions(options: Partial<BentoGridOptions>): void;
1193
+ refresh(): void;
1194
+ setFilter(filter: string | null): void;
1195
+ reorder(keys: string[]): void;
1196
+ mutate(change: () => void): void;
1197
+ get filter(): string | null;
1198
+ get keys(): string[];
1199
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1200
+ }
1201
+ declare const defineBentoGrid: () => void;
1202
+
1203
+ declare class MkScrollPreviewDockElement extends MkElement<ScrollPreviewDockInstance> {
1204
+ static options: Record<string, OptionType>;
1205
+ protected create(options: Record<string, unknown>): ScrollPreviewDockInstance;
1206
+ setOptions(options: Partial<ScrollPreviewDockOptions>): void;
1207
+ select(id: string): void;
1208
+ update(): void;
1209
+ get value(): string;
1210
+ set items(value: ScrollPreviewDockItem[]);
1211
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1212
+ }
1213
+ declare const defineScrollPreviewDock: () => void;
1214
+
1215
+ declare class MkStickyHeaderElement extends MkElement<StickyHeaderInstance> {
1216
+ static options: Record<string, OptionType>;
1217
+ protected create(options: Record<string, unknown>): StickyHeaderInstance;
1218
+ setOptions(options: Partial<StickyHeaderOptions>): void;
1219
+ update(): void;
1220
+ get compact(): boolean;
1221
+ get progress(): number;
1222
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1223
+ }
1224
+ declare const defineStickyHeader: () => void;
1225
+
1226
+ declare class MkHandwritingTextElement extends MkElement<HandwritingTextInstance> {
1227
+ static options: Record<string, OptionType>;
1228
+ private retained;
1229
+ protected create(options: Record<string, unknown>): HandwritingTextInstance;
1230
+ disconnectedCallback(): void;
1231
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1232
+ }
1233
+ declare const defineHandwritingText: () => void;
1234
+
1235
+ declare class MkParticleButtonElement extends MkElement<ParticleButtonInstance> {
1236
+ static options: Record<string, OptionType>;
1237
+ protected create(options: Record<string, unknown>): ParticleButtonInstance;
1238
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1239
+ }
1240
+ declare const defineParticleButton: () => void;
1241
+
1242
+ declare class MkMagnetizeButtonElement extends MkElement<MagnetizeButtonInstance> {
1243
+ static options: Record<string, OptionType>;
1244
+ protected create(options: Record<string, unknown>): MagnetizeButtonInstance;
1245
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1246
+ }
1247
+ declare const defineMagnetizeButton: () => void;
1248
+
1249
+ declare class MkBadgeButtonElement extends MkElement<BadgeButtonInstance> {
1250
+ static options: Record<string, OptionType>;
1251
+ private retained;
1252
+ protected create(options: Record<string, unknown>): BadgeButtonInstance;
1253
+ disconnectedCallback(): void;
1254
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1255
+ }
1256
+ declare const defineBadgeButton: () => void;
1257
+
1258
+ declare class MkMorphingPageDotsElement extends MkElement<MorphingPageDotsInstance> {
1259
+ static options: Record<string, OptionType>;
1260
+ private retained;
1261
+ protected create(options: Record<string, unknown>): MorphingPageDotsInstance;
1262
+ disconnectedCallback(): void;
1263
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1264
+ }
1265
+ declare const defineMorphingPageDots: () => void;
1266
+
1267
+ declare class MkNotFoundElement extends MkElement<NotFoundInstance> {
1268
+ static options: Record<string, OptionType>;
1269
+ protected create(options: Record<string, unknown>): NotFoundInstance;
1270
+ attributeChangedCallback(name: string, previous: string | null, next: string | null): void;
1271
+ }
1272
+ declare const defineNotFound: () => void;
1273
+
1274
+ /**
1275
+ * <mk-scroll-area class="mk-scroll-area" style="height: 20rem" back-to-top>…</mk-scroll-area>
1276
+ * Its content is wrapped in the viewport. Emits mk:scroll ({x, y}).
1277
+ */
1278
+ declare class MkScrollAreaElement extends MkElement<ScrollAreaInstance> {
1279
+ static options: Record<string, OptionType>;
1280
+ protected create(options: Record<string, unknown>): ScrollAreaInstance;
1281
+ }
1282
+ declare const defineScrollArea: () => void;
1283
+
1087
1284
  /** Tag name → element class, for every component. */
1088
1285
  declare const ELEMENTS: {
1089
1286
  readonly 'mk-theme-picker': typeof MkThemePickerElement;
@@ -1171,9 +1368,25 @@ declare const ELEMENTS: {
1171
1368
  readonly 'mk-voice-message-bubble': typeof MkVoiceMessageBubbleElement;
1172
1369
  readonly 'mk-drilldown-menu': typeof MkDrilldownMenuElement;
1173
1370
  readonly 'mk-wheel-picker': typeof MkWheelPickerElement;
1371
+ readonly 'mk-stepper': typeof MkStepperElement;
1372
+ readonly 'mk-radio-group': typeof MkRadioGroupElement;
1373
+ readonly 'mk-equalizer-slider': typeof MkEqualizerSliderElement;
1374
+ readonly 'mk-temperature-slider': typeof MkTemperatureSliderElement;
1375
+ readonly 'mk-rating-scale': typeof MkRatingScaleElement;
1376
+ readonly 'mk-notification-stack': typeof MkNotificationStackElement;
1377
+ readonly 'mk-bento-grid': typeof MkBentoGridElement;
1378
+ readonly 'mk-scroll-preview-dock': typeof MkScrollPreviewDockElement;
1379
+ readonly 'mk-sticky-header': typeof MkStickyHeaderElement;
1380
+ readonly 'mk-handwriting-text': typeof MkHandwritingTextElement;
1381
+ readonly 'mk-particle-button': typeof MkParticleButtonElement;
1382
+ readonly 'mk-magnetize-button': typeof MkMagnetizeButtonElement;
1383
+ readonly 'mk-badge-button': typeof MkBadgeButtonElement;
1384
+ readonly 'mk-morphing-page-dots': typeof MkMorphingPageDotsElement;
1385
+ readonly 'mk-not-found': typeof MkNotFoundElement;
1386
+ readonly 'mk-scroll-area': typeof MkScrollAreaElement;
1174
1387
  };
1175
1388
  type ElementName = keyof typeof ELEMENTS;
1176
1389
  /** Register every motion-kit element (or the ones named). Safe to call more than once. */
1177
1390
  declare function defineElements(names?: ElementName[]): void;
1178
1391
 
1179
- export { ELEMENTS, type ElementName, MkActivityFeedElement, MkAddToCartElement, MkAttachmentElement, MkBidirectionalSliderElement, MkBreadcrumbElement, MkCalendarElement, MkChartElement, MkChartTooltipElement, MkChatBackgroundElement, MkChatElement, MkCodeBlockElement, MkColorAreaElement, MkColorFieldElement, MkColorPickerElement, MkColorSliderElement, MkCommandSearchElement, MkContextMenuElement, MkCreditCardElement, MkCursorElement, MkDataTableElement, MkDateRangePickerElement, MkDateTimePickerElement, MkDialogElement, MkDrawerElement, MkDrilldownMenuElement, MkEditableTableElement, MkElement, MkEmptyStateElement, MkFileExplorerElement, MkFilterBuilderElement, MkHeatmapChartElement, MkHoldConfirmElement, MkHoverCardElement, MkImagePreviewElement, MkInputOtpElement, MkIslandElement, MkJsonViewerElement, MkLikeButtonElement, MkLinkPreviewElement, MkLoadingButtonElement, MkMenuElement, MkMultiSelectElement, MkNavElement, MkNotificationBellElement, MkOrbitMenuElement, MkPaginationElement, MkPasswordStrengthElement, MkPieChartElement, MkPillButtonElement, MkPopoverElement, MkProgressElement, MkQuantityElement, MkQuestionnaireElement, MkRadarChartElement, MkRadialChartElement, MkRangeCalendarElement, MkRangeSliderElement, MkResizablePanelElement, MkRichTextEditorElement, MkSankeyChartElement, MkScratchCardElement, MkScrollIslandElement, MkSelectElement, MkSignaturePadElement, MkSkeletonElement, MkSlotPickerElement, MkSplitViewElement, MkStarRatingElement, MkStatCardElement, MkStepsElement, MkStudioDockElement, MkSwipeActionsElement, MkTagInputElement, MkThemePickerElement, MkTimeFieldElement, MkTimelineElement, MkToasterElement, MkToolbarElement, MkTooltipElement, MkTrailerElement, MkTreeViewElement, MkVirtualListElement, MkVoiceDotsElement, MkVoiceMessageBubbleElement, MkWaveformPlayerElement, MkWheelPickerElement, type OptionType, SafeHTMLElement, defineDrilldownMenu, defineElement, defineElements, defineSignaturePad, defineStudioDock, defineTrailer, defineVoiceMessageBubble, defineWaveformPlayer, defineWheelPicker };
1392
+ export { ELEMENTS, type ElementName, MkActivityFeedElement, MkAddToCartElement, MkAttachmentElement, MkBadgeButtonElement, MkBentoGridElement, MkBidirectionalSliderElement, MkBreadcrumbElement, MkCalendarElement, MkChartElement, MkChartTooltipElement, MkChatBackgroundElement, MkChatElement, MkCodeBlockElement, MkColorAreaElement, MkColorFieldElement, MkColorPickerElement, MkColorSliderElement, MkCommandSearchElement, MkContextMenuElement, MkCreditCardElement, MkCursorElement, MkDataTableElement, MkDateRangePickerElement, MkDateTimePickerElement, MkDialogElement, MkDrawerElement, MkDrilldownMenuElement, MkEditableTableElement, MkElement, MkEmptyStateElement, MkEqualizerSliderElement, MkFileExplorerElement, MkFilterBuilderElement, MkHandwritingTextElement, MkHeatmapChartElement, MkHoldConfirmElement, MkHoverCardElement, MkImagePreviewElement, MkInputOtpElement, MkIslandElement, MkJsonViewerElement, MkLikeButtonElement, MkLinkPreviewElement, MkLoadingButtonElement, MkMagnetizeButtonElement, MkMenuElement, MkMorphingPageDotsElement, MkMultiSelectElement, MkNavElement, MkNotFoundElement, MkNotificationBellElement, MkNotificationStackElement, MkOrbitMenuElement, MkPaginationElement, MkParticleButtonElement, MkPasswordStrengthElement, MkPieChartElement, MkPillButtonElement, MkPopoverElement, MkProgressElement, MkQuantityElement, MkQuestionnaireElement, MkRadarChartElement, MkRadialChartElement, MkRadioGroupElement, MkRangeCalendarElement, MkRangeSliderElement, MkRatingScaleElement, MkResizablePanelElement, MkRichTextEditorElement, MkSankeyChartElement, MkScratchCardElement, MkScrollAreaElement, MkScrollIslandElement, MkScrollPreviewDockElement, MkSelectElement, MkSignaturePadElement, MkSkeletonElement, MkSlotPickerElement, MkSplitViewElement, MkStarRatingElement, MkStatCardElement, MkStepperElement, MkStepsElement, MkStickyHeaderElement, MkStudioDockElement, MkSwipeActionsElement, MkTagInputElement, MkTemperatureSliderElement, MkThemePickerElement, MkTimeFieldElement, MkTimelineElement, MkToasterElement, MkToolbarElement, MkTooltipElement, MkTrailerElement, MkTreeViewElement, MkVirtualListElement, MkVoiceDotsElement, MkVoiceMessageBubbleElement, MkWaveformPlayerElement, MkWheelPickerElement, type OptionType, SafeHTMLElement, defineBadgeButton, defineBentoGrid, defineDrilldownMenu, defineElement, defineElements, defineEqualizerSlider, defineHandwritingText, defineMagnetizeButton, defineMorphingPageDots, defineNotFound, defineNotificationStack, defineParticleButton, defineRadioGroup, defineRatingScale, defineScrollArea, defineScrollPreviewDock, defineSignaturePad, defineStepper, defineStickyHeader, defineStudioDock, defineTemperatureSlider, defineTrailer, defineVoiceMessageBubble, defineWaveformPlayer, defineWheelPicker };