@mova-ui/react 0.4.7 → 0.4.8

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 (484) hide show
  1. package/dist/index.js +2555 -449
  2. package/dist/styles.css +1 -1
  3. package/dist/ui/cards/calendar-day-card.d.ts +6 -0
  4. package/dist/ui/cards/day-trading-order-ticket.d.ts +4 -2
  5. package/dist/ui/cards/imessage-chat.d.ts +3 -1
  6. package/dist/ui/cards/liquid-glass-sheet.d.ts +3 -1
  7. package/dist/ui/cards/voice-assistant-card.d.ts +3 -1
  8. package/package.json +3 -2
  9. package/registry/1.json +1 -1
  10. package/registry/10.json +1 -1
  11. package/registry/11.json +1 -1
  12. package/registry/12.json +1 -1
  13. package/registry/13.json +1 -1
  14. package/registry/14.json +1 -1
  15. package/registry/15.json +1 -1
  16. package/registry/16.json +1 -1
  17. package/registry/17.json +1 -1
  18. package/registry/18.json +1 -1
  19. package/registry/19.json +1 -1
  20. package/registry/2.json +1 -1
  21. package/registry/20.json +1 -1
  22. package/registry/21.json +1 -1
  23. package/registry/22.json +1 -1
  24. package/registry/23.json +1 -1
  25. package/registry/24.json +1 -1
  26. package/registry/25.json +1 -1
  27. package/registry/26.json +1 -1
  28. package/registry/27.json +1 -1
  29. package/registry/28.json +1 -1
  30. package/registry/29.json +1 -1
  31. package/registry/3.json +1 -1
  32. package/registry/30.json +1 -1
  33. package/registry/31.json +1 -1
  34. package/registry/32.json +1 -1
  35. package/registry/33.json +1 -1
  36. package/registry/34.json +1 -1
  37. package/registry/35.json +1 -1
  38. package/registry/36.json +1 -1
  39. package/registry/37.json +1 -1
  40. package/registry/4.json +1 -1
  41. package/registry/5.json +1 -1
  42. package/registry/6.json +1 -1
  43. package/registry/7.json +1 -1
  44. package/registry/8.json +1 -1
  45. package/registry/9.json +1 -1
  46. package/registry/ab-segmented-tabs.json +1 -1
  47. package/registry/accordion-blind.json +1 -1
  48. package/registry/accordion-loader.json +1 -1
  49. package/registry/ai-approval-card.json +1 -1
  50. package/registry/ai-code-block.json +1 -1
  51. package/registry/ai-context-meter.json +1 -1
  52. package/registry/ai-fine-tune-card.json +1 -1
  53. package/registry/ai-prompt-bar.json +1 -1
  54. package/registry/ai-sidebar-nav.json +1 -1
  55. package/registry/ai-sources.json +1 -1
  56. package/registry/ai-suggestions.json +1 -1
  57. package/registry/ai-task-list.json +1 -1
  58. package/registry/ai-tool-call.json +1 -1
  59. package/registry/analyzing-image.json +1 -1
  60. package/registry/animated-sidebar.json +1 -1
  61. package/registry/animated-tags.json +1 -1
  62. package/registry/app-icon-load.json +1 -1
  63. package/registry/apple-breathe.json +1 -1
  64. package/registry/apple-equalizer.json +1 -1
  65. package/registry/apple-icon-morph.json +1 -1
  66. package/registry/apple-pulse-dots.json +1 -1
  67. package/registry/apple-scale-pulse.json +1 -1
  68. package/registry/apple-sound-wave.json +1 -1
  69. package/registry/apple-text-reveal.json +1 -1
  70. package/registry/apple-unlock.json +1 -1
  71. package/registry/arc-tracer.json +1 -1
  72. package/registry/balance-bar-chart-card.json +3 -5
  73. package/registry/bar-cascade.json +1 -1
  74. package/registry/bar-sweep.json +1 -1
  75. package/registry/blur-text.json +1 -1
  76. package/registry/blur-up-char.json +1 -1
  77. package/registry/blur-up-word.json +1 -1
  78. package/registry/bobbing-dots.json +1 -1
  79. package/registry/bookmark-corner-peel.json +1 -1
  80. package/registry/bookmark-save-pill.json +1 -1
  81. package/registry/bookmark-toggle.json +1 -1
  82. package/registry/border-trail-loading.json +1 -1
  83. package/registry/bounce-dots.json +1 -1
  84. package/registry/bounce-in-char.json +1 -1
  85. package/registry/bouncing-bars.json +1 -1
  86. package/registry/bouncing-dots.json +1 -1
  87. package/registry/bouncing-lines.json +1 -1
  88. package/registry/bouncing-square.json +1 -1
  89. package/registry/breathe-ring.json +1 -1
  90. package/registry/breathing-glow.json +1 -1
  91. package/registry/breathing-square.json +1 -1
  92. package/registry/btn-1.json +1 -1
  93. package/registry/btn-10.json +1 -1
  94. package/registry/btn-11.json +1 -1
  95. package/registry/btn-12.json +1 -1
  96. package/registry/btn-13.json +1 -1
  97. package/registry/btn-14.json +1 -1
  98. package/registry/btn-15.json +1 -1
  99. package/registry/btn-16.json +1 -1
  100. package/registry/btn-17.json +1 -1
  101. package/registry/btn-18.json +1 -1
  102. package/registry/btn-19.json +1 -1
  103. package/registry/btn-2.json +1 -1
  104. package/registry/btn-20.json +1 -1
  105. package/registry/btn-21.json +1 -1
  106. package/registry/btn-22.json +1 -1
  107. package/registry/btn-23.json +1 -1
  108. package/registry/btn-24.json +1 -1
  109. package/registry/btn-25.json +1 -1
  110. package/registry/btn-26.json +1 -1
  111. package/registry/btn-27.json +1 -1
  112. package/registry/btn-28.json +1 -1
  113. package/registry/btn-29.json +1 -1
  114. package/registry/btn-3.json +1 -1
  115. package/registry/btn-30.json +1 -1
  116. package/registry/btn-31.json +1 -1
  117. package/registry/btn-32.json +1 -1
  118. package/registry/btn-33.json +1 -1
  119. package/registry/btn-34.json +1 -1
  120. package/registry/btn-35.json +1 -1
  121. package/registry/btn-36.json +1 -1
  122. package/registry/btn-37.json +1 -1
  123. package/registry/btn-4.json +1 -1
  124. package/registry/btn-5.json +1 -1
  125. package/registry/btn-6.json +1 -1
  126. package/registry/btn-7.json +1 -1
  127. package/registry/btn-8.json +1 -1
  128. package/registry/btn-9.json +1 -1
  129. package/registry/button-slide-arrow.json +1 -1
  130. package/registry/cacheable-bandwidth-cost.json +1 -1
  131. package/registry/calendar-day-card.json +4 -5
  132. package/registry/card-arc-5.json +1 -1
  133. package/registry/card-arc-7.json +1 -1
  134. package/registry/card-carousel-mono.json +1 -1
  135. package/registry/card-carousel.json +1 -1
  136. package/registry/card-cascade-stagger.json +1 -1
  137. package/registry/card-corner-fan.json +1 -1
  138. package/registry/card-cover-flow-mono.json +1 -1
  139. package/registry/card-cover-flow.json +1 -1
  140. package/registry/card-deck-cascade.json +1 -1
  141. package/registry/card-glance-preview.json +1 -1
  142. package/registry/card-hover.json +1 -1
  143. package/registry/card-linear-spread.json +1 -1
  144. package/registry/card-long-arc-5.json +1 -1
  145. package/registry/card-scatter-spread.json +1 -1
  146. package/registry/card-stack-peel.json +1 -1
  147. package/registry/card-stamp-arc.json +1 -1
  148. package/registry/card-time-machine-mono.json +1 -1
  149. package/registry/card-time-machine.json +1 -1
  150. package/registry/card-wheel-fan.json +1 -1
  151. package/registry/category-select.json +1 -1
  152. package/registry/character-stagger.json +1 -1
  153. package/registry/checkbox-draw.json +1 -1
  154. package/registry/checkmark-draw.json +1 -1
  155. package/registry/circle-toggle.json +1 -1
  156. package/registry/circuit-trace-draw.json +1 -1
  157. package/registry/circular-bars.json +1 -1
  158. package/registry/circular-create-button.json +1 -1
  159. package/registry/classic-spinner.json +1 -1
  160. package/registry/classic-toggle.json +1 -1
  161. package/registry/clock-spinner.json +1 -1
  162. package/registry/comet-spinner.json +1 -1
  163. package/registry/compass-needle-deflect.json +1 -1
  164. package/registry/concentric-pulse.json +1 -1
  165. package/registry/concentric-ring.json +1 -1
  166. package/registry/concentric-squares.json +1 -1
  167. package/registry/context-menu.json +1 -1
  168. package/registry/conveyor-loop.json +1 -1
  169. package/registry/credit-score-barcode-meter.json +1 -1
  170. package/registry/cross-spinner.json +1 -1
  171. package/registry/cube-flip-spring.json +1 -1
  172. package/registry/cursor-trail.json +1 -1
  173. package/registry/dash-ring.json +1 -1
  174. package/registry/dashed-spiral.json +1 -1
  175. package/registry/date-position-selector.json +1 -1
  176. package/registry/day-trading-order-ticket.json +3 -5
  177. package/registry/dia-text-reveal.json +1 -1
  178. package/registry/diamond-grid.json +1 -1
  179. package/registry/diamond-rotate-spring.json +1 -1
  180. package/registry/dislike-toggle.json +1 -1
  181. package/registry/dither-book.json +1 -1
  182. package/registry/domino-cascade.json +1 -1
  183. package/registry/dot-spinner.json +1 -1
  184. package/registry/dots-ring.json +1 -1
  185. package/registry/double-bounce-toggle.json +1 -1
  186. package/registry/double-ring.json +1 -1
  187. package/registry/download-icons.json +1 -1
  188. package/registry/drop-dot.json +1 -1
  189. package/registry/drop-in-char.json +1 -1
  190. package/registry/droplet-squish.json +1 -1
  191. package/registry/dual-arc.json +1 -1
  192. package/registry/dual-magnet-dipole.json +1 -1
  193. package/registry/dynamic-island.json +1 -1
  194. package/registry/elastic-bars.json +1 -1
  195. package/registry/elastic-square.json +1 -1
  196. package/registry/elastic-tag-snap.json +1 -1
  197. package/registry/error-shake.json +1 -1
  198. package/registry/expanding-cross.json +1 -1
  199. package/registry/expanding-icon-tabs.json +1 -1
  200. package/registry/face-id-scan.json +1 -1
  201. package/registry/fade-arc.json +1 -1
  202. package/registry/fade-dots.json +1 -1
  203. package/registry/fade-down.json +1 -1
  204. package/registry/fade-in-char.json +1 -1
  205. package/registry/fade-in-text.json +1 -1
  206. package/registry/fade-in-word.json +1 -1
  207. package/registry/fade-in.json +1 -1
  208. package/registry/fade-up.json +1 -1
  209. package/registry/file-upload-dropzone.json +1 -1
  210. package/registry/filter-tag-pill.json +1 -1
  211. package/registry/flip-square.json +1 -1
  212. package/registry/flip-x-char.json +1 -1
  213. package/registry/flip-y-char.json +1 -1
  214. package/registry/float-char.json +1 -1
  215. package/registry/float-word.json +1 -1
  216. package/registry/floating-diamonds.json +1 -1
  217. package/registry/floating-label-input.json +1 -1
  218. package/registry/fluid-bars.json +1 -1
  219. package/registry/fluid-diamond.json +1 -1
  220. package/registry/fluid-dot-orbit.json +1 -1
  221. package/registry/fluid-skeleton.json +1 -1
  222. package/registry/focus-blur.json +1 -1
  223. package/registry/form-submit-button.json +1 -1
  224. package/registry/french-doors-3d.json +1 -1
  225. package/registry/gear-tooth-step.json +1 -1
  226. package/registry/gears.json +1 -1
  227. package/registry/gelatin-wobble.json +1 -1
  228. package/registry/geometric-iris-shutter.json +1 -1
  229. package/registry/glassmorphic-card.json +1 -1
  230. package/registry/glow-button.json +1 -1
  231. package/registry/glow-text.json +1 -1
  232. package/registry/gooey-popover.json +1 -1
  233. package/registry/gradient-arc.json +1 -1
  234. package/registry/gradient-shimmer.json +1 -1
  235. package/registry/grid-dots.json +1 -1
  236. package/registry/haptic-ring.json +1 -1
  237. package/registry/heartbeat.json +1 -1
  238. package/registry/hex-lattice-draw.json +1 -1
  239. package/registry/hexagon-spinner.json +1 -1
  240. package/registry/hourglass.json +1 -1
  241. package/registry/hover-lift-char.json +1 -1
  242. package/registry/hover-lift-word.json +1 -1
  243. package/registry/hover-link-card.json +1 -1
  244. package/registry/hover-scale-char.json +1 -1
  245. package/registry/hover-scale-word.json +1 -1
  246. package/registry/imessage-chat.json +2 -2
  247. package/registry/inertia-skid-stop.json +1 -1
  248. package/registry/infinity-path.json +1 -1
  249. package/registry/input-focus-glow.json +1 -1
  250. package/registry/inset-action-button.json +1 -1
  251. package/registry/inset-button.json +1 -1
  252. package/registry/intersecting-rings.json +1 -1
  253. package/registry/ios-spinner.json +1 -1
  254. package/registry/kinetic-metronome-tick.json +1 -1
  255. package/registry/kinetic-tension-capsule.json +1 -1
  256. package/registry/light-dark-morph.json +1 -1
  257. package/registry/like-toggle.json +1 -1
  258. package/registry/line-spinner.json +1 -1
  259. package/registry/liquid-dots.json +1 -1
  260. package/registry/liquid-glass-sheet.json +3 -5
  261. package/registry/mac-terminal.json +1 -1
  262. package/registry/magnetic-button.json +1 -1
  263. package/registry/magnetic-disks.json +1 -1
  264. package/registry/magnetic-dots.json +1 -1
  265. package/registry/magnetic-slide-btn.json +1 -1
  266. package/registry/manifest.json +658 -665
  267. package/registry/matrix-grid-loader.json +1 -1
  268. package/registry/minimal-triangle.json +1 -1
  269. package/registry/modular-tile-snap.json +1 -1
  270. package/registry/mono-activity-blue.json +1 -1
  271. package/registry/mono-activity-green.json +1 -1
  272. package/registry/mono-activity-purple.json +1 -1
  273. package/registry/mono-heatmap.json +1 -1
  274. package/registry/mono-rounded-area.json +1 -1
  275. package/registry/mono-rounded-bar.json +1 -1
  276. package/registry/mono-rounded-bubble.json +1 -1
  277. package/registry/mono-rounded-bullet.json +1 -1
  278. package/registry/mono-rounded-candlestick.json +1 -1
  279. package/registry/mono-rounded-composed.json +1 -1
  280. package/registry/mono-rounded-donut.json +1 -1
  281. package/registry/mono-rounded-funnel.json +1 -1
  282. package/registry/mono-rounded-gauge-arc.json +1 -1
  283. package/registry/mono-rounded-heatmap.json +1 -1
  284. package/registry/mono-rounded-kpi.json +1 -1
  285. package/registry/mono-rounded-line.json +1 -1
  286. package/registry/mono-rounded-meter.json +1 -1
  287. package/registry/mono-rounded-polar.json +1 -1
  288. package/registry/mono-rounded-pyramid.json +1 -1
  289. package/registry/mono-rounded-radar.json +1 -1
  290. package/registry/mono-rounded-radial-gauge.json +1 -1
  291. package/registry/mono-rounded-radial-group.json +1 -1
  292. package/registry/mono-rounded-range.json +1 -1
  293. package/registry/mono-rounded-sankey.json +1 -1
  294. package/registry/mono-rounded-scatter.json +1 -1
  295. package/registry/mono-rounded-sparkline.json +1 -1
  296. package/registry/mono-rounded-stacked-bar.json +1 -1
  297. package/registry/mono-rounded-step.json +1 -1
  298. package/registry/mono-rounded-stream.json +1 -1
  299. package/registry/mono-rounded-treemap.json +1 -1
  300. package/registry/mono-rounded-waterfall.json +1 -1
  301. package/registry/mono-stock.json +1 -1
  302. package/registry/morph-action-pill.json +1 -1
  303. package/registry/morph-dot-ring.json +1 -1
  304. package/registry/morph-loader.json +1 -1
  305. package/registry/morph-toggle.json +1 -1
  306. package/registry/morphing-bars.json +1 -1
  307. package/registry/morphing-infinity.json +1 -1
  308. package/registry/morphing-ring.json +1 -1
  309. package/registry/morphing-shape.json +1 -1
  310. package/registry/mouse-follow.json +1 -1
  311. package/registry/multi-select-chips.json +1 -1
  312. package/registry/multi-tab-bar.json +1 -1
  313. package/registry/neon-sign-draw.json +1 -1
  314. package/registry/nested-orbital-gimbal.json +1 -1
  315. package/registry/network-telemetry-matrix.json +1 -1
  316. package/registry/newtons-cradle.json +1 -1
  317. package/registry/noise-decibel-level.json +1 -1
  318. package/registry/obsidian-liquid-wave.json +1 -1
  319. package/registry/offset-rings.json +1 -1
  320. package/registry/orbiting-circles.json +1 -1
  321. package/registry/orbiting-dot.json +1 -1
  322. package/registry/origami-envelope-unfold.json +1 -1
  323. package/registry/origami-shape.json +1 -1
  324. package/registry/otp-input.json +1 -1
  325. package/registry/overview-bar-scrubber-card.json +1 -1
  326. package/registry/page-transition.json +1 -1
  327. package/registry/page-turn-curl.json +1 -1
  328. package/registry/password-toggle.json +1 -1
  329. package/registry/pendulum-bubble-level.json +1 -1
  330. package/registry/pendulum.json +1 -1
  331. package/registry/perspective-flip-stage.json +1 -1
  332. package/registry/perspective-flip.json +1 -1
  333. package/registry/perspective-layout-switcher.json +1 -1
  334. package/registry/physics-dock.json +1 -1
  335. package/registry/pill-tabs.json +1 -1
  336. package/registry/plus-minus-toggle.json +1 -1
  337. package/registry/presets.json +1 -1
  338. package/registry/prism-block-stack.json +1 -1
  339. package/registry/progress-indicator-piano.json +1 -1
  340. package/registry/progress-indicator.json +1 -1
  341. package/registry/progress-stepper.json +1 -1
  342. package/registry/pulsating-dots.json +1 -1
  343. package/registry/pulse-char.json +1 -1
  344. package/registry/pulse-dot.json +1 -1
  345. package/registry/pulse-dots.json +1 -1
  346. package/registry/pulse-square.json +1 -1
  347. package/registry/pulse-word.json +1 -1
  348. package/registry/pulse.json +1 -1
  349. package/registry/pumping-heart.json +1 -1
  350. package/registry/pyramid-block-build.json +1 -1
  351. package/registry/radar-sweep.json +1 -1
  352. package/registry/radial-iris-mask.json +1 -1
  353. package/registry/radial-spinner.json +1 -1
  354. package/registry/radio-scale.json +1 -1
  355. package/registry/range-slider.json +1 -1
  356. package/registry/receipt-tape-print.json +1 -1
  357. package/registry/rectangle-toggle.json +1 -1
  358. package/registry/repost-toggle.json +1 -1
  359. package/registry/reveal-text.json +1 -1
  360. package/registry/ribbon-banner-slide.json +1 -1
  361. package/registry/ring-sweep.json +1 -1
  362. package/registry/ripple-effect.json +1 -1
  363. package/registry/rise-up-word.json +1 -1
  364. package/registry/roller-blind-drop.json +1 -1
  365. package/registry/rolling-tumble.json +1 -1
  366. package/registry/rotate-in-char.json +1 -1
  367. package/registry/rotating-cross.json +1 -1
  368. package/registry/rotating-louvers.json +1 -1
  369. package/registry/rotating-triangle.json +1 -1
  370. package/registry/rudder-issue-board.json +1 -1
  371. package/registry/sales-analytics-dual-bars.json +1 -1
  372. package/registry/sales-overview-radial-dashboard.json +1 -1
  373. package/registry/sales-target-segmented-arc.json +1 -1
  374. package/registry/scale-in-char.json +1 -1
  375. package/registry/scale-in-text.json +1 -1
  376. package/registry/scale-in-word.json +1 -1
  377. package/registry/scale-in.json +1 -1
  378. package/registry/scramble-text.json +1 -1
  379. package/registry/scroll-canvas-unroll.json +1 -1
  380. package/registry/scroll-reveal.json +1 -1
  381. package/registry/search-expand.json +1 -1
  382. package/registry/segmented-arc-meter.json +1 -1
  383. package/registry/segmented-link-stretch.json +1 -1
  384. package/registry/segmented-step-bar.json +1 -1
  385. package/registry/segmented-stepper-dots.json +1 -1
  386. package/registry/select-dropdown.json +1 -1
  387. package/registry/server-performance-step-bars.json +1 -1
  388. package/registry/shape-shift-grid.json +1 -1
  389. package/registry/shimmer-line.json +1 -1
  390. package/registry/shimmer-text.json +1 -1
  391. package/registry/shutter-slide.json +1 -1
  392. package/registry/shutter-step-slices.json +1 -1
  393. package/registry/siri-wave.json +1 -1
  394. package/registry/skeleton-loader.json +1 -1
  395. package/registry/skeleton.json +1 -1
  396. package/registry/skew-x-char.json +1 -1
  397. package/registry/slide-down-char.json +1 -1
  398. package/registry/slide-down-word.json +1 -1
  399. package/registry/slide-left-char.json +1 -1
  400. package/registry/slide-left.json +1 -1
  401. package/registry/slide-right-char.json +1 -1
  402. package/registry/slide-right.json +1 -1
  403. package/registry/slide-up-char.json +1 -1
  404. package/registry/slide-up-text.json +1 -1
  405. package/registry/slide-up-word.json +1 -1
  406. package/registry/sliding-bars.json +1 -1
  407. package/registry/slinky-coil.json +1 -1
  408. package/registry/smart-card-dispenser.json +1 -1
  409. package/registry/smooth-dot-shift.json +1 -1
  410. package/registry/smooth-ring.json +1 -1
  411. package/registry/smooth-rounded-square.json +1 -1
  412. package/registry/solid-switch.json +1 -1
  413. package/registry/spatial-door-portal.json +1 -1
  414. package/registry/spinning-squares.json +1 -1
  415. package/registry/spiral-spinner.json +1 -1
  416. package/registry/split-gate-reveal.json +1 -1
  417. package/registry/spotlight.json +1 -1
  418. package/registry/spring-bars.json +1 -1
  419. package/registry/spring-dot-matrix.json +1 -1
  420. package/registry/spring-hexagon.json +1 -1
  421. package/registry/spring-ring-expand.json +1 -1
  422. package/registry/spring-text-pop.json +1 -1
  423. package/registry/spring-text.json +1 -1
  424. package/registry/square-accordion.json +1 -1
  425. package/registry/square-grid.json +1 -1
  426. package/registry/square-snake.json +1 -1
  427. package/registry/square-spinner.json +1 -1
  428. package/registry/squash-sphere.json +1 -1
  429. package/registry/stacked-bar-pulse.json +1 -1
  430. package/registry/stagger-text.json +1 -1
  431. package/registry/staggered-glass-curtain.json +1 -1
  432. package/registry/sticky-note-peel.json +1 -1
  433. package/registry/sticky-reveal.json +1 -1
  434. package/registry/stretch-x-char.json +1 -1
  435. package/registry/stretch-y-char.json +1 -1
  436. package/registry/stroke-waveform.json +1 -1
  437. package/registry/submenu-flyout.json +1 -1
  438. package/registry/success-check.json +1 -1
  439. package/registry/sudden-brake.json +1 -1
  440. package/registry/swapping-dots.json +1 -1
  441. package/registry/swing-word.json +1 -1
  442. package/registry/swirling-spinner.json +1 -1
  443. package/registry/symmetric-wave.json +1 -1
  444. package/registry/terminal-loader.json +1 -1
  445. package/registry/text-blink.json +1 -1
  446. package/registry/text-dots.json +1 -1
  447. package/registry/text-morph.json +1 -1
  448. package/registry/text-reveal.json +1 -1
  449. package/registry/text-shimmer-wave.json +1 -1
  450. package/registry/text-shimmer.json +1 -1
  451. package/registry/textarea-auto-grow.json +1 -1
  452. package/registry/theme-toggle.json +1 -1
  453. package/registry/tilt-card.json +1 -1
  454. package/registry/timer-preparation-segmented.json +1 -1
  455. package/registry/tracking-in-text.json +1 -1
  456. package/registry/tracking-out-text.json +1 -1
  457. package/registry/trailing-dots.json +1 -1
  458. package/registry/triple-dot-spinner.json +1 -1
  459. package/registry/twin-orbit.json +1 -1
  460. package/registry/typewriter-text.json +1 -1
  461. package/registry/typing-indicator.json +1 -1
  462. package/registry/typing.json +1 -1
  463. package/registry/use-mouse-position.json +1 -1
  464. package/registry/use-reduced-motion.json +1 -1
  465. package/registry/use-scroll-progress.json +1 -1
  466. package/registry/use-stagger.json +1 -1
  467. package/registry/use-web-haptics.json +1 -1
  468. package/registry/users-growth-pill-progress.json +1 -1
  469. package/registry/utils.json +1 -1
  470. package/registry/vertical-wheel-counter.json +1 -1
  471. package/registry/views-hourly-wave-chart.json +1 -1
  472. package/registry/voice-assistant-card.json +3 -3
  473. package/registry/wandering-cube.json +1 -1
  474. package/registry/wandering-eyes.json +1 -1
  475. package/registry/watch-spinner.json +1 -1
  476. package/registry/wave-dots.json +1 -1
  477. package/registry/wave-physics-loader.json +1 -1
  478. package/registry/wave-reveal.json +1 -1
  479. package/registry/waveform-loader.json +1 -1
  480. package/registry/word-reveal.json +1 -1
  481. package/registry/zig-zag-pulse.json +1 -1
  482. package/registry/zoom-in-text.json +1 -1
  483. package/registry/zoom-in.json +1 -1
  484. package/registry/zoom-out-text.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-30",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-30.tsx",
6
6
  "registryFile": "btn-30.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-31",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-31.tsx",
6
6
  "registryFile": "btn-31.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-32",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-32.tsx",
6
6
  "registryFile": "btn-32.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-33",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-33.tsx",
6
6
  "registryFile": "btn-33.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-34",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-34.tsx",
6
6
  "registryFile": "btn-34.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-35",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-35.tsx",
6
6
  "registryFile": "btn-35.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-36",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-36.tsx",
6
6
  "registryFile": "btn-36.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-37",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-37.tsx",
6
6
  "registryFile": "btn-37.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-4",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-4.tsx",
6
6
  "registryFile": "btn-4.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-5",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-5.tsx",
6
6
  "registryFile": "btn-5.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-6",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-6.tsx",
6
6
  "registryFile": "btn-6.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-7",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-7.tsx",
6
6
  "registryFile": "btn-7.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-8",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-8.tsx",
6
6
  "registryFile": "btn-8.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "btn-9",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "btn-9.tsx",
6
6
  "registryFile": "btn-9.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "button-slide-arrow",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "button-slide-arrow.tsx",
6
6
  "registryFile": "button-slide-arrow.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "cacheable-bandwidth-cost",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "cacheable-bandwidth-cost.tsx",
6
6
  "registryFile": "cacheable-bandwidth-cost.json",
7
7
  "exports": [
@@ -1,20 +1,19 @@
1
1
  {
2
2
  "id": "calendar-day-card",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "calendar-day-card.tsx",
6
6
  "sourcePath": "ui/cards/calendar-day-card.tsx",
7
7
  "registryFile": "calendar-day-card.json",
8
8
  "exports": [
9
9
  "CalendarDay",
10
+ "CalendarDayAttendee",
10
11
  "CalendarDayCard",
11
12
  "CalendarDayCardProps",
12
13
  "CalendarDayEvent"
13
14
  ],
14
- "dependencies": [
15
- "lucide-react"
16
- ],
15
+ "dependencies": [],
17
16
  "license": "MIT",
18
17
  "previewMode": "client",
19
- "content": "\"use client\";\n\"use client\";\n\n/** Original Mova implementation; visual reference documented in docs/provenance/interactive-cards.md. */\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nexport interface CalendarDayEvent { id: string; title: string; time: string; location?: string; color?: string }\nexport interface CalendarDay { id: string; weekday: string; day: number; dateLabel: string; events: CalendarDayEvent[] }\nexport interface CalendarDayCardProps { days?: CalendarDay[]; defaultSelectedDay?: string; onDayChange?: (day: CalendarDay) => void; onEventClick?: (event: CalendarDayEvent) => void; theme?: \"light\" | \"dark\"; className?: string; style?: React.CSSProperties }\nconst weekdays = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\"];\nconst meetingTitles = [[\"Weekly planning\", \"Design critique\"], [\"Roadmap review\", \"Lunch with Priya\", \"Hiring sync\"], [\"Customer call\", \"Sprint demo\"], [\"Standup\", \"Product review\", \"1:1 with Maya\"], [\"Retro\", \"Team drinks\"]];\nconst meetingTimes = [[\"9:30 – 10:15\", \"14:00 – 15:00\"], [\"10:00 – 11:00\", \"13:30 – 14:30\", \"16:00 – 16:30\"], [\"11:00 – 11:30\", \"15:00 – 16:00\"], [\"9:00 – 9:15\", \"11:30 – 12:30\", \"16:00 – 16:30\"], [\"10:00 – 10:45\", \"15:30 – 16:30\"]];\nconst defaultDays: CalendarDay[] = weekdays.map((weekday, index) => ({ id: `${index + 11}`, weekday, day: index + 11, dateLabel: `March ${index + 11}`, events: meetingTitles[index].map((title, event) => ({ id: `${index}-${event}`, title, time: meetingTimes[index][event], location: [\"Zoom\", \"Room 2\", \"Café\"][event], color: [\"#7894e3\", \"#d7a265\", \"#b18ad1\"][event] })) }));\nexport function CalendarDayCard({ days = defaultDays, defaultSelectedDay = \"14\", onDayChange, onEventClick, theme = \"light\", className = \"\", style }: CalendarDayCardProps = {}) {\n const [selected, setSelected] = React.useState(defaultSelectedDay);\n const currentIndex = Math.max(0, days.findIndex(day => day.id === selected));\n const current = days[currentIndex];\n const labelId = React.useId();\n function select(index: number) { const day = days[index]; if (day) { setSelected(day.id); onDayChange?.(day); } }\n return <section className={`mova-calendar ${className}`} data-theme={theme} style={style} aria-label=\"Calendar day\">\n <style>{css}</style><header><div><h2 id={labelId}>{current?.weekday ?? \"Your calendar\"}</h2><p>{current ? `${current.dateLabel} · ${current.events.length} ${current.events.length === 1 ? \"meeting\" : \"meetings\"}` : \"No days available\"}</p></div><div className=\"mcd-arrows\"><button type=\"button\" aria-label=\"Previous day\" disabled={!current || currentIndex === 0} onClick={() => select(currentIndex - 1)}><ChevronLeft size={16} /></button><button type=\"button\" aria-label=\"Next day\" disabled={!current || currentIndex === days.length - 1} onClick={() => select(currentIndex + 1)}><ChevronRight size={16} /></button></div></header>\n <div className=\"mcd-days\" role=\"group\" aria-label=\"Select a day\">{days.map((day, index) => <button type=\"button\" key={day.id} aria-pressed={current?.id === day.id} aria-label={`${day.weekday}, ${day.dateLabel}`} onClick={() => select(index)}><span>{day.weekday.slice(0, 3)}</span><strong>{day.day}</strong></button>)}</div>\n <div className=\"mcd-agenda\" aria-labelledby={labelId} aria-live=\"polite\" key={current?.id}>{current?.events.length ? current.events.map(event => <button type=\"button\" className=\"mcd-event\" key={event.id} onClick={() => onEventClick?.(event)} disabled={!onEventClick} style={{ \"--mcd-event\": event.color ?? \"#7894e3\" } as React.CSSProperties}><span className=\"mcd-event-line\" aria-hidden=\"true\" /><span><strong>{event.title}</strong><small>{event.time}{event.location ? ` · ${event.location}` : \"\"}</small></span></button>) : <p className=\"mcd-empty\">Nothing scheduled. Enjoy your day.</p>}</div>\n </section>;\n}\nconst css = `\n.mova-calendar{--mcd-bg:#fff;--mcd-fg:#222;--mcd-muted:#737373;--mcd-chip:#f4f4f4;width:300px;max-width:100%;box-sizing:border-box;padding:24px;border-radius:24px;color:var(--mcd-fg);background:var(--mcd-bg);font:400 13px/20px -apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;border:1px solid #88888818;box-shadow:0 8px 32px -4px #0000000c}.mova-calendar[data-theme=dark]{--mcd-bg:#1d1d1d;--mcd-fg:#f2f2f2;--mcd-muted:#aaa;--mcd-chip:#2b2b2b;color-scheme:dark}.mova-calendar *{box-sizing:border-box}.mova-calendar h2,.mova-calendar p{margin:0}.mova-calendar h2{font-size:16px;line-height:22px;font-weight:500}.mova-calendar header{display:flex;align-items:center;gap:8px}.mova-calendar header>div:first-child{min-width:0;flex:1}.mova-calendar header p{font-size:12px;color:var(--mcd-muted);margin-top:2px}.mova-calendar button{font:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.mova-calendar button:focus-visible{outline:2px solid #6d8ee6;outline-offset:3px}.mcd-arrows{display:flex;flex:none}.mcd-arrows button{width:28px;height:32px;display:grid;place-items:center;border-radius:8px}.mcd-arrows button:hover{background:var(--mcd-chip)}.mcd-arrows button:disabled{opacity:.3;cursor:default}.mcd-days{display:flex;gap:4px;margin:20px 0 16px;overflow:auto;padding:3px}.mcd-days button{min-width:38px;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:12px;transition:background 180ms,color 180ms}.mcd-days span{font-size:11px;color:var(--mcd-muted)}.mcd-days strong{font-size:16px;font-weight:500}.mcd-days button[aria-pressed=true]{background:var(--mcd-fg);color:var(--mcd-bg)}.mcd-days button[aria-pressed=true] span{color:inherit;opacity:.75}.mcd-days button:not([aria-pressed=true]):hover{background:var(--mcd-chip)}.mcd-agenda{border-top:1px solid #88888820;padding-top:12px;min-height:174px;animation:mcd-enter 220ms ease-out}.mcd-event{width:100%;display:flex;gap:12px;padding:8px 0!important;text-align:left;border-radius:5px}.mcd-event:disabled{opacity:1;cursor:default}.mcd-event-line{width:3px;align-self:stretch;background:var(--mcd-event);border-radius:4px;flex:none}.mcd-event>span:last-child{min-width:0}.mcd-event strong{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}.mcd-event small{display:block;font-size:12px;color:var(--mcd-muted)}.mcd-empty{padding-top:12px;color:var(--mcd-muted)}@keyframes mcd-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.mova-calendar *{animation:none!important;transition:none!important}}\n`;\n"
18
+ "content": "\"use client\";\n\"use client\";\n\n/** Original Mova implementation; visual reference documented in docs/provenance/interactive-cards.md. */\nimport * as React from \"react\";\n\nexport interface CalendarDayAttendee { name: string; image?: string; color?: string }\nexport interface CalendarDayEvent { id: string; title: string; time: string; location?: string; color?: string; attendees?: CalendarDayAttendee[] }\nexport interface CalendarDay { id: string; weekday: string; day: number; dateLabel: string; events: CalendarDayEvent[] }\nexport interface CalendarDayCardProps { days?: CalendarDay[]; defaultSelectedDay?: string; onDayChange?: (day: CalendarDay) => void; onEventClick?: (event: CalendarDayEvent) => void; theme?: \"light\" | \"dark\"; className?: string; style?: React.CSSProperties }\n\nconst portrait = (name: string, photo: string): CalendarDayAttendee => ({ name, image: `https://images.unsplash.com/${photo}?auto=format&fit=crop&q=80&w=48&h=48` });\nconst people = {\n leo: portrait(\"Leo Park\", \"photo-1500648767791-00dcc994a43e\"),\n maya: portrait(\"Maya Chen\", \"photo-1534528741775-53994a69daeb\"),\n tom: portrait(\"Tom Hale\", \"photo-1506794778202-cad84cf45f1d\"),\n ana: portrait(\"Ana Ruiz\", \"photo-1438761681033-6461ffad8d80\"),\n jade: portrait(\"Jade Wu\", \"photo-1580489944761-15a19d654956\"),\n priya: portrait(\"Priya Nair\", \"photo-1544005313-94ddf0286df2\"),\n sam: portrait(\"Sam Okafor\", \"photo-1570158268183-d296b2892211\"),\n nina: portrait(\"Nina Brooks\", \"photo-1632765854612-9b02b6ec2b15\"),\n};\nconst defaultDays: CalendarDay[] = [\n { id: \"11\", weekday: \"Monday\", day: 11, dateLabel: \"March 11\", events: [\n { id: \"0-0\", title: \"Weekly planning\", time: \"9:30 – 10:15\", location: \"Room 2\", color: \"#1C5FFB\" },\n { id: \"0-1\", title: \"Design critique\", time: \"14:00 – 15:00\", location: \"Studio\", color: \"#B01CFB\", attendees: [people.maya, people.sam] },\n ] },\n { id: \"12\", weekday: \"Tuesday\", day: 12, dateLabel: \"March 12\", events: [\n { id: \"1-0\", title: \"Roadmap review\", time: \"10:00 – 11:00\", location: \"Zoom\", color: \"#EF8121\", attendees: [people.leo, people.ana, people.nina] },\n { id: \"1-1\", title: \"Lunch with Priya\", time: \"13:30 – 14:30\", location: \"Café\", color: \"#1EBB26\", attendees: [people.priya] },\n { id: \"1-2\", title: \"Hiring sync\", time: \"16:00 – 16:30\", location: \"Room 4\", color: \"#1C5FFB\" },\n ] },\n { id: \"13\", weekday: \"Wednesday\", day: 13, dateLabel: \"March 13\", events: [\n { id: \"2-0\", title: \"Customer call\", time: \"11:00 – 11:30\", location: \"Zoom\", color: \"#EC4A4A\", attendees: [people.tom, people.jade] },\n { id: \"2-1\", title: \"Sprint demo\", time: \"15:00 – 16:00\", location: \"Studio\", color: \"#B01CFB\" },\n ] },\n { id: \"14\", weekday: \"Thursday\", day: 14, dateLabel: \"March 14\", events: [\n { id: \"3-0\", title: \"Standup\", time: \"9:00 – 9:15\", location: \"Zoom\", color: \"#1C5FFB\" },\n { id: \"3-1\", title: \"Product review\", time: \"11:30 – 12:30\", location: \"Room 2\", color: \"#B01CFB\", attendees: [people.jade, people.leo, people.tom] },\n { id: \"3-2\", title: \"1:1 with Maya\", time: \"16:00 – 16:30\", location: \"Café\", color: \"#1EBB26\", attendees: [people.maya] },\n ] },\n { id: \"15\", weekday: \"Friday\", day: 15, dateLabel: \"March 15\", events: [\n { id: \"4-0\", title: \"Retro\", time: \"10:00 – 10:45\", location: \"Studio\", color: \"#EF8121\", attendees: [people.ana, people.sam, people.nina] },\n { id: \"4-1\", title: \"Team drinks\", time: \"15:30 – 16:30\", location: \"Rooftop\", color: \"#1EBB26\" },\n ] },\n];\n\nfunction SoftText({ text, className = \"\" }: { text: string; className?: string }) {\n const root = React.useRef<HTMLSpanElement>(null);\n const incoming = React.useRef<HTMLSpanElement>(null);\n const last = React.useRef(text);\n const [content, setContent] = React.useState({ old: \"\", next: text });\n const [swapping, setSwapping] = React.useState(false);\n const [width, setWidth] = React.useState<number>();\n React.useLayoutEffect(() => {\n if (last.current === text) return;\n const old = last.current;\n last.current = text;\n setWidth(root.current?.getBoundingClientRect().width);\n setSwapping(false);\n setContent({ old, next: text });\n const frame = requestAnimationFrame(() => {\n setWidth(incoming.current?.getBoundingClientRect().width);\n setSwapping(true);\n });\n const timer = setTimeout(() => { setContent({ old: \"\", next: text }); setWidth(undefined); setSwapping(false); }, 280);\n return () => { cancelAnimationFrame(frame); clearTimeout(timer); };\n }, [text]);\n return <span ref={root} className={`mcd-soft ${className}`} data-swapping={swapping} data-changing={!!content.old} style={{ width }}>\n {content.old && <span className=\"mcd-soft-old\" aria-hidden=\"true\">{content.old}</span>}\n <span ref={incoming} className=\"mcd-soft-new\">{content.next}</span>\n </span>;\n}\n\nfunction Attendees({ people: attendees }: { people: CalendarDayAttendee[] }) {\n const [active, setActive] = React.useState<number | null>(null);\n const [returning, setReturning] = React.useState(false);\n const shift = (index: number) => active === null ? 0 : -4 * Math.pow(.45, Math.abs(index - active));\n function activate(index: number) { setReturning(false); setActive(index); }\n function reset() { setReturning(true); setActive(null); }\n return <div className=\"mcd-attendees\" role=\"group\" aria-label={`Attendees: ${attendees.map(person => person.name).join(\", \")}`} onMouseLeave={reset}>\n {attendees.map((person, index) => <span key={`${person.name}-${index}`} className=\"mcd-avatar\" role=\"img\" aria-label={person.name} tabIndex={0} onMouseEnter={() => activate(index)} onFocus={() => activate(index)} onBlur={reset} data-returning={returning} style={{ \"--mcd-shift\": `${shift(index)}px`, \"--mcd-scale\": active === index ? 1.05 : 1, \"--mcd-cut-dy\": `${index < attendees.length - 1 ? shift(index + 1) - shift(index) : 0}px`, \"--mcd-avatar-color\": person.color ?? \"#c6b7d8\" } as React.CSSProperties}>\n {person.image ? <img src={person.image} alt=\"\" width={24} height={24} /> : <span className=\"mcd-initials\" aria-hidden=\"true\">{person.name.split(/\\s+/).map(part => part[0]).slice(0, 2).join(\"\")}</span>}\n </span>)}\n </div>;\n}\n\nexport function CalendarDayCard({ days = defaultDays, defaultSelectedDay = \"14\", onDayChange, onEventClick, theme = \"light\", className = \"\", style }: CalendarDayCardProps = {}) {\n const [selected, setSelected] = React.useState(defaultSelectedDay);\n const currentIndex = Math.max(0, days.findIndex(day => day.id === selected));\n const current = days[currentIndex];\n const id = React.useId();\n const tabs = React.useRef<(HTMLButtonElement | null)[]>([]);\n const dayStrip = React.useRef<HTMLDivElement>(null);\n const measured = React.useRef(false);\n const [pill, setPill] = React.useState({ left: 0, width: 0, animate: false });\n React.useLayoutEffect(() => {\n const tab = tabs.current[currentIndex];\n if (tab) setPill({ left: tab.offsetLeft, width: tab.offsetWidth, animate: measured.current });\n measured.current = true;\n }, [currentIndex, days]);\n React.useLayoutEffect(() => {\n const measure = () => {\n const tab = dayStrip.current?.querySelector<HTMLButtonElement>('[aria-selected=\"true\"]');\n if (tab) setPill({ left: tab.offsetLeft, width: tab.offsetWidth, animate: false });\n };\n const observer = typeof ResizeObserver === \"undefined\" ? undefined : new ResizeObserver(measure);\n if (dayStrip.current) observer?.observe(dayStrip.current);\n return () => observer?.disconnect();\n }, [days.length]);\n const [pressedDay, setPressedDay] = React.useState<number | null>(null);\n const pressStart = React.useRef(0);\n const pressTimer = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n React.useEffect(() => () => clearTimeout(pressTimer.current), []);\n function startPress(event: React.PointerEvent<HTMLButtonElement>, index: number) {\n if (event.pointerType === \"mouse\") return;\n clearTimeout(pressTimer.current);\n pressStart.current = performance.now();\n setPressedDay(index);\n event.currentTarget.setPointerCapture?.(event.pointerId);\n }\n function endPress() {\n pressTimer.current = setTimeout(() => setPressedDay(null), Math.max(0, 150 - (performance.now() - pressStart.current)));\n }\n function select(index: number, focus = false) {\n const day = days[index];\n if (!day) return;\n if (focus) tabs.current[index]?.focus();\n if (current?.id === day.id) return;\n setSelected(day.id);\n onDayChange?.(day);\n }\n function handleKey(event: React.KeyboardEvent<HTMLButtonElement>, index: number) {\n const next = event.key === \"ArrowRight\" ? (index + 1) % days.length : event.key === \"ArrowLeft\" ? (index - 1 + days.length) % days.length : event.key === \"Home\" ? 0 : event.key === \"End\" ? days.length - 1 : null;\n if (next !== null) { event.preventDefault(); select(next, true); }\n }\n return <section className={`mova-calendar ${className}`} data-theme={theme} style={style} aria-label=\"Calendar\">\n <style>{css}</style>\n <header className=\"mcd-head\"><h2><SoftText text={current?.weekday ?? \"Your calendar\"} /></h2><p className=\"mcd-meta\" aria-live=\"polite\" aria-atomic=\"true\">{current ? <><SoftText text={current.dateLabel} /><span> · </span><SoftText text={String(current.events.length)} className=\"mcd-number\" /><span>{current.events.length === 1 ? \" meeting\" : \" meetings\"}</span></> : \"No days available\"}</p></header>\n {!!days.length && <div ref={dayStrip} className=\"mcd-days\" role=\"tablist\" aria-label={`Week of ${days[0].dateLabel}`} style={{ \"--mcd-count\": days.length, \"--mcd-index\": currentIndex } as React.CSSProperties}>\n <span className=\"mcd-pill\" aria-hidden=\"true\" style={{ width: pill.width, transform: `translateX(${pill.left}px)`, transition: pill.animate ? undefined : \"none\" }} />\n {days.map((day, index) => <button type=\"button\" role=\"tab\" key={day.id} ref={element => { tabs.current[index] = element; }} id={`${id}-tab-${index}`} aria-selected={current?.id === day.id} aria-controls={`${id}-panel-${index}`} aria-label={`${day.weekday}, ${day.dateLabel}`} tabIndex={current?.id === day.id ? 0 : -1} data-pressed={pressedDay === index} onPointerDown={event => startPress(event, index)} onPointerUp={endPress} onPointerCancel={endPress} onKeyDown={event => handleKey(event, index)} onClick={() => select(index)}><span>{day.weekday.slice(0, 3)}</span><strong>{day.day}</strong></button>)}\n </div>}\n <div className=\"mcd-agenda\">\n {days.map((day, index) => <section className=\"mcd-page\" key={day.id} role=\"tabpanel\" aria-label={`${day.weekday} meetings`} id={`${id}-panel-${index}`} aria-labelledby={`${id}-tab-${index}`} aria-hidden={index !== currentIndex} inert={index !== currentIndex || undefined} data-active={index === currentIndex} style={{ \"--mcd-side\": index < currentIndex ? \"-8px\" : \"8px\" } as React.CSSProperties}>\n {day.events.length ? <ul>{day.events.map(event => <li className=\"mcd-event\" key={event.id} style={{ \"--mcd-event\": event.color ?? \"#1C5FFB\" } as React.CSSProperties}>\n {onEventClick ? <button type=\"button\" className=\"mcd-event-main\" onClick={() => onEventClick(event)}><span className=\"mcd-event-line\" aria-hidden=\"true\" /><span className=\"mcd-event-text\"><strong>{event.title}</strong><small><span>{event.time}</span>{event.location ? ` · ${event.location}` : \"\"}</small></span></button> : <div className=\"mcd-event-main\"><span className=\"mcd-event-line\" aria-hidden=\"true\" /><span className=\"mcd-event-text\"><strong>{event.title}</strong><small><span>{event.time}</span>{event.location ? ` · ${event.location}` : \"\"}</small></span></div>}\n {!!event.attendees?.length && <Attendees people={event.attendees} />}\n </li>)}</ul> : <p className=\"mcd-empty\">Nothing scheduled. Enjoy your day.</p>}\n </section>)}\n {!current && <p className=\"mcd-empty\">Nothing scheduled. Enjoy your day.</p>}\n </div>\n </section>;\n}\nconst css = `\n@property --mcd-cut-dy{syntax:'<length>';inherits:false;initial-value:0px}\n.mova-calendar{--mcd-bg:#fff;--mcd-fg:#0d0d0d;--mcd-muted:#6c6c6c;--mcd-track:#0000000a;--mcd-hover:#0000000a;--mcd-pill:#fff;--mcd-tint:7%;--mcd-pill-shadow:0 0 0 1px #0000000f,0 2px 6px #0000000d,0 1px 2px #0000000a;--mcd-ease:cubic-bezier(.22,1,.36,1);width:300px;max-width:100%;box-sizing:border-box;padding:24px;border-radius:24px;color:var(--mcd-fg);background:var(--mcd-bg);font:400 13px/20px \"Inter Variable\",Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;letter-spacing:0;font-optical-sizing:auto;font-feature-settings:'liga' 1,'calt' 1;-webkit-font-smoothing:antialiased;box-shadow:0 0 0 1px #0000000a,0 8px 32px -4px #0000000f,0 1px 3px #0000000a;display:flex;flex-direction:column;gap:16px}.mova-calendar[data-theme=dark]{--mcd-bg:#1d1d1d;--mcd-fg:#f2f2f2;--mcd-muted:rgba(202,202,202,.7);--mcd-track:#ffffff0a;--mcd-hover:rgba(255,255,255,.065);--mcd-pill:#ffffff1a;--mcd-tint:14%;--mcd-pill-shadow:0 1px 3px #0000003d,inset 0 0 0 1px #ffffff0f,inset 0 1px 0 #ffffff0f;color-scheme:dark}.mova-calendar *{box-sizing:border-box}.mova-calendar h2,.mova-calendar p,.mova-calendar ul{margin:0;padding:0}.mova-calendar button{font:inherit;letter-spacing:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}.mova-calendar button:focus-visible,.mcd-avatar:focus-visible{outline:2px solid var(--mcd-fg);outline-offset:2px}.mcd-head{display:flex;flex-direction:column;gap:4px}.mova-calendar h2{font-size:28px;line-height:34px;font-weight:500}.mcd-meta{display:flex;white-space:pre;font-size:12px;line-height:16px;color:var(--mcd-muted)}.mcd-number,.mcd-event small span{font-variant-numeric:tabular-nums}.mcd-soft{display:inline-grid;justify-items:start;transition:width 240ms var(--mcd-ease)}.mcd-soft>span{grid-area:1/1;white-space:pre;transition:filter 200ms ease-in-out,opacity 200ms ease-in-out}.mcd-soft[data-changing=true] .mcd-soft-new{opacity:0;filter:blur(2px)}.mcd-soft[data-swapping=true] .mcd-soft-old{opacity:0;filter:blur(2px)}.mcd-soft[data-swapping=true] .mcd-soft-new{opacity:1;filter:blur(0)}.mcd-days{position:relative;display:flex;align-items:center;gap:2px;padding:4px;border-radius:16px;background:var(--mcd-track)}.mcd-days button{position:relative;flex:1;min-width:0;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;z-index:1;transition:color 250ms var(--mcd-ease),background-color 250ms var(--mcd-ease),transform 150ms var(--mcd-ease)}.mcd-days button>span{font-size:12px;line-height:16px;color:var(--mcd-muted)}.mcd-days strong{font-size:15px;line-height:20px;font-weight:400;font-variant-numeric:tabular-nums}.mcd-days button:is(:active,[data-pressed=true]){transform:scale(.95)}.mcd-days button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--mcd-bg),0 0 0 4px var(--mcd-fg)}.mcd-pill{position:absolute;top:4px;left:0;height:52px;background:var(--mcd-pill);box-shadow:var(--mcd-pill-shadow);border-radius:12px;transition:transform 250ms var(--mcd-ease),width 250ms var(--mcd-ease);pointer-events:none}.mcd-agenda{display:grid;position:relative}.mcd-page{grid-area:1/1;min-width:0;opacity:0;pointer-events:none;transform:translateX(var(--mcd-side));filter:blur(3px);transition:opacity 250ms var(--mcd-ease),transform 250ms var(--mcd-ease),filter 250ms var(--mcd-ease)}.mcd-page[data-active=true]{opacity:1;pointer-events:auto;transform:translateX(0);filter:blur(0)}.mcd-page ul{list-style:none;display:flex;flex-direction:column;gap:8px}.mcd-event{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;border-radius:12px;background:color-mix(in srgb,var(--mcd-event) var(--mcd-tint),transparent)}.mcd-event-main{flex:1;min-width:0;display:flex;align-self:stretch;align-items:center;gap:12px;text-align:left;border-radius:4px}.mcd-event-line{flex:none;align-self:stretch;width:3px;border-radius:2px;background:var(--mcd-event)}.mcd-event-text{min-width:0;flex:1}.mcd-event strong{display:block;font-size:13px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mcd-event small{display:block;font-size:12px;line-height:16px;color:var(--mcd-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mcd-attendees{display:flex;align-items:center;flex:none;align-self:center}.mcd-avatar{display:flex;flex:none;width:24px;height:24px;border-radius:50%;transform-origin:center;transform:translateY(var(--mcd-shift,0px)) scale(var(--mcd-scale,1));transition:transform 320ms var(--mcd-ease),--mcd-cut-dy 320ms var(--mcd-ease)}.mcd-avatar[data-returning=true]{transition-timing-function:cubic-bezier(.34,3.85,.64,1)}.mcd-avatar+.mcd-avatar{margin-left:-6px}.mcd-avatar:not(:last-child){-webkit-mask:radial-gradient(58.333% 58.333% at 125% calc(50% + var(--mcd-cut-dy)),transparent calc(100% - .5px),#000 calc(100% + .5px));mask:radial-gradient(58.333% 58.333% at 125% calc(50% + var(--mcd-cut-dy)),transparent calc(100% - .5px),#000 calc(100% + .5px))}.mcd-avatar img{display:block;width:24px;height:24px;border-radius:50%;object-fit:cover;outline:1px solid #00000014;outline-offset:-1px}.mova-calendar[data-theme=dark] .mcd-avatar img{outline-color:#ffffff14}.mcd-initials{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:10px;line-height:1;background:var(--mcd-avatar-color);color:#25212b}.mcd-empty{font-size:12px;color:var(--mcd-muted);padding:8px 0!important;min-height:52px}@media(hover:hover) and (pointer:fine){.mcd-days button:not([aria-selected=true]):hover{background:var(--mcd-hover)}}@media(prefers-reduced-motion:reduce){.mova-calendar *{animation:none!important;transition:none!important}.mcd-days button:is(:active,[data-pressed=true]),.mcd-avatar{transform:none!important}.mcd-page{transform:none;filter:none}}\n`;\n"
20
19
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-arc-5",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-arc-5.tsx",
6
6
  "registryFile": "card-arc-5.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-arc-7",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-arc-7.tsx",
6
6
  "registryFile": "card-arc-7.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-carousel-mono",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-carousel-mono.tsx",
6
6
  "registryFile": "card-carousel-mono.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-carousel",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-carousel.tsx",
6
6
  "registryFile": "card-carousel.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-cascade-stagger",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-cascade-stagger.tsx",
6
6
  "registryFile": "card-cascade-stagger.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-corner-fan",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-corner-fan.tsx",
6
6
  "registryFile": "card-corner-fan.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-cover-flow-mono",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-cover-flow-mono.tsx",
6
6
  "registryFile": "card-cover-flow-mono.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-cover-flow",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-cover-flow.tsx",
6
6
  "registryFile": "card-cover-flow.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-deck-cascade",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-deck-cascade.tsx",
6
6
  "sourcePath": "components/css-animations/whimsical/ConceptTrios3.tsx",
7
7
  "registryFile": "card-deck-cascade.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-glance-preview",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-glance-preview.tsx",
6
6
  "sourcePath": "components/css-animations/yui-components/RedesignedUiTrios.tsx",
7
7
  "registryFile": "card-glance-preview.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-hover",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-hover.tsx",
6
6
  "sourcePath": "ui/hover/card-hover.tsx",
7
7
  "registryFile": "card-hover.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-linear-spread",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-linear-spread.tsx",
6
6
  "registryFile": "card-linear-spread.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-long-arc-5",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-long-arc-5.tsx",
6
6
  "registryFile": "card-long-arc-5.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-scatter-spread",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-scatter-spread.tsx",
6
6
  "registryFile": "card-scatter-spread.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-stack-peel",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-stack-peel.tsx",
6
6
  "sourcePath": "components/css-animations/whimsical/RedesignedPhysicsTrios.tsx",
7
7
  "registryFile": "card-stack-peel.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-stamp-arc",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-stamp-arc.tsx",
6
6
  "registryFile": "card-stamp-arc.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-time-machine-mono",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-time-machine-mono.tsx",
6
6
  "registryFile": "card-time-machine-mono.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-time-machine",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-time-machine.tsx",
6
6
  "registryFile": "card-time-machine.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "card-wheel-fan",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "card-wheel-fan.tsx",
6
6
  "registryFile": "card-wheel-fan.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "category-select",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "category-select.tsx",
6
6
  "sourcePath": "components/css-animations/yui-components/YuiUiKit1.tsx",
7
7
  "registryFile": "category-select.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "character-stagger",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "character-stagger.tsx",
6
6
  "sourcePath": "ui/text/character-stagger.tsx",
7
7
  "registryFile": "character-stagger.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "checkbox-draw",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "checkbox-draw.tsx",
6
6
  "registryFile": "checkbox-draw.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "checkmark-draw",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "checkmark-draw.tsx",
6
6
  "registryFile": "checkmark-draw.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "circle-toggle",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "circle-toggle.tsx",
6
6
  "registryFile": "circle-toggle.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "circuit-trace-draw",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "circuit-trace-draw.tsx",
6
6
  "sourcePath": "components/css-animations/whimsical/RedesignedPhysicsTrios.tsx",
7
7
  "registryFile": "circuit-trace-draw.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "circular-bars",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "circular-bars.tsx",
6
6
  "sourcePath": "ui/loading/circular-bars.tsx",
7
7
  "registryFile": "circular-bars.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "circular-create-button",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "circular-create-button.tsx",
6
6
  "registryFile": "circular-create-button.json",
7
7
  "exports": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "classic-spinner",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "classic-spinner.tsx",
6
6
  "sourcePath": "ui/loading/classic-spinner.tsx",
7
7
  "registryFile": "classic-spinner.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "classic-toggle",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "classic-toggle.tsx",
6
6
  "sourcePath": "ui/toggles/classic-toggle.tsx",
7
7
  "registryFile": "classic-toggle.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "clock-spinner",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "clock-spinner.tsx",
6
6
  "sourcePath": "ui/loading/clock-spinner.tsx",
7
7
  "registryFile": "clock-spinner.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "comet-spinner",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "comet-spinner.tsx",
6
6
  "sourcePath": "ui/loading/comet-spinner.tsx",
7
7
  "registryFile": "comet-spinner.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "compass-needle-deflect",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "compass-needle-deflect.tsx",
6
6
  "sourcePath": "components/css-animations/whimsical/RedesignedPhysicsTrios.tsx",
7
7
  "registryFile": "compass-needle-deflect.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "concentric-pulse",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "concentric-pulse.tsx",
6
6
  "sourcePath": "ui/loading/concentric-pulse.tsx",
7
7
  "registryFile": "concentric-pulse.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "concentric-ring",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "concentric-ring.tsx",
6
6
  "sourcePath": "ui/loading/concentric-ring.tsx",
7
7
  "registryFile": "concentric-ring.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "concentric-squares",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "concentric-squares.tsx",
6
6
  "sourcePath": "ui/loading/concentric-squares.tsx",
7
7
  "registryFile": "concentric-squares.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "context-menu",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "context-menu.tsx",
6
6
  "sourcePath": "components/css-animations/yui-components/YuiUiKit2.tsx",
7
7
  "registryFile": "context-menu.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "conveyor-loop",
3
3
  "tier": "free",
4
- "version": "0.4.7",
4
+ "version": "0.4.8",
5
5
  "file": "conveyor-loop.tsx",
6
6
  "sourcePath": "ui/loading/conveyor-loop.tsx",
7
7
  "registryFile": "conveyor-loop.json",