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,222 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ export function AppleAppStoreIcon(props: SVGProps<SVGSVGElement>) {
4
+ return (
5
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" {...props}>
6
+ <defs>
7
+ <linearGradient id="SVG5lqYietg" x1="50%" x2="50%" y1="0%" y2="100%">
8
+ <stop offset="0%" stopColor="#17c9fb" />
9
+ <stop offset="100%" stopColor="#1a74e8" />
10
+ </linearGradient>
11
+ </defs>
12
+ <path
13
+ fill="url(#SVG5lqYietg)"
14
+ d="M56.064 0h143.872C230.9 0 256 25.1 256 56.064v143.872C256 230.9 230.9 256 199.936 256H56.064C25.1 256 0 230.9 0 199.936V56.064C0 25.1 25.1 0 56.064 0"
15
+ />
16
+ <path
17
+ fill="#fff"
18
+ d="m82.042 185.81l.024.008l-8.753 15.16c-3.195 5.534-10.271 7.43-15.805 4.235s-7.43-10.271-4.235-15.805l6.448-11.168l.619-1.072c1.105-1.588 3.832-4.33 9.287-3.814c0 0 12.837 1.393 13.766 8.065c0 0 .126 2.195-1.351 4.391m124.143-38.72h-27.294c-1.859-.125-2.67-.789-2.99-1.175l-.02-.035l-29.217-50.606l-.038.025l-1.752-2.512c-2.872-4.392-7.432 6.84-7.432 6.84c-5.445 12.516.773 26.745 2.94 31.046l40.582 70.29c3.194 5.533 10.27 7.43 15.805 4.234c5.533-3.195 7.43-10.271 4.234-15.805l-10.147-17.576c-.197-.426-.539-1.582 1.542-1.587h13.787c6.39 0 11.57-5.18 11.57-11.57s-5.18-11.57-11.57-11.57m-53.014 15.728s1.457 7.411-4.18 7.411H48.092c-6.39 0-11.57-5.18-11.57-11.57s5.18-11.57 11.57-11.57h25.94c4.188-.242 5.18-2.66 5.18-2.66l.024.012l33.86-58.648l-.01-.002c.617-1.133.103-2.204.014-2.373l-11.183-19.369c-3.195-5.533-1.299-12.61 4.235-15.804s12.61-1.3 15.805 4.234l5.186 8.983l5.177-8.967c3.195-5.533 10.271-7.43 15.805-4.234s7.43 10.27 4.235 15.804l-47.118 81.61c-.206.497-.269 1.277 1.264 1.414h28.164l.006.275s16.278.253 18.495 15.454"
19
+ />
20
+ </svg>
21
+ );
22
+ }
23
+
24
+ export function AppleMusicIcon(props: SVGProps<SVGSVGElement>) {
25
+ return (
26
+ <svg
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ xmlSpace="preserve"
29
+ viewBox="0 0 361 361"
30
+ {...props}
31
+ >
32
+ <linearGradient
33
+ id="a"
34
+ x1="180"
35
+ x2="180"
36
+ y1="358.605"
37
+ y2="7.759"
38
+ gradientUnits="userSpaceOnUse"
39
+ >
40
+ <stop offset="0" style={{ stopColor: "#fa233b" }} />
41
+ <stop offset="1" style={{ stopColor: "#fb5c74" }} />
42
+ </linearGradient>
43
+ <path
44
+ d="M360 112.61c0-4.3 0-8.6-.02-12.9-.02-3.62-.06-7.24-.16-10.86-.21-7.89-.68-15.84-2.08-23.64-1.42-7.92-3.75-15.29-7.41-22.49a75.633 75.633 0 0 0-33.06-33.05c-7.19-3.66-14.56-5.98-22.47-7.41C287 .86 279.04.39 271.15.18c-3.62-.1-7.24-.14-10.86-.16-4.3-.02-8.6-.02-12.9-.02H112.61c-4.3 0-8.6 0-12.9.02-3.62.02-7.24.06-10.86.16C80.96.4 73 .86 65.2 2.27c-7.92 1.42-15.28 3.75-22.47 7.41A75.633 75.633 0 0 0 9.67 42.73c-3.66 7.2-5.99 14.57-7.41 22.49C.86 73.02.39 80.98.18 88.86.08 92.48.04 96.1.02 99.72 0 104.01 0 108.31 0 112.61v134.77c0 4.3 0 8.6.02 12.9.02 3.62.06 7.24.16 10.86.21 7.89.68 15.84 2.08 23.64 1.42 7.92 3.75 15.29 7.41 22.49a75.633 75.633 0 0 0 33.06 33.05c7.19 3.66 14.56 5.98 22.47 7.41 7.8 1.4 15.76 1.87 23.65 2.08 3.62.1 7.24.14 10.86.16 4.3.03 8.6.02 12.9.02h134.77c4.3 0 8.6 0 12.9-.02 3.62-.02 7.24-.06 10.86-.16 7.89-.21 15.85-.68 23.65-2.08 7.92-1.42 15.28-3.75 22.47-7.41a75.633 75.633 0 0 0 33.06-33.05c3.66-7.2 5.99-14.57 7.41-22.49 1.4-7.8 1.87-15.76 2.08-23.64.1-3.62.14-7.24.16-10.86.03-4.3.02-8.6.02-12.9V112.61z"
45
+ style={{ fillRule: "evenodd", clipRule: "evenodd", fill: "url(#a)" }}
46
+ />
47
+ <path
48
+ d="M254.5 55c-.87.08-8.6 1.45-9.53 1.64l-107 21.59-.04.01c-2.79.59-4.98 1.58-6.67 3-2.04 1.71-3.17 4.13-3.6 6.95-.09.6-.24 1.82-.24 3.62v133.92c0 3.13-.25 6.17-2.37 8.76s-4.74 3.37-7.81 3.99l-6.99 1.41c-8.84 1.78-14.59 2.99-19.8 5.01-4.98 1.93-8.71 4.39-11.68 7.51-5.89 6.17-8.28 14.54-7.46 22.38.7 6.69 3.71 13.09 8.88 17.82 3.49 3.2 7.85 5.63 12.99 6.66 5.33 1.07 11.01.7 19.31-.98 4.42-.89 8.56-2.28 12.5-4.61 3.9-2.3 7.24-5.37 9.85-9.11 2.62-3.75 4.31-7.92 5.24-12.35.96-4.57 1.19-8.7 1.19-13.26V142.81c0-6.22 1.76-7.86 6.78-9.08 0 0 88.94-17.94 93.09-18.75 5.79-1.11 8.52.54 8.52 6.61v79.29c0 3.14-.03 6.32-2.17 8.92-2.12 2.59-4.74 3.37-7.81 3.99l-6.99 1.41c-8.84 1.78-14.59 2.99-19.8 5.01-4.98 1.93-8.71 4.39-11.68 7.51-5.89 6.17-8.49 14.54-7.67 22.38.7 6.69 3.92 13.09 9.09 17.82 3.49 3.2 7.85 5.56 12.99 6.6 5.33 1.07 11.01.69 19.31-.98 4.42-.89 8.56-2.22 12.5-4.55 3.9-2.3 7.24-5.37 9.85-9.11 2.62-3.75 4.31-7.92 5.24-12.35.96-4.57 1-8.7 1-13.26V64.46c.02-6.16-3.23-9.96-9.02-9.46z"
49
+ style={{ fillRule: "evenodd", clipRule: "evenodd", fill: "#fff" }}
50
+ />
51
+ </svg>
52
+ );
53
+ }
54
+
55
+ // export function AppleMapsIcon(props: SVGProps<SVGSVGElement>) {
56
+ // return (
57
+ // <svg xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com" viewBox="0 0 500 500" {...props}>
58
+ // <path style={{ fill: 'rgb(45, 47, 47)', stroke: 'rgb(47, 47, 47)' }} d="M 0.101 123.353 C 0.101 123.353 1.473 102.766 2.542 94.752 C 3.326 88.878 4.071 84.283 5.304 79.581 C 6.416 75.339 7.845 71.529 9.401 67.722 C 10.911 64.027 12.44 60.644 14.468 57.049 C 16.712 53.07 20.082 48.312 22.446 44.975 C 24.187 42.518 25.398 40.869 27.189 38.722 C 29.248 36.253 31.861 33.336 34.197 31.068 C 36.281 29.045 38.134 27.525 40.449 25.677 C 43.152 23.519 46.825 20.791 49.505 18.993 C 51.532 17.633 53.029 16.743 55.004 15.651 C 57.2 14.437 59.493 13.275 62.119 12.093 C 65.245 10.686 69.092 9.053 72.576 7.889 C 75.92 6.772 78.958 6.03 82.603 5.194 C 86.892 4.21 91.81 3.315 96.725 2.498 C 102.051 1.612 108.527 0.442 113.436 0.127 C 117.269 -0.119 118.744 0.238 123.727 0.259 C 136.954 0.314 172.544 0.067 196.227 -0.072 C 218.982 -0.206 237.842 -0.462 263.155 -0.553 C 296.344 -0.672 352.685 -1.804 378.214 -0.553 C 390.995 0.073 398.441 0.856 406.914 2.266 C 413.784 3.409 419.192 4.529 425.365 6.622 C 432.001 8.871 439.217 12.027 445.353 15.591 C 451.215 18.996 456.412 23.105 461.497 27.379 C 466.575 31.648 471.773 36.095 475.847 41.217 C 479.869 46.273 482.883 52.03 485.841 57.874 C 488.884 63.886 491.739 70.293 493.785 76.836 C 495.851 83.443 497.201 90.426 498.141 97.337 C 499.083 104.264 499.115 112.105 499.423 118.35 C 499.671 123.367 499.8 125.183 499.935 131.931 C 500.328 151.653 500.225 208.174 500.191 248.015 C 500.155 290.288 500.258 355.917 499.679 378.705 C 499.474 386.782 499.462 389.654 498.91 395.106 C 498.355 400.588 497.363 406.215 496.347 411.506 C 495.382 416.533 494.503 421.344 493.016 426.112 C 491.519 430.912 489.711 435.564 487.379 440.206 C 484.901 445.139 481.606 450.53 478.41 454.813 C 475.582 458.604 472.746 461.429 469.441 464.807 C 465.737 468.592 461.53 472.841 457.14 476.338 C 452.734 479.848 447.48 483.415 443.046 485.82 C 439.456 487.767 436.772 488.69 432.796 490.176 C 427.476 492.165 420.267 494.916 413.833 496.326 C 407.452 497.725 400.9 498.036 394.358 498.633 C 387.747 499.236 383.868 499.61 374.37 499.914 C 350.881 500.666 293.067 499.831 251.88 499.914 C 209.967 499.999 143.004 500.497 125.034 500.426 C 120.184 500.407 119.281 500.619 115.797 500.316 C 111.189 499.915 105.798 498.829 99.848 497.712 C 92.211 496.278 80.91 494.42 73.807 492.179 C 68.629 490.545 64.996 488.672 60.787 486.645 C 56.646 484.651 52.64 482.735 48.743 480.135 C 44.595 477.368 40.396 473.81 36.699 470.37 C 33.151 467.069 29.857 463.562 26.934 459.954 C 24.135 456.498 21.976 453.117 19.448 449.212 C 16.561 444.752 12.816 439.402 10.659 434.564 C 8.757 430.298 7.794 426.075 6.753 421.87 C 5.753 417.831 5.235 414.349 4.474 409.826 C 3.5 404.039 2.144 397.681 1.545 389.97 C 0.72 379.348 1.347 368.708 1.219 351.886 C 0.968 318.86 0.418 246.903 0.243 205.083 C 0.112 173.879 0.101 123.353 0.101 123.353 C 0.101 123.353 0.101 123.353 0.101 123.353 C 0.101 123.353 0.101 123.353 0.101 123.353" bxD="M 0.101 123.353 R 2.542 94.752 R 5.304 79.581 R 9.401 67.722 R 14.468 57.049 R 22.446 44.975 R 27.189 38.722 R 34.197 31.068 R 40.449 25.677 R 49.505 18.993 R 55.004 15.651 R 62.119 12.093 R 72.576 7.889 R 82.603 5.194 R 96.725 2.498 R 113.436 0.127 R 123.727 0.259 R 196.227 -0.072 R 263.155 -0.553 R 378.214 -0.553 R 406.914 2.266 R 425.365 6.622 R 445.353 15.591 R 461.497 27.379 R 475.847 41.217 R 485.841 57.874 R 493.785 76.836 R 498.141 97.337 R 499.423 118.35 R 499.935 131.931 R 500.191 248.015 R 499.679 378.705 R 498.91 395.106 R 496.347 411.506 R 493.016 426.112 R 487.379 440.206 R 478.41 454.813 R 469.441 464.807 R 457.14 476.338 R 443.046 485.82 R 432.796 490.176 R 413.833 496.326 R 394.358 498.633 R 374.37 499.914 R 251.88 499.914 R 125.034 500.426 R 115.797 500.316 R 99.848 497.712 R 73.807 492.179 R 60.787 486.645 R 48.743 480.135 R 36.699 470.37 R 26.934 459.954 R 19.448 449.212 R 10.659 434.564 R 6.753 421.87 R 4.474 409.826 R 1.545 389.97 R 1.219 351.886 R 0.243 205.083 R 0.101 123.353 R 0.101 123.353 Z 1@45091c20" />
59
+ // <path style={{ fill: 'rgb(85, 85, 85)', stroke: 'rgb(85, 85, 85)' }} d="M 12.506 60.201 C 12.506 60.201 9.87 65.191 8.724 68.143 C 7.705 70.767 6.96 73.314 6.18 75.71 C 5.478 77.865 4.742 79.681 4.238 81.87 C 3.685 84.273 3.489 87.076 3.099 89.571 C 2.729 91.935 2.303 93.71 1.961 96.468 C 1.455 100.551 1.095 107.221 0.689 111.735 C 0.365 115.337 -0.021 116.669 -0.249 121.444 C -0.884 134.759 -0.178 197.284 -0.178 197.284 L 76.538 247.769 L 77.722 245.898 C 77.722 245.898 78.405 244.871 79.532 243.205 C 81.314 240.57 84.435 236.101 86.732 233.205 C 88.615 230.831 90.241 229.116 92.172 226.965 C 94.296 224.598 96.81 221.795 98.972 219.605 C 100.82 217.732 102.227 216.365 104.286 214.563 C 106.916 212.261 110.315 209.45 113.586 207.062 C 116.977 204.586 120.371 202.217 124.311 199.994 C 128.746 197.491 139.004 192.989 139.004 192.989 L 138.788 128.611 L 138.788 -0.476 L 113.96 -0.07 C 113.96 -0.07 114.112 78.535 114.127 95.554 C 114.132 101.752 114.439 105.206 114.127 108.237 C 113.95 109.958 113.902 111.16 113.293 112.243 C 112.736 113.233 111.67 113.835 110.79 114.579 C 109.892 115.339 108.921 116.311 107.953 116.749 C 107.134 117.12 106.313 117.214 105.449 117.249 C 104.536 117.286 103.552 117.173 102.612 116.915 C 101.604 116.638 100.753 116.175 99.608 115.58 C 97.959 114.723 96.067 113.459 93.767 112.076 C 90.443 110.077 85.649 107.345 81.585 104.733 C 77.361 102.018 73.907 99.409 68.902 96.055 C 61.754 91.266 50.769 84.19 42.701 78.866 C 35.754 74.282 23.342 66.016 23.342 66.016 L 13.187 59.206 L 12.506 60.201 Z" />
60
+ // <path style={{ fill: 'rgb(85, 85, 85)', stroke: 'rgb(85, 85, 85)' }} d="M 239.27 -0.729 L 263.585 -0.832 L 263.56 207.072 L 263.073 206.742 C 263.073 206.742 262.614 206.437 262.39 206.274 C 262.164 206.11 261.945 205.936 261.723 205.763 C 261.499 205.588 261.344 205.45 261.052 205.229 C 260.531 204.835 259.564 204.174 258.839 203.634 C 258.121 203.1 257.509 202.562 256.722 202.007 C 255.793 201.352 254.665 200.622 253.598 199.988 C 252.528 199.352 251.435 198.793 250.31 198.198 C 249.138 197.578 247.928 196.96 246.697 196.342 C 245.423 195.702 244.095 195.004 242.79 194.422 C 241.523 193.857 238.982 192.892 238.982 192.892 L 239.27 -0.729 Z" />
61
+ // <polygon style={{ stroke: 'rgb(71, 71, 71)', fill: 'rgb(72, 72, 72)' }} points="114.665 500.258 114.665 414.406 263.475 412.816 264.111 500.894" />
62
+ // <polygon style={{ fill: 'rgb(0, 135, 255)', stroke: 'rgb(1, 131, 255)' }} points="139.396 -0.372 139.077 198.575 239.349 199.533 238.71 -1.011" />
63
+ // <path style={{ fill: 'rgb(63, 63, 63)', stroke: 'rgb(63, 63, 63)' }} d="M 440.456 487.457 L 285.126 384.993 L 293.216 244.36 L 499.94 380.637 L 499.956 380.825 C 499.956 380.825 500.117 384.09 500.089 385.994 C 500.054 388.347 499.864 391.522 499.651 393.883 C 499.477 395.817 499.252 397.317 498.994 399.143 C 498.712 401.138 498.394 403.12 498.008 405.388 C 497.543 408.114 496.983 411.314 496.364 414.373 C 495.713 417.59 494.983 421.205 494.173 424.234 C 493.466 426.878 492.737 429.284 491.872 431.576 C 491.078 433.679 490.155 435.538 489.242 437.492 C 488.329 439.446 487.425 441.354 486.393 443.3 C 485.314 445.334 484.028 447.655 482.887 449.436 C 481.955 450.891 481.14 451.946 480.147 453.271 C 479.041 454.747 477.75 456.416 476.532 457.873 C 475.375 459.257 474.302 460.464 473.025 461.818 C 471.591 463.339 469.76 465.157 468.314 466.529 C 467.136 467.647 466.1 468.47 465.027 469.488 C 463.945 470.514 462.968 471.614 461.849 472.665 C 460.673 473.77 459.38 474.901 458.124 475.952 C 456.895 476.981 455.777 477.883 454.398 478.911 C 452.764 480.13 450.505 481.672 448.919 482.746 C 447.724 483.556 446.907 484.158 445.742 484.828 C 444.418 485.589 441.359 487.019 441.359 487.019 L 440.456 487.457 Z" />
64
+ // <circle style={{ fill: 'rgb(255, 255, 255)', stroke: 'rgb(255, 255, 255)' }} cx="187.457" cy="305.332" r="121.246" transform="matrix(1.05274, 0, 0, 1.053851, -8.338326, -10.586183)" />
65
+ // <path style={{ stroke: 'rgb(87, 89, 88)', fill: 'rgb(88, 88, 88)' }} d="M 453.48 95.415 C 454.206 95.861 461.601 98.551 465.322 99.881 C 469.958 101.538 479.247 104.752 485.094 105.299 C 489.974 105.756 499.169 105.187 499.169 105.187 L 499.281 106.416 C 499.281 106.416 499.385 108.348 499.449 109.489 C 499.529 110.924 499.652 111.565 499.728 113.119 C 499.798 114.552 499.841 116.13 499.896 117.252 C 499.934 118.024 500.007 119.206 500.007 119.206 L 499.951 121.385 L 500.51 195.952 C 500.51 195.952 490.836 194.166 486.379 193.941 C 482.401 193.741 478.871 193.581 475.096 193.159 C 471.257 192.73 467.376 192.138 463.534 191.372 C 459.649 190.597 456.06 189.605 451.916 188.523 C 447.106 187.267 440.879 185.688 436.388 184.222 C 432.855 183.069 430.228 181.996 427.061 180.703 C 423.7 179.33 420.165 177.772 416.783 176.179 C 413.407 174.588 410.1 172.987 406.785 171.152 C 403.359 169.255 399.622 166.832 396.564 164.952 C 394.058 163.412 392.188 162.336 389.75 160.707 C 386.793 158.731 383.08 156.09 380.142 153.837 C 377.531 151.835 375.413 150.073 372.937 147.917 C 370.163 145.502 366.866 142.351 364.336 139.985 C 362.315 138.095 360.671 136.698 358.918 134.846 C 357.072 132.896 355.214 130.434 353.556 128.535 C 352.162 126.938 350.977 125.752 349.646 124.178 C 348.154 122.414 346.471 120.285 345.066 118.425 C 343.793 116.739 342.802 115.286 341.547 113.51 C 340.076 111.428 338.275 109.023 336.799 106.696 C 335.334 104.386 334.077 101.957 332.722 99.602 C 331.377 97.265 330.03 95.08 328.7 92.62 C 327.254 89.947 325.787 87.076 324.399 84.13 C 322.933 81.02 321.312 77.335 320.154 74.411 C 319.225 72.067 318.701 70.125 317.864 67.988 C 317.01 65.806 315.881 63.677 315.071 61.453 C 314.261 59.227 313.621 56.92 313.005 54.639 C 312.394 52.377 311.926 50.133 311.385 47.824 C 310.827 45.443 310.259 42.979 309.709 40.563 C 309.161 38.157 308.564 35.711 308.09 33.358 C 307.639 31.117 307.191 28.796 306.917 26.767 C 306.684 25.045 306.594 23.5 306.47 21.964 C 306.356 20.55 306.309 19.334 306.191 17.886 C 306.056 16.233 305.802 14.117 305.688 12.58 C 305.601 11.401 305.567 10.48 305.52 9.452 C 305.474 8.452 305.427 7.474 305.409 6.492 C 305.391 5.519 305.401 4.609 305.409 3.587 C 305.418 2.444 305.464 -0.043 305.464 -0.043 L 394.609 0.404 C 394.609 0.404 394.685 8.49 394.944 11.854 C 395.149 14.522 395.353 16.585 395.838 19.003 C 396.353 21.57 397.207 23.998 398.016 26.823 C 398.978 30.182 399.775 33.92 401.256 37.826 C 403.05 42.559 406.33 49.042 408.405 53.075 C 409.813 55.811 410.611 57.467 412.203 59.833 C 414.178 62.768 417.313 66.361 419.632 69.161 C 421.587 71.522 423.149 73.505 425.162 75.584 C 427.283 77.775 429.95 80.018 432.088 81.952 C 433.906 83.597 434.907 84.868 437.17 86.476 C 440.794 89.051 452.419 94.966 452.419 94.966 L 453.48 95.415 Z" />
66
+ // <path style={{ fill: 'rgb(61, 61, 61)', stroke: 'rgb(61, 61, 61)' }} d="M 381.083 -0.001 L 316.765 -0.64 C 316.765 -0.64 316.754 4.509 316.893 7.416 C 317.057 10.856 317.354 14.863 317.788 18.668 C 318.238 22.616 318.906 26.645 319.578 30.688 C 320.266 34.827 320.869 38.786 321.88 43.219 C 323.047 48.334 324.532 54.438 326.355 59.586 C 328.066 64.417 330.581 69.137 332.365 73.268 C 333.835 76.671 334.81 79.479 336.329 82.603 C 337.939 85.914 339.96 89.404 341.827 92.577 C 343.587 95.567 345.192 98.084 347.198 101.144 C 349.58 104.777 352.49 109.41 355.254 112.908 C 357.707 116.012 360.199 118.373 362.798 121.22 C 365.559 124.245 368.235 127.418 371.365 130.554 C 374.824 134.019 379.206 137.908 382.746 141.039 C 385.74 143.687 388.059 145.967 391.185 148.2 C 394.604 150.643 399.3 153.013 402.565 154.977 C 405.043 156.468 406.647 157.523 409.087 158.941 C 412.127 160.708 416.037 162.969 419.444 164.695 C 422.638 166.313 426.012 167.823 428.907 169.043 C 431.301 170.052 433.379 170.796 435.556 171.6 C 437.638 172.369 439.509 173.053 441.694 173.774 C 444.16 174.588 447.146 175.463 449.622 176.204 C 451.796 176.854 453.499 177.459 455.759 177.994 C 458.475 178.637 461.699 179.12 464.838 179.656 C 468.204 180.231 471.771 180.833 475.323 181.318 C 478.971 181.817 483.126 182.319 486.448 182.597 C 489.13 182.822 491.387 182.966 493.737 182.981 C 495.938 182.995 500.13 182.725 500.13 182.725 L 500.13 118.918 L 500.078 116.872 C 500.078 116.872 496.32 116.768 494.248 116.616 C 491.917 116.445 489.559 116.16 486.832 115.849 C 483.469 115.465 479.112 115.085 475.579 114.443 C 472.373 113.861 469.432 113.235 466.5 112.269 C 463.594 111.312 460.806 110.274 457.851 109.056 C 454.612 107.721 451.23 106.264 447.831 104.597 C 444.195 102.813 440.39 100.367 436.962 98.203 C 433.766 96.186 430.458 93.995 427.884 92.065 C 425.855 90.544 424.478 89.327 422.641 87.718 C 420.503 85.845 418.022 83.757 415.864 81.452 C 413.577 79.01 411.482 76.18 409.343 73.396 C 407.132 70.518 404.801 67.396 402.716 64.497 C 400.763 61.781 399.062 59.463 397.353 56.465 C 395.385 53.014 393.435 48.506 391.952 44.754 C 390.635 41.423 389.626 38.592 388.628 35.163 C 387.51 31.32 386.473 26.491 385.687 22.76 C 385.047 19.722 384.558 17.226 384.152 14.448 C 383.749 11.685 383.421 8.701 383.257 6.137 C 383.116 3.94 383.129 -0.001 383.129 -0.001 L 381.083 -0.001 Z" />
67
+ // <circle style={{ stroke: 'rgb(1, 137, 255)', fill: 'rgb(1, 134, 255)' }} cx="187.935" cy="297.57" r="92.289" transform="matrix(1.143598, 0, 0, 1.145328, -25.869421, -29.833115)" />
68
+ // <path style={{ stroke: 'rgb(255, 255, 255)', fill: 'rgb(255, 255, 255)' }} d="M 175.515 249.33 L 131.486 361.462 C 131.486 361.462 130.866 363.45 130.813 364.491 C 130.757 365.579 130.829 366.789 131.206 367.856 C 131.604 368.983 132.5 370.237 133.225 371.053 C 133.792 371.691 134.331 372.158 135.019 372.511 C 135.742 372.882 136.607 373.09 137.487 373.184 C 138.463 373.288 139.653 373.221 140.628 373.016 C 141.531 372.826 142.385 372.484 143.152 372.062 C 143.894 371.654 145.171 370.548 145.171 370.548 L 179.312 336.363 L 180.726 334.802 C 180.726 334.802 182.029 333.363 182.735 332.638 C 183.483 331.87 184.456 330.897 185.104 330.32 C 185.524 329.946 185.782 329.674 186.186 329.444 C 186.603 329.206 187.137 329.04 187.577 328.929 C 187.955 328.833 188.279 328.78 188.659 328.775 C 189.081 328.769 189.581 328.763 189.998 328.929 C 190.444 329.107 190.808 329.496 191.235 329.857 C 191.743 330.286 192.277 330.811 192.822 331.36 C 193.44 331.982 194.092 332.702 194.738 333.411 C 195.417 334.156 196.798 335.729 196.798 335.729 L 227.42 365.741 L 228.698 367.152 C 228.698 367.152 230.894 369.614 231.932 370.492 C 232.754 371.187 233.512 371.701 234.344 372.118 C 235.123 372.509 236.022 372.783 236.755 372.96 C 237.343 373.102 237.806 373.176 238.382 373.184 C 239.031 373.194 239.788 373.112 240.457 372.96 C 241.115 372.81 241.801 372.577 242.364 372.286 C 242.872 372.023 243.303 371.685 243.71 371.333 C 244.104 370.992 244.443 370.592 244.775 370.211 C 245.095 369.844 245.459 369.518 245.673 369.09 C 245.897 368.644 245.963 368.096 246.065 367.575 C 246.171 367.032 246.244 366.418 246.29 365.893 C 246.33 365.435 246.368 365.083 246.346 364.603 C 246.318 363.992 246.221 363.187 246.065 362.528 C 245.916 361.9 245.7 361.393 245.448 360.733 C 245.129 359.897 244.271 357.929 244.271 357.929 L 201.79 249.359 L 199.967 244.864 C 199.967 244.864 198.779 241.672 198.226 240.322 C 197.766 239.199 197.434 238.154 196.824 237.293 C 196.256 236.491 195.462 235.806 194.749 235.274 C 194.13 234.812 193.543 234.484 192.842 234.208 C 192.078 233.907 191.135 233.711 190.318 233.591 C 189.568 233.481 188.874 233.48 188.131 233.479 C 187.36 233.478 186.476 233.434 185.775 233.591 C 185.17 233.726 184.709 233.954 184.149 234.264 C 183.466 234.642 182.585 235.314 182.018 235.779 C 181.605 236.118 181.347 236.387 181.008 236.732 C 180.637 237.11 180.208 237.503 179.886 237.966 C 179.549 238.451 179.386 238.917 179.103 239.563 C 178.715 240.451 178.201 241.696 177.867 242.758 C 177.554 243.75 176.793 245.675 176.793 245.675 L 175.515 249.33 Z" />
69
+ // </svg>
70
+ // );
71
+ // }
72
+
73
+ export function AppleSafariIcon(props: SVGProps<SVGSVGElement>) {
74
+ return (
75
+ <svg
76
+ xmlns="http://www.w3.org/2000/svg"
77
+ viewBox="0 0 32 32"
78
+ width="64"
79
+ height="64"
80
+ {...props}
81
+ >
82
+ <defs>
83
+ <linearGradient
84
+ id="A"
85
+ x1="67.763"
86
+ y1="41.314"
87
+ x2="67.763"
88
+ y2="133.674"
89
+ gradientUnits="userSpaceOnUse"
90
+ >
91
+ <stop offset="0" stopColor="#f7f8f8" />
92
+ <stop offset="1" stopColor="#cdcccc" />
93
+ </linearGradient>
94
+ <radialGradient
95
+ id="B"
96
+ cx="-1258.61"
97
+ cy="397.67"
98
+ r=".04"
99
+ gradientTransform="matrix(1209.4699,0,0,-1209.4699,1522313.3,481056.29)"
100
+ gradientUnits="userSpaceOnUse"
101
+ >
102
+ <stop offset="0" stopColor="#69cce3" />
103
+ <stop offset="1" stopColor="#396fb6" />
104
+ </radialGradient>
105
+ </defs>
106
+ <g transform="matrix(.335585 0 0 .335585 -4.789443 -12.347336)">
107
+ <circle r="47.678" cy="84.472" cx="61.949" fill="url(#A)" />
108
+ <circle r="43.706" cy="84.472" cx="61.949" fill="url(#B)" />
109
+ <path
110
+ d="M61.95 43.556V50.5m0 74.887v-6.954m4-74.685l-.3 2.97m-7.724 78.477l.3-2.97m44.64-37.753H95.9m-74.9 0h6.954m74.72 4.013l-2.97-.3m-78.5-7.737l2.97.3M90.88 55.54l-4.92 4.907m-52.956 52.956l4.92-4.907M93.574 58.5l-2.3 1.897M30.3 110.434l2.3-1.897m58.28 4.866l-4.92-4.907M33.004 55.54l4.92 4.907M87.898 116.1l-1.883-2.3M35.987 52.833l1.883 2.3m39.734-8.47l-2.666 6.432M46.28 122.28l2.666-6.432M81.232 48.38l-1.402 2.625m-37.177 69.558l1.402-2.625m55.7-17.812l-6.418-2.653M24.14 68.817l6.418 2.653m67.47 32.298l-2.625-1.416M25.858 65.175l2.625 1.416m71.262 2.226l-6.418 2.653M24.14 100.126l6.418-2.653m70.548-24.876l-2.86.866M22.78 96.346l2.86-.866m51.964 26.8l-2.666-6.432M46.28 46.662l2.666 6.432m24.878 70.534l-.866-2.845M50.06 45.315l.866 2.845m18.994-3.82l-1.347 6.817m-14.6 73.447l1.347-6.817m18.514-72.472l-.866 2.845M50.06 123.628l.866-2.845m51.156-28.326l-6.83-1.36m-73.45-14.6l6.83 1.36m72.474 18.5l-2.86-.866M22.78 72.597l2.86.866M95.966 61.74L90.18 65.6m-62.26 41.604l5.786-3.862m64.32-38.167L95.4 66.6m-69.544 37.177l2.625-1.416m56.2 16.15l-3.862-5.786M39.203 50.44l3.862 5.786m38.167 64.337l-1.402-2.625M42.653 48.38l1.402 2.625m40.627-.565l-3.862 5.786m-41.617 62.276l3.862-5.786m44.833-59.883l-1.883 2.3M35.987 116.1l1.883-2.3m58.096-6.596l-5.786-3.862M27.92 61.74l5.786 3.862m59.868 44.832l-2.3-1.897M30.3 58.5l2.3 1.897m69.482 16.1l-6.83 1.36m-73.45 14.6l6.83-1.36m74.04-10.638l-2.97.3m-78.5 7.737l2.97-.3m45.748 36.42l-1.347-6.817m-14.6-73.45l1.347 6.817m10.64 74.038l-.3-2.97m-7.724-78.477l.3 2.97"
111
+ fill="none"
112
+ stroke="#dededd"
113
+ strokeLinecap="round"
114
+ strokeWidth=".99"
115
+ />
116
+ <path d="M57.592 80.115l4.357 4.357-30 30z" fill="#dededd" />
117
+ <path d="M91.925 54.482l-29.975 30-4.357-4.357z" fill="#ee4544" />
118
+ <path d="M66.292 88.828L61.95 84.47l29.976-30z" fill="#cb2026" />
119
+ <path d="M66.292 88.828L61.95 84.47l-30 30z" fill="#ababab" />
120
+ </g>
121
+ </svg>
122
+ );
123
+ }
124
+
125
+ export function NotionCalendarIcon(props: SVGProps<SVGSVGElement>) {
126
+ return (
127
+ <svg
128
+ xmlns="http://www.w3.org/2000/svg"
129
+ fill="none"
130
+ viewBox="94.5 88 312.85 325"
131
+ {...props}
132
+ >
133
+ <path
134
+ d="M398.579 135.841C404.242 141.152 407.35 148.439 407.35 156.355V372.638C407.35 372.725 407.347 372.812 407.343 372.9C407.329 373.178 407.3 373.455 407.3 373.733L407.325 373.859C407.325 386.91 397.107 398.225 384.27 399.798C383.352 399.948 382.433 400.062 381.489 400.125L169.818 412.937C169.151 412.975 168.497 413 167.842 413C167.767 413 167.695 412.994 167.622 412.987C167.55 412.981 167.477 412.975 167.402 412.975C167.251 412.975 167.103 412.981 166.955 412.987C166.807 412.994 166.659 413 166.508 413C158.97 413 151.91 410.231 146.461 405.109C140.559 399.559 137.275 391.944 137.275 383.688V373.405C137.275 371.316 136.872 370.196 134.443 370.196C134.443 370.196 127.786 370.322 127.094 370.322C118.687 370.322 110.822 367.227 104.744 361.513C98.1621 355.32 94.5378 346.837 94.5378 337.638L94.5 136.495C94.5 117.806 109.677 101.658 128.327 100.501L329.264 88.066C338.438 87.4996 347.134 90.5956 353.716 96.7752C360.297 102.955 363.921 111.425 363.921 120.637V126.993C363.921 126.993 363.795 129.12 366.552 129.032L377.563 128.365C385.453 127.861 392.916 130.53 398.579 135.841Z"
135
+ fill="white"
136
+ />
137
+ <path
138
+ d="M128.454 357.071C122.803 357.008 117.782 355.562 113.881 351.924C113.881 351.924 113.868 351.924 113.856 351.899C113.403 351.458 112.975 351.006 112.572 350.552C109.489 347.028 107.815 342.51 107.815 337.627L107.777 136.484C107.777 124.843 117.593 114.397 129.209 113.679L330.12 101.245C330.561 101.22 330.988 101.207 331.429 101.207C336.45 101.207 341.132 103.019 344.706 106.392C345.196 106.858 345.662 107.336 346.09 107.84C346.837 108.692 347.5 109.602 348.08 110.564C347.501 109.609 346.834 108.702 346.09 107.852C349.098 111.351 350.746 115.806 350.746 120.639V125.787C350.746 125.787 350.872 130.003 346.694 130.28L346.719 130.305L161.928 141.884C148.375 142.727 137.364 154.469 137.364 168.049C137.364 168.049 137.288 353.699 137.275 354C137.137 357.071 134.607 357.071 132.518 357.071H128.454Z"
139
+ fill="black"
140
+ />
141
+ <path
142
+ d="M394.126 373.546C394.151 373.244 394.176 372.941 394.176 372.639L394.126 155.274C394.05 154.129 393.861 153.009 393.546 151.939C392.817 149.434 391.457 147.182 389.532 145.382C386.776 142.802 383.177 141.405 379.313 141.405C378.974 141.405 378.633 141.417 378.294 141.443L163.854 154.884C163.779 154.889 163.703 154.902 163.628 154.914C163.527 154.93 163.426 154.947 163.326 154.947C156.505 155.652 150.792 161.617 150.326 168.451C150.301 168.753 150.301 169.043 150.301 169.345V382.318C150.301 382.42 150.307 382.519 150.314 382.616C150.32 382.711 150.326 382.804 150.326 382.896C150.464 387.667 152.365 392.021 155.75 395.205C158.77 398.049 162.646 399.66 166.837 399.875H167.504L381.83 386.899C381.893 386.899 381.956 386.889 382.019 386.88C382.065 386.873 382.111 386.866 382.158 386.862C382.174 386.862 382.191 386.861 382.208 386.861C388.538 385.691 393.684 380.002 394.126 373.546ZM183.927 376.339C176.59 376.855 170.096 374.364 170.297 364.748V215.08C170.297 209.946 174.526 206.661 179.194 206.421L365.747 195.233C370.404 194.994 374.216 198.367 374.216 203.036V352.968C374.216 358.455 372.845 365.516 363.406 365.881H363.381L363.368 365.893L183.927 376.339Z"
143
+ fill="black"
144
+ />
145
+ <path
146
+ d="M227.066 252.787C218.406 253.322 215.462 259.932 215.474 270.09V271.876C214.441 272.119 213.576 272.349 212.53 272.41C206.291 272.799 201.79 267.733 201.778 258.644C201.766 244.744 214.221 231.658 237.952 230.188C259.081 228.875 272.606 239.082 272.631 257.089C272.643 270.636 261.392 280.247 250.311 283.26C271.098 284.282 279.771 295.873 279.795 310.66C279.819 335.97 261.307 350.319 232.722 352.106L232.029 352.154C210.547 353.491 195.465 345.338 195.453 331.255C195.453 323.236 201.327 316.444 210.159 315.897C210.852 315.849 211.545 315.994 212.238 315.946C213.99 330.283 223.697 335.557 233.391 334.961C242.745 334.378 249.325 328.084 249.313 319.165V318.813C249.301 304.901 237.685 304.209 220.193 303.516L217.408 286.93C233.683 283.954 241.82 278.631 241.808 269.008C241.808 258.668 236.067 252.253 227.066 252.811V252.787Z"
147
+ fill="black"
148
+ />
149
+ <path
150
+ d="M305.181 245.959C287.859 250.965 284.041 243.358 285.938 235.388C296.325 232.958 323.341 224.854 333.558 221.196L333.68 327.987L352.57 330.732C352.57 337.683 348.605 342.032 341.501 342.482C335.614 342.846 321.93 343.345 315.349 343.758C305.132 344.39 286.424 345.921 286.424 345.921C285.901 344.524 285.731 343.114 285.731 341.862C285.731 338.472 287.105 334.998 291.606 333.478L305.29 329.056L305.193 245.971L305.181 245.959Z"
151
+ fill="black"
152
+ />
153
+ </svg>
154
+ );
155
+ }
156
+
157
+ export function NetflixIcon(props: SVGProps<SVGSVGElement>) {
158
+ return (
159
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" {...props}>
160
+ <defs>
161
+ <path
162
+ id="SVG8fYEGcDn"
163
+ fill="#b1060f"
164
+ stroke="#000"
165
+ d="m141.676 41.275l-.067 38.361l-.068 38.361l-3.156-8.905l-.006-.017l-4.078 85.402c4.01 11.324 6.158 17.369 6.182 17.393c.031.032 2.317.17 5.078.307c8.366.415 18.734 1.304 26.599 2.282c1.821.226 3.388.342 3.483.257c.094-.084.145-39.143.114-86.797l-.058-86.644zm-61.538-.115v86.732c0 47.703.047 86.779.104 86.836s3.011-.222 6.565-.62c3.553-.398 8.465-.893 10.914-1.1c3.756-.317 14.97-1.038 16.268-1.046c.378-.002.402-1.95.457-36.735l.058-36.734l2.713 7.677l.96 2.713l4.077-85.381l-1.401-3.96a32066 32066 0 0 0-6.283-17.754l-.225-.628z"
166
+ />
167
+ <path
168
+ id="SVGk3mpMeLQ"
169
+ fill="url(#SVG4ILQC65E)"
170
+ d="M80.138 41.16v48.685l34.296 90.976c.004-2.085.008-3.211.012-5.594l.058-36.734l2.713 7.677c15.104 42.738 23.218 65.652 23.266 65.7c.031.032 2.317.17 5.078.307c8.366.415 18.734 1.304 26.599 2.282c1.821.226 3.388.342 3.483.257c.064-.058.107-19.21.118-46.227l-34.136-98.14l-.016 9.287l-.068 38.361l-3.156-8.905c-3.084-8.701-5.143-14.52-17.532-49.55a32066 32066 0 0 0-6.283-17.754l-.225-.628z"
171
+ />
172
+ <path
173
+ id="SVGVthXec6c"
174
+ fill="#e50914"
175
+ d="m80.139 41.16l34.365 97.377v-.044l2.713 7.677c15.104 42.738 23.218 65.652 23.266 65.7c.031.032 2.317.17 5.078.307c8.366.415 18.734 1.304 26.599 2.282c1.812.225 3.37.34 3.48.258l-34.1-96.737v.017l-3.156-8.905c-3.084-8.701-5.143-14.52-17.532-49.55c-3.332-9.42-6.159-17.408-6.283-17.754l-.225-.628z"
176
+ />
177
+ <radialGradient
178
+ id="SVG4ILQC65E"
179
+ cx="48.34%"
180
+ cy="49.419%"
181
+ r="70.438%"
182
+ fx="48.34%"
183
+ fy="49.419%"
184
+ gradientTransform="matrix(1 0 0 .55088 0 .222)"
185
+ >
186
+ <stop offset="0%" />
187
+ <stop offset="100%" stopOpacity="0" />
188
+ </radialGradient>
189
+ </defs>
190
+ <path d="M0 0h255.904v255.904H0z" />
191
+ <use href="#SVG8fYEGcDn" strokeWidth="2.956" />
192
+ <use href="#SVGk3mpMeLQ" />
193
+ <use href="#SVGVthXec6c" />
194
+ <use href="#SVG8fYEGcDn" strokeWidth="2.956" />
195
+ <use href="#SVGk3mpMeLQ" />
196
+ <use href="#SVGVthXec6c" />
197
+ </svg>
198
+ );
199
+ }
200
+
201
+ export function AdobePhotoshopIcon(props: SVGProps<SVGSVGElement>) {
202
+ return (
203
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 250" {...props}>
204
+ <rect width="256" height="249.6" fill="#001e36" rx="42.5" />
205
+ <path
206
+ fill="#31a8ff"
207
+ d="M57.644 175.035V65.297q0-1.201 1.031-1.202l1.087-.003l1.858-.02l2.582-.051l8.65-.183l9.275-.172q4.893-.085 9.702-.086q13.05 0 21.982 3.263a38.1 38.1 0 0 1 14.34 8.758a33.6 33.6 0 0 1 7.814 12.108a40.2 40.2 0 0 1 2.405 13.824q0 13.741-6.355 22.669a35.9 35.9 0 0 1-16.6 12.756l-.573.21c-6.973 2.601-14.695 3.541-23.164 3.6l-1.316.004l-1.953-.01l-.985-.014l-1.098-.026l-.662-.026l-.402-.021l-.989-.036l-1.209-.025l-1.82-.013l-.405-.001v34.263a1.366 1.366 0 0 1-1.546 1.546H58.847q-1.204.001-1.203-1.374M80.84 84.703v35.792q2.23.173 4.12.172h5.668a40.3 40.3 0 0 0 11.533-1.727l.746-.233a18.5 18.5 0 0 0 8.759-5.668q3.228-3.807 3.344-10.492l.005-.499c.09-3.322-.774-6.6-2.491-9.445a16 16 0 0 0-7.47-6.097a31.8 31.8 0 0 0-12.537-2.146l-2.178.006l-1.374.012l-1.311.017l-1.85.036l-1.35.038l-.701.026l-.937.044l-.798.049l-.455.036l-.393.038l-.173.02zm123.93 29.284a40.2 40.2 0 0 0-9.458-3.442l-.76-.164a54.3 54.3 0 0 0-11.009-1.363l-.926-.011a22.2 22.2 0 0 0-6.44.773a5.8 5.8 0 0 0-3.35 2.146a5.4 5.4 0 0 0-.858 2.92a4.56 4.56 0 0 0 1.03 2.747a11.7 11.7 0 0 0 3.235 2.637l.372.197a72 72 0 0 0 7.556 3.52a75 75 0 0 1 16.4 7.814a24.94 24.94 0 0 1 8.416 8.845a23.6 23.6 0 0 1 2.49 10.99a24.7 24.7 0 0 1-4.122 14.169a27.1 27.1 0 0 1-11.936 9.53q-7.556 3.32-18.557 3.432l-.762.004a70 70 0 0 1-13.556-1.188l-.956-.186a46.3 46.3 0 0 1-10.905-3.435a2.22 2.22 0 0 1-1.202-1.89v-18.718a1.01 1.01 0 0 1 .43-.945a.83.83 0 0 1 .944.086a45.9 45.9 0 0 0 13.223 5.238a54.5 54.5 0 0 0 12.537 1.632q6.009 0 8.844-1.546a4.86 4.86 0 0 0 2.834-4.465q0-2.23-2.576-4.293q-1.08-.864-3.097-1.88l-.643-.316l-.686-.323l-.36-.164l-.754-.334l-.393-.17l-.82-.344l-.427-.175l-.886-.355l-.46-.18l-.953-.367l-.997-.373a63 63 0 0 1-15.199-7.728a26.2 26.2 0 0 1-8.071-9.016a23.7 23.7 0 0 1-2.49-10.905a24.6 24.6 0 0 1 3.606-12.88c2.7-4.27 6.576-7.67 11.163-9.788q7.555-3.776 18.89-3.779a83.6 83.6 0 0 1 13.224.945a34.7 34.7 0 0 1 9.206 2.49c.473.136.854.485 1.03.945c.117.419.174.852.172 1.288v17.345c.025.41-.172.803-.515 1.03a1.66 1.66 0 0 1-1.478 0"
208
+ />
209
+ </svg>
210
+ );
211
+ }
212
+
213
+ export function SpotifyIcon(props: SVGProps<SVGSVGElement>) {
214
+ return (
215
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" {...props}>
216
+ <path
217
+ fill="#1ed760"
218
+ d="M128 0C57.308 0 0 57.309 0 128c0 70.696 57.309 128 128 128c70.697 0 128-57.304 128-128C256 57.314 198.697.007 127.998.007zm58.699 184.614c-2.293 3.76-7.215 4.952-10.975 2.644c-30.053-18.357-67.885-22.515-112.44-12.335a7.98 7.98 0 0 1-9.552-6.007a7.97 7.97 0 0 1 6-9.553c48.76-11.14 90.583-6.344 124.323 14.276c3.76 2.308 4.952 7.215 2.644 10.975m15.667-34.853c-2.89 4.695-9.034 6.178-13.726 3.289c-34.406-21.148-86.853-27.273-127.548-14.92c-5.278 1.594-10.852-1.38-12.454-6.649c-1.59-5.278 1.386-10.842 6.655-12.446c46.485-14.106 104.275-7.273 143.787 17.007c4.692 2.89 6.175 9.034 3.286 13.72zm1.345-36.293C162.457 88.964 94.394 86.71 55.007 98.666c-6.325 1.918-13.014-1.653-14.93-7.978c-1.917-6.328 1.65-13.012 7.98-14.935C93.27 62.027 168.434 64.68 215.929 92.876c5.702 3.376 7.566 10.724 4.188 16.405c-3.362 5.69-10.73 7.565-16.4 4.187z"
219
+ />
220
+ </svg>
221
+ );
222
+ }
@@ -0,0 +1,111 @@
1
+ "use client";
2
+
3
+ import { forwardRef, useState, type ComponentPropsWithoutRef } from "react";
4
+
5
+ import {
6
+ Home,
7
+ LayoutGrid,
8
+ Search,
9
+ UserRound,
10
+ type LucideIcon,
11
+ } from "lucide-react";
12
+
13
+ import { cn } from "@/lib/cn";
14
+
15
+ export type AppDockItem = Readonly<{
16
+ id: string;
17
+ label: string;
18
+ icon?: LucideIcon;
19
+ }>;
20
+
21
+ export type AppDockProps = Readonly<
22
+ {
23
+ items?: readonly AppDockItem[];
24
+ activeId?: string;
25
+ showLabels?: boolean;
26
+ onSelect?: (id: string) => void;
27
+ } & ComponentPropsWithoutRef<"div">
28
+ >;
29
+
30
+ const DEFAULT_ITEMS: readonly AppDockItem[] = [
31
+ { id: "home", label: "Home", icon: Home },
32
+ { id: "search", label: "Search", icon: Search },
33
+ { id: "apps", label: "Apps", icon: LayoutGrid },
34
+ { id: "profile", label: "Profile", icon: UserRound },
35
+ ];
36
+
37
+ // App dock — bottom launcher matching MacDock frosted tray + hover motion.
38
+ export const AppDock = forwardRef<HTMLDivElement, AppDockProps>(
39
+ (
40
+ {
41
+ className,
42
+ items = DEFAULT_ITEMS,
43
+ activeId: activeIdProp,
44
+ showLabels = false,
45
+ onSelect,
46
+ ...props
47
+ },
48
+ ref,
49
+ ) => {
50
+ const [activeId, setActiveId] = useState(
51
+ activeIdProp ?? items[0]?.id ?? "",
52
+ );
53
+ const currentId = activeIdProp ?? activeId;
54
+
55
+ return (
56
+ <div
57
+ ref={ref}
58
+ data-slot="app-dock"
59
+ className={cn("relative overflow-visible pt-10 font-sans", className)}
60
+ {...props}
61
+ >
62
+ <nav
63
+ aria-label="App dock"
64
+ className="mx-auto inline-flex items-end gap-2.5 rounded-2xl border border-neutral-50/20 bg-white/10 p-3 shadow-xl shadow-black/10 backdrop-blur-md"
65
+ >
66
+ {items.map((item) => {
67
+ const Icon = item.icon ?? Home;
68
+ const active = item.id === currentId;
69
+
70
+ return (
71
+ <button
72
+ key={item.id}
73
+ type="button"
74
+ aria-label={item.label}
75
+ aria-current={active ? "page" : undefined}
76
+ onClick={() => {
77
+ setActiveId(item.id);
78
+ onSelect?.(item.id);
79
+ }}
80
+ className="group relative flex flex-col items-center outline-none"
81
+ >
82
+ <span className="ease-smooth pointer-events-none absolute -top-10 left-1/2 z-20 -translate-x-1/2 rounded-md bg-rose-200 px-2 py-0.5 text-[10px] font-medium whitespace-nowrap text-neutral-800 opacity-0 shadow-sm transition-[opacity,transform] duration-200 group-hover:-translate-y-0.5 group-hover:opacity-100 group-focus-visible:opacity-100">
83
+ {item.label}
84
+ </span>
85
+
86
+ <span
87
+ className={cn(
88
+ "ease-smooth flex size-11 origin-bottom cursor-pointer items-center justify-center rounded-lg shadow-md transition-transform duration-300 will-change-transform group-hover:-translate-y-2 group-hover:scale-125 group-focus-visible:-translate-y-2 group-focus-visible:scale-125",
89
+ active
90
+ ? "bg-neutral-900 text-white"
91
+ : "bg-neutral-50 text-neutral-700",
92
+ )}
93
+ >
94
+ <Icon size={18} aria-hidden strokeWidth={1.75} />
95
+ </span>
96
+
97
+ {showLabels ? (
98
+ <span className="mt-1 text-[10px] font-medium text-neutral-500">
99
+ {item.label}
100
+ </span>
101
+ ) : null}
102
+ </button>
103
+ );
104
+ })}
105
+ </nav>
106
+ </div>
107
+ );
108
+ },
109
+ );
110
+
111
+ AppDock.displayName = "AppDock";
@@ -0,0 +1,113 @@
1
+ "use client";
2
+
3
+ import { forwardRef, useState, type ComponentPropsWithoutRef } from "react";
4
+
5
+ import {
6
+ AudioLines,
7
+ Folder,
8
+ MousePointer2,
9
+ PenLine,
10
+ Sparkles,
11
+ type LucideIcon,
12
+ } from "lucide-react";
13
+
14
+ import { cn } from "@/lib/cn";
15
+
16
+ export type EditorToolItem = Readonly<{
17
+ id: string;
18
+ label: string;
19
+ icon?: LucideIcon;
20
+ }>;
21
+
22
+ export type EditorToolDockProps = Readonly<
23
+ {
24
+ tools?: readonly EditorToolItem[];
25
+ activeId?: string;
26
+ showAllTools?: boolean;
27
+ allToolsLabel?: string;
28
+ onSelect?: (id: string) => void;
29
+ onAllTools?: () => void;
30
+ } & ComponentPropsWithoutRef<"nav">
31
+ >;
32
+
33
+ const DEFAULT_TOOLS: readonly EditorToolItem[] = [
34
+ { id: "select", label: "Select", icon: MousePointer2 },
35
+ { id: "draw", label: "Draw", icon: PenLine },
36
+ { id: "generate", label: "Generate", icon: Sparkles },
37
+ { id: "audio", label: "Audio", icon: AudioLines },
38
+ ];
39
+
40
+ // Editor tool dock — vertical frosted tool strip aligned with MacDock styling.
41
+ export const EditorToolDock = forwardRef<HTMLElement, EditorToolDockProps>(
42
+ (
43
+ {
44
+ className,
45
+ tools = DEFAULT_TOOLS,
46
+ activeId: activeIdProp,
47
+ showAllTools = true,
48
+ allToolsLabel = "All tools",
49
+ onSelect,
50
+ onAllTools,
51
+ ...props
52
+ },
53
+ ref,
54
+ ) => {
55
+ const [activeId, setActiveId] = useState(
56
+ activeIdProp ?? tools[0]?.id ?? "select",
57
+ );
58
+ const currentId = activeIdProp ?? activeId;
59
+
60
+ return (
61
+ <nav
62
+ ref={ref}
63
+ data-slot="editor-tool-dock"
64
+ aria-label="Editor tools"
65
+ className={cn(
66
+ "inline-flex flex-col items-center gap-2.5 rounded-2xl border border-neutral-50 bg-white/50 p-2.5 font-sans shadow-xl shadow-black/10 backdrop-blur-md",
67
+ className,
68
+ )}
69
+ {...props}
70
+ >
71
+ {tools.map((tool) => {
72
+ const Icon = tool.icon ?? MousePointer2;
73
+ const active = tool.id === currentId;
74
+
75
+ return (
76
+ <button
77
+ key={tool.id}
78
+ type="button"
79
+ aria-label={tool.label}
80
+ aria-pressed={active}
81
+ title={tool.label}
82
+ onClick={() => {
83
+ setActiveId(tool.id);
84
+ onSelect?.(tool.id);
85
+ }}
86
+ className={cn(
87
+ "ease-smooth flex size-11 items-center justify-center rounded-lg shadow-xs shadow-neutral-100 transition-[background-color,color,transform] duration-300 will-change-transform",
88
+ active
89
+ ? "bg-neutral-900 text-white"
90
+ : "bg-neutral-50 text-neutral-600 hover:scale-110 hover:text-neutral-900",
91
+ )}
92
+ >
93
+ <Icon size={17} aria-hidden strokeWidth={1.75} />
94
+ </button>
95
+ );
96
+ })}
97
+
98
+ {showAllTools ? (
99
+ <button
100
+ type="button"
101
+ aria-label={allToolsLabel}
102
+ onClick={onAllTools}
103
+ className="ease-smooth flex size-11 items-center justify-center rounded-lg bg-rose-200 text-white shadow-xs transition-transform duration-300 hover:scale-110"
104
+ >
105
+ <Folder size={16} aria-hidden fill="currentColor" />
106
+ </button>
107
+ ) : null}
108
+ </nav>
109
+ );
110
+ },
111
+ );
112
+
113
+ EditorToolDock.displayName = "EditorToolDock";
@@ -0,0 +1,144 @@
1
+ "use client";
2
+
3
+ import {
4
+ forwardRef,
5
+ type ComponentPropsWithoutRef,
6
+ type ReactNode,
7
+ } from "react";
8
+
9
+ import Link from "next/link";
10
+
11
+ import { cn } from "@/lib/cn";
12
+
13
+ import {
14
+ AdobePhotoshopIcon,
15
+ AppleAppStoreIcon,
16
+ AppleMusicIcon,
17
+ AppleSafariIcon,
18
+ NotionCalendarIcon,
19
+ SpotifyIcon,
20
+ } from "./Icons";
21
+
22
+ export type MacDockItem = Readonly<{
23
+ title: string;
24
+ icon: ReactNode;
25
+ href: string;
26
+ }>;
27
+
28
+ export type MacDockProps = Readonly<
29
+ {
30
+ items?: readonly MacDockItem[];
31
+ desktopClassName?: string;
32
+ } & Omit<ComponentPropsWithoutRef<"div">, "children">
33
+ >;
34
+
35
+ const DEFAULT_ITEMS: readonly MacDockItem[] = [
36
+ {
37
+ title: "Adobe Photoshop",
38
+ href: "#",
39
+ icon: <AdobePhotoshopIcon className="size-full" />,
40
+ },
41
+ {
42
+ title: "Spotify",
43
+ href: "#",
44
+ icon: <SpotifyIcon className="size-full" />,
45
+ },
46
+ {
47
+ title: "Notion Calendar",
48
+ href: "#",
49
+ icon: <NotionCalendarIcon className="size-full" />,
50
+ },
51
+ {
52
+ title: "Apple Music",
53
+ href: "#",
54
+ icon: <AppleMusicIcon className="size-full" />,
55
+ },
56
+ {
57
+ title: "App Store",
58
+ href: "#",
59
+ icon: <AppleAppStoreIcon className="size-full" />,
60
+ },
61
+ {
62
+ title: "Safari",
63
+ href: "#",
64
+ icon: <AppleSafariIcon className="size-full" />,
65
+ },
66
+ ];
67
+
68
+ function DockLink({
69
+ href,
70
+ className,
71
+ children,
72
+ ariaLabel,
73
+ }: Readonly<{
74
+ href: string;
75
+ className?: string;
76
+ children: ReactNode;
77
+ ariaLabel: string;
78
+ }>) {
79
+ if (!href || href === "#") {
80
+ return (
81
+ <button type="button" aria-label={ariaLabel} className={className}>
82
+ {children}
83
+ </button>
84
+ );
85
+ }
86
+
87
+ return (
88
+ <Link href={href} aria-label={ariaLabel} className={className}>
89
+ {children}
90
+ </Link>
91
+ );
92
+ }
93
+
94
+ function DockIcon({ item }: Readonly<{ item: MacDockItem }>) {
95
+ return (
96
+ <DockLink
97
+ href={item.href}
98
+ ariaLabel={item.title}
99
+ className="group relative z-10 flex flex-col items-center outline-none"
100
+ >
101
+ <span className="ease-smooth pointer-events-none absolute -top-10 left-1/2 z-20 -translate-x-1/2 rounded-md bg-neutral-950 px-2 py-0.5 text-[10px] font-medium whitespace-nowrap text-white opacity-0 shadow-sm transition-[opacity,transform] duration-200 group-hover:-translate-y-0.5 group-hover:opacity-100 group-focus-visible:opacity-100">
102
+ {item.title}
103
+ </span>
104
+
105
+ {/* Transform on the outer wrapper — backdrop-blur fails if transform/will-change sit on the same node. */}
106
+ <span className="ease-smooth origin-bottom cursor-pointer transition-transform duration-300 group-hover:-translate-y-2 group-hover:scale-125 group-focus-visible:-translate-y-2 group-focus-visible:scale-125">
107
+ <span className="flex size-11 items-center justify-center rounded-lg border border-white/20 bg-white/50 shadow-xs shadow-black/5 backdrop-blur-xl">
108
+ <span className="size-8">{item.icon}</span>
109
+ </span>
110
+ </span>
111
+ </DockLink>
112
+ );
113
+ }
114
+
115
+ // Mac dock — frosted app tray with smooth hover lift (design reference for docks/).
116
+ export const MacDock = forwardRef<HTMLDivElement, MacDockProps>(
117
+ ({ className, items = DEFAULT_ITEMS, desktopClassName, ...props }, ref) => (
118
+ <div
119
+ ref={ref}
120
+ data-slot="mac-dock"
121
+ className={cn("relative overflow-visible pt-10 font-sans", className)}
122
+ {...props}
123
+ >
124
+ <nav
125
+ aria-label="Application dock"
126
+ className={cn(
127
+ "relative mx-auto inline-flex items-end gap-2.5 p-3",
128
+ desktopClassName,
129
+ )}
130
+ >
131
+ {/* Tray glass as a sibling layer so icon tiles can blur the page behind, not a nested filter. */}
132
+ <span
133
+ aria-hidden
134
+ className="pointer-events-none absolute inset-0 rounded-2xl border border-white/20 bg-white/10 shadow-xl shadow-black/10 backdrop-blur-md"
135
+ />
136
+ {items.map((item) => (
137
+ <DockIcon key={item.title} item={item} />
138
+ ))}
139
+ </nav>
140
+ </div>
141
+ ),
142
+ );
143
+
144
+ MacDock.displayName = "MacDock";