@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,80 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Translations bundled with the SDK.
5
+ *
6
+ * A workspace can still override any key from the dashboard — those win. These
7
+ * exist so a widget running in a supported language is usable out of the box,
8
+ * instead of falling back to English for every string an admin has not filled
9
+ * in by hand.
10
+ *
11
+ * Keys mirror `DEFAULT_LABELS` in `./i18n`; `{token}` placeholders must be kept
12
+ * so word order stays under the translator's control.
13
+ */
14
+
15
+ const ar = {
16
+ back: 'رجوع',
17
+ loading: 'جارٍ التحميل...',
18
+ loadEarlier: 'تحميل الرسائل السابقة',
19
+ emptyConversation: 'أرسل رسالة لبدء المحادثة',
20
+ messagePlaceholder: 'اكتب رسالة...',
21
+ attachFile: 'إرفاق ملف',
22
+ failedToSend: 'تعذر الإرسال',
23
+ thinking: 'يكتب',
24
+ messages: 'الرسائل',
25
+ noMessages: 'لا توجد رسائل بعد',
26
+ historyHidden: 'سجل المحادثات مخفي',
27
+ startBelow: 'ابدأ محادثة من الأسفل',
28
+ preChatTitle: 'قبل أن نبدأ',
29
+ preChatSubtitle: 'أخبرنا قليلاً عنك حتى نتمكن من مساعدتك بشكل أفضل.',
30
+ preChatSkip: 'تخطٍ',
31
+ preChatSubmit: 'ابدأ المحادثة',
32
+ viewPreviousConversations: 'عرض المحادثات السابقة',
33
+ homeRecentTitle: 'الأحدث',
34
+ homeViewAllCount: 'عرض الكل ({count})',
35
+ homeNoConversations: 'ستظهر محادثاتك هنا',
36
+ homeStatusOnline: 'نحن متصلون',
37
+ homeStatusAway: 'نحن غير متصلين',
38
+ unreadBadge: '{count} غير مقروءة',
39
+ team: 'الفريق',
40
+ home: 'الرئيسية',
41
+ close: 'إغلاق',
42
+ retry: 'إعادة المحاولة',
43
+ connectionError: 'تعذر تحميل المحادثة. يرجى المحاولة مرة أخرى.',
44
+ connecting: 'جارٍ توصيلك بالفريق',
45
+ chatUnavailable: 'المحادثة غير متاحة حاليًا.',
46
+ identityVerificationError: 'تعذر التحقق من حسابك. يرجى تسجيل الدخول مرة أخرى.',
47
+ widgetCrashed: 'حدث خطأ ما.',
48
+ // Kept short: these sit in a tight row beside the agent's name.
49
+ timeJustNow: 'الآن',
50
+ timeMinutes: '{count} د',
51
+ timeHours: '{count} س',
52
+ timeDays: '{count} ي',
53
+ timeMonths: '{count} شهر',
54
+ timeYears: '{count} سنة',
55
+ today: 'اليوم',
56
+ yesterday: 'أمس',
57
+ conversationUpdated: 'تم تحديث المحادثة',
58
+ procedureSend: 'إرسال التفاصيل',
59
+ procedureSent: 'تم الإرسال',
60
+ fieldRequired: '{field} مطلوب',
61
+ invalidEmail: 'أدخل بريدًا إلكترونيًا صالحًا',
62
+ working: 'جارٍ العمل...',
63
+ outboundTitle: 'تحديث جديد',
64
+ outboundCta: 'اعرف المزيد',
65
+ dismiss: 'تجاهل',
66
+ blockService: 'خدمة',
67
+ blockProduct: 'منتج',
68
+ blockChooseTime: 'اختر وقتًا',
69
+ blockProfessional: 'الموظف',
70
+ blockPriceOffer: 'عرض سعر'
71
+ };
72
+ export const BUNDLED_TRANSLATIONS = {
73
+ ar
74
+ };
75
+
76
+ /** `ar-JO`, `ar_SA` and `AR` all resolve to the `ar` bundle. */
77
+ export function baseLanguage(locale) {
78
+ return (locale ?? '').split(/[-_]/)[0]?.toLowerCase() ?? '';
79
+ }
80
+ //# sourceMappingURL=locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ar","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","procedureSend","procedureSent","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","BUNDLED_TRANSLATIONS","baseLanguage","locale","split","toLowerCase"],"sourceRoot":"../../src","sources":["locales.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,EAAY,GAAG;EACnBC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,iBAAiB;EAC1BC,WAAW,EAAE,uBAAuB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,kBAAkB,EAAE,eAAe;EACnCC,UAAU,EAAE,WAAW;EACvBC,YAAY,EAAE,cAAc;EAC5BC,QAAQ,EAAE,MAAM;EAChBC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,mBAAmB;EAC/BC,aAAa,EAAE,oBAAoB;EACnCC,UAAU,EAAE,uBAAuB;EACnCC,YAAY,EAAE,aAAa;EAC3BC,eAAe,EAAE,mDAAmD;EACpEC,WAAW,EAAE,MAAM;EACnBC,aAAa,EAAE,eAAe;EAC9BC,yBAAyB,EAAE,uBAAuB;EAClDC,eAAe,EAAE,QAAQ;EACzBC,gBAAgB,EAAE,oBAAoB;EACtCC,mBAAmB,EAAE,oBAAoB;EACzCC,gBAAgB,EAAE,YAAY;EAC9BC,cAAc,EAAE,gBAAgB;EAChCC,WAAW,EAAE,oBAAoB;EACjCC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,gBAAgB;EACvBC,eAAe,EAAE,8CAA8C;EAC/DC,UAAU,EAAE,qBAAqB;EACjCC,eAAe,EAAE,4BAA4B;EAC7CC,yBAAyB,EAAE,mDAAmD;EAC9EC,aAAa,EAAE,aAAa;EAC5B;EACAC,WAAW,EAAE,MAAM;EACnBC,WAAW,EAAE,WAAW;EACxBC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE,WAAW;EACrBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,aAAa;EACxBC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE,mBAAmB;EACxCC,aAAa,EAAE,gBAAgB;EAC/BC,aAAa,EAAE,YAAY;EAC3BC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE,+BAA+B;EAC7CC,OAAO,EAAE,eAAe;EACxBC,aAAa,EAAE,YAAY;EAC3BC,WAAW,EAAE,aAAa;EAC1BC,OAAO,EAAE,OAAO;EAChBC,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,eAAe,EAAE,YAAY;EAC7BC,iBAAiB,EAAE,QAAQ;EAC3BC,eAAe,EAAE;AACnB,CAAC;AAED,OAAO,MAAMC,oBAA8C,GAAG;EAAEvD;AAAG,CAAC;;AAEpE;AACA,OAAO,SAASwD,YAAYA,CAACC,MAAsB,EAAU;EAC3D,OAAO,CAACA,MAAM,IAAI,EAAE,EAAEC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,IAAI,EAAE;AAC7D","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * FCM push notifications — optional.
5
+ *
6
+ * Powered by the HOST app's `@react-native-firebase/messaging` native module,
7
+ * loaded via a dynamic require so the SDK itself stays pure JavaScript. Hosts
8
+ * without Firebase installed get a warn-once no-op; hosts that can't install
9
+ * it can still register a token manually through `RepzoWidget.setPushToken()`.
10
+ *
11
+ * Supports both RNFB API generations: the modular API (`getMessaging()` etc.,
12
+ * the only one left in v26+) and the legacy namespaced `messaging()` factory.
13
+ *
14
+ * The Workstation channel must have its push provider set to FCM — with
15
+ * OneSignal selected these registrations are stored but unused.
16
+ */
17
+
18
+ import { Platform } from 'react-native';
19
+
20
+ /** Version-agnostic view over the host's Firebase messaging module. */
21
+
22
+ function resolveMessaging() {
23
+ try {
24
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
25
+ const mod = require('@react-native-firebase/messaging');
26
+
27
+ // Modular API — the only one in RNFB v26+ (the namespaced default export
28
+ // was removed). Every call takes the messaging instance as its first arg.
29
+ if (typeof mod?.getMessaging === 'function') {
30
+ const instance = mod.getMessaging();
31
+ return {
32
+ requestPermission: () => mod.requestPermission(instance),
33
+ registerDeviceForRemoteMessages: () => typeof mod.registerDeviceForRemoteMessages === 'function' ? mod.registerDeviceForRemoteMessages(instance) : Promise.resolve(),
34
+ getToken: () => mod.getToken(instance),
35
+ onTokenRefresh: cb => mod.onTokenRefresh(instance, cb),
36
+ onNotificationOpenedApp: cb => mod.onNotificationOpenedApp(instance, cb),
37
+ getInitialNotification: () => mod.getInitialNotification(instance)
38
+ };
39
+ }
40
+
41
+ // Legacy namespaced API (RNFB <= v22): default export is a factory.
42
+ const factory = mod?.default ?? mod;
43
+ if (typeof factory !== 'function') return null;
44
+ const instance = factory();
45
+ if (!instance) return null;
46
+ return {
47
+ requestPermission: () => instance.requestPermission?.() ?? Promise.resolve(),
48
+ registerDeviceForRemoteMessages: () => typeof instance.registerDeviceForRemoteMessages === 'function' ? instance.registerDeviceForRemoteMessages() : Promise.resolve(),
49
+ getToken: () => instance.getToken(),
50
+ onTokenRefresh: cb => instance.onTokenRefresh?.(cb),
51
+ onNotificationOpenedApp: cb => instance.onNotificationOpenedApp?.(cb),
52
+ getInitialNotification: () => instance.getInitialNotification?.() ?? Promise.resolve(null)
53
+ };
54
+ } catch {
55
+ return null;
56
+ }
57
+ }
58
+ export class PushManager {
59
+ options = {};
60
+ listenersWired = false;
61
+ lastToken = null;
62
+ manualToken = null;
63
+ warnedMissingModule = false;
64
+
65
+ /** False while signed out — token refreshes must not register anywhere. */
66
+ active = false;
67
+
68
+ /** Registrations still on the wire; unregister() waits for them. */
69
+ inflight = new Set();
70
+ constructor(client, openConversation) {
71
+ this.client = client;
72
+ this.openConversation = openConversation;
73
+ }
74
+
75
+ /** Remember the boot options; actual work happens in start() post-init. */
76
+ configure(options) {
77
+ this.options = options ?? {};
78
+ }
79
+
80
+ /**
81
+ * Called after every successful session init — the widget token is valid
82
+ * from here. Re-running after a login switch re-registers the token under
83
+ * the new identity (the server upsert moves it).
84
+ */
85
+ async start() {
86
+ this.active = true;
87
+ if (this.manualToken) {
88
+ await this.register(this.manualToken);
89
+ }
90
+ if (!this.options.enabled) return;
91
+ const messaging = resolveMessaging();
92
+ if (!messaging) {
93
+ if (!this.warnedMissingModule) {
94
+ this.warnedMissingModule = true;
95
+ console.warn('[repzo-widget] push is enabled but @react-native-firebase/messaging is not installed — ' + 'install it in the app, or provide a token via RepzoWidget.setPushToken()');
96
+ }
97
+ return;
98
+ }
99
+ try {
100
+ if (this.options.requestPermission !== false) {
101
+ // A denial isn't an error: getToken still succeeds, the OS just
102
+ // won't display anything until the user flips the setting.
103
+ await messaging.requestPermission();
104
+ }
105
+ } catch {
106
+ // Permission prompt unavailable (e.g. older Android) — keep going.
107
+ }
108
+
109
+ // Wired once and kept for the app's lifetime — taps must work even while
110
+ // the widget UI is closed, so there is deliberately no teardown.
111
+ if (!this.listenersWired) {
112
+ this.listenersWired = true;
113
+ this.wireTapHandlers(messaging);
114
+ messaging.onTokenRefresh(token => {
115
+ void this.register({
116
+ token
117
+ });
118
+ });
119
+ }
120
+
121
+ // iOS needs the APNs registration before an FCM token exists; RNFB
122
+ // auto-registers by default, this covers hosts that turned that off.
123
+ try {
124
+ await messaging.registerDeviceForRemoteMessages();
125
+ } catch {
126
+ // Already registered, or simulator without push support — getToken
127
+ // decides whether that actually matters.
128
+ }
129
+ try {
130
+ const token = await messaging.getToken();
131
+ if (token) await this.register({
132
+ token
133
+ });
134
+ } catch (error) {
135
+ console.warn('[repzo-widget] push token fetch failed', error);
136
+ }
137
+ }
138
+
139
+ /** Host-supplied token for apps without the Firebase module. */
140
+ async setManualToken(manual) {
141
+ this.manualToken = manual;
142
+ // Before boot (or after logout) it is only remembered; start() sends it.
143
+ if (this.active) await this.register(manual);
144
+ }
145
+
146
+ /**
147
+ * Called by logout with the session's token captured up front: the DELETE
148
+ * is authenticated with it explicitly and never triggers a re-init.
149
+ * Waits for an in-flight registration first so its token is not missed.
150
+ */
151
+ async unregister(authToken) {
152
+ this.active = false;
153
+ await Promise.all([...this.inflight]);
154
+ const token = this.lastToken;
155
+ this.lastToken = null;
156
+ if (!token || !authToken) return;
157
+ try {
158
+ await this.client.removePushToken(token, {
159
+ authToken,
160
+ skipReauth: true
161
+ });
162
+ } catch (error) {
163
+ console.warn('[repzo-widget] push token removal failed', error);
164
+ }
165
+ }
166
+ register(manual) {
167
+ if (!this.active) return Promise.resolve();
168
+ const run = this.client.registerPushToken({
169
+ token: manual.token,
170
+ platform: manual.platform ?? (Platform.OS === 'ios' ? 'ios' : 'android'),
171
+ bundleId: manual.bundleId ?? this.options.bundleId ?? undefined
172
+ }).then(() => {
173
+ this.lastToken = manual.token;
174
+ }, error => {
175
+ console.warn('[repzo-widget] push token registration failed', error);
176
+ }).finally(() => {
177
+ this.inflight.delete(run);
178
+ });
179
+ this.inflight.add(run);
180
+ return run;
181
+ }
182
+ wireTapHandlers(messaging) {
183
+ // Background → tapped: the app was alive, just not in front.
184
+ messaging.onNotificationOpenedApp(remoteMessage => {
185
+ this.handleTap(remoteMessage);
186
+ });
187
+
188
+ // Killed → tapped: the click that launched the app.
189
+ void messaging.getInitialNotification().then(remoteMessage => {
190
+ if (remoteMessage) this.handleTap(remoteMessage);
191
+ }).catch(() => {});
192
+ }
193
+
194
+ /** Only widget pushes are ours — host app notifications pass through. */
195
+ handleTap(remoteMessage) {
196
+ const data = remoteMessage?.data;
197
+ if (data?.document_type !== 'widget_message') return;
198
+ const conversationId = data?.document_id;
199
+ if (typeof conversationId === 'string' && conversationId) {
200
+ this.openConversation(conversationId);
201
+ }
202
+ }
203
+ }
204
+ //# sourceMappingURL=push-notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","resolveMessaging","mod","require","getMessaging","instance","requestPermission","registerDeviceForRemoteMessages","Promise","resolve","getToken","onTokenRefresh","cb","onNotificationOpenedApp","getInitialNotification","factory","default","PushManager","options","listenersWired","lastToken","manualToken","warnedMissingModule","active","inflight","Set","constructor","client","openConversation","configure","start","register","enabled","messaging","console","warn","wireTapHandlers","token","error","setManualToken","manual","unregister","authToken","all","removePushToken","skipReauth","run","registerPushToken","platform","OS","bundleId","undefined","then","finally","delete","add","remoteMessage","handleTap","catch","data","document_type","conversationId","document_id"],"sourceRoot":"../../../src","sources":["push/push-notifications.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * React binding for the store. The store lives in the controller singleton, so
5
+ * the widget keeps its session, SSE stream and unread count even when no
6
+ * component is mounted; this hook only subscribes to it.
7
+ */
8
+
9
+ import { useSyncExternalStore } from 'react';
10
+ import { controller } from "../controller.js";
11
+ export function useWidgetState() {
12
+ const store = controller.store;
13
+ return useSyncExternalStore(store.subscribe, store.getState, store.getState);
14
+ }
15
+ export function useWidgetStore() {
16
+ return controller.store;
17
+ }
18
+ //# sourceMappingURL=use-widget-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSyncExternalStore","controller","useWidgetState","store","subscribe","getState","useWidgetStore"],"sourceRoot":"../../../src","sources":["state/use-widget-state.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,UAAU,QAAQ,kBAAe;AAI1C,OAAO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,KAAK,GAAGF,UAAU,CAACE,KAAK;EAC9B,OAAOH,oBAAoB,CAACG,KAAK,CAACC,SAAS,EAAED,KAAK,CAACE,QAAQ,EAAEF,KAAK,CAACE,QAAQ,CAAC;AAC9E;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,OAAOL,UAAU,CAACE,KAAK;AACzB","ignoreList":[]}