@repzo/widget-react-native 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/README.md +482 -0
  2. package/lib/commonjs/agent-ui-blocks.js +159 -0
  3. package/lib/commonjs/agent-ui-blocks.js.map +1 -0
  4. package/lib/commonjs/api/client.js +267 -0
  5. package/lib/commonjs/api/client.js.map +1 -0
  6. package/lib/commonjs/api/realtime.js +193 -0
  7. package/lib/commonjs/api/realtime.js.map +1 -0
  8. package/lib/commonjs/api/sse-parser.js +58 -0
  9. package/lib/commonjs/api/sse-parser.js.map +1 -0
  10. package/lib/commonjs/controller.js +23 -0
  11. package/lib/commonjs/controller.js.map +1 -0
  12. package/lib/commonjs/device-id.js +75 -0
  13. package/lib/commonjs/device-id.js.map +1 -0
  14. package/lib/commonjs/events.js +49 -0
  15. package/lib/commonjs/events.js.map +1 -0
  16. package/lib/commonjs/i18n.js +106 -0
  17. package/lib/commonjs/i18n.js.map +1 -0
  18. package/lib/commonjs/index.js +98 -0
  19. package/lib/commonjs/index.js.map +1 -0
  20. package/lib/commonjs/locales.js +85 -0
  21. package/lib/commonjs/locales.js.map +1 -0
  22. package/lib/commonjs/package.json +1 -0
  23. package/lib/commonjs/push/push-notifications.js +208 -0
  24. package/lib/commonjs/push/push-notifications.js.map +1 -0
  25. package/lib/commonjs/state/use-widget-state.js +23 -0
  26. package/lib/commonjs/state/use-widget-state.js.map +1 -0
  27. package/lib/commonjs/state/widget-store.js +1682 -0
  28. package/lib/commonjs/state/widget-store.js.map +1 -0
  29. package/lib/commonjs/storage.js +147 -0
  30. package/lib/commonjs/storage.js.map +1 -0
  31. package/lib/commonjs/types.js +44 -0
  32. package/lib/commonjs/types.js.map +1 -0
  33. package/lib/commonjs/ui/WidgetProvider.js +404 -0
  34. package/lib/commonjs/ui/WidgetProvider.js.map +1 -0
  35. package/lib/commonjs/ui/components/AgentUiBlocks.js +864 -0
  36. package/lib/commonjs/ui/components/AgentUiBlocks.js.map +1 -0
  37. package/lib/commonjs/ui/components/Avatar.js +76 -0
  38. package/lib/commonjs/ui/components/Avatar.js.map +1 -0
  39. package/lib/commonjs/ui/components/ConversationRow.js +155 -0
  40. package/lib/commonjs/ui/components/ConversationRow.js.map +1 -0
  41. package/lib/commonjs/ui/components/ErrorBoundary.js +44 -0
  42. package/lib/commonjs/ui/components/ErrorBoundary.js.map +1 -0
  43. package/lib/commonjs/ui/components/Gradient.js +168 -0
  44. package/lib/commonjs/ui/components/Gradient.js.map +1 -0
  45. package/lib/commonjs/ui/components/Launcher.js +125 -0
  46. package/lib/commonjs/ui/components/Launcher.js.map +1 -0
  47. package/lib/commonjs/ui/components/Markdown.js +257 -0
  48. package/lib/commonjs/ui/components/Markdown.js.map +1 -0
  49. package/lib/commonjs/ui/components/OutboundMessageCard.js +157 -0
  50. package/lib/commonjs/ui/components/OutboundMessageCard.js.map +1 -0
  51. package/lib/commonjs/ui/components/WidgetPanel.js +131 -0
  52. package/lib/commonjs/ui/components/WidgetPanel.js.map +1 -0
  53. package/lib/commonjs/ui/components/icons.js +383 -0
  54. package/lib/commonjs/ui/components/icons.js.map +1 -0
  55. package/lib/commonjs/ui/hooks/use-keyboard-overlap.js +113 -0
  56. package/lib/commonjs/ui/hooks/use-keyboard-overlap.js.map +1 -0
  57. package/lib/commonjs/ui/hooks/use-reduce-motion.js +38 -0
  58. package/lib/commonjs/ui/hooks/use-reduce-motion.js.map +1 -0
  59. package/lib/commonjs/ui/hooks/use-widget-insets.js +41 -0
  60. package/lib/commonjs/ui/hooks/use-widget-insets.js.map +1 -0
  61. package/lib/commonjs/ui/screens/chat/ChatView.js +590 -0
  62. package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -0
  63. package/lib/commonjs/ui/screens/chat/ChatView.styles.js +362 -0
  64. package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -0
  65. package/lib/commonjs/ui/screens/chat/ChatView.types.js +6 -0
  66. package/lib/commonjs/ui/screens/chat/ChatView.types.js.map +1 -0
  67. package/lib/commonjs/ui/screens/conversations/ConversationsList.js +150 -0
  68. package/lib/commonjs/ui/screens/conversations/ConversationsList.js.map +1 -0
  69. package/lib/commonjs/ui/screens/conversations/ConversationsList.styles.js +118 -0
  70. package/lib/commonjs/ui/screens/conversations/ConversationsList.styles.js.map +1 -0
  71. package/lib/commonjs/ui/screens/conversations/ConversationsList.types.js +6 -0
  72. package/lib/commonjs/ui/screens/conversations/ConversationsList.types.js.map +1 -0
  73. package/lib/commonjs/ui/screens/home/HomeView.js +336 -0
  74. package/lib/commonjs/ui/screens/home/HomeView.js.map +1 -0
  75. package/lib/commonjs/ui/screens/home/HomeView.styles.js +245 -0
  76. package/lib/commonjs/ui/screens/home/HomeView.styles.js.map +1 -0
  77. package/lib/commonjs/ui/screens/home/HomeView.types.js +6 -0
  78. package/lib/commonjs/ui/screens/home/HomeView.types.js.map +1 -0
  79. package/lib/commonjs/ui/screens/home/greeting.js +49 -0
  80. package/lib/commonjs/ui/screens/home/greeting.js.map +1 -0
  81. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.js +229 -0
  82. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.js.map +1 -0
  83. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.styles.js +125 -0
  84. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.styles.js.map +1 -0
  85. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.types.js +6 -0
  86. package/lib/commonjs/ui/screens/pre-chat/PreChatForm.types.js.map +1 -0
  87. package/lib/commonjs/ui/styles/global.js +55 -0
  88. package/lib/commonjs/ui/styles/global.js.map +1 -0
  89. package/lib/commonjs/ui/styles/theme.js +148 -0
  90. package/lib/commonjs/ui/styles/theme.js.map +1 -0
  91. package/lib/commonjs/ui/utils/conversations.js +125 -0
  92. package/lib/commonjs/ui/utils/conversations.js.map +1 -0
  93. package/lib/commonjs/ui/utils/html.js +44 -0
  94. package/lib/commonjs/ui/utils/html.js.map +1 -0
  95. package/lib/commonjs/ui/utils/native-gradient.js +65 -0
  96. package/lib/commonjs/ui/utils/native-gradient.js.map +1 -0
  97. package/lib/commonjs/ui/utils/rtl.js +56 -0
  98. package/lib/commonjs/ui/utils/rtl.js.map +1 -0
  99. package/lib/commonjs/ui/utils/safe-url.js +67 -0
  100. package/lib/commonjs/ui/utils/safe-url.js.map +1 -0
  101. package/lib/module/agent-ui-blocks.js +152 -0
  102. package/lib/module/agent-ui-blocks.js.map +1 -0
  103. package/lib/module/api/client.js +261 -0
  104. package/lib/module/api/client.js.map +1 -0
  105. package/lib/module/api/realtime.js +189 -0
  106. package/lib/module/api/realtime.js.map +1 -0
  107. package/lib/module/api/sse-parser.js +53 -0
  108. package/lib/module/api/sse-parser.js.map +1 -0
  109. package/lib/module/controller.js +19 -0
  110. package/lib/module/controller.js.map +1 -0
  111. package/lib/module/device-id.js +69 -0
  112. package/lib/module/device-id.js.map +1 -0
  113. package/lib/module/events.js +44 -0
  114. package/lib/module/events.js.map +1 -0
  115. package/lib/module/i18n.js +99 -0
  116. package/lib/module/i18n.js.map +1 -0
  117. package/lib/module/index.js +55 -0
  118. package/lib/module/index.js.map +1 -0
  119. package/lib/module/locales.js +80 -0
  120. package/lib/module/locales.js.map +1 -0
  121. package/lib/module/package.json +1 -0
  122. package/lib/module/push/push-notifications.js +204 -0
  123. package/lib/module/push/push-notifications.js.map +1 -0
  124. package/lib/module/state/use-widget-state.js +18 -0
  125. package/lib/module/state/use-widget-state.js.map +1 -0
  126. package/lib/module/state/widget-store.js +1677 -0
  127. package/lib/module/state/widget-store.js.map +1 -0
  128. package/lib/module/storage.js +141 -0
  129. package/lib/module/storage.js.map +1 -0
  130. package/lib/module/types.js +40 -0
  131. package/lib/module/types.js.map +1 -0
  132. package/lib/module/ui/WidgetProvider.js +400 -0
  133. package/lib/module/ui/WidgetProvider.js.map +1 -0
  134. package/lib/module/ui/components/AgentUiBlocks.js +857 -0
  135. package/lib/module/ui/components/AgentUiBlocks.js.map +1 -0
  136. package/lib/module/ui/components/Avatar.js +71 -0
  137. package/lib/module/ui/components/Avatar.js.map +1 -0
  138. package/lib/module/ui/components/ConversationRow.js +150 -0
  139. package/lib/module/ui/components/ConversationRow.js.map +1 -0
  140. package/lib/module/ui/components/ErrorBoundary.js +39 -0
  141. package/lib/module/ui/components/ErrorBoundary.js.map +1 -0
  142. package/lib/module/ui/components/Gradient.js +165 -0
  143. package/lib/module/ui/components/Gradient.js.map +1 -0
  144. package/lib/module/ui/components/Launcher.js +121 -0
  145. package/lib/module/ui/components/Launcher.js.map +1 -0
  146. package/lib/module/ui/components/Markdown.js +253 -0
  147. package/lib/module/ui/components/Markdown.js.map +1 -0
  148. package/lib/module/ui/components/OutboundMessageCard.js +153 -0
  149. package/lib/module/ui/components/OutboundMessageCard.js.map +1 -0
  150. package/lib/module/ui/components/WidgetPanel.js +127 -0
  151. package/lib/module/ui/components/WidgetPanel.js.map +1 -0
  152. package/lib/module/ui/components/icons.js +370 -0
  153. package/lib/module/ui/components/icons.js.map +1 -0
  154. package/lib/module/ui/hooks/use-keyboard-overlap.js +109 -0
  155. package/lib/module/ui/hooks/use-keyboard-overlap.js.map +1 -0
  156. package/lib/module/ui/hooks/use-reduce-motion.js +34 -0
  157. package/lib/module/ui/hooks/use-reduce-motion.js.map +1 -0
  158. package/lib/module/ui/hooks/use-widget-insets.js +37 -0
  159. package/lib/module/ui/hooks/use-widget-insets.js.map +1 -0
  160. package/lib/module/ui/screens/chat/ChatView.js +586 -0
  161. package/lib/module/ui/screens/chat/ChatView.js.map +1 -0
  162. package/lib/module/ui/screens/chat/ChatView.styles.js +358 -0
  163. package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -0
  164. package/lib/module/ui/screens/chat/ChatView.types.js +4 -0
  165. package/lib/module/ui/screens/chat/ChatView.types.js.map +1 -0
  166. package/lib/module/ui/screens/conversations/ConversationsList.js +146 -0
  167. package/lib/module/ui/screens/conversations/ConversationsList.js.map +1 -0
  168. package/lib/module/ui/screens/conversations/ConversationsList.styles.js +114 -0
  169. package/lib/module/ui/screens/conversations/ConversationsList.styles.js.map +1 -0
  170. package/lib/module/ui/screens/conversations/ConversationsList.types.js +4 -0
  171. package/lib/module/ui/screens/conversations/ConversationsList.types.js.map +1 -0
  172. package/lib/module/ui/screens/home/HomeView.js +332 -0
  173. package/lib/module/ui/screens/home/HomeView.js.map +1 -0
  174. package/lib/module/ui/screens/home/HomeView.styles.js +242 -0
  175. package/lib/module/ui/screens/home/HomeView.styles.js.map +1 -0
  176. package/lib/module/ui/screens/home/HomeView.types.js +4 -0
  177. package/lib/module/ui/screens/home/HomeView.types.js.map +1 -0
  178. package/lib/module/ui/screens/home/greeting.js +44 -0
  179. package/lib/module/ui/screens/home/greeting.js.map +1 -0
  180. package/lib/module/ui/screens/pre-chat/PreChatForm.js +225 -0
  181. package/lib/module/ui/screens/pre-chat/PreChatForm.js.map +1 -0
  182. package/lib/module/ui/screens/pre-chat/PreChatForm.styles.js +121 -0
  183. package/lib/module/ui/screens/pre-chat/PreChatForm.styles.js.map +1 -0
  184. package/lib/module/ui/screens/pre-chat/PreChatForm.types.js +4 -0
  185. package/lib/module/ui/screens/pre-chat/PreChatForm.types.js.map +1 -0
  186. package/lib/module/ui/styles/global.js +51 -0
  187. package/lib/module/ui/styles/global.js.map +1 -0
  188. package/lib/module/ui/styles/theme.js +137 -0
  189. package/lib/module/ui/styles/theme.js.map +1 -0
  190. package/lib/module/ui/utils/conversations.js +115 -0
  191. package/lib/module/ui/utils/conversations.js.map +1 -0
  192. package/lib/module/ui/utils/html.js +39 -0
  193. package/lib/module/ui/utils/html.js.map +1 -0
  194. package/lib/module/ui/utils/native-gradient.js +60 -0
  195. package/lib/module/ui/utils/native-gradient.js.map +1 -0
  196. package/lib/module/ui/utils/rtl.js +49 -0
  197. package/lib/module/ui/utils/rtl.js.map +1 -0
  198. package/lib/module/ui/utils/safe-url.js +59 -0
  199. package/lib/module/ui/utils/safe-url.js.map +1 -0
  200. package/lib/typescript/commonjs/agent-ui-blocks.d.ts +20 -0
  201. package/lib/typescript/commonjs/agent-ui-blocks.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/api/client.d.ts +115 -0
  203. package/lib/typescript/commonjs/api/client.d.ts.map +1 -0
  204. package/lib/typescript/commonjs/api/realtime.d.ts +39 -0
  205. package/lib/typescript/commonjs/api/realtime.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/api/sse-parser.d.ts +13 -0
  207. package/lib/typescript/commonjs/api/sse-parser.d.ts.map +1 -0
  208. package/lib/typescript/commonjs/controller.d.ts +15 -0
  209. package/lib/typescript/commonjs/controller.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/device-id.d.ts +15 -0
  211. package/lib/typescript/commonjs/device-id.d.ts.map +1 -0
  212. package/lib/typescript/commonjs/events.d.ts +41 -0
  213. package/lib/typescript/commonjs/events.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/i18n.d.ts +78 -0
  215. package/lib/typescript/commonjs/i18n.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/index.d.ts +103 -0
  217. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  218. package/lib/typescript/commonjs/locales.d.ts +18 -0
  219. package/lib/typescript/commonjs/locales.d.ts.map +1 -0
  220. package/lib/typescript/commonjs/package.json +1 -0
  221. package/lib/typescript/commonjs/push/push-notifications.d.ts +71 -0
  222. package/lib/typescript/commonjs/push/push-notifications.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/state/use-widget-state.d.ts +10 -0
  224. package/lib/typescript/commonjs/state/use-widget-state.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/state/widget-store.d.ts +227 -0
  226. package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/storage.d.ts +42 -0
  228. package/lib/typescript/commonjs/storage.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/types.d.ts +391 -0
  230. package/lib/typescript/commonjs/types.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/ui/WidgetProvider.d.ts +15 -0
  232. package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -0
  233. package/lib/typescript/commonjs/ui/components/AgentUiBlocks.d.ts +27 -0
  234. package/lib/typescript/commonjs/ui/components/AgentUiBlocks.d.ts.map +1 -0
  235. package/lib/typescript/commonjs/ui/components/Avatar.d.ts +19 -0
  236. package/lib/typescript/commonjs/ui/components/Avatar.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts +26 -0
  238. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/ui/components/ErrorBoundary.d.ts +27 -0
  240. package/lib/typescript/commonjs/ui/components/ErrorBoundary.d.ts.map +1 -0
  241. package/lib/typescript/commonjs/ui/components/Gradient.d.ts +33 -0
  242. package/lib/typescript/commonjs/ui/components/Gradient.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/ui/components/Launcher.d.ts +18 -0
  244. package/lib/typescript/commonjs/ui/components/Launcher.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/ui/components/Markdown.d.ts +19 -0
  246. package/lib/typescript/commonjs/ui/components/Markdown.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/ui/components/OutboundMessageCard.d.ts +20 -0
  248. package/lib/typescript/commonjs/ui/components/OutboundMessageCard.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/ui/components/WidgetPanel.d.ts +26 -0
  250. package/lib/typescript/commonjs/ui/components/WidgetPanel.d.ts.map +1 -0
  251. package/lib/typescript/commonjs/ui/components/icons.d.ts +38 -0
  252. package/lib/typescript/commonjs/ui/components/icons.d.ts.map +1 -0
  253. package/lib/typescript/commonjs/ui/hooks/use-keyboard-overlap.d.ts +33 -0
  254. package/lib/typescript/commonjs/ui/hooks/use-keyboard-overlap.d.ts.map +1 -0
  255. package/lib/typescript/commonjs/ui/hooks/use-reduce-motion.d.ts +11 -0
  256. package/lib/typescript/commonjs/ui/hooks/use-reduce-motion.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/ui/hooks/use-widget-insets.d.ts +16 -0
  258. package/lib/typescript/commonjs/ui/hooks/use-widget-insets.d.ts.map +1 -0
  259. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts +11 -0
  260. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -0
  261. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +349 -0
  262. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -0
  263. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +48 -0
  264. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -0
  265. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts +10 -0
  266. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts.map +1 -0
  267. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.styles.d.ts +113 -0
  268. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.styles.d.ts.map +1 -0
  269. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts +31 -0
  270. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -0
  271. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts +17 -0
  272. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts +227 -0
  274. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts +40 -0
  276. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/ui/screens/home/greeting.d.ts +19 -0
  278. package/lib/typescript/commonjs/ui/screens/home/greeting.d.ts.map +1 -0
  279. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.d.ts +7 -0
  280. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.styles.d.ts +115 -0
  282. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.styles.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.types.d.ts +20 -0
  284. package/lib/typescript/commonjs/ui/screens/pre-chat/PreChatForm.types.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/ui/styles/global.d.ts +46 -0
  286. package/lib/typescript/commonjs/ui/styles/global.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/ui/styles/theme.d.ts +103 -0
  288. package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +1 -0
  289. package/lib/typescript/commonjs/ui/utils/conversations.d.ts +41 -0
  290. package/lib/typescript/commonjs/ui/utils/conversations.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/ui/utils/html.d.ts +10 -0
  292. package/lib/typescript/commonjs/ui/utils/html.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/ui/utils/native-gradient.d.ts +61 -0
  294. package/lib/typescript/commonjs/ui/utils/native-gradient.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/ui/utils/rtl.d.ts +33 -0
  296. package/lib/typescript/commonjs/ui/utils/rtl.d.ts.map +1 -0
  297. package/lib/typescript/commonjs/ui/utils/safe-url.d.ts +21 -0
  298. package/lib/typescript/commonjs/ui/utils/safe-url.d.ts.map +1 -0
  299. package/lib/typescript/module/agent-ui-blocks.d.ts +20 -0
  300. package/lib/typescript/module/agent-ui-blocks.d.ts.map +1 -0
  301. package/lib/typescript/module/api/client.d.ts +115 -0
  302. package/lib/typescript/module/api/client.d.ts.map +1 -0
  303. package/lib/typescript/module/api/realtime.d.ts +39 -0
  304. package/lib/typescript/module/api/realtime.d.ts.map +1 -0
  305. package/lib/typescript/module/api/sse-parser.d.ts +13 -0
  306. package/lib/typescript/module/api/sse-parser.d.ts.map +1 -0
  307. package/lib/typescript/module/controller.d.ts +15 -0
  308. package/lib/typescript/module/controller.d.ts.map +1 -0
  309. package/lib/typescript/module/device-id.d.ts +15 -0
  310. package/lib/typescript/module/device-id.d.ts.map +1 -0
  311. package/lib/typescript/module/events.d.ts +41 -0
  312. package/lib/typescript/module/events.d.ts.map +1 -0
  313. package/lib/typescript/module/i18n.d.ts +78 -0
  314. package/lib/typescript/module/i18n.d.ts.map +1 -0
  315. package/lib/typescript/module/index.d.ts +103 -0
  316. package/lib/typescript/module/index.d.ts.map +1 -0
  317. package/lib/typescript/module/locales.d.ts +18 -0
  318. package/lib/typescript/module/locales.d.ts.map +1 -0
  319. package/lib/typescript/module/package.json +1 -0
  320. package/lib/typescript/module/push/push-notifications.d.ts +71 -0
  321. package/lib/typescript/module/push/push-notifications.d.ts.map +1 -0
  322. package/lib/typescript/module/state/use-widget-state.d.ts +10 -0
  323. package/lib/typescript/module/state/use-widget-state.d.ts.map +1 -0
  324. package/lib/typescript/module/state/widget-store.d.ts +227 -0
  325. package/lib/typescript/module/state/widget-store.d.ts.map +1 -0
  326. package/lib/typescript/module/storage.d.ts +42 -0
  327. package/lib/typescript/module/storage.d.ts.map +1 -0
  328. package/lib/typescript/module/types.d.ts +391 -0
  329. package/lib/typescript/module/types.d.ts.map +1 -0
  330. package/lib/typescript/module/ui/WidgetProvider.d.ts +15 -0
  331. package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -0
  332. package/lib/typescript/module/ui/components/AgentUiBlocks.d.ts +27 -0
  333. package/lib/typescript/module/ui/components/AgentUiBlocks.d.ts.map +1 -0
  334. package/lib/typescript/module/ui/components/Avatar.d.ts +19 -0
  335. package/lib/typescript/module/ui/components/Avatar.d.ts.map +1 -0
  336. package/lib/typescript/module/ui/components/ConversationRow.d.ts +26 -0
  337. package/lib/typescript/module/ui/components/ConversationRow.d.ts.map +1 -0
  338. package/lib/typescript/module/ui/components/ErrorBoundary.d.ts +27 -0
  339. package/lib/typescript/module/ui/components/ErrorBoundary.d.ts.map +1 -0
  340. package/lib/typescript/module/ui/components/Gradient.d.ts +33 -0
  341. package/lib/typescript/module/ui/components/Gradient.d.ts.map +1 -0
  342. package/lib/typescript/module/ui/components/Launcher.d.ts +18 -0
  343. package/lib/typescript/module/ui/components/Launcher.d.ts.map +1 -0
  344. package/lib/typescript/module/ui/components/Markdown.d.ts +19 -0
  345. package/lib/typescript/module/ui/components/Markdown.d.ts.map +1 -0
  346. package/lib/typescript/module/ui/components/OutboundMessageCard.d.ts +20 -0
  347. package/lib/typescript/module/ui/components/OutboundMessageCard.d.ts.map +1 -0
  348. package/lib/typescript/module/ui/components/WidgetPanel.d.ts +26 -0
  349. package/lib/typescript/module/ui/components/WidgetPanel.d.ts.map +1 -0
  350. package/lib/typescript/module/ui/components/icons.d.ts +38 -0
  351. package/lib/typescript/module/ui/components/icons.d.ts.map +1 -0
  352. package/lib/typescript/module/ui/hooks/use-keyboard-overlap.d.ts +33 -0
  353. package/lib/typescript/module/ui/hooks/use-keyboard-overlap.d.ts.map +1 -0
  354. package/lib/typescript/module/ui/hooks/use-reduce-motion.d.ts +11 -0
  355. package/lib/typescript/module/ui/hooks/use-reduce-motion.d.ts.map +1 -0
  356. package/lib/typescript/module/ui/hooks/use-widget-insets.d.ts +16 -0
  357. package/lib/typescript/module/ui/hooks/use-widget-insets.d.ts.map +1 -0
  358. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts +11 -0
  359. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -0
  360. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +349 -0
  361. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -0
  362. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +48 -0
  363. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -0
  364. package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts +10 -0
  365. package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts.map +1 -0
  366. package/lib/typescript/module/ui/screens/conversations/ConversationsList.styles.d.ts +113 -0
  367. package/lib/typescript/module/ui/screens/conversations/ConversationsList.styles.d.ts.map +1 -0
  368. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts +31 -0
  369. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -0
  370. package/lib/typescript/module/ui/screens/home/HomeView.d.ts +17 -0
  371. package/lib/typescript/module/ui/screens/home/HomeView.d.ts.map +1 -0
  372. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts +227 -0
  373. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts.map +1 -0
  374. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts +40 -0
  375. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts.map +1 -0
  376. package/lib/typescript/module/ui/screens/home/greeting.d.ts +19 -0
  377. package/lib/typescript/module/ui/screens/home/greeting.d.ts.map +1 -0
  378. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.d.ts +7 -0
  379. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.d.ts.map +1 -0
  380. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.styles.d.ts +115 -0
  381. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.styles.d.ts.map +1 -0
  382. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.types.d.ts +20 -0
  383. package/lib/typescript/module/ui/screens/pre-chat/PreChatForm.types.d.ts.map +1 -0
  384. package/lib/typescript/module/ui/styles/global.d.ts +46 -0
  385. package/lib/typescript/module/ui/styles/global.d.ts.map +1 -0
  386. package/lib/typescript/module/ui/styles/theme.d.ts +103 -0
  387. package/lib/typescript/module/ui/styles/theme.d.ts.map +1 -0
  388. package/lib/typescript/module/ui/utils/conversations.d.ts +41 -0
  389. package/lib/typescript/module/ui/utils/conversations.d.ts.map +1 -0
  390. package/lib/typescript/module/ui/utils/html.d.ts +10 -0
  391. package/lib/typescript/module/ui/utils/html.d.ts.map +1 -0
  392. package/lib/typescript/module/ui/utils/native-gradient.d.ts +61 -0
  393. package/lib/typescript/module/ui/utils/native-gradient.d.ts.map +1 -0
  394. package/lib/typescript/module/ui/utils/rtl.d.ts +33 -0
  395. package/lib/typescript/module/ui/utils/rtl.d.ts.map +1 -0
  396. package/lib/typescript/module/ui/utils/safe-url.d.ts +21 -0
  397. package/lib/typescript/module/ui/utils/safe-url.d.ts.map +1 -0
  398. package/metro.js +40 -0
  399. package/package.json +116 -0
  400. package/src/agent-ui-blocks.ts +302 -0
  401. package/src/api/client.ts +332 -0
  402. package/src/api/realtime.ts +225 -0
  403. package/src/api/sse-parser.ts +51 -0
  404. package/src/controller.ts +20 -0
  405. package/src/device-id.ts +71 -0
  406. package/src/events.ts +74 -0
  407. package/src/i18n.ts +114 -0
  408. package/src/index.tsx +199 -0
  409. package/src/locales.ts +80 -0
  410. package/src/push/push-notifications.ts +254 -0
  411. package/src/state/use-widget-state.ts +20 -0
  412. package/src/state/widget-store.ts +1815 -0
  413. package/src/storage.ts +153 -0
  414. package/src/types.ts +445 -0
  415. package/src/ui/WidgetProvider.tsx +434 -0
  416. package/src/ui/components/AgentUiBlocks.tsx +912 -0
  417. package/src/ui/components/Avatar.tsx +86 -0
  418. package/src/ui/components/ConversationRow.tsx +163 -0
  419. package/src/ui/components/ErrorBoundary.tsx +49 -0
  420. package/src/ui/components/Gradient.tsx +165 -0
  421. package/src/ui/components/Launcher.tsx +128 -0
  422. package/src/ui/components/Markdown.tsx +291 -0
  423. package/src/ui/components/OutboundMessageCard.tsx +154 -0
  424. package/src/ui/components/WidgetPanel.tsx +133 -0
  425. package/src/ui/components/icons.tsx +315 -0
  426. package/src/ui/hooks/use-keyboard-overlap.ts +134 -0
  427. package/src/ui/hooks/use-reduce-motion.ts +39 -0
  428. package/src/ui/hooks/use-widget-insets.ts +44 -0
  429. package/src/ui/screens/chat/ChatView.styles.ts +357 -0
  430. package/src/ui/screens/chat/ChatView.tsx +690 -0
  431. package/src/ui/screens/chat/ChatView.types.ts +46 -0
  432. package/src/ui/screens/conversations/ConversationsList.styles.ts +111 -0
  433. package/src/ui/screens/conversations/ConversationsList.tsx +144 -0
  434. package/src/ui/screens/conversations/ConversationsList.types.ts +33 -0
  435. package/src/ui/screens/home/HomeView.styles.ts +246 -0
  436. package/src/ui/screens/home/HomeView.tsx +336 -0
  437. package/src/ui/screens/home/HomeView.types.ts +42 -0
  438. package/src/ui/screens/home/greeting.ts +50 -0
  439. package/src/ui/screens/pre-chat/PreChatForm.styles.ts +120 -0
  440. package/src/ui/screens/pre-chat/PreChatForm.tsx +221 -0
  441. package/src/ui/screens/pre-chat/PreChatForm.types.ts +22 -0
  442. package/src/ui/styles/global.ts +50 -0
  443. package/src/ui/styles/theme.ts +155 -0
  444. package/src/ui/utils/conversations.ts +122 -0
  445. package/src/ui/utils/html.ts +58 -0
  446. package/src/ui/utils/native-gradient.ts +60 -0
  447. package/src/ui/utils/rtl.ts +43 -0
  448. package/src/ui/utils/safe-url.ts +63 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Panel chrome: the colored header (with the assigned agent) and the bottom
3
+ * space switcher. Port of `client/src/widget/components/WidgetPanel.tsx`; the
4
+ * fixed-size floating card becomes a full-height sheet because the RN host is
5
+ * a modal, not an iframe pinned to a corner.
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { WidgetSpace, WidgetSpaceType } from '../../types';
9
+ interface WidgetPanelProps {
10
+ color: string;
11
+ children: ReactNode;
12
+ activeTab: WidgetSpaceType;
13
+ onTabChange: (tab: WidgetSpaceType) => void;
14
+ showTabs: boolean;
15
+ spaces: WidgetSpace[];
16
+ /** Messages received while the panel sat on another surface. */
17
+ unreadCount?: number;
18
+ labels: {
19
+ home: string;
20
+ messages: string;
21
+ unread: string;
22
+ };
23
+ }
24
+ export declare function WidgetPanel({ color, children, activeTab, onTabChange, showTabs, spaces, unreadCount, labels, }: WidgetPanelProps): import("react").JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=WidgetPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/WidgetPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAahE,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAe,EACf,MAAM,GACP,EAAE,gBAAgB,+BA4ClB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Geometric icons drawn with plain Views.
3
+ *
4
+ * The library ships zero native dependencies, so `react-native-svg` is off the
5
+ * table; every glyph here is a rotated border or triangle, which renders
6
+ * identically on both platforms and scales with the `size` prop.
7
+ */
8
+ import { type ViewStyle } from 'react-native';
9
+ interface IconProps {
10
+ size?: number;
11
+ color?: string;
12
+ style?: ViewStyle;
13
+ }
14
+ /** Two crossed bars. */
15
+ export declare function CloseIcon({ size, color, style }: IconProps): import("react").JSX.Element;
16
+ type ChevronDirection = 'left' | 'right' | 'up' | 'down';
17
+ /** A square with two adjacent borders, rotated into an arrow head. */
18
+ export declare function ChevronIcon({ size, color, direction, style, }: IconProps & {
19
+ direction?: ChevronDirection;
20
+ }): import("react").JSX.Element;
21
+ /** Arrow with a shaft — used for the "start a conversation" affordance. */
22
+ export declare function ArrowRightIcon({ size, color, style }: IconProps): import("react").JSX.Element;
23
+ /** Right-pointing triangle for the send button. */
24
+ /** Upward arrow — the send affordance inside the composer's round button. */
25
+ export declare function ArrowUpIcon({ size, color, style }: IconProps): import("react").JSX.Element;
26
+ /** Rounded speech bubble with a tail. */
27
+ export declare function ChatIcon({ size, color, style }: IconProps): import("react").JSX.Element;
28
+ /** Outlined speech bubble — the Messages tab + empty state. */
29
+ export declare function ChatOutlineIcon({ size, color, style }: IconProps): import("react").JSX.Element;
30
+ /** House outline — the Home tab. */
31
+ export declare function HomeIcon({ size, color, style }: IconProps): import("react").JSX.Element;
32
+ /** Person glyph for conversations with no assigned agent. */
33
+ export declare function PersonIcon({ size, color, style }: IconProps): import("react").JSX.Element;
34
+ /** Circle-with-bang used on the offline notice. */
35
+ export declare function AlertIcon({ size, color, style }: IconProps): import("react").JSX.Element;
36
+ export declare function PaperclipIcon({ size, color, style }: IconProps): import("react").JSX.Element;
37
+ export {};
38
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIhE,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAwB;AACxB,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,KAAyB,EAAE,KAAK,EAAE,EAAE,SAAS,+BAcnF;AAED,KAAK,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AASzD,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,EAC1B,IAAS,EACT,KAAyB,EACzB,SAAkB,EAClB,KAAK,GACN,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,gBAAgB,CAAA;CAAE,+BAgB9C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,EAAE,IAAS,EAAE,KAAyB,EAAE,KAAK,EAAE,EAAE,SAAS,+BA2BxF;AAED,mDAAmD;AACnD,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,EAAE,IAAS,EAAE,KAAqB,EAAE,KAAK,EAAE,EAAE,SAAS,+BA2BjF;AAED,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,EAAE,IAAS,EAAE,KAAqB,EAAE,KAAK,EAAE,EAAE,SAAS,+BA4B9E;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,EAAE,IAAS,EAAE,KAA0B,EAAE,KAAK,EAAE,EAAE,SAAS,+BA6B1F;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,EAAE,IAAS,EAAE,KAA0B,EAAE,KAAK,EAAE,EAAE,SAAS,+BA6BnF;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,EAAE,IAAS,EAAE,KAAqB,EAAE,KAAK,EAAE,EAAE,SAAS,+BA8BhF;AAED,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,KAA2B,EAAE,KAAK,EAAE,EAAE,SAAS,+BA+BrF;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAS,EAAE,KAAyB,EAAE,KAAK,EAAE,EAAE,SAAS,+BAgBvF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * How far the keyboard covers the widget panel, in dp.
3
+ *
4
+ * The panel is a `<Modal>` that reaches the bottom of the screen, so the
5
+ * keyboard's own height is the whole story: what it reports is what has to be
6
+ * given back, less whatever the layout has already conceded down there.
7
+ *
8
+ * Measuring the panel does not work, and neither does RN's
9
+ * `<KeyboardAvoidingView>`, which is built on the same measurement. Both read a
10
+ * view's position out of the shadow tree, which places it relative to the
11
+ * surface root, while the keyboard frame arrives in screen coordinates. An iOS
12
+ * page sheet starts some 60dp down the screen, so the two disagree by exactly
13
+ * that much and the composer ends up under the keyboard with only its top
14
+ * border showing.
15
+ *
16
+ * What counts as already conceded differs by platform. iOS never resizes its
17
+ * window for the keyboard, so it is the safe-area padding the panel already
18
+ * keeps below itself. Android modals ask for `adjustResize`, so the window
19
+ * usually gives up the height itself and nothing more is owed; when it does not
20
+ * — an edge-to-edge window stays put — the whole keyboard still is. Either way
21
+ * the difference shows up in the panel's own height, so that is where the
22
+ * shrink is read from. RN already nets the navigation bar out of the height it
23
+ * reports on Android, so the safe-area inset must not come off twice there.
24
+ */
25
+ import type { LayoutChangeEvent } from 'react-native';
26
+ export interface KeyboardOverlap {
27
+ /** Bottom padding, in dp, that keeps the panel clear of the keyboard. */
28
+ overlap: number;
29
+ /** Goes on the padded view; its height is how the Android resize is spotted. */
30
+ onLayout: (event: LayoutChangeEvent) => void;
31
+ }
32
+ export declare function useKeyboardOverlap(enabled: boolean, bottomInset: number): KeyboardOverlap;
33
+ //# sourceMappingURL=use-keyboard-overlap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-keyboard-overlap.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/use-keyboard-overlap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAAoC,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYxF,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAuFzF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Shared reduce-motion check. The query is async, so the answer is cached for
3
+ * the process: the setting rarely changes mid-session, and re-asking on every
4
+ * mount would let the first frame animate before the answer arrives.
5
+ *
6
+ * Returns `null` until resolved, which callers should read as "hold still" —
7
+ * starting an animation and snapping it away a frame later is the flicker this
8
+ * is meant to avoid.
9
+ */
10
+ export declare function useReduceMotion(): boolean | null;
11
+ //# sourceMappingURL=use-reduce-motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-reduce-motion.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/use-reduce-motion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,wBAAgB,eAAe,IAAI,OAAO,GAAG,IAAI,CAuBhD"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Safe-area insets without a hard dependency.
3
+ *
4
+ * RN's own `SafeAreaView` is deprecated (and iOS-only), so we use the host
5
+ * app's `react-native-safe-area-context` when it is installed and fall back to
6
+ * platform constants otherwise. Resolution happens once at module load, so the
7
+ * hook call order is stable across renders.
8
+ */
9
+ export interface WidgetInsets {
10
+ top: number;
11
+ bottom: number;
12
+ left: number;
13
+ right: number;
14
+ }
15
+ export declare function useWidgetInsets(): WidgetInsets;
16
+ //# sourceMappingURL=use-widget-insets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-widget-insets.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/use-widget-insets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAkBD,wBAAgB,eAAe,IAAI,YAAY,CAS9C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Chat thread — message list, typing indicator and composer.
3
+ * Port of `client/src/widget/components/ChatView.tsx`.
4
+ *
5
+ * Mobile differences: older messages load through an explicit "Load earlier
6
+ * messages" control (a scroll-anchored infinite list fights the keyboard), and
7
+ * the composer hides the attach button because v1 has no picker.
8
+ */
9
+ import type { ChatViewProps } from './ChatView.types';
10
+ export declare function ChatView({ messages, loading, hasMoreMessages, agentTyping, color, agentName, agentAvatar, isOnline, locale, prefillText, offlineMessage, labels, onSendMessage, onIdentifyVisitor, onLoadMore, onTyping, onBack, onClose, }: ChatViewProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=ChatView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatView.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/chat/ChatView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmCH,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,WAAW,EACX,KAAK,EACL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAc,EACd,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,aAAa,+BAmTf"}
@@ -0,0 +1,349 @@
1
+ /** Styles for the chat thread: header bar, message list, bubbles and composer. */
2
+ export declare const styles: {
3
+ header: {
4
+ flexDirection: "row";
5
+ alignItems: "center";
6
+ gap: 12;
7
+ paddingHorizontal: 12;
8
+ paddingVertical: 12;
9
+ minHeight: number;
10
+ borderBottomWidth: number;
11
+ };
12
+ headerIdentity: {
13
+ flex: number;
14
+ flexDirection: "row";
15
+ alignItems: "center";
16
+ gap: number;
17
+ minWidth: number;
18
+ };
19
+ avatarWrapper: {
20
+ position: "relative";
21
+ };
22
+ onlineDot: {
23
+ position: "absolute";
24
+ end: number;
25
+ bottom: number;
26
+ width: number;
27
+ height: number;
28
+ borderRadius: number;
29
+ backgroundColor: "#22c55e";
30
+ borderWidth: number;
31
+ borderColor: "#ffffff";
32
+ };
33
+ headerText: {
34
+ flex: number;
35
+ minWidth: number;
36
+ };
37
+ headerName: {
38
+ textAlign: "left" | "right";
39
+ fontSize: 15;
40
+ fontWeight: "700";
41
+ };
42
+ headerStatus: {
43
+ textAlign: "left" | "right";
44
+ fontSize: 12;
45
+ marginTop: number;
46
+ };
47
+ messagesContentEmpty: {
48
+ flexGrow: number;
49
+ justifyContent: "center";
50
+ };
51
+ emptyState: {
52
+ alignItems: "center";
53
+ paddingHorizontal: 20;
54
+ paddingVertical: 24;
55
+ };
56
+ emptyIcon: {
57
+ width: number;
58
+ height: number;
59
+ borderRadius: number;
60
+ alignItems: "center";
61
+ justifyContent: "center";
62
+ marginBottom: 12;
63
+ };
64
+ emptyText: {
65
+ textAlign: "center";
66
+ color: "#9ca3af";
67
+ fontSize: 13;
68
+ lineHeight: number;
69
+ };
70
+ messagesContent: {
71
+ padding: 16;
72
+ paddingBottom: 8;
73
+ gap: 8;
74
+ };
75
+ loadMore: {
76
+ alignSelf: "center";
77
+ paddingVertical: 8;
78
+ paddingHorizontal: 12;
79
+ };
80
+ loadMoreLabel: {
81
+ fontSize: 13;
82
+ fontWeight: "600";
83
+ };
84
+ stateText: {
85
+ textAlign: "center";
86
+ paddingVertical: number;
87
+ paddingHorizontal: 20;
88
+ color: "#9ca3af";
89
+ fontSize: 13;
90
+ };
91
+ messageRow: {
92
+ maxWidth: "100%";
93
+ };
94
+ messageRowLeft: {
95
+ alignItems: "flex-start";
96
+ };
97
+ senderLabel: {
98
+ textAlign: "left" | "right";
99
+ fontSize: 12;
100
+ fontWeight: "600";
101
+ color: "#6b7280";
102
+ marginBottom: number;
103
+ marginStart: 4;
104
+ };
105
+ messageTime: {
106
+ fontSize: number;
107
+ alignSelf: "flex-end";
108
+ marginTop: number;
109
+ };
110
+ daySeparator: {
111
+ flexDirection: "row";
112
+ alignItems: "center";
113
+ gap: 12;
114
+ paddingVertical: 8;
115
+ };
116
+ dayLine: {
117
+ flex: number;
118
+ height: number;
119
+ backgroundColor: "#e5e7eb";
120
+ };
121
+ dayLabel: {
122
+ fontSize: 12;
123
+ fontWeight: "600";
124
+ color: "#9ca3af";
125
+ };
126
+ messageRowRight: {
127
+ alignItems: "flex-end";
128
+ };
129
+ bubble: {
130
+ maxWidth: "85%";
131
+ paddingHorizontal: number;
132
+ paddingVertical: number;
133
+ };
134
+ bubbleVisitor: {
135
+ borderTopLeftRadius: number;
136
+ borderTopRightRadius: number;
137
+ borderBottomLeftRadius: number;
138
+ borderBottomRightRadius: number;
139
+ };
140
+ bubbleVisitorRTL: {
141
+ borderBottomLeftRadius: number;
142
+ borderBottomRightRadius: number;
143
+ };
144
+ bubbleAgent: {
145
+ backgroundColor: "#f3f4f6";
146
+ borderTopLeftRadius: number;
147
+ borderTopRightRadius: number;
148
+ borderBottomRightRadius: number;
149
+ borderBottomLeftRadius: number;
150
+ };
151
+ bubbleAgentRTL: {
152
+ borderBottomRightRadius: number;
153
+ borderBottomLeftRadius: number;
154
+ };
155
+ bubblePending: {
156
+ opacity: number;
157
+ };
158
+ bubbleText: {
159
+ fontSize: 15;
160
+ lineHeight: number;
161
+ };
162
+ attachments: {
163
+ gap: number;
164
+ };
165
+ attachmentsSpaced: {
166
+ marginTop: 8;
167
+ };
168
+ attachmentImage: {
169
+ width: number;
170
+ height: number;
171
+ borderRadius: 10;
172
+ };
173
+ attachmentFile: {
174
+ borderWidth: number;
175
+ borderRadius: 10;
176
+ paddingHorizontal: number;
177
+ paddingVertical: number;
178
+ };
179
+ attachmentName: {
180
+ fontSize: 13;
181
+ };
182
+ failedText: {
183
+ fontSize: 12;
184
+ marginTop: 4;
185
+ };
186
+ systemRow: {
187
+ alignItems: "center";
188
+ paddingVertical: 8;
189
+ };
190
+ systemText: {
191
+ maxWidth: "86%";
192
+ textAlign: "center";
193
+ color: "#6b7280";
194
+ fontSize: 12;
195
+ lineHeight: number;
196
+ };
197
+ typingRow: {
198
+ flexDirection: "row";
199
+ alignItems: "center";
200
+ gap: 8;
201
+ paddingVertical: 8;
202
+ };
203
+ typingBubble: {
204
+ flexDirection: "row";
205
+ alignItems: "center";
206
+ gap: 4;
207
+ backgroundColor: "#f3f4f6";
208
+ borderRadius: number;
209
+ paddingHorizontal: number;
210
+ paddingVertical: 8;
211
+ };
212
+ typingDot: {
213
+ width: number;
214
+ height: number;
215
+ borderRadius: number;
216
+ backgroundColor: "#9ca3af";
217
+ };
218
+ typingLabel: {
219
+ fontSize: 12;
220
+ color: "#6b7280";
221
+ };
222
+ offlineBanner: {
223
+ paddingHorizontal: 12;
224
+ paddingVertical: 8;
225
+ backgroundColor: "#fef3c7";
226
+ borderTopWidth: number;
227
+ borderTopColor: "#fde68a";
228
+ };
229
+ offlineText: {
230
+ fontSize: 12;
231
+ color: "#92400e";
232
+ textAlign: "center";
233
+ };
234
+ composerWrapper: {
235
+ paddingHorizontal: 12;
236
+ paddingTop: 12;
237
+ paddingBottom: 12;
238
+ backgroundColor: "#ffffff";
239
+ borderTopWidth: number;
240
+ borderTopColor: "#e5e7eb";
241
+ };
242
+ composer: {
243
+ flexDirection: "row";
244
+ alignItems: "flex-end";
245
+ gap: 8;
246
+ minHeight: number;
247
+ backgroundColor: "#f3f4f6";
248
+ borderRadius: number;
249
+ borderWidth: number;
250
+ borderColor: "#e5e7eb";
251
+ paddingLeft: 16;
252
+ paddingRight: number;
253
+ paddingVertical: number;
254
+ };
255
+ composerFocused: {
256
+ backgroundColor: "#ffffff";
257
+ };
258
+ input: {
259
+ textAlign: "left" | "right";
260
+ flex: number;
261
+ fontSize: 16;
262
+ lineHeight: number;
263
+ color: "#1a1a1a";
264
+ maxHeight: number;
265
+ paddingTop: number;
266
+ paddingBottom: number;
267
+ padding: number;
268
+ };
269
+ sendButton: {
270
+ width: number;
271
+ height: number;
272
+ borderRadius: number;
273
+ alignItems: "center";
274
+ justifyContent: "center";
275
+ };
276
+ sendButtonDisabled: {
277
+ backgroundColor: "#f3f4f6";
278
+ };
279
+ sendButtonPressed: {
280
+ opacity: number;
281
+ };
282
+ procedureCard: {
283
+ width: "100%";
284
+ maxWidth: number;
285
+ marginTop: 8;
286
+ borderWidth: number;
287
+ borderColor: "#e5e7eb";
288
+ borderRadius: 14;
289
+ backgroundColor: "#ffffff";
290
+ padding: number;
291
+ };
292
+ procedureToggle: {
293
+ flexDirection: "row";
294
+ alignItems: "center";
295
+ justifyContent: "space-between";
296
+ gap: 8;
297
+ borderRadius: 10;
298
+ paddingHorizontal: 12;
299
+ paddingVertical: 12;
300
+ minHeight: number;
301
+ };
302
+ procedureToggleLabel: {
303
+ fontSize: 13;
304
+ fontWeight: "600";
305
+ };
306
+ procedureToggleHint: {
307
+ fontSize: 12;
308
+ opacity: number;
309
+ };
310
+ procedureTitle: {
311
+ fontSize: 13;
312
+ fontWeight: "600";
313
+ color: "#111827";
314
+ marginTop: number;
315
+ marginBottom: 8;
316
+ };
317
+ procedureFields: {
318
+ gap: 8;
319
+ };
320
+ procedureLabel: {
321
+ fontSize: 12;
322
+ color: "#6b7280";
323
+ marginBottom: 4;
324
+ };
325
+ procedureInput: {
326
+ borderWidth: number;
327
+ borderColor: "#d1d5db";
328
+ borderRadius: 10;
329
+ paddingHorizontal: 12;
330
+ paddingVertical: number;
331
+ fontSize: 16;
332
+ color: "#111827";
333
+ minHeight: number;
334
+ };
335
+ procedureSubmit: {
336
+ marginTop: number;
337
+ borderRadius: 10;
338
+ alignItems: "center";
339
+ justifyContent: "center";
340
+ paddingVertical: 12;
341
+ minHeight: number;
342
+ };
343
+ procedureSubmitLabel: {
344
+ color: "#ffffff";
345
+ fontSize: 13;
346
+ fontWeight: "600";
347
+ };
348
+ };
349
+ //# sourceMappingURL=ChatView.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatView.styles.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/chat/ChatView.styles.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAOlF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6VjB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /** Props and label bundle for the chat thread. */
2
+ import type { AgentUiAction, Message, WidgetAttachment } from '../../../types';
3
+ import type { AgentUiBlockLabels } from '../../components/AgentUiBlocks';
4
+ export interface ChatLabels {
5
+ back: string;
6
+ loading: string;
7
+ loadEarlier: string;
8
+ emptyConversation: string;
9
+ messagePlaceholder: string;
10
+ failedToSend: string;
11
+ thinking: string;
12
+ team: string;
13
+ statusOnline: string;
14
+ statusAway: string;
15
+ close: string;
16
+ today: string;
17
+ yesterday: string;
18
+ conversationUpdated: string;
19
+ procedureSend: string;
20
+ procedureSent: string;
21
+ blocks: AgentUiBlockLabels;
22
+ }
23
+ export interface ChatViewProps {
24
+ messages: Message[];
25
+ loading: boolean;
26
+ hasMoreMessages: boolean;
27
+ agentTyping: boolean;
28
+ color: string;
29
+ /** Whoever is handling this thread, once the backend assigns someone. */
30
+ agentName?: string | null;
31
+ agentAvatar?: string | null;
32
+ isOnline: boolean;
33
+ prefillText?: string;
34
+ offlineMessage?: string;
35
+ locale: string;
36
+ labels: ChatLabels;
37
+ onSendMessage: (body: string, attachments?: WidgetAttachment[], action?: AgentUiAction) => void;
38
+ onIdentifyVisitor?: (data: {
39
+ email?: string;
40
+ name?: string;
41
+ phone?: string;
42
+ }) => Promise<void>;
43
+ onLoadMore: () => void;
44
+ onTyping: (isTyping: boolean) => void;
45
+ onBack: () => void;
46
+ onClose: () => void;
47
+ }
48
+ //# sourceMappingURL=ChatView.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatView.types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/chat/ChatView.types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAChG,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Messages space — conversation rows plus the floating "new conversation"
3
+ * pill. Port of `client/src/widget/components/ConversationsList.tsx`.
4
+ *
5
+ * Rows are shared with the Home space's recent preview, and both sort for
6
+ * themselves because the store keeps conversations in arrival order.
7
+ */
8
+ import type { ConversationsListProps } from './ConversationsList.types';
9
+ export declare function ConversationsList({ conversations, unreadByConversation, color, allowNewConversations, showPreviousConversations, isOnline, startConversationLabel, labels, onSelect, onNewConversation, onRefresh, onClose, }: ConversationsListProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=ConversationsList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConversationsList.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/conversations/ConversationsList.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,oBAAoB,EACpB,KAAK,EACL,qBAAqB,EACrB,yBAAyB,EACzB,QAAQ,EACR,sBAAsB,EACtB,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,OAAO,GACR,EAAE,sBAAsB,+BA8GxB"}