@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,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WidgetPanel = WidgetPanel;
7
+ var _reactNative = require("react-native");
8
+ var _global = require("../styles/global.js");
9
+ var _theme = require("../styles/theme.js");
10
+ var _icons = require("./icons.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * Panel chrome: the colored header (with the assigned agent) and the bottom
14
+ * space switcher. Port of `client/src/widget/components/WidgetPanel.tsx`; the
15
+ * fixed-size floating card becomes a full-height sheet because the RN host is
16
+ * a modal, not an iframe pinned to a corner.
17
+ */
18
+
19
+ const SPACE_META = {
20
+ home: {
21
+ labelKey: 'home',
22
+ icon: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.HomeIcon, {
23
+ ...props
24
+ })
25
+ },
26
+ messages: {
27
+ labelKey: 'messages',
28
+ icon: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ChatOutlineIcon, {
29
+ ...props
30
+ })
31
+ }
32
+ };
33
+ function WidgetPanel({
34
+ color,
35
+ children,
36
+ activeTab,
37
+ onTabChange,
38
+ showTabs,
39
+ spaces,
40
+ unreadCount = 0,
41
+ labels
42
+ }) {
43
+ const enabledSpaces = spaces.filter(space => space.enabled);
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
45
+ style: _global.globalStyles.screen,
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
47
+ style: _global.globalStyles.fill,
48
+ children: children
49
+ }), showTabs && enabledSpaces.length > 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
50
+ style: styles.tabBar,
51
+ children: enabledSpaces.map(space => {
52
+ const meta = SPACE_META[space.type];
53
+ if (!meta) return null;
54
+ const active = activeTab === space.type;
55
+ const showBadge = space.type === 'messages' && unreadCount > 0;
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
57
+ onPress: () => onTabChange(space.type),
58
+ accessibilityRole: "tab",
59
+ accessibilityState: {
60
+ selected: active
61
+ },
62
+ accessibilityLabel: showBadge ? `${labels[meta.labelKey]}, ${labels.unread}` : undefined,
63
+ style: styles.tab,
64
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
65
+ style: styles.tabIconWrap,
66
+ children: [meta.icon({
67
+ size: 22,
68
+ color: active ? color : _theme.palette.textSubtle
69
+ }), showBadge ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
70
+ style: styles.tabBadge,
71
+ pointerEvents: "none",
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
73
+ style: styles.tabBadgeLabel,
74
+ children: unreadCount > 9 ? '9+' : unreadCount
75
+ })
76
+ }) : null]
77
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
78
+ style: [styles.tabLabel, {
79
+ color: active ? color : _theme.palette.textSubtle
80
+ }],
81
+ children: labels[meta.labelKey]
82
+ })]
83
+ }, space.type);
84
+ })
85
+ })]
86
+ });
87
+ }
88
+ const styles = _reactNative.StyleSheet.create({
89
+ tabIconWrap: {
90
+ position: 'relative'
91
+ },
92
+ tabBadge: {
93
+ position: 'absolute',
94
+ top: -5,
95
+ end: -12,
96
+ minWidth: 18,
97
+ height: 18,
98
+ borderRadius: 9,
99
+ paddingHorizontal: _theme.spacing.xs,
100
+ backgroundColor: _theme.palette.danger,
101
+ alignItems: 'center',
102
+ justifyContent: 'center',
103
+ borderWidth: 2,
104
+ borderColor: _theme.palette.white
105
+ },
106
+ tabBadgeLabel: {
107
+ fontSize: _theme.fontSize.micro,
108
+ fontWeight: '700',
109
+ color: _theme.palette.white
110
+ },
111
+ tabBar: {
112
+ flexDirection: 'row',
113
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
114
+ borderTopColor: _theme.palette.border,
115
+ backgroundColor: _theme.palette.white
116
+ },
117
+ tab: {
118
+ flex: 1,
119
+ alignItems: 'center',
120
+ justifyContent: 'center',
121
+ gap: 2,
122
+ paddingVertical: _theme.spacing.sm,
123
+ minHeight: 52
124
+ },
125
+ tabLabel: {
126
+ fontSize: _theme.fontSize.caption,
127
+ // Weight stays constant across states — only color signals the active tab.
128
+ fontWeight: '600'
129
+ }
130
+ });
131
+ //# sourceMappingURL=WidgetPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_global","_theme","_icons","_jsxRuntime","SPACE_META","home","labelKey","icon","props","jsx","HomeIcon","messages","ChatOutlineIcon","WidgetPanel","color","children","activeTab","onTabChange","showTabs","spaces","unreadCount","labels","enabledSpaces","filter","space","enabled","jsxs","View","style","globalStyles","screen","fill","length","styles","tabBar","map","meta","type","active","showBadge","Pressable","onPress","accessibilityRole","accessibilityState","selected","accessibilityLabel","unread","undefined","tab","tabIconWrap","size","palette","textSubtle","tabBadge","pointerEvents","Text","tabBadgeLabel","tabLabel","StyleSheet","create","position","top","end","minWidth","height","borderRadius","paddingHorizontal","spacing","xs","backgroundColor","danger","alignItems","justifyContent","borderWidth","borderColor","white","fontSize","micro","fontWeight","flexDirection","borderTopWidth","hairlineWidth","borderTopColor","border","flex","gap","paddingVertical","sm","minHeight","caption"],"sourceRoot":"../../../../src","sources":["ui/components/WidgetPanel.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AlertIcon = AlertIcon;
7
+ exports.ArrowRightIcon = ArrowRightIcon;
8
+ exports.ArrowUpIcon = ArrowUpIcon;
9
+ exports.ChatIcon = ChatIcon;
10
+ exports.ChatOutlineIcon = ChatOutlineIcon;
11
+ exports.ChevronIcon = ChevronIcon;
12
+ exports.CloseIcon = CloseIcon;
13
+ exports.HomeIcon = HomeIcon;
14
+ exports.PaperclipIcon = PaperclipIcon;
15
+ exports.PersonIcon = PersonIcon;
16
+ var _reactNative = require("react-native");
17
+ var _theme = require("../styles/theme.js");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ /**
20
+ * Geometric icons drawn with plain Views.
21
+ *
22
+ * The library ships zero native dependencies, so `react-native-svg` is off the
23
+ * table; every glyph here is a rotated border or triangle, which renders
24
+ * identically on both platforms and scales with the `size` prop.
25
+ */
26
+
27
+ /** Two crossed bars. */
28
+ function CloseIcon({
29
+ size = 18,
30
+ color = _theme.palette.textMuted,
31
+ style
32
+ }) {
33
+ const bar = {
34
+ position: 'absolute',
35
+ width: size,
36
+ height: Math.max(2, size * 0.11),
37
+ borderRadius: 2,
38
+ backgroundColor: color
39
+ };
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
41
+ style: [{
42
+ width: size,
43
+ height: size
44
+ }, styles.center, style],
45
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
46
+ style: [bar, {
47
+ transform: [{
48
+ rotate: '45deg'
49
+ }]
50
+ }]
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
52
+ style: [bar, {
53
+ transform: [{
54
+ rotate: '-45deg'
55
+ }]
56
+ }]
57
+ })]
58
+ });
59
+ }
60
+ const CHEVRON_ROTATION = {
61
+ left: '45deg',
62
+ right: '-135deg',
63
+ up: '135deg',
64
+ down: '-45deg'
65
+ };
66
+
67
+ /** A square with two adjacent borders, rotated into an arrow head. */
68
+ function ChevronIcon({
69
+ size = 16,
70
+ color = _theme.palette.textMuted,
71
+ direction = 'left',
72
+ style
73
+ }) {
74
+ const box = size * 0.62;
75
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
76
+ style: [{
77
+ width: size,
78
+ height: size
79
+ }, styles.center, style],
80
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
81
+ style: {
82
+ width: box,
83
+ height: box,
84
+ borderLeftWidth: Math.max(2, size * 0.13),
85
+ borderBottomWidth: Math.max(2, size * 0.13),
86
+ borderColor: color,
87
+ transform: [{
88
+ rotate: CHEVRON_ROTATION[direction]
89
+ }]
90
+ }
91
+ })
92
+ });
93
+ }
94
+
95
+ /** Arrow with a shaft — used for the "start a conversation" affordance. */
96
+ function ArrowRightIcon({
97
+ size = 16,
98
+ color = _theme.palette.textMuted,
99
+ style
100
+ }) {
101
+ const thickness = Math.max(2, size * 0.12);
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
103
+ style: [{
104
+ width: size,
105
+ height: size
106
+ }, styles.center, style],
107
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
108
+ style: {
109
+ position: 'absolute',
110
+ width: size * 0.8,
111
+ height: thickness,
112
+ borderRadius: thickness,
113
+ backgroundColor: color
114
+ }
115
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
116
+ style: {
117
+ position: 'absolute',
118
+ right: size * 0.12,
119
+ width: size * 0.42,
120
+ height: size * 0.42,
121
+ borderTopWidth: thickness,
122
+ borderRightWidth: thickness,
123
+ borderColor: color,
124
+ transform: [{
125
+ rotate: '45deg'
126
+ }]
127
+ }
128
+ })]
129
+ });
130
+ }
131
+
132
+ /** Right-pointing triangle for the send button. */
133
+ /** Upward arrow — the send affordance inside the composer's round button. */
134
+ function ArrowUpIcon({
135
+ size = 16,
136
+ color = _theme.palette.white,
137
+ style
138
+ }) {
139
+ const thickness = Math.max(2, size * 0.12);
140
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
141
+ style: [{
142
+ width: size,
143
+ height: size
144
+ }, styles.center, style],
145
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
146
+ style: {
147
+ position: 'absolute',
148
+ width: thickness,
149
+ height: size * 0.78,
150
+ borderRadius: thickness,
151
+ backgroundColor: color
152
+ }
153
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
154
+ style: {
155
+ position: 'absolute',
156
+ top: size * 0.14,
157
+ width: size * 0.42,
158
+ height: size * 0.42,
159
+ borderTopWidth: thickness,
160
+ borderRightWidth: thickness,
161
+ borderColor: color,
162
+ transform: [{
163
+ rotate: '-45deg'
164
+ }]
165
+ }
166
+ })]
167
+ });
168
+ }
169
+
170
+ /** Rounded speech bubble with a tail. */
171
+ function ChatIcon({
172
+ size = 24,
173
+ color = _theme.palette.white,
174
+ style
175
+ }) {
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
177
+ style: [{
178
+ width: size,
179
+ height: size
180
+ }, style],
181
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
182
+ style: {
183
+ width: size,
184
+ height: size * 0.78,
185
+ borderRadius: size * 0.26,
186
+ backgroundColor: color
187
+ }
188
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
189
+ style: {
190
+ position: 'absolute',
191
+ left: size * 0.18,
192
+ bottom: 0,
193
+ width: 0,
194
+ height: 0,
195
+ borderLeftWidth: size * 0.14,
196
+ borderRightWidth: size * 0.14,
197
+ borderTopWidth: size * 0.26,
198
+ borderLeftColor: 'transparent',
199
+ borderRightColor: 'transparent',
200
+ borderTopColor: color
201
+ }
202
+ })]
203
+ });
204
+ }
205
+
206
+ /** Outlined speech bubble — the Messages tab + empty state. */
207
+ function ChatOutlineIcon({
208
+ size = 22,
209
+ color = _theme.palette.textSubtle,
210
+ style
211
+ }) {
212
+ const thickness = Math.max(1.5, size * 0.09);
213
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
214
+ style: [{
215
+ width: size,
216
+ height: size
217
+ }, style],
218
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
219
+ style: {
220
+ width: size,
221
+ height: size * 0.76,
222
+ borderRadius: size * 0.24,
223
+ borderWidth: thickness,
224
+ borderColor: color
225
+ }
226
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
227
+ style: {
228
+ position: 'absolute',
229
+ left: size * 0.2,
230
+ bottom: size * 0.02,
231
+ width: size * 0.22,
232
+ height: size * 0.22,
233
+ borderLeftWidth: thickness,
234
+ borderBottomWidth: thickness,
235
+ borderColor: color,
236
+ backgroundColor: _theme.palette.white,
237
+ transform: [{
238
+ rotate: '-45deg'
239
+ }]
240
+ }
241
+ })]
242
+ });
243
+ }
244
+
245
+ /** House outline — the Home tab. */
246
+ function HomeIcon({
247
+ size = 22,
248
+ color = _theme.palette.textSubtle,
249
+ style
250
+ }) {
251
+ const thickness = Math.max(1.5, size * 0.09);
252
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
253
+ style: [{
254
+ width: size,
255
+ height: size
256
+ }, styles.center, style],
257
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
258
+ style: {
259
+ position: 'absolute',
260
+ top: size * 0.04,
261
+ width: size * 0.56,
262
+ height: size * 0.56,
263
+ borderTopWidth: thickness,
264
+ borderLeftWidth: thickness,
265
+ borderColor: color,
266
+ transform: [{
267
+ rotate: '45deg'
268
+ }]
269
+ }
270
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
271
+ style: {
272
+ position: 'absolute',
273
+ bottom: size * 0.08,
274
+ width: size * 0.7,
275
+ height: size * 0.44,
276
+ borderWidth: thickness,
277
+ borderTopWidth: 0,
278
+ borderColor: color
279
+ }
280
+ })]
281
+ });
282
+ }
283
+
284
+ /** Person glyph for conversations with no assigned agent. */
285
+ function PersonIcon({
286
+ size = 18,
287
+ color = _theme.palette.white,
288
+ style
289
+ }) {
290
+ const thickness = Math.max(1.5, size * 0.11);
291
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
292
+ style: [{
293
+ width: size,
294
+ height: size
295
+ }, styles.center, style],
296
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
297
+ style: {
298
+ position: 'absolute',
299
+ top: size * 0.06,
300
+ width: size * 0.42,
301
+ height: size * 0.42,
302
+ borderRadius: size * 0.21,
303
+ borderWidth: thickness,
304
+ borderColor: color
305
+ }
306
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
307
+ style: {
308
+ position: 'absolute',
309
+ bottom: size * 0.06,
310
+ width: size * 0.74,
311
+ height: size * 0.3,
312
+ borderTopLeftRadius: size * 0.37,
313
+ borderTopRightRadius: size * 0.37,
314
+ borderWidth: thickness,
315
+ borderBottomWidth: 0,
316
+ borderColor: color
317
+ }
318
+ })]
319
+ });
320
+ }
321
+
322
+ /** Circle-with-bang used on the offline notice. */
323
+ function AlertIcon({
324
+ size = 16,
325
+ color = _theme.palette.warningIcon,
326
+ style
327
+ }) {
328
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
329
+ style: [{
330
+ width: size,
331
+ height: size,
332
+ borderRadius: size / 2,
333
+ borderWidth: Math.max(1.5, size * 0.12),
334
+ borderColor: color
335
+ }, styles.center, style],
336
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
337
+ style: {
338
+ width: Math.max(1.5, size * 0.12),
339
+ height: size * 0.34,
340
+ backgroundColor: color,
341
+ marginBottom: 1
342
+ }
343
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
344
+ style: {
345
+ width: Math.max(1.5, size * 0.12),
346
+ height: Math.max(1.5, size * 0.12),
347
+ backgroundColor: color
348
+ }
349
+ })]
350
+ });
351
+ }
352
+ function PaperclipIcon({
353
+ size = 18,
354
+ color = _theme.palette.textMuted,
355
+ style
356
+ }) {
357
+ const thickness = Math.max(1.5, size * 0.1);
358
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
359
+ style: [{
360
+ width: size,
361
+ height: size
362
+ }, styles.center, style],
363
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
364
+ style: {
365
+ width: size * 0.42,
366
+ height: size * 0.82,
367
+ borderRadius: size * 0.21,
368
+ borderWidth: thickness,
369
+ borderColor: color,
370
+ transform: [{
371
+ rotate: '35deg'
372
+ }]
373
+ }
374
+ })
375
+ });
376
+ }
377
+ const styles = _reactNative.StyleSheet.create({
378
+ center: {
379
+ alignItems: 'center',
380
+ justifyContent: 'center'
381
+ }
382
+ });
383
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_theme","_jsxRuntime","CloseIcon","size","color","palette","textMuted","style","bar","position","width","height","Math","max","borderRadius","backgroundColor","jsxs","View","styles","center","children","jsx","transform","rotate","CHEVRON_ROTATION","left","right","up","down","ChevronIcon","direction","box","borderLeftWidth","borderBottomWidth","borderColor","ArrowRightIcon","thickness","borderTopWidth","borderRightWidth","ArrowUpIcon","white","top","ChatIcon","bottom","borderLeftColor","borderRightColor","borderTopColor","ChatOutlineIcon","textSubtle","borderWidth","HomeIcon","PersonIcon","borderTopLeftRadius","borderTopRightRadius","AlertIcon","warningIcon","marginBottom","PaperclipIcon","StyleSheet","create","alignItems","justifyContent"],"sourceRoot":"../../../../src","sources":["ui/components/icons.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useKeyboardOverlap = useKeyboardOverlap;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ /**
10
+ * How far the keyboard covers the widget panel, in dp.
11
+ *
12
+ * The panel is a `<Modal>` that reaches the bottom of the screen, so the
13
+ * keyboard's own height is the whole story: what it reports is what has to be
14
+ * given back, less whatever the layout has already conceded down there.
15
+ *
16
+ * Measuring the panel does not work, and neither does RN's
17
+ * `<KeyboardAvoidingView>`, which is built on the same measurement. Both read a
18
+ * view's position out of the shadow tree, which places it relative to the
19
+ * surface root, while the keyboard frame arrives in screen coordinates. An iOS
20
+ * page sheet starts some 60dp down the screen, so the two disagree by exactly
21
+ * that much and the composer ends up under the keyboard with only its top
22
+ * border showing.
23
+ *
24
+ * What counts as already conceded differs by platform. iOS never resizes its
25
+ * window for the keyboard, so it is the safe-area padding the panel already
26
+ * keeps below itself. Android modals ask for `adjustResize`, so the window
27
+ * usually gives up the height itself and nothing more is owed; when it does not
28
+ * — an edge-to-edge window stays put — the whole keyboard still is. Either way
29
+ * the difference shows up in the panel's own height, so that is where the
30
+ * shrink is read from. RN already nets the navigation bar out of the height it
31
+ * reports on Android, so the safe-area inset must not come off twice there.
32
+ */
33
+
34
+ // iOS announces the keyboard before it moves, so the layout can travel with
35
+ // it; Android only reports the keyboard once it has settled.
36
+ const SHOW_EVENT = _reactNative.Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';
37
+ const HIDE_EVENT = _reactNative.Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide';
38
+
39
+ /** Android is the only platform whose window gives up height to the keyboard. */
40
+ const WINDOW_RESIZES = _reactNative.Platform.OS === 'android';
41
+ function useKeyboardOverlap(enabled, bottomInset) {
42
+ const [overlap, setOverlap] = (0, _react.useState)(0);
43
+ // Mirrors `overlap` for the handlers, which must not re-subscribe on it.
44
+ const applied = (0, _react.useRef)(0);
45
+ const keyboardHeight = (0, _react.useRef)(0);
46
+ // The panel's height with no keyboard, and its height now. Taking the tallest
47
+ // seen keeps an Android resize that lands before the keyboard event from
48
+ // being mistaken for the resting height.
49
+ const restingHeight = (0, _react.useRef)(0);
50
+ const currentHeight = (0, _react.useRef)(0);
51
+ const apply = (0, _react.useCallback)((next, event) => {
52
+ if (Math.abs(next - applied.current) < 1) return;
53
+ applied.current = next;
54
+
55
+ // Riding the keyboard's own duration and curve keeps the composer glued to
56
+ // it, and leaves the work in the native layout pass instead of re-laying
57
+ // out the message list from JS on every frame. Android reports a duration
58
+ // of 0 and animates nothing, which is what the guard falls through to.
59
+ const duration = event?.duration ?? 0;
60
+ const easing = event?.easing;
61
+ if (duration > 10 && easing) {
62
+ _reactNative.LayoutAnimation.configureNext({
63
+ duration,
64
+ update: {
65
+ duration,
66
+ type: _reactNative.LayoutAnimation.Types[easing] ?? _reactNative.LayoutAnimation.Types.keyboard
67
+ }
68
+ });
69
+ }
70
+ setOverlap(next);
71
+ }, []);
72
+ const recompute = (0, _react.useCallback)(event => {
73
+ const alreadyClear = WINDOW_RESIZES ? Math.max(restingHeight.current - currentHeight.current, 0) : bottomInset;
74
+ const height = keyboardHeight.current;
75
+ apply(Math.min(Math.max(height - alreadyClear, 0), height), event);
76
+ }, [apply, bottomInset]);
77
+ const onLayout = (0, _react.useCallback)(event => {
78
+ // Only Android has a shrink to read, and only there can it land after the
79
+ // keyboard event and leave the first answer stale.
80
+ if (!WINDOW_RESIZES) return;
81
+ const {
82
+ height
83
+ } = event.nativeEvent.layout;
84
+ currentHeight.current = height;
85
+ restingHeight.current = Math.max(restingHeight.current, height);
86
+ if (keyboardHeight.current > 0) recompute();
87
+ }, [recompute]);
88
+ (0, _react.useEffect)(() => {
89
+ if (!enabled) {
90
+ keyboardHeight.current = 0;
91
+ restingHeight.current = 0;
92
+ apply(0);
93
+ return undefined;
94
+ }
95
+ const handleShow = event => {
96
+ keyboardHeight.current = event.endCoordinates?.height ?? 0;
97
+ recompute(event);
98
+ };
99
+ const handleHide = event => {
100
+ keyboardHeight.current = 0;
101
+ recompute(event);
102
+ };
103
+ const subscriptions = [_reactNative.Keyboard.addListener(SHOW_EVENT, handleShow), _reactNative.Keyboard.addListener(HIDE_EVENT, handleHide)];
104
+ return () => {
105
+ subscriptions.forEach(subscription => subscription.remove());
106
+ };
107
+ }, [apply, enabled, recompute]);
108
+ return {
109
+ overlap,
110
+ onLayout
111
+ };
112
+ }
113
+ //# sourceMappingURL=use-keyboard-overlap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","SHOW_EVENT","Platform","OS","HIDE_EVENT","WINDOW_RESIZES","useKeyboardOverlap","enabled","bottomInset","overlap","setOverlap","useState","applied","useRef","keyboardHeight","restingHeight","currentHeight","apply","useCallback","next","event","Math","abs","current","duration","easing","LayoutAnimation","configureNext","update","type","Types","keyboard","recompute","alreadyClear","max","height","min","onLayout","nativeEvent","layout","useEffect","undefined","handleShow","endCoordinates","handleHide","subscriptions","Keyboard","addListener","forEach","subscription","remove"],"sourceRoot":"../../../../src","sources":["ui/hooks/use-keyboard-overlap.ts"],"mappings":"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","ignoreList":[]}