@yewdiel21/motion-kit 0.17.0 → 0.18.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 (146) hide show
  1. package/README.md +23 -0
  2. package/dist/auto/index.d.ts +18 -3
  3. package/dist/auto/index.js +32 -2
  4. package/dist/auto/index.js.map +1 -1
  5. package/dist/{chunk-VJFPTLAK.js → chunk-AWDEKDEJ.js} +2 -2
  6. package/dist/{chunk-BZLMCHUD.js → chunk-EDMXWUW3.js} +2 -2
  7. package/dist/{chunk-7IQTMF7Y.js → chunk-Q7IW4FV3.js} +2580 -58
  8. package/dist/chunk-Q7IW4FV3.js.map +1 -0
  9. package/dist/css/components/badge-button.css +16 -0
  10. package/dist/css/components/bento-grid.css +13 -0
  11. package/dist/css/components/drilldown-menu.css +11 -7
  12. package/dist/css/components/equalizer-slider.css +26 -0
  13. package/dist/css/components/handwriting-text.css +15 -0
  14. package/dist/css/components/magnetize-button.css +18 -0
  15. package/dist/css/components/morphing-page-dots.css +13 -0
  16. package/dist/css/components/not-found.css +22 -0
  17. package/dist/css/components/notification-stack.css +42 -0
  18. package/dist/css/components/particle-button.css +14 -0
  19. package/dist/css/components/radio-group.css +29 -0
  20. package/dist/css/components/rating-scale.css +23 -0
  21. package/dist/css/components/scroll-preview-dock.css +18 -0
  22. package/dist/css/components/select.css +16 -0
  23. package/dist/css/components/signature-pad.css +130 -103
  24. package/dist/css/components/stepper.css +36 -0
  25. package/dist/css/components/sticky-header.css +10 -0
  26. package/dist/css/components/temperature-slider.css +29 -0
  27. package/dist/css/components/voice-message-bubble.css +62 -45
  28. package/dist/css/components/waveform-player.css +49 -34
  29. package/dist/css/components/wheel-picker.css +16 -15
  30. package/dist/css/tokens.css +4 -0
  31. package/dist/elements/index.d.ts +206 -4
  32. package/dist/elements/index.js +581 -6
  33. package/dist/elements/index.js.map +1 -1
  34. package/dist/{engine-Bn6hC87X.d.ts → engine-t8d7brjn.d.ts} +341 -1
  35. package/dist/index.css +578 -170
  36. package/dist/index.d.ts +23 -23
  37. package/dist/index.js +33 -3
  38. package/dist/index.js.map +1 -1
  39. package/dist/react/index.d.ts +113 -7
  40. package/dist/react/index.js +669 -3
  41. package/dist/react/index.js.map +1 -1
  42. package/dist/{reduced-YS6TZjpa.d.ts → reduced-dPsZYqtI.d.ts} +1 -1
  43. package/dist/{store-CZ6vdtIE.d.ts → store-6hZNKiee.d.ts} +1 -1
  44. package/package.json +1 -1
  45. package/registry.json +180 -0
  46. package/src/auto/auto-init.ts +31 -0
  47. package/src/components/badge-button/README.md +28 -0
  48. package/src/components/badge-button/badge-button.css +15 -0
  49. package/src/components/badge-button/element.ts +16 -0
  50. package/src/components/badge-button/engine.ts +85 -0
  51. package/src/components/badge-button/react.tsx +31 -0
  52. package/src/components/bento-grid/README.md +26 -0
  53. package/src/components/bento-grid/bento-grid.css +12 -0
  54. package/src/components/bento-grid/element.ts +22 -0
  55. package/src/components/bento-grid/engine.ts +153 -0
  56. package/src/components/bento-grid/react.tsx +25 -0
  57. package/src/components/drilldown-menu/drilldown-menu.css +11 -7
  58. package/src/components/drilldown-menu/engine.ts +44 -4
  59. package/src/components/equalizer-slider/README.md +43 -0
  60. package/src/components/equalizer-slider/element.ts +41 -0
  61. package/src/components/equalizer-slider/engine.ts +32 -0
  62. package/src/components/equalizer-slider/equalizer-slider.css +26 -0
  63. package/src/components/equalizer-slider/react.tsx +60 -0
  64. package/src/components/equalizer-slider/shared.ts +161 -0
  65. package/src/components/handwriting-text/README.md +29 -0
  66. package/src/components/handwriting-text/element.ts +14 -0
  67. package/src/components/handwriting-text/engine.ts +108 -0
  68. package/src/components/handwriting-text/glyphs.ts +71 -0
  69. package/src/components/handwriting-text/handwriting-text.css +14 -0
  70. package/src/components/handwriting-text/react.tsx +23 -0
  71. package/src/components/magnetize-button/README.md +26 -0
  72. package/src/components/magnetize-button/element.ts +13 -0
  73. package/src/components/magnetize-button/engine.ts +84 -0
  74. package/src/components/magnetize-button/magnetize-button.css +17 -0
  75. package/src/components/magnetize-button/react.tsx +22 -0
  76. package/src/components/morphing-page-dots/README.md +28 -0
  77. package/src/components/morphing-page-dots/element.ts +16 -0
  78. package/src/components/morphing-page-dots/engine.ts +89 -0
  79. package/src/components/morphing-page-dots/morphing-page-dots.css +12 -0
  80. package/src/components/morphing-page-dots/react.tsx +32 -0
  81. package/src/components/not-found/README.md +26 -0
  82. package/src/components/not-found/element.ts +15 -0
  83. package/src/components/not-found/engine.ts +57 -0
  84. package/src/components/not-found/not-found.css +21 -0
  85. package/src/components/not-found/react.tsx +23 -0
  86. package/src/components/notification-stack/README.md +24 -0
  87. package/src/components/notification-stack/element.ts +26 -0
  88. package/src/components/notification-stack/engine.ts +329 -0
  89. package/src/components/notification-stack/notification-stack.css +41 -0
  90. package/src/components/notification-stack/react.tsx +28 -0
  91. package/src/components/particle-button/README.md +26 -0
  92. package/src/components/particle-button/element.ts +13 -0
  93. package/src/components/particle-button/engine.ts +52 -0
  94. package/src/components/particle-button/particle-button.css +13 -0
  95. package/src/components/particle-button/react.tsx +22 -0
  96. package/src/components/radio-group/README.md +43 -0
  97. package/src/components/radio-group/element.ts +41 -0
  98. package/src/components/radio-group/engine.ts +11 -0
  99. package/src/components/radio-group/radio-group.css +28 -0
  100. package/src/components/radio-group/react.tsx +60 -0
  101. package/src/components/radio-group/shared.ts +118 -0
  102. package/src/components/rating-scale/README.md +43 -0
  103. package/src/components/rating-scale/element.ts +41 -0
  104. package/src/components/rating-scale/engine.ts +63 -0
  105. package/src/components/rating-scale/rating-scale.css +22 -0
  106. package/src/components/rating-scale/react.tsx +60 -0
  107. package/src/components/scroll-preview-dock/README.md +24 -0
  108. package/src/components/scroll-preview-dock/element.ts +20 -0
  109. package/src/components/scroll-preview-dock/engine.ts +228 -0
  110. package/src/components/scroll-preview-dock/react.tsx +26 -0
  111. package/src/components/scroll-preview-dock/scroll-preview-dock.css +17 -0
  112. package/src/components/select/README.md +23 -9
  113. package/src/components/select/select.css +16 -0
  114. package/src/components/signature-pad/engine.ts +550 -437
  115. package/src/components/signature-pad/signature-pad.css +130 -103
  116. package/src/components/stepper/README.md +46 -0
  117. package/src/components/stepper/element.ts +42 -0
  118. package/src/components/stepper/engine.ts +103 -0
  119. package/src/components/stepper/react.tsx +60 -0
  120. package/src/components/stepper/stepper.css +35 -0
  121. package/src/components/sticky-header/README.md +30 -0
  122. package/src/components/sticky-header/element.ts +19 -0
  123. package/src/components/sticky-header/engine.ts +95 -0
  124. package/src/components/sticky-header/react.tsx +25 -0
  125. package/src/components/sticky-header/sticky-header.css +9 -0
  126. package/src/components/temperature-slider/README.md +42 -0
  127. package/src/components/temperature-slider/element.ts +53 -0
  128. package/src/components/temperature-slider/engine.ts +44 -0
  129. package/src/components/temperature-slider/react.tsx +66 -0
  130. package/src/components/temperature-slider/temperature-slider.css +29 -0
  131. package/src/components/voice-message-bubble/engine.ts +11 -0
  132. package/src/components/voice-message-bubble/voice-message-bubble.css +14 -12
  133. package/src/components/waveform-player/README.md +1 -1
  134. package/src/components/waveform-player/engine.ts +344 -261
  135. package/src/components/waveform-player/waveform-player.css +50 -35
  136. package/src/components/wheel-picker/README.md +3 -1
  137. package/src/components/wheel-picker/element.ts +12 -5
  138. package/src/components/wheel-picker/engine.ts +37 -8
  139. package/src/components/wheel-picker/wheel-picker.css +17 -16
  140. package/src/css/tokens.css +4 -0
  141. package/src/elements/index.ts +45 -0
  142. package/src/index.ts +311 -295
  143. package/src/react/index.ts +16 -0
  144. package/dist/chunk-7IQTMF7Y.js.map +0 -1
  145. /package/dist/{chunk-VJFPTLAK.js.map → chunk-AWDEKDEJ.js.map} +0 -0
  146. /package/dist/{chunk-BZLMCHUD.js.map → chunk-EDMXWUW3.js.map} +0 -0
package/README.md CHANGED
@@ -4,6 +4,29 @@ Motion toolkit for vanilla JavaScript, Astro and React/Next.js. GSAP recipes, ac
4
4
 
5
5
  [Live playground](https://motion-kit-playground.vercel.app) — vanilla and React examples for every component.
6
6
 
7
+ ## New in 0.18.0
8
+
9
+ Fifteen components join the Melonmind/Stepbro visual language: tonal surfaces, restrained accent, elastic press feedback, moving selections, short blur transitions and rolling values. Every entry includes a vanilla factory, React adapter, custom element, individual CSS and working examples.
10
+
11
+ | Family | Components |
12
+ | --- | --- |
13
+ | Forms | `stepper` (horizontal, vertical, compact, dots), `radio-group` (pill, card, list), `equalizer-slider`, `temperature-slider`, `rating-scale` (numbered, sentiment) |
14
+ | Surfaces | `notification-stack`, `bento-grid`, `scroll-preview-dock`, `sticky-header` |
15
+ | Motion and actions | `handwriting-text`, `particle-button`, `magnetize-button`, `badge-button`, `morphing-page-dots`, `not-found` |
16
+
17
+ The five 0.17 components were redesigned: Wheel Picker now projects rows around a 3D cylinder with real Y/Z depth and native touch inertia; Signature Pad, Drilldown Menu and the audio components share the kit's press, highlight and transition vocabulary. Waveform progress follows the actual media time; it does not fabricate audio analysis. No new runtime dependencies.
18
+
19
+ ```tsx
20
+ import { Stepper, RadioGroup, TemperatureSlider } from '@yewdiel21/motion-kit/react';
21
+ import '@yewdiel21/motion-kit/css';
22
+
23
+ <Stepper items={[{ label: 'Details' }, { label: 'Review' }]} variant="compact" />
24
+ <RadioGroup name="plan" items={[{ value: 'solo', label: 'Personal' }, { value: 'team', label: 'Team' }]} />
25
+ <TemperatureSlider name="temperature" defaultValue={22} min={16} max={30} />
26
+ ```
27
+
28
+ Explore the [playground](https://motion-kit-playground.vercel.app), or copy an implementation with `npx @yewdiel21/motion-kit add stepper --react --elements`. Keep `destroy()`/React cleanup when replacing a component. Reduced motion retains every action; native form inputs provide keyboard, validation and submission.
29
+
7
30
  ## New in 0.17.0
8
31
 
9
32
  Five reusable components with vanilla factories, React wrappers, custom elements, individual stylesheets and live examples:
@@ -1,11 +1,26 @@
1
- import { c as createJoinedCta, a as createImageZoom, b as createFontCycle, d as createThumbnailNav, e as createActionButton, f as createFilmHero, g as createEditorialReveal, h as createDrawer, i as createWeightHover, j as createSticker, k as createScrollDock, l as createLocalClock, m as createSpringCards, C as CurvedCarouselInstance, n as createPile, o as createWords, p as createFlow, q as createPop, r as createFitText, s as createStretchFooter, t as createRadialMenu, u as createTabs, v as createCounter, w as createReveal, x as createReflow, y as createSlotText, z as createSortable, A as createMaskText, B as createCascade, D as createTextRoll, E as createLetters, F as createParallax, G as createDepthGrid, H as createFrameZoom, I as createContrast, J as createMarquee, K as createCardDock, L as createSnapStrip, M as createFillText, T as TicketMenuOptions, N as TicketMenuInstance, O as createInfiniteReel, P as createRepelBento, Q as createRotator, R as createDragRuler, S as createDockPill } from '../reduced-YS6TZjpa.js';
2
- export { U as MK_HEAD_SCRIPT } from '../reduced-YS6TZjpa.js';
3
- import { c as createWheelPicker, a as createDrilldownMenu, b as createVoiceMessageBubble, d as createWaveformPlayer, e as createSignaturePad, f as createStudioDock, g as createTrailer, h as createQuantity, i as createPagination, j as createHoverCard, k as createInputOtp, l as createCalendar, m as createSlotPicker, n as createCreditCard, o as createCommandSearch, p as createHoldConfirm, q as createImagePreview, r as createNotificationBell, s as createPasswordStrength, t as createScratchCard, u as createStarRating, v as createAttachment, w as createSkeleton, x as createQuestionnaire, y as createCodeBlock, z as createContextMenu, A as createLinkPreview, B as createProgress, C as createRangeSlider, D as createChart, E as createColorSlider, F as createColorArea, G as createColorField, H as createColorPicker, I as createTimeField, J as createRangeCalendar, K as createDateRangePicker, L as createTooltip, M as createPopover, N as createLoadingButton, O as createBreadcrumb, P as createEmptyState, Q as createStatCard, R as createChartTooltip, S as createMultiSelect, T as createTagInput, U as createDateTimePicker, V as createFilterBuilder, W as createTimeline, X as createActivityFeed, Y as createTreeView, Z as createFileExplorer, _ as createJsonViewer, $ as createVirtualList, a0 as createResizablePanel, a1 as createSplitView, a2 as createDataTable, a3 as createEditableTable, a4 as createRichTextEditor, a5 as createSelect, a6 as createAddToCart, a7 as createScrollIsland } from '../engine-Bn6hC87X.js';
1
+ import { c as createJoinedCta, a as createImageZoom, b as createFontCycle, d as createThumbnailNav, e as createActionButton, f as createFilmHero, g as createEditorialReveal, h as createDrawer, i as createWeightHover, j as createSticker, k as createScrollDock, l as createLocalClock, m as createSpringCards, C as CurvedCarouselInstance, n as createPile, o as createWords, p as createFlow, q as createPop, r as createFitText, s as createStretchFooter, t as createRadialMenu, u as createTabs, v as createCounter, w as createReveal, x as createReflow, y as createSlotText, z as createSortable, A as createMaskText, B as createCascade, D as createTextRoll, E as createLetters, F as createParallax, G as createDepthGrid, H as createFrameZoom, I as createContrast, J as createMarquee, K as createCardDock, L as createSnapStrip, M as createFillText, T as TicketMenuOptions, N as TicketMenuInstance, O as createInfiniteReel, P as createRepelBento, Q as createRotator, R as createDragRuler, S as createDockPill } from '../reduced-dPsZYqtI.js';
2
+ export { U as MK_HEAD_SCRIPT } from '../reduced-dPsZYqtI.js';
3
+ import { c as createStepper, a as createRadioGroup, b as createEqualizerSlider, d as createTemperatureSlider, e as createRatingScale, f as createNotificationStack, g as createBentoGrid, h as createScrollPreviewDock, i as createStickyHeader, j as createHandwritingText, k as createParticleButton, l as createMagnetizeButton, m as createBadgeButton, n as createMorphingPageDots, o as createNotFound, p as createWheelPicker, q as createDrilldownMenu, r as createVoiceMessageBubble, s as createWaveformPlayer, t as createSignaturePad, u as createStudioDock, v as createTrailer, w as createQuantity, x as createPagination, y as createHoverCard, z as createInputOtp, A as createCalendar, B as createSlotPicker, C as createCreditCard, D as createCommandSearch, E as createHoldConfirm, F as createImagePreview, G as createNotificationBell, H as createPasswordStrength, I as createScratchCard, J as createStarRating, K as createAttachment, L as createSkeleton, M as createQuestionnaire, N as createCodeBlock, O as createContextMenu, P as createLinkPreview, Q as createProgress, R as createRangeSlider, S as createChart, T as createColorSlider, U as createColorArea, V as createColorField, W as createColorPicker, X as createTimeField, Y as createRangeCalendar, Z as createDateRangePicker, _ as createTooltip, $ as createPopover, a0 as createLoadingButton, a1 as createBreadcrumb, a2 as createEmptyState, a3 as createStatCard, a4 as createChartTooltip, a5 as createMultiSelect, a6 as createTagInput, a7 as createDateTimePicker, a8 as createFilterBuilder, a9 as createTimeline, aa as createActivityFeed, ab as createTreeView, ac as createFileExplorer, ad as createJsonViewer, ae as createVirtualList, af as createResizablePanel, ag as createSplitView, ah as createDataTable, ai as createEditableTable, aj as createRichTextEditor, ak as createSelect, al as createAddToCart, am as createScrollIsland } from '../engine-t8d7brjn.js';
4
4
  import { c as createLikeButton, a as createSwipeActions } from '../engine-QECQnGz1.js';
5
5
  import { I as Instance } from '../types-BkS_raL8.js';
6
6
  import 'gsap/SplitText';
7
7
 
8
8
  declare const factories: {
9
+ stepper: typeof createStepper;
10
+ 'radio-group': typeof createRadioGroup;
11
+ 'equalizer-slider': typeof createEqualizerSlider;
12
+ 'temperature-slider': typeof createTemperatureSlider;
13
+ 'rating-scale': typeof createRatingScale;
14
+ 'notification-stack': typeof createNotificationStack;
15
+ 'bento-grid': typeof createBentoGrid;
16
+ 'scroll-preview-dock': typeof createScrollPreviewDock;
17
+ 'sticky-header': typeof createStickyHeader;
18
+ 'handwriting-text': typeof createHandwritingText;
19
+ 'particle-button': typeof createParticleButton;
20
+ 'magnetize-button': typeof createMagnetizeButton;
21
+ 'badge-button': typeof createBadgeButton;
22
+ 'morphing-page-dots': typeof createMorphingPageDots;
23
+ 'not-found': typeof createNotFound;
9
24
  'wheel-picker': typeof createWheelPicker;
10
25
  'drilldown-menu': typeof createDrilldownMenu;
11
26
  'voice-message-bubble': typeof createVoiceMessageBubble;
@@ -44,12 +44,14 @@ import {
44
44
  createTicketMenu,
45
45
  createWeightHover,
46
46
  createWords
47
- } from "../chunk-BZLMCHUD.js";
47
+ } from "../chunk-EDMXWUW3.js";
48
48
  import {
49
49
  ScrollTrigger,
50
50
  createActivityFeed,
51
51
  createAddToCart,
52
52
  createAttachment,
53
+ createBadgeButton,
54
+ createBentoGrid,
53
55
  createBreadcrumb,
54
56
  createCalendar,
55
57
  createChart,
@@ -69,8 +71,10 @@ import {
69
71
  createDrilldownMenu,
70
72
  createEditableTable,
71
73
  createEmptyState,
74
+ createEqualizerSlider,
72
75
  createFileExplorer,
73
76
  createFilterBuilder,
77
+ createHandwritingText,
74
78
  createHoldConfirm,
75
79
  createHoverCard,
76
80
  createImagePreview,
@@ -79,20 +83,28 @@ import {
79
83
  createLikeButton,
80
84
  createLinkPreview,
81
85
  createLoadingButton,
86
+ createMagnetizeButton,
87
+ createMorphingPageDots,
82
88
  createMultiSelect,
89
+ createNotFound,
83
90
  createNotificationBell,
91
+ createNotificationStack,
84
92
  createPagination,
93
+ createParticleButton,
85
94
  createPasswordStrength,
86
95
  createPopover,
87
96
  createProgress,
88
97
  createQuantity,
89
98
  createQuestionnaire,
99
+ createRadioGroup,
90
100
  createRangeCalendar,
91
101
  createRangeSlider,
102
+ createRatingScale,
92
103
  createResizablePanel,
93
104
  createRichTextEditor,
94
105
  createScratchCard,
95
106
  createScrollIsland,
107
+ createScrollPreviewDock,
96
108
  createSelect,
97
109
  createSignaturePad,
98
110
  createSkeleton,
@@ -100,9 +112,12 @@ import {
100
112
  createSplitView,
101
113
  createStarRating,
102
114
  createStatCard,
115
+ createStepper,
116
+ createStickyHeader,
103
117
  createStudioDock,
104
118
  createSwipeActions,
105
119
  createTagInput,
120
+ createTemperatureSlider,
106
121
  createTimeField,
107
122
  createTimeline,
108
123
  createTooltip,
@@ -112,7 +127,7 @@ import {
112
127
  createVoiceMessageBubble,
113
128
  createWaveformPlayer,
114
129
  createWheelPicker
115
- } from "../chunk-7IQTMF7Y.js";
130
+ } from "../chunk-Q7IW4FV3.js";
116
131
  import "../chunk-34EZ7DF4.js";
117
132
  import {
118
133
  MK_HEAD_SCRIPT
@@ -186,6 +201,21 @@ function parseOptions(el) {
186
201
 
187
202
  // src/auto/auto-init.ts
188
203
  var factories = {
204
+ "stepper": createStepper,
205
+ "radio-group": createRadioGroup,
206
+ "equalizer-slider": createEqualizerSlider,
207
+ "temperature-slider": createTemperatureSlider,
208
+ "rating-scale": createRatingScale,
209
+ "notification-stack": createNotificationStack,
210
+ "bento-grid": createBentoGrid,
211
+ "scroll-preview-dock": createScrollPreviewDock,
212
+ "sticky-header": createStickyHeader,
213
+ "handwriting-text": createHandwritingText,
214
+ "particle-button": createParticleButton,
215
+ "magnetize-button": createMagnetizeButton,
216
+ "badge-button": createBadgeButton,
217
+ "morphing-page-dots": createMorphingPageDots,
218
+ "not-found": createNotFound,
189
219
  "wheel-picker": createWheelPicker,
190
220
  "drilldown-menu": createDrilldownMenu,
191
221
  "voice-message-bubble": createVoiceMessageBubble,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auto/parse-options.ts","../../src/auto/auto-init.ts"],"sourcesContent":["/** Attributes the recipes write themselves or use for children; never options. */\nconst RESERVED = new Set([\n '',\n 'ready',\n 'inview',\n 'carousel',\n 'open',\n 'card',\n 'slide',\n 'toggle',\n 'item',\n 'phantom',\n 'footerTitle',\n 'tab',\n 'indicator',\n 'chevron',\n 'text',\n 'role',\n 'motion',\n 'veil',\n 'swatch',\n 'part',\n 'sorting',\n 'sortableGroup',\n 'sortableLocked',\n 'cascade',\n 'on',\n 'tone',\n 'cursorZone',\n 'hidden',\n 'pressed',\n 'parallaxTarget',\n 'spread',\n 'expanded',\n 'settled',\n 'mode',\n 'active',\n 'islandToggle',\n 'islandPanel',\n 'islandItem',\n 'islandClose',\n 'reelTrack',\n 'reelCopy',\n 'dragging',\n 'dockItem',\n]);\n\nconst coerce = (value: string): unknown => {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n if (/^-?\\d*\\.?\\d+$/.test(value)) return Number(value);\n return value;\n};\n\n/**\n * `data-mk-<option>` attributes → options object.\n * `data-mk-throw-boost=\"2.5\"` → `{ throwBoost: 2.5 }`, `data-mk-trigger=\"load\"` → `{ trigger: 'load' }`.\n */\nexport function parseOptions(el: HTMLElement): Record<string, unknown> {\n const options: Record<string, unknown> = {};\n for (const [key, raw] of Object.entries(el.dataset)) {\n if (!key.startsWith('mk') || key.length === 2) continue;\n const name = key.charAt(2).toLowerCase() + key.slice(3);\n if (RESERVED.has(name)) continue;\n options[name] = coerce(raw ?? '');\n }\n return options;\n}\n","import { createQuantity } from '../components/quantity/engine';\r\nimport { createPagination } from '../components/pagination/engine';\r\nimport { createHoverCard } from '../components/hover-card/engine';\r\nimport { createInputOtp } from '../components/input-otp/engine';\r\nimport { createJoinedCta } from '../recipes/joined-cta/create-joined-cta';\r\nimport { createImageZoom } from '../recipes/image-zoom/create-image-zoom';\r\nimport { createFontCycle } from '../recipes/font-cycle/create-font-cycle';\r\nimport { createThumbnailNav } from '../recipes/thumbnail-nav/create-thumbnail-nav';\r\nimport { createActionButton } from '../recipes/action-button/create-action-button';\r\nimport { createFilmHero } from '../recipes/film-hero/create-film-hero';\r\nimport { createEditorialReveal } from '../recipes/editorial-reveal/create-editorial-reveal';\r\nimport { createStudioDock } from '../components/studio-dock/engine';\r\nimport { createCalendar } from '../components/calendar/engine';\r\nimport { createSlotPicker } from '../components/slot-picker/engine';\r\nimport { createWeightHover } from '../recipes/weight-hover/create-weight-hover';\r\nimport { createSticker } from '../recipes/sticker/create-sticker';\r\nimport { createScrollDock } from '../recipes/scroll-dock/create-scroll-dock';\r\nimport { createLocalClock } from '../recipes/local-clock/create-local-clock';\r\nimport { createTrailer } from '../components/trailer/engine';\r\nimport { createCreditCard } from '../components/credit-card/engine';\r\nimport { createCommandSearch } from '../components/command-search/engine';\r\nimport { createHoldConfirm } from '../components/hold-confirm/engine';\r\nimport { createImagePreview } from '../components/image-preview/engine';\r\nimport { createLikeButton } from '../components/like-button/engine';\r\nimport { createNotificationBell } from '../components/notification-bell/engine';\r\nimport { createPasswordStrength } from '../components/password-strength/engine';\r\nimport { createScratchCard } from '../components/scratch-card/engine';\r\nimport { createStarRating } from '../components/star-rating/engine';\r\nimport { createSwipeActions } from '../components/swipe-actions/engine';\r\nimport { createAttachment } from '../components/attachment/engine';\r\nimport { createSkeleton } from '../components/skeleton/engine';\r\nimport { createQuestionnaire } from '../components/questionnaire/engine';\r\nimport { createCodeBlock } from '../components/code-block/engine';\r\nimport { createContextMenu } from '../components/context-menu/engine';\r\nimport { createDrawer } from '../components/drawer/engine';\r\nimport { createLinkPreview } from '../components/link-preview/engine';\r\nimport { createProgress } from '../components/progress/engine';\r\nimport { createRangeSlider } from '../components/range-slider/engine';\r\nimport { createChart } from '../components/chart/engine';\r\nimport { createColorSlider } from '../components/color-slider/engine';\r\nimport { createColorArea } from '../components/color-area/engine';\r\nimport { createColorField } from '../components/color-field/engine';\r\nimport { createColorPicker } from '../components/color-picker/engine';\r\nimport { createTimeField } from '../components/time-field/engine';\r\nimport { createRangeCalendar } from '../components/range-calendar/engine';\r\nimport { createDateRangePicker } from '../components/date-range-picker/engine';\r\nimport { createTooltip } from '../components/tooltip/engine';\r\nimport { createPopover } from '../components/popover/engine';\r\nimport { createLoadingButton } from '../components/loading-button/engine';\r\nimport { createBreadcrumb } from '../components/breadcrumb/engine';\r\nimport { createEmptyState } from '../components/empty-state/engine';\r\nimport { createStatCard } from '../components/stat-card/engine';\r\nimport { createChartTooltip } from '../components/chart-tooltip/engine';\r\nimport { createMultiSelect } from '../components/multi-select/engine';\r\nimport { createTagInput } from '../components/tag-input/engine';\r\nimport { createDateTimePicker } from '../components/date-time-picker/engine';\r\nimport { createFilterBuilder } from '../components/filter-builder/engine';\r\nimport { createTimeline } from '../components/timeline/engine';\r\nimport { createActivityFeed } from '../components/activity-feed/engine';\r\nimport { createTreeView } from '../components/tree-view/engine';\r\nimport { createFileExplorer } from '../components/file-explorer/engine';\r\nimport { createJsonViewer } from '../components/json-viewer/engine';\r\nimport { createVirtualList } from '../components/virtual-list/engine';\r\nimport { createResizablePanel } from '../components/resizable-panel/engine';\r\nimport { createSplitView } from '../components/split-view/engine';\r\nimport { createDataTable } from '../components/data-table/engine';\r\nimport { createEditableTable } from '../components/editable-table/engine';\r\nimport { createRichTextEditor } from '../components/rich-text-editor/engine';\r\nimport { createSelect } from '../components/select/engine';\r\nimport { createAddToCart } from '../components/add-to-cart/engine';\r\nimport { createScrollIsland } from '../components/scroll-island/engine';\r\nimport { ScrollTrigger } from '../core/gsap';\r\nimport { warnOnce, type Instance } from '../core/types';\r\nimport { createSpringCards } from '../recipes/spring-cards/create-spring-cards';\r\nimport { createCurvedCarousel } from '../recipes/curved-carousel/create-curved-carousel';\r\nimport { createPile } from '../recipes/pile/create-pile';\r\nimport { createWords } from '../recipes/words/create-words';\r\nimport { createFlow } from '../recipes/flow/create-flow';\r\nimport { createPop } from '../recipes/pop/create-pop';\r\nimport { createFitText } from '../recipes/fit-text/create-fit-text';\r\nimport { createStretchFooter } from '../recipes/stretch-footer/create-stretch-footer';\r\nimport { createRadialMenu } from '../recipes/radial-menu/create-radial-menu';\r\nimport { createTabs } from '../recipes/tabs/create-tabs';\r\nimport { createCounter } from '../recipes/counter/create-counter';\r\nimport { createDetails } from '../recipes/details/create-details';\r\nimport { createReveal } from '../recipes/reveal/create-reveal';\r\nimport { createReflow } from '../recipes/reflow/create-reflow';\r\nimport { createSlotText } from '../recipes/slot-text/create-slot-text';\r\nimport { createSortable } from '../recipes/sortable/create-sortable';\r\nimport { createMaskText } from '../recipes/mask-text/create-mask-text';\r\nimport { createCascade } from '../recipes/cascade/create-cascade';\r\nimport { createTextRoll } from '../recipes/text-roll/create-text-roll';\r\nimport { createLetters } from '../recipes/letters/create-letters';\r\nimport { createParallax } from '../recipes/parallax/create-parallax';\r\nimport { createDepthGrid } from '../recipes/depth-grid/create-depth-grid';\r\nimport { createFrameZoom } from '../recipes/frame-zoom/create-frame-zoom';\r\nimport { createContrast } from '../recipes/contrast/create-contrast';\r\nimport { createMarquee } from '../recipes/marquee/create-marquee';\r\nimport { createCardDock } from '../recipes/card-dock/create-card-dock';\r\nimport { createSnapStrip } from '../recipes/snap-strip/create-snap-strip';\r\nimport { createFillText } from '../recipes/fill-text/create-fill-text';\r\nimport { parseOptions } from './parse-options';\r\nimport { createTicketMenu } from '../recipes/ticket-menu/create-ticket-menu';\r\nimport { createInfiniteReel } from '../recipes/infinite-reel/create-infinite-reel';\r\nimport { createRepelBento } from '../recipes/repel-bento/create-repel-bento';\r\nimport { createRotator } from '../recipes/rotator/create-rotator';\r\nimport { createDragRuler } from '../recipes/drag-ruler/create-drag-ruler';\r\nimport { createDockPill } from '../recipes/dock-pill/create-dock-pill';\r\n\r\nimport { createSignaturePad } from '../components/signature-pad/engine';\r\n\r\nimport { createWaveformPlayer } from '../components/waveform-player/engine';\r\n\r\nimport { createVoiceMessageBubble } from '../components/voice-message-bubble/engine';\r\n\r\nimport { createDrilldownMenu } from '../components/drilldown-menu/engine';\r\n\r\nimport { createWheelPicker } from '../components/wheel-picker/engine';\r\n\r\ntype Factory = (el: HTMLElement, options: Record<string, unknown>) => Instance;\r\n\r\nconst factories = {\r\n 'wheel-picker': createWheelPicker,\r\n 'drilldown-menu': createDrilldownMenu,\r\n 'voice-message-bubble': createVoiceMessageBubble,\r\n 'waveform-player': createWaveformPlayer,\r\n 'signature-pad': createSignaturePad,\r\n 'joined-cta': createJoinedCta,\r\n 'image-zoom': createImageZoom,\r\n 'font-cycle': createFontCycle,\r\n 'thumbnail-nav': createThumbnailNav,\r\n 'action-button': createActionButton,\r\n 'film-hero': createFilmHero,\r\n 'editorial-reveal': createEditorialReveal,\r\n 'studio-dock': createStudioDock,\r\n 'trailer': createTrailer,\r\n 'quantity': createQuantity,\r\n 'pagination': createPagination,\r\n 'hover-card': createHoverCard,\r\n 'input-otp': createInputOtp,\r\n 'calendar': createCalendar,\r\n 'slot-picker': createSlotPicker,\r\n 'credit-card': createCreditCard,\r\n 'command-search': createCommandSearch,\r\n 'hold-confirm': createHoldConfirm,\r\n 'image-preview': createImagePreview,\r\n 'like-button': createLikeButton,\r\n 'notification-bell': createNotificationBell,\r\n 'password-strength': createPasswordStrength,\r\n 'scratch-card': createScratchCard,\r\n 'star-rating': createStarRating,\r\n 'swipe-actions': createSwipeActions,\r\n 'attachment': createAttachment,\r\n 'skeleton': createSkeleton,\r\n 'questionnaire': createQuestionnaire,\r\n 'code-block': createCodeBlock,\r\n 'context-menu': createContextMenu,\r\n 'drawer': createDrawer,\r\n 'link-preview': createLinkPreview,\r\n 'progress': createProgress,\r\n 'range-slider': createRangeSlider,\r\n 'chart': createChart,\r\n 'color-slider': createColorSlider,\r\n 'color-area': createColorArea,\r\n 'color-field': createColorField,\r\n 'color-picker': createColorPicker,\r\n 'time-field': createTimeField,\r\n 'range-calendar': createRangeCalendar,\r\n 'date-range-picker': createDateRangePicker,\r\n 'tooltip': createTooltip,\r\n 'popover': createPopover,\r\n 'loading-button': createLoadingButton,\r\n 'breadcrumb': createBreadcrumb,\r\n 'empty-state': createEmptyState,\r\n 'stat-card': createStatCard,\r\n 'chart-tooltip': createChartTooltip,\r\n 'multi-select': createMultiSelect,\r\n 'tag-input': createTagInput,\r\n 'date-time-picker': createDateTimePicker,\r\n 'filter-builder': createFilterBuilder,\r\n 'timeline': createTimeline,\r\n 'activity-feed': createActivityFeed,\r\n 'tree-view': createTreeView,\r\n 'file-explorer': createFileExplorer,\r\n 'json-viewer': createJsonViewer,\r\n 'virtual-list': createVirtualList,\r\n 'resizable-panel': createResizablePanel,\r\n 'split-view': createSplitView,\r\n 'data-table': createDataTable,\r\n 'editable-table': createEditableTable,\r\n 'rich-text-editor': createRichTextEditor,\r\n 'select': createSelect,\r\n 'add-to-cart': createAddToCart,\r\n 'scroll-island': createScrollIsland,\r\n 'weight-hover': createWeightHover,\r\n 'sticker': createSticker,\r\n 'scroll-dock': createScrollDock,\r\n 'local-clock': createLocalClock,\r\n 'spring-cards': createSpringCards,\r\n 'curved-carousel': (el, options) =>\r\n createCurvedCarousel(el, {\r\n ...options,\r\n onSelect: (index, slide) => el.dispatchEvent(new CustomEvent('mk:select', { detail: { index, slide }, bubbles: true })),\r\n }),\r\n pile: createPile,\r\n words: createWords,\r\n flow: createFlow,\r\n pop: createPop,\r\n 'fit-text': createFitText,\r\n 'stretch-footer': createStretchFooter,\r\n 'radial-menu': createRadialMenu,\r\n tabs: createTabs,\r\n counter: createCounter,\r\n details: (el) => createDetails(el),\r\n reveal: createReveal,\r\n reflow: createReflow,\r\n 'slot-text': createSlotText,\r\n sortable: createSortable,\r\n 'mask-text': createMaskText,\r\n cascade: createCascade,\r\n 'text-roll': createTextRoll,\r\n letters: createLetters,\r\n parallax: createParallax,\r\n 'depth-grid': createDepthGrid,\r\n 'frame-zoom': createFrameZoom,\r\n contrast: createContrast,\r\n marquee: createMarquee,\r\n 'card-dock': createCardDock,\r\n 'snap-strip': createSnapStrip,\r\n 'fill-text': createFillText,\r\n 'ticket-menu': createTicketMenu,\r\n 'infinite-reel': createInfiniteReel,\r\n 'repel-bento': createRepelBento,\r\n 'rotator': createRotator,\r\n 'drag-ruler': createDragRuler,\r\n 'dock-pill': createDockPill,\r\n} satisfies Record<string, Factory>;\r\n\r\nexport type RecipeName = keyof typeof factories;\r\nexport const recipeNames = Object.keys(factories) as RecipeName[];\r\n\r\n/** Measured text: wait for web fonts, fit before splitting into words. */\r\nconst AFTER_FONTS: RecipeName[] = ['fit-text', 'words', 'slot-text'];\r\n\r\nconst instances = new WeakMap<HTMLElement, Map<RecipeName, Instance>>();\r\n\r\nexport interface AutoInitOptions {\r\n /** Only start these recipes. */\r\n only?: RecipeName[];\r\n}\r\n\r\n/**\r\n * Start every `[data-mk]` recipe inside `root` (an element may list several:\r\n * `data-mk=\"fit-text words\"`). Options come from `data-mk-*` attributes.\r\n * Returns a function that destroys what this call created. Safe to call again:\r\n * elements that already run a recipe are skipped.\r\n */\r\nexport function autoInit(root: ParentNode = document, { only }: AutoInitOptions = {}): () => void {\r\n if (typeof window === 'undefined') return () => {};\r\n const created: Array<[HTMLElement, RecipeName, Instance]> = [];\r\n let cancelled = false;\r\n\r\n const elements = [...root.querySelectorAll<HTMLElement>('[data-mk]')];\r\n if (root instanceof HTMLElement && root.matches('[data-mk]')) elements.unshift(root);\r\n\r\n const start = (el: HTMLElement, name: RecipeName) => {\r\n if (cancelled) return;\r\n const running = instances.get(el) ?? new Map<RecipeName, Instance>();\r\n if (running.has(name)) return;\r\n const instance = (factories[name] as Factory)(el, parseOptions(el));\r\n running.set(name, instance);\r\n instances.set(el, running);\r\n created.push([el, name, instance]);\r\n };\r\n\r\n const now: Array<[HTMLElement, RecipeName]> = [];\r\n const later: Array<[HTMLElement, RecipeName]> = [];\r\n for (const el of elements) {\r\n for (const raw of (el.dataset.mk ?? '').split(/\\s+/).filter(Boolean)) {\r\n if (!(raw in factories)) {\r\n warnOnce(`autoInit: unknown recipe \"${raw}\" (known: ${recipeNames.join(', ')})`);\r\n continue;\r\n }\r\n const name = raw as RecipeName;\r\n if (only && !only.includes(name)) continue;\r\n (AFTER_FONTS.includes(name) ? later : now).push([el, name]);\r\n }\r\n }\r\n\r\n now.forEach(([el, name]) => start(el, name));\r\n if (later.length) {\r\n later.sort((a, b) => AFTER_FONTS.indexOf(a[1]) - AFTER_FONTS.indexOf(b[1]));\r\n const fonts = document.fonts?.ready ?? Promise.resolve();\r\n void Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(() => {\r\n later.forEach(([el, name]) => start(el, name));\r\n if (!cancelled) ScrollTrigger.refresh();\r\n });\r\n }\r\n\r\n return () => {\r\n cancelled = true;\r\n for (const [el, name, instance] of created.reverse()) {\r\n instance.destroy();\r\n instances.get(el)?.delete(name);\r\n }\r\n created.length = 0;\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/auto/parse-options.ts","../../src/auto/auto-init.ts"],"sourcesContent":["/** Attributes the recipes write themselves or use for children; never options. */\nconst RESERVED = new Set([\n '',\n 'ready',\n 'inview',\n 'carousel',\n 'open',\n 'card',\n 'slide',\n 'toggle',\n 'item',\n 'phantom',\n 'footerTitle',\n 'tab',\n 'indicator',\n 'chevron',\n 'text',\n 'role',\n 'motion',\n 'veil',\n 'swatch',\n 'part',\n 'sorting',\n 'sortableGroup',\n 'sortableLocked',\n 'cascade',\n 'on',\n 'tone',\n 'cursorZone',\n 'hidden',\n 'pressed',\n 'parallaxTarget',\n 'spread',\n 'expanded',\n 'settled',\n 'mode',\n 'active',\n 'islandToggle',\n 'islandPanel',\n 'islandItem',\n 'islandClose',\n 'reelTrack',\n 'reelCopy',\n 'dragging',\n 'dockItem',\n]);\n\nconst coerce = (value: string): unknown => {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n if (/^-?\\d*\\.?\\d+$/.test(value)) return Number(value);\n return value;\n};\n\n/**\n * `data-mk-<option>` attributes → options object.\n * `data-mk-throw-boost=\"2.5\"` → `{ throwBoost: 2.5 }`, `data-mk-trigger=\"load\"` → `{ trigger: 'load' }`.\n */\nexport function parseOptions(el: HTMLElement): Record<string, unknown> {\n const options: Record<string, unknown> = {};\n for (const [key, raw] of Object.entries(el.dataset)) {\n if (!key.startsWith('mk') || key.length === 2) continue;\n const name = key.charAt(2).toLowerCase() + key.slice(3);\n if (RESERVED.has(name)) continue;\n options[name] = coerce(raw ?? '');\n }\n return options;\n}\n","import { createNotFound } from '../components/not-found/engine';\r\nimport { createMorphingPageDots } from '../components/morphing-page-dots/engine';\r\nimport { createBadgeButton } from '../components/badge-button/engine';\r\nimport { createMagnetizeButton } from '../components/magnetize-button/engine';\r\nimport { createParticleButton } from '../components/particle-button/engine';\r\nimport { createHandwritingText } from '../components/handwriting-text/engine';\r\nimport { createStickyHeader } from '../components/sticky-header/engine';\r\nimport { createScrollPreviewDock } from '../components/scroll-preview-dock/engine';\r\nimport { createBentoGrid } from '../components/bento-grid/engine';\r\nimport { createNotificationStack } from '../components/notification-stack/engine';\r\nimport { createRatingScale } from '../components/rating-scale/engine';\r\nimport { createTemperatureSlider } from '../components/temperature-slider/engine';\r\nimport { createEqualizerSlider } from '../components/equalizer-slider/engine';\r\nimport { createRadioGroup } from '../components/radio-group/engine';\r\nimport { createStepper } from '../components/stepper/engine';\r\nimport { createQuantity } from '../components/quantity/engine';\r\nimport { createPagination } from '../components/pagination/engine';\r\nimport { createHoverCard } from '../components/hover-card/engine';\r\nimport { createInputOtp } from '../components/input-otp/engine';\r\nimport { createJoinedCta } from '../recipes/joined-cta/create-joined-cta';\r\nimport { createImageZoom } from '../recipes/image-zoom/create-image-zoom';\r\nimport { createFontCycle } from '../recipes/font-cycle/create-font-cycle';\r\nimport { createThumbnailNav } from '../recipes/thumbnail-nav/create-thumbnail-nav';\r\nimport { createActionButton } from '../recipes/action-button/create-action-button';\r\nimport { createFilmHero } from '../recipes/film-hero/create-film-hero';\r\nimport { createEditorialReveal } from '../recipes/editorial-reveal/create-editorial-reveal';\r\nimport { createStudioDock } from '../components/studio-dock/engine';\r\nimport { createCalendar } from '../components/calendar/engine';\r\nimport { createSlotPicker } from '../components/slot-picker/engine';\r\nimport { createWeightHover } from '../recipes/weight-hover/create-weight-hover';\r\nimport { createSticker } from '../recipes/sticker/create-sticker';\r\nimport { createScrollDock } from '../recipes/scroll-dock/create-scroll-dock';\r\nimport { createLocalClock } from '../recipes/local-clock/create-local-clock';\r\nimport { createTrailer } from '../components/trailer/engine';\r\nimport { createCreditCard } from '../components/credit-card/engine';\r\nimport { createCommandSearch } from '../components/command-search/engine';\r\nimport { createHoldConfirm } from '../components/hold-confirm/engine';\r\nimport { createImagePreview } from '../components/image-preview/engine';\r\nimport { createLikeButton } from '../components/like-button/engine';\r\nimport { createNotificationBell } from '../components/notification-bell/engine';\r\nimport { createPasswordStrength } from '../components/password-strength/engine';\r\nimport { createScratchCard } from '../components/scratch-card/engine';\r\nimport { createStarRating } from '../components/star-rating/engine';\r\nimport { createSwipeActions } from '../components/swipe-actions/engine';\r\nimport { createAttachment } from '../components/attachment/engine';\r\nimport { createSkeleton } from '../components/skeleton/engine';\r\nimport { createQuestionnaire } from '../components/questionnaire/engine';\r\nimport { createCodeBlock } from '../components/code-block/engine';\r\nimport { createContextMenu } from '../components/context-menu/engine';\r\nimport { createDrawer } from '../components/drawer/engine';\r\nimport { createLinkPreview } from '../components/link-preview/engine';\r\nimport { createProgress } from '../components/progress/engine';\r\nimport { createRangeSlider } from '../components/range-slider/engine';\r\nimport { createChart } from '../components/chart/engine';\r\nimport { createColorSlider } from '../components/color-slider/engine';\r\nimport { createColorArea } from '../components/color-area/engine';\r\nimport { createColorField } from '../components/color-field/engine';\r\nimport { createColorPicker } from '../components/color-picker/engine';\r\nimport { createTimeField } from '../components/time-field/engine';\r\nimport { createRangeCalendar } from '../components/range-calendar/engine';\r\nimport { createDateRangePicker } from '../components/date-range-picker/engine';\r\nimport { createTooltip } from '../components/tooltip/engine';\r\nimport { createPopover } from '../components/popover/engine';\r\nimport { createLoadingButton } from '../components/loading-button/engine';\r\nimport { createBreadcrumb } from '../components/breadcrumb/engine';\r\nimport { createEmptyState } from '../components/empty-state/engine';\r\nimport { createStatCard } from '../components/stat-card/engine';\r\nimport { createChartTooltip } from '../components/chart-tooltip/engine';\r\nimport { createMultiSelect } from '../components/multi-select/engine';\r\nimport { createTagInput } from '../components/tag-input/engine';\r\nimport { createDateTimePicker } from '../components/date-time-picker/engine';\r\nimport { createFilterBuilder } from '../components/filter-builder/engine';\r\nimport { createTimeline } from '../components/timeline/engine';\r\nimport { createActivityFeed } from '../components/activity-feed/engine';\r\nimport { createTreeView } from '../components/tree-view/engine';\r\nimport { createFileExplorer } from '../components/file-explorer/engine';\r\nimport { createJsonViewer } from '../components/json-viewer/engine';\r\nimport { createVirtualList } from '../components/virtual-list/engine';\r\nimport { createResizablePanel } from '../components/resizable-panel/engine';\r\nimport { createSplitView } from '../components/split-view/engine';\r\nimport { createDataTable } from '../components/data-table/engine';\r\nimport { createEditableTable } from '../components/editable-table/engine';\r\nimport { createRichTextEditor } from '../components/rich-text-editor/engine';\r\nimport { createSelect } from '../components/select/engine';\r\nimport { createAddToCart } from '../components/add-to-cart/engine';\r\nimport { createScrollIsland } from '../components/scroll-island/engine';\r\nimport { ScrollTrigger } from '../core/gsap';\r\nimport { warnOnce, type Instance } from '../core/types';\r\nimport { createSpringCards } from '../recipes/spring-cards/create-spring-cards';\r\nimport { createCurvedCarousel } from '../recipes/curved-carousel/create-curved-carousel';\r\nimport { createPile } from '../recipes/pile/create-pile';\r\nimport { createWords } from '../recipes/words/create-words';\r\nimport { createFlow } from '../recipes/flow/create-flow';\r\nimport { createPop } from '../recipes/pop/create-pop';\r\nimport { createFitText } from '../recipes/fit-text/create-fit-text';\r\nimport { createStretchFooter } from '../recipes/stretch-footer/create-stretch-footer';\r\nimport { createRadialMenu } from '../recipes/radial-menu/create-radial-menu';\r\nimport { createTabs } from '../recipes/tabs/create-tabs';\r\nimport { createCounter } from '../recipes/counter/create-counter';\r\nimport { createDetails } from '../recipes/details/create-details';\r\nimport { createReveal } from '../recipes/reveal/create-reveal';\r\nimport { createReflow } from '../recipes/reflow/create-reflow';\r\nimport { createSlotText } from '../recipes/slot-text/create-slot-text';\r\nimport { createSortable } from '../recipes/sortable/create-sortable';\r\nimport { createMaskText } from '../recipes/mask-text/create-mask-text';\r\nimport { createCascade } from '../recipes/cascade/create-cascade';\r\nimport { createTextRoll } from '../recipes/text-roll/create-text-roll';\r\nimport { createLetters } from '../recipes/letters/create-letters';\r\nimport { createParallax } from '../recipes/parallax/create-parallax';\r\nimport { createDepthGrid } from '../recipes/depth-grid/create-depth-grid';\r\nimport { createFrameZoom } from '../recipes/frame-zoom/create-frame-zoom';\r\nimport { createContrast } from '../recipes/contrast/create-contrast';\r\nimport { createMarquee } from '../recipes/marquee/create-marquee';\r\nimport { createCardDock } from '../recipes/card-dock/create-card-dock';\r\nimport { createSnapStrip } from '../recipes/snap-strip/create-snap-strip';\r\nimport { createFillText } from '../recipes/fill-text/create-fill-text';\r\nimport { parseOptions } from './parse-options';\r\nimport { createTicketMenu } from '../recipes/ticket-menu/create-ticket-menu';\r\nimport { createInfiniteReel } from '../recipes/infinite-reel/create-infinite-reel';\r\nimport { createRepelBento } from '../recipes/repel-bento/create-repel-bento';\r\nimport { createRotator } from '../recipes/rotator/create-rotator';\r\nimport { createDragRuler } from '../recipes/drag-ruler/create-drag-ruler';\r\nimport { createDockPill } from '../recipes/dock-pill/create-dock-pill';\r\n\r\nimport { createSignaturePad } from '../components/signature-pad/engine';\r\n\r\nimport { createWaveformPlayer } from '../components/waveform-player/engine';\r\n\r\nimport { createVoiceMessageBubble } from '../components/voice-message-bubble/engine';\r\n\r\nimport { createDrilldownMenu } from '../components/drilldown-menu/engine';\r\n\r\nimport { createWheelPicker } from '../components/wheel-picker/engine';\r\n\r\ntype Factory = (el: HTMLElement, options: Record<string, unknown>) => Instance;\r\n\r\nconst factories = {\r\n 'stepper': createStepper,\r\n 'radio-group': createRadioGroup,\r\n 'equalizer-slider': createEqualizerSlider,\r\n 'temperature-slider': createTemperatureSlider,\r\n 'rating-scale': createRatingScale,\r\n 'notification-stack': createNotificationStack,\r\n 'bento-grid': createBentoGrid,\r\n 'scroll-preview-dock': createScrollPreviewDock,\r\n 'sticky-header': createStickyHeader,\r\n 'handwriting-text': createHandwritingText,\r\n 'particle-button': createParticleButton,\r\n 'magnetize-button': createMagnetizeButton,\r\n 'badge-button': createBadgeButton,\r\n 'morphing-page-dots': createMorphingPageDots,\r\n 'not-found': createNotFound,\r\n\r\n 'wheel-picker': createWheelPicker,\r\n 'drilldown-menu': createDrilldownMenu,\r\n 'voice-message-bubble': createVoiceMessageBubble,\r\n 'waveform-player': createWaveformPlayer,\r\n 'signature-pad': createSignaturePad,\r\n 'joined-cta': createJoinedCta,\r\n 'image-zoom': createImageZoom,\r\n 'font-cycle': createFontCycle,\r\n 'thumbnail-nav': createThumbnailNav,\r\n 'action-button': createActionButton,\r\n 'film-hero': createFilmHero,\r\n 'editorial-reveal': createEditorialReveal,\r\n 'studio-dock': createStudioDock,\r\n 'trailer': createTrailer,\r\n 'quantity': createQuantity,\r\n 'pagination': createPagination,\r\n 'hover-card': createHoverCard,\r\n 'input-otp': createInputOtp,\r\n 'calendar': createCalendar,\r\n 'slot-picker': createSlotPicker,\r\n 'credit-card': createCreditCard,\r\n 'command-search': createCommandSearch,\r\n 'hold-confirm': createHoldConfirm,\r\n 'image-preview': createImagePreview,\r\n 'like-button': createLikeButton,\r\n 'notification-bell': createNotificationBell,\r\n 'password-strength': createPasswordStrength,\r\n 'scratch-card': createScratchCard,\r\n 'star-rating': createStarRating,\r\n 'swipe-actions': createSwipeActions,\r\n 'attachment': createAttachment,\r\n 'skeleton': createSkeleton,\r\n 'questionnaire': createQuestionnaire,\r\n 'code-block': createCodeBlock,\r\n 'context-menu': createContextMenu,\r\n 'drawer': createDrawer,\r\n 'link-preview': createLinkPreview,\r\n 'progress': createProgress,\r\n 'range-slider': createRangeSlider,\r\n 'chart': createChart,\r\n 'color-slider': createColorSlider,\r\n 'color-area': createColorArea,\r\n 'color-field': createColorField,\r\n 'color-picker': createColorPicker,\r\n 'time-field': createTimeField,\r\n 'range-calendar': createRangeCalendar,\r\n 'date-range-picker': createDateRangePicker,\r\n 'tooltip': createTooltip,\r\n 'popover': createPopover,\r\n 'loading-button': createLoadingButton,\r\n 'breadcrumb': createBreadcrumb,\r\n 'empty-state': createEmptyState,\r\n 'stat-card': createStatCard,\r\n 'chart-tooltip': createChartTooltip,\r\n 'multi-select': createMultiSelect,\r\n 'tag-input': createTagInput,\r\n 'date-time-picker': createDateTimePicker,\r\n 'filter-builder': createFilterBuilder,\r\n 'timeline': createTimeline,\r\n 'activity-feed': createActivityFeed,\r\n 'tree-view': createTreeView,\r\n 'file-explorer': createFileExplorer,\r\n 'json-viewer': createJsonViewer,\r\n 'virtual-list': createVirtualList,\r\n 'resizable-panel': createResizablePanel,\r\n 'split-view': createSplitView,\r\n 'data-table': createDataTable,\r\n 'editable-table': createEditableTable,\r\n 'rich-text-editor': createRichTextEditor,\r\n 'select': createSelect,\r\n 'add-to-cart': createAddToCart,\r\n 'scroll-island': createScrollIsland,\r\n 'weight-hover': createWeightHover,\r\n 'sticker': createSticker,\r\n 'scroll-dock': createScrollDock,\r\n 'local-clock': createLocalClock,\r\n 'spring-cards': createSpringCards,\r\n 'curved-carousel': (el, options) =>\r\n createCurvedCarousel(el, {\r\n ...options,\r\n onSelect: (index, slide) => el.dispatchEvent(new CustomEvent('mk:select', { detail: { index, slide }, bubbles: true })),\r\n }),\r\n pile: createPile,\r\n words: createWords,\r\n flow: createFlow,\r\n pop: createPop,\r\n 'fit-text': createFitText,\r\n 'stretch-footer': createStretchFooter,\r\n 'radial-menu': createRadialMenu,\r\n tabs: createTabs,\r\n counter: createCounter,\r\n details: (el) => createDetails(el),\r\n reveal: createReveal,\r\n reflow: createReflow,\r\n 'slot-text': createSlotText,\r\n sortable: createSortable,\r\n 'mask-text': createMaskText,\r\n cascade: createCascade,\r\n 'text-roll': createTextRoll,\r\n letters: createLetters,\r\n parallax: createParallax,\r\n 'depth-grid': createDepthGrid,\r\n 'frame-zoom': createFrameZoom,\r\n contrast: createContrast,\r\n marquee: createMarquee,\r\n 'card-dock': createCardDock,\r\n 'snap-strip': createSnapStrip,\r\n 'fill-text': createFillText,\r\n 'ticket-menu': createTicketMenu,\r\n 'infinite-reel': createInfiniteReel,\r\n 'repel-bento': createRepelBento,\r\n 'rotator': createRotator,\r\n 'drag-ruler': createDragRuler,\r\n 'dock-pill': createDockPill,\r\n} satisfies Record<string, Factory>;\r\n\r\nexport type RecipeName = keyof typeof factories;\r\nexport const recipeNames = Object.keys(factories) as RecipeName[];\r\n\r\n/** Measured text: wait for web fonts, fit before splitting into words. */\r\nconst AFTER_FONTS: RecipeName[] = ['fit-text', 'words', 'slot-text'];\r\n\r\nconst instances = new WeakMap<HTMLElement, Map<RecipeName, Instance>>();\r\n\r\nexport interface AutoInitOptions {\r\n /** Only start these recipes. */\r\n only?: RecipeName[];\r\n}\r\n\r\n/**\r\n * Start every `[data-mk]` recipe inside `root` (an element may list several:\r\n * `data-mk=\"fit-text words\"`). Options come from `data-mk-*` attributes.\r\n * Returns a function that destroys what this call created. Safe to call again:\r\n * elements that already run a recipe are skipped.\r\n */\r\nexport function autoInit(root: ParentNode = document, { only }: AutoInitOptions = {}): () => void {\r\n if (typeof window === 'undefined') return () => {};\r\n const created: Array<[HTMLElement, RecipeName, Instance]> = [];\r\n let cancelled = false;\r\n\r\n const elements = [...root.querySelectorAll<HTMLElement>('[data-mk]')];\r\n if (root instanceof HTMLElement && root.matches('[data-mk]')) elements.unshift(root);\r\n\r\n const start = (el: HTMLElement, name: RecipeName) => {\r\n if (cancelled) return;\r\n const running = instances.get(el) ?? new Map<RecipeName, Instance>();\r\n if (running.has(name)) return;\r\n const instance = (factories[name] as Factory)(el, parseOptions(el));\r\n running.set(name, instance);\r\n instances.set(el, running);\r\n created.push([el, name, instance]);\r\n };\r\n\r\n const now: Array<[HTMLElement, RecipeName]> = [];\r\n const later: Array<[HTMLElement, RecipeName]> = [];\r\n for (const el of elements) {\r\n for (const raw of (el.dataset.mk ?? '').split(/\\s+/).filter(Boolean)) {\r\n if (!(raw in factories)) {\r\n warnOnce(`autoInit: unknown recipe \"${raw}\" (known: ${recipeNames.join(', ')})`);\r\n continue;\r\n }\r\n const name = raw as RecipeName;\r\n if (only && !only.includes(name)) continue;\r\n (AFTER_FONTS.includes(name) ? later : now).push([el, name]);\r\n }\r\n }\r\n\r\n now.forEach(([el, name]) => start(el, name));\r\n if (later.length) {\r\n later.sort((a, b) => AFTER_FONTS.indexOf(a[1]) - AFTER_FONTS.indexOf(b[1]));\r\n const fonts = document.fonts?.ready ?? Promise.resolve();\r\n void Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(() => {\r\n later.forEach(([el, name]) => start(el, name));\r\n if (!cancelled) ScrollTrigger.refresh();\r\n });\r\n }\r\n\r\n return () => {\r\n cancelled = true;\r\n for (const [el, name, instance] of created.reverse()) {\r\n instance.destroy();\r\n instances.get(el)?.delete(name);\r\n }\r\n created.length = 0;\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
@@ -27,7 +27,7 @@ import {
27
27
  startOfWeek,
28
28
  toDate,
29
29
  weekdayNames
30
- } from "./chunk-7IQTMF7Y.js";
30
+ } from "./chunk-Q7IW4FV3.js";
31
31
  import {
32
32
  THEMES,
33
33
  THEME_EVENT,
@@ -3657,4 +3657,4 @@ export {
3657
3657
  createHeatmapChart,
3658
3658
  createOrbitMenu
3659
3659
  };
3660
- //# sourceMappingURL=chunk-VJFPTLAK.js.map
3660
+ //# sourceMappingURL=chunk-AWDEKDEJ.js.map
@@ -18,7 +18,7 @@ import {
18
18
  slideIndicator,
19
19
  splitGraphemes,
20
20
  takeMovement
21
- } from "./chunk-7IQTMF7Y.js";
21
+ } from "./chunk-Q7IW4FV3.js";
22
22
  import {
23
23
  clamp,
24
24
  damp,
@@ -4491,4 +4491,4 @@ export {
4491
4491
  createScrollDock,
4492
4492
  createLocalClock
4493
4493
  };
4494
- //# sourceMappingURL=chunk-BZLMCHUD.js.map
4494
+ //# sourceMappingURL=chunk-EDMXWUW3.js.map