@yewdiel21/motion-kit 0.9.0 → 0.10.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 (399) hide show
  1. package/NOTICE +3 -35
  2. package/README.md +93 -81
  3. package/dist/auto/index.d.ts +22 -3
  4. package/dist/auto/index.js +43 -5
  5. package/dist/auto/index.js.map +1 -1
  6. package/dist/{chunk-KLY5BRRI.js → chunk-34EZ7DF4.js} +1 -1
  7. package/dist/chunk-34EZ7DF4.js.map +1 -0
  8. package/dist/{chunk-RFDIZYFX.js → chunk-DOOMULVV.js} +20 -20
  9. package/dist/chunk-DOOMULVV.js.map +1 -0
  10. package/dist/{chunk-ABNRDDO7.js → chunk-I3DXF2KQ.js} +2 -2
  11. package/dist/{chunk-Q4LVFNLN.js → chunk-IKQ5FODN.js} +4 -4
  12. package/dist/chunk-IKQ5FODN.js.map +1 -0
  13. package/dist/{chunk-2BQGFOA7.js → chunk-J6OCFNGU.js} +2 -2
  14. package/dist/chunk-J6OCFNGU.js.map +1 -0
  15. package/dist/{chunk-6OJAP6ZL.js → chunk-QFBOHPWZ.js} +3 -3
  16. package/dist/chunk-QFBOHPWZ.js.map +1 -0
  17. package/dist/{chunk-J27KH2A2.js → chunk-RVSKEBIC.js} +1 -1
  18. package/dist/chunk-RVSKEBIC.js.map +1 -0
  19. package/dist/{chunk-34XYOXHG.js → chunk-TFNRIZHU.js} +1615 -12
  20. package/dist/chunk-TFNRIZHU.js.map +1 -0
  21. package/dist/{chunk-FS2HJVVY.js → chunk-XAKC2QY7.js} +1204 -5
  22. package/dist/chunk-XAKC2QY7.js.map +1 -0
  23. package/dist/css/components/calendar.css +159 -0
  24. package/dist/css/components/chat-background.css +2 -2
  25. package/dist/css/components/chat.css +1 -1
  26. package/dist/css/components/cursor.css +3 -3
  27. package/dist/css/components/dialog.css +3 -3
  28. package/dist/css/components/hover-card.css +14 -0
  29. package/dist/css/components/input-otp.css +10 -0
  30. package/dist/css/components/island.css +1 -1
  31. package/dist/css/components/menu.css +1 -1
  32. package/dist/css/components/nav.css +1 -5
  33. package/dist/css/components/pagination.css +11 -0
  34. package/dist/css/components/quantity.css +16 -0
  35. package/dist/css/components/slot-picker.css +126 -0
  36. package/dist/css/components/steps.css +2 -2
  37. package/dist/css/components/studio-dock.css +35 -0
  38. package/dist/css/components/theme-picker.css +1 -1
  39. package/dist/css/components/toast.css +1 -1
  40. package/dist/css/components/trailer.css +37 -0
  41. package/dist/css/controls.css +78 -13
  42. package/dist/css/effects.css +8 -8
  43. package/dist/css/fonts.css +1 -1
  44. package/dist/css/themes/black-green.css +1 -1
  45. package/dist/css/themes/black.css +1 -1
  46. package/dist/css/themes/blue.css +1 -1
  47. package/dist/css/themes/brown.css +1 -1
  48. package/dist/css/themes/cold-blue.css +1 -1
  49. package/dist/css/themes/funny.css +1 -1
  50. package/dist/css/themes/gray.css +1 -1
  51. package/dist/css/themes/green.css +1 -1
  52. package/dist/css/themes/modern-1.css +1 -1
  53. package/dist/css/themes/neogreen.css +1 -1
  54. package/dist/css/themes/new.css +1 -1
  55. package/dist/css/themes/new2.css +1 -1
  56. package/dist/css/themes/oled.css +1 -1
  57. package/dist/css/themes/orange.css +1 -1
  58. package/dist/css/themes/pastel-pink.css +1 -1
  59. package/dist/css/themes/pink.css +1 -1
  60. package/dist/css/themes/purple.css +1 -1
  61. package/dist/css/themes/red.css +1 -1
  62. package/dist/css/themes/super-blue.css +1 -1
  63. package/dist/css/themes.css +19 -19
  64. package/dist/css/tokens.css +9 -9
  65. package/dist/elements/index.d.ts +75 -7
  66. package/dist/elements/index.js +172 -6
  67. package/dist/elements/index.js.map +1 -1
  68. package/dist/{engine-CUr9QijM.d.ts → engine-GDGwQnJE.d.ts} +2 -2
  69. package/dist/gl/index.js +3 -3
  70. package/dist/index.css +1076 -63
  71. package/dist/index.d.ts +17 -17
  72. package/dist/index.js +49 -7
  73. package/dist/index.js.map +1 -1
  74. package/dist/react/index.d.ts +139 -40
  75. package/dist/react/index.js +355 -8
  76. package/dist/react/index.js.map +1 -1
  77. package/dist/{reduced-BM4Ls0g5.d.ts → reduced-BmBzKH94.d.ts} +215 -18
  78. package/dist/{reveal-WFUWDrei.d.ts → reveal-jsX-uwUz.d.ts} +233 -24
  79. package/dist/{store-Bqy_obnD.d.ts → store-DYb3tTsZ.d.ts} +5 -5
  80. package/dist/theme/generate.d.ts +1 -1
  81. package/dist/theme/generate.js +2 -2
  82. package/dist/theme/generate.js.map +1 -1
  83. package/dist/theme/index.d.ts +2 -2
  84. package/dist/theme/index.js +2 -2
  85. package/dist/{theme-BFMoCzi6.d.ts → theme-Bjf9qIIy.d.ts} +1 -1
  86. package/package.json +2 -2
  87. package/registry.json +230 -156
  88. package/skills/motion-kit/SKILL.md +209 -189
  89. package/skills/motion-kit/reference/components.md +5 -5
  90. package/skills/motion-kit/reference/design.md +14 -14
  91. package/skills/motion-kit/reference/recipes.md +48 -49
  92. package/src/auto/auto-init.ts +38 -0
  93. package/src/components/calendar/README.md +82 -0
  94. package/src/components/calendar/calendar.css +158 -0
  95. package/src/components/calendar/element.ts +27 -0
  96. package/src/components/calendar/engine.ts +412 -0
  97. package/src/components/calendar/react.tsx +69 -0
  98. package/src/components/chat/README.md +1 -3
  99. package/src/components/chat/chat.css +1 -1
  100. package/src/components/chat/engine.ts +1 -1
  101. package/src/components/chat/react.tsx +1 -1
  102. package/src/components/chat-background/README.md +1 -3
  103. package/src/components/chat-background/audio.ts +1 -1
  104. package/src/components/chat-background/chat-background.css +2 -2
  105. package/src/components/chat-background/engine.ts +1 -1
  106. package/src/components/chat-background/react.tsx +1 -1
  107. package/src/components/cursor/README.md +3 -5
  108. package/src/components/cursor/cursor.css +3 -3
  109. package/src/components/cursor/element.ts +2 -2
  110. package/src/components/cursor/engine.ts +5 -5
  111. package/src/components/cursor/react.tsx +1 -1
  112. package/src/components/dialog/README.md +4 -8
  113. package/src/components/dialog/dialog.css +3 -3
  114. package/src/components/dialog/engine.ts +2 -2
  115. package/src/components/dialog/react.tsx +1 -1
  116. package/src/components/hover-card/README.md +16 -0
  117. package/src/components/hover-card/element.ts +8 -0
  118. package/src/components/hover-card/engine.ts +69 -0
  119. package/src/components/hover-card/hover-card.css +13 -0
  120. package/src/components/hover-card/react.tsx +19 -0
  121. package/src/components/input-otp/README.md +18 -0
  122. package/src/components/input-otp/element.ts +14 -0
  123. package/src/components/input-otp/engine.ts +106 -0
  124. package/src/components/input-otp/input-otp.css +9 -0
  125. package/src/components/input-otp/react.tsx +21 -0
  126. package/src/components/island/README.md +7 -7
  127. package/src/components/island/engine.ts +3 -3
  128. package/src/components/island/island.css +1 -1
  129. package/src/components/island/react.tsx +3 -3
  130. package/src/components/menu/README.md +2 -4
  131. package/src/components/menu/engine.ts +1 -1
  132. package/src/components/menu/menu.css +1 -1
  133. package/src/components/menu/react.tsx +1 -1
  134. package/src/components/nav/README.md +12 -14
  135. package/src/components/nav/engine.ts +5 -5
  136. package/src/components/nav/nav.css +1 -5
  137. package/src/components/nav/react.tsx +3 -3
  138. package/src/components/pagination/README.md +17 -0
  139. package/src/components/pagination/element.ts +14 -0
  140. package/src/components/pagination/engine.ts +102 -0
  141. package/src/components/pagination/pagination.css +10 -0
  142. package/src/components/pagination/react.tsx +22 -0
  143. package/src/components/quantity/README.md +20 -0
  144. package/src/components/quantity/element.ts +14 -0
  145. package/src/components/quantity/engine.ts +85 -0
  146. package/src/components/quantity/quantity.css +15 -0
  147. package/src/components/quantity/react.tsx +21 -0
  148. package/src/components/slot-picker/README.md +68 -0
  149. package/src/components/slot-picker/element.ts +27 -0
  150. package/src/components/slot-picker/engine.ts +412 -0
  151. package/src/components/slot-picker/react.tsx +76 -0
  152. package/src/components/slot-picker/slot-picker.css +125 -0
  153. package/src/components/steps/README.md +1 -3
  154. package/src/components/steps/engine.ts +3 -3
  155. package/src/components/steps/react.tsx +2 -2
  156. package/src/components/steps/steps.css +2 -2
  157. package/src/components/studio-dock/README.md +44 -0
  158. package/src/components/studio-dock/element.ts +11 -0
  159. package/src/components/studio-dock/engine.ts +212 -0
  160. package/src/components/studio-dock/react.tsx +23 -0
  161. package/src/components/studio-dock/studio-dock.css +34 -0
  162. package/src/components/theme-picker/README.md +3 -5
  163. package/src/components/theme-picker/engine.ts +2 -2
  164. package/src/components/theme-picker/react.tsx +1 -1
  165. package/src/components/theme-picker/theme-picker.css +1 -1
  166. package/src/components/toast/README.md +1 -3
  167. package/src/components/toast/engine.ts +2 -2
  168. package/src/components/toast/react.tsx +1 -1
  169. package/src/components/toast/store.ts +1 -2
  170. package/src/components/toast/toast.css +1 -1
  171. package/src/components/trailer/README.md +28 -0
  172. package/src/components/trailer/element.ts +13 -0
  173. package/src/components/trailer/engine.ts +189 -0
  174. package/src/components/trailer/react.tsx +16 -0
  175. package/src/components/trailer/trailer.css +36 -0
  176. package/src/core/channels.ts +3 -3
  177. package/src/core/curves.ts +3 -3
  178. package/src/core/dates.ts +98 -0
  179. package/src/core/gsap.ts +2 -2
  180. package/src/core/loop.ts +1 -1
  181. package/src/core/math.ts +1 -1
  182. package/src/core/physics-spring.ts +2 -2
  183. package/src/core/scroll-track.ts +2 -4
  184. package/src/core/spring.ts +1 -1
  185. package/src/core/timing.ts +21 -22
  186. package/src/css/controls/README.md +24 -20
  187. package/src/css/controls/burger.css +1 -1
  188. package/src/css/controls/button.css +4 -4
  189. package/src/css/controls/checkbox.css +1 -1
  190. package/src/css/controls/chip.css +1 -1
  191. package/src/css/controls/field.css +2 -2
  192. package/src/css/controls/glass.css +4 -4
  193. package/src/css/controls/status.css +63 -0
  194. package/src/css/default-theme.css +1 -1
  195. package/src/css/effects/README.md +19 -21
  196. package/src/css/effects/anim.css +1 -1
  197. package/src/css/effects/fade.css +1 -1
  198. package/src/css/effects/float.css +1 -1
  199. package/src/css/effects/frost.css +1 -1
  200. package/src/css/effects/grain.css +1 -1
  201. package/src/css/effects/loading.css +1 -1
  202. package/src/css/effects/success.css +1 -1
  203. package/src/css/effects/text.css +1 -1
  204. package/src/css/fonts.css +1 -1
  205. package/src/css/states.css +1 -1
  206. package/src/css/themes/black-green.css +1 -1
  207. package/src/css/themes/black.css +1 -1
  208. package/src/css/themes/blue.css +1 -1
  209. package/src/css/themes/brown.css +1 -1
  210. package/src/css/themes/cold-blue.css +1 -1
  211. package/src/css/themes/funny.css +1 -1
  212. package/src/css/themes/gray.css +1 -1
  213. package/src/css/themes/green.css +1 -1
  214. package/src/css/themes/modern-1.css +1 -1
  215. package/src/css/themes/neogreen.css +1 -1
  216. package/src/css/themes/new.css +1 -1
  217. package/src/css/themes/new2.css +1 -1
  218. package/src/css/themes/oled.css +1 -1
  219. package/src/css/themes/orange.css +1 -1
  220. package/src/css/themes/pastel-pink.css +1 -1
  221. package/src/css/themes/pink.css +1 -1
  222. package/src/css/themes/purple.css +1 -1
  223. package/src/css/themes/red.css +1 -1
  224. package/src/css/themes/super-blue.css +1 -1
  225. package/src/css/tokens.css +8 -8
  226. package/src/elements/index.ts +24 -0
  227. package/src/gl/liquid-blend/README.md +3 -3
  228. package/src/gl/matcap/README.md +3 -3
  229. package/src/gl/particle-hero/README.md +1 -1
  230. package/src/gl/particle-hero/create-particle-hero.ts +3 -5
  231. package/src/gl/particle-hero/shaders.ts +1 -1
  232. package/src/gl/shader-blur/README.md +3 -3
  233. package/src/gl/shader-grain/README.md +3 -3
  234. package/src/index.ts +25 -0
  235. package/src/motion/chat.ts +2 -2
  236. package/src/motion/confetti.ts +1 -1
  237. package/src/motion/count.ts +1 -1
  238. package/src/motion/details.ts +1 -1
  239. package/src/motion/drag-dismiss.ts +1 -1
  240. package/src/motion/effects.ts +1 -1
  241. package/src/motion/entrances.ts +1 -1
  242. package/src/motion/floating.ts +1 -1
  243. package/src/motion/flow.ts +2 -2
  244. package/src/motion/indicator.ts +1 -1
  245. package/src/motion/layout.ts +1 -1
  246. package/src/motion/liquid.ts +1 -1
  247. package/src/motion/morph.ts +2 -2
  248. package/src/motion/reveal.ts +1 -1
  249. package/src/motion/sheet.ts +1 -1
  250. package/src/motion/surface.ts +1 -1
  251. package/src/react/animated-number.tsx +2 -2
  252. package/src/react/flip-group.tsx +1 -1
  253. package/src/react/frost.tsx +1 -1
  254. package/src/react/index.ts +21 -0
  255. package/src/react/slot-text.tsx +1 -1
  256. package/src/react/use-action-button.ts +6 -0
  257. package/src/react/use-card-dock.ts +1 -1
  258. package/src/react/use-cascade.ts +1 -1
  259. package/src/react/use-contrast.ts +1 -1
  260. package/src/react/use-depth-grid.ts +1 -1
  261. package/src/react/use-editorial-reveal.ts +7 -0
  262. package/src/react/use-fill-text.ts +1 -1
  263. package/src/react/use-film-hero.ts +6 -0
  264. package/src/react/use-font-cycle.ts +7 -0
  265. package/src/react/use-frame-zoom.ts +1 -1
  266. package/src/react/use-image-zoom.ts +5 -0
  267. package/src/react/use-joined-cta.ts +5 -0
  268. package/src/react/use-letters.ts +1 -1
  269. package/src/react/use-local-clock.ts +5 -0
  270. package/src/react/use-marquee.ts +1 -1
  271. package/src/react/use-mask-text.ts +1 -1
  272. package/src/react/use-parallax.ts +1 -1
  273. package/src/react/use-particle-hero.ts +1 -1
  274. package/src/react/use-scroll-dock.ts +5 -0
  275. package/src/react/use-snap-strip.ts +1 -1
  276. package/src/react/use-sticker.ts +5 -0
  277. package/src/react/use-studio-dock.ts +8 -0
  278. package/src/react/use-text-roll.ts +1 -1
  279. package/src/react/use-thumbnail-nav.ts +7 -0
  280. package/src/react/use-trailer.ts +6 -0
  281. package/src/react/use-weight-hover.ts +5 -0
  282. package/src/recipes/action-button/README.md +31 -0
  283. package/src/recipes/action-button/action-button.css +113 -0
  284. package/src/recipes/action-button/create-action-button.ts +56 -0
  285. package/src/recipes/card-dock/README.md +1 -1
  286. package/src/recipes/card-dock/card-dock.css +1 -1
  287. package/src/recipes/card-dock/create-card-dock.ts +2 -2
  288. package/src/recipes/cascade/README.md +1 -3
  289. package/src/recipes/cascade/create-cascade.ts +3 -3
  290. package/src/recipes/contrast/README.md +0 -2
  291. package/src/recipes/contrast/create-contrast.ts +1 -1
  292. package/src/recipes/counter/README.md +0 -2
  293. package/src/recipes/counter/create-counter.ts +1 -1
  294. package/src/recipes/curved-carousel/README.md +0 -2
  295. package/src/recipes/curved-carousel/create-curved-carousel.ts +2 -2
  296. package/src/recipes/curved-carousel/curved-carousel.css +1 -1
  297. package/src/recipes/depth-grid/README.md +0 -2
  298. package/src/recipes/depth-grid/create-depth-grid.ts +3 -4
  299. package/src/recipes/details/README.md +0 -2
  300. package/src/recipes/details/create-details.ts +1 -1
  301. package/src/recipes/dock-pill/README.md +3 -3
  302. package/src/recipes/drag-ruler/README.md +3 -3
  303. package/src/recipes/editorial-reveal/README.md +35 -0
  304. package/src/recipes/editorial-reveal/create-editorial-reveal.ts +91 -0
  305. package/src/recipes/editorial-reveal/editorial-reveal.css +17 -0
  306. package/src/recipes/fill-text/README.md +1 -1
  307. package/src/recipes/fill-text/create-fill-text.ts +1 -1
  308. package/src/recipes/film-hero/README.md +23 -0
  309. package/src/recipes/film-hero/create-film-hero.ts +65 -0
  310. package/src/recipes/film-hero/film-hero.css +29 -0
  311. package/src/recipes/fit-text/README.md +0 -2
  312. package/src/recipes/flow/README.md +0 -2
  313. package/src/recipes/flow/create-flow.ts +1 -1
  314. package/src/recipes/font-cycle/README.md +11 -0
  315. package/src/recipes/font-cycle/create-font-cycle.ts +126 -0
  316. package/src/recipes/font-cycle/font-cycle.css +36 -0
  317. package/src/recipes/frame-zoom/README.md +1 -3
  318. package/src/recipes/frame-zoom/create-frame-zoom.ts +2 -2
  319. package/src/recipes/image-zoom/README.md +16 -0
  320. package/src/recipes/image-zoom/create-image-zoom.ts +27 -0
  321. package/src/recipes/image-zoom/image-zoom.css +7 -0
  322. package/src/recipes/infinite-reel/README.md +3 -3
  323. package/src/recipes/joined-cta/README.md +13 -0
  324. package/src/recipes/joined-cta/create-joined-cta.ts +22 -0
  325. package/src/recipes/joined-cta/joined-cta.css +17 -0
  326. package/src/recipes/letters/README.md +2 -4
  327. package/src/recipes/letters/create-letters.ts +3 -3
  328. package/src/recipes/local-clock/README.md +31 -0
  329. package/src/recipes/local-clock/create-local-clock.ts +61 -0
  330. package/src/recipes/marquee/README.md +0 -2
  331. package/src/recipes/marquee/create-marquee.ts +3 -3
  332. package/src/recipes/marquee/marquee.css +1 -1
  333. package/src/recipes/mask-text/README.md +3 -5
  334. package/src/recipes/mask-text/create-mask-text.ts +4 -4
  335. package/src/recipes/parallax/README.md +1 -3
  336. package/src/recipes/parallax/create-parallax.ts +1 -1
  337. package/src/recipes/pile/README.md +0 -2
  338. package/src/recipes/pile/create-pile.ts +1 -1
  339. package/src/recipes/pile/pile-math.ts +1 -1
  340. package/src/recipes/pile/pile.css +1 -1
  341. package/src/recipes/pill/README.md +0 -2
  342. package/src/recipes/pill/pill.css +2 -2
  343. package/src/recipes/pop/README.md +0 -2
  344. package/src/recipes/pop/create-pop.ts +1 -1
  345. package/src/recipes/radial-menu/README.md +0 -2
  346. package/src/recipes/radial-menu/create-radial-menu.ts +1 -1
  347. package/src/recipes/radial-menu/radial-menu.css +1 -1
  348. package/src/recipes/reflow/README.md +3 -5
  349. package/src/recipes/reflow/create-reflow.ts +1 -1
  350. package/src/recipes/repel-bento/README.md +3 -3
  351. package/src/recipes/reveal/README.md +0 -2
  352. package/src/recipes/reveal/create-reveal.ts +1 -1
  353. package/src/recipes/rotator/README.md +3 -3
  354. package/src/recipes/scroll-dock/README.md +46 -0
  355. package/src/recipes/scroll-dock/create-scroll-dock.ts +72 -0
  356. package/src/recipes/scroll-dock/scroll-dock.css +70 -0
  357. package/src/recipes/slot-text/README.md +0 -2
  358. package/src/recipes/slot-text/create-slot-text.ts +1 -1
  359. package/src/recipes/snap-strip/README.md +1 -1
  360. package/src/recipes/snap-strip/create-snap-strip.ts +5 -6
  361. package/src/recipes/snap-strip/snap-strip.css +1 -1
  362. package/src/recipes/sortable/README.md +3 -5
  363. package/src/recipes/sortable/create-sortable.ts +4 -4
  364. package/src/recipes/sortable/sortable.css +1 -1
  365. package/src/recipes/spring-cards/README.md +0 -2
  366. package/src/recipes/spring-cards/create-spring-cards.ts +1 -1
  367. package/src/recipes/spring-cards/spring-cards.css +1 -1
  368. package/src/recipes/sticker/README.md +59 -0
  369. package/src/recipes/sticker/create-sticker.ts +490 -0
  370. package/src/recipes/sticker/sticker.css +112 -0
  371. package/src/recipes/stretch-footer/README.md +0 -2
  372. package/src/recipes/stretch-footer/create-stretch-footer.ts +1 -1
  373. package/src/recipes/stretch-footer/stretch-footer.css +1 -1
  374. package/src/recipes/tabs/README.md +0 -2
  375. package/src/recipes/tabs/create-tabs.ts +1 -1
  376. package/src/recipes/text-roll/README.md +1 -3
  377. package/src/recipes/text-roll/create-text-roll.ts +3 -3
  378. package/src/recipes/text-roll/text-roll.css +1 -1
  379. package/src/recipes/thumbnail-nav/README.md +16 -0
  380. package/src/recipes/thumbnail-nav/create-thumbnail-nav.ts +165 -0
  381. package/src/recipes/thumbnail-nav/thumbnail-nav.css +108 -0
  382. package/src/recipes/ticket-menu/README.md +3 -3
  383. package/src/recipes/weight-hover/README.md +37 -0
  384. package/src/recipes/weight-hover/create-weight-hover.ts +136 -0
  385. package/src/recipes/weight-hover/weight-hover.css +7 -0
  386. package/src/recipes/words/README.md +0 -2
  387. package/src/recipes/words/create-words.ts +1 -1
  388. package/src/theme/generate.ts +1 -1
  389. package/src/theme/presets.ts +2 -2
  390. package/src/theme/theme.ts +1 -2
  391. package/dist/chunk-2BQGFOA7.js.map +0 -1
  392. package/dist/chunk-34XYOXHG.js.map +0 -1
  393. package/dist/chunk-6OJAP6ZL.js.map +0 -1
  394. package/dist/chunk-FS2HJVVY.js.map +0 -1
  395. package/dist/chunk-J27KH2A2.js.map +0 -1
  396. package/dist/chunk-KLY5BRRI.js.map +0 -1
  397. package/dist/chunk-Q4LVFNLN.js.map +0 -1
  398. package/dist/chunk-RFDIZYFX.js.map +0 -1
  399. /package/dist/{chunk-ABNRDDO7.js.map → chunk-I3DXF2KQ.js.map} +0 -0
@@ -4,9 +4,10 @@ import {
4
4
  animate,
5
5
  confetti,
6
6
  leave
7
- } from "../chunk-2BQGFOA7.js";
7
+ } from "../chunk-J6OCFNGU.js";
8
8
  import {
9
9
  captureLayout,
10
+ createActionButton,
10
11
  createCardDock,
11
12
  createCascade,
12
13
  createContrast,
@@ -16,12 +17,18 @@ import {
16
17
  createDetails,
17
18
  createDockPill,
18
19
  createDragRuler,
20
+ createEditorialReveal,
19
21
  createFillText,
22
+ createFilmHero,
20
23
  createFitText,
21
24
  createFlow,
25
+ createFontCycle,
22
26
  createFrameZoom,
27
+ createImageZoom,
23
28
  createInfiniteReel,
29
+ createJoinedCta,
24
30
  createLetters,
31
+ createLocalClock,
25
32
  createMarquee,
26
33
  createMaskText,
27
34
  createParallax,
@@ -32,20 +39,24 @@ import {
32
39
  createRepelBento,
33
40
  createReveal,
34
41
  createRotator,
42
+ createScrollDock,
35
43
  createSlotText,
36
44
  createSnapStrip,
37
45
  createSortable,
38
46
  createSpringCards,
47
+ createSticker,
39
48
  createStretchFooter,
40
49
  createTabs,
41
50
  createTextRoll,
51
+ createThumbnailNav,
42
52
  createTicketMenu,
53
+ createWeightHover,
43
54
  createWords,
44
55
  moveItem,
45
56
  pileLayers,
46
57
  pileStyle,
47
58
  reflowLayout
48
- } from "../chunk-FS2HJVVY.js";
59
+ } from "../chunk-XAKC2QY7.js";
49
60
  import {
50
61
  ICON_PATHS,
51
62
  NAV_STYLES,
@@ -63,12 +74,20 @@ import {
63
74
  morphPendingToReply,
64
75
  revealShell,
65
76
  toast
66
- } from "../chunk-Q4LVFNLN.js";
77
+ } from "../chunk-IKQ5FODN.js";
67
78
  import {
79
+ createCalendar,
68
80
  createDialog,
81
+ createHoverCard,
82
+ createInputOtp,
69
83
  createMenu,
84
+ createPagination,
85
+ createQuantity,
86
+ createSlotPicker,
87
+ createStudioDock,
88
+ createTrailer,
70
89
  tweenNumber
71
- } from "../chunk-34XYOXHG.js";
90
+ } from "../chunk-TFNRIZHU.js";
72
91
  import {
73
92
  DEFAULT_THEME,
74
93
  MK_THEME_HEAD_SCRIPT,
@@ -77,19 +96,19 @@ import {
77
96
  setMode,
78
97
  setTheme,
79
98
  themeHeadScript
80
- } from "../chunk-J27KH2A2.js";
99
+ } from "../chunk-RVSKEBIC.js";
81
100
  import {
82
101
  createLiquidBlend,
83
102
  createMatcap,
84
103
  createParticleHero,
85
104
  createShaderBlur,
86
105
  createShaderGrain
87
- } from "../chunk-6OJAP6ZL.js";
88
- import "../chunk-KLY5BRRI.js";
106
+ } from "../chunk-QFBOHPWZ.js";
107
+ import "../chunk-34EZ7DF4.js";
89
108
  import {
90
109
  MK_HEAD_SCRIPT,
91
110
  TIMING
92
- } from "../chunk-RFDIZYFX.js";
111
+ } from "../chunk-DOOMULVV.js";
93
112
  import "../chunk-TGV27ZWM.js";
94
113
 
95
114
  // src/react/use-recipe.ts
@@ -888,15 +907,325 @@ function Island({
888
907
  ] })
889
908
  ] });
890
909
  }
910
+
911
+ // src/components/quantity/react.tsx
912
+ import { useRef as useRef14 } from "react";
913
+ import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
914
+ function Quantity({ min, max, step, value, disabled, onChange, label = "Cantidad", decreaseLabel = "Disminuir", increaseLabel = "Aumentar", name, className, ...props }) {
915
+ const ref = useRef14(null);
916
+ const edited = useRef14(void 0);
917
+ const change = useLatest(onChange);
918
+ useIsomorphicLayoutEffect(() => {
919
+ const instance = createQuantity(ref.current, { min, max, step, value: value ?? edited.current, disabled, onChange: (n) => change.current?.(n) });
920
+ return () => {
921
+ edited.current = instance.value;
922
+ instance.destroy();
923
+ };
924
+ }, [min, max, step, value, disabled]);
925
+ return /* @__PURE__ */ jsxs6("div", { ...props, ref, className: ["mk-quantity", className].filter(Boolean).join(" "), role: "group", "aria-label": label, children: [
926
+ /* @__PURE__ */ jsx16("button", { type: "button", "data-mk-quantity-decrease": true, "aria-label": decreaseLabel, children: "\u2212" }),
927
+ /* @__PURE__ */ jsx16("input", { "data-mk-quantity-input": true, type: "number", "aria-label": label, name, defaultValue: value ?? min ?? 1, disabled }),
928
+ /* @__PURE__ */ jsx16("button", { type: "button", "data-mk-quantity-increase": true, "aria-label": increaseLabel, children: "+" })
929
+ ] });
930
+ }
931
+
932
+ // src/components/pagination/react.tsx
933
+ import { useRef as useRef15 } from "react";
934
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
935
+ function Pagination({ totalPages, page, siblings, pageLabel, onChange, previousLabel = "P\xE1gina anterior", nextLabel = "P\xE1gina siguiente", className, ...props }) {
936
+ const ref = useRef15(null);
937
+ const selected = useRef15(void 0);
938
+ const change = useLatest(onChange);
939
+ const label = useLatest(pageLabel);
940
+ useIsomorphicLayoutEffect(() => {
941
+ const instance = createPagination(ref.current, { totalPages, page: page ?? selected.current, siblings, pageLabel: (n) => label.current?.(n) ?? `P\xE1gina ${n}`, onChange: (n) => change.current?.(n) });
942
+ return () => {
943
+ selected.current = instance.page;
944
+ instance.destroy();
945
+ };
946
+ }, [totalPages, page, siblings, pageLabel]);
947
+ return /* @__PURE__ */ jsxs7("nav", { "aria-label": "Paginaci\xF3n", ...props, ref, className: ["mk-pagination", className].filter(Boolean).join(" "), children: [
948
+ /* @__PURE__ */ jsx17("button", { type: "button", "data-mk-pagination-previous": true, "aria-label": previousLabel, children: "\u2190" }),
949
+ /* @__PURE__ */ jsx17("span", { "data-mk-pagination-pages": true }),
950
+ /* @__PURE__ */ jsx17("button", { type: "button", "data-mk-pagination-next": true, "aria-label": nextLabel, children: "\u2192" })
951
+ ] });
952
+ }
953
+
954
+ // src/components/hover-card/react.tsx
955
+ import { useRef as useRef16 } from "react";
956
+ import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
957
+ function HoverCard({ trigger, children, triggerLabel, panelLabel = "Vista previa", openDelay, closeDelay, placement, onOpenChange, className, ...props }) {
958
+ const ref = useRef16(null);
959
+ const change = useLatest(onOpenChange);
960
+ useIsomorphicLayoutEffect(() => {
961
+ const instance = createHoverCard(ref.current, { openDelay, closeDelay, placement, onOpenChange: (n) => change.current?.(n) });
962
+ return () => instance.destroy();
963
+ }, [openDelay, closeDelay, placement]);
964
+ return /* @__PURE__ */ jsxs8("div", { ...props, ref, className: ["mk-hover-card", className].filter(Boolean).join(" "), children: [
965
+ /* @__PURE__ */ jsx18("button", { type: "button", className: "mk-button mk-button--tonal", "data-mk-hover-trigger": true, "aria-label": triggerLabel, "aria-expanded": "false", children: trigger }),
966
+ /* @__PURE__ */ jsx18("div", { "data-mk-hover-panel": true, role: "region", "aria-label": panelLabel, hidden: true, children })
967
+ ] });
968
+ }
969
+
970
+ // src/components/input-otp/react.tsx
971
+ import { useRef as useRef17 } from "react";
972
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
973
+ function InputOtp({ length, value, defaultValue, mask, onChange, onComplete, label = "C\xF3digo de verificaci\xF3n", name, disabled, required, invalid, className, ...props }) {
974
+ const ref = useRef17(null);
975
+ const edited = useRef17(void 0);
976
+ const change = useLatest(onChange);
977
+ const complete = useLatest(onComplete);
978
+ useIsomorphicLayoutEffect(() => {
979
+ const instance = createInputOtp(ref.current, { length, value: value ?? edited.current, mask, onChange: (n) => change.current?.(n), onComplete: (n) => complete.current?.(n) });
980
+ return () => {
981
+ edited.current = instance.value;
982
+ instance.destroy();
983
+ };
984
+ }, [length, value, mask]);
985
+ return /* @__PURE__ */ jsxs9("div", { ...props, ref, className: ["mk-input-otp", className].filter(Boolean).join(" "), children: [
986
+ /* @__PURE__ */ jsx19("span", { "data-mk-otp-slots": true, "aria-hidden": "true" }),
987
+ /* @__PURE__ */ jsx19("input", { "data-mk-otp-input": true, type: "text", "aria-label": label, name, defaultValue: value ?? defaultValue ?? "", disabled, required, "aria-invalid": invalid || void 0 })
988
+ ] });
989
+ }
990
+
991
+ // src/react/use-joined-cta.ts
992
+ var useJoinedCta = (ref, options, deps) => useRecipe(ref, createJoinedCta, options, deps);
993
+
994
+ // src/react/use-image-zoom.ts
995
+ var useImageZoom = (ref, options, deps) => useRecipe(ref, createImageZoom, options, deps);
996
+
997
+ // src/react/use-font-cycle.ts
998
+ var useFontCycle = (ref, options, deps) => useRecipe(ref, createFontCycle, options, deps);
999
+
1000
+ // src/react/use-thumbnail-nav.ts
1001
+ var useThumbnailNav = (ref, options, deps) => useRecipe(ref, createThumbnailNav, options, deps);
1002
+
1003
+ // src/react/use-action-button.ts
1004
+ var useActionButton = (ref, options, deps) => useRecipe(ref, createActionButton, options, deps);
1005
+
1006
+ // src/react/use-film-hero.ts
1007
+ var useFilmHero = (ref, options, deps) => useRecipe(ref, createFilmHero, options, deps);
1008
+
1009
+ // src/react/use-editorial-reveal.ts
1010
+ function useEditorialReveal(ref, options = {}, deps) {
1011
+ return useRecipe(ref, createEditorialReveal, options, deps);
1012
+ }
1013
+
1014
+ // src/react/use-studio-dock.ts
1015
+ function useStudioDock(ref, options = {}, deps) {
1016
+ const change = useLatest(options.onChange);
1017
+ return useRecipe(ref, createStudioDock, { ...options, onChange: (state) => change.current?.(state) }, deps);
1018
+ }
1019
+
1020
+ // src/react/use-trailer.ts
1021
+ var useTrailer = (ref, options, deps) => useRecipe(ref, createTrailer, options, deps);
1022
+
1023
+ // src/components/studio-dock/react.tsx
1024
+ import { useRef as useRef18 } from "react";
1025
+ import { jsx as jsx20 } from "react/jsx-runtime";
1026
+ function StudioDock({ duration, ease, focusOnOpen, trapFocus, onChange, fixed = false, instanceRef, className, children, ...props }) {
1027
+ const ref = useRef18(null);
1028
+ const change = useLatest(onChange);
1029
+ useIsomorphicLayoutEffect(() => {
1030
+ const instance = createStudioDock(ref.current, { duration, ease, focusOnOpen, trapFocus, onChange: (state) => change.current?.(state) });
1031
+ if (instanceRef) instanceRef.current = instance;
1032
+ return () => {
1033
+ instance.destroy();
1034
+ if (instanceRef) instanceRef.current = null;
1035
+ };
1036
+ }, [duration, ease, focusOnOpen, trapFocus]);
1037
+ return /* @__PURE__ */ jsx20("div", { ...props, ref, className: ["mk-studio-dock", fixed && "mk-studio-dock--fixed", className].filter(Boolean).join(" "), children });
1038
+ }
1039
+
1040
+ // src/components/trailer/react.tsx
1041
+ import { useRef as useRef19 } from "react";
1042
+ import { jsx as jsx21 } from "react/jsx-runtime";
1043
+ function Trailer({ options, className, children, ...props }) {
1044
+ const ref = useRef19(null);
1045
+ useRecipe(ref, createTrailer, options);
1046
+ return /* @__PURE__ */ jsx21("dialog", { ...props, ref, className: ["mk-trailer", className].filter(Boolean).join(" "), children });
1047
+ }
1048
+
1049
+ // src/components/calendar/react.tsx
1050
+ import { useRef as useRef20 } from "react";
1051
+ import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
1052
+ function Calendar({
1053
+ date,
1054
+ view,
1055
+ firstDay,
1056
+ locale,
1057
+ events,
1058
+ maxEvents,
1059
+ selected,
1060
+ today,
1061
+ labels,
1062
+ onSelect,
1063
+ onEventClick,
1064
+ onNavigate,
1065
+ hideViews,
1066
+ className,
1067
+ ...props
1068
+ }) {
1069
+ const ref = useRef20(null);
1070
+ const instance = useRef20(null);
1071
+ const kept = useRef20({});
1072
+ const select = useLatest(onSelect);
1073
+ const eventClick = useLatest(onEventClick);
1074
+ const navigate = useLatest(onNavigate);
1075
+ useIsomorphicLayoutEffect(() => {
1076
+ const created = createCalendar(ref.current, {
1077
+ date: date ?? kept.current.date,
1078
+ view: view ?? kept.current.view,
1079
+ selected: selected !== void 0 ? selected : kept.current.selected,
1080
+ firstDay,
1081
+ locale,
1082
+ events,
1083
+ maxEvents,
1084
+ today,
1085
+ labels,
1086
+ onSelect: (d) => select.current?.(d),
1087
+ onEventClick: (e) => eventClick.current?.(e),
1088
+ onNavigate: (r) => navigate.current?.(r)
1089
+ });
1090
+ instance.current = created;
1091
+ return () => {
1092
+ kept.current = { date: created.date, view: created.view, selected: created.selected };
1093
+ created.destroy();
1094
+ instance.current = null;
1095
+ };
1096
+ }, [date, view, firstDay, locale, maxEvents, today]);
1097
+ const eventsKey = JSON.stringify(events ?? []);
1098
+ const firstEvents = useRef20(true);
1099
+ useIsomorphicLayoutEffect(() => {
1100
+ if (firstEvents.current) {
1101
+ firstEvents.current = false;
1102
+ return;
1103
+ }
1104
+ instance.current?.setEvents(events ?? []);
1105
+ }, [eventsKey]);
1106
+ useIsomorphicLayoutEffect(() => {
1107
+ if (selected !== void 0) instance.current?.select(selected, false);
1108
+ }, [selected]);
1109
+ return /* @__PURE__ */ jsxs10("div", { ...props, ref, className: ["mk-calendar", className].filter(Boolean).join(" "), children: [
1110
+ /* @__PURE__ */ jsxs10("div", { className: "mk-calendar__header", children: [
1111
+ /* @__PURE__ */ jsx22("h3", { className: "mk-calendar__title", "data-mk-calendar-title": true }),
1112
+ !hideViews && /* @__PURE__ */ jsxs10("div", { className: "mk-calendar__views", role: "group", "aria-label": "Vista", children: [
1113
+ /* @__PURE__ */ jsx22("button", { type: "button", "data-mk-calendar-view": "month", children: labels?.month ?? "Mes" }),
1114
+ /* @__PURE__ */ jsx22("button", { type: "button", "data-mk-calendar-view": "week", children: labels?.week ?? "Semana" })
1115
+ ] }),
1116
+ /* @__PURE__ */ jsx22("button", { type: "button", className: "mk-calendar__nav", "data-mk-calendar-prev": true, "aria-label": labels?.previous ?? "Anterior", children: "\u2190" }),
1117
+ /* @__PURE__ */ jsx22("button", { type: "button", className: "mk-calendar__nav", "data-mk-calendar-today": true, children: labels?.today ?? "Hoy" }),
1118
+ /* @__PURE__ */ jsx22("button", { type: "button", className: "mk-calendar__nav", "data-mk-calendar-next": true, "aria-label": labels?.next ?? "Siguiente", children: "\u2192" })
1119
+ ] }),
1120
+ /* @__PURE__ */ jsx22("div", { "data-mk-calendar-grid": true })
1121
+ ] });
1122
+ }
1123
+
1124
+ // src/components/slot-picker/react.tsx
1125
+ import { useRef as useRef21 } from "react";
1126
+ import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
1127
+ function SlotPicker({
1128
+ date,
1129
+ value,
1130
+ slots,
1131
+ min,
1132
+ max,
1133
+ closedDays,
1134
+ isDisabled,
1135
+ firstDay,
1136
+ locale,
1137
+ labels,
1138
+ onChange,
1139
+ onDateChange,
1140
+ name,
1141
+ actions,
1142
+ className,
1143
+ ...props
1144
+ }) {
1145
+ const ref = useRef21(null);
1146
+ const instance = useRef21(null);
1147
+ const kept = useRef21(null);
1148
+ const change = useLatest(onChange);
1149
+ const dateChange = useLatest(onDateChange);
1150
+ const disabledFn = useLatest(isDisabled);
1151
+ const source = useLatest(slots);
1152
+ const slotsKey = typeof slots === "function" ? "function" : JSON.stringify(slots ?? []);
1153
+ const stable = () => {
1154
+ const current = source.current;
1155
+ return typeof current === "function" ? (d) => source.current(d) : current ?? [];
1156
+ };
1157
+ useIsomorphicLayoutEffect(() => {
1158
+ const keep = kept.current;
1159
+ const created = createSlotPicker(ref.current, {
1160
+ date: date ?? (keep instanceof Date ? keep : void 0),
1161
+ value: value !== void 0 ? value : typeof keep === "string" ? keep : void 0,
1162
+ slots: stable(),
1163
+ min,
1164
+ max,
1165
+ closedDays,
1166
+ firstDay,
1167
+ locale,
1168
+ labels,
1169
+ isDisabled: (d) => disabledFn.current?.(d) ?? false,
1170
+ onChange: (v) => change.current?.(v),
1171
+ onDateChange: (d) => dateChange.current?.(d)
1172
+ });
1173
+ instance.current = created;
1174
+ return () => {
1175
+ kept.current = created.value ?? created.date;
1176
+ created.destroy();
1177
+ instance.current = null;
1178
+ };
1179
+ }, [date, value, min, max, firstDay, locale, JSON.stringify(closedDays ?? [])]);
1180
+ const firstSlots = useRef21(true);
1181
+ useIsomorphicLayoutEffect(() => {
1182
+ if (firstSlots.current) {
1183
+ firstSlots.current = false;
1184
+ return;
1185
+ }
1186
+ instance.current?.setSlots(stable());
1187
+ }, [slotsKey]);
1188
+ return /* @__PURE__ */ jsxs11("div", { ...props, ref, className: ["mk-slot-picker", className].filter(Boolean).join(" "), children: [
1189
+ /* @__PURE__ */ jsxs11("div", { className: "mk-slot-picker__calendar", children: [
1190
+ /* @__PURE__ */ jsxs11("div", { className: "mk-slot-picker__month", children: [
1191
+ /* @__PURE__ */ jsx23("h3", { className: "mk-slot-picker__title", "data-mk-slot-title": true }),
1192
+ /* @__PURE__ */ jsx23("button", { type: "button", className: "mk-slot-picker__nav", "data-mk-slot-prev": true, "aria-label": labels?.previous ?? "Mes anterior", children: "\u2190" }),
1193
+ /* @__PURE__ */ jsx23("button", { type: "button", className: "mk-slot-picker__nav", "data-mk-slot-next": true, "aria-label": labels?.next ?? "Mes siguiente", children: "\u2192" })
1194
+ ] }),
1195
+ /* @__PURE__ */ jsx23("div", { "data-mk-slot-days": true })
1196
+ ] }),
1197
+ /* @__PURE__ */ jsxs11("div", { className: "mk-slot-picker__panel", children: [
1198
+ /* @__PURE__ */ jsx23("p", { className: "mk-slot-picker__heading", "data-mk-slot-heading": true }),
1199
+ /* @__PURE__ */ jsx23("div", { "data-mk-slot-times": true }),
1200
+ name && /* @__PURE__ */ jsx23("input", { type: "hidden", name, "data-mk-slot-value": true }),
1201
+ actions && /* @__PURE__ */ jsx23("div", { className: "mk-slot-picker__actions", children: actions })
1202
+ ] })
1203
+ ] });
1204
+ }
1205
+
1206
+ // src/react/use-weight-hover.ts
1207
+ var useWeightHover = (ref, options, deps) => useRecipe(ref, createWeightHover, options, deps);
1208
+
1209
+ // src/react/use-sticker.ts
1210
+ var useSticker = (ref, options, deps) => useRecipe(ref, createSticker, options, deps);
1211
+
1212
+ // src/react/use-scroll-dock.ts
1213
+ var useScrollDock = (ref, options, deps) => useRecipe(ref, createScrollDock, options, deps);
1214
+
1215
+ // src/react/use-local-clock.ts
1216
+ var useLocalClock = (ref, options, deps) => useRecipe(ref, createLocalClock, options, deps);
891
1217
  export {
892
1218
  ANIMATIONS,
893
1219
  AnimatedNumber,
1220
+ Calendar,
894
1221
  Chat,
895
1222
  ChatBackground,
896
1223
  Cursor,
897
1224
  Dialog,
898
1225
  FlipGroup,
899
1226
  Frost,
1227
+ HoverCard,
1228
+ InputOtp,
900
1229
  Island,
901
1230
  IslandDots,
902
1231
  MK_HEAD_SCRIPT,
@@ -905,11 +1234,16 @@ export {
905
1234
  MkIcon,
906
1235
  NAV_STYLES,
907
1236
  Nav,
1237
+ Pagination,
1238
+ Quantity,
1239
+ SlotPicker,
908
1240
  SlotText,
909
1241
  Steps,
1242
+ StudioDock,
910
1243
  ThemePicker,
911
1244
  ThemeProvider,
912
1245
  Toaster,
1246
+ Trailer,
913
1247
  animate,
914
1248
  clearToasts,
915
1249
  confetti,
@@ -920,6 +1254,7 @@ export {
920
1254
  pileStyle,
921
1255
  themeHeadScript,
922
1256
  toast,
1257
+ useActionButton,
923
1258
  useCardDock,
924
1259
  useCascade,
925
1260
  useChat,
@@ -931,15 +1266,21 @@ export {
931
1266
  useDialog,
932
1267
  useDockPill,
933
1268
  useDragRuler,
1269
+ useEditorialReveal,
934
1270
  useFillText,
1271
+ useFilmHero,
935
1272
  useFitText,
936
1273
  useFlow,
1274
+ useFontCycle,
937
1275
  useFrameZoom,
1276
+ useImageZoom,
938
1277
  useInfiniteReel,
939
1278
  useIsomorphicLayoutEffect,
1279
+ useJoinedCta,
940
1280
  useLatest,
941
1281
  useLetters,
942
1282
  useLiquidBlend,
1283
+ useLocalClock,
943
1284
  useMarquee,
944
1285
  useMaskText,
945
1286
  useMatcap,
@@ -953,17 +1294,23 @@ export {
953
1294
  useRepelBento,
954
1295
  useReveal,
955
1296
  useRotator,
1297
+ useScrollDock,
956
1298
  useShaderBlur,
957
1299
  useShaderGrain,
958
1300
  useSlotText,
959
1301
  useSnapStrip,
960
1302
  useSortable,
961
1303
  useSpringCards,
1304
+ useSticker,
962
1305
  useStretchFooter,
1306
+ useStudioDock,
963
1307
  useTabs,
964
1308
  useTextRoll,
965
1309
  useTheme,
1310
+ useThumbnailNav,
966
1311
  useTicketMenu,
1312
+ useTrailer,
1313
+ useWeightHover,
967
1314
  useWords
968
1315
  };
969
1316
  //# sourceMappingURL=index.js.map