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,223 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
+ import { useContext, useState, useEffect, useCallback } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { useIsomorphicLayoutEffect } from "../../internals/dom/ssr.js";
6
+ import { useElementRef } from "../../internals/dom/use-element-ref.js";
7
+ import { useEventCallback } from "../../internals/dom/use-event-callback.js";
8
+ import { useLiveRef } from "../../internals/dom/use-live-ref.js";
9
+ import { useFancyId } from "../../internals/use-id.js";
10
+ import { useSoundCue } from "../../sound/use-sound.js";
11
+ import { useFloat } from "../../internals/use-float.js";
12
+ import { COMPOSER_CONTEXT_KEY } from "./types.js";
13
+ /* empty css */
14
+ function ComposerModelPicker({
15
+ models,
16
+ value: valueProp,
17
+ onValueChange,
18
+ onChange,
19
+ label = "Model",
20
+ className
21
+ }) {
22
+ const composer = useContext(COMPOSER_CONTEXT_KEY);
23
+ const playCue = useSoundCue(composer?.sound);
24
+ const uid = useFancyId();
25
+ const menuId = `${uid}-menu`;
26
+ const optionId = (index) => `${uid}-option-${index}`;
27
+ const [uncontrolledValue, setUncontrolledValue] = useState(void 0);
28
+ const value = valueProp !== void 0 ? valueProp : uncontrolledValue;
29
+ const [open, setOpen] = useState(false);
30
+ const [activeIndex, setActiveIndex] = useState(0);
31
+ const [triggerEl, triggerRef] = useElementRef();
32
+ const [menuEl, menuRef] = useElementRef();
33
+ const triggerLive = useLiveRef(triggerEl);
34
+ const menuLive = useLiveRef(menuEl);
35
+ const selectedId = value ?? models[0]?.id;
36
+ const selected = models.find((model) => model.id === selectedId);
37
+ const activeId = models[activeIndex] ? optionId(activeIndex) : void 0;
38
+ const isDisabled = (composer?.disabled ?? false) || models.length === 0;
39
+ function applyValue(next) {
40
+ if (valueProp === void 0) setUncontrolledValue(next);
41
+ onValueChange?.(next);
42
+ }
43
+ const openMenu = useEventCallback(() => {
44
+ if (isDisabled || open) return;
45
+ const current = models.findIndex((model) => model.id === selectedId);
46
+ setActiveIndex(current >= 0 ? current : 0);
47
+ setOpen(true);
48
+ playCue("open");
49
+ });
50
+ const closeMenu = useEventCallback(
51
+ (returnFocus, reason = "dismiss") => {
52
+ if (!open) return;
53
+ setOpen(false);
54
+ if (reason === "dismiss") playCue("close");
55
+ if (returnFocus) triggerLive.current?.focus();
56
+ }
57
+ );
58
+ const move = useEventCallback((delta) => {
59
+ if (models.length === 0) return;
60
+ setActiveIndex((index) => (index + delta + models.length) % models.length);
61
+ });
62
+ const select = useEventCallback((index) => {
63
+ const model = models[index];
64
+ if (!model || isDisabled) return;
65
+ const changed = model.id !== selectedId;
66
+ applyValue(model.id);
67
+ if (changed) playCue("select");
68
+ closeMenu(true, changed ? "commit" : "dismiss");
69
+ if (changed) onChange?.(model.id);
70
+ });
71
+ function handleTriggerKeydown(event) {
72
+ if (event.key !== "ArrowDown" && event.key !== "ArrowUp") return;
73
+ event.preventDefault();
74
+ openMenu();
75
+ }
76
+ function handleMenuKeydown(event) {
77
+ switch (event.key) {
78
+ case "ArrowDown":
79
+ event.preventDefault();
80
+ move(1);
81
+ break;
82
+ case "ArrowUp":
83
+ event.preventDefault();
84
+ move(-1);
85
+ break;
86
+ case "Enter":
87
+ case " ":
88
+ event.preventDefault();
89
+ select(activeIndex);
90
+ break;
91
+ case "Escape":
92
+ event.preventDefault();
93
+ closeMenu(true);
94
+ break;
95
+ case "Tab":
96
+ closeMenu(true);
97
+ break;
98
+ }
99
+ }
100
+ useEffect(() => {
101
+ if (!open) return;
102
+ const onPointerDown = (event) => {
103
+ const target = event.target;
104
+ if (target && (menuLive.current?.contains(target) || triggerLive.current?.contains(target)))
105
+ return;
106
+ closeMenu(false);
107
+ };
108
+ document.addEventListener("mousedown", onPointerDown, true);
109
+ return () => document.removeEventListener("mousedown", onPointerDown, true);
110
+ }, [open, closeMenu, menuLive, triggerLive]);
111
+ useIsomorphicLayoutEffect(() => {
112
+ if (!open) return;
113
+ menuEl?.focus();
114
+ }, [open, menuEl]);
115
+ useEffect(() => {
116
+ if (isDisabled) setOpen(false);
117
+ }, [isDisabled]);
118
+ const anchor = useCallback(
119
+ () => triggerLive.current?.getBoundingClientRect() ?? null,
120
+ [triggerLive]
121
+ );
122
+ useFloat(menuEl, { anchor, placement: "top-start", offset: 6 });
123
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
124
+ /* @__PURE__ */ jsxs(
125
+ "button",
126
+ {
127
+ ref: triggerRef,
128
+ type: "button",
129
+ className: cn(
130
+ "ft-composer-model text-foreground/70 hover:bg-muted hover:text-foreground inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 font-mono text-xs transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-40",
131
+ className
132
+ ),
133
+ disabled: isDisabled,
134
+ "data-open": open ? "" : void 0,
135
+ "aria-haspopup": "listbox",
136
+ "aria-expanded": open,
137
+ "aria-controls": open ? menuId : void 0,
138
+ "aria-label": selected ? `${label}: ${selected.label}` : label,
139
+ onClick: () => open ? closeMenu(true) : openMenu(),
140
+ onKeyDown: handleTriggerKeydown,
141
+ children: [
142
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: selected?.label ?? label }),
143
+ selected?.badge ? /* @__PURE__ */ jsx("span", { className: "ft-composer-model-badge shrink-0 rounded px-1 py-px text-[0.625rem] tracking-wide", children: selected.badge }) : null,
144
+ /* @__PURE__ */ jsx(
145
+ "svg",
146
+ {
147
+ className: "ft-composer-model-chevron size-3 shrink-0",
148
+ viewBox: "0 0 16 16",
149
+ fill: "none",
150
+ stroke: "currentColor",
151
+ strokeWidth: "1.5",
152
+ strokeLinecap: "round",
153
+ strokeLinejoin: "round",
154
+ "aria-hidden": "true",
155
+ children: /* @__PURE__ */ jsx("path", { d: "m4 6 4 4 4-4" })
156
+ }
157
+ )
158
+ ]
159
+ }
160
+ ),
161
+ open ? /* @__PURE__ */ jsx(
162
+ "div",
163
+ {
164
+ ref: menuRef,
165
+ id: menuId,
166
+ role: "listbox",
167
+ tabIndex: -1,
168
+ "aria-label": label,
169
+ "aria-activedescendant": activeId,
170
+ className: "ft-composer-model-menu z-50 max-h-64 min-w-52 overflow-y-auto rounded-lg border p-1 shadow-lg outline-none",
171
+ onKeyDown: handleMenuKeydown,
172
+ children: models.map((model, index) => (
173
+ /*
174
+ A button carrying `role="option"`: the row has to be clickable and
175
+ it has to be an option, and starting from a button is what keeps
176
+ the press, the pointer cursor and the disabled semantics native.
177
+ `tabindex="-1"` keeps it out of the tab order, where the listbox
178
+ does the walking.
179
+ */
180
+ /* @__PURE__ */ jsxs(
181
+ "button",
182
+ {
183
+ type: "button",
184
+ role: "option",
185
+ tabIndex: -1,
186
+ id: optionId(index),
187
+ "aria-selected": model.id === selectedId,
188
+ "data-active": index === activeIndex ? "" : void 0,
189
+ className: "ft-composer-model-option flex w-full cursor-pointer flex-col items-start gap-0.5 rounded-md px-2 py-1.5 text-left",
190
+ onClick: () => select(index),
191
+ onMouseEnter: () => setActiveIndex(index),
192
+ children: [
193
+ /* @__PURE__ */ jsxs("span", { className: "flex w-full items-center gap-1.5", children: [
194
+ /* @__PURE__ */ jsx("span", { className: "truncate text-xs font-medium", children: model.label }),
195
+ model.badge ? /* @__PURE__ */ jsx("span", { className: "ft-composer-model-badge shrink-0 rounded px-1 py-px text-[0.625rem] tracking-wide", children: model.badge }) : null,
196
+ model.id === selectedId ? /* @__PURE__ */ jsx(
197
+ "svg",
198
+ {
199
+ className: "ml-auto size-3 shrink-0",
200
+ viewBox: "0 0 16 16",
201
+ fill: "none",
202
+ stroke: "currentColor",
203
+ strokeWidth: "2",
204
+ strokeLinecap: "round",
205
+ strokeLinejoin: "round",
206
+ "aria-hidden": "true",
207
+ children: /* @__PURE__ */ jsx("path", { d: "m3 8.5 3.5 3.5L13 5" })
208
+ }
209
+ ) : null
210
+ ] }),
211
+ model.description ? /* @__PURE__ */ jsx("span", { className: "ft-composer-model-description text-[0.6875rem] leading-snug", children: model.description }) : null
212
+ ]
213
+ },
214
+ `${model.id}#${index}`
215
+ )
216
+ ))
217
+ }
218
+ ) : null
219
+ ] });
220
+ }
221
+ export {
222
+ ComposerModelPicker
223
+ };
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from "react";
2
+ /**
3
+ * Props for ComposerSubmit
4
+ */
5
+ export interface ComposerSubmitProps {
6
+ /** Accessible name while the composer is idle. */
7
+ label?: string;
8
+ /** Accessible name while a response is streaming. */
9
+ stopLabel?: string;
10
+ /** Replaces the built-in icon. Rendered in both the send and the stop state. */
11
+ children?: ReactNode;
12
+ /** Additional CSS classes */
13
+ className?: string;
14
+ }
15
+ /** The send button, which becomes a stop button for as long as a response is arriving. */
16
+ export declare function ComposerSubmit({ label, stopLabel, children, className, }: ComposerSubmitProps): import("react").JSX.Element;
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useContext } from "react";
4
+ import { cn } from "../../utils.js";
5
+ import { COMPOSER_CONTEXT_KEY } from "./types.js";
6
+ function ComposerSubmit({
7
+ label = "Send",
8
+ stopLabel = "Stop",
9
+ children,
10
+ className
11
+ }) {
12
+ const composer = useContext(COMPOSER_CONTEXT_KEY);
13
+ const streaming = composer?.streaming ?? false;
14
+ const empty = (composer?.value.current ?? "").trim() === "" && (composer?.attachments.current.length ?? 0) === 0;
15
+ const stoppable = composer?.stoppable ?? false;
16
+ const isDisabled = (composer?.disabled ?? false) || (streaming ? !stoppable : empty);
17
+ const name = streaming ? stopLabel : label;
18
+ return /* @__PURE__ */ jsx(
19
+ "button",
20
+ {
21
+ type: streaming ? "button" : "submit",
22
+ className: cn(
23
+ "ft-composer-submit bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-ring inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg transition-colors focus-visible:ring-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-40",
24
+ className
25
+ ),
26
+ disabled: isDisabled,
27
+ "aria-label": name,
28
+ title: name,
29
+ onClick: streaming ? () => composer?.stop() : void 0,
30
+ children: children ?? (streaming ? /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", className: "size-3.5", "aria-hidden": "true", children: /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "10", height: "10", rx: "2", fill: "currentColor" }) }) : /* @__PURE__ */ jsxs(
31
+ "svg",
32
+ {
33
+ viewBox: "0 0 16 16",
34
+ className: "size-4",
35
+ fill: "none",
36
+ stroke: "currentColor",
37
+ strokeWidth: "1.5",
38
+ strokeLinecap: "round",
39
+ strokeLinejoin: "round",
40
+ "aria-hidden": "true",
41
+ children: [
42
+ /* @__PURE__ */ jsx("path", { d: "M14 2 2 6.8l4.6 2.6L9.2 14z" }),
43
+ /* @__PURE__ */ jsx("path", { d: "M14 2 6.6 9.4" })
44
+ ]
45
+ }
46
+ ))
47
+ }
48
+ );
49
+ }
50
+ export {
51
+ ComposerSubmit
52
+ };
@@ -0,0 +1,38 @@
1
+ import type { ReactNode } from "react";
2
+ /**
3
+ * Props for ComposerToolbar
4
+ */
5
+ export interface ComposerToolbarProps {
6
+ /** The controls on the rail, laid out left to right in source order. */
7
+ children?: ReactNode;
8
+ /** Additional CSS classes */
9
+ className?: string;
10
+ }
11
+ /**
12
+ * The bottom rail of a composer: one row, one gap, no opinions about what sits
13
+ * on it. A model picker, an attach button and a send button are all just
14
+ * children here, laid out left to right in source order.
15
+ *
16
+ * The trailing spacer convention
17
+ * ------------------------------
18
+ * The rail lays everything out from the left. Anything that belongs on the
19
+ * right — the send button, a token meter — is pushed there by a spacer the
20
+ * integrator writes into `children`, rather than by a second slot this
21
+ * component would have to invent:
22
+ *
23
+ * ```tsx
24
+ * <ComposerToolbar>
25
+ * <ComposerModelPicker models={models} />
26
+ * <div className="flex-1" />
27
+ * <ComposerSubmit />
28
+ * </ComposerToolbar>
29
+ * ```
30
+ *
31
+ * One flexible box, any number of groups, and the split stays visible in the
32
+ * consumer's markup instead of being buried in ours.
33
+ *
34
+ * Deliberately not `role="toolbar"`: that role promises arrow-key roving focus
35
+ * between its controls, and a row that announces itself as a toolbar without
36
+ * implementing that is worse for a keyboard user than a plain row of tab stops.
37
+ */
38
+ export declare function ComposerToolbar({ children, className }: ComposerToolbarProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cn } from "../../utils.js";
4
+ function ComposerToolbar({ children, className }) {
5
+ return /* @__PURE__ */ jsx("div", { className: cn("ft-composer-toolbar flex items-center gap-1", className), children });
6
+ }
7
+ export {
8
+ ComposerToolbar
9
+ };
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Caret arithmetic and caret geometry for the composer's trigger menus.
3
+ *
4
+ * Two jobs, one file, because a completion menu needs both at the same moment:
5
+ * *what* the reader is typing after a trigger character, and *where* on screen
6
+ * that trigger sits so the menu can be pinned to it.
7
+ *
8
+ * `findTokenStart` and `findTriggerToken` are pure — no DOM, no globals,
9
+ * exhaustively testable. `measureCaretRect` has to touch the DOM, since a
10
+ * textarea exposes no caret geometry of its own: the only way to find out where
11
+ * character *n* landed is to lay the same text out again in an element that can
12
+ * be measured.
13
+ */
14
+ import type { FloatRect } from "../../internals/float.js";
15
+ /** The trigger token the caret currently sits in. */
16
+ export interface TriggerToken {
17
+ /** Index of the trigger character itself, within the value. */
18
+ start: number;
19
+ /** Everything typed between the trigger and the caret. Empty right after the trigger. */
20
+ query: string;
21
+ }
22
+ /**
23
+ * Where the trigger token under `caret` starts, or -1 when there is none.
24
+ *
25
+ * This is *the* definition of a trigger token, and the only one: both the menus
26
+ * that open on a token and the `insertText` that replaces one measure it here,
27
+ * so the span a menu matched and the span a completion overwrites can never
28
+ * drift apart.
29
+ *
30
+ * The token is the whitespace-delimited run ending at the caret, and it counts
31
+ * as a trigger only when it opens with something other than a letter or a digit.
32
+ * That deliberately avoids a hardcoded trigger vocabulary: `/`, `@`, `#`, `:`
33
+ * and whatever a menu invents all behave the same, while an ordinary word — or a
34
+ * `/` sitting mid-word, as in a path fragment — does not.
35
+ *
36
+ * The walk counts code points rather than code units. Reading one unit would
37
+ * mistake the leading half of an astral character for a non-alphanumeric and
38
+ * swallow the whole word: `𝐀𝐁` is two letters, not a trigger token, and a caret
39
+ * the platform dropped between two halves belongs to the character as a whole.
40
+ */
41
+ export declare function findTokenStart(value: string, caret: number): number;
42
+ /**
43
+ * The trigger token under `caret`, or `null` when there is none.
44
+ *
45
+ * The same run `findTokenStart` reports, narrowed to the menus that own it: the
46
+ * run has to open with the exact `trigger` string. So `/de` and `@jo` open their
47
+ * own menu and nobody else's; `src/lib` opens neither, because its slash is
48
+ * mid-word, and neither does a caret sitting before the trigger it would
49
+ * otherwise match.
50
+ *
51
+ * The token deliberately ends *at the caret* rather than at the end of the word:
52
+ * completing `@jo|rdan` should search for `jo`, which is what the reader has
53
+ * actually committed to.
54
+ */
55
+ export declare function findTriggerToken(value: string, caret: number, trigger: string): TriggerToken | null;
56
+ /**
57
+ * Where character `index` of a textarea sits, in viewport coordinates.
58
+ *
59
+ * The mirror-div technique: a hidden div inherits the textarea's font, padding,
60
+ * borders and content width, receives the text up to `index`, and then a marker
61
+ * span holding the rest. The span's offset is the caret's offset, because the
62
+ * two layouts are the same layout. The rest is bookkeeping — the textarea's own
63
+ * position, its border, and how far it has been scrolled.
64
+ *
65
+ * Returns a zero-width rect one line tall, which is exactly what a float wants
66
+ * as a virtual anchor. Under jsdom nothing has a layout, so everything measures
67
+ * zero; the shape still holds and nothing throws.
68
+ */
69
+ export declare function measureCaretRect(textarea: HTMLTextAreaElement, index: number): FloatRect;
@@ -0,0 +1,112 @@
1
+ "use client";
2
+ function splitsPair(value, index) {
3
+ const high = value.charCodeAt(index - 1);
4
+ const low = value.charCodeAt(index);
5
+ return high >= 55296 && high <= 56319 && low >= 56320 && low <= 57343;
6
+ }
7
+ function tokenEnd(value, caret) {
8
+ const end = Math.max(0, Math.min(caret, value.length));
9
+ return end > 0 && end < value.length && splitsPair(value, end) ? end - 1 : end;
10
+ }
11
+ function findTokenStart(value, caret) {
12
+ const end = tokenEnd(value, caret);
13
+ let start = end;
14
+ while (start > 0) {
15
+ const step = splitsPair(value, start - 1) ? 2 : 1;
16
+ if (/\s/u.test(value.slice(start - step, start))) break;
17
+ start -= step;
18
+ }
19
+ if (start === end) return -1;
20
+ const first = String.fromCodePoint(value.codePointAt(start));
21
+ return /[\p{L}\p{N}]/u.test(first) ? -1 : start;
22
+ }
23
+ function findTriggerToken(value, caret, trigger) {
24
+ if (trigger === "") return null;
25
+ const end = tokenEnd(value, caret);
26
+ const start = findTokenStart(value, end);
27
+ if (start < 0) return null;
28
+ const token = value.slice(start, end);
29
+ if (!token.startsWith(trigger)) return null;
30
+ return { start, query: token.slice(trigger.length) };
31
+ }
32
+ const MIRRORED_STYLES = [
33
+ "border-bottom-width",
34
+ "border-left-width",
35
+ "border-right-width",
36
+ "border-top-width",
37
+ "direction",
38
+ "font-family",
39
+ "font-size",
40
+ "font-stretch",
41
+ "font-style",
42
+ "font-variant",
43
+ "font-weight",
44
+ "letter-spacing",
45
+ "line-height",
46
+ "padding-bottom",
47
+ "padding-left",
48
+ "padding-right",
49
+ "padding-top",
50
+ "tab-size",
51
+ "text-align",
52
+ "text-indent",
53
+ "text-transform",
54
+ "word-spacing"
55
+ ];
56
+ const FALLBACK_LINE_HEIGHT = 20;
57
+ const NORMAL_LINE_RATIO = 1.5;
58
+ function px(input) {
59
+ const parsed = Number.parseFloat(input);
60
+ return Number.isFinite(parsed) ? parsed : 0;
61
+ }
62
+ function measureCaretRect(textarea, index) {
63
+ const box = textarea.getBoundingClientRect();
64
+ const doc = textarea.ownerDocument;
65
+ const win = doc.defaultView;
66
+ if (!win) return { x: box.left, y: box.top, width: 0, height: box.height };
67
+ const style = win.getComputedStyle(textarea);
68
+ const declaredLine = Number.parseFloat(style.lineHeight);
69
+ const fontSize = Number.parseFloat(style.fontSize);
70
+ const line = Number.isFinite(declaredLine) && declaredLine > 0 ? declaredLine : Number.isFinite(fontSize) && fontSize > 0 ? fontSize * NORMAL_LINE_RATIO : FALLBACK_LINE_HEIGHT;
71
+ const mirror = doc.createElement("div");
72
+ for (const property of MIRRORED_STYLES) {
73
+ mirror.style.setProperty(property, style.getPropertyValue(property));
74
+ }
75
+ const inner = textarea.clientWidth || box.width;
76
+ mirror.style.boxSizing = "content-box";
77
+ mirror.style.width = `${Math.max(0, inner - px(style.paddingLeft) - px(style.paddingRight))}px`;
78
+ mirror.style.height = "auto";
79
+ mirror.style.position = "absolute";
80
+ mirror.style.top = "0";
81
+ mirror.style.left = "-9999px";
82
+ mirror.style.visibility = "hidden";
83
+ mirror.style.overflow = "hidden";
84
+ mirror.style.whiteSpace = "pre-wrap";
85
+ mirror.style.overflowWrap = "break-word";
86
+ const value = textarea.value;
87
+ const clamped = Math.max(0, Math.min(index, value.length));
88
+ mirror.textContent = value.slice(0, clamped);
89
+ const marker = doc.createElement("span");
90
+ marker.textContent = value.slice(clamped) || ".";
91
+ mirror.appendChild(marker);
92
+ doc.body.appendChild(mirror);
93
+ let top = 0;
94
+ let left = 0;
95
+ try {
96
+ top = marker.offsetTop;
97
+ left = marker.offsetLeft;
98
+ } finally {
99
+ mirror.remove();
100
+ }
101
+ return {
102
+ x: box.left + px(style.borderLeftWidth) + left - textarea.scrollLeft,
103
+ y: box.top + px(style.borderTopWidth) + top - textarea.scrollTop,
104
+ width: 0,
105
+ height: line
106
+ };
107
+ }
108
+ export {
109
+ findTokenStart,
110
+ findTriggerToken,
111
+ measureCaretRect
112
+ };
@@ -0,0 +1,18 @@
1
+ export { Composer } from "./Composer.js";
2
+ export type { ComposerProps } from "./Composer.js";
3
+ export { ComposerInput } from "./ComposerInput.js";
4
+ export type { ComposerInputProps } from "./ComposerInput.js";
5
+ export { ComposerSubmit } from "./ComposerSubmit.js";
6
+ export type { ComposerSubmitProps } from "./ComposerSubmit.js";
7
+ export { ComposerToolbar } from "./ComposerToolbar.js";
8
+ export type { ComposerToolbarProps } from "./ComposerToolbar.js";
9
+ export { ComposerModelPicker } from "./ComposerModelPicker.js";
10
+ export type { ComposerModelPickerProps } from "./ComposerModelPicker.js";
11
+ export { ComposerAttachments } from "./ComposerAttachments.js";
12
+ export type { ComposerAttachmentsProps } from "./ComposerAttachments.js";
13
+ export { ComposerAttachment } from "./ComposerAttachment.js";
14
+ export type { ComposerAttachmentProps } from "./ComposerAttachment.js";
15
+ export { ComposerCommandMenu } from "./ComposerCommandMenu.js";
16
+ export type { ComposerCommandMenuProps } from "./ComposerCommandMenu.js";
17
+ export { COMPOSER_CONTEXT_KEY } from "./types.js";
18
+ export type { ComposerContext } from "./types.js";
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The contract between the composer root and its parts.
3
+ *
4
+ * `Composer` owns the draft — the text, the attachments, the textarea element —
5
+ * and publishes a live, read-only view of it plus the handful of commands a part
6
+ * may issue. Every part reads it through context instead of having six values
7
+ * and four callbacks threaded back down as props, and every part must render
8
+ * harmlessly (inert, no-op) when the context is absent, so a part dropped
9
+ * outside a composer degrades instead of throwing.
10
+ *
11
+ * The root rebuilds the object on every render, which is what makes a part that
12
+ * reads `value.current` re-render when the draft changes. The commands are
13
+ * identity-stable and always call the root's latest logic, so a handle captured
14
+ * once — a menu's long-lived listener, a test's probe — never goes stale.
15
+ *
16
+ * `textareaRef` is typed read-only because exactly one part writes it —
17
+ * `ComposerInput`, which registers its own element through a documented cast to
18
+ * the writable shape the root actually publishes. Everyone else reads. It is the
19
+ * one member of the object that is NOT rebuilt per render: the root publishes a
20
+ * single accessor pair backed by a ref, so a write lands immediately and still
21
+ * wakes the parts that render off it.
22
+ */
23
+ import type { AttachmentData } from "../../internals/ai-types.js";
24
+ /** What the root publishes. Parts read it; only the root writes it. */
25
+ export interface ComposerContext {
26
+ /** The current draft text, exactly as typed — untrimmed. */
27
+ readonly value: {
28
+ readonly current: string;
29
+ };
30
+ /** The attachments riding along with the draft. The consumer owns this list. */
31
+ readonly attachments: {
32
+ readonly current: AttachmentData[];
33
+ };
34
+ /** Nothing may be typed, sent, or attached. */
35
+ readonly disabled: boolean;
36
+ /** A response is arriving: send becomes stop. */
37
+ readonly streaming: boolean;
38
+ /**
39
+ * Whether `stop()` reaches anyone. The root always publishes a callable
40
+ * `stop`, so a control asking "is there a handler behind it" has to ask this
41
+ * instead — otherwise a stop button offers itself with nothing to stop.
42
+ */
43
+ readonly stoppable: boolean;
44
+ /** The live textarea, once `ComposerInput` has mounted one. */
45
+ readonly textareaRef: {
46
+ readonly current: HTMLTextAreaElement | null;
47
+ };
48
+ /**
49
+ * Whether this composer plays sound cues — forwarded from the root's own
50
+ * `sound` prop. Parts read `composer?.sound ?? false`, so a part rendered
51
+ * outside a `Composer` stays silent rather than throwing.
52
+ */
53
+ readonly sound?: boolean;
54
+ /** Send the draft. No-ops while disabled, while streaming, and on an empty draft. */
55
+ submit(): void;
56
+ /** Interrupt the stream. No-ops unless the composer is streaming. */
57
+ stop(): void;
58
+ /** Replace the draft outright. */
59
+ setValue(next: string): void;
60
+ /**
61
+ * Splice `text` in at the caret. With `replaceTriggerToken`, the trigger token
62
+ * the caret sits in — the whitespace-delimited run before it, when that run
63
+ * opens with a non-alphanumeric character — is replaced instead, and the
64
+ * completion closes with a trailing space.
65
+ */
66
+ insertText(text: string, replaceTriggerToken?: boolean): void;
67
+ /** Hand files to the consumer. It uploads them and pushes onto `attachments`. */
68
+ addFiles(files: File[]): void;
69
+ /** Drop one attachment from the draft by id. */
70
+ removeAttachment(id: string): void;
71
+ }
72
+ /**
73
+ * The context the parts read to find their root.
74
+ *
75
+ * The source publishes it under a `Symbol` context key; React's own context
76
+ * object plays that role here, so the exported name is kept and the value is a
77
+ * `React.Context` rather than a symbol:
78
+ *
79
+ * ```tsx
80
+ * const composer = useContext(COMPOSER_CONTEXT_KEY);
81
+ * ```
82
+ *
83
+ * Read it as optional — a part rendered outside a `Composer` gets `undefined`
84
+ * rather than throwing.
85
+ */
86
+ export declare const COMPOSER_CONTEXT_KEY: import("react").Context<ComposerContext | undefined>;
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { createContext } from "react";
3
+ const COMPOSER_CONTEXT_KEY = createContext(void 0);
4
+ COMPOSER_CONTEXT_KEY.displayName = "ComposerContext";
5
+ export {
6
+ COMPOSER_CONTEXT_KEY
7
+ };
@@ -0,0 +1,37 @@
1
+ import type { ReactNode } from "react";
2
+ import type { GlobalOptions as ConfettiGlobalOptions, Options as ConfettiOptions } from "canvas-confetti";
3
+ /**
4
+ * The imperative surface the root exposes.
5
+ *
6
+ * The Svelte source declares `export function fire(...)`, which Svelte 5 hangs
7
+ * off the component instance (`bind:this={c}; c.fire()`). React has no instance,
8
+ * so the same method is published through the ref channel. This is the ONE place
9
+ * the port's `forwardRef` is not backed by a `ref = $bindable` declaration: the
10
+ * ref carries the handle, not the DOM node, because there is no bindable node to
11
+ * carry and dropping `fire` would delete a public method.
12
+ */
13
+ export interface ConfettiHandle {
14
+ /** Fire the canvas instance. `opts` is merged over the component's `options`. */
15
+ fire: (opts?: ConfettiOptions) => void;
16
+ }
17
+ export interface ConfettiProps {
18
+ /** Default confetti options, merged under every `fire()` call. */
19
+ options?: ConfettiOptions;
20
+ /** Canvas creation options, read once when the instance is created. */
21
+ globalOptions?: ConfettiGlobalOptions;
22
+ /** Skip the automatic fire on mount. */
23
+ manualStart?: boolean;
24
+ /** Canvas CSS classes. */
25
+ className?: string;
26
+ /** Content rendered next to the canvas — typically the buttons that fire it. */
27
+ children?: ReactNode;
28
+ }
29
+ /**
30
+ * Canvas wrapper owning one `canvas-confetti` instance and publishing its
31
+ * `fire` through context, so any `ConfettiButton` below it paints onto this
32
+ * canvas rather than the library's own full-page one.
33
+ *
34
+ * Rest props are not spread: the Svelte source reads only these props off
35
+ * `$props()` and has no `...restProps`.
36
+ */
37
+ export declare const Confetti: import("react").ForwardRefExoticComponent<ConfettiProps & import("react").RefAttributes<ConfettiHandle>>;