@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,586 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Chat thread — message list, typing indicator and composer.
5
+ * Port of `client/src/widget/components/ChatView.tsx`.
6
+ *
7
+ * Mobile differences: older messages load through an explicit "Load earlier
8
+ * messages" control (a scroll-anchored infinite list fights the keyboard), and
9
+ * the composer hides the attach button because v1 has no picker.
10
+ */
11
+
12
+ import { Fragment, useCallback, useEffect, useRef, useState } from 'react';
13
+ import { Animated, Easing, Image, Pressable, ScrollView, Text, TextInput, View } from 'react-native';
14
+ import { formatAgentUiActionMessage, getAgentUiBlocks, getProcedureForm } from "../../../agent-ui-blocks.js";
15
+ import { AgentUiBlocks } from "../../components/AgentUiBlocks.js";
16
+ import { Avatar } from "../../components/Avatar.js";
17
+ import { WidgetErrorBoundary } from "../../components/ErrorBoundary.js";
18
+ import { GradientBackground } from "../../components/Gradient.js";
19
+ import { ArrowUpIcon, ChatOutlineIcon, ChevronIcon } from "../../components/icons.js";
20
+ import { Markdown } from "../../components/Markdown.js";
21
+ import { useReduceMotion } from "../../hooks/use-reduce-motion.js";
22
+ import { globalStyles } from "../../styles/global.js";
23
+ import { contrastingTextColor, mixHex, palette, withAlpha } from "../../styles/theme.js";
24
+ import { formatClockTime, formatDayLabel, isSameDay } from "../../utils/conversations.js";
25
+ import { stripHtml } from "../../utils/html.js";
26
+ import { openExternalUrl } from "../../utils/safe-url.js";
27
+ import { backDirection, isRTL } from "../../utils/rtl.js";
28
+ import { styles } from "./ChatView.styles.js";
29
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
30
+ export function ChatView({
31
+ messages,
32
+ loading,
33
+ hasMoreMessages,
34
+ agentTyping,
35
+ color,
36
+ agentName,
37
+ agentAvatar,
38
+ isOnline,
39
+ locale,
40
+ prefillText,
41
+ offlineMessage,
42
+ labels,
43
+ onSendMessage,
44
+ onIdentifyVisitor,
45
+ onLoadMore,
46
+ onTyping,
47
+ onBack,
48
+ onClose
49
+ }) {
50
+ const [input, setInput] = useState(prefillText || '');
51
+ const [composerFocused, setComposerFocused] = useState(false);
52
+ const reduceMotion = useReduceMotion();
53
+ const scrollRef = useRef(null);
54
+ const typingStopTimer = useRef(null);
55
+ useEffect(() => {
56
+ if (prefillText) setInput(prefillText);
57
+ }, [prefillText]);
58
+ useEffect(() => () => {
59
+ if (typingStopTimer.current) clearTimeout(typingStopTimer.current);
60
+ }, []);
61
+ const scrollToBottom = useCallback((animated = true) => {
62
+ scrollRef.current?.scrollToEnd({
63
+ animated
64
+ });
65
+ }, []);
66
+
67
+ // Land on the newest message the moment the thread opens — notification
68
+ // taps and conversation-list taps both mount this screen. The content-size
69
+ // handler below covers later growth (loads, images, incoming messages).
70
+ useEffect(() => {
71
+ const frame = requestAnimationFrame(() => scrollToBottom(false));
72
+ return () => cancelAnimationFrame(frame);
73
+ }, [scrollToBottom]);
74
+
75
+ // "Load earlier" PREPENDS history; skipping one auto-scroll keeps the reader
76
+ // anchored where they were instead of yanking them back to the bottom.
77
+ const skipNextAutoScroll = useRef(false);
78
+ const handleLoadEarlier = useCallback(() => {
79
+ skipNextAutoScroll.current = true;
80
+ onLoadMore();
81
+ }, [onLoadMore]);
82
+ const handleContentSizeChange = useCallback(() => {
83
+ if (skipNextAutoScroll.current) {
84
+ skipNextAutoScroll.current = false;
85
+ return;
86
+ }
87
+ scrollToBottom(false);
88
+ }, [scrollToBottom]);
89
+
90
+ // The keyboard shortens the thread instead of scrolling it, so whatever was
91
+ // at the bottom — the newest message, an agent form — would slide in behind
92
+ // the composer. Re-pin on every shrink, unanimated, so the list tracks the
93
+ // keyboard as it rises rather than jumping once it lands.
94
+ const viewportHeight = useRef(0);
95
+ const handleViewportLayout = useCallback(event => {
96
+ const {
97
+ height
98
+ } = event.nativeEvent.layout;
99
+ const shrank = viewportHeight.current - height > 1;
100
+ viewportHeight.current = height;
101
+ if (shrank) scrollToBottom(false);
102
+ }, [scrollToBottom]);
103
+ const canSend = input.trim().length > 0;
104
+ const handleSend = () => {
105
+ const trimmed = input.trim();
106
+ if (!trimmed) return;
107
+ setInput('');
108
+ if (typingStopTimer.current) clearTimeout(typingStopTimer.current);
109
+ onTyping(false);
110
+ onSendMessage(trimmed);
111
+ scrollToBottom();
112
+ };
113
+ const handleChangeText = text => {
114
+ setInput(text);
115
+ if (!text.trim()) return;
116
+ onTyping(true);
117
+ if (typingStopTimer.current) clearTimeout(typingStopTimer.current);
118
+ typingStopTimer.current = setTimeout(() => onTyping(false), 2500);
119
+ };
120
+ const handleAgentUiAction = useCallback(async action => {
121
+ if (action.type === 'submit_contact' && onIdentifyVisitor) {
122
+ await onIdentifyVisitor({
123
+ email: stringPayload(action.payload.email),
124
+ name: stringPayload(action.payload.name) || [stringPayload(action.payload.firstName), stringPayload(action.payload.lastName)].filter(Boolean).join(' ') || undefined,
125
+ phone: stringPayload(action.payload.phone)
126
+ });
127
+ }
128
+ onSendMessage(formatAgentUiActionMessage(action), undefined, action);
129
+ scrollToBottom();
130
+ }, [onIdentifyVisitor, onSendMessage, scrollToBottom]);
131
+ const headerTextColor = contrastingTextColor(color);
132
+ const onDarkHeader = headerTextColor === palette.white;
133
+ const isEmptyThread = !loading && messages.length === 0;
134
+ // Two stops off the brand color: flat fill looked like an unstyled block.
135
+ // A non-hex brand color falls through mixHex unchanged and renders solid.
136
+ const headerGradient = [color, mixHex(color, '#000000', 0.16)];
137
+ const headerControl = {
138
+ backgroundColor: withAlpha(headerTextColor, 0.16)
139
+ };
140
+ return /*#__PURE__*/_jsxs(View, {
141
+ style: globalStyles.screen,
142
+ children: [/*#__PURE__*/_jsxs(GradientBackground, {
143
+ colors: headerGradient,
144
+ style: [styles.header, {
145
+ borderBottomColor: mixHex(color, '#000000', 0.26)
146
+ }],
147
+ children: [/*#__PURE__*/_jsx(Pressable, {
148
+ onPress: onBack,
149
+ accessibilityRole: "button",
150
+ accessibilityLabel: labels.back,
151
+ hitSlop: 12,
152
+ style: ({
153
+ pressed
154
+ }) => [globalStyles.iconButton, headerControl, pressed && globalStyles.pressed],
155
+ children: /*#__PURE__*/_jsx(ChevronIcon, {
156
+ size: 18,
157
+ direction: backDirection(),
158
+ color: headerTextColor
159
+ })
160
+ }), /*#__PURE__*/_jsxs(View, {
161
+ style: styles.headerIdentity,
162
+ children: [/*#__PURE__*/_jsxs(View, {
163
+ style: styles.avatarWrapper,
164
+ children: [/*#__PURE__*/_jsx(Avatar, {
165
+ avatar: agentAvatar,
166
+ name: agentName,
167
+ size: 36,
168
+ translucent: onDarkHeader,
169
+ color: palette.ink
170
+ }), isOnline ? /*#__PURE__*/_jsx(View, {
171
+ style: styles.onlineDot
172
+ }) : null]
173
+ }), /*#__PURE__*/_jsxs(View, {
174
+ style: styles.headerText,
175
+ children: [/*#__PURE__*/_jsx(Text, {
176
+ style: [styles.headerName, {
177
+ color: headerTextColor
178
+ }],
179
+ numberOfLines: 1,
180
+ children: agentName || labels.team
181
+ }), /*#__PURE__*/_jsx(Text, {
182
+ style: [styles.headerStatus, {
183
+ color: withAlpha(headerTextColor, 0.75)
184
+ }],
185
+ numberOfLines: 1,
186
+ children: isOnline ? labels.statusOnline : labels.statusAway
187
+ })]
188
+ })]
189
+ }), /*#__PURE__*/_jsx(Pressable, {
190
+ onPress: onClose,
191
+ accessibilityRole: "button",
192
+ accessibilityLabel: labels.close,
193
+ hitSlop: 12,
194
+ style: ({
195
+ pressed
196
+ }) => [globalStyles.iconButton, headerControl, pressed && globalStyles.pressed],
197
+ children: /*#__PURE__*/_jsx(ChevronIcon, {
198
+ size: 20,
199
+ direction: "down",
200
+ color: headerTextColor
201
+ })
202
+ })]
203
+ }), /*#__PURE__*/_jsxs(ScrollView, {
204
+ ref: scrollRef,
205
+ style: globalStyles.fill,
206
+ contentContainerStyle: [styles.messagesContent, isEmptyThread && styles.messagesContentEmpty],
207
+ keyboardShouldPersistTaps: "handled"
208
+ // Interactive dismissal drags the keyboard down under the finger while
209
+ // the composer stays where the last keyboard event left it, which opens
210
+ // a gap under the thread; on-drag hands us a normal hide event instead.
211
+ ,
212
+ keyboardDismissMode: "on-drag",
213
+ onLayout: handleViewportLayout,
214
+ onContentSizeChange: handleContentSizeChange,
215
+ children: [hasMoreMessages ? /*#__PURE__*/_jsx(Pressable, {
216
+ onPress: handleLoadEarlier,
217
+ accessibilityRole: "button",
218
+ style: styles.loadMore,
219
+ children: /*#__PURE__*/_jsx(Text, {
220
+ style: [styles.loadMoreLabel, {
221
+ color
222
+ }],
223
+ children: loading ? labels.loading : labels.loadEarlier
224
+ })
225
+ }) : null, loading && messages.length === 0 ? /*#__PURE__*/_jsx(Text, {
226
+ style: styles.stateText,
227
+ children: labels.loading
228
+ }) : null, isEmptyThread ? /*#__PURE__*/_jsxs(View, {
229
+ style: styles.emptyState,
230
+ children: [/*#__PURE__*/_jsx(View, {
231
+ style: [styles.emptyIcon, {
232
+ backgroundColor: withAlpha(color, 0.08)
233
+ }],
234
+ children: /*#__PURE__*/_jsx(ChatOutlineIcon, {
235
+ size: 28,
236
+ color: color
237
+ })
238
+ }), /*#__PURE__*/_jsx(Text, {
239
+ style: styles.emptyText,
240
+ children: labels.emptyConversation
241
+ })]
242
+ }) : null, messages.map((message, index) => {
243
+ const previous = index > 0 ? messages[index - 1] : undefined;
244
+ const startsDay = !previous || !isSameDay(message.createdAt, previous.createdAt);
245
+ const isAgentMessage = message.direction !== 'inbound' && message.messageType !== 'system';
246
+ // Name only at the top of a run, the way every messenger does it.
247
+ const startsRun = !previous || previous.direction === 'inbound' || previous.messageType === 'system' || previous.senderName !== message.senderName;
248
+ return /*#__PURE__*/_jsxs(Fragment, {
249
+ children: [startsDay ? /*#__PURE__*/_jsxs(View, {
250
+ style: styles.daySeparator,
251
+ children: [/*#__PURE__*/_jsx(View, {
252
+ style: styles.dayLine
253
+ }), /*#__PURE__*/_jsx(Text, {
254
+ style: styles.dayLabel,
255
+ children: formatDayLabel(message.createdAt, locale, labels)
256
+ }), /*#__PURE__*/_jsx(View, {
257
+ style: styles.dayLine
258
+ })]
259
+ }) : null, /*#__PURE__*/_jsx(WidgetErrorBoundary, {
260
+ fallback: null,
261
+ children: /*#__PURE__*/_jsx(MessageBubble, {
262
+ message: message,
263
+ color: color,
264
+ labels: labels,
265
+ senderLabel: isAgentMessage && (startsRun || startsDay) ? message.senderName || agentName || labels.team : null,
266
+ timeLabel: formatClockTime(message.createdAt, locale),
267
+ onSubmitProcedureForm: shouldShowProcedureForm(messages, message) ? body => onSendMessage(body) : undefined,
268
+ onAgentUiAction: shouldShowAgentUiBlocks(messages, message) ? handleAgentUiAction : undefined
269
+ })
270
+ })]
271
+ }, message.id);
272
+ }), agentTyping ? /*#__PURE__*/_jsxs(View, {
273
+ style: styles.typingRow,
274
+ children: [/*#__PURE__*/_jsxs(View, {
275
+ style: styles.typingBubble,
276
+ children: [/*#__PURE__*/_jsx(TypingDot, {
277
+ index: 0,
278
+ reduceMotion: reduceMotion
279
+ }), /*#__PURE__*/_jsx(TypingDot, {
280
+ index: 1,
281
+ reduceMotion: reduceMotion
282
+ }), /*#__PURE__*/_jsx(TypingDot, {
283
+ index: 2,
284
+ reduceMotion: reduceMotion
285
+ })]
286
+ }), /*#__PURE__*/_jsx(Text, {
287
+ style: styles.typingLabel,
288
+ children: labels.thinking
289
+ })]
290
+ }) : null]
291
+ }), offlineMessage ? /*#__PURE__*/_jsx(View, {
292
+ style: styles.offlineBanner,
293
+ children: /*#__PURE__*/_jsx(Text, {
294
+ style: styles.offlineText,
295
+ children: offlineMessage
296
+ })
297
+ }) : null, /*#__PURE__*/_jsx(View, {
298
+ style: styles.composerWrapper,
299
+ children: /*#__PURE__*/_jsxs(View, {
300
+ style: [styles.composer, composerFocused && styles.composerFocused, composerFocused && {
301
+ borderColor: withAlpha(color, 0.55)
302
+ }],
303
+ children: [/*#__PURE__*/_jsx(TextInput, {
304
+ value: input,
305
+ onChangeText: handleChangeText,
306
+ onFocus: () => setComposerFocused(true),
307
+ onBlur: () => setComposerFocused(false),
308
+ placeholder: labels.messagePlaceholder,
309
+ placeholderTextColor: palette.textSubtle,
310
+ multiline: true,
311
+ style: styles.input,
312
+ accessibilityLabel: labels.messagePlaceholder
313
+ }), /*#__PURE__*/_jsx(Pressable, {
314
+ onPress: handleSend,
315
+ disabled: !canSend,
316
+ accessibilityRole: "button",
317
+ accessibilityState: {
318
+ disabled: !canSend
319
+ },
320
+ hitSlop: 8,
321
+ style: ({
322
+ pressed
323
+ }) => [styles.sendButton, canSend ? {
324
+ backgroundColor: color
325
+ } : styles.sendButtonDisabled, pressed && canSend && styles.sendButtonPressed],
326
+ children: /*#__PURE__*/_jsx(ArrowUpIcon, {
327
+ size: 18,
328
+ color: canSend ? contrastingTextColor(color) : palette.textSubtle
329
+ })
330
+ })]
331
+ })
332
+ })]
333
+ });
334
+ }
335
+ function MessageBubble({
336
+ message,
337
+ color,
338
+ labels,
339
+ senderLabel,
340
+ timeLabel,
341
+ onSubmitProcedureForm,
342
+ onAgentUiAction
343
+ }) {
344
+ if (message.messageType === 'system') {
345
+ const text = message.bodyPlain || stripHtml(message.body || '') || labels.conversationUpdated;
346
+ return /*#__PURE__*/_jsx(View, {
347
+ style: styles.systemRow,
348
+ children: /*#__PURE__*/_jsx(Text, {
349
+ style: styles.systemText,
350
+ children: text
351
+ })
352
+ });
353
+ }
354
+ const isVisitor = message.direction === 'inbound';
355
+ const rtl = isRTL();
356
+ const messageText = message.bodyPlain || stripHtml(message.body || '');
357
+ const hasBody = !!messageText;
358
+ const procedureForm = !isVisitor ? getProcedureForm(message.metadata) : null;
359
+ const agentUiBlocks = !isVisitor ? getAgentUiBlocks(message.metadata) : [];
360
+ const textColor = isVisitor ? palette.white : palette.ink;
361
+ return /*#__PURE__*/_jsxs(View, {
362
+ style: [styles.messageRow, isVisitor ? styles.messageRowRight : styles.messageRowLeft],
363
+ children: [senderLabel ? /*#__PURE__*/_jsx(Text, {
364
+ style: styles.senderLabel,
365
+ children: senderLabel
366
+ }) : null, /*#__PURE__*/_jsxs(View, {
367
+ style: [styles.bubble, isVisitor ? [styles.bubbleVisitor, {
368
+ backgroundColor: color
369
+ }] : styles.bubbleAgent, rtl && (isVisitor ? styles.bubbleVisitorRTL : styles.bubbleAgentRTL), message.status === 'pending' && styles.bubblePending],
370
+ children: [hasBody ? isVisitor ? /*#__PURE__*/_jsx(Text, {
371
+ style: [styles.bubbleText, {
372
+ color: textColor
373
+ }],
374
+ children: messageText
375
+ }) : /*#__PURE__*/_jsx(Markdown, {
376
+ content: messageText,
377
+ color: textColor
378
+ }) : null, message.attachments && message.attachments.length > 0 ? /*#__PURE__*/_jsx(View, {
379
+ style: [styles.attachments, hasBody && styles.attachmentsSpaced],
380
+ children: message.attachments.map(attachment => /*#__PURE__*/_jsx(AttachmentPreview, {
381
+ attachment: attachment,
382
+ isVisitor: isVisitor
383
+ }, attachment.id))
384
+ }) : null, message.status === 'failed' ? /*#__PURE__*/_jsx(Text, {
385
+ style: [styles.failedText, {
386
+ color: isVisitor ? withAlpha(palette.white, 0.7) : palette.danger
387
+ }],
388
+ children: labels.failedToSend
389
+ }) : null, timeLabel ? /*#__PURE__*/_jsx(Text, {
390
+ style: [styles.messageTime, {
391
+ color: isVisitor ? withAlpha(palette.white, 0.7) : palette.textSubtle
392
+ }],
393
+ children: timeLabel
394
+ }) : null]
395
+ }), agentUiBlocks.length > 0 && onAgentUiAction ? /*#__PURE__*/_jsx(AgentUiBlocks, {
396
+ blocks: agentUiBlocks,
397
+ color: color,
398
+ labels: labels.blocks,
399
+ onAction: onAgentUiAction
400
+ }) : null, agentUiBlocks.length === 0 && procedureForm && onSubmitProcedureForm ? /*#__PURE__*/_jsx(ProcedureFieldForm, {
401
+ form: procedureForm,
402
+ color: color,
403
+ labels: labels,
404
+ onSubmit: onSubmitProcedureForm
405
+ }) : null]
406
+ });
407
+ }
408
+ function AttachmentPreview({
409
+ attachment,
410
+ isVisitor
411
+ }) {
412
+ // `url` is empty when the server sent a non-http(s) URL (see resolveUrl).
413
+ const isImage = attachment.contentType?.startsWith('image/') && !!attachment.url;
414
+ const open = () => void openExternalUrl(attachment.url);
415
+ if (isImage) {
416
+ return /*#__PURE__*/_jsx(Pressable, {
417
+ onPress: open,
418
+ accessibilityRole: "imagebutton",
419
+ accessibilityLabel: attachment.name,
420
+ children: /*#__PURE__*/_jsx(Image, {
421
+ source: {
422
+ uri: attachment.url
423
+ },
424
+ style: styles.attachmentImage,
425
+ resizeMode: "cover",
426
+ accessibilityIgnoresInvertColors: true
427
+ })
428
+ });
429
+ }
430
+ return /*#__PURE__*/_jsx(Pressable, {
431
+ onPress: open,
432
+ accessibilityRole: "button",
433
+ style: [styles.attachmentFile, {
434
+ borderColor: isVisitor ? withAlpha(palette.white, 0.35) : palette.border
435
+ }],
436
+ children: /*#__PURE__*/_jsx(Text, {
437
+ style: [styles.attachmentName, {
438
+ color: isVisitor ? palette.white : palette.ink
439
+ }],
440
+ numberOfLines: 1,
441
+ children: attachment.name
442
+ })
443
+ });
444
+ }
445
+ function ProcedureFieldForm({
446
+ form,
447
+ color,
448
+ labels,
449
+ onSubmit
450
+ }) {
451
+ const [values, setValues] = useState({});
452
+ const [submitted, setSubmitted] = useState(false);
453
+ const [expanded, setExpanded] = useState(false);
454
+ const canSubmit = form.fields.every(field => !field.required || values[field.name]?.trim());
455
+ const handleSubmit = () => {
456
+ if (!canSubmit || submitted) return;
457
+ const body = form.fields.map(field => `${field.label}: ${(values[field.name] || '').trim()}`).filter(line => !line.endsWith(':')).join('\n');
458
+ if (!body.trim()) return;
459
+ setSubmitted(true);
460
+ onSubmit(body);
461
+ };
462
+ return /*#__PURE__*/_jsxs(View, {
463
+ style: styles.procedureCard,
464
+ children: [/*#__PURE__*/_jsxs(Pressable, {
465
+ onPress: () => setExpanded(current => !current),
466
+ accessibilityRole: "button",
467
+ accessibilityState: {
468
+ expanded
469
+ },
470
+ style: [styles.procedureToggle, {
471
+ backgroundColor: expanded ? palette.surface : color
472
+ }],
473
+ children: [/*#__PURE__*/_jsx(Text, {
474
+ style: [styles.procedureToggleLabel, {
475
+ color: expanded ? palette.text : palette.white
476
+ }],
477
+ children: submitted ? 'Details sent' : 'Share details'
478
+ }), /*#__PURE__*/_jsx(Text, {
479
+ style: [styles.procedureToggleHint, {
480
+ color: expanded ? palette.text : palette.white
481
+ }],
482
+ children: expanded ? 'Hide' : `${form.fields.length} field${form.fields.length === 1 ? '' : 's'}`
483
+ })]
484
+ }), expanded ? /*#__PURE__*/_jsxs(_Fragment, {
485
+ children: [/*#__PURE__*/_jsx(Text, {
486
+ style: styles.procedureTitle,
487
+ children: form.procedureName || 'Details'
488
+ }), /*#__PURE__*/_jsx(View, {
489
+ style: styles.procedureFields,
490
+ children: form.fields.map(field => /*#__PURE__*/_jsxs(View, {
491
+ children: [/*#__PURE__*/_jsxs(Text, {
492
+ style: styles.procedureLabel,
493
+ children: [field.label, field.required ? ' *' : '']
494
+ }), /*#__PURE__*/_jsx(TextInput, {
495
+ value: values[field.name] || '',
496
+ onChangeText: text => setValues(current => ({
497
+ ...current,
498
+ [field.name]: text
499
+ })),
500
+ placeholder: placeholderForField(field),
501
+ placeholderTextColor: palette.textSubtle,
502
+ editable: !submitted,
503
+ keyboardType: field.type === 'email' ? 'email-address' : field.type === 'phone' ? 'phone-pad' : 'default',
504
+ autoCapitalize: field.type === 'email' ? 'none' : 'sentences',
505
+ style: styles.procedureInput
506
+ })]
507
+ }, field.name))
508
+ }), /*#__PURE__*/_jsx(Pressable, {
509
+ onPress: handleSubmit,
510
+ disabled: !canSubmit || submitted,
511
+ accessibilityRole: "button",
512
+ style: [styles.procedureSubmit, {
513
+ backgroundColor: canSubmit && !submitted ? color : palette.disabled
514
+ }],
515
+ children: /*#__PURE__*/_jsx(Text, {
516
+ style: styles.procedureSubmitLabel,
517
+ children: submitted ? labels.procedureSent : labels.procedureSend
518
+ })
519
+ })]
520
+ }) : null]
521
+ });
522
+ }
523
+ function TypingDot({
524
+ index,
525
+ reduceMotion
526
+ }) {
527
+ const value = useRef(new Animated.Value(0)).current;
528
+ const animating = reduceMotion === false;
529
+ useEffect(() => {
530
+ if (!animating) return undefined;
531
+ // Every dot runs a constant 920ms cycle and only the leading delay
532
+ // differs, so the three hold their phase instead of drifting apart.
533
+ const loop = Animated.loop(Animated.sequence([Animated.delay(index * 140), Animated.timing(value, {
534
+ toValue: 1,
535
+ duration: 320,
536
+ easing: Easing.out(Easing.quad),
537
+ useNativeDriver: true
538
+ }), Animated.timing(value, {
539
+ toValue: 0,
540
+ duration: 320,
541
+ easing: Easing.in(Easing.quad),
542
+ useNativeDriver: true
543
+ }), Animated.delay(280 - index * 140)]));
544
+ loop.start();
545
+ return () => loop.stop();
546
+ }, [animating, index, value]);
547
+ const motionStyle = animating ? {
548
+ opacity: value.interpolate({
549
+ inputRange: [0, 1],
550
+ outputRange: [0.4, 1]
551
+ }),
552
+ transform: [{
553
+ translateY: value.interpolate({
554
+ inputRange: [0, 1],
555
+ outputRange: [0, -4]
556
+ })
557
+ }]
558
+ } : null;
559
+ return /*#__PURE__*/_jsx(Animated.View, {
560
+ style: [styles.typingDot, motionStyle]
561
+ });
562
+ }
563
+ function placeholderForField(field) {
564
+ if (field.type === 'email') return 'name@example.com';
565
+ if (field.type === 'phone') return '+962 7...';
566
+ if (field.type === 'date' || field.type === 'time') return '';
567
+ return field.label;
568
+ }
569
+ function stringPayload(value) {
570
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
571
+ }
572
+ function shouldShowProcedureForm(messages, message) {
573
+ if (message.direction === 'inbound' || !getProcedureForm(message.metadata)) return false;
574
+ return messages.findIndex(candidate => candidate.id === message.id) === messages.length - 1;
575
+ }
576
+
577
+ /** Hide superseded slot pickers so only the newest one stays actionable. */
578
+ function shouldShowAgentUiBlocks(messages, message) {
579
+ const blocks = getAgentUiBlocks(message.metadata);
580
+ if (blocks.length === 0) return false;
581
+ if (!blocks.every(block => block.type === 'appointment_slot_picker')) return true;
582
+ const messageIndex = messages.findIndex(candidate => candidate.id === message.id);
583
+ const laterBlockIds = new Set(messages.slice(messageIndex + 1).flatMap(candidate => getAgentUiBlocks(candidate.metadata)).filter(block => block.type === 'appointment_slot_picker').map(block => block.id));
584
+ return blocks.some(block => !laterBlockIds.has(block.id));
585
+ }
586
+ //# sourceMappingURL=ChatView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","useCallback","useEffect","useRef","useState","Animated","Easing","Image","Pressable","ScrollView","Text","TextInput","View","formatAgentUiActionMessage","getAgentUiBlocks","getProcedureForm","AgentUiBlocks","Avatar","WidgetErrorBoundary","GradientBackground","ArrowUpIcon","ChatOutlineIcon","ChevronIcon","Markdown","useReduceMotion","globalStyles","contrastingTextColor","mixHex","palette","withAlpha","formatClockTime","formatDayLabel","isSameDay","stripHtml","openExternalUrl","backDirection","isRTL","styles","jsx","_jsx","jsxs","_jsxs","_Fragment","ChatView","messages","loading","hasMoreMessages","agentTyping","color","agentName","agentAvatar","isOnline","locale","prefillText","offlineMessage","labels","onSendMessage","onIdentifyVisitor","onLoadMore","onTyping","onBack","onClose","input","setInput","composerFocused","setComposerFocused","reduceMotion","scrollRef","typingStopTimer","current","clearTimeout","scrollToBottom","animated","scrollToEnd","frame","requestAnimationFrame","cancelAnimationFrame","skipNextAutoScroll","handleLoadEarlier","handleContentSizeChange","viewportHeight","handleViewportLayout","event","height","nativeEvent","layout","shrank","canSend","trim","length","handleSend","trimmed","handleChangeText","text","setTimeout","handleAgentUiAction","action","type","email","stringPayload","payload","name","firstName","lastName","filter","Boolean","join","undefined","phone","headerTextColor","onDarkHeader","white","isEmptyThread","headerGradient","headerControl","backgroundColor","style","screen","children","colors","header","borderBottomColor","onPress","accessibilityRole","accessibilityLabel","back","hitSlop","pressed","iconButton","size","direction","headerIdentity","avatarWrapper","avatar","translucent","ink","onlineDot","headerText","headerName","numberOfLines","team","headerStatus","statusOnline","statusAway","close","ref","fill","contentContainerStyle","messagesContent","messagesContentEmpty","keyboardShouldPersistTaps","keyboardDismissMode","onLayout","onContentSizeChange","loadMore","loadMoreLabel","loadEarlier","stateText","emptyState","emptyIcon","emptyText","emptyConversation","map","message","index","previous","startsDay","createdAt","isAgentMessage","messageType","startsRun","senderName","daySeparator","dayLine","dayLabel","fallback","MessageBubble","senderLabel","timeLabel","onSubmitProcedureForm","shouldShowProcedureForm","body","onAgentUiAction","shouldShowAgentUiBlocks","id","typingRow","typingBubble","TypingDot","typingLabel","thinking","offlineBanner","offlineText","composerWrapper","composer","borderColor","value","onChangeText","onFocus","onBlur","placeholder","messagePlaceholder","placeholderTextColor","textSubtle","multiline","disabled","accessibilityState","sendButton","sendButtonDisabled","sendButtonPressed","bodyPlain","conversationUpdated","systemRow","systemText","isVisitor","rtl","messageText","hasBody","procedureForm","metadata","agentUiBlocks","textColor","messageRow","messageRowRight","messageRowLeft","bubble","bubbleVisitor","bubbleAgent","bubbleVisitorRTL","bubbleAgentRTL","status","bubblePending","bubbleText","content","attachments","attachmentsSpaced","attachment","AttachmentPreview","failedText","danger","failedToSend","messageTime","blocks","onAction","ProcedureFieldForm","form","onSubmit","isImage","contentType","startsWith","url","open","source","uri","attachmentImage","resizeMode","accessibilityIgnoresInvertColors","attachmentFile","border","attachmentName","values","setValues","submitted","setSubmitted","expanded","setExpanded","canSubmit","fields","every","field","required","handleSubmit","label","line","endsWith","procedureCard","procedureToggle","surface","procedureToggleLabel","procedureToggleHint","procedureTitle","procedureName","procedureFields","procedureLabel","placeholderForField","editable","keyboardType","autoCapitalize","procedureInput","procedureSubmit","procedureSubmitLabel","procedureSent","procedureSend","Value","animating","loop","sequence","delay","timing","toValue","duration","easing","out","quad","useNativeDriver","in","start","stop","motionStyle","opacity","interpolate","inputRange","outputRange","transform","translateY","typingDot","findIndex","candidate","block","messageIndex","laterBlockIds","Set","slice","flatMap","some","has"],"sourceRoot":"../../../../../src","sources":["ui/screens/chat/ChatView.tsx"],"mappings":"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","ignoreList":[]}