fancy-ui-react 0.2.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 (837) hide show
  1. package/LICENSE +21 -0
  2. package/PORTING.md +118 -0
  3. package/README.md +643 -0
  4. package/dist/cameleon/FancyProvider.d.ts +11 -0
  5. package/dist/cameleon/FancyProvider.js +42 -0
  6. package/dist/cameleon/context.d.ts +22 -0
  7. package/dist/cameleon/context.js +16 -0
  8. package/dist/cameleon/index.d.ts +31 -0
  9. package/dist/cameleon/index.js +39 -0
  10. package/dist/cameleon/primitives/Badge.d.ts +10 -0
  11. package/dist/cameleon/primitives/Badge.js +12 -0
  12. package/dist/cameleon/primitives/Button.d.ts +11 -0
  13. package/dist/cameleon/primitives/Button.js +43 -0
  14. package/dist/cameleon/primitives/Checkbox.d.ts +10 -0
  15. package/dist/cameleon/primitives/Checkbox.js +39 -0
  16. package/dist/cameleon/primitives/Input.d.ts +10 -0
  17. package/dist/cameleon/primitives/Input.js +13 -0
  18. package/dist/cameleon/primitives/Radio.d.ts +12 -0
  19. package/dist/cameleon/primitives/Radio.js +29 -0
  20. package/dist/cameleon/primitives/Select.d.ts +10 -0
  21. package/dist/cameleon/primitives/Select.js +27 -0
  22. package/dist/cameleon/primitives/Slider.d.ts +7 -0
  23. package/dist/cameleon/primitives/Slider.js +22 -0
  24. package/dist/cameleon/primitives/Switch.d.ts +9 -0
  25. package/dist/cameleon/primitives/Switch.js +33 -0
  26. package/dist/cameleon/primitives/Textarea.d.ts +9 -0
  27. package/dist/cameleon/primitives/Textarea.js +13 -0
  28. package/dist/cameleon/primitives/Tooltip.d.ts +14 -0
  29. package/dist/cameleon/primitives/Tooltip.js +15 -0
  30. package/dist/cameleon/primitives/index.d.ts +10 -0
  31. package/dist/cameleon/skins/aurora/index.d.ts +2 -0
  32. package/dist/cameleon/skins/aurora/index.js +16 -0
  33. package/dist/cameleon/skins/aurora/meta.d.ts +3 -0
  34. package/dist/cameleon/skins/aurora/meta.js +61 -0
  35. package/dist/cameleon/skins/aurora/recipes.d.ts +24 -0
  36. package/dist/cameleon/skins/aurora/recipes.js +124 -0
  37. package/dist/cameleon/skins/aurora/tokens.d.ts +6 -0
  38. package/dist/cameleon/skins/aurora/tokens.js +18 -0
  39. package/dist/cameleon/skins/brutal/index.d.ts +2 -0
  40. package/dist/cameleon/skins/brutal/index.js +35 -0
  41. package/dist/cameleon/skins/brutal/meta.d.ts +3 -0
  42. package/dist/cameleon/skins/brutal/meta.js +73 -0
  43. package/dist/cameleon/skins/brutal/ornaments.d.ts +7 -0
  44. package/dist/cameleon/skins/brutal/ornaments.js +18 -0
  45. package/dist/cameleon/skins/brutal/recipes.d.ts +23 -0
  46. package/dist/cameleon/skins/brutal/recipes.js +113 -0
  47. package/dist/cameleon/skins/brutal/tokens.d.ts +8 -0
  48. package/dist/cameleon/skins/brutal/tokens.js +23 -0
  49. package/dist/cameleon/skins/default.d.ts +2 -0
  50. package/dist/cameleon/skins/default.js +79 -0
  51. package/dist/cameleon/skins/glass/index.d.ts +2 -0
  52. package/dist/cameleon/skins/glass/index.js +16 -0
  53. package/dist/cameleon/skins/glass/meta.d.ts +3 -0
  54. package/dist/cameleon/skins/glass/meta.js +63 -0
  55. package/dist/cameleon/skins/glass/recipes.d.ts +24 -0
  56. package/dist/cameleon/skins/glass/recipes.js +124 -0
  57. package/dist/cameleon/skins/glass/tokens.d.ts +5 -0
  58. package/dist/cameleon/skins/glass/tokens.js +18 -0
  59. package/dist/cameleon/skins/retro-os/index.d.ts +2 -0
  60. package/dist/cameleon/skins/retro-os/index.js +24 -0
  61. package/dist/cameleon/skins/retro-os/meta.d.ts +3 -0
  62. package/dist/cameleon/skins/retro-os/meta.js +61 -0
  63. package/dist/cameleon/skins/retro-os/ornaments.d.ts +9 -0
  64. package/dist/cameleon/skins/retro-os/ornaments.js +28 -0
  65. package/dist/cameleon/skins/retro-os/recipes.d.ts +35 -0
  66. package/dist/cameleon/skins/retro-os/recipes.js +126 -0
  67. package/dist/cameleon/skins/retro-os/tokens.d.ts +16 -0
  68. package/dist/cameleon/skins/retro-os/tokens.js +23 -0
  69. package/dist/cameleon/skins/terminal/index.d.ts +2 -0
  70. package/dist/cameleon/skins/terminal/index.js +24 -0
  71. package/dist/cameleon/skins/terminal/meta.d.ts +3 -0
  72. package/dist/cameleon/skins/terminal/meta.js +70 -0
  73. package/dist/cameleon/skins/terminal/ornaments.d.ts +7 -0
  74. package/dist/cameleon/skins/terminal/ornaments.js +8 -0
  75. package/dist/cameleon/skins/terminal/recipes.d.ts +25 -0
  76. package/dist/cameleon/skins/terminal/recipes.js +125 -0
  77. package/dist/cameleon/skins/terminal/tokens.d.ts +5 -0
  78. package/dist/cameleon/skins/terminal/tokens.js +18 -0
  79. package/dist/cameleon/types.d.ts +133 -0
  80. package/dist/components/agent-plan/AgentPlan.d.ts +25 -0
  81. package/dist/components/agent-plan/AgentPlan.js +181 -0
  82. package/dist/components/agent-plan/index.d.ts +2 -0
  83. package/dist/components/ai-data-table/AiDataTable.d.ts +54 -0
  84. package/dist/components/ai-data-table/AiDataTable.js +110 -0
  85. package/dist/components/ai-data-table/index.d.ts +2 -0
  86. package/dist/components/alert-dialog/AlertDialog.d.ts +35 -0
  87. package/dist/components/alert-dialog/AlertDialog.js +109 -0
  88. package/dist/components/alert-dialog/index.d.ts +2 -0
  89. package/dist/components/animated-beam/AnimatedBeam.d.ts +39 -0
  90. package/dist/components/animated-beam/AnimatedBeam.js +192 -0
  91. package/dist/components/animated-beam/index.d.ts +2 -0
  92. package/dist/components/animated-testimonials/AnimatedTestimonials.d.ts +32 -0
  93. package/dist/components/animated-testimonials/AnimatedTestimonials.js +172 -0
  94. package/dist/components/animated-testimonials/index.d.ts +2 -0
  95. package/dist/components/animated-tooltip/AnimatedTooltip.d.ts +13 -0
  96. package/dist/components/animated-tooltip/AnimatedTooltip.js +137 -0
  97. package/dist/components/animated-tooltip/index.d.ts +2 -0
  98. package/dist/components/apple-card-carousel/AppleCard.d.ts +30 -0
  99. package/dist/components/apple-card-carousel/AppleCard.js +219 -0
  100. package/dist/components/apple-card-carousel/AppleCardCarousel.d.ts +14 -0
  101. package/dist/components/apple-card-carousel/AppleCardCarousel.js +30 -0
  102. package/dist/components/apple-card-carousel/index.d.ts +4 -0
  103. package/dist/components/approval-card/ApprovalCard.d.ts +57 -0
  104. package/dist/components/approval-card/ApprovalCard.js +153 -0
  105. package/dist/components/approval-card/index.d.ts +2 -0
  106. package/dist/components/artifact-card/ArtifactCard.d.ts +44 -0
  107. package/dist/components/artifact-card/ArtifactCard.js +204 -0
  108. package/dist/components/artifact-card/index.d.ts +2 -0
  109. package/dist/components/autocomplete/Autocomplete.d.ts +36 -0
  110. package/dist/components/autocomplete/Autocomplete.js +186 -0
  111. package/dist/components/autocomplete/AutocompletePanel.d.ts +12 -0
  112. package/dist/components/autocomplete/AutocompletePanel.js +123 -0
  113. package/dist/components/autocomplete/index.d.ts +4 -0
  114. package/dist/components/autocomplete/match.d.ts +6 -0
  115. package/dist/components/autocomplete/match.js +10 -0
  116. package/dist/components/autocomplete/types.d.ts +52 -0
  117. package/dist/components/autocomplete/types.js +6 -0
  118. package/dist/components/bento-grid/BentoGrid.d.ts +6 -0
  119. package/dist/components/bento-grid/BentoGrid.js +19 -0
  120. package/dist/components/bento-grid/BentoGridCard.d.ts +11 -0
  121. package/dist/components/bento-grid/BentoGridCard.js +49 -0
  122. package/dist/components/bento-grid/BentoGridItem.d.ts +9 -0
  123. package/dist/components/bento-grid/BentoGridItem.js +33 -0
  124. package/dist/components/bento-grid/index.d.ts +6 -0
  125. package/dist/components/bg-falling-stars/FallingStarsBg.d.ts +24 -0
  126. package/dist/components/bg-falling-stars/FallingStarsBg.js +134 -0
  127. package/dist/components/bg-falling-stars/index.d.ts +2 -0
  128. package/dist/components/bg-stars/StarsBackground.d.ts +40 -0
  129. package/dist/components/bg-stars/StarsBackground.js +188 -0
  130. package/dist/components/bg-stars/index.d.ts +2 -0
  131. package/dist/components/blur-reveal/BlurReveal.d.ts +19 -0
  132. package/dist/components/blur-reveal/BlurReveal.js +50 -0
  133. package/dist/components/blur-reveal/index.d.ts +2 -0
  134. package/dist/components/book/Book.d.ts +13 -0
  135. package/dist/components/book/Book.js +94 -0
  136. package/dist/components/book/BookDescription.d.ts +6 -0
  137. package/dist/components/book/BookDescription.js +9 -0
  138. package/dist/components/book/BookHeader.d.ts +6 -0
  139. package/dist/components/book/BookHeader.js +9 -0
  140. package/dist/components/book/BookTitle.d.ts +6 -0
  141. package/dist/components/book/BookTitle.js +9 -0
  142. package/dist/components/book/index.d.ts +132 -0
  143. package/dist/components/book/index.js +48 -0
  144. package/dist/components/border-beam/BorderBeam.d.ts +25 -0
  145. package/dist/components/border-beam/BorderBeam.js +45 -0
  146. package/dist/components/border-beam/index.d.ts +2 -0
  147. package/dist/components/box-reveal/BoxReveal.d.ts +20 -0
  148. package/dist/components/box-reveal/BoxReveal.js +58 -0
  149. package/dist/components/box-reveal/index.d.ts +2 -0
  150. package/dist/components/breadcrumb/Breadcrumb.d.ts +49 -0
  151. package/dist/components/breadcrumb/Breadcrumb.js +61 -0
  152. package/dist/components/breadcrumb/index.d.ts +2 -0
  153. package/dist/components/button/Button.d.ts +44 -0
  154. package/dist/components/button/Button.js +120 -0
  155. package/dist/components/button/index.d.ts +2 -0
  156. package/dist/components/button/types.d.ts +4 -0
  157. package/dist/components/button-group/ButtonGroup.d.ts +23 -0
  158. package/dist/components/button-group/ButtonGroup.js +30 -0
  159. package/dist/components/button-group/index.d.ts +4 -0
  160. package/dist/components/button-group/types.d.ts +34 -0
  161. package/dist/components/button-group/types.js +7 -0
  162. package/dist/components/card-3d/CardBody.d.ts +8 -0
  163. package/dist/components/card-3d/CardBody.js +9 -0
  164. package/dist/components/card-3d/CardContainer.d.ts +19 -0
  165. package/dist/components/card-3d/CardContainer.js +61 -0
  166. package/dist/components/card-3d/CardItem.d.ts +22 -0
  167. package/dist/components/card-3d/CardItem.js +29 -0
  168. package/dist/components/card-3d/index.d.ts +6 -0
  169. package/dist/components/card-spotlight/CardSpotlight.d.ts +16 -0
  170. package/dist/components/card-spotlight/CardSpotlight.js +65 -0
  171. package/dist/components/card-spotlight/index.d.ts +2 -0
  172. package/dist/components/chat-error/ChatError.d.ts +32 -0
  173. package/dist/components/chat-error/ChatError.js +75 -0
  174. package/dist/components/chat-error/index.d.ts +2 -0
  175. package/dist/components/chat-message/ChatMessage.d.ts +43 -0
  176. package/dist/components/chat-message/ChatMessage.js +127 -0
  177. package/dist/components/chat-message/ChatMessageAction.d.ts +20 -0
  178. package/dist/components/chat-message/ChatMessageAction.js +58 -0
  179. package/dist/components/chat-message/ChatMessageActions.d.ts +14 -0
  180. package/dist/components/chat-message/ChatMessageActions.js +30 -0
  181. package/dist/components/chat-message/ChatMessageBranches.d.ts +15 -0
  182. package/dist/components/chat-message/ChatMessageBranches.js +93 -0
  183. package/dist/components/chat-message/index.d.ts +10 -0
  184. package/dist/components/chat-message/types.d.ts +38 -0
  185. package/dist/components/chat-message/types.js +7 -0
  186. package/dist/components/chat-panel/ChatEmptyState.d.ts +17 -0
  187. package/dist/components/chat-panel/ChatEmptyState.js +42 -0
  188. package/dist/components/chat-panel/ChatPanel.d.ts +31 -0
  189. package/dist/components/chat-panel/ChatPanel.js +163 -0
  190. package/dist/components/chat-panel/index.d.ts +4 -0
  191. package/dist/components/checkbox/Checkbox.d.ts +64 -0
  192. package/dist/components/checkbox/Checkbox.js +123 -0
  193. package/dist/components/checkbox/index.d.ts +2 -0
  194. package/dist/components/code-diff/CodeDiff.d.ts +39 -0
  195. package/dist/components/code-diff/CodeDiff.js +213 -0
  196. package/dist/components/code-diff/index.d.ts +2 -0
  197. package/dist/components/colourful-text/ColourfulText.d.ts +28 -0
  198. package/dist/components/colourful-text/ColourfulText.js +73 -0
  199. package/dist/components/colourful-text/index.d.ts +2 -0
  200. package/dist/components/combobox/Combobox.d.ts +53 -0
  201. package/dist/components/combobox/Combobox.js +248 -0
  202. package/dist/components/combobox/ComboboxPanel.d.ts +28 -0
  203. package/dist/components/combobox/ComboboxPanel.js +110 -0
  204. package/dist/components/combobox/index.d.ts +4 -0
  205. package/dist/components/combobox/match.d.ts +15 -0
  206. package/dist/components/combobox/match.js +14 -0
  207. package/dist/components/combobox/types.d.ts +60 -0
  208. package/dist/components/combobox/types.js +6 -0
  209. package/dist/components/command-menu/CommandMenu.d.ts +37 -0
  210. package/dist/components/command-menu/CommandMenu.js +386 -0
  211. package/dist/components/command-menu/index.d.ts +3 -0
  212. package/dist/components/command-menu/match.d.ts +19 -0
  213. package/dist/components/command-menu/match.js +45 -0
  214. package/dist/components/command-menu/types.d.ts +19 -0
  215. package/dist/components/compare/Compare.d.ts +31 -0
  216. package/dist/components/compare/Compare.js +300 -0
  217. package/dist/components/compare/StarField.d.ts +22 -0
  218. package/dist/components/compare/StarField.js +66 -0
  219. package/dist/components/compare/index.d.ts +4 -0
  220. package/dist/components/composer/Composer.d.ts +56 -0
  221. package/dist/components/composer/Composer.js +155 -0
  222. package/dist/components/composer/ComposerAttachment.d.ts +14 -0
  223. package/dist/components/composer/ComposerAttachment.js +127 -0
  224. package/dist/components/composer/ComposerAttachments.d.ts +18 -0
  225. package/dist/components/composer/ComposerAttachments.js +85 -0
  226. package/dist/components/composer/ComposerCommandMenu.d.ts +37 -0
  227. package/dist/components/composer/ComposerCommandMenu.js +208 -0
  228. package/dist/components/composer/ComposerInput.d.ts +22 -0
  229. package/dist/components/composer/ComposerInput.js +96 -0
  230. package/dist/components/composer/ComposerModelPicker.d.ts +32 -0
  231. package/dist/components/composer/ComposerModelPicker.js +223 -0
  232. package/dist/components/composer/ComposerSubmit.d.ts +16 -0
  233. package/dist/components/composer/ComposerSubmit.js +52 -0
  234. package/dist/components/composer/ComposerToolbar.d.ts +38 -0
  235. package/dist/components/composer/ComposerToolbar.js +9 -0
  236. package/dist/components/composer/caret.d.ts +69 -0
  237. package/dist/components/composer/caret.js +112 -0
  238. package/dist/components/composer/index.d.ts +18 -0
  239. package/dist/components/composer/types.d.ts +86 -0
  240. package/dist/components/composer/types.js +7 -0
  241. package/dist/components/confetti/Confetti.d.ts +37 -0
  242. package/dist/components/confetti/Confetti.js +45 -0
  243. package/dist/components/confetti/ConfettiButton.d.ts +23 -0
  244. package/dist/components/confetti/ConfettiButton.js +29 -0
  245. package/dist/components/confetti/context.d.ts +21 -0
  246. package/dist/components/confetti/context.js +6 -0
  247. package/dist/components/confetti/index.d.ts +4 -0
  248. package/dist/components/container-scroll/ContainerScroll.d.ts +10 -0
  249. package/dist/components/container-scroll/ContainerScroll.js +74 -0
  250. package/dist/components/container-scroll/index.d.ts +2 -0
  251. package/dist/components/container-text-flip/ContainerTextFlip.d.ts +9 -0
  252. package/dist/components/container-text-flip/ContainerTextFlip.js +58 -0
  253. package/dist/components/container-text-flip/index.d.ts +2 -0
  254. package/dist/components/context-menu/ContextMenu.d.ts +39 -0
  255. package/dist/components/context-menu/ContextMenu.js +105 -0
  256. package/dist/components/context-menu/ContextMenuContent.d.ts +27 -0
  257. package/dist/components/context-menu/ContextMenuContent.js +97 -0
  258. package/dist/components/context-menu/ContextMenuTrigger.d.ts +26 -0
  259. package/dist/components/context-menu/ContextMenuTrigger.js +37 -0
  260. package/dist/components/context-menu/index.d.ts +20 -0
  261. package/dist/components/context-menu/types.d.ts +52 -0
  262. package/dist/components/context-menu/types.js +17 -0
  263. package/dist/components/context-ring/ContextRing.d.ts +33 -0
  264. package/dist/components/context-ring/ContextRing.js +257 -0
  265. package/dist/components/context-ring/index.d.ts +2 -0
  266. package/dist/components/copy-button/CopyButton.d.ts +39 -0
  267. package/dist/components/copy-button/CopyButton.js +124 -0
  268. package/dist/components/copy-button/index.d.ts +2 -0
  269. package/dist/components/date-picker/DatePicker.d.ts +58 -0
  270. package/dist/components/date-picker/DatePicker.js +331 -0
  271. package/dist/components/date-picker/date-utils.d.ts +39 -0
  272. package/dist/components/date-picker/date-utils.js +85 -0
  273. package/dist/components/date-picker/index.d.ts +2 -0
  274. package/dist/components/dialog/Dialog.d.ts +29 -0
  275. package/dist/components/dialog/Dialog.js +105 -0
  276. package/dist/components/dialog/DialogSurface.d.ts +2 -0
  277. package/dist/components/dialog/DialogSurface.js +98 -0
  278. package/dist/components/dialog/index.d.ts +2 -0
  279. package/dist/components/dialog/types.d.ts +61 -0
  280. package/dist/components/dim-siblings/DimSiblings.d.ts +30 -0
  281. package/dist/components/dim-siblings/DimSiblings.js +47 -0
  282. package/dist/components/dim-siblings/index.d.ts +2 -0
  283. package/dist/components/direction-aware-hover/DirectionAwareHover.d.ts +10 -0
  284. package/dist/components/direction-aware-hover/DirectionAwareHover.js +185 -0
  285. package/dist/components/direction-aware-hover/index.d.ts +2 -0
  286. package/dist/components/displacement-text/DisplacementText.d.ts +26 -0
  287. package/dist/components/displacement-text/DisplacementText.js +185 -0
  288. package/dist/components/displacement-text/index.d.ts +2 -0
  289. package/dist/components/dock/Dock.d.ts +28 -0
  290. package/dist/components/dock/Dock.js +80 -0
  291. package/dist/components/dock/DockIcon.d.ts +17 -0
  292. package/dist/components/dock/DockIcon.js +38 -0
  293. package/dist/components/dock/DockSeparator.d.ts +6 -0
  294. package/dist/components/dock/DockSeparator.js +20 -0
  295. package/dist/components/dock/index.d.ts +7 -0
  296. package/dist/components/dock/types.d.ts +47 -0
  297. package/dist/components/dock/types.js +15 -0
  298. package/dist/components/drawer/Drawer.d.ts +34 -0
  299. package/dist/components/drawer/Drawer.js +237 -0
  300. package/dist/components/drawer/index.d.ts +2 -0
  301. package/dist/components/dropdown-menu/DropdownMenu.d.ts +38 -0
  302. package/dist/components/dropdown-menu/DropdownMenu.js +99 -0
  303. package/dist/components/dropdown-menu/DropdownMenuContent.d.ts +15 -0
  304. package/dist/components/dropdown-menu/DropdownMenuContent.js +111 -0
  305. package/dist/components/dropdown-menu/DropdownMenuItem.d.ts +26 -0
  306. package/dist/components/dropdown-menu/DropdownMenuItem.js +74 -0
  307. package/dist/components/dropdown-menu/DropdownMenuLabel.d.ts +15 -0
  308. package/dist/components/dropdown-menu/DropdownMenuLabel.js +18 -0
  309. package/dist/components/dropdown-menu/DropdownMenuSeparator.d.ts +6 -0
  310. package/dist/components/dropdown-menu/DropdownMenuSeparator.js +15 -0
  311. package/dist/components/dropdown-menu/DropdownMenuSub.d.ts +10 -0
  312. package/dist/components/dropdown-menu/DropdownMenuSub.js +110 -0
  313. package/dist/components/dropdown-menu/DropdownMenuSubContent.d.ts +15 -0
  314. package/dist/components/dropdown-menu/DropdownMenuSubContent.js +139 -0
  315. package/dist/components/dropdown-menu/DropdownMenuSubTrigger.d.ts +17 -0
  316. package/dist/components/dropdown-menu/DropdownMenuSubTrigger.js +104 -0
  317. package/dist/components/dropdown-menu/DropdownMenuTrigger.d.ts +16 -0
  318. package/dist/components/dropdown-menu/DropdownMenuTrigger.js +67 -0
  319. package/dist/components/dropdown-menu/index.d.ts +20 -0
  320. package/dist/components/dropdown-menu/menu-shared.d.ts +39 -0
  321. package/dist/components/dropdown-menu/menu-shared.js +48 -0
  322. package/dist/components/dropdown-menu/types.d.ts +159 -0
  323. package/dist/components/dropdown-menu/types.js +32 -0
  324. package/dist/components/editorial-engine/EditorialEngine.d.ts +21 -0
  325. package/dist/components/editorial-engine/EditorialEngine.js +68 -0
  326. package/dist/components/editorial-engine/engine.d.ts +7 -0
  327. package/dist/components/editorial-engine/engine.js +558 -0
  328. package/dist/components/editorial-engine/index.d.ts +2 -0
  329. package/dist/components/file-upload/FileUpload.d.ts +63 -0
  330. package/dist/components/file-upload/FileUpload.js +438 -0
  331. package/dist/components/file-upload/index.d.ts +2 -0
  332. package/dist/components/fireworks-hdr/FireworksHdr.d.ts +56 -0
  333. package/dist/components/fireworks-hdr/FireworksHdr.js +426 -0
  334. package/dist/components/fireworks-hdr/dev.d.ts +1 -0
  335. package/dist/components/fireworks-hdr/dev.js +8 -0
  336. package/dist/components/fireworks-hdr/fireworks-shared.d.ts +444 -0
  337. package/dist/components/fireworks-hdr/fireworks-shared.js +1205 -0
  338. package/dist/components/fireworks-hdr/index.d.ts +4 -0
  339. package/dist/components/fireworks-hdr/webgl2-renderer.d.ts +20 -0
  340. package/dist/components/fireworks-hdr/webgl2-renderer.js +517 -0
  341. package/dist/components/fireworks-hdr/webgpu-renderer.d.ts +51 -0
  342. package/dist/components/fireworks-hdr/webgpu-renderer.js +461 -0
  343. package/dist/components/fireworks-hdr/webgpu-types.d.ts +159 -0
  344. package/dist/components/flickering-grid/FlickeringGrid.d.ts +33 -0
  345. package/dist/components/flickering-grid/FlickeringGrid.js +154 -0
  346. package/dist/components/flickering-grid/index.d.ts +2 -0
  347. package/dist/components/flip-card/FlipCard.d.ts +8 -0
  348. package/dist/components/flip-card/FlipCard.js +35 -0
  349. package/dist/components/flip-card/index.d.ts +2 -0
  350. package/dist/components/flip-words/FlipWords.d.ts +16 -0
  351. package/dist/components/flip-words/FlipWords.js +82 -0
  352. package/dist/components/flip-words/index.d.ts +2 -0
  353. package/dist/components/fluid-cursor/FluidCursor.d.ts +61 -0
  354. package/dist/components/fluid-cursor/FluidCursor.js +1479 -0
  355. package/dist/components/fluid-cursor/fluid-shared.d.ts +74 -0
  356. package/dist/components/fluid-cursor/fluid-shared.js +120 -0
  357. package/dist/components/fluid-cursor/index.d.ts +8 -0
  358. package/dist/components/fluid-cursor/webgpu-engine.d.ts +36 -0
  359. package/dist/components/fluid-cursor/webgpu-engine.js +922 -0
  360. package/dist/components/focus/Focus.d.ts +24 -0
  361. package/dist/components/focus/Focus.js +103 -0
  362. package/dist/components/focus/index.d.ts +2 -0
  363. package/dist/components/form-field/FormField.d.ts +46 -0
  364. package/dist/components/form-field/FormField.js +151 -0
  365. package/dist/components/form-field/index.d.ts +2 -0
  366. package/dist/components/frosted-glass/FrostedGlass.d.ts +48 -0
  367. package/dist/components/frosted-glass/FrostedGlass.js +89 -0
  368. package/dist/components/frosted-glass/index.d.ts +2 -0
  369. package/dist/components/glare-card/GlareCard.d.ts +8 -0
  370. package/dist/components/glare-card/GlareCard.js +103 -0
  371. package/dist/components/glare-card/index.d.ts +2 -0
  372. package/dist/components/glow-border/GlowBorder.d.ts +8 -0
  373. package/dist/components/glow-border/GlowBorder.js +39 -0
  374. package/dist/components/glow-border/index.d.ts +2 -0
  375. package/dist/components/glowing-effect/GlowingEffect.d.ts +23 -0
  376. package/dist/components/glowing-effect/GlowingEffect.js +157 -0
  377. package/dist/components/glowing-effect/index.d.ts +2 -0
  378. package/dist/components/gradient-button/GradientButton.d.ts +28 -0
  379. package/dist/components/gradient-button/GradientButton.js +66 -0
  380. package/dist/components/gradient-button/index.d.ts +2 -0
  381. package/dist/components/hover-card/HoverCard.d.ts +57 -0
  382. package/dist/components/hover-card/HoverCard.js +139 -0
  383. package/dist/components/hover-card/index.d.ts +2 -0
  384. package/dist/components/hyper-text/HyperText.d.ts +25 -0
  385. package/dist/components/hyper-text/HyperText.js +102 -0
  386. package/dist/components/hyper-text/index.d.ts +2 -0
  387. package/dist/components/icon-button/IconButton.d.ts +46 -0
  388. package/dist/components/icon-button/IconButton.js +62 -0
  389. package/dist/components/icon-button/index.d.ts +2 -0
  390. package/dist/components/image-generation/ImageGeneration.d.ts +33 -0
  391. package/dist/components/image-generation/ImageGeneration.js +131 -0
  392. package/dist/components/image-generation/index.d.ts +2 -0
  393. package/dist/components/image-trail-cursor/ImageTrailCursor.d.ts +15 -0
  394. package/dist/components/image-trail-cursor/ImageTrailCursor.js +75 -0
  395. package/dist/components/image-trail-cursor/index.d.ts +3 -0
  396. package/dist/components/image-trail-cursor/trail-variants.d.ts +112 -0
  397. package/dist/components/image-trail-cursor/trail-variants.js +787 -0
  398. package/dist/components/inline-citation/InlineCitation.d.ts +23 -0
  399. package/dist/components/inline-citation/InlineCitation.js +179 -0
  400. package/dist/components/inline-citation/index.d.ts +2 -0
  401. package/dist/components/input/Input.d.ts +41 -0
  402. package/dist/components/input/Input.js +74 -0
  403. package/dist/components/input/index.d.ts +2 -0
  404. package/dist/components/interactive-grid-pattern/InteractiveGridPattern.d.ts +17 -0
  405. package/dist/components/interactive-grid-pattern/InteractiveGridPattern.js +89 -0
  406. package/dist/components/interactive-grid-pattern/index.d.ts +2 -0
  407. package/dist/components/interactive-hover-button/InteractiveHoverButton.d.ts +18 -0
  408. package/dist/components/interactive-hover-button/InteractiveHoverButton.js +66 -0
  409. package/dist/components/interactive-hover-button/index.d.ts +2 -0
  410. package/dist/components/label/Label.d.ts +18 -0
  411. package/dist/components/label/Label.js +28 -0
  412. package/dist/components/label/index.d.ts +2 -0
  413. package/dist/components/letter-pullup/LetterPullup.d.ts +16 -0
  414. package/dist/components/letter-pullup/LetterPullup.js +27 -0
  415. package/dist/components/letter-pullup/index.d.ts +2 -0
  416. package/dist/components/line-hover-link/LineHoverLink.d.ts +33 -0
  417. package/dist/components/line-hover-link/LineHoverLink.js +69 -0
  418. package/dist/components/line-hover-link/index.d.ts +2 -0
  419. package/dist/components/line-reveal/LineReveal.d.ts +31 -0
  420. package/dist/components/line-reveal/LineReveal.js +117 -0
  421. package/dist/components/line-reveal/index.d.ts +2 -0
  422. package/dist/components/line-shadow-text/LineShadowText.d.ts +18 -0
  423. package/dist/components/line-shadow-text/LineShadowText.js +26 -0
  424. package/dist/components/line-shadow-text/index.d.ts +2 -0
  425. package/dist/components/link/Link.d.ts +30 -0
  426. package/dist/components/link/Link.js +82 -0
  427. package/dist/components/link/index.d.ts +2 -0
  428. package/dist/components/liquid-glass/LiquidGlass.d.ts +49 -0
  429. package/dist/components/liquid-glass/LiquidGlass.js +165 -0
  430. package/dist/components/liquid-glass/index.d.ts +2 -0
  431. package/dist/components/liquid-text/LiquidText.d.ts +35 -0
  432. package/dist/components/liquid-text/LiquidText.js +882 -0
  433. package/dist/components/liquid-text/index.d.ts +2 -0
  434. package/dist/components/logo-cloud/AnimatedLogoCloud.d.ts +13 -0
  435. package/dist/components/logo-cloud/AnimatedLogoCloud.js +38 -0
  436. package/dist/components/logo-cloud/IconLogoCloud.d.ts +10 -0
  437. package/dist/components/logo-cloud/IconLogoCloud.js +20 -0
  438. package/dist/components/logo-cloud/StaticLogoCloud.d.ts +28 -0
  439. package/dist/components/logo-cloud/StaticLogoCloud.js +45 -0
  440. package/dist/components/logo-cloud/index.d.ts +6 -0
  441. package/dist/components/magnetic/Magnetic.d.ts +35 -0
  442. package/dist/components/magnetic/Magnetic.js +113 -0
  443. package/dist/components/magnetic/index.d.ts +2 -0
  444. package/dist/components/marquee/Marquee.d.ts +16 -0
  445. package/dist/components/marquee/Marquee.js +39 -0
  446. package/dist/components/marquee/ReviewCard.d.ts +8 -0
  447. package/dist/components/marquee/ReviewCard.js +17 -0
  448. package/dist/components/marquee/index.d.ts +4 -0
  449. package/dist/components/matrix-rain/MatrixRain.d.ts +35 -0
  450. package/dist/components/matrix-rain/MatrixRain.js +130 -0
  451. package/dist/components/matrix-rain/index.d.ts +2 -0
  452. package/dist/components/meteors/Meteors.d.ts +21 -0
  453. package/dist/components/meteors/Meteors.js +45 -0
  454. package/dist/components/meteors/index.d.ts +2 -0
  455. package/dist/components/mosaic-glow/MosaicGlow.d.ts +47 -0
  456. package/dist/components/mosaic-glow/MosaicGlow.js +438 -0
  457. package/dist/components/mosaic-glow/index.d.ts +2 -0
  458. package/dist/components/mosaic-glow/mosaic-glow-core.d.ts +94 -0
  459. package/dist/components/mosaic-glow/mosaic-glow-core.js +190 -0
  460. package/dist/components/navbar/Navbar.d.ts +25 -0
  461. package/dist/components/navbar/Navbar.js +27 -0
  462. package/dist/components/navbar/NavbarLink.d.ts +37 -0
  463. package/dist/components/navbar/NavbarLink.js +48 -0
  464. package/dist/components/navbar/index.d.ts +4 -0
  465. package/dist/components/navigation-menu/NavigationMenu.d.ts +28 -0
  466. package/dist/components/navigation-menu/NavigationMenu.js +202 -0
  467. package/dist/components/navigation-menu/NavigationMenuContent.d.ts +8 -0
  468. package/dist/components/navigation-menu/NavigationMenuContent.js +77 -0
  469. package/dist/components/navigation-menu/NavigationMenuItem.d.ts +20 -0
  470. package/dist/components/navigation-menu/NavigationMenuItem.js +18 -0
  471. package/dist/components/navigation-menu/NavigationMenuLink.d.ts +31 -0
  472. package/dist/components/navigation-menu/NavigationMenuLink.js +41 -0
  473. package/dist/components/navigation-menu/NavigationMenuList.d.ts +8 -0
  474. package/dist/components/navigation-menu/NavigationMenuList.js +33 -0
  475. package/dist/components/navigation-menu/NavigationMenuTrigger.d.ts +8 -0
  476. package/dist/components/navigation-menu/NavigationMenuTrigger.js +90 -0
  477. package/dist/components/navigation-menu/index.d.ts +14 -0
  478. package/dist/components/navigation-menu/types.d.ts +107 -0
  479. package/dist/components/navigation-menu/types.js +32 -0
  480. package/dist/components/neon-border/NeonBorder.d.ts +22 -0
  481. package/dist/components/neon-border/NeonBorder.js +50 -0
  482. package/dist/components/neon-border/index.d.ts +2 -0
  483. package/dist/components/noise-reveal/NoiseReveal.d.ts +29 -0
  484. package/dist/components/noise-reveal/NoiseReveal.js +329 -0
  485. package/dist/components/noise-reveal/index.d.ts +2 -0
  486. package/dist/components/number-input/NumberInput.d.ts +40 -0
  487. package/dist/components/number-input/NumberInput.js +207 -0
  488. package/dist/components/number-input/index.d.ts +2 -0
  489. package/dist/components/number-ticker/NumberTicker.d.ts +22 -0
  490. package/dist/components/number-ticker/NumberTicker.js +106 -0
  491. package/dist/components/number-ticker/index.d.ts +2 -0
  492. package/dist/components/pagination/Pagination.d.ts +43 -0
  493. package/dist/components/pagination/Pagination.js +156 -0
  494. package/dist/components/pagination/index.d.ts +2 -0
  495. package/dist/components/pagination/pagination-range.d.ts +11 -0
  496. package/dist/components/pagination/pagination-range.js +35 -0
  497. package/dist/components/password-input/PasswordInput.d.ts +56 -0
  498. package/dist/components/password-input/PasswordInput.js +246 -0
  499. package/dist/components/password-input/index.d.ts +2 -0
  500. package/dist/components/pixel-loader/PixelLoader.d.ts +18 -0
  501. package/dist/components/pixel-loader/PixelLoader.js +56 -0
  502. package/dist/components/pixel-loader/index.d.ts +2 -0
  503. package/dist/components/popover/Popover.d.ts +49 -0
  504. package/dist/components/popover/Popover.js +81 -0
  505. package/dist/components/popover/PopoverContent.d.ts +21 -0
  506. package/dist/components/popover/PopoverContent.js +78 -0
  507. package/dist/components/popover/index.d.ts +6 -0
  508. package/dist/components/popover/types.d.ts +64 -0
  509. package/dist/components/popover/types.js +17 -0
  510. package/dist/components/presence/Presence.d.ts +40 -0
  511. package/dist/components/presence/Presence.js +49 -0
  512. package/dist/components/presence/index.d.ts +2 -0
  513. package/dist/components/pressable/Pressable.d.ts +27 -0
  514. package/dist/components/pressable/Pressable.js +86 -0
  515. package/dist/components/pressable/index.d.ts +2 -0
  516. package/dist/components/prompt-suggestions/PromptSuggestions.d.ts +25 -0
  517. package/dist/components/prompt-suggestions/PromptSuggestions.js +68 -0
  518. package/dist/components/prompt-suggestions/index.d.ts +2 -0
  519. package/dist/components/pulse-beam/PulseBeam.d.ts +44 -0
  520. package/dist/components/pulse-beam/PulseBeam.js +197 -0
  521. package/dist/components/pulse-beam/index.d.ts +2 -0
  522. package/dist/components/pulse-beam/pulse-beam-data.d.ts +81 -0
  523. package/dist/components/pulse-beam/pulse-beam-data.js +306 -0
  524. package/dist/components/pulse-beam/pulse-beam-loop.d.ts +26 -0
  525. package/dist/components/pulse-beam/pulse-beam-loop.js +58 -0
  526. package/dist/components/radio-group/RadioGroup.d.ts +56 -0
  527. package/dist/components/radio-group/RadioGroup.js +82 -0
  528. package/dist/components/radio-group/RadioGroupItem.d.ts +21 -0
  529. package/dist/components/radio-group/RadioGroupItem.js +47 -0
  530. package/dist/components/radio-group/index.d.ts +6 -0
  531. package/dist/components/radio-group/types.d.ts +50 -0
  532. package/dist/components/radio-group/types.js +7 -0
  533. package/dist/components/rainbow-button/RainbowButton.d.ts +21 -0
  534. package/dist/components/rainbow-button/RainbowButton.js +59 -0
  535. package/dist/components/rainbow-button/index.d.ts +2 -0
  536. package/dist/components/reasoning-panel/ReasoningPanel.d.ts +38 -0
  537. package/dist/components/reasoning-panel/ReasoningPanel.js +172 -0
  538. package/dist/components/reasoning-panel/index.d.ts +2 -0
  539. package/dist/components/recommendation-card/RecommendationCard.d.ts +53 -0
  540. package/dist/components/recommendation-card/RecommendationCard.js +234 -0
  541. package/dist/components/recommendation-card/index.d.ts +2 -0
  542. package/dist/components/reveal/Reveal.d.ts +36 -0
  543. package/dist/components/reveal/Reveal.js +138 -0
  544. package/dist/components/reveal/index.d.ts +2 -0
  545. package/dist/components/ripple/Ripple.d.ts +11 -0
  546. package/dist/components/ripple/Ripple.js +45 -0
  547. package/dist/components/ripple/index.d.ts +2 -0
  548. package/dist/components/ripple-button/RippleButton.d.ts +17 -0
  549. package/dist/components/ripple-button/RippleButton.js +77 -0
  550. package/dist/components/ripple-button/index.d.ts +2 -0
  551. package/dist/components/scroll-anchor/ScrollAnchor.d.ts +33 -0
  552. package/dist/components/scroll-anchor/ScrollAnchor.js +99 -0
  553. package/dist/components/scroll-anchor/index.d.ts +2 -0
  554. package/dist/components/scroll-progress/ScrollProgress.d.ts +39 -0
  555. package/dist/components/scroll-progress/ScrollProgress.js +118 -0
  556. package/dist/components/scroll-progress/index.d.ts +2 -0
  557. package/dist/components/search-input/SearchInput.d.ts +56 -0
  558. package/dist/components/search-input/SearchInput.js +192 -0
  559. package/dist/components/search-input/index.d.ts +2 -0
  560. package/dist/components/select/Select.d.ts +44 -0
  561. package/dist/components/select/Select.js +255 -0
  562. package/dist/components/select/SelectPanel.d.ts +33 -0
  563. package/dist/components/select/SelectPanel.js +108 -0
  564. package/dist/components/select/index.d.ts +3 -0
  565. package/dist/components/select/types.d.ts +83 -0
  566. package/dist/components/select/types.js +8 -0
  567. package/dist/components/sheet/Sheet.d.ts +40 -0
  568. package/dist/components/sheet/Sheet.js +183 -0
  569. package/dist/components/sheet/index.d.ts +2 -0
  570. package/dist/components/shimmer-button/ShimmerButton.d.ts +26 -0
  571. package/dist/components/shimmer-button/ShimmerButton.js +69 -0
  572. package/dist/components/shimmer-button/index.d.ts +2 -0
  573. package/dist/components/sidebar/Sidebar.d.ts +17 -0
  574. package/dist/components/sidebar/Sidebar.js +27 -0
  575. package/dist/components/sidebar/SidebarFooter.d.ts +10 -0
  576. package/dist/components/sidebar/SidebarFooter.js +31 -0
  577. package/dist/components/sidebar/SidebarGroup.d.ts +10 -0
  578. package/dist/components/sidebar/SidebarGroup.js +28 -0
  579. package/dist/components/sidebar/SidebarItem.d.ts +33 -0
  580. package/dist/components/sidebar/SidebarItem.js +81 -0
  581. package/dist/components/sidebar/SidebarSeparator.d.ts +5 -0
  582. package/dist/components/sidebar/SidebarSeparator.js +13 -0
  583. package/dist/components/sidebar/index.d.ts +12 -0
  584. package/dist/components/sidebar/types.d.ts +36 -0
  585. package/dist/components/sidebar/types.js +7 -0
  586. package/dist/components/skeleton/Skeleton.d.ts +35 -0
  587. package/dist/components/skeleton/Skeleton.js +106 -0
  588. package/dist/components/skeleton/index.d.ts +2 -0
  589. package/dist/components/slider/Slider.d.ts +32 -0
  590. package/dist/components/slider/Slider.js +119 -0
  591. package/dist/components/slider/index.d.ts +2 -0
  592. package/dist/components/smooth-cursor/SmoothCursor.d.ts +18 -0
  593. package/dist/components/smooth-cursor/SmoothCursor.js +186 -0
  594. package/dist/components/smooth-cursor/index.d.ts +2 -0
  595. package/dist/components/sources/SourceCard.d.ts +21 -0
  596. package/dist/components/sources/SourceCard.js +48 -0
  597. package/dist/components/sources/Sources.d.ts +31 -0
  598. package/dist/components/sources/Sources.js +39 -0
  599. package/dist/components/sources/SourcesList.d.ts +13 -0
  600. package/dist/components/sources/SourcesList.js +42 -0
  601. package/dist/components/sources/SourcesTrigger.d.ts +11 -0
  602. package/dist/components/sources/SourcesTrigger.js +50 -0
  603. package/dist/components/sources/index.d.ts +10 -0
  604. package/dist/components/sources/types.d.ts +45 -0
  605. package/dist/components/sources/types.js +7 -0
  606. package/dist/components/sparkles/Sparkles.d.ts +35 -0
  607. package/dist/components/sparkles/Sparkles.js +112 -0
  608. package/dist/components/sparkles/index.d.ts +2 -0
  609. package/dist/components/sparkles-text/SparklesText.d.ts +28 -0
  610. package/dist/components/sparkles-text/SparklesText.js +84 -0
  611. package/dist/components/sparkles-text/index.d.ts +2 -0
  612. package/dist/components/status-morph/StatusMorph.d.ts +47 -0
  613. package/dist/components/status-morph/StatusMorph.js +110 -0
  614. package/dist/components/status-morph/index.d.ts +2 -0
  615. package/dist/components/stepper/Step.d.ts +24 -0
  616. package/dist/components/stepper/Step.js +152 -0
  617. package/dist/components/stepper/Stepper.d.ts +38 -0
  618. package/dist/components/stepper/Stepper.js +79 -0
  619. package/dist/components/stepper/index.d.ts +6 -0
  620. package/dist/components/stepper/types.d.ts +66 -0
  621. package/dist/components/stepper/types.js +7 -0
  622. package/dist/components/sticky-scroll/StickyScroll.d.ts +40 -0
  623. package/dist/components/sticky-scroll/StickyScroll.js +163 -0
  624. package/dist/components/sticky-scroll/index.d.ts +2 -0
  625. package/dist/components/streaming-text/StreamingText.d.ts +20 -0
  626. package/dist/components/streaming-text/StreamingText.js +32 -0
  627. package/dist/components/streaming-text/index.d.ts +2 -0
  628. package/dist/components/subagent-list/SubagentList.d.ts +28 -0
  629. package/dist/components/subagent-list/SubagentList.js +167 -0
  630. package/dist/components/subagent-list/index.d.ts +2 -0
  631. package/dist/components/switch/Switch.d.ts +55 -0
  632. package/dist/components/switch/Switch.js +77 -0
  633. package/dist/components/switch/index.d.ts +2 -0
  634. package/dist/components/tabs/Tabs.d.ts +43 -0
  635. package/dist/components/tabs/Tabs.js +123 -0
  636. package/dist/components/tabs/TabsContent.d.ts +26 -0
  637. package/dist/components/tabs/TabsContent.js +64 -0
  638. package/dist/components/tabs/TabsList.d.ts +16 -0
  639. package/dist/components/tabs/TabsList.js +152 -0
  640. package/dist/components/tabs/TabsTrigger.d.ts +19 -0
  641. package/dist/components/tabs/TabsTrigger.js +138 -0
  642. package/dist/components/tabs/index.d.ts +10 -0
  643. package/dist/components/tabs/types.d.ts +94 -0
  644. package/dist/components/tabs/types.js +7 -0
  645. package/dist/components/terminal-block/TerminalBlock.d.ts +27 -0
  646. package/dist/components/terminal-block/TerminalBlock.js +120 -0
  647. package/dist/components/terminal-block/ansi.d.ts +30 -0
  648. package/dist/components/terminal-block/ansi.js +114 -0
  649. package/dist/components/terminal-block/index.d.ts +2 -0
  650. package/dist/components/terminal-text/TerminalText.d.ts +11 -0
  651. package/dist/components/terminal-text/TerminalText.js +140 -0
  652. package/dist/components/terminal-text/index.d.ts +2 -0
  653. package/dist/components/text-generate-effect/TextGenerateEffect.d.ts +9 -0
  654. package/dist/components/text-generate-effect/TextGenerateEffect.js +58 -0
  655. package/dist/components/text-generate-effect/index.d.ts +2 -0
  656. package/dist/components/text-reveal-card/TextRevealCard.d.ts +21 -0
  657. package/dist/components/text-reveal-card/TextRevealCard.js +107 -0
  658. package/dist/components/text-reveal-card/TextRevealStars.d.ts +25 -0
  659. package/dist/components/text-reveal-card/TextRevealStars.js +59 -0
  660. package/dist/components/text-reveal-card/index.d.ts +4 -0
  661. package/dist/components/text-roll/TextRoll.d.ts +43 -0
  662. package/dist/components/text-roll/TextRoll.js +242 -0
  663. package/dist/components/text-roll/index.d.ts +2 -0
  664. package/dist/components/text-roll/roll-transitions.d.ts +74 -0
  665. package/dist/components/text-roll/roll-transitions.js +31 -0
  666. package/dist/components/textarea/Textarea.d.ts +48 -0
  667. package/dist/components/textarea/Textarea.js +129 -0
  668. package/dist/components/textarea/index.d.ts +2 -0
  669. package/dist/components/thinking-indicator/ThinkingIndicator.d.ts +26 -0
  670. package/dist/components/thinking-indicator/ThinkingIndicator.js +60 -0
  671. package/dist/components/thinking-indicator/index.d.ts +2 -0
  672. package/dist/components/thread-list/ThreadList.d.ts +44 -0
  673. package/dist/components/thread-list/ThreadList.js +178 -0
  674. package/dist/components/thread-list/index.d.ts +2 -0
  675. package/dist/components/time-picker/TimePicker.d.ts +44 -0
  676. package/dist/components/time-picker/TimePicker.js +254 -0
  677. package/dist/components/time-picker/TimePickerPanel.d.ts +30 -0
  678. package/dist/components/time-picker/TimePickerPanel.js +94 -0
  679. package/dist/components/time-picker/index.d.ts +2 -0
  680. package/dist/components/time-picker/time-utils.d.ts +33 -0
  681. package/dist/components/time-picker/time-utils.js +65 -0
  682. package/dist/components/time-picker/types.d.ts +53 -0
  683. package/dist/components/time-picker/types.js +10 -0
  684. package/dist/components/timeline/Timeline.d.ts +18 -0
  685. package/dist/components/timeline/Timeline.js +96 -0
  686. package/dist/components/timeline/index.d.ts +2 -0
  687. package/dist/components/toast/Toast.d.ts +16 -0
  688. package/dist/components/toast/Toast.js +99 -0
  689. package/dist/components/toast/Toaster.d.ts +19 -0
  690. package/dist/components/toast/Toaster.js +147 -0
  691. package/dist/components/toast/index.d.ts +6 -0
  692. package/dist/components/toast/store.d.ts +102 -0
  693. package/dist/components/toast/store.js +118 -0
  694. package/dist/components/toggle/Toggle.d.ts +28 -0
  695. package/dist/components/toggle/Toggle.js +69 -0
  696. package/dist/components/toggle/index.d.ts +2 -0
  697. package/dist/components/toggle-group/ToggleGroup.d.ts +42 -0
  698. package/dist/components/toggle-group/ToggleGroup.js +150 -0
  699. package/dist/components/toggle-group/ToggleGroupItem.d.ts +21 -0
  700. package/dist/components/toggle-group/ToggleGroupItem.js +100 -0
  701. package/dist/components/toggle-group/index.d.ts +6 -0
  702. package/dist/components/toggle-group/types.d.ts +75 -0
  703. package/dist/components/toggle-group/types.js +7 -0
  704. package/dist/components/tool-call/ToolCall.d.ts +39 -0
  705. package/dist/components/tool-call/ToolCall.js +195 -0
  706. package/dist/components/tool-call/index.d.ts +2 -0
  707. package/dist/components/tool-timeline/ToolTimeline.d.ts +31 -0
  708. package/dist/components/tool-timeline/ToolTimeline.js +99 -0
  709. package/dist/components/tool-timeline/index.d.ts +2 -0
  710. package/dist/components/tooltip/Tooltip.d.ts +36 -0
  711. package/dist/components/tooltip/Tooltip.js +214 -0
  712. package/dist/components/tooltip/index.d.ts +2 -0
  713. package/dist/components/tracing-beam/TracingBeam.d.ts +11 -0
  714. package/dist/components/tracing-beam/TracingBeam.js +163 -0
  715. package/dist/components/tracing-beam/index.d.ts +2 -0
  716. package/dist/components/typing-indicator/TypingIndicator.d.ts +17 -0
  717. package/dist/components/typing-indicator/TypingIndicator.js +47 -0
  718. package/dist/components/typing-indicator/index.d.ts +2 -0
  719. package/dist/components/voice-input/VoiceInput.d.ts +60 -0
  720. package/dist/components/voice-input/VoiceInput.js +268 -0
  721. package/dist/components/voice-input/index.d.ts +2 -0
  722. package/dist/components/web-search/WebSearch.d.ts +37 -0
  723. package/dist/components/web-search/WebSearch.js +135 -0
  724. package/dist/components/web-search/index.d.ts +2 -0
  725. package/dist/index.d.ts +148 -0
  726. package/dist/index.js +489 -0
  727. package/dist/internals/Portal.d.ts +35 -0
  728. package/dist/internals/Portal.js +37 -0
  729. package/dist/internals/StreamText.d.ts +20 -0
  730. package/dist/internals/StreamText.js +25 -0
  731. package/dist/internals/ai-types.d.ts +117 -0
  732. package/dist/internals/anchor-position.d.ts +79 -0
  733. package/dist/internals/anchor-position.js +154 -0
  734. package/dist/internals/calendar-core.d.ts +26 -0
  735. package/dist/internals/calendar-core.js +57 -0
  736. package/dist/internals/diff.d.ts +38 -0
  737. package/dist/internals/diff.js +176 -0
  738. package/dist/internals/dismissable.d.ts +76 -0
  739. package/dist/internals/dismissable.js +105 -0
  740. package/dist/internals/dom/context.d.ts +16 -0
  741. package/dist/internals/dom/context.js +20 -0
  742. package/dist/internals/dom/ssr.d.ts +21 -0
  743. package/dist/internals/dom/ssr.js +21 -0
  744. package/dist/internals/dom/types.d.ts +9 -0
  745. package/dist/internals/dom/use-composed-refs.d.ts +15 -0
  746. package/dist/internals/dom/use-composed-refs.js +34 -0
  747. package/dist/internals/dom/use-element-ref.d.ts +11 -0
  748. package/dist/internals/dom/use-element-ref.js +12 -0
  749. package/dist/internals/dom/use-event-callback.d.ts +14 -0
  750. package/dist/internals/dom/use-event-callback.js +12 -0
  751. package/dist/internals/dom/use-inert-attribute.d.ts +26 -0
  752. package/dist/internals/dom/use-inert-attribute.js +22 -0
  753. package/dist/internals/dom/use-live-ref.d.ts +10 -0
  754. package/dist/internals/dom/use-live-ref.js +12 -0
  755. package/dist/internals/field.d.ts +136 -0
  756. package/dist/internals/field.js +33 -0
  757. package/dist/internals/float.d.ts +47 -0
  758. package/dist/internals/float.js +31 -0
  759. package/dist/internals/focus-trap.d.ts +82 -0
  760. package/dist/internals/focus-trap.js +145 -0
  761. package/dist/internals/host.d.ts +38 -0
  762. package/dist/internals/host.js +24 -0
  763. package/dist/internals/listbox.d.ts +101 -0
  764. package/dist/internals/listbox.js +171 -0
  765. package/dist/internals/markdown/Markdown.d.ts +22 -0
  766. package/dist/internals/markdown/Markdown.js +53 -0
  767. package/dist/internals/markdown/MarkdownInline.d.ts +5 -0
  768. package/dist/internals/markdown/MarkdownInline.js +40 -0
  769. package/dist/internals/markdown.d.ts +66 -0
  770. package/dist/internals/markdown.js +467 -0
  771. package/dist/internals/menu.d.ts +121 -0
  772. package/dist/internals/menu.js +217 -0
  773. package/dist/internals/motion/anchored.d.ts +104 -0
  774. package/dist/internals/motion/anchored.js +44 -0
  775. package/dist/internals/motion/animate.d.ts +92 -0
  776. package/dist/internals/motion/animate.js +84 -0
  777. package/dist/internals/motion/easing.d.ts +20 -0
  778. package/dist/internals/motion/easing.js +13 -0
  779. package/dist/internals/motion/haptics.d.ts +42 -0
  780. package/dist/internals/motion/haptics.js +29 -0
  781. package/dist/internals/motion/in-view.d.ts +67 -0
  782. package/dist/internals/motion/in-view.js +97 -0
  783. package/dist/internals/motion/media-query.d.ts +50 -0
  784. package/dist/internals/motion/media-query.js +54 -0
  785. package/dist/internals/motion/presence.d.ts +108 -0
  786. package/dist/internals/motion/presence.js +197 -0
  787. package/dist/internals/motion/presets.d.ts +34 -0
  788. package/dist/internals/motion/presets.js +19 -0
  789. package/dist/internals/motion/raf.d.ts +35 -0
  790. package/dist/internals/motion/raf.js +27 -0
  791. package/dist/internals/motion/stagger.d.ts +32 -0
  792. package/dist/internals/motion/stagger.js +15 -0
  793. package/dist/internals/motion/tokens.d.ts +97 -0
  794. package/dist/internals/motion/tokens.js +18 -0
  795. package/dist/internals/motion/transitions.d.ts +66 -0
  796. package/dist/internals/motion/transitions.js +41 -0
  797. package/dist/internals/motion/types.d.ts +17 -0
  798. package/dist/internals/relative-time.d.ts +25 -0
  799. package/dist/internals/relative-time.js +46 -0
  800. package/dist/internals/scroll-lock.d.ts +26 -0
  801. package/dist/internals/scroll-lock.js +65 -0
  802. package/dist/internals/use-anchor-position.d.ts +54 -0
  803. package/dist/internals/use-anchor-position.js +87 -0
  804. package/dist/internals/use-autoscroll.d.ts +43 -0
  805. package/dist/internals/use-autoscroll.js +128 -0
  806. package/dist/internals/use-copy.d.ts +54 -0
  807. package/dist/internals/use-copy.js +67 -0
  808. package/dist/internals/use-elapsed.d.ts +96 -0
  809. package/dist/internals/use-elapsed.js +195 -0
  810. package/dist/internals/use-float.d.ts +49 -0
  811. package/dist/internals/use-float.js +150 -0
  812. package/dist/internals/use-id.d.ts +22 -0
  813. package/dist/internals/use-id.js +20 -0
  814. package/dist/internals/use-text-stream.d.ts +94 -0
  815. package/dist/internals/use-text-stream.js +133 -0
  816. package/dist/internals/waveform-core.d.ts +33 -0
  817. package/dist/internals/waveform-core.js +39 -0
  818. package/dist/sound/SoundToggle.d.ts +23 -0
  819. package/dist/sound/SoundToggle.js +96 -0
  820. package/dist/sound/engine.d.ts +67 -0
  821. package/dist/sound/engine.js +370 -0
  822. package/dist/sound/index.d.ts +7 -0
  823. package/dist/sound/sound-feedback.d.ts +77 -0
  824. package/dist/sound/sound-feedback.js +152 -0
  825. package/dist/sound/sound.d.ts +98 -0
  826. package/dist/sound/sound.js +309 -0
  827. package/dist/sound/themes.d.ts +19 -0
  828. package/dist/sound/themes.js +355 -0
  829. package/dist/sound/types.d.ts +125 -0
  830. package/dist/sound/types.js +54 -0
  831. package/dist/sound/use-sound.d.ts +53 -0
  832. package/dist/sound/use-sound.js +82 -0
  833. package/dist/styles.css +7975 -0
  834. package/dist/utils.d.ts +3 -0
  835. package/dist/utils.js +8 -0
  836. package/package.json +96 -0
  837. package/tailwind.css +132 -0
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { Portal } from "../../internals/Portal.js";
6
+ import { useAnchorPosition } from "../../internals/use-anchor-position.js";
7
+ import { useDismissable } from "../../internals/dismissable.js";
8
+ import { useComposedRefs } from "../../internals/dom/use-composed-refs.js";
9
+ import { useElementRef } from "../../internals/dom/use-element-ref.js";
10
+ import { anchored, originFor } from "../../internals/motion/anchored.js";
11
+ import { usePresence } from "../../internals/motion/presence.js";
12
+ import { useTimePickerContext } from "./types.js";
13
+ /* empty css */
14
+ const TimePickerPanel = forwardRef(
15
+ function TimePickerPanel2({ className }, forwardedRef) {
16
+ const ctx = useTimePickerContext();
17
+ const [panel, setPanelNode] = useElementRef();
18
+ const presence = usePresence(ctx.open);
19
+ const { side: resolvedSide, align: resolvedAlign } = useAnchorPosition(panel, {
20
+ anchor: () => ctx.triggerRef,
21
+ side: "bottom",
22
+ align: "start",
23
+ offset: 4
24
+ });
25
+ useDismissable(panel, {
26
+ onDismiss: ctx.close,
27
+ exclude: () => [ctx.triggerRef],
28
+ active: ctx.open
29
+ });
30
+ const panelRef = useComposedRefs(
31
+ setPanelNode,
32
+ forwardedRef,
33
+ presence.register(anchored, (entering) => ({ side: resolvedSide, entering }))
34
+ );
35
+ function rowClasses(index) {
36
+ return cn(
37
+ "ft-time-picker-option flex cursor-pointer items-center justify-between gap-2 rounded-[6px] px-[10px] py-[6px] font-mono text-foreground select-none",
38
+ (ctx.isSelected(index) || ctx.isActive(index)) && "bg-accent text-accent-foreground"
39
+ );
40
+ }
41
+ return /* @__PURE__ */ jsx(Portal, { children: presence.mounted ? /* @__PURE__ */ jsx(
42
+ "div",
43
+ {
44
+ ref: panelRef,
45
+ id: ctx.panelId,
46
+ role: "listbox",
47
+ className: cn(
48
+ "ft-time-picker-panel border-border bg-popover text-popover-foreground flex max-h-[220px] w-max min-w-[100px] flex-col gap-[1px] overflow-y-auto rounded-[10px] border p-[5px] text-[12px] shadow-lg outline-none",
49
+ className
50
+ ),
51
+ "data-state": presence.surfaceState,
52
+ "data-side": resolvedSide,
53
+ "data-align": "start",
54
+ style: { transformOrigin: originFor(resolvedSide, resolvedAlign) },
55
+ children: ctx.slots.length === 0 ? (
56
+ /* Reachable when `min`/`max` exclude every generated slot — see the
57
+ README. A real row, not silently nothing: an empty floating panel
58
+ with no explanation is a worse failure than this one line. */
59
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground px-[10px] py-[7px] text-[12px] italic", children: "No times available." })
60
+ ) : ctx.slots.map((slot, index) => (
61
+ /*
62
+ Keyboard activation for this row is not local: the trigger
63
+ button owns every keydown (Enter/Space/arrow keys/Home/End)
64
+ and drives selection through `aria-activedescendant`, per the
65
+ ARIA combobox-with-listbox-popup pattern. A row-level keydown
66
+ handler would be dead code — focus never reaches a row to fire
67
+ one — not a missing affordance.
68
+ */
69
+ /* @__PURE__ */ jsxs(
70
+ "div",
71
+ {
72
+ id: ctx.optionId(index),
73
+ role: "option",
74
+ tabIndex: -1,
75
+ "aria-selected": ctx.isSelected(index),
76
+ className: rowClasses(index),
77
+ onClick: () => ctx.commit(index),
78
+ onPointerEnter: () => ctx.setActive(index),
79
+ children: [
80
+ /* @__PURE__ */ jsx("span", { children: ctx.labelFor(slot) }),
81
+ ctx.isSelected(index) ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-[var(--ft-field-accent)]", children: "✓" }) : null
82
+ ]
83
+ },
84
+ slot
85
+ )
86
+ ))
87
+ }
88
+ ) : null });
89
+ }
90
+ );
91
+ TimePickerPanel.displayName = "TimePickerPanel";
92
+ export {
93
+ TimePickerPanel
94
+ };
@@ -0,0 +1,2 @@
1
+ export { TimePicker } from "./TimePicker.js";
2
+ export type { TimePickerProps } from "./TimePicker.js";
@@ -0,0 +1,33 @@
1
+ /** Parses "HH:mm" into total minutes since midnight. Returns `null` for anything malformed. */
2
+ export declare function toMinutes(value: string): number | null;
3
+ /** Formats total minutes since midnight back into zero-padded "HH:mm". */
4
+ export declare function fromMinutes(totalMinutes: number): string;
5
+ /**
6
+ * The full slot grid for `step`-minute increments, anchored at 00:00 —
7
+ * 00:00, 00:{step}, 00:{2*step}, ... for as long as the slot start is still
8
+ * within the day. A `step` that does not divide 60 or 1440 evenly (45, say)
9
+ * is not special-cased: the loop simply stops once the next start would
10
+ * reach or pass 24:00, which can leave a shorter-than-usual final gap before
11
+ * midnight rather than inserting a partial slot — the defined behaviour the
12
+ * brief asks for, documented here and in the README.
13
+ */
14
+ export declare function generateSlots(step: number): string[];
15
+ /**
16
+ * Keeps only the slots within `[min, max]` (either bound optional, both
17
+ * inclusive). A bound that does not land exactly on a generated slot simply
18
+ * excludes the slot straddling it, rather than inserting a synthetic one at
19
+ * the bound itself — same "defined, not silently magic" behaviour as
20
+ * `generateSlots`'s own step handling.
21
+ */
22
+ export declare function filterByBounds(slots: string[], min?: string, max?: string): string[];
23
+ /**
24
+ * Index of the slot to highlight when the panel opens: an exact match for
25
+ * `value`, else the nearest slot at or after it, else the last slot (`value`
26
+ * is later than every slot), else -1 (no slots at all). A `value` that does
27
+ * not land on a generated boundary — set programmatically while `step`
28
+ * doesn't divide it evenly — still resolves to a sensible neighbour instead
29
+ * of leaving nothing highlighted.
30
+ */
31
+ export declare function nearestIndex(slots: string[], value: string | null | undefined): number;
32
+ /** Formats "HH:mm" for display, honouring `hour12` and `locale`. The underlying value never changes shape. */
33
+ export declare function formatSlotLabel(value: string, hour12: boolean, locale?: string): string;
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ const MINUTES_PER_DAY = 24 * 60;
3
+ function toMinutes(value) {
4
+ const match = /^(\d{1,2}):(\d{2})$/.exec(value);
5
+ if (!match) return null;
6
+ const hours = Number(match[1]);
7
+ const minutes = Number(match[2]);
8
+ if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) return null;
9
+ return hours * 60 + minutes;
10
+ }
11
+ function fromMinutes(totalMinutes) {
12
+ const hours = Math.floor(totalMinutes / 60);
13
+ const minutes = totalMinutes % 60;
14
+ return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}`;
15
+ }
16
+ function generateSlots(step) {
17
+ const safeStep = Math.max(1, Math.floor(step));
18
+ const slots = [];
19
+ for (let minutes = 0; minutes < MINUTES_PER_DAY; minutes += safeStep) {
20
+ slots.push(fromMinutes(minutes));
21
+ }
22
+ return slots;
23
+ }
24
+ function filterByBounds(slots, min, max) {
25
+ const minMinutes = min ? toMinutes(min) : null;
26
+ const maxMinutes = max ? toMinutes(max) : null;
27
+ return slots.filter((slot) => {
28
+ const value = toMinutes(slot);
29
+ if (value === null) return false;
30
+ if (minMinutes !== null && value < minMinutes) return false;
31
+ if (maxMinutes !== null && value > maxMinutes) return false;
32
+ return true;
33
+ });
34
+ }
35
+ function nearestIndex(slots, value) {
36
+ if (slots.length === 0) return -1;
37
+ const target = value ? toMinutes(value) : null;
38
+ if (target === null) return 0;
39
+ let best = -1;
40
+ for (let i = 0; i < slots.length; i++) {
41
+ const slotMinutes = toMinutes(slots[i]);
42
+ if (slotMinutes === null) continue;
43
+ if (slotMinutes >= target) {
44
+ best = i;
45
+ break;
46
+ }
47
+ }
48
+ return best === -1 ? slots.length - 1 : best;
49
+ }
50
+ function formatSlotLabel(value, hour12, locale) {
51
+ const minutes = toMinutes(value);
52
+ if (minutes === null) return value;
53
+ const reference = new Date(2e3, 0, 1, Math.floor(minutes / 60), minutes % 60);
54
+ return new Intl.DateTimeFormat(locale, { hour: "numeric", minute: "2-digit", hour12 }).format(
55
+ reference
56
+ );
57
+ }
58
+ export {
59
+ filterByBounds,
60
+ formatSlotLabel,
61
+ fromMinutes,
62
+ generateSlots,
63
+ nearestIndex,
64
+ toMinutes
65
+ };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The contract between the `TimePicker` trigger and its portalled listbox
3
+ * panel — the same split `Select`/`SelectPanel` use, for the same reason:
4
+ * the root owns the slot list, the value and where the active (highlighted)
5
+ * index sits, and the panel only ever reads that or reports back through
6
+ * `setActive`/`commit`.
7
+ */
8
+ export interface TimePickerContext {
9
+ /** Whether the panel is open. Read by the panel's own presence clock, which
10
+ * needs it to tell an entrance from a departure. Also the panel's
11
+ * dismissable `active` gate: the instant this flips false the layer stops
12
+ * answering Escape, so a second Escape during the fade reaches whatever is
13
+ * underneath instead of being swallowed by a panel that is already
14
+ * leaving. */
15
+ readonly open: boolean;
16
+ /** The panel's own id — also what the trigger's `aria-controls` points at while open. */
17
+ readonly panelId: string;
18
+ /** The "HH:mm" slots to render as rows, in order. */
19
+ readonly slots: string[];
20
+ /** Index of the highlighted option, or -1 when nothing is active. */
21
+ readonly activeIndex: number;
22
+ /** Display label for a slot, honouring `hour12`/`locale`. */
23
+ labelFor(slot: string): string;
24
+ /** The real trigger button — what the panel anchors against and excludes from its own outside-click check. */
25
+ readonly triggerRef: HTMLElement | null;
26
+ /** The id a given option row must carry — also what `aria-activedescendant` points at while it's active. */
27
+ optionId(index: number): string;
28
+ /** Whether the slot at `index` is the current selection. */
29
+ isSelected(index: number): boolean;
30
+ /** Whether the slot at `index` is the highlighted (`aria-activedescendant`) one. */
31
+ isActive(index: number): boolean;
32
+ /** Highlights `index` without selecting it — a pointer hover, not a commit. */
33
+ setActive(index: number): void;
34
+ /** Selects the slot at `index` and closes the panel, the same way Enter does. */
35
+ commit(index: number): void;
36
+ /** Closes the panel without changing the value — what Escape and an outside click do. */
37
+ close(): void;
38
+ }
39
+ /**
40
+ * The React counterpart of the source's `TIME_PICKER_KEY` symbol: a context
41
+ * object plus its readers, per the internals contract's naming table
42
+ * (`FOO_KEY` → `FooReactContext` + `useFoo()`).
43
+ *
44
+ * Not re-exported from this folder's `index.ts`, because the source barrel
45
+ * does not export `TIME_PICKER_KEY` either — the trigger/panel wiring is
46
+ * private to the pair.
47
+ */
48
+ export declare const TimePickerReactContext: import("../../internals/dom/context.js").InternalContext<TimePickerContext>;
49
+ /** Reads the surrounding `TimePicker`'s context. Throws outside one, which is
50
+ * the compound-component contract: `TimePickerPanel` is only ever rendered by
51
+ * `TimePicker`, so there is no standalone-usage fallback to design for — the
52
+ * same as the source's `getContext(TIME_PICKER_KEY)` with no fallback branch. */
53
+ export declare const useTimePickerContext: () => TimePickerContext;
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { createInternalContext } from "../../internals/dom/context.js";
3
+ const TimePickerReactContext = createInternalContext(
4
+ "TimePicker context"
5
+ );
6
+ const useTimePickerContext = TimePickerReactContext.useRequired;
7
+ export {
8
+ TimePickerReactContext,
9
+ useTimePickerContext
10
+ };
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from "react";
2
+ export interface TimelineItem {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ export interface TimelineProps {
7
+ /** Timeline entries */
8
+ items?: TimelineItem[];
9
+ /** Heading text */
10
+ title?: string;
11
+ /** Subheading text */
12
+ description?: string;
13
+ /** Additional CSS classes for the outer wrapper */
14
+ className?: string;
15
+ /** Content render prop, called for each item */
16
+ content?: (item: TimelineItem) => ReactNode;
17
+ }
18
+ export declare function Timeline({ items, title, description, className, content }: TimelineProps): import("react").JSX.Element;
@@ -0,0 +1,96 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { useRef, useState } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { useIsomorphicLayoutEffect } from "../../internals/dom/ssr.js";
6
+ import { rafThrottle } from "../../internals/motion/raf.js";
7
+ function writeProgressLine(line, progress, height) {
8
+ if (!line) return;
9
+ line.style.height = `${progress * height}px`;
10
+ line.style.opacity = String(Math.min(progress / 0.1, 1));
11
+ }
12
+ function Timeline({ items = [], title, description, className, content }) {
13
+ const timelineRef = useRef(null);
14
+ const progressRef = useRef(null);
15
+ const heightRef = useRef(0);
16
+ const progressValueRef = useRef(0);
17
+ const [timelineHeight, setTimelineHeight] = useState(0);
18
+ useIsomorphicLayoutEffect(() => {
19
+ function measure(el2) {
20
+ heightRef.current = el2.getBoundingClientRect().height;
21
+ setTimelineHeight(heightRef.current);
22
+ }
23
+ function updateProgress() {
24
+ const el2 = timelineRef.current;
25
+ if (!el2) return;
26
+ const rect = el2.getBoundingClientRect();
27
+ const viewportHeight = window.innerHeight;
28
+ const startOffset = viewportHeight * 0.1;
29
+ const endOffset = viewportHeight * 0.5;
30
+ const start = rect.top - startOffset;
31
+ const end = rect.bottom - endOffset;
32
+ const total = end - start;
33
+ if (total <= 0) {
34
+ progressValueRef.current = 0;
35
+ } else {
36
+ const progress = -start / total;
37
+ progressValueRef.current = Math.max(0, Math.min(1, progress));
38
+ }
39
+ writeProgressLine(progressRef.current, progressValueRef.current, heightRef.current);
40
+ }
41
+ const el = timelineRef.current;
42
+ if (el) {
43
+ measure(el);
44
+ }
45
+ const resizeObserver = new ResizeObserver(() => {
46
+ if (timelineRef.current) {
47
+ measure(timelineRef.current);
48
+ writeProgressLine(progressRef.current, progressValueRef.current, heightRef.current);
49
+ }
50
+ });
51
+ if (el) {
52
+ resizeObserver.observe(el);
53
+ }
54
+ const onScroll = rafThrottle(updateProgress);
55
+ window.addEventListener("scroll", onScroll, { passive: true });
56
+ updateProgress();
57
+ return () => {
58
+ onScroll.cancel();
59
+ resizeObserver.disconnect();
60
+ window.removeEventListener("scroll", onScroll);
61
+ };
62
+ }, []);
63
+ return /* @__PURE__ */ jsxs("div", { className: cn("w-full font-sans md:px-10", className), children: [
64
+ (title || description) && /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-7xl px-4 py-20 md:px-8 lg:px-10", children: [
65
+ title && /* @__PURE__ */ jsx("h2", { className: "text-foreground mb-4 max-w-4xl text-lg md:text-4xl", children: title }),
66
+ description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground max-w-sm text-sm md:text-base", children: description })
67
+ ] }),
68
+ /* @__PURE__ */ jsxs("div", { ref: timelineRef, className: "relative z-0 mx-auto max-w-7xl pb-20", children: [
69
+ items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "flex justify-start pt-10 md:gap-10 md:pt-40", children: [
70
+ /* @__PURE__ */ jsxs("div", { className: "sticky top-40 z-40 flex max-w-xs flex-col items-center self-start md:w-full md:flex-row lg:max-w-sm", children: [
71
+ /* @__PURE__ */ jsx("div", { className: "bg-background absolute left-3 flex size-10 items-center justify-center rounded-full md:left-3", children: /* @__PURE__ */ jsx("div", { className: "size-4 rounded-full border border-neutral-300 bg-neutral-200 p-2 dark:border-neutral-700 dark:bg-neutral-800" }) }),
72
+ /* @__PURE__ */ jsx("h3", { className: "hidden text-xl font-bold text-neutral-500 md:block md:pl-20 md:text-5xl dark:text-neutral-500", children: item.label })
73
+ ] }),
74
+ /* @__PURE__ */ jsx("div", { className: "w-full pr-4 pl-20 md:pl-4", children: content ? content(item) : null })
75
+ ] }, `${item.id}-${index}`)),
76
+ /* @__PURE__ */ jsx(
77
+ "div",
78
+ {
79
+ style: { height: `${timelineHeight}px` },
80
+ className: "absolute top-0 left-8 w-[2px] overflow-hidden bg-[linear-gradient(to_bottom,var(--tw-gradient-stops))] from-transparent from-0% via-neutral-200 to-transparent to-[99%] [mask-image:linear-gradient(to_bottom,transparent_0%,black_10%,black_90%,transparent_100%)] md:left-8 dark:via-neutral-700",
81
+ children: /* @__PURE__ */ jsx(
82
+ "div",
83
+ {
84
+ ref: progressRef,
85
+ style: { height: "0px", opacity: 0 },
86
+ className: "absolute inset-x-0 top-0 w-[2px] rounded-full bg-gradient-to-t from-purple-500 from-0% via-blue-500 via-10% to-transparent"
87
+ }
88
+ )
89
+ }
90
+ )
91
+ ] })
92
+ ] });
93
+ }
94
+ export {
95
+ Timeline
96
+ };
@@ -0,0 +1,2 @@
1
+ export { Timeline } from "./Timeline.js";
2
+ export type { TimelineProps, TimelineItem } from "./Timeline.js";
@@ -0,0 +1,16 @@
1
+ import type { ToastItem } from "./store.js";
2
+ export interface ToastProps {
3
+ /** The toast to render. */
4
+ item: ToastItem;
5
+ /** Additional classes for the toast panel. */
6
+ className?: string;
7
+ }
8
+ /**
9
+ * One toast panel. Renders what the store hands it and wires the pause /
10
+ * resume protocol; the entrance and exit animation belong to `<Toaster>`,
11
+ * whose per-item presence clock attaches to this component's forwarded ref —
12
+ * the React spelling of the source's two separate `in:`/`out:` directives on
13
+ * this same root element (a toast has no `open` boolean: its existence IS its
14
+ * open state, so the mount clock has to live with whatever renders the list).
15
+ */
16
+ export declare const Toast: import("react").ForwardRefExoticComponent<ToastProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,99 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { forwardRef, useRef } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { dismissToast, pauseToast, resumeToast } from "./store.js";
6
+ /* empty css */
7
+ const VARIANT_ICON_CLASSES = {
8
+ success: "ft-toast-icon--success",
9
+ error: "ft-toast-icon--error",
10
+ info: "ft-toast-icon--info",
11
+ loading: ""
12
+ };
13
+ const Toast = forwardRef(function Toast2({ item, className }, forwardedRef) {
14
+ const hovering = useRef(false);
15
+ const focusedWithin = useRef(false);
16
+ function syncTimer() {
17
+ if (hovering.current || focusedWithin.current) {
18
+ pauseToast(item.id);
19
+ } else {
20
+ resumeToast(item.id);
21
+ }
22
+ }
23
+ function handlePointerEnter() {
24
+ hovering.current = true;
25
+ syncTimer();
26
+ }
27
+ function handlePointerLeave() {
28
+ hovering.current = false;
29
+ syncTimer();
30
+ }
31
+ function handleFocusIn() {
32
+ focusedWithin.current = true;
33
+ syncTimer();
34
+ }
35
+ function handleFocusOut() {
36
+ focusedWithin.current = false;
37
+ syncTimer();
38
+ }
39
+ function handleAction() {
40
+ item.action?.onClick();
41
+ }
42
+ function handleDismiss() {
43
+ dismissToast(item.id);
44
+ }
45
+ const classes = cn(
46
+ "ft-toast bg-popover text-popover-foreground border-border flex w-[300px] items-center gap-3 rounded-xl border p-3 shadow-[0_12px_32px_rgba(0,0,0,.5)]",
47
+ item.variant === "error" && "border-destructive/30",
48
+ className
49
+ );
50
+ return /* @__PURE__ */ jsxs(
51
+ "div",
52
+ {
53
+ ref: forwardedRef,
54
+ className: classes,
55
+ "data-state": "open",
56
+ "data-variant": item.variant,
57
+ onPointerEnter: handlePointerEnter,
58
+ onPointerLeave: handlePointerLeave,
59
+ onFocus: handleFocusIn,
60
+ onBlur: handleFocusOut,
61
+ children: [
62
+ /* @__PURE__ */ jsx(
63
+ "span",
64
+ {
65
+ className: cn("ft-toast-icon flex-none text-[14px]", VARIANT_ICON_CLASSES[item.variant]),
66
+ "aria-hidden": "true",
67
+ children: item.variant === "loading" ? /* @__PURE__ */ jsx("span", { className: "ft-toast-spinner" }) : item.variant === "success" ? "✓" : item.variant === "error" ? "✕" : "ℹ"
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col gap-0.5", children: [
71
+ /* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium", children: item.title }),
72
+ item.description ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-[11px]", children: item.description }) : null
73
+ ] }),
74
+ item.action ? /* @__PURE__ */ jsx(
75
+ "button",
76
+ {
77
+ type: "button",
78
+ className: "ft-toast-action shrink-0 text-[12px] font-medium hover:underline",
79
+ onClick: handleAction,
80
+ children: item.action.label
81
+ }
82
+ ) : null,
83
+ /* @__PURE__ */ jsx(
84
+ "button",
85
+ {
86
+ type: "button",
87
+ className: "text-muted-foreground hover:text-foreground shrink-0 text-[12px] transition-colors",
88
+ "aria-label": "Dismiss",
89
+ onClick: handleDismiss,
90
+ children: "✕"
91
+ }
92
+ )
93
+ ]
94
+ }
95
+ );
96
+ });
97
+ export {
98
+ Toast
99
+ };
@@ -0,0 +1,19 @@
1
+ export type ToasterPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
2
+ export interface ToasterProps {
3
+ /** Corner (or edge-center) the stack anchors to. Defaults to `"bottom-right"`. */
4
+ position?: ToasterPosition;
5
+ /** Additional classes for the viewport that stacks the toasts. */
6
+ className?: string;
7
+ /**
8
+ * Plays the `success`/`error` cue through the sound controller when a
9
+ * toast of that variant appears. Off by default; only audible once the
10
+ * user has enabled sound.
11
+ */
12
+ sound?: boolean;
13
+ }
14
+ /**
15
+ * The viewport: portals to `<body>`, renders the store's stack in order, and
16
+ * owns the two live regions plus the timer hand-off protocol (`rearm` on
17
+ * mount, `clear` on unmount).
18
+ */
19
+ export declare const Toaster: import("react").ForwardRefExoticComponent<ToasterProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,147 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
+ import { forwardRef, useSyncExternalStore, useRef, useReducer, useCallback, useEffect, useState } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { Portal } from "../../internals/Portal.js";
6
+ import { prefersReducedMotion } from "../../internals/motion/anchored.js";
7
+ import { usePresence } from "../../internals/motion/presence.js";
8
+ import { JS_EASINGS, DURATIONS } from "../../internals/motion/tokens.js";
9
+ import { preset } from "../../internals/motion/transitions.js";
10
+ import { useSoundCue } from "../../sound/use-sound.js";
11
+ import { toastStore, rearmToastTimers, clearAllToastTimers } from "./store.js";
12
+ import { Toast } from "./Toast.js";
13
+ const soundedIds = /* @__PURE__ */ new Set();
14
+ const POSITION_CLASSES = {
15
+ "top-left": "top-4 left-4 items-start",
16
+ "top-center": "top-4 left-1/2 -translate-x-1/2 items-center",
17
+ "top-right": "top-4 right-4 items-end",
18
+ "bottom-left": "bottom-4 left-4 items-start",
19
+ "bottom-center": "bottom-4 left-1/2 -translate-x-1/2 items-center",
20
+ "bottom-right": "bottom-4 right-4 items-end"
21
+ };
22
+ const slide = preset("fade-up");
23
+ function ToastSlot({ item, present, appear, onExited }) {
24
+ const presence = usePresence(present, {
25
+ appear,
26
+ onExitEnd: () => onExited(item.id)
27
+ });
28
+ const toastRef = presence.register(
29
+ slide,
30
+ (entering) => entering ? {
31
+ duration: prefersReducedMotion() ? 0 : DURATIONS.base,
32
+ distance: 8,
33
+ easing: JS_EASINGS.out
34
+ } : {
35
+ duration: prefersReducedMotion() ? 0 : DURATIONS.exit,
36
+ distance: 4,
37
+ easing: JS_EASINGS.in
38
+ }
39
+ );
40
+ const mounted = presence.mounted;
41
+ useEffect(() => {
42
+ if (!present && !mounted) onExited(item.id);
43
+ }, []);
44
+ if (!presence.mounted) return null;
45
+ return /* @__PURE__ */ jsx("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx(Toast, { item, ref: toastRef }) });
46
+ }
47
+ function ToastSlots({ items, storeIds, onExited }) {
48
+ const initialIdsRef = useRef(null);
49
+ if (initialIdsRef.current === null) {
50
+ initialIdsRef.current = new Set(items.map((item) => item.id));
51
+ }
52
+ const initialIds = initialIdsRef.current;
53
+ return /* @__PURE__ */ jsx(Fragment, { children: items.map((item) => /* @__PURE__ */ jsx(
54
+ ToastSlot,
55
+ {
56
+ item,
57
+ present: storeIds.has(item.id),
58
+ appear: !initialIds.has(item.id),
59
+ onExited
60
+ },
61
+ item.id
62
+ )) });
63
+ }
64
+ function announcementText(item) {
65
+ return item.description ? `${item.title}. ${item.description}` : item.title;
66
+ }
67
+ const bumpReducer = (n) => n + 1;
68
+ const Toaster = forwardRef(function Toaster2({ position = "bottom-right", className, sound = false }, forwardedRef) {
69
+ const playCue = useSoundCue(sound);
70
+ const storeItems = useSyncExternalStore(
71
+ toastStore.subscribe,
72
+ () => toastStore.items,
73
+ // `toast()` is a no-op outside the browser, so the server snapshot is
74
+ // the never-reassigned initial empty stack — referentially stable.
75
+ () => toastStore.items
76
+ );
77
+ const renderedRef = useRef([]);
78
+ const exitedRef = useRef(/* @__PURE__ */ new Set());
79
+ const [, bumpExited] = useReducer(bumpReducer, 0);
80
+ const storeIds = new Set(storeItems.map((item) => item.id));
81
+ const prev = renderedRef.current;
82
+ const prevIds = new Set(prev.map((item) => item.id));
83
+ const rendered = [];
84
+ for (const item of prev) {
85
+ if (storeIds.has(item.id) || !exitedRef.current.has(item.id)) rendered.push(item);
86
+ }
87
+ for (const item of storeItems) {
88
+ if (!prevIds.has(item.id)) rendered.push(item);
89
+ }
90
+ renderedRef.current = rendered;
91
+ const handleExited = useCallback((id) => {
92
+ exitedRef.current.add(id);
93
+ bumpExited();
94
+ }, []);
95
+ useEffect(() => {
96
+ const live = new Set(renderedRef.current.map((item) => item.id));
97
+ for (const id of [...exitedRef.current]) {
98
+ if (!live.has(id)) exitedRef.current.delete(id);
99
+ }
100
+ });
101
+ const [politeAnnouncement, setPoliteAnnouncement] = useState("");
102
+ const [assertiveAnnouncement, setAssertiveAnnouncement] = useState("");
103
+ const announcedIdsRef = useRef(/* @__PURE__ */ new Set());
104
+ useEffect(() => {
105
+ const current = storeItems;
106
+ const currentIds = new Set(current.map((item) => item.id));
107
+ for (const id of soundedIds) {
108
+ if (!currentIds.has(id)) soundedIds.delete(id);
109
+ }
110
+ for (const item of current) {
111
+ if (item.variant === "success" || item.variant === "error") {
112
+ if (!soundedIds.has(item.id)) playCue(item.variant);
113
+ soundedIds.add(item.id);
114
+ }
115
+ if (announcedIdsRef.current.has(item.id)) continue;
116
+ if (item.variant === "error") {
117
+ setAssertiveAnnouncement(announcementText(item));
118
+ } else {
119
+ setPoliteAnnouncement(announcementText(item));
120
+ }
121
+ }
122
+ announcedIdsRef.current = new Set(current.map((item) => item.id));
123
+ }, [storeItems, playCue]);
124
+ useEffect(() => {
125
+ rearmToastTimers();
126
+ return () => {
127
+ clearAllToastTimers();
128
+ };
129
+ }, []);
130
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs("div", { ref: forwardedRef, className: cn("ft-toaster contents", className), children: [
131
+ /* @__PURE__ */ jsx("div", { "aria-live": "polite", "aria-atomic": "true", className: "sr-only", children: politeAnnouncement }),
132
+ /* @__PURE__ */ jsx("div", { "aria-live": "assertive", "aria-atomic": "true", className: "sr-only", children: assertiveAnnouncement }),
133
+ /* @__PURE__ */ jsx(
134
+ "div",
135
+ {
136
+ className: cn(
137
+ "ft-toaster-viewport pointer-events-none fixed z-50 flex flex-col gap-2",
138
+ POSITION_CLASSES[position]
139
+ ),
140
+ children: /* @__PURE__ */ jsx(ToastSlots, { items: rendered, storeIds, onExited: handleExited })
141
+ }
142
+ )
143
+ ] }) });
144
+ });
145
+ export {
146
+ Toaster
147
+ };