@crafter/rn-ai-elements 0.0.1

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 (344) hide show
  1. package/lib/commonjs/chatbot/AIImage.js +126 -0
  2. package/lib/commonjs/chatbot/AIImage.js.map +1 -0
  3. package/lib/commonjs/chatbot/Attachments.js +317 -0
  4. package/lib/commonjs/chatbot/Attachments.js.map +1 -0
  5. package/lib/commonjs/chatbot/ChatErrorBoundary.js +201 -0
  6. package/lib/commonjs/chatbot/ChatErrorBoundary.js.map +1 -0
  7. package/lib/commonjs/chatbot/ChatMessageItem.js +169 -0
  8. package/lib/commonjs/chatbot/ChatMessageItem.js.map +1 -0
  9. package/lib/commonjs/chatbot/Conversation.js +415 -0
  10. package/lib/commonjs/chatbot/Conversation.js.map +1 -0
  11. package/lib/commonjs/chatbot/ConversationScrollButton.js +131 -0
  12. package/lib/commonjs/chatbot/ConversationScrollButton.js.map +1 -0
  13. package/lib/commonjs/chatbot/Message.js +203 -0
  14. package/lib/commonjs/chatbot/Message.js.map +1 -0
  15. package/lib/commonjs/chatbot/PromptInput.js +352 -0
  16. package/lib/commonjs/chatbot/PromptInput.js.map +1 -0
  17. package/lib/commonjs/chatbot/Reasoning.js +184 -0
  18. package/lib/commonjs/chatbot/Reasoning.js.map +1 -0
  19. package/lib/commonjs/chatbot/Shimmer.js +116 -0
  20. package/lib/commonjs/chatbot/Shimmer.js.map +1 -0
  21. package/lib/commonjs/chatbot/Sources.js +212 -0
  22. package/lib/commonjs/chatbot/Sources.js.map +1 -0
  23. package/lib/commonjs/chatbot/Suggestion.js +99 -0
  24. package/lib/commonjs/chatbot/Suggestion.js.map +1 -0
  25. package/lib/commonjs/chatbot/Tool.js +307 -0
  26. package/lib/commonjs/chatbot/Tool.js.map +1 -0
  27. package/lib/commonjs/chatbot/adapters/uiMessageAdapter.js +141 -0
  28. package/lib/commonjs/chatbot/adapters/uiMessageAdapter.js.map +1 -0
  29. package/lib/commonjs/chatbot/index.js +140 -0
  30. package/lib/commonjs/chatbot/index.js.map +1 -0
  31. package/lib/commonjs/chatbot/types.js +6 -0
  32. package/lib/commonjs/chatbot/types.js.map +1 -0
  33. package/lib/commonjs/hooks/index.js +34 -0
  34. package/lib/commonjs/hooks/index.js.map +1 -0
  35. package/lib/commonjs/hooks/useAutoScroll.js +39 -0
  36. package/lib/commonjs/hooks/useAutoScroll.js.map +1 -0
  37. package/lib/commonjs/hooks/useClipboard.js +44 -0
  38. package/lib/commonjs/hooks/useClipboard.js.map +1 -0
  39. package/lib/commonjs/hooks/useCollapsible.js +35 -0
  40. package/lib/commonjs/hooks/useCollapsible.js.map +1 -0
  41. package/lib/commonjs/hooks/useStickToBottom.js +68 -0
  42. package/lib/commonjs/hooks/useStickToBottom.js.map +1 -0
  43. package/lib/commonjs/index.js +257 -0
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/package.json +1 -0
  46. package/lib/commonjs/primitives/Badge.js +119 -0
  47. package/lib/commonjs/primitives/Badge.js.map +1 -0
  48. package/lib/commonjs/primitives/Button.js +185 -0
  49. package/lib/commonjs/primitives/Button.js.map +1 -0
  50. package/lib/commonjs/primitives/Card.js +166 -0
  51. package/lib/commonjs/primitives/Card.js.map +1 -0
  52. package/lib/commonjs/primitives/Collapsible.js +137 -0
  53. package/lib/commonjs/primitives/Collapsible.js.map +1 -0
  54. package/lib/commonjs/primitives/ScrollArea.js +40 -0
  55. package/lib/commonjs/primitives/ScrollArea.js.map +1 -0
  56. package/lib/commonjs/primitives/index.js +83 -0
  57. package/lib/commonjs/primitives/index.js.map +1 -0
  58. package/lib/commonjs/streaming/StreamingMarkdown.js +252 -0
  59. package/lib/commonjs/streaming/StreamingMarkdown.js.map +1 -0
  60. package/lib/commonjs/streaming/index.js +13 -0
  61. package/lib/commonjs/streaming/index.js.map +1 -0
  62. package/lib/commonjs/streaming/parser.js +482 -0
  63. package/lib/commonjs/streaming/parser.js.map +1 -0
  64. package/lib/commonjs/streaming/renderers/BlockquoteRenderer.js +35 -0
  65. package/lib/commonjs/streaming/renderers/BlockquoteRenderer.js.map +1 -0
  66. package/lib/commonjs/streaming/renderers/CodeRenderer.js +128 -0
  67. package/lib/commonjs/streaming/renderers/CodeRenderer.js.map +1 -0
  68. package/lib/commonjs/streaming/renderers/HeadingRenderer.js +61 -0
  69. package/lib/commonjs/streaming/renderers/HeadingRenderer.js.map +1 -0
  70. package/lib/commonjs/streaming/renderers/ImageRenderer.js +53 -0
  71. package/lib/commonjs/streaming/renderers/ImageRenderer.js.map +1 -0
  72. package/lib/commonjs/streaming/renderers/LinkRenderer.js +49 -0
  73. package/lib/commonjs/streaming/renderers/LinkRenderer.js.map +1 -0
  74. package/lib/commonjs/streaming/renderers/ListRenderer.js +63 -0
  75. package/lib/commonjs/streaming/renderers/ListRenderer.js.map +1 -0
  76. package/lib/commonjs/streaming/renderers/TableRenderer.js +77 -0
  77. package/lib/commonjs/streaming/renderers/TableRenderer.js.map +1 -0
  78. package/lib/commonjs/streaming/renderers/TextRenderer.js +41 -0
  79. package/lib/commonjs/streaming/renderers/TextRenderer.js.map +1 -0
  80. package/lib/commonjs/streaming/renderers/index.js +76 -0
  81. package/lib/commonjs/streaming/renderers/index.js.map +1 -0
  82. package/lib/commonjs/streaming/renderers/renderInlineChildren.js +112 -0
  83. package/lib/commonjs/streaming/renderers/renderInlineChildren.js.map +1 -0
  84. package/lib/commonjs/streaming/renderers/renderNode.js +81 -0
  85. package/lib/commonjs/streaming/renderers/renderNode.js.map +1 -0
  86. package/lib/commonjs/theme/ThemeProvider.js +68 -0
  87. package/lib/commonjs/theme/ThemeProvider.js.map +1 -0
  88. package/lib/commonjs/theme/defaultTheme.js +96 -0
  89. package/lib/commonjs/theme/defaultTheme.js.map +1 -0
  90. package/lib/commonjs/theme/index.js +32 -0
  91. package/lib/commonjs/theme/index.js.map +1 -0
  92. package/lib/commonjs/theme/tokens.js +2 -0
  93. package/lib/commonjs/theme/tokens.js.map +1 -0
  94. package/lib/commonjs/types.d.js +2 -0
  95. package/lib/commonjs/types.d.js.map +1 -0
  96. package/lib/commonjs/voice/index.js +13 -0
  97. package/lib/commonjs/voice/index.js.map +1 -0
  98. package/lib/commonjs/voice/useSpeechRecognition.js +172 -0
  99. package/lib/commonjs/voice/useSpeechRecognition.js.map +1 -0
  100. package/lib/module/chatbot/AIImage.js +121 -0
  101. package/lib/module/chatbot/AIImage.js.map +1 -0
  102. package/lib/module/chatbot/Attachments.js +312 -0
  103. package/lib/module/chatbot/Attachments.js.map +1 -0
  104. package/lib/module/chatbot/ChatErrorBoundary.js +196 -0
  105. package/lib/module/chatbot/ChatErrorBoundary.js.map +1 -0
  106. package/lib/module/chatbot/ChatMessageItem.js +164 -0
  107. package/lib/module/chatbot/ChatMessageItem.js.map +1 -0
  108. package/lib/module/chatbot/Conversation.js +412 -0
  109. package/lib/module/chatbot/Conversation.js.map +1 -0
  110. package/lib/module/chatbot/ConversationScrollButton.js +126 -0
  111. package/lib/module/chatbot/ConversationScrollButton.js.map +1 -0
  112. package/lib/module/chatbot/Message.js +198 -0
  113. package/lib/module/chatbot/Message.js.map +1 -0
  114. package/lib/module/chatbot/PromptInput.js +347 -0
  115. package/lib/module/chatbot/PromptInput.js.map +1 -0
  116. package/lib/module/chatbot/Reasoning.js +179 -0
  117. package/lib/module/chatbot/Reasoning.js.map +1 -0
  118. package/lib/module/chatbot/Shimmer.js +111 -0
  119. package/lib/module/chatbot/Shimmer.js.map +1 -0
  120. package/lib/module/chatbot/Sources.js +207 -0
  121. package/lib/module/chatbot/Sources.js.map +1 -0
  122. package/lib/module/chatbot/Suggestion.js +94 -0
  123. package/lib/module/chatbot/Suggestion.js.map +1 -0
  124. package/lib/module/chatbot/Tool.js +303 -0
  125. package/lib/module/chatbot/Tool.js.map +1 -0
  126. package/lib/module/chatbot/adapters/uiMessageAdapter.js +137 -0
  127. package/lib/module/chatbot/adapters/uiMessageAdapter.js.map +1 -0
  128. package/lib/module/chatbot/index.js +39 -0
  129. package/lib/module/chatbot/index.js.map +1 -0
  130. package/lib/module/chatbot/types.js +4 -0
  131. package/lib/module/chatbot/types.js.map +1 -0
  132. package/lib/module/hooks/index.js +7 -0
  133. package/lib/module/hooks/index.js.map +1 -0
  134. package/lib/module/hooks/useAutoScroll.js +35 -0
  135. package/lib/module/hooks/useAutoScroll.js.map +1 -0
  136. package/lib/module/hooks/useClipboard.js +40 -0
  137. package/lib/module/hooks/useClipboard.js.map +1 -0
  138. package/lib/module/hooks/useCollapsible.js +31 -0
  139. package/lib/module/hooks/useCollapsible.js.map +1 -0
  140. package/lib/module/hooks/useStickToBottom.js +64 -0
  141. package/lib/module/hooks/useStickToBottom.js.map +1 -0
  142. package/lib/module/index.js +19 -0
  143. package/lib/module/index.js.map +1 -0
  144. package/lib/module/package.json +1 -0
  145. package/lib/module/primitives/Badge.js +114 -0
  146. package/lib/module/primitives/Badge.js.map +1 -0
  147. package/lib/module/primitives/Button.js +180 -0
  148. package/lib/module/primitives/Button.js.map +1 -0
  149. package/lib/module/primitives/Card.js +156 -0
  150. package/lib/module/primitives/Card.js.map +1 -0
  151. package/lib/module/primitives/Collapsible.js +130 -0
  152. package/lib/module/primitives/Collapsible.js.map +1 -0
  153. package/lib/module/primitives/ScrollArea.js +35 -0
  154. package/lib/module/primitives/ScrollArea.js.map +1 -0
  155. package/lib/module/primitives/index.js +8 -0
  156. package/lib/module/primitives/index.js.map +1 -0
  157. package/lib/module/streaming/StreamingMarkdown.js +246 -0
  158. package/lib/module/streaming/StreamingMarkdown.js.map +1 -0
  159. package/lib/module/streaming/index.js +4 -0
  160. package/lib/module/streaming/index.js.map +1 -0
  161. package/lib/module/streaming/parser.js +477 -0
  162. package/lib/module/streaming/parser.js.map +1 -0
  163. package/lib/module/streaming/renderers/BlockquoteRenderer.js +30 -0
  164. package/lib/module/streaming/renderers/BlockquoteRenderer.js.map +1 -0
  165. package/lib/module/streaming/renderers/CodeRenderer.js +123 -0
  166. package/lib/module/streaming/renderers/CodeRenderer.js.map +1 -0
  167. package/lib/module/streaming/renderers/HeadingRenderer.js +56 -0
  168. package/lib/module/streaming/renderers/HeadingRenderer.js.map +1 -0
  169. package/lib/module/streaming/renderers/ImageRenderer.js +48 -0
  170. package/lib/module/streaming/renderers/ImageRenderer.js.map +1 -0
  171. package/lib/module/streaming/renderers/LinkRenderer.js +44 -0
  172. package/lib/module/streaming/renderers/LinkRenderer.js.map +1 -0
  173. package/lib/module/streaming/renderers/ListRenderer.js +58 -0
  174. package/lib/module/streaming/renderers/ListRenderer.js.map +1 -0
  175. package/lib/module/streaming/renderers/TableRenderer.js +72 -0
  176. package/lib/module/streaming/renderers/TableRenderer.js.map +1 -0
  177. package/lib/module/streaming/renderers/TextRenderer.js +36 -0
  178. package/lib/module/streaming/renderers/TextRenderer.js.map +1 -0
  179. package/lib/module/streaming/renderers/index.js +13 -0
  180. package/lib/module/streaming/renderers/index.js.map +1 -0
  181. package/lib/module/streaming/renderers/renderInlineChildren.js +107 -0
  182. package/lib/module/streaming/renderers/renderInlineChildren.js.map +1 -0
  183. package/lib/module/streaming/renderers/renderNode.js +78 -0
  184. package/lib/module/streaming/renderers/renderNode.js.map +1 -0
  185. package/lib/module/theme/ThemeProvider.js +62 -0
  186. package/lib/module/theme/ThemeProvider.js.map +1 -0
  187. package/lib/module/theme/defaultTheme.js +92 -0
  188. package/lib/module/theme/defaultTheme.js.map +1 -0
  189. package/lib/module/theme/index.js +5 -0
  190. package/lib/module/theme/index.js.map +1 -0
  191. package/lib/module/theme/tokens.js +2 -0
  192. package/lib/module/theme/tokens.js.map +1 -0
  193. package/lib/module/types.d.js +2 -0
  194. package/lib/module/types.d.js.map +1 -0
  195. package/lib/module/voice/index.js +14 -0
  196. package/lib/module/voice/index.js.map +1 -0
  197. package/lib/module/voice/useSpeechRecognition.js +169 -0
  198. package/lib/module/voice/useSpeechRecognition.js.map +1 -0
  199. package/lib/typescript/src/chatbot/AIImage.d.ts +24 -0
  200. package/lib/typescript/src/chatbot/AIImage.d.ts.map +1 -0
  201. package/lib/typescript/src/chatbot/Attachments.d.ts +20 -0
  202. package/lib/typescript/src/chatbot/Attachments.d.ts.map +1 -0
  203. package/lib/typescript/src/chatbot/ChatErrorBoundary.d.ts +57 -0
  204. package/lib/typescript/src/chatbot/ChatErrorBoundary.d.ts.map +1 -0
  205. package/lib/typescript/src/chatbot/ChatMessageItem.d.ts +45 -0
  206. package/lib/typescript/src/chatbot/ChatMessageItem.d.ts.map +1 -0
  207. package/lib/typescript/src/chatbot/Conversation.d.ts +94 -0
  208. package/lib/typescript/src/chatbot/Conversation.d.ts.map +1 -0
  209. package/lib/typescript/src/chatbot/ConversationScrollButton.d.ts +62 -0
  210. package/lib/typescript/src/chatbot/ConversationScrollButton.d.ts.map +1 -0
  211. package/lib/typescript/src/chatbot/Message.d.ts +39 -0
  212. package/lib/typescript/src/chatbot/Message.d.ts.map +1 -0
  213. package/lib/typescript/src/chatbot/PromptInput.d.ts +93 -0
  214. package/lib/typescript/src/chatbot/PromptInput.d.ts.map +1 -0
  215. package/lib/typescript/src/chatbot/Reasoning.d.ts +14 -0
  216. package/lib/typescript/src/chatbot/Reasoning.d.ts.map +1 -0
  217. package/lib/typescript/src/chatbot/Shimmer.d.ts +13 -0
  218. package/lib/typescript/src/chatbot/Shimmer.d.ts.map +1 -0
  219. package/lib/typescript/src/chatbot/Sources.d.ts +17 -0
  220. package/lib/typescript/src/chatbot/Sources.d.ts.map +1 -0
  221. package/lib/typescript/src/chatbot/Suggestion.d.ts +15 -0
  222. package/lib/typescript/src/chatbot/Suggestion.d.ts.map +1 -0
  223. package/lib/typescript/src/chatbot/Tool.d.ts +30 -0
  224. package/lib/typescript/src/chatbot/Tool.d.ts.map +1 -0
  225. package/lib/typescript/src/chatbot/adapters/uiMessageAdapter.d.ts +24 -0
  226. package/lib/typescript/src/chatbot/adapters/uiMessageAdapter.d.ts.map +1 -0
  227. package/lib/typescript/src/chatbot/index.d.ts +29 -0
  228. package/lib/typescript/src/chatbot/index.d.ts.map +1 -0
  229. package/lib/typescript/src/chatbot/types.d.ts +49 -0
  230. package/lib/typescript/src/chatbot/types.d.ts.map +1 -0
  231. package/lib/typescript/src/hooks/index.d.ts +9 -0
  232. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  233. package/lib/typescript/src/hooks/useAutoScroll.d.ts +23 -0
  234. package/lib/typescript/src/hooks/useAutoScroll.d.ts.map +1 -0
  235. package/lib/typescript/src/hooks/useClipboard.d.ts +22 -0
  236. package/lib/typescript/src/hooks/useClipboard.d.ts.map +1 -0
  237. package/lib/typescript/src/hooks/useCollapsible.d.ts +28 -0
  238. package/lib/typescript/src/hooks/useCollapsible.d.ts.map +1 -0
  239. package/lib/typescript/src/hooks/useStickToBottom.d.ts +39 -0
  240. package/lib/typescript/src/hooks/useStickToBottom.d.ts.map +1 -0
  241. package/lib/typescript/src/index.d.ts +11 -0
  242. package/lib/typescript/src/index.d.ts.map +1 -0
  243. package/lib/typescript/src/primitives/Badge.d.ts +10 -0
  244. package/lib/typescript/src/primitives/Badge.d.ts.map +1 -0
  245. package/lib/typescript/src/primitives/Button.d.ts +16 -0
  246. package/lib/typescript/src/primitives/Button.d.ts.map +1 -0
  247. package/lib/typescript/src/primitives/Card.d.ts +33 -0
  248. package/lib/typescript/src/primitives/Card.d.ts.map +1 -0
  249. package/lib/typescript/src/primitives/Collapsible.d.ts +20 -0
  250. package/lib/typescript/src/primitives/Collapsible.d.ts.map +1 -0
  251. package/lib/typescript/src/primitives/ScrollArea.d.ts +10 -0
  252. package/lib/typescript/src/primitives/ScrollArea.d.ts.map +1 -0
  253. package/lib/typescript/src/primitives/index.d.ts +11 -0
  254. package/lib/typescript/src/primitives/index.d.ts.map +1 -0
  255. package/lib/typescript/src/streaming/StreamingMarkdown.d.ts +47 -0
  256. package/lib/typescript/src/streaming/StreamingMarkdown.d.ts.map +1 -0
  257. package/lib/typescript/src/streaming/index.d.ts +3 -0
  258. package/lib/typescript/src/streaming/index.d.ts.map +1 -0
  259. package/lib/typescript/src/streaming/parser.d.ts +41 -0
  260. package/lib/typescript/src/streaming/parser.d.ts.map +1 -0
  261. package/lib/typescript/src/streaming/renderers/BlockquoteRenderer.d.ts +7 -0
  262. package/lib/typescript/src/streaming/renderers/BlockquoteRenderer.d.ts.map +1 -0
  263. package/lib/typescript/src/streaming/renderers/CodeRenderer.d.ts +7 -0
  264. package/lib/typescript/src/streaming/renderers/CodeRenderer.d.ts.map +1 -0
  265. package/lib/typescript/src/streaming/renderers/HeadingRenderer.d.ts +7 -0
  266. package/lib/typescript/src/streaming/renderers/HeadingRenderer.d.ts.map +1 -0
  267. package/lib/typescript/src/streaming/renderers/ImageRenderer.d.ts +7 -0
  268. package/lib/typescript/src/streaming/renderers/ImageRenderer.d.ts.map +1 -0
  269. package/lib/typescript/src/streaming/renderers/LinkRenderer.d.ts +7 -0
  270. package/lib/typescript/src/streaming/renderers/LinkRenderer.d.ts.map +1 -0
  271. package/lib/typescript/src/streaming/renderers/ListRenderer.d.ts +7 -0
  272. package/lib/typescript/src/streaming/renderers/ListRenderer.d.ts.map +1 -0
  273. package/lib/typescript/src/streaming/renderers/TableRenderer.d.ts +7 -0
  274. package/lib/typescript/src/streaming/renderers/TableRenderer.d.ts.map +1 -0
  275. package/lib/typescript/src/streaming/renderers/TextRenderer.d.ts +7 -0
  276. package/lib/typescript/src/streaming/renderers/TextRenderer.d.ts.map +1 -0
  277. package/lib/typescript/src/streaming/renderers/index.d.ts +19 -0
  278. package/lib/typescript/src/streaming/renderers/index.d.ts.map +1 -0
  279. package/lib/typescript/src/streaming/renderers/renderInlineChildren.d.ts +12 -0
  280. package/lib/typescript/src/streaming/renderers/renderInlineChildren.d.ts.map +1 -0
  281. package/lib/typescript/src/streaming/renderers/renderNode.d.ts +8 -0
  282. package/lib/typescript/src/streaming/renderers/renderNode.d.ts.map +1 -0
  283. package/lib/typescript/src/theme/ThemeProvider.d.ts +14 -0
  284. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -0
  285. package/lib/typescript/src/theme/defaultTheme.d.ts +4 -0
  286. package/lib/typescript/src/theme/defaultTheme.d.ts.map +1 -0
  287. package/lib/typescript/src/theme/index.d.ts +5 -0
  288. package/lib/typescript/src/theme/index.d.ts.map +1 -0
  289. package/lib/typescript/src/theme/tokens.d.ts +66 -0
  290. package/lib/typescript/src/theme/tokens.d.ts.map +1 -0
  291. package/lib/typescript/src/voice/index.d.ts +3 -0
  292. package/lib/typescript/src/voice/index.d.ts.map +1 -0
  293. package/lib/typescript/src/voice/useSpeechRecognition.d.ts +77 -0
  294. package/lib/typescript/src/voice/useSpeechRecognition.d.ts.map +1 -0
  295. package/package.json +132 -0
  296. package/src/chatbot/AIImage.tsx +166 -0
  297. package/src/chatbot/Attachments.tsx +382 -0
  298. package/src/chatbot/ChatErrorBoundary.tsx +230 -0
  299. package/src/chatbot/ChatMessageItem.tsx +195 -0
  300. package/src/chatbot/Conversation.tsx +537 -0
  301. package/src/chatbot/ConversationScrollButton.tsx +149 -0
  302. package/src/chatbot/Message.tsx +266 -0
  303. package/src/chatbot/PromptInput.tsx +532 -0
  304. package/src/chatbot/Reasoning.tsx +198 -0
  305. package/src/chatbot/Shimmer.tsx +146 -0
  306. package/src/chatbot/Sources.tsx +263 -0
  307. package/src/chatbot/Suggestion.tsx +123 -0
  308. package/src/chatbot/Tool.tsx +340 -0
  309. package/src/chatbot/adapters/uiMessageAdapter.ts +177 -0
  310. package/src/chatbot/index.ts +97 -0
  311. package/src/chatbot/types.ts +66 -0
  312. package/src/hooks/index.ts +17 -0
  313. package/src/hooks/useAutoScroll.ts +43 -0
  314. package/src/hooks/useClipboard.ts +46 -0
  315. package/src/hooks/useCollapsible.ts +42 -0
  316. package/src/hooks/useStickToBottom.ts +82 -0
  317. package/src/index.ts +139 -0
  318. package/src/primitives/Badge.tsx +119 -0
  319. package/src/primitives/Button.tsx +213 -0
  320. package/src/primitives/Card.tsx +221 -0
  321. package/src/primitives/Collapsible.tsx +168 -0
  322. package/src/primitives/ScrollArea.tsx +53 -0
  323. package/src/primitives/index.ts +36 -0
  324. package/src/streaming/StreamingMarkdown.tsx +282 -0
  325. package/src/streaming/index.ts +2 -0
  326. package/src/streaming/parser.ts +506 -0
  327. package/src/streaming/renderers/BlockquoteRenderer.tsx +42 -0
  328. package/src/streaming/renderers/CodeRenderer.tsx +158 -0
  329. package/src/streaming/renderers/HeadingRenderer.tsx +64 -0
  330. package/src/streaming/renderers/ImageRenderer.tsx +62 -0
  331. package/src/streaming/renderers/LinkRenderer.tsx +53 -0
  332. package/src/streaming/renderers/ListRenderer.tsx +65 -0
  333. package/src/streaming/renderers/TableRenderer.tsx +103 -0
  334. package/src/streaming/renderers/TextRenderer.tsx +39 -0
  335. package/src/streaming/renderers/index.ts +26 -0
  336. package/src/streaming/renderers/renderInlineChildren.tsx +115 -0
  337. package/src/streaming/renderers/renderNode.tsx +72 -0
  338. package/src/theme/ThemeProvider.tsx +77 -0
  339. package/src/theme/defaultTheme.ts +93 -0
  340. package/src/theme/index.ts +4 -0
  341. package/src/theme/tokens.ts +69 -0
  342. package/src/types.d.ts +71 -0
  343. package/src/voice/index.ts +15 -0
  344. package/src/voice/useSpeechRecognition.ts +230 -0
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { Image, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
5
+ import { File, ImageIcon } from 'lucide-react-native';
6
+ import { useAIElementsTheme } from '../theme';
7
+
8
+ // ---------------------------------------------------------------------------
9
+ // Types
10
+ // ---------------------------------------------------------------------------
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ // ---------------------------------------------------------------------------
13
+ // Helpers
14
+ // ---------------------------------------------------------------------------
15
+
16
+ function formatFileSize(bytes) {
17
+ if (bytes == null) return '';
18
+ if (bytes < 1024) return `${bytes} B`;
19
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
20
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
21
+ }
22
+ function getImageSource(attachment) {
23
+ const source = attachment.uri ?? attachment.url;
24
+ return source ? {
25
+ uri: source
26
+ } : undefined;
27
+ }
28
+
29
+ // ---------------------------------------------------------------------------
30
+ // Image thumbnail
31
+ // ---------------------------------------------------------------------------
32
+
33
+ function ImageThumbnail({
34
+ attachment,
35
+ size,
36
+ style
37
+ }) {
38
+ const theme = useAIElementsTheme();
39
+ const source = getImageSource(attachment);
40
+ if (!source) {
41
+ return /*#__PURE__*/_jsx(View, {
42
+ style: [styles.imagePlaceholder, {
43
+ width: size,
44
+ height: size,
45
+ backgroundColor: theme.colors.muted,
46
+ borderRadius: theme.radius.md
47
+ }, style],
48
+ children: /*#__PURE__*/_jsx(ImageIcon, {
49
+ size: 24,
50
+ color: theme.colors.mutedForeground
51
+ })
52
+ });
53
+ }
54
+ return /*#__PURE__*/_jsx(Image, {
55
+ source: source,
56
+ style: [{
57
+ width: size,
58
+ height: size,
59
+ borderRadius: theme.radius.md
60
+ }, style],
61
+ resizeMode: "cover"
62
+ });
63
+ }
64
+
65
+ // ---------------------------------------------------------------------------
66
+ // File row
67
+ // ---------------------------------------------------------------------------
68
+
69
+ function FileRow({
70
+ attachment
71
+ }) {
72
+ const theme = useAIElementsTheme();
73
+ const nameStyle = {
74
+ color: theme.colors.foreground,
75
+ fontSize: theme.typography.fontSize.sm,
76
+ fontWeight: theme.typography.fontWeight.medium,
77
+ fontFamily: theme.typography.fontFamily
78
+ };
79
+ const metaStyle = {
80
+ color: theme.colors.mutedForeground,
81
+ fontSize: theme.typography.fontSize.xs,
82
+ fontFamily: theme.typography.fontFamily
83
+ };
84
+ return /*#__PURE__*/_jsxs(Pressable, {
85
+ style: ({
86
+ pressed
87
+ }) => [styles.fileRow, {
88
+ backgroundColor: pressed ? theme.colors.muted : theme.colors.card,
89
+ borderColor: theme.colors.border,
90
+ borderRadius: theme.radius.md,
91
+ padding: theme.spacing.md,
92
+ gap: theme.spacing.md
93
+ }],
94
+ children: [/*#__PURE__*/_jsx(View, {
95
+ style: [styles.fileIcon, {
96
+ backgroundColor: theme.colors.muted,
97
+ borderRadius: theme.radius.sm
98
+ }],
99
+ children: /*#__PURE__*/_jsx(File, {
100
+ size: 18,
101
+ color: theme.colors.mutedForeground
102
+ })
103
+ }), /*#__PURE__*/_jsxs(View, {
104
+ style: styles.fileInfo,
105
+ children: [/*#__PURE__*/_jsx(Text, {
106
+ style: nameStyle,
107
+ numberOfLines: 1,
108
+ children: attachment.name
109
+ }), (attachment.size != null || attachment.mimeType) && /*#__PURE__*/_jsx(Text, {
110
+ style: metaStyle,
111
+ numberOfLines: 1,
112
+ children: [attachment.mimeType, attachment.size != null ? formatFileSize(attachment.size) : null].filter(Boolean).join(' - ')
113
+ })]
114
+ })]
115
+ });
116
+ }
117
+
118
+ // ---------------------------------------------------------------------------
119
+ // Grid layout
120
+ // ---------------------------------------------------------------------------
121
+
122
+ function GridLayout({
123
+ attachments,
124
+ style
125
+ }) {
126
+ const theme = useAIElementsTheme();
127
+ const images = attachments.filter(a => a.type === 'image');
128
+ const files = attachments.filter(a => a.type === 'file');
129
+ return /*#__PURE__*/_jsxs(View, {
130
+ style: style,
131
+ children: [images.length > 0 && /*#__PURE__*/_jsx(View, {
132
+ style: [styles.grid, {
133
+ gap: theme.spacing.sm
134
+ }],
135
+ children: images.map((attachment, index) => /*#__PURE__*/_jsx(ImageThumbnail, {
136
+ attachment: attachment,
137
+ size: 140,
138
+ style: styles.gridItem
139
+ }, `img-${index}`))
140
+ }), files.length > 0 && /*#__PURE__*/_jsx(View, {
141
+ style: [styles.fileList, {
142
+ gap: theme.spacing.sm,
143
+ marginTop: images.length > 0 ? theme.spacing.sm : 0
144
+ }],
145
+ children: files.map((attachment, index) => /*#__PURE__*/_jsx(FileRow, {
146
+ attachment: attachment
147
+ }, `file-${index}`))
148
+ })]
149
+ });
150
+ }
151
+
152
+ // ---------------------------------------------------------------------------
153
+ // Inline layout (horizontal scroll for images)
154
+ // ---------------------------------------------------------------------------
155
+
156
+ function InlineLayout({
157
+ attachments,
158
+ style
159
+ }) {
160
+ const theme = useAIElementsTheme();
161
+ const images = attachments.filter(a => a.type === 'image');
162
+ const files = attachments.filter(a => a.type === 'file');
163
+ return /*#__PURE__*/_jsxs(View, {
164
+ style: style,
165
+ children: [images.length > 0 && /*#__PURE__*/_jsx(ScrollView, {
166
+ horizontal: true,
167
+ showsHorizontalScrollIndicator: false,
168
+ contentContainerStyle: [styles.inlineContainer, {
169
+ gap: theme.spacing.sm
170
+ }],
171
+ children: images.map((attachment, index) => /*#__PURE__*/_jsx(ImageThumbnail, {
172
+ attachment: attachment,
173
+ size: 100
174
+ }, `img-${index}`))
175
+ }), files.length > 0 && /*#__PURE__*/_jsx(View, {
176
+ style: [styles.fileList, {
177
+ gap: theme.spacing.sm,
178
+ marginTop: images.length > 0 ? theme.spacing.sm : 0
179
+ }],
180
+ children: files.map((attachment, index) => /*#__PURE__*/_jsx(FileRow, {
181
+ attachment: attachment
182
+ }, `file-${index}`))
183
+ })]
184
+ });
185
+ }
186
+
187
+ // ---------------------------------------------------------------------------
188
+ // List layout
189
+ // ---------------------------------------------------------------------------
190
+
191
+ function ListLayout({
192
+ attachments,
193
+ style
194
+ }) {
195
+ const theme = useAIElementsTheme();
196
+ return /*#__PURE__*/_jsx(View, {
197
+ style: [styles.fileList, {
198
+ gap: theme.spacing.sm
199
+ }, style],
200
+ children: attachments.map((attachment, index) => {
201
+ if (attachment.type === 'image') {
202
+ return /*#__PURE__*/_jsxs(View, {
203
+ style: [styles.fileRow, {
204
+ backgroundColor: theme.colors.card,
205
+ borderColor: theme.colors.border,
206
+ borderRadius: theme.radius.md,
207
+ padding: theme.spacing.sm,
208
+ gap: theme.spacing.md
209
+ }],
210
+ children: [/*#__PURE__*/_jsx(ImageThumbnail, {
211
+ attachment: attachment,
212
+ size: 48
213
+ }), /*#__PURE__*/_jsx(View, {
214
+ style: styles.fileInfo,
215
+ children: /*#__PURE__*/_jsx(Text, {
216
+ numberOfLines: 1,
217
+ style: {
218
+ color: theme.colors.foreground,
219
+ fontSize: theme.typography.fontSize.sm,
220
+ fontWeight: theme.typography.fontWeight.medium,
221
+ fontFamily: theme.typography.fontFamily
222
+ },
223
+ children: attachment.name
224
+ })
225
+ })]
226
+ }, `img-${index}`);
227
+ }
228
+ return /*#__PURE__*/_jsx(FileRow, {
229
+ attachment: attachment
230
+ }, `file-${index}`);
231
+ })
232
+ });
233
+ }
234
+
235
+ // ---------------------------------------------------------------------------
236
+ // Component
237
+ // ---------------------------------------------------------------------------
238
+
239
+ function AttachmentsComponent({
240
+ attachments,
241
+ variant = 'inline',
242
+ style
243
+ }) {
244
+ if (attachments.length === 0) {
245
+ return null;
246
+ }
247
+ switch (variant) {
248
+ case 'grid':
249
+ return /*#__PURE__*/_jsx(GridLayout, {
250
+ attachments: attachments,
251
+ style: style
252
+ });
253
+ case 'inline':
254
+ return /*#__PURE__*/_jsx(InlineLayout, {
255
+ attachments: attachments,
256
+ style: style
257
+ });
258
+ case 'list':
259
+ return /*#__PURE__*/_jsx(ListLayout, {
260
+ attachments: attachments,
261
+ style: style
262
+ });
263
+ }
264
+ }
265
+
266
+ // ---------------------------------------------------------------------------
267
+ // Styles
268
+ // ---------------------------------------------------------------------------
269
+
270
+ const styles = StyleSheet.create({
271
+ grid: {
272
+ flexDirection: 'row',
273
+ flexWrap: 'wrap'
274
+ },
275
+ gridItem: {
276
+ flexBasis: '48%',
277
+ flexGrow: 1
278
+ },
279
+ inlineContainer: {
280
+ flexDirection: 'row',
281
+ alignItems: 'center'
282
+ },
283
+ fileList: {
284
+ flexDirection: 'column'
285
+ },
286
+ fileRow: {
287
+ flexDirection: 'row',
288
+ alignItems: 'center',
289
+ borderWidth: StyleSheet.hairlineWidth
290
+ },
291
+ fileIcon: {
292
+ width: 36,
293
+ height: 36,
294
+ alignItems: 'center',
295
+ justifyContent: 'center'
296
+ },
297
+ fileInfo: {
298
+ flex: 1,
299
+ gap: 2
300
+ },
301
+ imagePlaceholder: {
302
+ alignItems: 'center',
303
+ justifyContent: 'center'
304
+ }
305
+ });
306
+
307
+ // ---------------------------------------------------------------------------
308
+ // Export
309
+ // ---------------------------------------------------------------------------
310
+
311
+ export const Attachments = /*#__PURE__*/memo(AttachmentsComponent);
312
+ //# sourceMappingURL=Attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Image","Pressable","ScrollView","StyleSheet","Text","View","File","ImageIcon","useAIElementsTheme","jsx","_jsx","jsxs","_jsxs","formatFileSize","bytes","toFixed","getImageSource","attachment","source","uri","url","undefined","ImageThumbnail","size","style","theme","styles","imagePlaceholder","width","height","backgroundColor","colors","muted","borderRadius","radius","md","children","color","mutedForeground","resizeMode","FileRow","nameStyle","foreground","fontSize","typography","sm","fontWeight","medium","fontFamily","metaStyle","xs","pressed","fileRow","card","borderColor","border","padding","spacing","gap","fileIcon","fileInfo","numberOfLines","name","mimeType","filter","Boolean","join","GridLayout","attachments","images","a","type","files","length","grid","map","index","gridItem","fileList","marginTop","InlineLayout","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","inlineContainer","ListLayout","AttachmentsComponent","variant","create","flexDirection","flexWrap","flexBasis","flexGrow","alignItems","borderWidth","hairlineWidth","justifyContent","flex","Attachments"],"sourceRoot":"../../../src","sources":["chatbot/Attachments.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SACEC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,IAAI,EACJC,IAAI,QAKC,cAAc;AACrB,SAASC,IAAI,EAAEC,SAAS,QAAQ,qBAAqB;AACrD,SAASC,kBAAkB,QAAQ,UAAU;;AAE7C;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAmBA;AACA;AACA;;AAEA,SAASC,cAAcA,CAACC,KAAc,EAAU;EAC9C,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE;EAC5B,IAAIA,KAAK,GAAG,IAAI,EAAE,OAAO,GAAGA,KAAK,IAAI;EACrC,IAAIA,KAAK,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;EACjE,OAAO,GAAG,CAACD,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;AACnD;AAEA,SAASC,cAAcA,CAACC,UAAsB,EAAE;EAC9C,MAAMC,MAAM,GAAGD,UAAU,CAACE,GAAG,IAAIF,UAAU,CAACG,GAAG;EAC/C,OAAOF,MAAM,GAAG;IAAEC,GAAG,EAAED;EAAO,CAAC,GAAGG,SAAS;AAC7C;;AAEA;AACA;AACA;;AAQA,SAASC,cAAcA,CAAC;EAAEL,UAAU;EAAEM,IAAI;EAAEC;AAA2B,CAAC,EAAE;EACxE,MAAMC,KAAK,GAAGjB,kBAAkB,CAAC,CAAC;EAClC,MAAMU,MAAM,GAAGF,cAAc,CAACC,UAAU,CAAC;EAEzC,IAAI,CAACC,MAAM,EAAE;IACX,oBACER,IAAA,CAACL,IAAI;MACHmB,KAAK,EAAE,CACLE,MAAM,CAACC,gBAAgB,EACvB;QACEC,KAAK,EAAEL,IAAI;QACXM,MAAM,EAAEN,IAAI;QACZO,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACC,KAAK;QACnCC,YAAY,EAAER,KAAK,CAACS,MAAM,CAACC;MAC7B,CAAC,EACDX,KAAK,CACL;MAAAY,QAAA,eAEF1B,IAAA,CAACH,SAAS;QAACgB,IAAI,EAAE,EAAG;QAACc,KAAK,EAAEZ,KAAK,CAACM,MAAM,CAACO;MAAgB,CAAE;IAAC,CACxD,CAAC;EAEX;EAEA,oBACE5B,IAAA,CAACV,KAAK;IACJkB,MAAM,EAAEA,MAAO;IACfM,KAAK,EAAE,CACL;MACEI,KAAK,EAAEL,IAAI;MACXM,MAAM,EAAEN,IAAI;MACZU,YAAY,EAAER,KAAK,CAACS,MAAM,CAACC;IAC7B,CAAC,EACDX,KAAK,CACL;IACFe,UAAU,EAAC;EAAO,CACnB,CAAC;AAEN;;AAEA;AACA;AACA;;AAMA,SAASC,OAAOA,CAAC;EAAEvB;AAAyB,CAAC,EAAE;EAC7C,MAAMQ,KAAK,GAAGjB,kBAAkB,CAAC,CAAC;EAElC,MAAMiC,SAAoB,GAAG;IAC3BJ,KAAK,EAAEZ,KAAK,CAACM,MAAM,CAACW,UAAU;IAC9BC,QAAQ,EAAElB,KAAK,CAACmB,UAAU,CAACD,QAAQ,CAACE,EAAE;IACtCC,UAAU,EAAErB,KAAK,CAACmB,UAAU,CAACE,UAAU,CAACC,MAAiC;IACzEC,UAAU,EAAEvB,KAAK,CAACmB,UAAU,CAACI;EAC/B,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3BZ,KAAK,EAAEZ,KAAK,CAACM,MAAM,CAACO,eAAe;IACnCK,QAAQ,EAAElB,KAAK,CAACmB,UAAU,CAACD,QAAQ,CAACO,EAAE;IACtCF,UAAU,EAAEvB,KAAK,CAACmB,UAAU,CAACI;EAC/B,CAAC;EAED,oBACEpC,KAAA,CAACX,SAAS;IACRuB,KAAK,EAAEA,CAAC;MAAE2B;IAAQ,CAAC,KAAK,CACtBzB,MAAM,CAAC0B,OAAO,EACd;MACEtB,eAAe,EAAEqB,OAAO,GAAG1B,KAAK,CAACM,MAAM,CAACC,KAAK,GAAGP,KAAK,CAACM,MAAM,CAACsB,IAAI;MACjEC,WAAW,EAAE7B,KAAK,CAACM,MAAM,CAACwB,MAAM;MAChCtB,YAAY,EAAER,KAAK,CAACS,MAAM,CAACC,EAAE;MAC7BqB,OAAO,EAAE/B,KAAK,CAACgC,OAAO,CAACtB,EAAE;MACzBuB,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACtB;IACrB,CAAC,CACD;IAAAC,QAAA,gBAEF1B,IAAA,CAACL,IAAI;MACHmB,KAAK,EAAE,CACLE,MAAM,CAACiC,QAAQ,EACf;QACE7B,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACC,KAAK;QACnCC,YAAY,EAAER,KAAK,CAACS,MAAM,CAACW;MAC7B,CAAC,CACD;MAAAT,QAAA,eAEF1B,IAAA,CAACJ,IAAI;QAACiB,IAAI,EAAE,EAAG;QAACc,KAAK,EAAEZ,KAAK,CAACM,MAAM,CAACO;MAAgB,CAAE;IAAC,CACnD,CAAC,eAEP1B,KAAA,CAACP,IAAI;MAACmB,KAAK,EAAEE,MAAM,CAACkC,QAAS;MAAAxB,QAAA,gBAC3B1B,IAAA,CAACN,IAAI;QAACoB,KAAK,EAAEiB,SAAU;QAACoB,aAAa,EAAE,CAAE;QAAAzB,QAAA,EACtCnB,UAAU,CAAC6C;MAAI,CACZ,CAAC,EACN,CAAC7C,UAAU,CAACM,IAAI,IAAI,IAAI,IAAIN,UAAU,CAAC8C,QAAQ,kBAC9CrD,IAAA,CAACN,IAAI;QAACoB,KAAK,EAAEyB,SAAU;QAACY,aAAa,EAAE,CAAE;QAAAzB,QAAA,EACtC,CACCnB,UAAU,CAAC8C,QAAQ,EACnB9C,UAAU,CAACM,IAAI,IAAI,IAAI,GAAGV,cAAc,CAACI,UAAU,CAACM,IAAI,CAAC,GAAG,IAAI,CACjE,CACEyC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,KAAK;MAAC,CACV,CACP;IAAA,CACG,CAAC;EAAA,CACE,CAAC;AAEhB;;AAEA;AACA;AACA;;AAEA,SAASC,UAAUA,CAAC;EAClBC,WAAW;EACX5C;AAIF,CAAC,EAAE;EACD,MAAMC,KAAK,GAAGjB,kBAAkB,CAAC,CAAC;EAClC,MAAM6D,MAAM,GAAGD,WAAW,CAACJ,MAAM,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC;EAC5D,MAAMC,KAAK,GAAGJ,WAAW,CAACJ,MAAM,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAC;EAE1D,oBACE3D,KAAA,CAACP,IAAI;IAACmB,KAAK,EAAEA,KAAM;IAAAY,QAAA,GAChBiC,MAAM,CAACI,MAAM,GAAG,CAAC,iBAChB/D,IAAA,CAACL,IAAI;MAACmB,KAAK,EAAE,CAACE,MAAM,CAACgD,IAAI,EAAE;QAAEhB,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACZ;MAAG,CAAC,CAAE;MAAAT,QAAA,EACnDiC,MAAM,CAACM,GAAG,CAAC,CAAC1D,UAAU,EAAE2D,KAAK,kBAC5BlE,IAAA,CAACY,cAAc;QAEbL,UAAU,EAAEA,UAAW;QACvBM,IAAI,EAAE,GAAI;QACVC,KAAK,EAAEE,MAAM,CAACmD;MAAkC,GAH3C,OAAOD,KAAK,EAIlB,CACF;IAAC,CACE,CACP,EAEAJ,KAAK,CAACC,MAAM,GAAG,CAAC,iBACf/D,IAAA,CAACL,IAAI;MAACmB,KAAK,EAAE,CAACE,MAAM,CAACoD,QAAQ,EAAE;QAAEpB,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACZ,EAAE;QAAEkC,SAAS,EAAEV,MAAM,CAACI,MAAM,GAAG,CAAC,GAAGhD,KAAK,CAACgC,OAAO,CAACZ,EAAE,GAAG;MAAE,CAAC,CAAE;MAAAT,QAAA,EAC5GoC,KAAK,CAACG,GAAG,CAAC,CAAC1D,UAAU,EAAE2D,KAAK,kBAC3BlE,IAAA,CAAC8B,OAAO;QAAuBvB,UAAU,EAAEA;MAAW,GAAxC,QAAQ2D,KAAK,EAA6B,CACzD;IAAC,CACE,CACP;EAAA,CACG,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAASI,YAAYA,CAAC;EACpBZ,WAAW;EACX5C;AAIF,CAAC,EAAE;EACD,MAAMC,KAAK,GAAGjB,kBAAkB,CAAC,CAAC;EAClC,MAAM6D,MAAM,GAAGD,WAAW,CAACJ,MAAM,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC;EAC5D,MAAMC,KAAK,GAAGJ,WAAW,CAACJ,MAAM,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAC;EAE1D,oBACE3D,KAAA,CAACP,IAAI;IAACmB,KAAK,EAAEA,KAAM;IAAAY,QAAA,GAChBiC,MAAM,CAACI,MAAM,GAAG,CAAC,iBAChB/D,IAAA,CAACR,UAAU;MACT+E,UAAU;MACVC,8BAA8B,EAAE,KAAM;MACtCC,qBAAqB,EAAE,CACrBzD,MAAM,CAAC0D,eAAe,EACtB;QAAE1B,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACZ;MAAG,CAAC,CACzB;MAAAT,QAAA,EAEDiC,MAAM,CAACM,GAAG,CAAC,CAAC1D,UAAU,EAAE2D,KAAK,kBAC5BlE,IAAA,CAACY,cAAc;QAEbL,UAAU,EAAEA,UAAW;QACvBM,IAAI,EAAE;MAAI,GAFL,OAAOqD,KAAK,EAGlB,CACF;IAAC,CACQ,CACb,EAEAJ,KAAK,CAACC,MAAM,GAAG,CAAC,iBACf/D,IAAA,CAACL,IAAI;MAACmB,KAAK,EAAE,CAACE,MAAM,CAACoD,QAAQ,EAAE;QAAEpB,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACZ,EAAE;QAAEkC,SAAS,EAAEV,MAAM,CAACI,MAAM,GAAG,CAAC,GAAGhD,KAAK,CAACgC,OAAO,CAACZ,EAAE,GAAG;MAAE,CAAC,CAAE;MAAAT,QAAA,EAC5GoC,KAAK,CAACG,GAAG,CAAC,CAAC1D,UAAU,EAAE2D,KAAK,kBAC3BlE,IAAA,CAAC8B,OAAO;QAAuBvB,UAAU,EAAEA;MAAW,GAAxC,QAAQ2D,KAAK,EAA6B,CACzD;IAAC,CACE,CACP;EAAA,CACG,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAASS,UAAUA,CAAC;EAClBjB,WAAW;EACX5C;AAIF,CAAC,EAAE;EACD,MAAMC,KAAK,GAAGjB,kBAAkB,CAAC,CAAC;EAElC,oBACEE,IAAA,CAACL,IAAI;IAACmB,KAAK,EAAE,CAACE,MAAM,CAACoD,QAAQ,EAAE;MAAEpB,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACZ;IAAG,CAAC,EAAErB,KAAK,CAAE;IAAAY,QAAA,EAC9DgC,WAAW,CAACO,GAAG,CAAC,CAAC1D,UAAU,EAAE2D,KAAK,KAAK;MACtC,IAAI3D,UAAU,CAACsD,IAAI,KAAK,OAAO,EAAE;QAC/B,oBACE3D,KAAA,CAACP,IAAI;UAEHmB,KAAK,EAAE,CACLE,MAAM,CAAC0B,OAAO,EACd;YACEtB,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACsB,IAAI;YAClCC,WAAW,EAAE7B,KAAK,CAACM,MAAM,CAACwB,MAAM;YAChCtB,YAAY,EAAER,KAAK,CAACS,MAAM,CAACC,EAAE;YAC7BqB,OAAO,EAAE/B,KAAK,CAACgC,OAAO,CAACZ,EAAE;YACzBa,GAAG,EAAEjC,KAAK,CAACgC,OAAO,CAACtB;UACrB,CAAC,CACD;UAAAC,QAAA,gBAEF1B,IAAA,CAACY,cAAc;YAACL,UAAU,EAAEA,UAAW;YAACM,IAAI,EAAE;UAAG,CAAE,CAAC,eACpDb,IAAA,CAACL,IAAI;YAACmB,KAAK,EAAEE,MAAM,CAACkC,QAAS;YAAAxB,QAAA,eAC3B1B,IAAA,CAACN,IAAI;cACHyD,aAAa,EAAE,CAAE;cACjBrC,KAAK,EAAE;gBACLa,KAAK,EAAEZ,KAAK,CAACM,MAAM,CAACW,UAAU;gBAC9BC,QAAQ,EAAElB,KAAK,CAACmB,UAAU,CAACD,QAAQ,CAACE,EAAE;gBACtCC,UAAU,EAAErB,KAAK,CAACmB,UAAU,CAACE,UAAU,CACpCC,MAAiC;gBACpCC,UAAU,EAAEvB,KAAK,CAACmB,UAAU,CAACI;cAC/B,CAAE;cAAAZ,QAAA,EAEDnB,UAAU,CAAC6C;YAAI,CACZ;UAAC,CACH,CAAC;QAAA,GA1BF,OAAOc,KAAK,EA2Bb,CAAC;MAEX;MACA,oBAAOlE,IAAA,CAAC8B,OAAO;QAAuBvB,UAAU,EAAEA;MAAW,GAAxC,QAAQ2D,KAAK,EAA6B,CAAC;IAClE,CAAC;EAAC,CACE,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAASU,oBAAoBA,CAAC;EAC5BlB,WAAW;EACXmB,OAAO,GAAG,QAAQ;EAClB/D;AACgB,CAAC,EAAE;EACnB,IAAI4C,WAAW,CAACK,MAAM,KAAK,CAAC,EAAE;IAC5B,OAAO,IAAI;EACb;EAEA,QAAQc,OAAO;IACb,KAAK,MAAM;MACT,oBAAO7E,IAAA,CAACyD,UAAU;QAACC,WAAW,EAAEA,WAAY;QAAC5C,KAAK,EAAEA;MAAM,CAAE,CAAC;IAC/D,KAAK,QAAQ;MACX,oBAAOd,IAAA,CAACsE,YAAY;QAACZ,WAAW,EAAEA,WAAY;QAAC5C,KAAK,EAAEA;MAAM,CAAE,CAAC;IACjE,KAAK,MAAM;MACT,oBAAOd,IAAA,CAAC2E,UAAU;QAACjB,WAAW,EAAEA,WAAY;QAAC5C,KAAK,EAAEA;MAAM,CAAE,CAAC;EACjE;AACF;;AAEA;AACA;AACA;;AAEA,MAAME,MAAM,GAAGvB,UAAU,CAACqF,MAAM,CAAC;EAC/Bd,IAAI,EAAE;IACJe,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE;EACZ,CAAC;EACDb,QAAQ,EAAE;IACRc,SAAS,EAAE,KAAK;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDR,eAAe,EAAE;IACfK,aAAa,EAAE,KAAK;IACpBI,UAAU,EAAE;EACd,CAAC;EACDf,QAAQ,EAAE;IACRW,aAAa,EAAE;EACjB,CAAC;EACDrC,OAAO,EAAE;IACPqC,aAAa,EAAE,KAAK;IACpBI,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE3F,UAAU,CAAC4F;EAC1B,CAAC;EACDpC,QAAQ,EAAE;IACR/B,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVgE,UAAU,EAAE,QAAQ;IACpBG,cAAc,EAAE;EAClB,CAAC;EACDpC,QAAQ,EAAE;IACRqC,IAAI,EAAE,CAAC;IACPvC,GAAG,EAAE;EACP,CAAC;EACD/B,gBAAgB,EAAE;IAChBkE,UAAU,EAAE,QAAQ;IACpBG,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;;AAEA,OAAO,MAAME,WAAW,gBAAGnG,IAAI,CAACuF,oBAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { RotateCcw } from 'lucide-react-native';
6
+ import { useAIElementsTheme } from '../theme';
7
+
8
+ // ---------------------------------------------------------------------------
9
+ // Types
10
+ // ---------------------------------------------------------------------------
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ // ---------------------------------------------------------------------------
13
+ // Helpers
14
+ // ---------------------------------------------------------------------------
15
+
16
+ function arraysShallowEqual(a, b) {
17
+ if (a === b) return true;
18
+ if (!a || !b) return false;
19
+ if (a.length !== b.length) return false;
20
+ for (let i = 0; i < a.length; i += 1) {
21
+ if (a[i] !== b[i]) return false;
22
+ }
23
+ return true;
24
+ }
25
+
26
+ // ---------------------------------------------------------------------------
27
+ // Error boundary
28
+ // ---------------------------------------------------------------------------
29
+
30
+ /**
31
+ * Class-component boundary that wraps individual chat messages. If a single
32
+ * message's render throws (e.g. malformed markdown, a tool call with bad
33
+ * JSON), only that bubble shows a fallback — the rest of the conversation
34
+ * keeps working.
35
+ *
36
+ * React doesn't expose hooks for error boundaries, so this **must** stay a
37
+ * class component. The themed fallback is delegated to a sibling functional
38
+ * component so it can read the theme via hooks.
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <ChatErrorBoundary resetKeys={[message.id]}>
43
+ * <MessageRenderer message={message} />
44
+ * </ChatErrorBoundary>
45
+ * ```
46
+ */
47
+ export class ChatErrorBoundary extends Component {
48
+ static displayName = 'ChatErrorBoundary';
49
+ state = {
50
+ error: null
51
+ };
52
+ static getDerivedStateFromError(error) {
53
+ return {
54
+ error
55
+ };
56
+ }
57
+ componentDidCatch(error, errorInfo) {
58
+ this.props.onError?.(error, errorInfo);
59
+ if (__DEV__) {
60
+ // Format following Expo's what / why / how convention so the warning
61
+ // tells you exactly what to fix instead of just dumping a stack.
62
+ console.warn('[chat-components] A message render threw inside <ChatErrorBoundary>.\n' + ` what: ${error.message || 'unknown render error'}\n` + ' why: React unmounted that subtree to prevent a crash.\n' + ' how: inspect the message payload (markdown / tool args / sources)\n' + ' below for invalid input. The user can also tap "Retry" to remount.');
63
+ console.error('[chat-components]', error, errorInfo.componentStack);
64
+ }
65
+ }
66
+ componentDidUpdate(prev) {
67
+ // Auto-reset if any reset key changed since the last render. This lets
68
+ // callers say "the message id changed, so any error from the previous
69
+ // message no longer applies".
70
+ if (this.state.error && !arraysShallowEqual(prev.resetKeys, this.props.resetKeys)) {
71
+ this.reset();
72
+ }
73
+ }
74
+ reset = () => {
75
+ this.setState({
76
+ error: null
77
+ });
78
+ };
79
+ render() {
80
+ const {
81
+ error
82
+ } = this.state;
83
+ if (error) {
84
+ if (this.props.fallback) {
85
+ return this.props.fallback(error, this.reset);
86
+ }
87
+ return /*#__PURE__*/_jsx(DefaultFallback, {
88
+ error: error,
89
+ onReset: this.reset
90
+ });
91
+ }
92
+ return this.props.children;
93
+ }
94
+ }
95
+
96
+ // ---------------------------------------------------------------------------
97
+ // Default themed fallback
98
+ // ---------------------------------------------------------------------------
99
+
100
+ function DefaultFallback({
101
+ error,
102
+ onReset
103
+ }) {
104
+ const theme = useAIElementsTheme();
105
+ const styles = getStyles(theme);
106
+ return /*#__PURE__*/_jsx(View, {
107
+ style: styles.wrapper,
108
+ accessible: true,
109
+ accessibilityRole: "alert",
110
+ accessibilityLabel: "Message failed to render",
111
+ children: /*#__PURE__*/_jsxs(View, {
112
+ style: styles.bubble,
113
+ children: [/*#__PURE__*/_jsx(Text, {
114
+ style: styles.title,
115
+ children: "Couldn't render this message"
116
+ }), /*#__PURE__*/_jsx(Text, {
117
+ style: styles.message,
118
+ numberOfLines: 2,
119
+ children: error.message || 'Unknown render error.'
120
+ }), /*#__PURE__*/_jsxs(Pressable, {
121
+ onPress: onReset,
122
+ accessibilityRole: "button",
123
+ accessibilityLabel: "Retry rendering this message",
124
+ hitSlop: 8,
125
+ style: ({
126
+ pressed
127
+ }) => [styles.retryButton, pressed && styles.retryButtonPressed],
128
+ children: [/*#__PURE__*/_jsx(RotateCcw, {
129
+ size: 12,
130
+ color: theme.colors.foreground
131
+ }), /*#__PURE__*/_jsx(Text, {
132
+ style: styles.retryText,
133
+ children: "Retry"
134
+ })]
135
+ })]
136
+ })
137
+ });
138
+ }
139
+ DefaultFallback.displayName = 'ChatErrorBoundary.DefaultFallback';
140
+
141
+ // ---------------------------------------------------------------------------
142
+ // Styles
143
+ // ---------------------------------------------------------------------------
144
+
145
+ function getStyles(theme) {
146
+ return StyleSheet.create({
147
+ wrapper: {
148
+ alignItems: 'flex-start',
149
+ paddingHorizontal: theme.spacing.lg,
150
+ marginBottom: theme.spacing.md
151
+ },
152
+ bubble: {
153
+ backgroundColor: theme.colors.muted,
154
+ borderColor: theme.colors.border,
155
+ borderWidth: StyleSheet.hairlineWidth,
156
+ borderRadius: theme.radius.md,
157
+ paddingHorizontal: theme.spacing.md,
158
+ paddingVertical: theme.spacing.sm,
159
+ maxWidth: '88%'
160
+ },
161
+ title: {
162
+ color: theme.colors.foreground,
163
+ fontFamily: theme.typography.fontFamily,
164
+ fontSize: theme.typography.fontSize.sm,
165
+ fontWeight: theme.typography.fontWeight.semibold,
166
+ marginBottom: 2
167
+ },
168
+ message: {
169
+ color: theme.colors.mutedForeground,
170
+ fontFamily: theme.typography.fontFamily,
171
+ fontSize: theme.typography.fontSize.sm,
172
+ lineHeight: theme.typography.fontSize.sm * theme.typography.lineHeight.normal,
173
+ marginBottom: theme.spacing.sm
174
+ },
175
+ retryButton: {
176
+ flexDirection: 'row',
177
+ alignItems: 'center',
178
+ gap: 6,
179
+ alignSelf: 'flex-start',
180
+ paddingHorizontal: theme.spacing.sm,
181
+ paddingVertical: 4,
182
+ borderRadius: theme.radius.sm,
183
+ backgroundColor: theme.colors.secondary
184
+ },
185
+ retryButtonPressed: {
186
+ opacity: 0.7
187
+ },
188
+ retryText: {
189
+ color: theme.colors.foreground,
190
+ fontFamily: theme.typography.fontFamily,
191
+ fontSize: theme.typography.fontSize.sm,
192
+ fontWeight: theme.typography.fontWeight.medium
193
+ }
194
+ });
195
+ }
196
+ //# sourceMappingURL=ChatErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","Pressable","StyleSheet","Text","View","RotateCcw","useAIElementsTheme","jsx","_jsx","jsxs","_jsxs","arraysShallowEqual","a","b","length","i","ChatErrorBoundary","displayName","state","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","__DEV__","console","warn","message","componentStack","componentDidUpdate","prev","resetKeys","reset","setState","render","fallback","DefaultFallback","onReset","children","theme","styles","getStyles","style","wrapper","accessible","accessibilityRole","accessibilityLabel","bubble","title","numberOfLines","onPress","hitSlop","pressed","retryButton","retryButtonPressed","size","color","colors","foreground","retryText","create","alignItems","paddingHorizontal","spacing","lg","marginBottom","md","backgroundColor","muted","borderColor","border","borderWidth","hairlineWidth","borderRadius","radius","paddingVertical","sm","maxWidth","fontFamily","typography","fontSize","fontWeight","semibold","mutedForeground","lineHeight","normal","flexDirection","gap","alignSelf","secondary","opacity","medium"],"sourceRoot":"../../../src","sources":["chatbot/ChatErrorBoundary.tsx"],"mappings":"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","ignoreList":[]}