@sero-ai/ui 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/dist/components/ai-elements/agent.cjs +89 -0
  2. package/dist/components/ai-elements/agent.d.cts +32 -0
  3. package/dist/components/ai-elements/agent.d.ts +32 -0
  4. package/dist/components/ai-elements/agent.js +89 -0
  5. package/dist/components/ai-elements/artifact.cjs +121 -0
  6. package/dist/components/ai-elements/artifact.d.cts +29 -0
  7. package/dist/components/ai-elements/artifact.d.ts +29 -0
  8. package/dist/components/ai-elements/artifact.js +121 -0
  9. package/dist/components/ai-elements/attachments.cjs +283 -0
  10. package/dist/components/ai-elements/attachments.d.cts +60 -0
  11. package/dist/components/ai-elements/attachments.d.ts +60 -0
  12. package/dist/components/ai-elements/attachments.js +283 -0
  13. package/dist/components/ai-elements/audio-player.cjs +174 -0
  14. package/dist/components/ai-elements/audio-player.d.cts +33 -0
  15. package/dist/components/ai-elements/audio-player.d.ts +33 -0
  16. package/dist/components/ai-elements/audio-player.js +174 -0
  17. package/dist/components/ai-elements/canvas.cjs +23 -0
  18. package/dist/components/ai-elements/canvas.d.cts +10 -0
  19. package/dist/components/ai-elements/canvas.d.ts +10 -0
  20. package/dist/components/ai-elements/canvas.js +23 -0
  21. package/dist/components/ai-elements/chain-of-thought.cjs +170 -0
  22. package/dist/components/ai-elements/chain-of-thought.d.cts +37 -0
  23. package/dist/components/ai-elements/chain-of-thought.d.ts +37 -0
  24. package/dist/components/ai-elements/chain-of-thought.js +170 -0
  25. package/dist/components/ai-elements/checkpoint.cjs +49 -0
  26. package/dist/components/ai-elements/checkpoint.d.cts +18 -0
  27. package/dist/components/ai-elements/checkpoint.d.ts +18 -0
  28. package/dist/components/ai-elements/checkpoint.js +49 -0
  29. package/dist/components/ai-elements/code-block.cjs +380 -0
  30. package/dist/components/ai-elements/code-block.d.cts +51 -0
  31. package/dist/components/ai-elements/code-block.d.ts +51 -0
  32. package/dist/components/ai-elements/code-block.js +380 -0
  33. package/dist/components/ai-elements/commit.cjs +337 -0
  34. package/dist/components/ai-elements/commit.d.cts +71 -0
  35. package/dist/components/ai-elements/commit.d.ts +71 -0
  36. package/dist/components/ai-elements/commit.js +337 -0
  37. package/dist/components/ai-elements/confirmation.cjs +82 -0
  38. package/dist/components/ai-elements/confirmation.d.cts +54 -0
  39. package/dist/components/ai-elements/confirmation.d.ts +54 -0
  40. package/dist/components/ai-elements/confirmation.js +82 -0
  41. package/dist/components/ai-elements/connection.cjs +33 -0
  42. package/dist/components/ai-elements/connection.d.cts +5 -0
  43. package/dist/components/ai-elements/connection.d.ts +5 -0
  44. package/dist/components/ai-elements/connection.js +33 -0
  45. package/dist/components/ai-elements/context.cjs +329 -0
  46. package/dist/components/ai-elements/context.d.cts +39 -0
  47. package/dist/components/ai-elements/context.d.ts +39 -0
  48. package/dist/components/ai-elements/context.js +329 -0
  49. package/dist/components/ai-elements/controls.cjs +18 -0
  50. package/dist/components/ai-elements/controls.d.cts +8 -0
  51. package/dist/components/ai-elements/controls.d.ts +8 -0
  52. package/dist/components/ai-elements/controls.js +18 -0
  53. package/dist/components/ai-elements/conversation.cjs +124 -0
  54. package/dist/components/ai-elements/conversation.d.cts +32 -0
  55. package/dist/components/ai-elements/conversation.d.ts +32 -0
  56. package/dist/components/ai-elements/conversation.js +124 -0
  57. package/dist/components/ai-elements/edge.cjs +116 -0
  58. package/dist/components/ai-elements/edge.d.cts +9 -0
  59. package/dist/components/ai-elements/edge.d.ts +9 -0
  60. package/dist/components/ai-elements/edge.js +116 -0
  61. package/dist/components/ai-elements/environment-variables.cjs +227 -0
  62. package/dist/components/ai-elements/environment-variables.d.cts +45 -0
  63. package/dist/components/ai-elements/environment-variables.d.ts +45 -0
  64. package/dist/components/ai-elements/environment-variables.js +227 -0
  65. package/dist/components/ai-elements/file-tree.cjs +217 -0
  66. package/dist/components/ai-elements/file-tree.d.cts +30 -0
  67. package/dist/components/ai-elements/file-tree.d.ts +30 -0
  68. package/dist/components/ai-elements/file-tree.js +217 -0
  69. package/dist/components/ai-elements/image.cjs +22 -0
  70. package/dist/components/ai-elements/image.d.cts +10 -0
  71. package/dist/components/ai-elements/image.d.ts +10 -0
  72. package/dist/components/ai-elements/image.js +22 -0
  73. package/dist/components/ai-elements/inline-citation.cjs +223 -0
  74. package/dist/components/ai-elements/inline-citation.d.cts +47 -0
  75. package/dist/components/ai-elements/inline-citation.d.ts +47 -0
  76. package/dist/components/ai-elements/inline-citation.js +223 -0
  77. package/dist/components/ai-elements/jsx-preview.cjs +176 -0
  78. package/dist/components/ai-elements/jsx-preview.d.cts +31 -0
  79. package/dist/components/ai-elements/jsx-preview.d.ts +31 -0
  80. package/dist/components/ai-elements/jsx-preview.js +176 -0
  81. package/dist/components/ai-elements/message.cjs +287 -0
  82. package/dist/components/ai-elements/message.d.cts +46 -0
  83. package/dist/components/ai-elements/message.d.ts +46 -0
  84. package/dist/components/ai-elements/message.js +287 -0
  85. package/dist/components/ai-elements/mic-selector.cjs +275 -0
  86. package/dist/components/ai-elements/mic-selector.d.cts +54 -0
  87. package/dist/components/ai-elements/mic-selector.d.ts +54 -0
  88. package/dist/components/ai-elements/mic-selector.js +275 -0
  89. package/dist/components/ai-elements/model-selector.cjs +100 -0
  90. package/dist/components/ai-elements/model-selector.d.cts +41 -0
  91. package/dist/components/ai-elements/model-selector.d.ts +41 -0
  92. package/dist/components/ai-elements/model-selector.js +100 -0
  93. package/dist/components/ai-elements/node.cjs +54 -0
  94. package/dist/components/ai-elements/node.d.cts +25 -0
  95. package/dist/components/ai-elements/node.d.ts +25 -0
  96. package/dist/components/ai-elements/node.js +54 -0
  97. package/dist/components/ai-elements/open-in-chat.cjs +353 -0
  98. package/dist/components/ai-elements/open-in-chat.d.cts +33 -0
  99. package/dist/components/ai-elements/open-in-chat.d.ts +33 -0
  100. package/dist/components/ai-elements/open-in-chat.js +353 -0
  101. package/dist/components/ai-elements/package-info.cjs +171 -0
  102. package/dist/components/ai-elements/package-info.d.cts +32 -0
  103. package/dist/components/ai-elements/package-info.d.ts +32 -0
  104. package/dist/components/ai-elements/package-info.js +171 -0
  105. package/dist/components/ai-elements/panel.cjs +16 -0
  106. package/dist/components/ai-elements/panel.d.cts +8 -0
  107. package/dist/components/ai-elements/panel.d.ts +8 -0
  108. package/dist/components/ai-elements/panel.js +16 -0
  109. package/dist/components/ai-elements/persona.cjs +202 -0
  110. package/dist/components/ai-elements/persona.d.cts +50 -0
  111. package/dist/components/ai-elements/persona.d.ts +50 -0
  112. package/dist/components/ai-elements/persona.js +202 -0
  113. package/dist/components/ai-elements/plan.cjs +90 -0
  114. package/dist/components/ai-elements/plan.d.cts +30 -0
  115. package/dist/components/ai-elements/plan.d.ts +30 -0
  116. package/dist/components/ai-elements/plan.js +90 -0
  117. package/dist/components/ai-elements/prompt-input-context.cjs +161 -0
  118. package/dist/components/ai-elements/prompt-input-context.d.cts +58 -0
  119. package/dist/components/ai-elements/prompt-input-context.d.ts +58 -0
  120. package/dist/components/ai-elements/prompt-input-context.js +161 -0
  121. package/dist/components/ai-elements/prompt-input-elements.cjs +246 -0
  122. package/dist/components/ai-elements/prompt-input-elements.d.cts +88 -0
  123. package/dist/components/ai-elements/prompt-input-elements.d.ts +88 -0
  124. package/dist/components/ai-elements/prompt-input-elements.js +246 -0
  125. package/dist/components/ai-elements/prompt-input-textarea.cjs +89 -0
  126. package/dist/components/ai-elements/prompt-input-textarea.d.cts +11 -0
  127. package/dist/components/ai-elements/prompt-input-textarea.d.ts +11 -0
  128. package/dist/components/ai-elements/prompt-input-textarea.js +89 -0
  129. package/dist/components/ai-elements/prompt-input.cjs +306 -0
  130. package/dist/components/ai-elements/prompt-input.d.cts +39 -0
  131. package/dist/components/ai-elements/prompt-input.d.ts +39 -0
  132. package/dist/components/ai-elements/prompt-input.js +306 -0
  133. package/dist/components/ai-elements/queue.cjs +193 -0
  134. package/dist/components/ai-elements/queue.d.cts +68 -0
  135. package/dist/components/ai-elements/queue.d.ts +68 -0
  136. package/dist/components/ai-elements/queue.js +193 -0
  137. package/dist/components/ai-elements/reasoning.cjs +178 -0
  138. package/dist/components/ai-elements/reasoning.d.cts +31 -0
  139. package/dist/components/ai-elements/reasoning.d.ts +31 -0
  140. package/dist/components/ai-elements/reasoning.js +178 -0
  141. package/dist/components/ai-elements/sandbox.cjs +114 -0
  142. package/dist/components/ai-elements/sandbox.d.cts +31 -0
  143. package/dist/components/ai-elements/sandbox.d.ts +31 -0
  144. package/dist/components/ai-elements/sandbox.js +114 -0
  145. package/dist/components/ai-elements/schema-display.cjs +330 -0
  146. package/dist/components/ai-elements/schema-display.d.cts +61 -0
  147. package/dist/components/ai-elements/schema-display.d.ts +61 -0
  148. package/dist/components/ai-elements/schema-display.js +330 -0
  149. package/dist/components/ai-elements/shimmer.cjs +55 -0
  150. package/dist/components/ai-elements/shimmer.d.cts +14 -0
  151. package/dist/components/ai-elements/shimmer.d.ts +14 -0
  152. package/dist/components/ai-elements/shimmer.js +55 -0
  153. package/dist/components/ai-elements/snippet.cjs +105 -0
  154. package/dist/components/ai-elements/snippet.d.cts +25 -0
  155. package/dist/components/ai-elements/snippet.d.ts +25 -0
  156. package/dist/components/ai-elements/snippet.js +105 -0
  157. package/dist/components/ai-elements/sources.cjs +70 -0
  158. package/dist/components/ai-elements/sources.d.cts +17 -0
  159. package/dist/components/ai-elements/sources.d.ts +17 -0
  160. package/dist/components/ai-elements/sources.js +70 -0
  161. package/dist/components/ai-elements/speech-input.cjs +207 -0
  162. package/dist/components/ai-elements/speech-input.d.cts +59 -0
  163. package/dist/components/ai-elements/speech-input.d.ts +59 -0
  164. package/dist/components/ai-elements/speech-input.js +207 -0
  165. package/dist/components/ai-elements/stack-trace.cjs +403 -0
  166. package/dist/components/ai-elements/stack-trace.d.cts +45 -0
  167. package/dist/components/ai-elements/stack-trace.d.ts +45 -0
  168. package/dist/components/ai-elements/stack-trace.js +403 -0
  169. package/dist/components/ai-elements/suggestion.cjs +46 -0
  170. package/dist/components/ai-elements/suggestion.d.cts +17 -0
  171. package/dist/components/ai-elements/suggestion.d.ts +17 -0
  172. package/dist/components/ai-elements/suggestion.js +46 -0
  173. package/dist/components/ai-elements/task.cjs +62 -0
  174. package/dist/components/ai-elements/task.d.cts +19 -0
  175. package/dist/components/ai-elements/task.d.ts +19 -0
  176. package/dist/components/ai-elements/task.js +62 -0
  177. package/dist/components/ai-elements/terminal.cjs +220 -0
  178. package/dist/components/ai-elements/terminal.d.cts +33 -0
  179. package/dist/components/ai-elements/terminal.d.ts +33 -0
  180. package/dist/components/ai-elements/terminal.js +220 -0
  181. package/dist/components/ai-elements/test-results.cjs +376 -0
  182. package/dist/components/ai-elements/test-results.d.cts +62 -0
  183. package/dist/components/ai-elements/test-results.d.ts +62 -0
  184. package/dist/components/ai-elements/test-results.js +376 -0
  185. package/dist/components/ai-elements/tool.cjs +130 -0
  186. package/dist/components/ai-elements/tool.d.cts +36 -0
  187. package/dist/components/ai-elements/tool.d.ts +36 -0
  188. package/dist/components/ai-elements/tool.js +130 -0
  189. package/dist/components/ai-elements/toolbar.cjs +17 -0
  190. package/dist/components/ai-elements/toolbar.d.cts +8 -0
  191. package/dist/components/ai-elements/toolbar.d.ts +8 -0
  192. package/dist/components/ai-elements/toolbar.js +17 -0
  193. package/dist/components/ai-elements/transcription.cjs +92 -0
  194. package/dist/components/ai-elements/transcription.d.cts +19 -0
  195. package/dist/components/ai-elements/transcription.d.ts +19 -0
  196. package/dist/components/ai-elements/transcription.js +92 -0
  197. package/dist/components/ai-elements/voice-selector-accent.cjs +11 -0
  198. package/dist/components/ai-elements/voice-selector-accent.d.cts +10 -0
  199. package/dist/components/ai-elements/voice-selector-accent.d.ts +10 -0
  200. package/dist/components/ai-elements/voice-selector-accent.js +11 -0
  201. package/dist/components/ai-elements/voice-selector.cjs +246 -0
  202. package/dist/components/ai-elements/voice-selector.d.cts +66 -0
  203. package/dist/components/ai-elements/voice-selector.d.ts +66 -0
  204. package/dist/components/ai-elements/voice-selector.js +246 -0
  205. package/dist/components/ai-elements/web-preview.cjs +237 -0
  206. package/dist/components/ai-elements/web-preview.d.cts +40 -0
  207. package/dist/components/ai-elements/web-preview.d.ts +40 -0
  208. package/dist/components/ai-elements/web-preview.js +237 -0
  209. package/dist/components/model-selection/available-model-picker.cjs +172 -0
  210. package/dist/components/model-selection/available-model-picker.d.cts +18 -0
  211. package/dist/components/model-selection/available-model-picker.d.ts +18 -0
  212. package/dist/components/model-selection/available-model-picker.js +172 -0
  213. package/dist/components/model-selection/model-warning-list.cjs +24 -0
  214. package/dist/components/model-selection/model-warning-list.d.cts +10 -0
  215. package/dist/components/model-selection/model-warning-list.d.ts +10 -0
  216. package/dist/components/model-selection/model-warning-list.js +24 -0
  217. package/dist/components/model-selection/thinking-level-picker.cjs +39 -0
  218. package/dist/components/model-selection/thinking-level-picker.d.cts +14 -0
  219. package/dist/components/model-selection/thinking-level-picker.d.ts +14 -0
  220. package/dist/components/model-selection/thinking-level-picker.js +39 -0
  221. package/dist/components/ui/accordion.cjs +64 -0
  222. package/dist/components/ui/accordion.d.cts +10 -0
  223. package/dist/components/ui/accordion.d.ts +10 -0
  224. package/dist/components/ui/accordion.js +64 -0
  225. package/dist/components/ui/alert-dialog.cjs +178 -0
  226. package/dist/components/ui/alert-dialog.d.cts +23 -0
  227. package/dist/components/ui/alert-dialog.d.ts +23 -0
  228. package/dist/components/ui/alert-dialog.js +178 -0
  229. package/dist/components/ui/alert.cjs +66 -0
  230. package/dist/components/ui/alert.d.cts +13 -0
  231. package/dist/components/ui/alert.d.ts +13 -0
  232. package/dist/components/ui/alert.js +66 -0
  233. package/dist/components/ui/aspect-ratio.cjs +11 -0
  234. package/dist/components/ui/aspect-ratio.d.cts +6 -0
  235. package/dist/components/ui/aspect-ratio.d.ts +6 -0
  236. package/dist/components/ui/aspect-ratio.js +11 -0
  237. package/dist/components/ui/avatar.cjs +103 -0
  238. package/dist/components/ui/avatar.d.cts +14 -0
  239. package/dist/components/ui/avatar.d.ts +14 -0
  240. package/dist/components/ui/avatar.js +103 -0
  241. package/dist/components/ui/badge.cjs +43 -0
  242. package/dist/components/ui/badge.d.cts +13 -0
  243. package/dist/components/ui/badge.d.ts +13 -0
  244. package/dist/components/ui/badge.js +43 -0
  245. package/dist/components/ui/breadcrumb.cjs +103 -0
  246. package/dist/components/ui/breadcrumb.d.cts +14 -0
  247. package/dist/components/ui/breadcrumb.d.ts +14 -0
  248. package/dist/components/ui/breadcrumb.js +103 -0
  249. package/dist/components/ui/button-group.cjs +76 -0
  250. package/dist/components/ui/button-group.d.cts +17 -0
  251. package/dist/components/ui/button-group.d.ts +17 -0
  252. package/dist/components/ui/button-group.js +76 -0
  253. package/dist/components/ui/button.cjs +56 -0
  254. package/dist/components/ui/button.d.cts +14 -0
  255. package/dist/components/ui/button.d.ts +14 -0
  256. package/dist/components/ui/button.js +56 -0
  257. package/dist/components/ui/calendar.cjs +194 -0
  258. package/dist/components/ui/calendar.d.cts +13 -0
  259. package/dist/components/ui/calendar.d.ts +13 -0
  260. package/dist/components/ui/calendar.js +194 -0
  261. package/dist/components/ui/card.cjs +90 -0
  262. package/dist/components/ui/card.d.cts +12 -0
  263. package/dist/components/ui/card.d.ts +12 -0
  264. package/dist/components/ui/card.js +90 -0
  265. package/dist/components/ui/carousel.cjs +198 -0
  266. package/dist/components/ui/carousel.d.cts +24 -0
  267. package/dist/components/ui/carousel.d.ts +24 -0
  268. package/dist/components/ui/carousel.js +198 -0
  269. package/dist/components/ui/chart.cjs +242 -0
  270. package/dist/components/ui/chart.d.cts +43 -0
  271. package/dist/components/ui/chart.d.ts +43 -0
  272. package/dist/components/ui/chart.js +242 -0
  273. package/dist/components/ui/checkbox.cjs +32 -0
  274. package/dist/components/ui/checkbox.d.cts +7 -0
  275. package/dist/components/ui/checkbox.d.ts +7 -0
  276. package/dist/components/ui/checkbox.js +32 -0
  277. package/dist/components/ui/collapsible.cjs +34 -0
  278. package/dist/components/ui/collapsible.d.cts +8 -0
  279. package/dist/components/ui/collapsible.d.ts +8 -0
  280. package/dist/components/ui/collapsible.js +34 -0
  281. package/dist/components/ui/combobox.cjs +297 -0
  282. package/dist/components/ui/combobox.d.cts +27 -0
  283. package/dist/components/ui/combobox.d.ts +27 -0
  284. package/dist/components/ui/combobox.js +297 -0
  285. package/dist/components/ui/command.cjs +177 -0
  286. package/dist/components/ui/command.d.cts +22 -0
  287. package/dist/components/ui/command.d.ts +22 -0
  288. package/dist/components/ui/command.js +177 -0
  289. package/dist/components/ui/context-menu.cjs +224 -0
  290. package/dist/components/ui/context-menu.d.cts +28 -0
  291. package/dist/components/ui/context-menu.d.ts +28 -0
  292. package/dist/components/ui/context-menu.js +224 -0
  293. package/dist/components/ui/dialog.cjs +147 -0
  294. package/dist/components/ui/dialog.d.cts +20 -0
  295. package/dist/components/ui/dialog.d.ts +20 -0
  296. package/dist/components/ui/dialog.js +147 -0
  297. package/dist/components/ui/direction.cjs +15 -0
  298. package/dist/components/ui/direction.d.cts +10 -0
  299. package/dist/components/ui/direction.d.ts +10 -0
  300. package/dist/components/ui/direction.js +15 -0
  301. package/dist/components/ui/drawer.cjs +128 -0
  302. package/dist/components/ui/drawer.d.cts +16 -0
  303. package/dist/components/ui/drawer.d.ts +16 -0
  304. package/dist/components/ui/drawer.js +128 -0
  305. package/dist/components/ui/dropdown-menu.cjs +232 -0
  306. package/dist/components/ui/dropdown-menu.d.cts +28 -0
  307. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  308. package/dist/components/ui/dropdown-menu.js +232 -0
  309. package/dist/components/ui/empty.cjs +102 -0
  310. package/dist/components/ui/empty.d.cts +15 -0
  311. package/dist/components/ui/empty.d.ts +15 -0
  312. package/dist/components/ui/empty.js +102 -0
  313. package/dist/components/ui/field.cjs +230 -0
  314. package/dist/components/ui/field.d.cts +30 -0
  315. package/dist/components/ui/field.d.ts +30 -0
  316. package/dist/components/ui/field.js +230 -0
  317. package/dist/components/ui/form.cjs +121 -0
  318. package/dist/components/ui/form.d.cts +27 -0
  319. package/dist/components/ui/form.d.ts +27 -0
  320. package/dist/components/ui/form.js +121 -0
  321. package/dist/components/ui/hover-card.cjs +38 -0
  322. package/dist/components/ui/hover-card.d.cts +9 -0
  323. package/dist/components/ui/hover-card.d.ts +9 -0
  324. package/dist/components/ui/hover-card.js +38 -0
  325. package/dist/components/ui/input-group.cjs +154 -0
  326. package/dist/components/ui/input-group.d.cts +20 -0
  327. package/dist/components/ui/input-group.d.ts +20 -0
  328. package/dist/components/ui/input-group.js +154 -0
  329. package/dist/components/ui/input-otp.cjs +67 -0
  330. package/dist/components/ui/input-otp.d.cts +14 -0
  331. package/dist/components/ui/input-otp.d.ts +14 -0
  332. package/dist/components/ui/input-otp.js +67 -0
  333. package/dist/components/ui/input.cjs +23 -0
  334. package/dist/components/ui/input.d.cts +6 -0
  335. package/dist/components/ui/input.d.ts +6 -0
  336. package/dist/components/ui/input.js +23 -0
  337. package/dist/components/ui/item.cjs +187 -0
  338. package/dist/components/ui/item.d.cts +28 -0
  339. package/dist/components/ui/item.d.ts +28 -0
  340. package/dist/components/ui/item.js +187 -0
  341. package/dist/components/ui/kbd.cjs +31 -0
  342. package/dist/components/ui/kbd.d.cts +6 -0
  343. package/dist/components/ui/kbd.d.ts +6 -0
  344. package/dist/components/ui/kbd.js +31 -0
  345. package/dist/components/ui/label.cjs +22 -0
  346. package/dist/components/ui/label.d.cts +7 -0
  347. package/dist/components/ui/label.d.ts +7 -0
  348. package/dist/components/ui/label.js +22 -0
  349. package/dist/components/ui/menubar.cjs +252 -0
  350. package/dist/components/ui/menubar.d.cts +29 -0
  351. package/dist/components/ui/menubar.d.ts +29 -0
  352. package/dist/components/ui/menubar.js +252 -0
  353. package/dist/components/ui/native-select.cjs +63 -0
  354. package/dist/components/ui/native-select.d.cts +10 -0
  355. package/dist/components/ui/native-select.d.ts +10 -0
  356. package/dist/components/ui/native-select.js +63 -0
  357. package/dist/components/ui/navigation-menu.cjs +170 -0
  358. package/dist/components/ui/navigation-menu.d.cts +18 -0
  359. package/dist/components/ui/navigation-menu.d.ts +18 -0
  360. package/dist/components/ui/navigation-menu.js +170 -0
  361. package/dist/components/ui/pagination.cjs +122 -0
  362. package/dist/components/ui/pagination.d.cts +18 -0
  363. package/dist/components/ui/pagination.d.ts +18 -0
  364. package/dist/components/ui/pagination.js +122 -0
  365. package/dist/components/ui/plugin-safety-disclaimer.cjs +26 -0
  366. package/dist/components/ui/plugin-safety-disclaimer.d.cts +8 -0
  367. package/dist/components/ui/plugin-safety-disclaimer.d.ts +8 -0
  368. package/dist/components/ui/plugin-safety-disclaimer.js +26 -0
  369. package/dist/components/ui/popover.cjs +80 -0
  370. package/dist/components/ui/popover.d.cts +13 -0
  371. package/dist/components/ui/popover.d.ts +13 -0
  372. package/dist/components/ui/popover.js +80 -0
  373. package/dist/components/ui/progress.cjs +32 -0
  374. package/dist/components/ui/progress.d.cts +7 -0
  375. package/dist/components/ui/progress.d.ts +7 -0
  376. package/dist/components/ui/progress.js +32 -0
  377. package/dist/components/ui/radio-group.cjs +45 -0
  378. package/dist/components/ui/radio-group.d.cts +8 -0
  379. package/dist/components/ui/radio-group.d.ts +8 -0
  380. package/dist/components/ui/radio-group.js +45 -0
  381. package/dist/components/ui/resizable.cjs +47 -0
  382. package/dist/components/ui/resizable.d.cts +10 -0
  383. package/dist/components/ui/resizable.d.ts +10 -0
  384. package/dist/components/ui/resizable.js +47 -0
  385. package/dist/components/ui/scroll-area.cjs +60 -0
  386. package/dist/components/ui/scroll-area.d.cts +8 -0
  387. package/dist/components/ui/scroll-area.d.ts +8 -0
  388. package/dist/components/ui/scroll-area.js +60 -0
  389. package/dist/components/ui/search-input.cjs +39 -0
  390. package/dist/components/ui/search-input.d.cts +12 -0
  391. package/dist/components/ui/search-input.d.ts +12 -0
  392. package/dist/components/ui/search-input.js +39 -0
  393. package/dist/components/ui/select.cjs +179 -0
  394. package/dist/components/ui/select.d.cts +18 -0
  395. package/dist/components/ui/select.d.ts +18 -0
  396. package/dist/components/ui/select.js +179 -0
  397. package/dist/components/ui/separator.cjs +27 -0
  398. package/dist/components/ui/separator.d.cts +7 -0
  399. package/dist/components/ui/separator.d.ts +7 -0
  400. package/dist/components/ui/separator.js +27 -0
  401. package/dist/components/ui/sheet.cjs +129 -0
  402. package/dist/components/ui/sheet.d.cts +18 -0
  403. package/dist/components/ui/sheet.d.ts +18 -0
  404. package/dist/components/ui/sheet.js +129 -0
  405. package/dist/components/ui/sidebar.cjs +649 -0
  406. package/dist/components/ui/sidebar.d.cts +74 -0
  407. package/dist/components/ui/sidebar.d.ts +74 -0
  408. package/dist/components/ui/sidebar.js +649 -0
  409. package/dist/components/ui/skeleton.cjs +15 -0
  410. package/dist/components/ui/skeleton.d.cts +5 -0
  411. package/dist/components/ui/skeleton.d.ts +5 -0
  412. package/dist/components/ui/skeleton.js +15 -0
  413. package/dist/components/ui/slider.cjs +68 -0
  414. package/dist/components/ui/slider.d.cts +7 -0
  415. package/dist/components/ui/slider.d.ts +7 -0
  416. package/dist/components/ui/slider.js +68 -0
  417. package/dist/components/ui/sonner.cjs +38 -0
  418. package/dist/components/ui/sonner.d.cts +6 -0
  419. package/dist/components/ui/sonner.d.ts +6 -0
  420. package/dist/components/ui/sonner.js +38 -0
  421. package/dist/components/ui/spinner.cjs +17 -0
  422. package/dist/components/ui/spinner.d.cts +5 -0
  423. package/dist/components/ui/spinner.d.ts +5 -0
  424. package/dist/components/ui/spinner.js +17 -0
  425. package/dist/components/ui/switch.cjs +33 -0
  426. package/dist/components/ui/switch.d.cts +9 -0
  427. package/dist/components/ui/switch.d.ts +9 -0
  428. package/dist/components/ui/switch.js +33 -0
  429. package/dist/components/ui/table.cjs +115 -0
  430. package/dist/components/ui/table.d.cts +13 -0
  431. package/dist/components/ui/table.d.ts +13 -0
  432. package/dist/components/ui/table.js +115 -0
  433. package/dist/components/ui/tabs.cjs +92 -0
  434. package/dist/components/ui/tabs.d.cts +15 -0
  435. package/dist/components/ui/tabs.d.ts +15 -0
  436. package/dist/components/ui/tabs.js +92 -0
  437. package/dist/components/ui/textarea.cjs +20 -0
  438. package/dist/components/ui/textarea.d.cts +6 -0
  439. package/dist/components/ui/textarea.d.ts +6 -0
  440. package/dist/components/ui/textarea.js +20 -0
  441. package/dist/components/ui/toggle-group.cjs +69 -0
  442. package/dist/components/ui/toggle-group.d.cts +13 -0
  443. package/dist/components/ui/toggle-group.d.ts +13 -0
  444. package/dist/components/ui/toggle-group.js +69 -0
  445. package/dist/components/ui/toggle.cjs +44 -0
  446. package/dist/components/ui/toggle.d.cts +13 -0
  447. package/dist/components/ui/toggle.d.ts +13 -0
  448. package/dist/components/ui/toggle.js +44 -0
  449. package/dist/components/ui/tooltip.cjs +56 -0
  450. package/dist/components/ui/tooltip.d.cts +10 -0
  451. package/dist/components/ui/tooltip.d.ts +10 -0
  452. package/dist/components/ui/tooltip.js +56 -0
  453. package/dist/components/ui/tree.cjs +131 -0
  454. package/dist/components/ui/tree.d.cts +35 -0
  455. package/dist/components/ui/tree.d.ts +35 -0
  456. package/dist/components/ui/tree.js +131 -0
  457. package/dist/hooks/use-mobile.cjs +16 -0
  458. package/dist/hooks/use-mobile.d.cts +3 -0
  459. package/dist/hooks/use-mobile.d.ts +3 -0
  460. package/dist/hooks/use-mobile.js +16 -0
  461. package/dist/index.cjs +121 -15527
  462. package/dist/index.d.cts +145 -2246
  463. package/dist/index.d.ts +145 -2246
  464. package/dist/index.js +118 -14982
  465. package/dist/lib/utils.cjs +8 -0
  466. package/dist/lib/utils.d.cts +5 -0
  467. package/dist/lib/utils.d.ts +5 -0
  468. package/dist/lib/utils.js +8 -0
  469. package/dist/styles/globals.css +438 -0
  470. package/dist/styles/plugin.css +4 -0
  471. package/dist/theme/apply-theme.cjs +221 -0
  472. package/dist/theme/apply-theme.d.cts +13 -0
  473. package/dist/theme/apply-theme.d.ts +13 -0
  474. package/dist/theme/apply-theme.js +221 -0
  475. package/dist/theme/index.cjs +2 -0
  476. package/dist/theme/index.d.cts +2 -0
  477. package/dist/theme/index.d.ts +2 -0
  478. package/dist/theme/index.js +2 -0
  479. package/dist/theme/types.cjs +90 -0
  480. package/dist/theme/types.d.cts +133 -0
  481. package/dist/theme/types.d.ts +133 -0
  482. package/dist/theme/types.js +90 -0
  483. package/package.json +22 -5
  484. package/tsup.config.ts +18 -0
@@ -0,0 +1,202 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cn } from "../../lib/utils";
4
+ import {
5
+ useRive,
6
+ useStateMachineInput,
7
+ useViewModel,
8
+ useViewModelInstance,
9
+ useViewModelInstanceColor
10
+ } from "@rive-app/react-webgl2";
11
+ import { memo, useEffect, useMemo, useRef, useState } from "react";
12
+ const stateMachine = "default";
13
+ const sources = {
14
+ command: {
15
+ dynamicColor: true,
16
+ hasModel: true,
17
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/command-2.0.riv"
18
+ },
19
+ glint: {
20
+ dynamicColor: true,
21
+ hasModel: true,
22
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/glint-2.0.riv"
23
+ },
24
+ halo: {
25
+ dynamicColor: true,
26
+ hasModel: true,
27
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/halo-2.0.riv"
28
+ },
29
+ mana: {
30
+ dynamicColor: false,
31
+ hasModel: true,
32
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/mana-2.0.riv"
33
+ },
34
+ obsidian: {
35
+ dynamicColor: true,
36
+ hasModel: true,
37
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/obsidian-2.0.riv"
38
+ },
39
+ opal: {
40
+ dynamicColor: false,
41
+ hasModel: false,
42
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/orb-1.2.riv"
43
+ }
44
+ };
45
+ const getCurrentTheme = () => {
46
+ if (typeof window !== "undefined") {
47
+ if (document.documentElement.classList.contains("dark")) {
48
+ return "dark";
49
+ }
50
+ if (window.matchMedia?.("(prefers-color-scheme: dark)").matches) {
51
+ return "dark";
52
+ }
53
+ }
54
+ return "light";
55
+ };
56
+ const useTheme = (enabled) => {
57
+ const [theme, setTheme] = useState(getCurrentTheme);
58
+ useEffect(() => {
59
+ if (!enabled) {
60
+ return;
61
+ }
62
+ const observer = new MutationObserver(() => {
63
+ setTheme(getCurrentTheme());
64
+ });
65
+ observer.observe(document.documentElement, {
66
+ attributeFilter: ["class"],
67
+ attributes: true
68
+ });
69
+ let mql = null;
70
+ const handleMediaChange = () => {
71
+ setTheme(getCurrentTheme());
72
+ };
73
+ if (window.matchMedia) {
74
+ mql = window.matchMedia("(prefers-color-scheme: dark)");
75
+ mql.addEventListener("change", handleMediaChange);
76
+ }
77
+ return () => {
78
+ observer.disconnect();
79
+ if (mql) {
80
+ mql.removeEventListener("change", handleMediaChange);
81
+ }
82
+ };
83
+ }, [enabled]);
84
+ return theme;
85
+ };
86
+ const PersonaWithModel = memo(
87
+ ({ rive, source, children }) => {
88
+ const theme = useTheme(source.dynamicColor);
89
+ const viewModel = useViewModel(rive, { useDefault: true });
90
+ const viewModelInstance = useViewModelInstance(viewModel, {
91
+ rive,
92
+ useDefault: true
93
+ });
94
+ const viewModelInstanceColor = useViewModelInstanceColor(
95
+ "color",
96
+ viewModelInstance
97
+ );
98
+ useEffect(() => {
99
+ if (!(viewModelInstanceColor && source.dynamicColor)) {
100
+ return;
101
+ }
102
+ const [r, g, b] = theme === "dark" ? [255, 255, 255] : [0, 0, 0];
103
+ viewModelInstanceColor.setRgb(r, g, b);
104
+ }, [viewModelInstanceColor, theme, source.dynamicColor]);
105
+ return children;
106
+ }
107
+ );
108
+ PersonaWithModel.displayName = "PersonaWithModel";
109
+ const PersonaWithoutModel = memo(
110
+ ({ children }) => children
111
+ );
112
+ PersonaWithoutModel.displayName = "PersonaWithoutModel";
113
+ const Persona = memo(
114
+ ({
115
+ variant = "obsidian",
116
+ state = "idle",
117
+ onLoad,
118
+ onLoadError,
119
+ onReady,
120
+ onPause,
121
+ onPlay,
122
+ onStop,
123
+ className
124
+ }) => {
125
+ const source = sources[variant];
126
+ if (!source) {
127
+ throw new Error(`Invalid variant: ${variant}`);
128
+ }
129
+ const callbacksRef = useRef({
130
+ onLoad,
131
+ onLoadError,
132
+ onPause,
133
+ onPlay,
134
+ onReady,
135
+ onStop
136
+ });
137
+ useEffect(() => {
138
+ callbacksRef.current = {
139
+ onLoad,
140
+ onLoadError,
141
+ onPause,
142
+ onPlay,
143
+ onReady,
144
+ onStop
145
+ };
146
+ }, [onLoad, onLoadError, onPause, onPlay, onReady, onStop]);
147
+ const stableCallbacks = useMemo(
148
+ () => ({
149
+ onLoad: ((loadedRive) => callbacksRef.current.onLoad?.(
150
+ loadedRive
151
+ )),
152
+ onLoadError: ((err) => callbacksRef.current.onLoadError?.(
153
+ err
154
+ )),
155
+ onPause: ((event) => callbacksRef.current.onPause?.(event)),
156
+ onPlay: ((event) => callbacksRef.current.onPlay?.(event)),
157
+ onReady: () => callbacksRef.current.onReady?.(),
158
+ onStop: ((event) => callbacksRef.current.onStop?.(event))
159
+ }),
160
+ []
161
+ );
162
+ const { rive, RiveComponent } = useRive({
163
+ autoplay: true,
164
+ onLoad: stableCallbacks.onLoad,
165
+ onLoadError: stableCallbacks.onLoadError,
166
+ onPause: stableCallbacks.onPause,
167
+ onPlay: stableCallbacks.onPlay,
168
+ onRiveReady: stableCallbacks.onReady,
169
+ onStop: stableCallbacks.onStop,
170
+ src: source.source,
171
+ stateMachines: stateMachine
172
+ });
173
+ const listeningInput = useStateMachineInput(
174
+ rive,
175
+ stateMachine,
176
+ "listening"
177
+ );
178
+ const thinkingInput = useStateMachineInput(rive, stateMachine, "thinking");
179
+ const speakingInput = useStateMachineInput(rive, stateMachine, "speaking");
180
+ const asleepInput = useStateMachineInput(rive, stateMachine, "asleep");
181
+ useEffect(() => {
182
+ if (listeningInput) {
183
+ listeningInput.value = state === "listening";
184
+ }
185
+ if (thinkingInput) {
186
+ thinkingInput.value = state === "thinking";
187
+ }
188
+ if (speakingInput) {
189
+ speakingInput.value = state === "speaking";
190
+ }
191
+ if (asleepInput) {
192
+ asleepInput.value = state === "asleep";
193
+ }
194
+ }, [state, listeningInput, thinkingInput, speakingInput, asleepInput]);
195
+ const Component = source.hasModel ? PersonaWithModel : PersonaWithoutModel;
196
+ return /* @__PURE__ */ jsx(Component, { rive, source, children: /* @__PURE__ */ jsx(RiveComponent, { className: cn("size-16 shrink-0", className) }) });
197
+ }
198
+ );
199
+ Persona.displayName = "Persona";
200
+ export {
201
+ Persona
202
+ };
@@ -0,0 +1,90 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ var _jsxruntime = require('react/jsx-runtime');
3
+ var _button = require('../ui/button');
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+ var _card = require('../ui/card');
13
+
14
+
15
+
16
+
17
+ var _collapsible = require('../ui/collapsible');
18
+ var _utils = require('../../lib/utils');
19
+ var _lucidereact = require('lucide-react');
20
+ var _react = require('react');
21
+ var _shimmer = require('./shimmer');
22
+ const PlanContext = _react.createContext.call(void 0, null);
23
+ const usePlan = () => {
24
+ const context = _react.use.call(void 0, PlanContext);
25
+ if (!context) {
26
+ throw new Error("Plan components must be used within Plan");
27
+ }
28
+ return context;
29
+ };
30
+ const Plan = ({
31
+ className,
32
+ isStreaming = false,
33
+ children,
34
+ ...props
35
+ }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlanContext.Provider, { value: { isStreaming }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _collapsible.Collapsible, { asChild: true, "data-slot": "plan", ...props, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.Card, { className: _utils.cn.call(void 0, "shadow-none", className), children }) }) });
36
+ const PlanHeader = ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37
+ _card.CardHeader,
38
+ {
39
+ className: _utils.cn.call(void 0, "flex items-start justify-between", className),
40
+ "data-slot": "plan-header",
41
+ ...props
42
+ }
43
+ );
44
+ const PlanTitle = ({ children, ...props }) => {
45
+ const { isStreaming } = usePlan();
46
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardTitle, { "data-slot": "plan-title", ...props, children: isStreaming ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _shimmer.Shimmer, { children }) : children });
47
+ };
48
+ const PlanDescription = ({
49
+ className,
50
+ children,
51
+ ...props
52
+ }) => {
53
+ const { isStreaming } = usePlan();
54
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
55
+ _card.CardDescription,
56
+ {
57
+ className: _utils.cn.call(void 0, "text-balance", className),
58
+ "data-slot": "plan-description",
59
+ ...props,
60
+ children: isStreaming ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _shimmer.Shimmer, { children }) : children
61
+ }
62
+ );
63
+ };
64
+ const PlanAction = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardAction, { "data-slot": "plan-action", ...props });
65
+ const PlanContent = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _collapsible.CollapsibleContent, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardContent, { "data-slot": "plan-content", ...props }) });
66
+ const PlanFooter = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardFooter, { "data-slot": "plan-footer", ...props });
67
+ const PlanTrigger = ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _collapsible.CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
68
+ _button.Button,
69
+ {
70
+ className: _utils.cn.call(void 0, "size-8", className),
71
+ "data-slot": "plan-trigger",
72
+ size: "icon",
73
+ variant: "ghost",
74
+ ...props,
75
+ children: [
76
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronsUpDownIcon, { className: "size-4" }),
77
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Toggle plan" })
78
+ ]
79
+ }
80
+ ) });
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ exports.Plan = Plan; exports.PlanAction = PlanAction; exports.PlanContent = PlanContent; exports.PlanDescription = PlanDescription; exports.PlanFooter = PlanFooter; exports.PlanHeader = PlanHeader; exports.PlanTitle = PlanTitle; exports.PlanTrigger = PlanTrigger;
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ComponentProps } from 'react';
3
+ import { CardAction, CardContent, CardDescription, CardHeader, CardTitle } from '../ui/card.cjs';
4
+ import { Collapsible, CollapsibleTrigger } from '../ui/collapsible.cjs';
5
+ import 'radix-ui';
6
+
7
+ type PlanProps = ComponentProps<typeof Collapsible> & {
8
+ isStreaming?: boolean;
9
+ };
10
+ declare const Plan: ({ className, isStreaming, children, ...props }: PlanProps) => react_jsx_runtime.JSX.Element;
11
+ type PlanHeaderProps = ComponentProps<typeof CardHeader>;
12
+ declare const PlanHeader: ({ className, ...props }: PlanHeaderProps) => react_jsx_runtime.JSX.Element;
13
+ type PlanTitleProps = Omit<ComponentProps<typeof CardTitle>, "children"> & {
14
+ children: string;
15
+ };
16
+ declare const PlanTitle: ({ children, ...props }: PlanTitleProps) => react_jsx_runtime.JSX.Element;
17
+ type PlanDescriptionProps = Omit<ComponentProps<typeof CardDescription>, "children"> & {
18
+ children: string;
19
+ };
20
+ declare const PlanDescription: ({ className, children, ...props }: PlanDescriptionProps) => react_jsx_runtime.JSX.Element;
21
+ type PlanActionProps = ComponentProps<typeof CardAction>;
22
+ declare const PlanAction: (props: PlanActionProps) => react_jsx_runtime.JSX.Element;
23
+ type PlanContentProps = ComponentProps<typeof CardContent>;
24
+ declare const PlanContent: (props: PlanContentProps) => react_jsx_runtime.JSX.Element;
25
+ type PlanFooterProps = ComponentProps<"div">;
26
+ declare const PlanFooter: (props: PlanFooterProps) => react_jsx_runtime.JSX.Element;
27
+ type PlanTriggerProps = ComponentProps<typeof CollapsibleTrigger>;
28
+ declare const PlanTrigger: ({ className, ...props }: PlanTriggerProps) => react_jsx_runtime.JSX.Element;
29
+
30
+ export { Plan, PlanAction, type PlanActionProps, PlanContent, type PlanContentProps, PlanDescription, type PlanDescriptionProps, PlanFooter, type PlanFooterProps, PlanHeader, type PlanHeaderProps, type PlanProps, PlanTitle, type PlanTitleProps, PlanTrigger, type PlanTriggerProps };
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ComponentProps } from 'react';
3
+ import { CardAction, CardContent, CardDescription, CardHeader, CardTitle } from '../ui/card.js';
4
+ import { Collapsible, CollapsibleTrigger } from '../ui/collapsible.js';
5
+ import 'radix-ui';
6
+
7
+ type PlanProps = ComponentProps<typeof Collapsible> & {
8
+ isStreaming?: boolean;
9
+ };
10
+ declare const Plan: ({ className, isStreaming, children, ...props }: PlanProps) => react_jsx_runtime.JSX.Element;
11
+ type PlanHeaderProps = ComponentProps<typeof CardHeader>;
12
+ declare const PlanHeader: ({ className, ...props }: PlanHeaderProps) => react_jsx_runtime.JSX.Element;
13
+ type PlanTitleProps = Omit<ComponentProps<typeof CardTitle>, "children"> & {
14
+ children: string;
15
+ };
16
+ declare const PlanTitle: ({ children, ...props }: PlanTitleProps) => react_jsx_runtime.JSX.Element;
17
+ type PlanDescriptionProps = Omit<ComponentProps<typeof CardDescription>, "children"> & {
18
+ children: string;
19
+ };
20
+ declare const PlanDescription: ({ className, children, ...props }: PlanDescriptionProps) => react_jsx_runtime.JSX.Element;
21
+ type PlanActionProps = ComponentProps<typeof CardAction>;
22
+ declare const PlanAction: (props: PlanActionProps) => react_jsx_runtime.JSX.Element;
23
+ type PlanContentProps = ComponentProps<typeof CardContent>;
24
+ declare const PlanContent: (props: PlanContentProps) => react_jsx_runtime.JSX.Element;
25
+ type PlanFooterProps = ComponentProps<"div">;
26
+ declare const PlanFooter: (props: PlanFooterProps) => react_jsx_runtime.JSX.Element;
27
+ type PlanTriggerProps = ComponentProps<typeof CollapsibleTrigger>;
28
+ declare const PlanTrigger: ({ className, ...props }: PlanTriggerProps) => react_jsx_runtime.JSX.Element;
29
+
30
+ export { Plan, PlanAction, type PlanActionProps, PlanContent, type PlanContentProps, PlanDescription, type PlanDescriptionProps, PlanFooter, type PlanFooterProps, PlanHeader, type PlanHeaderProps, type PlanProps, PlanTitle, type PlanTitleProps, PlanTrigger, type PlanTriggerProps };
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Button } from "../ui/button";
4
+ import {
5
+ Card,
6
+ CardAction,
7
+ CardContent,
8
+ CardDescription,
9
+ CardFooter,
10
+ CardHeader,
11
+ CardTitle
12
+ } from "../ui/card";
13
+ import {
14
+ Collapsible,
15
+ CollapsibleContent,
16
+ CollapsibleTrigger
17
+ } from "../ui/collapsible";
18
+ import { cn } from "../../lib/utils";
19
+ import { ChevronsUpDownIcon } from "lucide-react";
20
+ import { createContext, use } from "react";
21
+ import { Shimmer } from "./shimmer";
22
+ const PlanContext = createContext(null);
23
+ const usePlan = () => {
24
+ const context = use(PlanContext);
25
+ if (!context) {
26
+ throw new Error("Plan components must be used within Plan");
27
+ }
28
+ return context;
29
+ };
30
+ const Plan = ({
31
+ className,
32
+ isStreaming = false,
33
+ children,
34
+ ...props
35
+ }) => /* @__PURE__ */ jsx(PlanContext.Provider, { value: { isStreaming }, children: /* @__PURE__ */ jsx(Collapsible, { asChild: true, "data-slot": "plan", ...props, children: /* @__PURE__ */ jsx(Card, { className: cn("shadow-none", className), children }) }) });
36
+ const PlanHeader = ({ className, ...props }) => /* @__PURE__ */ jsx(
37
+ CardHeader,
38
+ {
39
+ className: cn("flex items-start justify-between", className),
40
+ "data-slot": "plan-header",
41
+ ...props
42
+ }
43
+ );
44
+ const PlanTitle = ({ children, ...props }) => {
45
+ const { isStreaming } = usePlan();
46
+ return /* @__PURE__ */ jsx(CardTitle, { "data-slot": "plan-title", ...props, children: isStreaming ? /* @__PURE__ */ jsx(Shimmer, { children }) : children });
47
+ };
48
+ const PlanDescription = ({
49
+ className,
50
+ children,
51
+ ...props
52
+ }) => {
53
+ const { isStreaming } = usePlan();
54
+ return /* @__PURE__ */ jsx(
55
+ CardDescription,
56
+ {
57
+ className: cn("text-balance", className),
58
+ "data-slot": "plan-description",
59
+ ...props,
60
+ children: isStreaming ? /* @__PURE__ */ jsx(Shimmer, { children }) : children
61
+ }
62
+ );
63
+ };
64
+ const PlanAction = (props) => /* @__PURE__ */ jsx(CardAction, { "data-slot": "plan-action", ...props });
65
+ const PlanContent = (props) => /* @__PURE__ */ jsx(CollapsibleContent, { asChild: true, children: /* @__PURE__ */ jsx(CardContent, { "data-slot": "plan-content", ...props }) });
66
+ const PlanFooter = (props) => /* @__PURE__ */ jsx(CardFooter, { "data-slot": "plan-footer", ...props });
67
+ const PlanTrigger = ({ className, ...props }) => /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
68
+ Button,
69
+ {
70
+ className: cn("size-8", className),
71
+ "data-slot": "plan-trigger",
72
+ size: "icon",
73
+ variant: "ghost",
74
+ ...props,
75
+ children: [
76
+ /* @__PURE__ */ jsx(ChevronsUpDownIcon, { className: "size-4" }),
77
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle plan" })
78
+ ]
79
+ }
80
+ ) });
81
+ export {
82
+ Plan,
83
+ PlanAction,
84
+ PlanContent,
85
+ PlanDescription,
86
+ PlanFooter,
87
+ PlanHeader,
88
+ PlanTitle,
89
+ PlanTrigger
90
+ };
@@ -0,0 +1,161 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
+ var _jsxruntime = require('react/jsx-runtime');
3
+
4
+
5
+ var _dropdownmenu = require('../ui/dropdown-menu');
6
+ var _lucidereact = require('lucide-react');
7
+ var _nanoid = require('nanoid');
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ var _react = require('react');
17
+ const PromptInputController = _react.createContext.call(void 0, null);
18
+ const ProviderAttachmentsContext = _react.createContext.call(void 0, null);
19
+ const LocalAttachmentsContext = _react.createContext.call(void 0, null);
20
+ const LocalReferencedSourcesContext = _react.createContext.call(void 0, null);
21
+ const usePromptInputController = () => {
22
+ const ctx = _react.use.call(void 0, PromptInputController);
23
+ if (!ctx) {
24
+ throw new Error(
25
+ "Wrap your component inside <PromptInputProvider> to use usePromptInputController()."
26
+ );
27
+ }
28
+ return ctx;
29
+ };
30
+ const useOptionalPromptInputController = () => _react.use.call(void 0, PromptInputController);
31
+ const useProviderAttachments = () => {
32
+ const ctx = _react.use.call(void 0, ProviderAttachmentsContext);
33
+ if (!ctx) {
34
+ throw new Error(
35
+ "Wrap your component inside <PromptInputProvider> to use useProviderAttachments()."
36
+ );
37
+ }
38
+ return ctx;
39
+ };
40
+ const useOptionalProviderAttachments = () => _react.use.call(void 0, ProviderAttachmentsContext);
41
+ const usePromptInputAttachments = () => {
42
+ const provider = useOptionalProviderAttachments();
43
+ const local = _react.use.call(void 0, LocalAttachmentsContext);
44
+ const context = _nullishCoalesce(local, () => ( provider));
45
+ if (!context) {
46
+ throw new Error(
47
+ "usePromptInputAttachments must be used within a PromptInput or PromptInputProvider"
48
+ );
49
+ }
50
+ return context;
51
+ };
52
+ const usePromptInputReferencedSources = () => {
53
+ const ctx = _react.use.call(void 0, LocalReferencedSourcesContext);
54
+ if (!ctx) {
55
+ throw new Error(
56
+ "usePromptInputReferencedSources must be used within a LocalReferencedSourcesContext.Provider"
57
+ );
58
+ }
59
+ return ctx;
60
+ };
61
+ const PromptInputProvider = ({
62
+ initialInput: initialTextInput = "",
63
+ children
64
+ }) => {
65
+ const [textInput, setTextInput] = _react.useState.call(void 0, initialTextInput);
66
+ const clearInput = _react.useCallback.call(void 0, () => setTextInput(""), []);
67
+ const [attachmentFiles, setAttachmentFiles] = _react.useState.call(void 0, []);
68
+ const fileInputRef = _react.useRef.call(void 0, null);
69
+ const openRef = _react.useRef.call(void 0, () => {
70
+ });
71
+ const add = _react.useCallback.call(void 0, (files) => {
72
+ const incoming = [...files];
73
+ if (incoming.length === 0) return;
74
+ setAttachmentFiles((prev) => [
75
+ ...prev,
76
+ ...incoming.map((file) => ({
77
+ filename: file.name,
78
+ id: _nanoid.nanoid.call(void 0, ),
79
+ mediaType: file.type,
80
+ type: "file",
81
+ url: URL.createObjectURL(file)
82
+ }))
83
+ ]);
84
+ }, []);
85
+ const remove = _react.useCallback.call(void 0, (id) => {
86
+ setAttachmentFiles((prev) => {
87
+ const found = prev.find((f) => f.id === id);
88
+ if (_optionalChain([found, 'optionalAccess', _ => _.url])) URL.revokeObjectURL(found.url);
89
+ return prev.filter((f) => f.id !== id);
90
+ });
91
+ }, []);
92
+ const clear = _react.useCallback.call(void 0, () => {
93
+ setAttachmentFiles((prev) => {
94
+ for (const f of prev) {
95
+ if (f.url) URL.revokeObjectURL(f.url);
96
+ }
97
+ return [];
98
+ });
99
+ }, []);
100
+ const attachmentsRef = _react.useRef.call(void 0, attachmentFiles);
101
+ _react.useEffect.call(void 0, () => {
102
+ attachmentsRef.current = attachmentFiles;
103
+ }, [attachmentFiles]);
104
+ _react.useEffect.call(void 0, () => () => {
105
+ for (const f of attachmentsRef.current) {
106
+ if (f.url) URL.revokeObjectURL(f.url);
107
+ }
108
+ }, []);
109
+ const openFileDialog = _react.useCallback.call(void 0, () => {
110
+ _optionalChain([openRef, 'access', _2 => _2.current, 'optionalCall', _3 => _3()]);
111
+ }, []);
112
+ const attachments = _react.useMemo.call(void 0,
113
+ () => ({ add, clear, fileInputRef, files: attachmentFiles, openFileDialog, remove }),
114
+ [attachmentFiles, add, remove, clear, openFileDialog]
115
+ );
116
+ const __registerFileInput = _react.useCallback.call(void 0,
117
+ (ref, open) => {
118
+ fileInputRef.current = ref.current;
119
+ openRef.current = open;
120
+ },
121
+ []
122
+ );
123
+ const controller = _react.useMemo.call(void 0,
124
+ () => ({
125
+ __registerFileInput,
126
+ attachments,
127
+ textInput: { clear: clearInput, setInput: setTextInput, value: textInput }
128
+ }),
129
+ [textInput, clearInput, attachments, __registerFileInput]
130
+ );
131
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PromptInputController.Provider, { value: controller, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProviderAttachmentsContext.Provider, { value: attachments, children }) });
132
+ };
133
+ const PromptInputActionAddAttachments = ({
134
+ label = "Add photos or files",
135
+ ...props
136
+ }) => {
137
+ const attachments = usePromptInputAttachments();
138
+ const handleSelect = _react.useCallback.call(void 0,
139
+ (e) => {
140
+ e.preventDefault();
141
+ attachments.openFileDialog();
142
+ },
143
+ [attachments]
144
+ );
145
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dropdownmenu.DropdownMenuItem, { ...props, onSelect: handleSelect, children: [
146
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ImageIcon, { className: "mr-2 size-4" }),
147
+ " ",
148
+ label
149
+ ] });
150
+ };
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ exports.LocalAttachmentsContext = LocalAttachmentsContext; exports.LocalReferencedSourcesContext = LocalReferencedSourcesContext; exports.PromptInputActionAddAttachments = PromptInputActionAddAttachments; exports.PromptInputProvider = PromptInputProvider; exports.useOptionalPromptInputController = useOptionalPromptInputController; exports.usePromptInputAttachments = usePromptInputAttachments; exports.usePromptInputController = usePromptInputController; exports.usePromptInputReferencedSources = usePromptInputReferencedSources; exports.useProviderAttachments = useProviderAttachments;
@@ -0,0 +1,58 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { RefObject, ComponentProps, PropsWithChildren } from 'react';
4
+ import { FileUIPart, SourceDocumentUIPart } from 'ai';
5
+ import { DropdownMenuItem } from '../ui/dropdown-menu.cjs';
6
+ import 'radix-ui';
7
+
8
+ interface AttachmentsContext {
9
+ files: (FileUIPart & {
10
+ id: string;
11
+ })[];
12
+ add: (files: File[] | FileList) => void;
13
+ remove: (id: string) => void;
14
+ clear: () => void;
15
+ openFileDialog: () => void;
16
+ fileInputRef: RefObject<HTMLInputElement | null>;
17
+ }
18
+ interface TextInputContext {
19
+ value: string;
20
+ setInput: (v: string) => void;
21
+ clear: () => void;
22
+ }
23
+ interface PromptInputControllerProps {
24
+ textInput: TextInputContext;
25
+ attachments: AttachmentsContext;
26
+ /** INTERNAL: Allows PromptInput to register its file textInput + "open" callback */
27
+ __registerFileInput: (ref: RefObject<HTMLInputElement | null>, open: () => void) => void;
28
+ }
29
+ interface ReferencedSourcesContext {
30
+ sources: (SourceDocumentUIPart & {
31
+ id: string;
32
+ })[];
33
+ add: (sources: SourceDocumentUIPart[] | SourceDocumentUIPart) => void;
34
+ remove: (id: string) => void;
35
+ clear: () => void;
36
+ }
37
+ declare const LocalAttachmentsContext: React.Context<AttachmentsContext | null>;
38
+ declare const LocalReferencedSourcesContext: React.Context<ReferencedSourcesContext | null>;
39
+ declare const usePromptInputController: () => PromptInputControllerProps;
40
+ /** Optional variant, does NOT throw. Useful for dual-mode components. */
41
+ declare const useOptionalPromptInputController: () => PromptInputControllerProps | null;
42
+ declare const useProviderAttachments: () => AttachmentsContext;
43
+ declare const usePromptInputAttachments: () => AttachmentsContext;
44
+ declare const usePromptInputReferencedSources: () => ReferencedSourcesContext;
45
+ type PromptInputProviderProps = PropsWithChildren<{
46
+ initialInput?: string;
47
+ }>;
48
+ /**
49
+ * Optional global provider that lifts PromptInput state outside of PromptInput.
50
+ * If you don't use it, PromptInput stays fully self-managed.
51
+ */
52
+ declare const PromptInputProvider: ({ initialInput: initialTextInput, children, }: PromptInputProviderProps) => react_jsx_runtime.JSX.Element;
53
+ type PromptInputActionAddAttachmentsProps = ComponentProps<typeof DropdownMenuItem> & {
54
+ label?: string;
55
+ };
56
+ declare const PromptInputActionAddAttachments: ({ label, ...props }: PromptInputActionAddAttachmentsProps) => react_jsx_runtime.JSX.Element;
57
+
58
+ export { type AttachmentsContext, LocalAttachmentsContext, LocalReferencedSourcesContext, PromptInputActionAddAttachments, type PromptInputActionAddAttachmentsProps, type PromptInputControllerProps, PromptInputProvider, type PromptInputProviderProps, type ReferencedSourcesContext, type TextInputContext, useOptionalPromptInputController, usePromptInputAttachments, usePromptInputController, usePromptInputReferencedSources, useProviderAttachments };