motion-ui-skill 2.0.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 (886) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +637 -0
  3. package/SKILL.md +529 -0
  4. package/agents/openai.yaml +8 -0
  5. package/bin/index.mjs +242 -0
  6. package/bin/installer.mjs +457 -0
  7. package/bin/updater.mjs +207 -0
  8. package/catalog.json +8120 -0
  9. package/components/agents/agent-activity/activity-row.tsx +242 -0
  10. package/components/agents/agent-activity/index.tsx +287 -0
  11. package/components/agents/agent-activity/types.ts +106 -0
  12. package/components/agents/agent-code.tsx +171 -0
  13. package/components/agents/agent-disclosure.tsx +55 -0
  14. package/components/agents/ai-sidebar.tsx +981 -0
  15. package/components/agents/approval-card/index.tsx +467 -0
  16. package/components/agents/approval-card/types.ts +56 -0
  17. package/components/agents/chat-app.tsx +97 -0
  18. package/components/agents/citations.tsx +288 -0
  19. package/components/agents/code-block.tsx +202 -0
  20. package/components/agents/file-diff.tsx +288 -0
  21. package/components/agents/image-generation.tsx +388 -0
  22. package/components/agents/loading-states/agent-progress.tsx +105 -0
  23. package/components/agents/loading-states/index.ts +13 -0
  24. package/components/agents/loading-states/reasoning-text.tsx +224 -0
  25. package/components/agents/loading-states/thinking-shimmer.tsx +27 -0
  26. package/components/agents/message-bubble.tsx +369 -0
  27. package/components/agents/message-context.tsx +9 -0
  28. package/components/agents/message-scroller.tsx +487 -0
  29. package/components/agents/message.tsx +272 -0
  30. package/components/agents/prompt-input.tsx +327 -0
  31. package/components/agents/streaming-response.tsx +263 -0
  32. package/components/agents/todo-list.tsx +387 -0
  33. package/components/agents/tool-approval.tsx +276 -0
  34. package/components/agents/tool-result.tsx +352 -0
  35. package/components/app/icons.tsx +19 -0
  36. package/components/audio/music-player-card.tsx +146 -0
  37. package/components/audio/music-playlist-card.tsx +172 -0
  38. package/components/audio/now-playing-bar.tsx +116 -0
  39. package/components/background-gradient/arc-bands-background.tsx +54 -0
  40. package/components/background-gradient/aurora-background.tsx +49 -0
  41. package/components/background-gradient/cherry-petal-background.tsx +50 -0
  42. package/components/background-gradient/coral-glow-background.tsx +47 -0
  43. package/components/background-gradient/dark-arc-bands-background.tsx +52 -0
  44. package/components/background-gradient/dark-aurora-background.tsx +52 -0
  45. package/components/background-gradient/dark-carbon-spotlight-background.tsx +47 -0
  46. package/components/background-gradient/dark-ember-background.tsx +47 -0
  47. package/components/background-gradient/dark-ink-field-background.tsx +46 -0
  48. package/components/background-gradient/dark-midnight-mesh-background.tsx +61 -0
  49. package/components/background-gradient/dark-rose-noir-background.tsx +52 -0
  50. package/components/background-gradient/dark-teal-depth-background.tsx +52 -0
  51. package/components/background-gradient/frost-mesh-background.tsx +56 -0
  52. package/components/background-gradient/halftone-pop-background.tsx +52 -0
  53. package/components/background-gradient/honey-ember-background.tsx +47 -0
  54. package/components/background-gradient/ink-wash-background.tsx +49 -0
  55. package/components/background-gradient/linen-weave-background.tsx +47 -0
  56. package/components/background-gradient/mint-lagoon-background.tsx +47 -0
  57. package/components/background-gradient/paper-fold-background.tsx +52 -0
  58. package/components/background-gradient/rain-prism-background.tsx +52 -0
  59. package/components/background-gradient/sand-drift-background.tsx +47 -0
  60. package/components/background-gradient/soft-spotlight-background.tsx +47 -0
  61. package/components/background-gradient/sunrise-horizon-background.tsx +51 -0
  62. package/components/background-gradient/sunset-bloom-background.tsx +47 -0
  63. package/components/background-gradient/terrazzo-fragment-background.tsx +53 -0
  64. package/components/background-gradient/tropical-tide-background.tsx +47 -0
  65. package/components/background-pattern/diagonal-box-pattern.tsx +29 -0
  66. package/components/background-pattern/dot-grid-pattern.tsx +29 -0
  67. package/components/background-pattern/fine-grain-pattern.tsx +39 -0
  68. package/components/background-pattern/graph-paper-pattern.tsx +29 -0
  69. package/components/background-pattern/line-grid-pattern.tsx +39 -0
  70. package/components/background-pattern/reverse-diagonal-box-pattern.tsx +30 -0
  71. package/components/buttons/add-to-cart-button.tsx +190 -0
  72. package/components/buttons/bookmark-save-button.tsx +105 -0
  73. package/components/buttons/cinder-latch-button.tsx +80 -0
  74. package/components/buttons/copy-button.tsx +155 -0
  75. package/components/buttons/depth-outline-button.tsx +72 -0
  76. package/components/buttons/dimple-switch.tsx +114 -0
  77. package/components/buttons/download-button.tsx +186 -0
  78. package/components/buttons/follow-button.tsx +98 -0
  79. package/components/buttons/hold-to-delete-button.tsx +205 -0
  80. package/components/buttons/inset-button.tsx +82 -0
  81. package/components/buttons/like-button.tsx +135 -0
  82. package/components/buttons/linen-tab-button.tsx +92 -0
  83. package/components/buttons/prism-depth-button.tsx +90 -0
  84. package/components/buttons/quantity-stepper-button.tsx +104 -0
  85. package/components/buttons/segmented-toggle-button.tsx +134 -0
  86. package/components/buttons/sheen-pill-button.tsx +127 -0
  87. package/components/buttons/slate-chip-switch.tsx +94 -0
  88. package/components/buttons/slide-to-confirm-button.tsx +163 -0
  89. package/components/buttons/soft-pill-button.tsx +86 -0
  90. package/components/buttons/soft-ui-button.tsx +59 -0
  91. package/components/buttons/three-d-button.tsx +99 -0
  92. package/components/buttons/three-d-icon-button.tsx +88 -0
  93. package/components/calendar/booking-slot-calendar.tsx +315 -0
  94. package/components/calendar/date-range-picker-card.tsx +216 -0
  95. package/components/calendar/event-countdown-card.tsx +105 -0
  96. package/components/calendar/month-picker-calendar.tsx +183 -0
  97. package/components/calendar/week-strip-calendar.tsx +182 -0
  98. package/components/contact/copy-email.tsx +94 -0
  99. package/components/docks/Icons.tsx +222 -0
  100. package/components/docks/app-dock.tsx +111 -0
  101. package/components/docks/editor-tool-dock.tsx +113 -0
  102. package/components/docks/mac-dock.tsx +144 -0
  103. package/components/docks/presence-dock.tsx +178 -0
  104. package/components/docks/spotlight-bar.tsx +188 -0
  105. package/components/dropdowns/file-menu-dropdown.tsx +192 -0
  106. package/components/dropdowns/filter-sort-dropdown.tsx +189 -0
  107. package/components/dropdowns/kebab-actions-dropdown.tsx +195 -0
  108. package/components/dropdowns/notification-dropdown.tsx +235 -0
  109. package/components/dropdowns/share-menu-dropdown.tsx +197 -0
  110. package/components/dropdowns/user-menu-dropdown.tsx +251 -0
  111. package/components/dropdowns/workspace-switcher-dropdown.tsx +248 -0
  112. package/components/event/event-ticket-card.tsx +116 -0
  113. package/components/files/ink-stamp-document-card.tsx +88 -0
  114. package/components/files/stacked-folder-card.tsx +176 -0
  115. package/components/folder/folder-tab-card.tsx +123 -0
  116. package/components/forms/contact-form.tsx +417 -0
  117. package/components/forms/forgot-password-form.tsx +264 -0
  118. package/components/forms/login-form.tsx +342 -0
  119. package/components/forms/newsletter-form.tsx +212 -0
  120. package/components/forms/signup-form.tsx +487 -0
  121. package/components/frames/circle-cut-frame.tsx +198 -0
  122. package/components/frames/hard-shadow-polaroid-frame.tsx +158 -0
  123. package/components/frames/sticky-note-polaroid-frame.tsx +230 -0
  124. package/components/frames/transform-box-frame.tsx +287 -0
  125. package/components/frames/transform-plus-frame.tsx +308 -0
  126. package/components/gallery/film-strip-card.tsx +103 -0
  127. package/components/gallery/gallery-grid-card.tsx +106 -0
  128. package/components/gallery/gallery-wall-card.tsx +71 -0
  129. package/components/gallery/glass-overlay-image-card.tsx +156 -0
  130. package/components/gallery/museum-placard-card.tsx +105 -0
  131. package/components/gallery/photo-album-card.tsx +114 -0
  132. package/components/gallery/photo-contact-sheet-card.tsx +71 -0
  133. package/components/gallery/polaroid-image-card.tsx +81 -0
  134. package/components/gallery/slow-living-polaroid-card.tsx +88 -0
  135. package/components/gallery/stamp-postcard-card.tsx +78 -0
  136. package/components/inputs/checkbox-field-input.tsx +148 -0
  137. package/components/inputs/combobox-field-input.tsx +466 -0
  138. package/components/inputs/date-field-input.tsx +472 -0
  139. package/components/inputs/file-upload-field-input.tsx +578 -0
  140. package/components/inputs/floating-label-field-input.tsx +206 -0
  141. package/components/inputs/input-group-field.tsx +132 -0
  142. package/components/inputs/password-field-input.tsx +125 -0
  143. package/components/inputs/phone-field-input.tsx +157 -0
  144. package/components/inputs/radio-group-field-input.tsx +220 -0
  145. package/components/inputs/search-input.tsx +163 -0
  146. package/components/inputs/select-field-input.tsx +416 -0
  147. package/components/inputs/switch-field-input.tsx +179 -0
  148. package/components/inputs/text-field-input.tsx +89 -0
  149. package/components/inputs/textarea-field-input.tsx +152 -0
  150. package/components/loaders/apple-hello-loader.tsx +86 -0
  151. package/components/loaders/spin-loader.tsx +51 -0
  152. package/components/loaders/text-loader.tsx +148 -0
  153. package/components/mockups/apple-ipod-mockup-card.tsx +155 -0
  154. package/components/mockups/apple-watch-mockup-card.tsx +278 -0
  155. package/components/mockups/browser-mockup-card.tsx +109 -0
  156. package/components/mockups/laptop-mockup-card.tsx +118 -0
  157. package/components/mockups/phone-mockup-card.tsx +210 -0
  158. package/components/mockups/tablet-mockup-card.tsx +212 -0
  159. package/components/motion/action-sheet.tsx +218 -0
  160. package/components/motion/action-swap-roll.tsx +32 -0
  161. package/components/motion/action-swap.tsx +340 -0
  162. package/components/motion/adaptive-stepper.tsx +442 -0
  163. package/components/motion/animated-badge.tsx +213 -0
  164. package/components/motion/animated-number.tsx +50 -0
  165. package/components/motion/animated-sidebar.tsx +1174 -0
  166. package/components/motion/animated-toast-stack.tsx +503 -0
  167. package/components/motion/aspect-ratio.tsx +55 -0
  168. package/components/motion/attachment-upload.tsx +1080 -0
  169. package/components/motion/audio-player.tsx +266 -0
  170. package/components/motion/autocomplete.tsx +183 -0
  171. package/components/motion/availability-scheduler/copy-menu.tsx +119 -0
  172. package/components/motion/availability-scheduler/day-row.tsx +231 -0
  173. package/components/motion/availability-scheduler/icon-button.tsx +46 -0
  174. package/components/motion/availability-scheduler/index.tsx +154 -0
  175. package/components/motion/availability-scheduler/time-select.tsx +49 -0
  176. package/components/motion/availability-scheduler/types.ts +189 -0
  177. package/components/motion/avatar-group.tsx +154 -0
  178. package/components/motion/bloom-menu.tsx +216 -0
  179. package/components/motion/bottom-sheet.tsx +249 -0
  180. package/components/motion/bounce-sidebar.tsx +266 -0
  181. package/components/motion/bouncy-accordion.tsx +325 -0
  182. package/components/motion/breadcrumb.tsx +122 -0
  183. package/components/motion/button/base.tsx +189 -0
  184. package/components/motion/button/index.tsx +13 -0
  185. package/components/motion/button/magnetic.tsx +25 -0
  186. package/components/motion/button/metallic.tsx +100 -0
  187. package/components/motion/button/stateful.tsx +237 -0
  188. package/components/motion/card-folder.tsx +345 -0
  189. package/components/motion/card-resize.tsx +229 -0
  190. package/components/motion/cascader.tsx +279 -0
  191. package/components/motion/center-morph-modal.tsx +366 -0
  192. package/components/motion/checkbox.tsx +123 -0
  193. package/components/motion/chip.tsx +121 -0
  194. package/components/motion/chromatic-text-reveal.tsx +203 -0
  195. package/components/motion/collapsible.tsx +108 -0
  196. package/components/motion/color-picker.tsx +206 -0
  197. package/components/motion/combobox/content.tsx +163 -0
  198. package/components/motion/combobox/context.tsx +359 -0
  199. package/components/motion/combobox/list.tsx +222 -0
  200. package/components/motion/combobox/trigger.tsx +191 -0
  201. package/components/motion/combobox/use-active-option.ts +130 -0
  202. package/components/motion/combobox.tsx +33 -0
  203. package/components/motion/command-palette.tsx +381 -0
  204. package/components/motion/confetti.tsx +128 -0
  205. package/components/motion/context-menu.tsx +790 -0
  206. package/components/motion/copy-button.tsx +103 -0
  207. package/components/motion/cylinder-carousel.tsx +459 -0
  208. package/components/motion/date-range-picker.tsx +218 -0
  209. package/components/motion/digit-swap.tsx +125 -0
  210. package/components/motion/dock.tsx +113 -0
  211. package/components/motion/drawer.tsx +108 -0
  212. package/components/motion/dynamic-island.tsx +221 -0
  213. package/components/motion/error-shake.tsx +66 -0
  214. package/components/motion/event-calendar.tsx +224 -0
  215. package/components/motion/expandable-action-bar.tsx +412 -0
  216. package/components/motion/expandable-control.tsx +254 -0
  217. package/components/motion/expandable-tabs.tsx +444 -0
  218. package/components/motion/expanding-arrow-button.tsx +171 -0
  219. package/components/motion/feedback-widget.tsx +473 -0
  220. package/components/motion/file-tree.tsx +429 -0
  221. package/components/motion/file-upload.tsx +606 -0
  222. package/components/motion/filter-builder.tsx +283 -0
  223. package/components/motion/frame.tsx +116 -0
  224. package/components/motion/gantt.tsx +156 -0
  225. package/components/motion/glow-button.tsx +101 -0
  226. package/components/motion/haptic-pressable.tsx +107 -0
  227. package/components/motion/hold-action-button.tsx +279 -0
  228. package/components/motion/hover-card.tsx +118 -0
  229. package/components/motion/icon-stack.tsx +138 -0
  230. package/components/motion/infinite-masonry.tsx +349 -0
  231. package/components/motion/input.tsx +242 -0
  232. package/components/motion/kanban.tsx +255 -0
  233. package/components/motion/kbd.tsx +127 -0
  234. package/components/motion/knockout-bracket.tsx +909 -0
  235. package/components/motion/knockout-wheel.tsx +1112 -0
  236. package/components/motion/liquid.tsx +351 -0
  237. package/components/motion/loader.tsx +616 -0
  238. package/components/motion/magnet-dock.tsx +117 -0
  239. package/components/motion/magnetic.tsx +50 -0
  240. package/components/motion/marquee.tsx +66 -0
  241. package/components/motion/metric-card.tsx +116 -0
  242. package/components/motion/morphing-modal.tsx +160 -0
  243. package/components/motion/morphing-search.tsx +643 -0
  244. package/components/motion/morphing-tabs.tsx +940 -0
  245. package/components/motion/multi-select/content.tsx +164 -0
  246. package/components/motion/multi-select/context.tsx +381 -0
  247. package/components/motion/multi-select/index.tsx +33 -0
  248. package/components/motion/multi-select/list.tsx +239 -0
  249. package/components/motion/multi-select/trigger.tsx +262 -0
  250. package/components/motion/not-found/glitch.tsx +107 -0
  251. package/components/motion/not-found/index.tsx +11 -0
  252. package/components/motion/not-found/magnetic.tsx +57 -0
  253. package/components/motion/not-found/shared.tsx +96 -0
  254. package/components/motion/not-found/spotlight.tsx +86 -0
  255. package/components/motion/not-found/stacked.tsx +77 -0
  256. package/components/motion/not-found/terminal.tsx +83 -0
  257. package/components/motion/notification-stack.tsx +380 -0
  258. package/components/motion/number-field.tsx +178 -0
  259. package/components/motion/number-ticker.tsx +185 -0
  260. package/components/motion/otp-input.tsx +392 -0
  261. package/components/motion/overflow-actions.tsx +375 -0
  262. package/components/motion/page-transition.tsx +92 -0
  263. package/components/motion/pagination.tsx +163 -0
  264. package/components/motion/parallax.tsx +64 -0
  265. package/components/motion/password-input.tsx +165 -0
  266. package/components/motion/phone-input.tsx +181 -0
  267. package/components/motion/popover-morph.tsx +317 -0
  268. package/components/motion/popover-position.ts +86 -0
  269. package/components/motion/popover.tsx +694 -0
  270. package/components/motion/prediction-market.tsx +682 -0
  271. package/components/motion/preview-rail.tsx +390 -0
  272. package/components/motion/progress-ring.tsx +115 -0
  273. package/components/motion/project-folder.tsx +418 -0
  274. package/components/motion/pull-to-refresh.tsx +522 -0
  275. package/components/motion/radio.tsx +148 -0
  276. package/components/motion/range-slider.tsx +93 -0
  277. package/components/motion/rating.tsx +171 -0
  278. package/components/motion/reorder-grid.tsx +123 -0
  279. package/components/motion/resizable-panel.tsx +160 -0
  280. package/components/motion/scroll-progress.tsx +127 -0
  281. package/components/motion/scroll-reveal.tsx +60 -0
  282. package/components/motion/scroll-to.tsx +48 -0
  283. package/components/motion/segmented-control.tsx +130 -0
  284. package/components/motion/segmented-progress.tsx +128 -0
  285. package/components/motion/select.tsx +440 -0
  286. package/components/motion/shader-background.tsx +134 -0
  287. package/components/motion/shared-layout-bg.tsx +151 -0
  288. package/components/motion/signup-form.tsx +467 -0
  289. package/components/motion/slide-action-button.tsx +203 -0
  290. package/components/motion/smooth-scroll.tsx +264 -0
  291. package/components/motion/sortable-list.tsx +98 -0
  292. package/components/motion/speed-dial.tsx +144 -0
  293. package/components/motion/split-text.tsx +115 -0
  294. package/components/motion/spotlight-card.tsx +89 -0
  295. package/components/motion/stepper.tsx +127 -0
  296. package/components/motion/success-check.tsx +142 -0
  297. package/components/motion/swap/constants.ts +2 -0
  298. package/components/motion/swap/controls.tsx +201 -0
  299. package/components/motion/swap/data.ts +186 -0
  300. package/components/motion/swap/field.tsx +115 -0
  301. package/components/motion/swap/quote-row.tsx +46 -0
  302. package/components/motion/swap/token-badges.tsx +83 -0
  303. package/components/motion/swap/token-picker.tsx +219 -0
  304. package/components/motion/swap/types.ts +20 -0
  305. package/components/motion/swap/utils.ts +28 -0
  306. package/components/motion/swap.tsx +182 -0
  307. package/components/motion/swipeable-list.tsx +507 -0
  308. package/components/motion/switch.tsx +96 -0
  309. package/components/motion/table/editable-cell.tsx +22 -0
  310. package/components/motion/table/index.tsx +431 -0
  311. package/components/motion/table/row-handle.tsx +81 -0
  312. package/components/motion/table/skeleton-rows.tsx +39 -0
  313. package/components/motion/table/table-header.tsx +344 -0
  314. package/components/motion/table/table-menu.tsx +129 -0
  315. package/components/motion/table/types.ts +86 -0
  316. package/components/motion/table/use-column-reorder.ts +105 -0
  317. package/components/motion/table/use-column-resize.ts +81 -0
  318. package/components/motion/table/use-column-sort.ts +64 -0
  319. package/components/motion/table/use-row-selection.ts +59 -0
  320. package/components/motion/table/utils.ts +33 -0
  321. package/components/motion/tabs.tsx +207 -0
  322. package/components/motion/text-cascade.tsx +22 -0
  323. package/components/motion/text-reveal.tsx +143 -0
  324. package/components/motion/text-scramble.tsx +84 -0
  325. package/components/motion/text-shimmer.tsx +34 -0
  326. package/components/motion/text-swap.tsx +56 -0
  327. package/components/motion/theme-toggle.tsx +210 -0
  328. package/components/motion/tilt-card.tsx +68 -0
  329. package/components/motion/timeline.tsx +236 -0
  330. package/components/motion/toggle-group.tsx +128 -0
  331. package/components/motion/tooltip.tsx +297 -0
  332. package/components/motion/tree-view.tsx +200 -0
  333. package/components/motion/wallet-card/account-avatar.tsx +21 -0
  334. package/components/motion/wallet-card/account-switcher.tsx +199 -0
  335. package/components/motion/wallet-card/actions.tsx +59 -0
  336. package/components/motion/wallet-card/balance-delta.tsx +69 -0
  337. package/components/motion/wallet-card/constants.ts +18 -0
  338. package/components/motion/wallet-card/copy-button.tsx +58 -0
  339. package/components/motion/wallet-card/index.tsx +151 -0
  340. package/components/motion/wallet-card/search-bar.tsx +198 -0
  341. package/components/motion/wallet-card/types.ts +34 -0
  342. package/components/motion/wallet-card/utils.ts +9 -0
  343. package/components/motion/wheel-picker.tsx +610 -0
  344. package/components/notifications/apple-notification-banner.tsx +155 -0
  345. package/components/notifications/calendar-reminder-notification-banner.tsx +138 -0
  346. package/components/notifications/chat-bubble-notification-banner.tsx +136 -0
  347. package/components/notifications/delivery-notification-banner.tsx +126 -0
  348. package/components/notifications/deploy-notification-banner.tsx +140 -0
  349. package/components/notifications/email-notification-banner.tsx +148 -0
  350. package/components/notifications/incoming-call-notification-banner.tsx +144 -0
  351. package/components/notifications/payment-notification-banner.tsx +137 -0
  352. package/components/notifications/system-alert-banner.tsx +137 -0
  353. package/components/notifications/toast-notification-banner.tsx +130 -0
  354. package/components/others/progress-ring-card.tsx +217 -0
  355. package/components/others/stacked-cards-effect.tsx +62 -0
  356. package/components/others/terminal-log-card.tsx +107 -0
  357. package/components/others/thermal-receipt-card.tsx +132 -0
  358. package/components/others/weather-snapshot-card.tsx +124 -0
  359. package/components/otp/otp-boxed-input.tsx +482 -0
  360. package/components/otp/otp-underline-input.tsx +356 -0
  361. package/components/previews/agents/agent-activity.preview.tsx +136 -0
  362. package/components/previews/agents/ai-sidebar.preview.tsx +236 -0
  363. package/components/previews/agents/chat-app-usage.tsx +689 -0
  364. package/components/previews/agents/chat-app.preview.tsx +130 -0
  365. package/components/previews/agents/chat-preview.tsx +285 -0
  366. package/components/previews/agents/citations.preview.tsx +78 -0
  367. package/components/previews/agents/code-block.preview.tsx +67 -0
  368. package/components/previews/agents/file-diff.preview.tsx +64 -0
  369. package/components/previews/agents/image-generation.preview.tsx +117 -0
  370. package/components/previews/agents/message-bubble.preview.tsx +12 -0
  371. package/components/previews/agents/message-scroller.preview.tsx +70 -0
  372. package/components/previews/agents/message.preview.tsx +14 -0
  373. package/components/previews/agents/prompt-input.preview.tsx +145 -0
  374. package/components/previews/agents/streaming-response.preview.tsx +156 -0
  375. package/components/previews/agents/todo-list.preview.tsx +73 -0
  376. package/components/previews/agents/tool-approval.preview.tsx +80 -0
  377. package/components/previews/agents/use-tool-result-demo.ts +28 -0
  378. package/components/previews/blocks/availability-scheduler.preview.tsx +11 -0
  379. package/components/previews/blocks/bloom-menu.preview.tsx +11 -0
  380. package/components/previews/blocks/card-folder.preview.tsx +105 -0
  381. package/components/previews/blocks/command-palette.preview.tsx +40 -0
  382. package/components/previews/blocks/dynamic-island.preview.tsx +150 -0
  383. package/components/previews/blocks/expandable-action-bar.preview.tsx +136 -0
  384. package/components/previews/blocks/expandable-tabs.preview.tsx +136 -0
  385. package/components/previews/blocks/feedback-widget.preview.tsx +34 -0
  386. package/components/previews/blocks/file-upload.preview.tsx +175 -0
  387. package/components/previews/blocks/infinite-masonry.preview.tsx +145 -0
  388. package/components/previews/blocks/knockout-bracket.preview.tsx +43 -0
  389. package/components/previews/blocks/morphing-search.preview.tsx +59 -0
  390. package/components/previews/blocks/morphing-tabs.preview.tsx +91 -0
  391. package/components/previews/blocks/notification-stack.preview.tsx +39 -0
  392. package/components/previews/blocks/otp-input.preview.tsx +29 -0
  393. package/components/previews/blocks/overflow-actions.preview.tsx +51 -0
  394. package/components/previews/blocks/prediction-market.preview.tsx +41 -0
  395. package/components/previews/blocks/project-folder.preview.tsx +41 -0
  396. package/components/previews/blocks/signup-form.preview.tsx +36 -0
  397. package/components/previews/blocks/swap.preview.tsx +11 -0
  398. package/components/previews/blocks/swipeable-list.preview.tsx +149 -0
  399. package/components/previews/blocks/wallet-card.preview.tsx +36 -0
  400. package/components/previews/motion/action-swap.preview.tsx +82 -0
  401. package/components/previews/motion/adaptive-stepper.preview.tsx +20 -0
  402. package/components/previews/motion/animated-badge.preview.tsx +43 -0
  403. package/components/previews/motion/animated-sidebar.preview.tsx +269 -0
  404. package/components/previews/motion/animated-toast-stack.preview.tsx +151 -0
  405. package/components/previews/motion/bottom-sheet.preview.tsx +35 -0
  406. package/components/previews/motion/bounce-sidebar.preview.tsx +30 -0
  407. package/components/previews/motion/bouncy-accordion.preview.tsx +66 -0
  408. package/components/previews/motion/center-morph-modal.preview.tsx +75 -0
  409. package/components/previews/motion/checkbox.preview.tsx +26 -0
  410. package/components/previews/motion/combobox.preview.tsx +119 -0
  411. package/components/previews/motion/context-menu.preview.tsx +144 -0
  412. package/components/previews/motion/cylinder-carousel.preview.tsx +96 -0
  413. package/components/previews/motion/dock.preview.tsx +46 -0
  414. package/components/previews/motion/drawer.preview.tsx +46 -0
  415. package/components/previews/motion/expandable-control.preview.tsx +27 -0
  416. package/components/previews/motion/expanding-arrow-button.preview.tsx +11 -0
  417. package/components/previews/motion/file-tree.preview.tsx +67 -0
  418. package/components/previews/motion/input.preview.tsx +55 -0
  419. package/components/previews/motion/loader.preview.tsx +36 -0
  420. package/components/previews/motion/marquee.preview.tsx +22 -0
  421. package/components/previews/motion/morphing-modal.preview.tsx +184 -0
  422. package/components/previews/motion/multi-select.preview.tsx +73 -0
  423. package/components/previews/motion/number.preview.tsx +61 -0
  424. package/components/previews/motion/popover.preview.tsx +53 -0
  425. package/components/previews/motion/preview-rail.preview.tsx +108 -0
  426. package/components/previews/motion/pull-to-refresh.preview.tsx +117 -0
  427. package/components/previews/motion/radio.preview.tsx +17 -0
  428. package/components/previews/motion/range-slider.preview.tsx +19 -0
  429. package/components/previews/motion/select.preview.tsx +29 -0
  430. package/components/previews/motion/shader-background.preview.tsx +308 -0
  431. package/components/previews/motion/shared-layout-bg.preview.tsx +33 -0
  432. package/components/previews/motion/switch.preview.tsx +15 -0
  433. package/components/previews/motion/table.preview.tsx +140 -0
  434. package/components/previews/motion/tabs.preview.tsx +49 -0
  435. package/components/previews/motion/text-animation.preview.tsx +63 -0
  436. package/components/previews/motion/theme-toggle.preview.tsx +28 -0
  437. package/components/previews/motion/tilt-card.preview.tsx +15 -0
  438. package/components/previews/motion/tooltip.preview.tsx +34 -0
  439. package/components/previews/motion/wheel-picker.preview.tsx +91 -0
  440. package/components/pricing/retail-price-tag-card.tsx +104 -0
  441. package/components/pricing/toggle-pricing-cards.tsx +209 -0
  442. package/components/profile/contact-profile-card.tsx +100 -0
  443. package/components/profile/editorial-staff-profile-card.tsx +79 -0
  444. package/components/profile/team-member-profile-grid.tsx +159 -0
  445. package/components/profile/user-profile-card.tsx +125 -0
  446. package/components/resources/resource-links-panel.tsx +176 -0
  447. package/components/socials/discord-chat-card.tsx +157 -0
  448. package/components/socials/facebook-post-card.tsx +198 -0
  449. package/components/socials/github-contribution.tsx +716 -0
  450. package/components/socials/github-repo-card.tsx +111 -0
  451. package/components/socials/instagram-post-card.tsx +204 -0
  452. package/components/socials/linked-in-post-card.tsx +213 -0
  453. package/components/socials/linked-in-profile-card.tsx +173 -0
  454. package/components/socials/threads-post-card.tsx +162 -0
  455. package/components/socials/twitter-post-card.tsx +184 -0
  456. package/components/socials/twitter-profile-card.tsx +180 -0
  457. package/components/system/loaders/index.ts +1 -0
  458. package/components/system/loaders/page-loader-overlay.tsx +16 -0
  459. package/components/table/customers-table.tsx +146 -0
  460. package/components/table/orders-table.tsx +195 -0
  461. package/components/table/recent-transactions-table.tsx +125 -0
  462. package/components/table/tasks-table.tsx +163 -0
  463. package/components/table/team-members-table.tsx +155 -0
  464. package/components/table/users-select-table.tsx +184 -0
  465. package/components/text/cafe-menu-board-card.tsx +101 -0
  466. package/components/text/cinema-ticket-card.tsx +99 -0
  467. package/components/text/daily-motivation-card.tsx +80 -0
  468. package/components/text/denim-product-editorial-card.tsx +101 -0
  469. package/components/text/drop-cap-editorial-card.tsx +54 -0
  470. package/components/text/editorial-quote-card.tsx +98 -0
  471. package/components/text/journal-writing-card.tsx +131 -0
  472. package/components/text/keyboard-shortcuts-card.tsx +92 -0
  473. package/components/text/magazine-cover-card.tsx +109 -0
  474. package/components/text/notepad-card.tsx +95 -0
  475. package/components/travel/flight-boarding-card.tsx +177 -0
  476. package/components/travel/travel-postcard-card.tsx +96 -0
  477. package/components/underlines/annotated-text-showcase.tsx +37 -0
  478. package/components/underlines/annotated-text.tsx +471 -0
  479. package/components/users/credit-card-glass.tsx +113 -0
  480. package/components/users/team-member-card.tsx +50 -0
  481. package/components/users/testimonial-card.tsx +239 -0
  482. package/components/wallet/wallet-pass-card.tsx +220 -0
  483. package/components/widgets/analog-clock-widget.tsx +203 -0
  484. package/components/widgets/audio-recorder-widget.tsx +87 -0
  485. package/components/widgets/battery-face-widget.tsx +152 -0
  486. package/components/widgets/blob-profile.tsx +64 -0
  487. package/components/widgets/bluetooth-face-widget.tsx +125 -0
  488. package/components/widgets/compass-widget.tsx +296 -0
  489. package/components/widgets/daily-activity-calendar-widget.tsx +133 -0
  490. package/components/widgets/dnd-face-widget.tsx +129 -0
  491. package/components/widgets/electric-scooter-widget.tsx +88 -0
  492. package/components/widgets/flight-arrival-widget.tsx +76 -0
  493. package/components/widgets/focus-breath-widget.tsx +71 -0
  494. package/components/widgets/heart-rate-widget.tsx +93 -0
  495. package/components/widgets/hydration-widget.tsx +109 -0
  496. package/components/widgets/ios-calendar-widget.tsx +87 -0
  497. package/components/widgets/ios-digital-clock-widget.tsx +192 -0
  498. package/components/widgets/ios-earbuds-widget.tsx +120 -0
  499. package/components/widgets/ios-map-location-widget.tsx +133 -0
  500. package/components/widgets/minimal-agenda-widget.tsx +123 -0
  501. package/components/widgets/pomodoro-widget.tsx +155 -0
  502. package/components/widgets/recorder-face-widget.tsx +146 -0
  503. package/components/widgets/ride-pickup-widget.tsx +72 -0
  504. package/components/widgets/sleep-score-widget.tsx +107 -0
  505. package/components/widgets/step-count-widget.tsx +53 -0
  506. package/components/widgets/stopwatch-widget.tsx +176 -0
  507. package/components/widgets/torch-face-widget.tsx +128 -0
  508. package/components/widgets/voice-assistant-widget.tsx +103 -0
  509. package/components/widgets/wifi-toggle-widget.tsx +108 -0
  510. package/lib/cn.ts +1 -0
  511. package/lib/ease.ts +108 -0
  512. package/lib/favicon.ts +8 -0
  513. package/lib/hooks/use-dismiss.ts +120 -0
  514. package/lib/hooks/use-favicon.ts +39 -0
  515. package/lib/hooks/use-haptic.ts +44 -0
  516. package/lib/hooks/use-hover-capable.ts +23 -0
  517. package/lib/hooks/use-hover-gesture.ts +61 -0
  518. package/lib/hooks/use-in-view-animation.ts +35 -0
  519. package/lib/hooks/use-measure.ts +39 -0
  520. package/lib/hooks/use-on-open.ts +24 -0
  521. package/lib/hooks/use-row-cursor.ts +86 -0
  522. package/lib/hooks/use-slider.ts +176 -0
  523. package/lib/hooks/use-tap-gesture.ts +66 -0
  524. package/lib/hooks/use-touch-capable.ts +31 -0
  525. package/lib/presence-gate.tsx +52 -0
  526. package/lib/styles.ts +124 -0
  527. package/lib/text-shimmer.ts +21 -0
  528. package/lib/tick-sound.ts +151 -0
  529. package/lib/touch.ts +117 -0
  530. package/lib/utils.ts +6 -0
  531. package/package.json +49 -0
  532. package/references/agents/agent-activity.md +747 -0
  533. package/references/agents/ai-sidebar.md +293 -0
  534. package/references/agents/approval-card.md +233 -0
  535. package/references/agents/chat-app.md +184 -0
  536. package/references/agents/citations.md +159 -0
  537. package/references/agents/code-block.md +122 -0
  538. package/references/agents/file-diff.md +119 -0
  539. package/references/agents/image-generation.md +173 -0
  540. package/references/agents/loading-states.md +186 -0
  541. package/references/agents/message-bubble.md +274 -0
  542. package/references/agents/message-scroller.md +128 -0
  543. package/references/agents/message.md +162 -0
  544. package/references/agents/prompt-input.md +204 -0
  545. package/references/agents/streaming-response.md +216 -0
  546. package/references/agents/todo-list.md +123 -0
  547. package/references/agents/tool-approval.md +143 -0
  548. package/references/agents/tool-result.md +199 -0
  549. package/references/blocks/availability-scheduler.md +59 -0
  550. package/references/blocks/bloom-menu.md +56 -0
  551. package/references/blocks/card-folder.md +165 -0
  552. package/references/blocks/command-palette.md +89 -0
  553. package/references/blocks/dynamic-island.md +203 -0
  554. package/references/blocks/expandable-action-bar.md +191 -0
  555. package/references/blocks/expandable-tabs.md +184 -0
  556. package/references/blocks/feedback-widget.md +82 -0
  557. package/references/blocks/file-upload.md +406 -0
  558. package/references/blocks/infinite-masonry.md +211 -0
  559. package/references/blocks/knockout-bracket.md +161 -0
  560. package/references/blocks/morphing-search.md +113 -0
  561. package/references/blocks/morphing-tabs.md +143 -0
  562. package/references/blocks/not-found.md +228 -0
  563. package/references/blocks/notification-stack.md +92 -0
  564. package/references/blocks/otp-input.md +85 -0
  565. package/references/blocks/overflow-actions.md +105 -0
  566. package/references/blocks/prediction-market.md +97 -0
  567. package/references/blocks/project-folder.md +99 -0
  568. package/references/blocks/signup-form.md +92 -0
  569. package/references/blocks/swap.md +58 -0
  570. package/references/blocks/swipeable-list.md +202 -0
  571. package/references/blocks/wallet-card.md +97 -0
  572. package/references/codex-install.md +59 -0
  573. package/references/craft/3d-button.md +51 -0
  574. package/references/craft/3d-icon-button.md +51 -0
  575. package/references/craft/add-to-cart-button.md +52 -0
  576. package/references/craft/analog-clock-minimal.md +51 -0
  577. package/references/craft/analog-clock-numeric.md +51 -0
  578. package/references/craft/analog-clock-roman.md +51 -0
  579. package/references/craft/annotated-text.md +51 -0
  580. package/references/craft/app-dock.md +52 -0
  581. package/references/craft/apple-hello-loader.md +51 -0
  582. package/references/craft/apple-notification.md +53 -0
  583. package/references/craft/apple-watch.md +51 -0
  584. package/references/craft/arc-bands-background.md +51 -0
  585. package/references/craft/audio-recorder.md +52 -0
  586. package/references/craft/aurora-background.md +51 -0
  587. package/references/craft/battery-face.md +52 -0
  588. package/references/craft/blob-profile.md +53 -0
  589. package/references/craft/bluetooth-face.md +52 -0
  590. package/references/craft/booking-slot-calendar.md +52 -0
  591. package/references/craft/bookmark-save-button.md +52 -0
  592. package/references/craft/browser.md +51 -0
  593. package/references/craft/cafe-menu-board.md +52 -0
  594. package/references/craft/calendar-reminder-notification.md +52 -0
  595. package/references/craft/chat-bubble-notification.md +53 -0
  596. package/references/craft/checkbox-field-input.md +52 -0
  597. package/references/craft/cherry-petal-background.md +51 -0
  598. package/references/craft/cinder-latch-button.md +51 -0
  599. package/references/craft/cinema-ticket.md +52 -0
  600. package/references/craft/circle-cut-frame.md +51 -0
  601. package/references/craft/combobox-field-input.md +52 -0
  602. package/references/craft/compass.md +51 -0
  603. package/references/craft/contact-form.md +52 -0
  604. package/references/craft/contact-profile.md +52 -0
  605. package/references/craft/copy-email.md +53 -0
  606. package/references/craft/coral-glow-background.md +51 -0
  607. package/references/craft/craft-copy-button.md +52 -0
  608. package/references/craft/craft-signup-form.md +53 -0
  609. package/references/craft/credit-card-glass.md +51 -0
  610. package/references/craft/customers-table.md +52 -0
  611. package/references/craft/daily-activity-calendar.md +52 -0
  612. package/references/craft/daily-motivation.md +53 -0
  613. package/references/craft/dark-arc-bands-background.md +51 -0
  614. package/references/craft/dark-aurora-background.md +51 -0
  615. package/references/craft/dark-carbon-spotlight-background.md +51 -0
  616. package/references/craft/dark-ember-background.md +51 -0
  617. package/references/craft/dark-ink-field-background.md +51 -0
  618. package/references/craft/dark-midnight-mesh-background.md +51 -0
  619. package/references/craft/dark-rose-noir-background.md +51 -0
  620. package/references/craft/dark-teal-depth-background.md +51 -0
  621. package/references/craft/date-field-input.md +52 -0
  622. package/references/craft/date-range-picker-card.md +52 -0
  623. package/references/craft/delivery-notification.md +52 -0
  624. package/references/craft/denim-product-editorial.md +52 -0
  625. package/references/craft/deploy-notification.md +52 -0
  626. package/references/craft/depth-outline-button.md +51 -0
  627. package/references/craft/diagonal-box-pattern.md +51 -0
  628. package/references/craft/dimple-switch.md +51 -0
  629. package/references/craft/discord-chat.md +53 -0
  630. package/references/craft/dnd-face.md +52 -0
  631. package/references/craft/dot-grid-pattern.md +51 -0
  632. package/references/craft/download-button.md +52 -0
  633. package/references/craft/drop-cap-editorial.md +52 -0
  634. package/references/craft/editor-tool-dock.md +52 -0
  635. package/references/craft/editorial-quote.md +52 -0
  636. package/references/craft/editorial-staff-profile.md +51 -0
  637. package/references/craft/electric-scooter.md +53 -0
  638. package/references/craft/email-notification.md +53 -0
  639. package/references/craft/event-countdown-card.md +51 -0
  640. package/references/craft/event-ticket.md +53 -0
  641. package/references/craft/facebook-post.md +53 -0
  642. package/references/craft/file-menu.md +52 -0
  643. package/references/craft/file-upload-field-input.md +52 -0
  644. package/references/craft/film-strip.md +52 -0
  645. package/references/craft/filter-sort.md +52 -0
  646. package/references/craft/fine-grain-pattern.md +51 -0
  647. package/references/craft/flight-arrival.md +52 -0
  648. package/references/craft/flight-boarding.md +52 -0
  649. package/references/craft/floating-label-field-input.md +51 -0
  650. package/references/craft/focus-breath.md +51 -0
  651. package/references/craft/folder-tab-card.md +52 -0
  652. package/references/craft/follow-button.md +52 -0
  653. package/references/craft/forgot-password-form.md +53 -0
  654. package/references/craft/frost-mesh-background.md +51 -0
  655. package/references/craft/gallery-grid.md +53 -0
  656. package/references/craft/gallery-wall.md +52 -0
  657. package/references/craft/github-contribution.md +52 -0
  658. package/references/craft/github-repo.md +52 -0
  659. package/references/craft/glass-overlay-image.md +53 -0
  660. package/references/craft/graph-paper-pattern.md +51 -0
  661. package/references/craft/halftone-pop-background.md +51 -0
  662. package/references/craft/hard-shadow-polaroid-frame.md +51 -0
  663. package/references/craft/heart-rate.md +52 -0
  664. package/references/craft/hold-to-delete-button.md +52 -0
  665. package/references/craft/honey-ember-background.md +51 -0
  666. package/references/craft/hydration.md +51 -0
  667. package/references/craft/incoming-call-notification.md +53 -0
  668. package/references/craft/ink-stamp-document.md +52 -0
  669. package/references/craft/ink-wash-background.md +51 -0
  670. package/references/craft/input-group-field.md +51 -0
  671. package/references/craft/inset-button.md +51 -0
  672. package/references/craft/instagram-post.md +53 -0
  673. package/references/craft/ios-calendar-widget.md +51 -0
  674. package/references/craft/ios-digital-clock.md +51 -0
  675. package/references/craft/ios-earbuds.md +51 -0
  676. package/references/craft/ios-map-location.md +51 -0
  677. package/references/craft/ipad.md +51 -0
  678. package/references/craft/ipod.md +51 -0
  679. package/references/craft/journal-writing.md +52 -0
  680. package/references/craft/kebab-actions.md +52 -0
  681. package/references/craft/keyboard-shortcuts.md +52 -0
  682. package/references/craft/laptop.md +51 -0
  683. package/references/craft/like-button.md +52 -0
  684. package/references/craft/line-grid-pattern.md +51 -0
  685. package/references/craft/linen-tab-button.md +51 -0
  686. package/references/craft/linen-weave-background.md +51 -0
  687. package/references/craft/linked-in-post.md +53 -0
  688. package/references/craft/linked-in-profile.md +52 -0
  689. package/references/craft/login-form.md +53 -0
  690. package/references/craft/mac-dock.md +52 -0
  691. package/references/craft/magazine-cover.md +53 -0
  692. package/references/craft/minimal-agenda.md +52 -0
  693. package/references/craft/mint-lagoon-background.md +51 -0
  694. package/references/craft/month-picker-calendar.md +52 -0
  695. package/references/craft/museum-placard.md +51 -0
  696. package/references/craft/music-player.md +53 -0
  697. package/references/craft/music-playlist.md +53 -0
  698. package/references/craft/newsletter-form.md +52 -0
  699. package/references/craft/notepad.md +52 -0
  700. package/references/craft/notification.md +52 -0
  701. package/references/craft/now-playing-bar.md +53 -0
  702. package/references/craft/orders-table.md +52 -0
  703. package/references/craft/otp-boxed-input.md +52 -0
  704. package/references/craft/otp-underline-input.md +51 -0
  705. package/references/craft/page-loader-overlay.md +46 -0
  706. package/references/craft/paper-fold-background.md +51 -0
  707. package/references/craft/password-field-input.md +52 -0
  708. package/references/craft/payment-notification.md +52 -0
  709. package/references/craft/phone-field-input.md +51 -0
  710. package/references/craft/phone.md +51 -0
  711. package/references/craft/photo-album.md +52 -0
  712. package/references/craft/photo-contact-sheet.md +52 -0
  713. package/references/craft/polaroid-image.md +52 -0
  714. package/references/craft/pomodoro.md +52 -0
  715. package/references/craft/presence-dock.md +51 -0
  716. package/references/craft/prism-depth-button.md +51 -0
  717. package/references/craft/progress-ring-card.md +51 -0
  718. package/references/craft/quantity-stepper-button.md +52 -0
  719. package/references/craft/radio-group-field-input.md +51 -0
  720. package/references/craft/rain-prism-background.md +51 -0
  721. package/references/craft/recent-transactions-table.md +52 -0
  722. package/references/craft/recorder-face.md +52 -0
  723. package/references/craft/resource-links-panel.md +52 -0
  724. package/references/craft/retail-price-tag.md +51 -0
  725. package/references/craft/reverse-diagonal-box-pattern.md +51 -0
  726. package/references/craft/ride-pickup.md +53 -0
  727. package/references/craft/sand-drift-background.md +51 -0
  728. package/references/craft/search-input.md +52 -0
  729. package/references/craft/segmented-toggle-button.md +51 -0
  730. package/references/craft/select-field-input.md +52 -0
  731. package/references/craft/share-menu.md +52 -0
  732. package/references/craft/sheen-pill-button.md +51 -0
  733. package/references/craft/slate-chip-switch.md +51 -0
  734. package/references/craft/sleep-score.md +52 -0
  735. package/references/craft/slide-to-confirm-button.md +52 -0
  736. package/references/craft/slow-living-polaroid.md +52 -0
  737. package/references/craft/soft-pill-button.md +51 -0
  738. package/references/craft/soft-spotlight-background.md +51 -0
  739. package/references/craft/soft-ui-button.md +51 -0
  740. package/references/craft/spin-loader.md +52 -0
  741. package/references/craft/spotlight-bar.md +52 -0
  742. package/references/craft/stacked-cards-effect.md +52 -0
  743. package/references/craft/stacked-folder-card.md +52 -0
  744. package/references/craft/stamp-postcard.md +52 -0
  745. package/references/craft/step-count.md +51 -0
  746. package/references/craft/sticky-note-polaroid-frame.md +51 -0
  747. package/references/craft/stopwatch.md +52 -0
  748. package/references/craft/sunrise-horizon-background.md +51 -0
  749. package/references/craft/sunset-bloom-background.md +51 -0
  750. package/references/craft/switch-field-input.md +51 -0
  751. package/references/craft/system-alert.md +52 -0
  752. package/references/craft/tasks-table.md +53 -0
  753. package/references/craft/team-member-profile-grid.md +52 -0
  754. package/references/craft/team-member.md +53 -0
  755. package/references/craft/team-members-table.md +53 -0
  756. package/references/craft/terminal-log.md +52 -0
  757. package/references/craft/terrazzo-fragment-background.md +51 -0
  758. package/references/craft/testimonial.md +53 -0
  759. package/references/craft/text-field-input.md +51 -0
  760. package/references/craft/text-loader.md +51 -0
  761. package/references/craft/textarea-field-input.md +51 -0
  762. package/references/craft/thermal-receipt.md +52 -0
  763. package/references/craft/threads-post.md +53 -0
  764. package/references/craft/toast-notification.md +52 -0
  765. package/references/craft/toggle-pricing-cards.md +52 -0
  766. package/references/craft/torch-face.md +52 -0
  767. package/references/craft/transform-box-frame.md +51 -0
  768. package/references/craft/transform-plus-frame.md +51 -0
  769. package/references/craft/travel-postcard.md +53 -0
  770. package/references/craft/tropical-tide-background.md +51 -0
  771. package/references/craft/twitter-post.md +53 -0
  772. package/references/craft/twitter-profile.md +53 -0
  773. package/references/craft/user-menu.md +53 -0
  774. package/references/craft/user-profile.md +53 -0
  775. package/references/craft/users-select-table.md +53 -0
  776. package/references/craft/voice-assistant.md +52 -0
  777. package/references/craft/wallet-pass.md +52 -0
  778. package/references/craft/weather-snapshot.md +52 -0
  779. package/references/craft/week-strip-calendar.md +52 -0
  780. package/references/craft/wifi-toggle.md +52 -0
  781. package/references/craft/workspace-switcher.md +52 -0
  782. package/references/guides/baseline-ui-craft.md +61 -0
  783. package/references/guides/craft-surface-design-system.md +120 -0
  784. package/references/guides/design-system-checklist.md +98 -0
  785. package/references/guides/enterprise-dashboard-patterns.md +53 -0
  786. package/references/guides/interaction-transitions.md +71 -0
  787. package/references/guides/motion-engineering.md +137 -0
  788. package/references/guides/motion-patterns.md +106 -0
  789. package/references/guides/motion-performance.md +66 -0
  790. package/references/guides/style-presets.md +115 -0
  791. package/references/guides/universal-mobile-patterns.md +72 -0
  792. package/references/motion/action-sheet.md +98 -0
  793. package/references/motion/action-swap.md +339 -0
  794. package/references/motion/adaptive-stepper.md +95 -0
  795. package/references/motion/animated-badge.md +92 -0
  796. package/references/motion/animated-sidebar.md +446 -0
  797. package/references/motion/animated-toast-stack.md +214 -0
  798. package/references/motion/aspect-ratio.md +59 -0
  799. package/references/motion/audio-player.md +59 -0
  800. package/references/motion/autocomplete.md +69 -0
  801. package/references/motion/avatar-group.md +93 -0
  802. package/references/motion/bottom-sheet.md +85 -0
  803. package/references/motion/bounce-sidebar.md +80 -0
  804. package/references/motion/bouncy-accordion.md +115 -0
  805. package/references/motion/breadcrumb.md +62 -0
  806. package/references/motion/button.md +271 -0
  807. package/references/motion/card-resize.md +60 -0
  808. package/references/motion/cascader.md +99 -0
  809. package/references/motion/center-morph-modal.md +133 -0
  810. package/references/motion/checkbox.md +76 -0
  811. package/references/motion/chip.md +81 -0
  812. package/references/motion/collapsible.md +73 -0
  813. package/references/motion/color-picker.md +57 -0
  814. package/references/motion/combobox.md +247 -0
  815. package/references/motion/confetti.md +65 -0
  816. package/references/motion/context-menu.md +269 -0
  817. package/references/motion/copy-button.md +59 -0
  818. package/references/motion/cylinder-carousel.md +151 -0
  819. package/references/motion/date-range-picker.md +68 -0
  820. package/references/motion/dock.md +105 -0
  821. package/references/motion/drawer.md +94 -0
  822. package/references/motion/error-shake.md +85 -0
  823. package/references/motion/event-calendar.md +81 -0
  824. package/references/motion/expandable-control.md +89 -0
  825. package/references/motion/expanding-arrow-button.md +178 -0
  826. package/references/motion/file-tree.md +139 -0
  827. package/references/motion/filter-builder.md +106 -0
  828. package/references/motion/frame.md +61 -0
  829. package/references/motion/gantt.md +61 -0
  830. package/references/motion/glow-button.md +59 -0
  831. package/references/motion/haptic-pressable.md +64 -0
  832. package/references/motion/hover-card.md +86 -0
  833. package/references/motion/icon-stack.md +64 -0
  834. package/references/motion/input.md +108 -0
  835. package/references/motion/kanban.md +111 -0
  836. package/references/motion/kbd.md +66 -0
  837. package/references/motion/loader.md +82 -0
  838. package/references/motion/magnet-dock.md +64 -0
  839. package/references/motion/marquee.md +68 -0
  840. package/references/motion/metric-card.md +81 -0
  841. package/references/motion/morphing-modal.md +230 -0
  842. package/references/motion/multi-select.md +202 -0
  843. package/references/motion/number-field.md +70 -0
  844. package/references/motion/number.md +198 -0
  845. package/references/motion/page-transition.md +78 -0
  846. package/references/motion/pagination.md +64 -0
  847. package/references/motion/password-input.md +77 -0
  848. package/references/motion/phone-input.md +63 -0
  849. package/references/motion/popover.md +209 -0
  850. package/references/motion/preview-rail.md +165 -0
  851. package/references/motion/progress-ring.md +73 -0
  852. package/references/motion/pull-to-refresh.md +172 -0
  853. package/references/motion/radio.md +73 -0
  854. package/references/motion/range-slider.md +290 -0
  855. package/references/motion/rating.md +69 -0
  856. package/references/motion/reorder-grid.md +69 -0
  857. package/references/motion/resizable-panel.md +75 -0
  858. package/references/motion/scroll-animation.md +397 -0
  859. package/references/motion/segmented-control.md +68 -0
  860. package/references/motion/segmented-progress.md +70 -0
  861. package/references/motion/select.md +196 -0
  862. package/references/motion/shader-background.md +351 -0
  863. package/references/motion/shared-layout-bg.md +80 -0
  864. package/references/motion/sortable-list.md +62 -0
  865. package/references/motion/speed-dial.md +63 -0
  866. package/references/motion/split-text.md +62 -0
  867. package/references/motion/spotlight-card.md +67 -0
  868. package/references/motion/stepper.md +83 -0
  869. package/references/motion/success-check.md +67 -0
  870. package/references/motion/switch.md +62 -0
  871. package/references/motion/table.md +519 -0
  872. package/references/motion/tabs.md +116 -0
  873. package/references/motion/text-animation.md +285 -0
  874. package/references/motion/text-swap.md +64 -0
  875. package/references/motion/theme-toggle.md +82 -0
  876. package/references/motion/tilt-card.md +59 -0
  877. package/references/motion/timeline.md +85 -0
  878. package/references/motion/toggle-group.md +70 -0
  879. package/references/motion/tooltip.md +82 -0
  880. package/references/motion/tree-view.md +87 -0
  881. package/references/motion/wheel-picker.md +142 -0
  882. package/scripts/build_docs.py +557 -0
  883. package/scripts/install-component.py +232 -0
  884. package/scripts/test_release.py +119 -0
  885. package/scripts/updater.mjs +9 -0
  886. package/scripts/verify_skill.py +84 -0
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: "Reorder Grid"
3
+ description: "Drag-and-drop sortable grid driven by Motion's native Reorder primitives with spring elevation and haptic feedback."
4
+ category: "Components"
5
+ publishedAt: "2026-09-05"
6
+ updatedAt: "2026-09-05"
7
+ documentation: "references/motion/reorder-grid.md"
8
+ markdown: "references/motion/reorder-grid.md"
9
+ license: "MIT"
10
+ ---
11
+
12
+ # Reorder Grid
13
+
14
+ > Drag-and-drop sortable grid driven by Motion's native Reorder primitives with spring elevation and haptic feedback. Inspired by Motion (Framer Motion) and KeenThemes ReUI.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ # Install via motion-ui skill CLI:
20
+ python scripts/install-component.py reorder-grid --dest ./src
21
+ ```
22
+
23
+ ## Dependencies
24
+
25
+ - `clsx`
26
+ - `lucide-react`
27
+ - `motion`
28
+ - `react`
29
+ - `tailwind-merge`
30
+
31
+ ## Usage
32
+
33
+ ```tsx
34
+ "use client";
35
+
36
+ import { ReorderGrid, type ReorderItem } from "@/components/motion/reorder-grid";
37
+ import { Folder, FileText, Image, Code } from "lucide-react";
38
+ import { useState } from "react";
39
+
40
+ const INITIAL_ITEMS: ReorderItem[] = [
41
+ { id: "1", title: "Documents", subtitle: "14 files", icon: <Folder className="size-4" />, badge: "Active" },
42
+ { id: "2", title: "Images", subtitle: "84 assets", icon: <Image className="size-4" /> },
43
+ { id: "3", title: "Source Code", subtitle: "Git repository", icon: <Code className="size-4" />, badge: "Main" },
44
+ { id: "4", title: "Invoices", subtitle: "Q3 reports", icon: <FileText className="size-4" /> },
45
+ ];
46
+
47
+ export function ReorderGridExample() {
48
+ const [items, setItems] = useState(INITIAL_ITEMS);
49
+
50
+ return (
51
+ <div className="max-w-xl p-8">
52
+ <ReorderGrid
53
+ items={items}
54
+ columns={2}
55
+ onChange={(newOrder) => setItems(newOrder)}
56
+ />
57
+ </div>
58
+ );
59
+ }
60
+ ```
61
+
62
+ ## Props
63
+
64
+ | Prop | Type | Default | Description |
65
+ | :--- | :--- | :--- | :--- |
66
+ | `items` | `ReorderItem[]` | Required | Array of draggable grid items. |
67
+ | `onChange` | `(items: ReorderItem[]) => void` | `undefined` | Callback fired when items are reordered. |
68
+ | `columns` | `1 \| 2 \| 3 \| 4` | `2` | Number of responsive grid columns. |
69
+ | `className` | `string` | `undefined` | Container classes. |
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: "Resizable Panel"
3
+ description: "Accessible multi-direction split container with smooth pointer dragging, keyboard ratio controls, and boundary snapping."
4
+ category: "Components"
5
+ publishedAt: "2026-09-05"
6
+ updatedAt: "2026-09-05"
7
+ documentation: "references/motion/resizable-panel.md"
8
+ markdown: "references/motion/resizable-panel.md"
9
+ license: "MIT"
10
+ ---
11
+
12
+ # Resizable Panel
13
+
14
+ > Accessible multi-direction split container with smooth pointer dragging, keyboard ratio controls, and boundary snapping. Inspired by shadcn/ui and React Resizable Panels.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ # Install via motion-ui skill CLI:
20
+ python scripts/install-component.py resizable-panel --dest ./src
21
+ ```
22
+
23
+ ## Dependencies
24
+
25
+ - `clsx`
26
+ - `lucide-react`
27
+ - `motion`
28
+ - `react`
29
+ - `tailwind-merge`
30
+
31
+ ## Usage
32
+
33
+ ```tsx
34
+ "use client";
35
+
36
+ import { ResizablePanelGroup } from "@/components/motion/resizable-panel";
37
+
38
+ export function ResizablePanelExample() {
39
+ return (
40
+ <div className="h-96 w-full p-4">
41
+ <ResizablePanelGroup
42
+ direction="horizontal"
43
+ defaultSize={40}
44
+ minSize={25}
45
+ maxSize={75}
46
+ panelA={
47
+ <div className="p-4 bg-muted/20 h-full">
48
+ <h3 className="text-sm font-semibold">Left Sidebar</h3>
49
+ <p className="text-xs text-muted-foreground mt-2">File tree and navigation</p>
50
+ </div>
51
+ }
52
+ panelB={
53
+ <div className="p-4 bg-card h-full">
54
+ <h3 className="text-sm font-semibold">Editor Surface</h3>
55
+ <p className="text-xs text-muted-foreground mt-2">Main workspace</p>
56
+ </div>
57
+ }
58
+ />
59
+ </div>
60
+ );
61
+ }
62
+ ```
63
+
64
+ ## Props
65
+
66
+ | Prop | Type | Default | Description |
67
+ | :--- | :--- | :--- | :--- |
68
+ | `direction` | `"horizontal" \| "vertical"` | `"horizontal"` | Split orientation. |
69
+ | `defaultSize` | `number` | `50` | Default percentage width/height for panel A. |
70
+ | `minSize` | `number` | `20` | Minimum percentage for panel A. |
71
+ | `maxSize` | `number` | `80` | Maximum percentage for panel A. |
72
+ | `panelA` | `React.ReactNode` | Required | First panel content. |
73
+ | `panelB` | `React.ReactNode` | Required | Second panel content. |
74
+ | `onResize` | `(size: number) => void` | `undefined` | Callback invoked when split ratio changes. |
75
+ | `className` | `string` | `undefined` | Outer container classes. |
@@ -0,0 +1,397 @@
1
+ ---
2
+ title: "Scroll Animation"
3
+ description: "Scroll-driven motion: a Lenis smooth-scroll provider and a reading-progress indicator that reads from it."
4
+ category: "Components"
5
+ publishedAt: "2026-06-24"
6
+ updatedAt: "2026-06-28"
7
+ documentation: "references/motion/scroll-animation.md"
8
+ markdown: "references/motion/scroll-animation.md"
9
+ license: "MIT"
10
+ ---
11
+
12
+ # Scroll Animation
13
+
14
+ > Scroll-driven motion: a Lenis smooth-scroll provider and a reading-progress indicator that reads from it.
15
+
16
+ ## Install
17
+
18
+ ### Smooth Scroll
19
+
20
+ Smooth-scroll provider over Lenis with a useSmoothScroll hook exposing scroll offset, progress and velocity. Reduced-motion safe.
21
+
22
+ ```bash
23
+ # Install via motion-ui skill CLI:
24
+ python scripts/install-component.py smooth-scroll --dest ./src
25
+ ```
26
+
27
+ ### Scroll Progress
28
+
29
+ Reading-progress indicator — fixed bar or circular ring — driven by scroll position via useSmoothScroll, with spring smoothing.
30
+
31
+ ```bash
32
+ # Install via motion-ui skill CLI:
33
+ python scripts/install-component.py scroll-progress --dest ./src
34
+ ```
35
+
36
+ ### Parallax
37
+
38
+ Wrapper that drifts its children at a speed factor as they cross the viewport, on either axis. Reduced-motion safe.
39
+
40
+ ```bash
41
+ # Install via motion-ui skill CLI:
42
+ python scripts/install-component.py parallax --dest ./src
43
+ ```
44
+
45
+ ### Scroll To
46
+
47
+ Button that smooth-scrolls to a target (offset, selector or element) via the active SmoothScroll provider; reduced-motion jumps instantly.
48
+
49
+ ```bash
50
+ # Install via motion-ui skill CLI:
51
+ python scripts/install-component.py scroll-to --dest ./src
52
+ ```
53
+
54
+ ### Scroll Reveal
55
+
56
+ Reveals its children with a spring slide and blur as they enter the viewport, once or every time. Reduced-motion keeps a fade.
57
+
58
+ ```bash
59
+ # Install via motion-ui skill CLI:
60
+ python scripts/install-component.py scroll-reveal --dest ./src
61
+ ```
62
+
63
+ ## Dependencies
64
+
65
+ - `clsx`
66
+ - `lenis`
67
+ - `motion`
68
+ - `react`
69
+ - `tailwind-merge`
70
+
71
+ ## Usage
72
+
73
+ ### Smooth Scroll usage
74
+
75
+ Smooth-scroll provider over Lenis with a useSmoothScroll hook exposing scroll offset, progress and velocity. Reduced-motion safe.
76
+
77
+ ```tsx
78
+ "use client";
79
+
80
+ import { ArrowUp } from "lucide-react";
81
+
82
+ import { SmoothScroll, useSmoothScroll } from "@/components/motion/smooth-scroll";
83
+
84
+ // In production <SmoothScroll> wraps the page (root). Here it runs in contained
85
+ // mode (root={false}) so the box itself smooth-scrolls — the same engine, and
86
+ // the button uses the useSmoothScroll() hook to glide back to the top.
87
+ const SECTIONS = Array.from({ length: 16 }, (_, i) => i + 1);
88
+
89
+ function ScrollTopButton() {
90
+ const { scrollTo } = useSmoothScroll();
91
+ return (
92
+ <button
93
+ type="button"
94
+ onClick={() => scrollTo(0)}
95
+ className="sticky bottom-3 left-[calc(100%-3rem)] z-10 grid size-9 place-items-center rounded-full border border-border bg-background/80 text-foreground backdrop-blur transition-colors hover:bg-background"
96
+ aria-label="Scroll to top"
97
+ >
98
+ <ArrowUp className="size-4" />
99
+ </button>
100
+ );
101
+ }
102
+
103
+ export function SmoothScrollPreview() {
104
+ return (
105
+ <SmoothScroll
106
+ root={false}
107
+ className="h-64 w-full max-w-lg overflow-y-auto scrollbar-hide rounded-2xl border border-border bg-card"
108
+ >
109
+ <div className="space-y-3 p-4">
110
+ {SECTIONS.map((n) => (
111
+ <div
112
+ key={`section-${n}`}
113
+ className="rounded-lg bg-muted/60 px-3 py-4 text-sm text-muted-foreground"
114
+ >
115
+ Section {n}
116
+ </div>
117
+ ))}
118
+ </div>
119
+ <ScrollTopButton />
120
+ </SmoothScroll>
121
+ );
122
+ }
123
+ ```
124
+
125
+ ### Scroll Progress usage
126
+
127
+ Reading-progress indicator — fixed bar or circular ring — driven by scroll position via useSmoothScroll, with spring smoothing.
128
+
129
+ ```tsx
130
+ "use client";
131
+
132
+ import { useScroll } from "motion/react";
133
+ import { useRef } from "react";
134
+
135
+ import { ScrollProgress } from "@/components/motion/scroll-progress";
136
+
137
+ // Real usage: drop <ScrollProgress /> anywhere — it reads page scroll via
138
+ // useSmoothScroll and pins itself with `fixed`. Here we scope it to a box by
139
+ // passing a contained `progress` source and `fixed={false}`.
140
+ const SECTIONS = Array.from({ length: 18 }, (_, i) => i + 1);
141
+
142
+ export function ScrollProgressPreview() {
143
+ const ref = useRef<HTMLDivElement>(null);
144
+ const { scrollYProgress } = useScroll({ container: ref });
145
+
146
+ return (
147
+ <div className="relative w-full max-w-lg overflow-hidden rounded-2xl border border-border bg-card">
148
+ <ScrollProgress progress={scrollYProgress} fixed={false} height={3} />
149
+ <div className="absolute right-3 top-3 z-10 rounded-full bg-background/70 p-1 backdrop-blur">
150
+ <ScrollProgress variant="circle" progress={scrollYProgress} size={36} />
151
+ </div>
152
+ <div ref={ref} className="h-64 overflow-y-auto scrollbar-hide">
153
+ <div className="space-y-3 p-4">
154
+ {SECTIONS.map((n) => (
155
+ <div
156
+ key={`row-${n}`}
157
+ className="rounded-lg bg-muted/60 px-3 py-4 text-sm text-muted-foreground"
158
+ >
159
+ Section {n}
160
+ </div>
161
+ ))}
162
+ </div>
163
+ </div>
164
+ </div>
165
+ );
166
+ }
167
+ ```
168
+
169
+ ### Parallax usage
170
+
171
+ Wrapper that drifts its children at a speed factor as they cross the viewport, on either axis. Reduced-motion safe.
172
+
173
+ ```tsx
174
+ "use client";
175
+
176
+ import { useRef } from "react";
177
+
178
+ import { Parallax } from "@/components/motion/parallax";
179
+
180
+ // On a real page <Parallax> tracks the viewport. Here it's scoped to the box
181
+ // via the container prop. Scroll inside the box: the background image drifts
182
+ // against the scroll, the label and avatar drift with it at different speeds.
183
+ export function ParallaxPreview() {
184
+ const containerRef = useRef<HTMLDivElement>(null);
185
+
186
+ return (
187
+ <div
188
+ ref={containerRef}
189
+ className="relative h-[600px] w-full max-w-2xl overflow-y-auto scrollbar-hide rounded-2xl border border-border bg-card"
190
+ >
191
+ <div className="flex h-80 items-center justify-center text-sm text-muted-foreground">
192
+ Scroll down ↓
193
+ </div>
194
+
195
+ <div className="relative h-96 overflow-hidden">
196
+ <Parallax
197
+ container={containerRef}
198
+ speed={-0.6}
199
+ className="absolute inset-x-0 -top-1/4 h-[150%]"
200
+ >
201
+ {/* biome-ignore lint/performance/noImgElement: plain img keeps the copy-paste preview portable (no next/image host config). */}
202
+ <img
203
+ src="https://picsum.photos/seed/motion-ui-parallax/800/600"
204
+ alt=""
205
+ className="size-full object-cover"
206
+ />
207
+ </Parallax>
208
+
209
+ <Parallax
210
+ container={containerRef}
211
+ speed={0.5}
212
+ className="absolute inset-0 grid place-items-center"
213
+ >
214
+ <span className="rounded-full bg-background/85 px-5 py-2 text-base font-medium text-foreground backdrop-blur">
215
+ Parallax
216
+ </span>
217
+ </Parallax>
218
+
219
+ <Parallax
220
+ container={containerRef}
221
+ speed={0.9}
222
+ className="absolute bottom-4 right-4"
223
+ >
224
+ {/* biome-ignore lint/performance/noImgElement: plain img keeps the copy-paste preview portable (no next/image host config). */}
225
+ <img
226
+ src="https://picsum.photos/seed/motion-ui-avatar/120/120"
227
+ alt=""
228
+ className="size-12 rounded-full border-2 border-background object-cover shadow-lg"
229
+ />
230
+ </Parallax>
231
+ </div>
232
+
233
+ <div className="flex h-80 items-center justify-center text-sm text-muted-foreground">
234
+ ↑ Scroll up
235
+ </div>
236
+ </div>
237
+ );
238
+ }
239
+ ```
240
+
241
+ ### Scroll To usage
242
+
243
+ Button that smooth-scrolls to a target (offset, selector or element) via the active SmoothScroll provider; reduced-motion jumps instantly.
244
+
245
+ ```tsx
246
+ "use client";
247
+
248
+ import { ScrollTo } from "@/components/motion/scroll-to";
249
+ import { SmoothScroll } from "@/components/motion/smooth-scroll";
250
+
251
+ // ScrollTo uses the active SmoothScroll provider. Here it's contained
252
+ // (root={false}); the nav buttons glide the box to each section.
253
+ const SECTIONS = [
254
+ { id: "sec-intro", label: "Intro" },
255
+ { id: "sec-features", label: "Features" },
256
+ { id: "sec-pricing", label: "Pricing" },
257
+ { id: "sec-faq", label: "FAQ" },
258
+ ];
259
+
260
+ export function ScrollToPreview() {
261
+ return (
262
+ <SmoothScroll
263
+ root={false}
264
+ className="relative h-80 w-full max-w-lg overflow-y-auto scrollbar-hide rounded-2xl border border-border bg-card"
265
+ >
266
+ <nav className="sticky top-0 z-10 flex gap-1.5 border-b border-border bg-background/80 p-2 backdrop-blur">
267
+ {SECTIONS.map((s) => (
268
+ <ScrollTo
269
+ key={s.id}
270
+ to={`#${s.id}`}
271
+ offset={-48}
272
+ className="rounded-full px-3 py-1 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground"
273
+ >
274
+ {s.label}
275
+ </ScrollTo>
276
+ ))}
277
+ </nav>
278
+
279
+ {SECTIONS.map((s) => (
280
+ <section
281
+ id={s.id}
282
+ key={s.id}
283
+ className="flex h-64 items-center justify-center text-lg font-medium text-foreground"
284
+ >
285
+ {s.label}
286
+ </section>
287
+ ))}
288
+ </SmoothScroll>
289
+ );
290
+ }
291
+ ```
292
+
293
+ ### Scroll Reveal usage
294
+
295
+ Reveals its children with a spring slide and blur as they enter the viewport, once or every time. Reduced-motion keeps a fade.
296
+
297
+ ```tsx
298
+ "use client";
299
+
300
+ import { useRef } from "react";
301
+
302
+ import { ScrollReveal } from "@/components/motion/scroll-reveal";
303
+
304
+ // On a page <ScrollReveal> tracks the viewport. Here root points at the box so
305
+ // each card reveals as it scrolls into the contained view.
306
+ const CARDS = ["Spring slide", "Blur in", "Staggered by delay", "Reveal once"];
307
+
308
+ export function ScrollRevealPreview() {
309
+ const containerRef = useRef<HTMLDivElement>(null);
310
+
311
+ return (
312
+ <div
313
+ ref={containerRef}
314
+ className="h-80 w-full max-w-lg overflow-y-auto scrollbar-hide rounded-2xl border border-border bg-card"
315
+ >
316
+ <div className="flex flex-col gap-16 p-6">
317
+ <div className="text-center text-sm text-muted-foreground">
318
+ Scroll ↓
319
+ </div>
320
+ {CARDS.map((label, i) => (
321
+ <ScrollReveal
322
+ key={label}
323
+ root={containerRef}
324
+ once={false}
325
+ delay={i * 0.05}
326
+ className="rounded-xl border border-border bg-muted/50 px-4 py-16 text-center text-base font-medium text-foreground"
327
+ >
328
+ {label}
329
+ </ScrollReveal>
330
+ ))}
331
+ <div className="text-center text-sm text-muted-foreground">End</div>
332
+ </div>
333
+ </div>
334
+ );
335
+ }
336
+ ```
337
+
338
+ ## API Reference
339
+
340
+ ### SmoothScroll
341
+
342
+ | Prop | Type | Default | Required | Description |
343
+ | --- | --- | --- | --- | --- |
344
+ | `root` | `boolean` | `true` | No | Drive the page (window) when true, or a contained scroll area when false. |
345
+ | `lerp` | `number` | `0.1` | No | Smoothing factor; lower is smoother and heavier. |
346
+ | `duration` | `number` | `1.2` | No | Wheel / programmatic ease duration in seconds. |
347
+ | `orientation` | `"horizontal" \| "vertical"` | `vertical` | No | — |
348
+ | `wheelMultiplier` | `number` | `1` | No | Wheel scroll speed multiplier. |
349
+ | `touch` | `boolean` | `false` | No | Smooth touch scrolling. Off by default — native momentum is good on mobile. |
350
+ | `className` | `string` | — | No | — |
351
+
352
+ ### ScrollProgress
353
+
354
+ | Prop | Type | Default | Required | Description |
355
+ | --- | --- | --- | --- | --- |
356
+ | `variant` | `"circle" \| "bar"` | — | No | — |
357
+ | `position` | `"bottom" \| "top"` | — | No | — |
358
+ | `height` | `number` | — | No | Bar thickness in px. |
359
+ | `fixed` | `boolean` | — | No | Position the bar with `fixed` (page) or `absolute` (embedded). |
360
+ | `progress` | `MotionValue<number>` | — | No | Override the scroll source. Defaults to the page via useSmoothScroll. |
361
+ | `spring` | `boolean` | — | No | Spring-smooth the value. Disabled automatically under reduced motion. |
362
+ | `className` | `string` | — | No | — |
363
+ | `size` | `number` | — | No | Diameter in px. |
364
+ | `thickness` | `number` | — | No | Stroke width in px. |
365
+
366
+ ### Parallax
367
+
368
+ | Prop | Type | Default | Required | Description |
369
+ | --- | --- | --- | --- | --- |
370
+ | `speed` | `number` | `0.3` | No | Drift as a fraction of the element's travel through the viewport. Positive moves with the scroll (foreground), negative against it (background). ~0.1–0.5 reads best. |
371
+ | `axis` | `"x" \| "y"` | `y` | No | — |
372
+ | `container` | `RefObject<HTMLElement \| null>` | — | No | Scroll container for contained scroll areas. Defaults to the viewport. |
373
+ | `spring` | `boolean` | `true` | No | Spring-smooth the drift. Disabled automatically under reduced motion. |
374
+ | `className` | `string` | — | No | — |
375
+
376
+ ### ScrollTo
377
+
378
+ | Prop | Type | Default | Required | Description |
379
+ | --- | --- | --- | --- | --- |
380
+ | `to` | `ScrollTarget` | — | Yes | Where to scroll: px offset, selector string or element. |
381
+ | `offset` | `number` | — | No | Extra px offset from the target (e.g. to clear a sticky header). |
382
+ | `duration` | `number` | — | No | Override the ease duration in seconds. |
383
+ | `className` | `string` | — | No | — |
384
+
385
+ ### ScrollReveal
386
+
387
+ | Prop | Type | Default | Required | Description |
388
+ | --- | --- | --- | --- | --- |
389
+ | `y` | `number` | `16` | No | Slide distance in px before reveal. |
390
+ | `blur` | `number` | `8` | No | Enter blur in px (kept ≤ 10 per motion conventions). |
391
+ | `duration` | `number` | `0.6` | No | Reveal duration in seconds. |
392
+ | `delay` | `number` | `0` | No | — |
393
+ | `once` | `boolean` | `true` | No | Reveal only once (default) or every time it enters view. |
394
+ | `amount` | `number \| "all" \| "some"` | `0.3` | No | Portion of the element that must be visible to trigger. |
395
+ | `root` | `RefObject<Element \| null>` | — | No | Scroll root for contained scroll areas. Defaults to the viewport. |
396
+ | `className` | `string` | — | No | — |
397
+
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: "Segmented Control"
3
+ description: "Tactile iOS/macOS segmented control with layoutId gliding indicator, icon labels, haptic taps, and keyboard arrow navigation."
4
+ category: "Components"
5
+ publishedAt: "2026-09-05"
6
+ updatedAt: "2026-09-05"
7
+ documentation: "references/motion/segmented-control.md"
8
+ markdown: "references/motion/segmented-control.md"
9
+ license: "MIT"
10
+ ---
11
+
12
+ # Segmented Control
13
+
14
+ > Tactile iOS/macOS segmented control with `layoutId` gliding indicator, icon labels, haptic taps, and keyboard arrow navigation. Inspired by Expo and Transitions.dev.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ # Install via motion-ui skill CLI:
20
+ python scripts/install-component.py segmented-control --dest ./src
21
+ ```
22
+
23
+ ## Dependencies
24
+
25
+ - `clsx`
26
+ - `motion`
27
+ - `react`
28
+ - `tailwind-merge`
29
+
30
+ ## Usage
31
+
32
+ ```tsx
33
+ "use client";
34
+
35
+ import { SegmentedControl } from "@/components/motion/segmented-control";
36
+ import { Grid, List, Table } from "lucide-react";
37
+ import { useState } from "react";
38
+
39
+ export function SegmentedControlExample() {
40
+ const [view, setView] = useState("grid");
41
+
42
+ return (
43
+ <div className="p-8 bg-card rounded-2xl border border-border inline-block">
44
+ <SegmentedControl
45
+ value={view}
46
+ onChange={(val) => setView(val)}
47
+ items={[
48
+ { value: "grid", label: "Grid", icon: <Grid className="size-3.5" /> },
49
+ { value: "list", label: "List", icon: <List className="size-3.5" /> },
50
+ { value: "table", label: "Table", icon: <Table className="size-3.5" /> },
51
+ ]}
52
+ />
53
+ </div>
54
+ );
55
+ }
56
+ ```
57
+
58
+ ## Props
59
+
60
+ | Prop | Type | Default | Description |
61
+ | :--- | :--- | :--- | :--- |
62
+ | `items` | `SegmentedItem[]` | required | Array of selectable segments with label, value, and optional icon. |
63
+ | `value` | `string` | `undefined` | Controlled active segment value. |
64
+ | `defaultValue` | `string` | `items[0].value` | Uncontrolled initial segment value. |
65
+ | `onChange` | `(value: string) => void` | `undefined` | Callback emitted on segment change. |
66
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` | Size scale of segments. |
67
+ | `fullWidth` | `boolean` | `false` | Stretches segments to fill container width equally. |
68
+ | `className` | `string` | `undefined` | Custom styling overrides merged via `cn()`. |
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: "Segmented Progress"
3
+ description: "Multi-segment story timer progress bar with auto-advance, press-to-pause gestures, and interactive step navigation."
4
+ category: "Components"
5
+ publishedAt: "2026-09-05"
6
+ updatedAt: "2026-09-05"
7
+ documentation: "references/motion/segmented-progress.md"
8
+ markdown: "references/motion/segmented-progress.md"
9
+ license: "MIT"
10
+ ---
11
+
12
+ # Segmented Progress
13
+
14
+ > Multi-segment story timer progress bar with auto-advance, press-to-pause gestures, and interactive step navigation. Inspired by Expo and mobile story UX.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ # Install via motion-ui skill CLI:
20
+ python scripts/install-component.py segmented-progress --dest ./src
21
+ ```
22
+
23
+ ## Dependencies
24
+
25
+ - `clsx`
26
+ - `motion`
27
+ - `react`
28
+ - `tailwind-merge`
29
+
30
+ ## Usage
31
+
32
+ ```tsx
33
+ "use client";
34
+
35
+ import { SegmentedProgress } from "@/components/motion/segmented-progress";
36
+ import { useState } from "react";
37
+
38
+ export function SegmentedProgressExample() {
39
+ const [active, setActive] = useState(0);
40
+
41
+ return (
42
+ <div className="max-w-md p-6 bg-card rounded-2xl border border-border space-y-4">
43
+ <SegmentedProgress
44
+ segmentsCount={5}
45
+ activeIndex={active}
46
+ durationPerSegment={4}
47
+ onSegmentClick={(i) => setActive(i)}
48
+ onAllComplete={() => console.log("Story sequence finished")}
49
+ />
50
+ <div className="flex justify-between items-center text-xs text-muted-foreground">
51
+ <span>Story {active + 1} of 5</span>
52
+ <span>Hold to pause</span>
53
+ </div>
54
+ </div>
55
+ );
56
+ }
57
+ ```
58
+
59
+ ## Props
60
+
61
+ | Prop | Type | Default | Description |
62
+ | :--- | :--- | :--- | :--- |
63
+ | `segmentsCount` | `number` | required | Total count of progress segments. |
64
+ | `activeIndex` | `number` | `undefined` | Controlled active segment index. |
65
+ | `durationPerSegment` | `number` | `5` | Transition duration in seconds per segment. |
66
+ | `autoAdvance` | `boolean` | `true` | Enables automatic timed advancement. |
67
+ | `onSegmentComplete` | `(index: number) => void` | `undefined` | Callback emitted when an individual segment completes. |
68
+ | `onAllComplete` | `() => void` | `undefined` | Callback emitted when the final segment finishes. |
69
+ | `onSegmentClick` | `(index: number) => void` | `undefined` | Enables manual segment clicking. |
70
+ | `className` | `string` | `undefined` | Custom styling overrides merged via `cn()`. |