@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,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConversationScrollButton = ConversationScrollButton;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _lucideReactNative = require("lucide-react-native");
10
+ var _expoGlassEffect = require("expo-glass-effect");
11
+ var _theme = require("../theme");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ // ---------------------------------------------------------------------------
15
+ // Types
16
+ // ---------------------------------------------------------------------------
17
+
18
+ // ---------------------------------------------------------------------------
19
+ // Constants
20
+ // ---------------------------------------------------------------------------
21
+
22
+ // Match the PromptInput's CircleButton dimensions exactly so the scroll
23
+ // button visually stacks above the Plus button as a continuation of the
24
+ // same control column.
25
+ const CIRCLE_BUTTON_SIZE = 36;
26
+ const ICON_SIZE = 18;
27
+ const isIOS = _reactNative.Platform.OS === 'ios';
28
+
29
+ // ---------------------------------------------------------------------------
30
+ // Component
31
+ // ---------------------------------------------------------------------------
32
+
33
+ /**
34
+ * A floating circle button that appears when the user has scrolled away
35
+ * from the bottom of a conversation, and disappears when they return.
36
+ *
37
+ * Designed to sit in the chat area's bottom-left corner so it visually
38
+ * stacks above the PromptInput's Plus button — same size, same glass
39
+ * treatment, same press feedback. Pairs with
40
+ * `<Conversation onIsAtBottomChange={...} />`: the parent screen tracks
41
+ * the boolean and passes it as `visible`.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * const [isAtBottom, setIsAtBottom] = useState(true);
46
+ * const ref = useRef<ConversationRef>(null);
47
+ *
48
+ * <View style={{ flex: 1 }}>
49
+ * <Conversation
50
+ * ref={ref}
51
+ * onIsAtBottomChange={setIsAtBottom}
52
+ * ...
53
+ * />
54
+ * <ConversationScrollButton
55
+ * visible={!isAtBottom}
56
+ * onPress={() => ref.current?.scrollToBottom()}
57
+ * style={{ position: 'absolute', left: 12, bottom: 12 }}
58
+ * />
59
+ * </View>
60
+ * ```
61
+ *
62
+ * **Why no fade animation?**
63
+ * Earlier iterations wrapped this in a Reanimated `Animated.View` for a
64
+ * smooth fade-in/out. On the iOS simulator (and likely device) the
65
+ * `expo-glass-effect` `GlassView` would render correctly on first mount
66
+ * but lose its glass material after a Fast Refresh or reload. Reanimated
67
+ * drives styles on the UI thread via a code path that conflicts with
68
+ * `expo-glass-effect`'s custom native view manager — the prop diff that
69
+ * re-applies the glass layer never reaches the native view. Dropping the
70
+ * animation wrapper and using a plain conditional render keeps the
71
+ * GlassView in exactly the same context as the working `Plus` button
72
+ * inside `PromptInput.CircleButton`.
73
+ */
74
+ function ConversationScrollButton({
75
+ visible,
76
+ onPress,
77
+ style,
78
+ accessibilityLabel = 'Scroll to latest message'
79
+ }) {
80
+ const theme = (0, _theme.useAIElementsTheme)();
81
+ if (!visible) return null;
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoGlassEffect.GlassView, {
83
+ glassEffectStyle: isIOS ? 'regular' : 'none',
84
+ isInteractive: true,
85
+ colorScheme: theme.dark ? 'dark' : 'light',
86
+ style: [styles.circleButton,
87
+ // On non-iOS GlassView is just a plain View — paint the bg
88
+ // ourselves to match the PromptInput's Plus fallback.
89
+ !isIOS && {
90
+ backgroundColor: theme.colors.secondary
91
+ }, style],
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
93
+ onPress: onPress,
94
+ accessibilityRole: "button",
95
+ accessibilityLabel: accessibilityLabel,
96
+ style: ({
97
+ pressed
98
+ }) => [styles.circleButtonInner, {
99
+ opacity: pressed ? 0.6 : 1
100
+ }],
101
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.ArrowDown, {
102
+ size: ICON_SIZE,
103
+ color: theme.colors.foreground
104
+ })
105
+ })
106
+ });
107
+ }
108
+ ConversationScrollButton.displayName = 'ConversationScrollButton';
109
+
110
+ // ---------------------------------------------------------------------------
111
+ // Styles — mirror the PromptInput CircleButton's dimensions exactly
112
+ // ---------------------------------------------------------------------------
113
+
114
+ const styles = _reactNative.StyleSheet.create({
115
+ circleButton: {
116
+ width: CIRCLE_BUTTON_SIZE,
117
+ height: CIRCLE_BUTTON_SIZE,
118
+ borderRadius: CIRCLE_BUTTON_SIZE / 2,
119
+ // Clip the GlassView blur (and the non-iOS bg) to the rounded shape.
120
+ overflow: 'hidden',
121
+ alignItems: 'center',
122
+ justifyContent: 'center'
123
+ },
124
+ circleButtonInner: {
125
+ width: '100%',
126
+ height: '100%',
127
+ alignItems: 'center',
128
+ justifyContent: 'center'
129
+ }
130
+ });
131
+ //# sourceMappingURL=ConversationScrollButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_lucideReactNative","_expoGlassEffect","_theme","_jsxRuntime","e","__esModule","default","CIRCLE_BUTTON_SIZE","ICON_SIZE","isIOS","Platform","OS","ConversationScrollButton","visible","onPress","style","accessibilityLabel","theme","useAIElementsTheme","jsx","GlassView","glassEffectStyle","isInteractive","colorScheme","dark","styles","circleButton","backgroundColor","colors","secondary","children","Pressable","accessibilityRole","pressed","circleButtonInner","opacity","ArrowDown","size","color","foreground","displayName","StyleSheet","create","width","height","borderRadius","overflow","alignItems","justifyContent"],"sourceRoot":"../../../src","sources":["chatbot/ConversationScrollButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAA8C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C;AACA;AACA;;AAkBA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAMG,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,SAAS,GAAG,EAAE;AACpB,MAAMC,KAAK,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,wBAAwBA,CAAC;EACvCC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,kBAAkB,GAAG;AACQ,CAAC,EAAE;EAChC,MAAMC,KAAK,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAElC,IAAI,CAACL,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACE,IAAAV,WAAA,CAAAgB,GAAA,EAAClB,gBAAA,CAAAmB,SAAS;IACRC,gBAAgB,EAAEZ,KAAK,GAAG,SAAS,GAAG,MAAO;IAC7Ca,aAAa;IACbC,WAAW,EAAEN,KAAK,CAACO,IAAI,GAAG,MAAM,GAAG,OAAQ;IAC3CT,KAAK,EAAE,CACLU,MAAM,CAACC,YAAY;IACnB;IACA;IACA,CAACjB,KAAK,IAAI;MAAEkB,eAAe,EAAEV,KAAK,CAACW,MAAM,CAACC;IAAU,CAAC,EACrDd,KAAK,CACL;IAAAe,QAAA,eAEF,IAAA3B,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAgC,SAAS;MACRjB,OAAO,EAAEA,OAAQ;MACjBkB,iBAAiB,EAAC,QAAQ;MAC1BhB,kBAAkB,EAAEA,kBAAmB;MACvCD,KAAK,EAAEA,CAAC;QAAEkB;MAAQ,CAAC,KAAK,CACtBR,MAAM,CAACS,iBAAiB,EACxB;QAAEC,OAAO,EAAEF,OAAO,GAAG,GAAG,GAAG;MAAE,CAAC,CAC9B;MAAAH,QAAA,eAEF,IAAA3B,WAAA,CAAAgB,GAAA,EAACnB,kBAAA,CAAAoC,SAAS;QAACC,IAAI,EAAE7B,SAAU;QAAC8B,KAAK,EAAErB,KAAK,CAACW,MAAM,CAACW;MAAW,CAAE;IAAC,CACrD;EAAC,CACH,CAAC;AAEhB;AAEA3B,wBAAwB,CAAC4B,WAAW,GAAG,0BAA0B;;AAEjE;AACA;AACA;;AAEA,MAAMf,MAAM,GAAGgB,uBAAU,CAACC,MAAM,CAAC;EAC/BhB,YAAY,EAAE;IACZiB,KAAK,EAAEpC,kBAAkB;IACzBqC,MAAM,EAAErC,kBAAkB;IAC1BsC,YAAY,EAAEtC,kBAAkB,GAAG,CAAC;IACpC;IACAuC,QAAQ,EAAE,QAAQ;IAClBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDd,iBAAiB,EAAE;IACjBS,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdG,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MessageContent = exports.MessageAvatar = exports.MessageActions = exports.Message = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _theme = require("../theme");
10
+ var _streaming = require("../streaming");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ // ---------------------------------------------------------------------------
14
+ // Types
15
+ // ---------------------------------------------------------------------------
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Context
19
+ // ---------------------------------------------------------------------------
20
+
21
+ const MessageContext = /*#__PURE__*/(0, _react.createContext)(null);
22
+ function useMessageContext() {
23
+ const ctx = (0, _react.useContext)(MessageContext);
24
+ if (!ctx) {
25
+ throw new Error('Message compound components must be used within a <Message>.');
26
+ }
27
+ return ctx;
28
+ }
29
+
30
+ // ---------------------------------------------------------------------------
31
+ // Prop types
32
+ // ---------------------------------------------------------------------------
33
+
34
+ // ---------------------------------------------------------------------------
35
+ // Message (root)
36
+ // ---------------------------------------------------------------------------
37
+
38
+ function MessageRoot({
39
+ message,
40
+ isStreaming,
41
+ children,
42
+ style
43
+ }) {
44
+ const theme = (0, _theme.useAIElementsTheme)();
45
+ const isUser = message.role === 'user';
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageContext.Provider, {
47
+ value: {
48
+ message,
49
+ isStreaming
50
+ },
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
52
+ style: [styles.container, {
53
+ alignItems: isUser ? 'flex-end' : 'flex-start',
54
+ paddingHorizontal: theme.spacing.lg,
55
+ marginBottom: theme.spacing.md
56
+ }, style],
57
+ children: children ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
58
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageContent, {})
59
+ })
60
+ })
61
+ });
62
+ }
63
+
64
+ // ---------------------------------------------------------------------------
65
+ // MessageAvatar
66
+ // ---------------------------------------------------------------------------
67
+
68
+ function MessageAvatarComponent({
69
+ children,
70
+ style
71
+ }) {
72
+ const theme = (0, _theme.useAIElementsTheme)();
73
+ const {
74
+ message
75
+ } = useMessageContext();
76
+ const isUser = message.role === 'user';
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
78
+ style: [styles.avatar, {
79
+ backgroundColor: isUser ? theme.colors.primary : theme.colors.muted,
80
+ width: 32,
81
+ height: 32,
82
+ borderRadius: theme.radius.full
83
+ }, style],
84
+ children: children ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
85
+ style: [styles.avatarText, {
86
+ color: isUser ? theme.colors.primaryForeground : theme.colors.foreground,
87
+ fontSize: theme.typography.fontSize.sm,
88
+ fontWeight: theme.typography.fontWeight.semibold,
89
+ fontFamily: theme.typography.fontFamily
90
+ }],
91
+ children: isUser ? 'U' : 'AI'
92
+ })
93
+ });
94
+ }
95
+
96
+ // ---------------------------------------------------------------------------
97
+ // MessageContent
98
+ // ---------------------------------------------------------------------------
99
+
100
+ function MessageContentComponent({
101
+ style
102
+ }) {
103
+ const theme = (0, _theme.useAIElementsTheme)();
104
+ const {
105
+ message,
106
+ isStreaming
107
+ } = useMessageContext();
108
+ const isUser = message.role === 'user';
109
+ const bubbleStyle = getBubbleStyle(isUser, theme);
110
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
111
+ style: [styles.bubble, bubbleStyle, style],
112
+ children: isUser ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
113
+ style: {
114
+ color: theme.colors.primaryForeground,
115
+ fontSize: 12,
116
+ fontFamily: theme.typography.fontFamily,
117
+ lineHeight: 12 * theme.typography.lineHeight.normal
118
+ },
119
+ children: message.content
120
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_streaming.StreamingMarkdown, {
121
+ content: message.content,
122
+ isStreaming: isStreaming
123
+ })
124
+ });
125
+ }
126
+
127
+ // ---------------------------------------------------------------------------
128
+ // MessageActions
129
+ // ---------------------------------------------------------------------------
130
+
131
+ function MessageActionsComponent({
132
+ children,
133
+ style
134
+ }) {
135
+ const theme = (0, _theme.useAIElementsTheme)();
136
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
137
+ style: [styles.actions, {
138
+ marginTop: theme.spacing.xs,
139
+ gap: theme.spacing.sm
140
+ }, style],
141
+ children: children
142
+ });
143
+ }
144
+
145
+ // ---------------------------------------------------------------------------
146
+ // Helpers
147
+ // ---------------------------------------------------------------------------
148
+
149
+ function getBubbleStyle(isUser, theme) {
150
+ if (isUser) {
151
+ return {
152
+ backgroundColor: theme.colors.primary,
153
+ borderRadius: theme.radius.lg,
154
+ borderBottomRightRadius: theme.radius.sm,
155
+ paddingHorizontal: theme.spacing.lg,
156
+ paddingVertical: theme.spacing.sm,
157
+ maxWidth: '80%'
158
+ };
159
+ }
160
+ return {
161
+ backgroundColor: theme.colors.card,
162
+ borderColor: theme.colors.border,
163
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
164
+ borderRadius: theme.radius.lg,
165
+ borderBottomLeftRadius: theme.radius.sm,
166
+ paddingHorizontal: theme.spacing.lg,
167
+ paddingVertical: theme.spacing.md,
168
+ maxWidth: '85%'
169
+ };
170
+ }
171
+
172
+ // ---------------------------------------------------------------------------
173
+ // Styles
174
+ // ---------------------------------------------------------------------------
175
+
176
+ const styles = _reactNative.StyleSheet.create({
177
+ container: {
178
+ flexDirection: 'column',
179
+ width: '100%'
180
+ },
181
+ avatar: {
182
+ alignItems: 'center',
183
+ justifyContent: 'center'
184
+ },
185
+ avatarText: {
186
+ textAlign: 'center'
187
+ },
188
+ bubble: {},
189
+ actions: {
190
+ flexDirection: 'row',
191
+ alignItems: 'center'
192
+ }
193
+ });
194
+
195
+ // ---------------------------------------------------------------------------
196
+ // Exports (memoized)
197
+ // ---------------------------------------------------------------------------
198
+
199
+ const Message = exports.Message = /*#__PURE__*/(0, _react.memo)(MessageRoot);
200
+ const MessageAvatar = exports.MessageAvatar = /*#__PURE__*/(0, _react.memo)(MessageAvatarComponent);
201
+ const MessageContent = exports.MessageContent = /*#__PURE__*/(0, _react.memo)(MessageContentComponent);
202
+ const MessageActions = exports.MessageActions = /*#__PURE__*/(0, _react.memo)(MessageActionsComponent);
203
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_theme","_streaming","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageContext","createContext","useMessageContext","ctx","useContext","Error","MessageRoot","message","isStreaming","children","style","theme","useAIElementsTheme","isUser","role","jsx","Provider","value","View","styles","container","alignItems","paddingHorizontal","spacing","lg","marginBottom","md","Fragment","MessageContent","MessageAvatarComponent","avatar","backgroundColor","colors","primary","muted","width","height","borderRadius","radius","full","Text","avatarText","color","primaryForeground","foreground","fontSize","typography","sm","fontWeight","semibold","fontFamily","MessageContentComponent","bubbleStyle","getBubbleStyle","bubble","lineHeight","normal","content","StreamingMarkdown","MessageActionsComponent","actions","marginTop","xs","gap","borderBottomRightRadius","paddingVertical","maxWidth","card","borderColor","border","borderWidth","StyleSheet","hairlineWidth","borderBottomLeftRadius","create","flexDirection","justifyContent","textAlign","Message","exports","memo","MessageAvatar","MessageActions"],"sourceRoot":"../../../src","sources":["chatbot/Message.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAMA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAAiD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEjD;AACA;AACA;;AAcA;AACA;AACA;;AAEA,MAAMkB,cAAc,gBAAG,IAAAC,oBAAa,EAA6B,IAAI,CAAC;AAEtE,SAASC,iBAAiBA,CAAA,EAAwB;EAChD,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACJ,cAAc,CAAC;EACtC,IAAI,CAACG,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CACb,8DACF,CAAC;EACH;EACA,OAAOF,GAAG;AACZ;;AAEA;AACA;AACA;;AAuBA;AACA;AACA;;AAEA,SAASG,WAAWA,CAAC;EAAEC,OAAO;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAoB,CAAC,EAAE;EAC5E,MAAMC,KAAK,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAClC,MAAMC,MAAM,GAAGN,OAAO,CAACO,IAAI,KAAK,MAAM;EAEtC,oBACE,IAAAlC,WAAA,CAAAmC,GAAA,EAACf,cAAc,CAACgB,QAAQ;IAACC,KAAK,EAAE;MAAEV,OAAO;MAAEC;IAAY,CAAE;IAAAC,QAAA,eACvD,IAAA7B,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAAyC,IAAI;MACHR,KAAK,EAAE,CACLS,MAAM,CAACC,SAAS,EAChB;QACEC,UAAU,EAAER,MAAM,GAAG,UAAU,GAAG,YAAY;QAC9CS,iBAAiB,EAAEX,KAAK,CAACY,OAAO,CAACC,EAAE;QACnCC,YAAY,EAAEd,KAAK,CAACY,OAAO,CAACG;MAC9B,CAAC,EACDhB,KAAK,CACL;MAAAD,QAAA,EAEDA,QAAQ,iBACP,IAAA7B,WAAA,CAAAmC,GAAA,EAAAnC,WAAA,CAAA+C,QAAA;QAAAlB,QAAA,eACE,IAAA7B,WAAA,CAAAmC,GAAA,EAACa,cAAc,IAAE;MAAC,CAClB;IACH,CACG;EAAC,CACgB,CAAC;AAE9B;;AAEA;AACA;AACA;;AAEA,SAASC,sBAAsBA,CAAC;EAAEpB,QAAQ;EAAEC;AAA0B,CAAC,EAAE;EACvE,MAAMC,KAAK,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAClC,MAAM;IAAEL;EAAQ,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EACvC,MAAMW,MAAM,GAAGN,OAAO,CAACO,IAAI,KAAK,MAAM;EAEtC,oBACE,IAAAlC,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAAyC,IAAI;IACHR,KAAK,EAAE,CACLS,MAAM,CAACW,MAAM,EACb;MACEC,eAAe,EAAElB,MAAM,GAAGF,KAAK,CAACqB,MAAM,CAACC,OAAO,GAAGtB,KAAK,CAACqB,MAAM,CAACE,KAAK;MACnEC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVC,YAAY,EAAE1B,KAAK,CAAC2B,MAAM,CAACC;IAC7B,CAAC,EACD7B,KAAK,CACL;IAAAD,QAAA,EAEDA,QAAQ,iBACP,IAAA7B,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAA+D,IAAI;MACH9B,KAAK,EAAE,CACLS,MAAM,CAACsB,UAAU,EACjB;QACEC,KAAK,EAAE7B,MAAM,GACTF,KAAK,CAACqB,MAAM,CAACW,iBAAiB,GAC9BhC,KAAK,CAACqB,MAAM,CAACY,UAAU;QAC3BC,QAAQ,EAAElC,KAAK,CAACmC,UAAU,CAACD,QAAQ,CAACE,EAAE;QACtCC,UAAU,EAAErC,KAAK,CAACmC,UAAU,CAACE,UAAU,CACpCC,QAAmC;QACtCC,UAAU,EAAEvC,KAAK,CAACmC,UAAU,CAACI;MAC/B,CAAC,CACD;MAAAzC,QAAA,EAEDI,MAAM,GAAG,GAAG,GAAG;IAAI,CAChB;EACP,CACG,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAASsC,uBAAuBA,CAAC;EAAEzC;AAA2B,CAAC,EAAE;EAC/D,MAAMC,KAAK,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAClC,MAAM;IAAEL,OAAO;IAAEC;EAAY,CAAC,GAAGN,iBAAiB,CAAC,CAAC;EACpD,MAAMW,MAAM,GAAGN,OAAO,CAACO,IAAI,KAAK,MAAM;EAEtC,MAAMsC,WAAW,GAAGC,cAAc,CAACxC,MAAM,EAAEF,KAAK,CAAC;EAEjD,oBACE,IAAA/B,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAAyC,IAAI;IAACR,KAAK,EAAE,CAACS,MAAM,CAACmC,MAAM,EAAEF,WAAW,EAAE1C,KAAK,CAAE;IAAAD,QAAA,EAC9CI,MAAM,gBACL,IAAAjC,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAA+D,IAAI;MACH9B,KAAK,EAAE;QACLgC,KAAK,EAAE/B,KAAK,CAACqB,MAAM,CAACW,iBAAiB;QACrCE,QAAQ,EAAE,EAAE;QACZK,UAAU,EAAEvC,KAAK,CAACmC,UAAU,CAACI,UAAU;QACvCK,UAAU,EAAE,EAAE,GAAG5C,KAAK,CAACmC,UAAU,CAACS,UAAU,CAACC;MAC/C,CAAE;MAAA/C,QAAA,EAEDF,OAAO,CAACkD;IAAO,CACZ,CAAC,gBAEP,IAAA7E,WAAA,CAAAmC,GAAA,EAACpC,UAAA,CAAA+E,iBAAiB;MAChBD,OAAO,EAAElD,OAAO,CAACkD,OAAQ;MACzBjD,WAAW,EAAEA;IAAY,CAC1B;EACF,CACG,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAASmD,uBAAuBA,CAAC;EAAElD,QAAQ;EAAEC;AAA2B,CAAC,EAAE;EACzE,MAAMC,KAAK,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAElC,oBACE,IAAAhC,WAAA,CAAAmC,GAAA,EAACtC,YAAA,CAAAyC,IAAI;IACHR,KAAK,EAAE,CACLS,MAAM,CAACyC,OAAO,EACd;MAAEC,SAAS,EAAElD,KAAK,CAACY,OAAO,CAACuC,EAAE;MAAEC,GAAG,EAAEpD,KAAK,CAACY,OAAO,CAACwB;IAAG,CAAC,EACtDrC,KAAK,CACL;IAAAD,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,SAAS4C,cAAcA,CACrBxC,MAAe,EACfF,KAAsB,EACX;EACX,IAAIE,MAAM,EAAE;IACV,OAAO;MACLkB,eAAe,EAAEpB,KAAK,CAACqB,MAAM,CAACC,OAAO;MACrCI,YAAY,EAAE1B,KAAK,CAAC2B,MAAM,CAACd,EAAE;MAC7BwC,uBAAuB,EAAErD,KAAK,CAAC2B,MAAM,CAACS,EAAE;MACxCzB,iBAAiB,EAAEX,KAAK,CAACY,OAAO,CAACC,EAAE;MACnCyC,eAAe,EAAEtD,KAAK,CAACY,OAAO,CAACwB,EAAE;MACjCmB,QAAQ,EAAE;IACZ,CAAC;EACH;EAEA,OAAO;IACLnC,eAAe,EAAEpB,KAAK,CAACqB,MAAM,CAACmC,IAAI;IAClCC,WAAW,EAAEzD,KAAK,CAACqB,MAAM,CAACqC,MAAM;IAChCC,WAAW,EAAEC,uBAAU,CAACC,aAAa;IACrCnC,YAAY,EAAE1B,KAAK,CAAC2B,MAAM,CAACd,EAAE;IAC7BiD,sBAAsB,EAAE9D,KAAK,CAAC2B,MAAM,CAACS,EAAE;IACvCzB,iBAAiB,EAAEX,KAAK,CAACY,OAAO,CAACC,EAAE;IACnCyC,eAAe,EAAEtD,KAAK,CAACY,OAAO,CAACG,EAAE;IACjCwC,QAAQ,EAAE;EACZ,CAAC;AACH;;AAEA;AACA;AACA;;AAEA,MAAM/C,MAAM,GAAGoD,uBAAU,CAACG,MAAM,CAAC;EAC/BtD,SAAS,EAAE;IACTuD,aAAa,EAAE,QAAQ;IACvBxC,KAAK,EAAE;EACT,CAAC;EACDL,MAAM,EAAE;IACNT,UAAU,EAAE,QAAQ;IACpBuD,cAAc,EAAE;EAClB,CAAC;EACDnC,UAAU,EAAE;IACVoC,SAAS,EAAE;EACb,CAAC;EACDvB,MAAM,EAAE,CAAC,CAAC;EACVM,OAAO,EAAE;IACPe,aAAa,EAAE,KAAK;IACpBtD,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEF;AACA;AACA;;AAEO,MAAMyD,OAAO,GAAAC,OAAA,CAAAD,OAAA,gBAAG,IAAAE,WAAI,EAAC1E,WAAW,CAAC;AACjC,MAAM2E,aAAa,GAAAF,OAAA,CAAAE,aAAA,gBAAG,IAAAD,WAAI,EAACnD,sBAAsB,CAAC;AAClD,MAAMD,cAAc,GAAAmD,OAAA,CAAAnD,cAAA,gBAAG,IAAAoD,WAAI,EAAC7B,uBAAuB,CAAC;AACpD,MAAM+B,cAAc,GAAAH,OAAA,CAAAG,cAAA,gBAAG,IAAAF,WAAI,EAACrB,uBAAuB,CAAC","ignoreList":[]}