@appsupportkit/support-sdk 0.2.0 → 0.4.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 (242) hide show
  1. package/lib/commonjs/api.js +61 -12
  2. package/lib/commonjs/api.js.map +1 -1
  3. package/lib/commonjs/components/BottomSheet.js +1 -1
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  5. package/lib/commonjs/components/LauncherButton.js +4 -4
  6. package/lib/commonjs/components/LauncherButton.js.map +1 -1
  7. package/lib/commonjs/components/SupportButton.js +192 -66
  8. package/lib/commonjs/components/SupportButton.js.map +1 -1
  9. package/lib/commonjs/components/icons.js +117 -110
  10. package/lib/commonjs/components/icons.js.map +1 -1
  11. package/lib/commonjs/components/primitives.js +3 -154
  12. package/lib/commonjs/components/primitives.js.map +1 -1
  13. package/lib/commonjs/components/screens/ChatScreen.js +487 -0
  14. package/lib/commonjs/components/screens/ChatScreen.js.map +1 -0
  15. package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
  16. package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
  17. package/lib/commonjs/i18n/index.js +101 -0
  18. package/lib/commonjs/i18n/index.js.map +1 -0
  19. package/lib/commonjs/i18n/languages.js +95 -0
  20. package/lib/commonjs/i18n/languages.js.map +1 -0
  21. package/lib/commonjs/i18n/strings/de.js +75 -0
  22. package/lib/commonjs/i18n/strings/de.js.map +1 -0
  23. package/lib/commonjs/i18n/strings/en.js +91 -0
  24. package/lib/commonjs/i18n/strings/en.js.map +1 -0
  25. package/lib/commonjs/i18n/strings/es.js +75 -0
  26. package/lib/commonjs/i18n/strings/es.js.map +1 -0
  27. package/lib/commonjs/i18n/strings/fr.js +75 -0
  28. package/lib/commonjs/i18n/strings/fr.js.map +1 -0
  29. package/lib/commonjs/i18n/strings/hi.js +75 -0
  30. package/lib/commonjs/i18n/strings/hi.js.map +1 -0
  31. package/lib/commonjs/i18n/strings/it.js +75 -0
  32. package/lib/commonjs/i18n/strings/it.js.map +1 -0
  33. package/lib/commonjs/i18n/strings/ja.js +75 -0
  34. package/lib/commonjs/i18n/strings/ja.js.map +1 -0
  35. package/lib/commonjs/i18n/strings/ko.js +75 -0
  36. package/lib/commonjs/i18n/strings/ko.js.map +1 -0
  37. package/lib/commonjs/i18n/strings/nl.js +75 -0
  38. package/lib/commonjs/i18n/strings/nl.js.map +1 -0
  39. package/lib/commonjs/i18n/strings/pl.js +75 -0
  40. package/lib/commonjs/i18n/strings/pl.js.map +1 -0
  41. package/lib/commonjs/i18n/strings/pt.js +75 -0
  42. package/lib/commonjs/i18n/strings/pt.js.map +1 -0
  43. package/lib/commonjs/i18n/strings/ru.js +75 -0
  44. package/lib/commonjs/i18n/strings/ru.js.map +1 -0
  45. package/lib/commonjs/i18n/strings/tr.js +75 -0
  46. package/lib/commonjs/i18n/strings/tr.js.map +1 -0
  47. package/lib/commonjs/i18n/strings/zh.js +75 -0
  48. package/lib/commonjs/i18n/strings/zh.js.map +1 -0
  49. package/lib/commonjs/index.js +38 -0
  50. package/lib/commonjs/index.js.map +1 -1
  51. package/lib/commonjs/push.js +78 -3
  52. package/lib/commonjs/push.js.map +1 -1
  53. package/lib/commonjs/review.js +54 -0
  54. package/lib/commonjs/review.js.map +1 -0
  55. package/lib/commonjs/theme.js +142 -23
  56. package/lib/commonjs/theme.js.map +1 -1
  57. package/lib/commonjs/types.js +32 -3
  58. package/lib/commonjs/types.js.map +1 -1
  59. package/lib/commonjs/useSupportThreads.js +41 -24
  60. package/lib/commonjs/useSupportThreads.js.map +1 -1
  61. package/lib/commonjs/utils.js +25 -30
  62. package/lib/commonjs/utils.js.map +1 -1
  63. package/lib/commonjs/version.js +13 -0
  64. package/lib/commonjs/version.js.map +1 -0
  65. package/lib/module/api.js +57 -10
  66. package/lib/module/api.js.map +1 -1
  67. package/lib/module/components/BottomSheet.js +1 -1
  68. package/lib/module/components/BottomSheet.js.map +1 -1
  69. package/lib/module/components/LauncherButton.js +5 -5
  70. package/lib/module/components/LauncherButton.js.map +1 -1
  71. package/lib/module/components/SupportButton.js +199 -73
  72. package/lib/module/components/SupportButton.js.map +1 -1
  73. package/lib/module/components/icons.js +115 -107
  74. package/lib/module/components/icons.js.map +1 -1
  75. package/lib/module/components/primitives.js +5 -147
  76. package/lib/module/components/primitives.js.map +1 -1
  77. package/lib/module/components/screens/ChatScreen.js +485 -0
  78. package/lib/module/components/screens/ChatScreen.js.map +1 -0
  79. package/lib/module/components/screens/LanguageScreen.js +147 -0
  80. package/lib/module/components/screens/LanguageScreen.js.map +1 -0
  81. package/lib/module/i18n/index.js +56 -0
  82. package/lib/module/i18n/index.js.map +1 -0
  83. package/lib/module/i18n/languages.js +88 -0
  84. package/lib/module/i18n/languages.js.map +1 -0
  85. package/lib/module/i18n/strings/de.js +71 -0
  86. package/lib/module/i18n/strings/de.js.map +1 -0
  87. package/lib/module/i18n/strings/en.js +87 -0
  88. package/lib/module/i18n/strings/en.js.map +1 -0
  89. package/lib/module/i18n/strings/es.js +71 -0
  90. package/lib/module/i18n/strings/es.js.map +1 -0
  91. package/lib/module/i18n/strings/fr.js +71 -0
  92. package/lib/module/i18n/strings/fr.js.map +1 -0
  93. package/lib/module/i18n/strings/hi.js +71 -0
  94. package/lib/module/i18n/strings/hi.js.map +1 -0
  95. package/lib/module/i18n/strings/it.js +71 -0
  96. package/lib/module/i18n/strings/it.js.map +1 -0
  97. package/lib/module/i18n/strings/ja.js +71 -0
  98. package/lib/module/i18n/strings/ja.js.map +1 -0
  99. package/lib/module/i18n/strings/ko.js +71 -0
  100. package/lib/module/i18n/strings/ko.js.map +1 -0
  101. package/lib/module/i18n/strings/nl.js +71 -0
  102. package/lib/module/i18n/strings/nl.js.map +1 -0
  103. package/lib/module/i18n/strings/pl.js +71 -0
  104. package/lib/module/i18n/strings/pl.js.map +1 -0
  105. package/lib/module/i18n/strings/pt.js +71 -0
  106. package/lib/module/i18n/strings/pt.js.map +1 -0
  107. package/lib/module/i18n/strings/ru.js +71 -0
  108. package/lib/module/i18n/strings/ru.js.map +1 -0
  109. package/lib/module/i18n/strings/tr.js +71 -0
  110. package/lib/module/i18n/strings/tr.js.map +1 -0
  111. package/lib/module/i18n/strings/zh.js +71 -0
  112. package/lib/module/i18n/strings/zh.js.map +1 -0
  113. package/lib/module/index.js +2 -0
  114. package/lib/module/index.js.map +1 -1
  115. package/lib/module/push.js +77 -3
  116. package/lib/module/push.js.map +1 -1
  117. package/lib/module/review.js +48 -0
  118. package/lib/module/review.js.map +1 -0
  119. package/lib/module/theme.js +141 -23
  120. package/lib/module/theme.js.map +1 -1
  121. package/lib/module/types.js +32 -3
  122. package/lib/module/types.js.map +1 -1
  123. package/lib/module/useSupportThreads.js +41 -24
  124. package/lib/module/useSupportThreads.js.map +1 -1
  125. package/lib/module/utils.js +24 -29
  126. package/lib/module/utils.js.map +1 -1
  127. package/lib/module/version.js +9 -0
  128. package/lib/module/version.js.map +1 -0
  129. package/lib/typescript/api.d.ts +40 -10
  130. package/lib/typescript/api.d.ts.map +1 -1
  131. package/lib/typescript/components/SupportButton.d.ts +2 -2
  132. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  133. package/lib/typescript/components/icons.d.ts +10 -14
  134. package/lib/typescript/components/icons.d.ts.map +1 -1
  135. package/lib/typescript/components/primitives.d.ts +3 -30
  136. package/lib/typescript/components/primitives.d.ts.map +1 -1
  137. package/lib/typescript/components/screens/ChatScreen.d.ts +21 -0
  138. package/lib/typescript/components/screens/ChatScreen.d.ts.map +1 -0
  139. package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
  140. package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
  141. package/lib/typescript/i18n/index.d.ts +15 -0
  142. package/lib/typescript/i18n/index.d.ts.map +1 -0
  143. package/lib/typescript/i18n/languages.d.ts +36 -0
  144. package/lib/typescript/i18n/languages.d.ts.map +1 -0
  145. package/lib/typescript/i18n/strings/de.d.ts +3 -0
  146. package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
  147. package/lib/typescript/i18n/strings/en.d.ts +86 -0
  148. package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
  149. package/lib/typescript/i18n/strings/es.d.ts +3 -0
  150. package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
  151. package/lib/typescript/i18n/strings/fr.d.ts +3 -0
  152. package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
  153. package/lib/typescript/i18n/strings/hi.d.ts +3 -0
  154. package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
  155. package/lib/typescript/i18n/strings/it.d.ts +3 -0
  156. package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
  157. package/lib/typescript/i18n/strings/ja.d.ts +3 -0
  158. package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
  159. package/lib/typescript/i18n/strings/ko.d.ts +3 -0
  160. package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
  161. package/lib/typescript/i18n/strings/nl.d.ts +3 -0
  162. package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
  163. package/lib/typescript/i18n/strings/pl.d.ts +3 -0
  164. package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
  165. package/lib/typescript/i18n/strings/pt.d.ts +3 -0
  166. package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
  167. package/lib/typescript/i18n/strings/ru.d.ts +3 -0
  168. package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
  169. package/lib/typescript/i18n/strings/tr.d.ts +3 -0
  170. package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
  171. package/lib/typescript/i18n/strings/zh.d.ts +3 -0
  172. package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
  173. package/lib/typescript/index.d.ts +4 -2
  174. package/lib/typescript/index.d.ts.map +1 -1
  175. package/lib/typescript/push.d.ts +14 -2
  176. package/lib/typescript/push.d.ts.map +1 -1
  177. package/lib/typescript/review.d.ts +15 -0
  178. package/lib/typescript/review.d.ts.map +1 -0
  179. package/lib/typescript/theme.d.ts +23 -5
  180. package/lib/typescript/theme.d.ts.map +1 -1
  181. package/lib/typescript/types.d.ts +86 -13
  182. package/lib/typescript/types.d.ts.map +1 -1
  183. package/lib/typescript/useSupportThreads.d.ts +20 -4
  184. package/lib/typescript/useSupportThreads.d.ts.map +1 -1
  185. package/lib/typescript/utils.d.ts +8 -6
  186. package/lib/typescript/utils.d.ts.map +1 -1
  187. package/lib/typescript/version.d.ts +7 -0
  188. package/lib/typescript/version.d.ts.map +1 -0
  189. package/package.json +2 -2
  190. package/src/api.ts +75 -23
  191. package/src/components/BottomSheet.tsx +1 -1
  192. package/src/components/LauncherButton.tsx +4 -4
  193. package/src/components/SupportButton.tsx +244 -86
  194. package/src/components/icons.tsx +96 -101
  195. package/src/components/primitives.tsx +9 -161
  196. package/src/components/screens/ChatScreen.tsx +541 -0
  197. package/src/components/screens/LanguageScreen.tsx +172 -0
  198. package/src/i18n/index.ts +81 -0
  199. package/src/i18n/languages.ts +106 -0
  200. package/src/i18n/strings/de.ts +81 -0
  201. package/src/i18n/strings/en.ts +97 -0
  202. package/src/i18n/strings/es.ts +80 -0
  203. package/src/i18n/strings/fr.ts +81 -0
  204. package/src/i18n/strings/hi.ts +80 -0
  205. package/src/i18n/strings/it.ts +80 -0
  206. package/src/i18n/strings/ja.ts +80 -0
  207. package/src/i18n/strings/ko.ts +79 -0
  208. package/src/i18n/strings/nl.ts +80 -0
  209. package/src/i18n/strings/pl.ts +80 -0
  210. package/src/i18n/strings/pt.ts +80 -0
  211. package/src/i18n/strings/ru.ts +80 -0
  212. package/src/i18n/strings/tr.ts +80 -0
  213. package/src/i18n/strings/zh.ts +78 -0
  214. package/src/index.tsx +13 -0
  215. package/src/push.ts +100 -2
  216. package/src/review.ts +54 -0
  217. package/src/theme.ts +182 -28
  218. package/src/types.ts +85 -13
  219. package/src/useSupportThreads.ts +61 -28
  220. package/src/utils.ts +27 -29
  221. package/src/version.ts +6 -0
  222. package/lib/commonjs/components/screens/ComposeScreen.js +0 -228
  223. package/lib/commonjs/components/screens/ComposeScreen.js.map +0 -1
  224. package/lib/commonjs/components/screens/HomeScreen.js +0 -286
  225. package/lib/commonjs/components/screens/HomeScreen.js.map +0 -1
  226. package/lib/commonjs/components/screens/ThreadScreen.js +0 -327
  227. package/lib/commonjs/components/screens/ThreadScreen.js.map +0 -1
  228. package/lib/module/components/screens/ComposeScreen.js +0 -224
  229. package/lib/module/components/screens/ComposeScreen.js.map +0 -1
  230. package/lib/module/components/screens/HomeScreen.js +0 -282
  231. package/lib/module/components/screens/HomeScreen.js.map +0 -1
  232. package/lib/module/components/screens/ThreadScreen.js +0 -325
  233. package/lib/module/components/screens/ThreadScreen.js.map +0 -1
  234. package/lib/typescript/components/screens/ComposeScreen.d.ts +0 -10
  235. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +0 -1
  236. package/lib/typescript/components/screens/HomeScreen.d.ts +0 -14
  237. package/lib/typescript/components/screens/HomeScreen.d.ts.map +0 -1
  238. package/lib/typescript/components/screens/ThreadScreen.d.ts +0 -10
  239. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +0 -1
  240. package/src/components/screens/ComposeScreen.tsx +0 -233
  241. package/src/components/screens/HomeScreen.tsx +0 -287
  242. package/src/components/screens/ThreadScreen.tsx +0 -397
@@ -19,11 +19,11 @@ import { AppState } from 'react-native';
19
19
  import { getThreads, getUnreadCount, markRead, SupportApiError } from './api';
20
20
  import { latestAdminMessageAt, pruneWatermarks, reconcileThreads, sumUnread } from './unread';
21
21
 
22
- // Poll cadence by context: fast where latency is felt (staring at a thread
22
+ // Poll cadence by context: fast where latency is felt (looking at the chat,
23
23
  // waiting for a reply), slow when the sheet is closed — and the idle tick
24
24
  // uses the count-only endpoint, so it costs ~18 bytes instead of the full
25
25
  // thread list.
26
- const THREAD_POLL_MS = 5_000;
26
+ const CHAT_POLL_MS = 5_000;
27
27
  const SHEET_POLL_MS = 15_000;
28
28
  export const IDLE_POLL_MS = 60_000;
29
29
  const MIN_POLL_MS = 3_000;
@@ -39,33 +39,40 @@ const MARK_READ_BACKOFF_MS = 1_500;
39
39
  * an integration mistake — the end user retrying forever won't fix a key
40
40
  * that doesn't match the app — so the real cause is logged for whoever is
41
41
  * running the build instead of hidden behind "couldn't load".
42
+ *
43
+ * Returns a key rather than a message: the hook has no business knowing what
44
+ * language the sheet is in, and resolving it here would make every callback
45
+ * depend on the translator.
42
46
  */
43
- function loadErrorMessage(e) {
47
+ function loadErrorKey(e) {
44
48
  if (e instanceof SupportApiError) {
45
- if (e.offline) return "You're offline — check your connection";
49
+ if (e.offline) return 'error.offline';
46
50
  if (e.status === 401 || e.status === 403) {
47
51
  if (__DEV__) {
48
52
  console.error('SupportButton: the support API rejected this app (401). Check that ' + '`apiKey` is the key shown when the app was registered and that ' + '`appName` matches that app exactly.');
49
53
  }
50
- return 'Support is unavailable right now';
54
+ return 'error.unavailable';
51
55
  }
52
- if (e.status === 429) return 'Too many requests — try again in a bit';
56
+ if (e.status === 429) return 'error.loadRateLimited';
53
57
  }
54
- return "Couldn't load your conversations";
58
+ return 'error.loadFailed';
55
59
  }
56
60
  export function useSupportThreads({
57
61
  config,
58
62
  revenuecatId,
59
63
  enabled,
60
64
  sheetOpen,
61
- activeThreadId,
65
+ chatVisible,
62
66
  idlePollMs
63
67
  }) {
64
68
  const [threads, setThreads] = useState(null);
65
69
  const [totalUnread, setTotalUnread] = useState(0);
66
70
  const [loading, setLoading] = useState(false);
67
71
  const [refreshing, setRefreshing] = useState(false);
68
- const [error, setError] = useState(null);
72
+ const [errorKey, setErrorKey] = useState(null);
73
+ const [serverLanguage, setServerLanguage] = useState(null);
74
+ const [languageLoaded, setLanguageLoaded] = useState(false);
75
+ const [store, setStore] = useState(null);
69
76
  const mounted = useRef(true);
70
77
  /** Last server payload, before local read reconciliation. */
71
78
  const rawThreads = useRef(null);
@@ -74,10 +81,10 @@ export function useSupportThreads({
74
81
  const requestSeq = useRef(0);
75
82
  const appliedSeq = useRef(0);
76
83
  const readEpoch = useRef(0);
77
- const activeThreadIdRef = useRef(activeThreadId);
84
+ const chatVisibleRef = useRef(chatVisible);
78
85
  useEffect(() => {
79
- activeThreadIdRef.current = activeThreadId;
80
- }, [activeThreadId]);
86
+ chatVisibleRef.current = chatVisible;
87
+ }, [chatVisible]);
81
88
  useEffect(() => {
82
89
  mounted.current = true;
83
90
  const timers = reads.current;
@@ -169,6 +176,11 @@ export function useSupportThreads({
169
176
  }
170
177
  sendRead(threadId);
171
178
  }, [publish, sendRead]);
179
+
180
+ /** Marks every conversation read — the chat shows them all at once. */
181
+ const markAllRead = useCallback(() => {
182
+ for (const thread of rawThreads.current ?? []) markThreadRead(thread.id);
183
+ }, [markThreadRead]);
172
184
  const fetchThreads = useCallback(async mode => {
173
185
  if (!enabled) return;
174
186
  const seq = requestSeq.current += 1;
@@ -187,25 +199,27 @@ export function useSupportThreads({
187
199
  appliedSeq.current = seq;
188
200
  rawThreads.current = data.threads;
189
201
  watermarks.current = pruneWatermarks(watermarks.current, data.threads);
190
- setError(null);
202
+ setErrorKey(null);
203
+ setServerLanguage(data.language);
204
+ setLanguageLoaded(true);
205
+ setStore(data.store ?? null);
191
206
  publish();
192
207
 
193
- // Replies that arrived while the user is sitting in the thread are
208
+ // Replies that arrived while the user is looking at the chat are
194
209
  // read on arrival — otherwise the badge climbed while they read.
195
- const active = activeThreadIdRef.current;
196
- if (active !== null) markThreadRead(active);
210
+ if (chatVisibleRef.current) markAllRead();
197
211
  flushReads();
198
212
  } catch (e) {
199
213
  if (!mounted.current) return;
200
214
  // A failed background poll must not blow away cached threads.
201
- if (rawThreads.current === null) setError(loadErrorMessage(e));
215
+ if (rawThreads.current === null) setErrorKey(loadErrorKey(e));
202
216
  } finally {
203
217
  if (mounted.current) {
204
218
  if (spinner) setRefreshing(false);
205
219
  if (skeleton) setLoading(false);
206
220
  }
207
221
  }
208
- }, [config, enabled, revenuecatId, publish, markThreadRead, flushReads]);
222
+ }, [config, enabled, revenuecatId, publish, markAllRead, flushReads]);
209
223
 
210
224
  /** Badge-only refresh — the cheap endpoint, used while idle. */
211
225
  const fetchCount = useCallback(async () => {
@@ -236,17 +250,17 @@ export function useSupportThreads({
236
250
  if (sheetOpen) void fetchThreads('background');
237
251
  }, [sheetOpen, fetchThreads]);
238
252
 
239
- // Opening a thread marks it read immediately, before the next poll.
253
+ // Opening the chat marks everything read immediately, before the next poll.
240
254
  useEffect(() => {
241
- if (activeThreadId !== null) markThreadRead(activeThreadId);
242
- }, [activeThreadId, markThreadRead]);
255
+ if (chatVisible) markAllRead();
256
+ }, [chatVisible, markAllRead]);
243
257
 
244
258
  // Cadence follows what the user is looking at; the app returning to the
245
259
  // foreground always ticks.
246
260
  useEffect(() => {
247
261
  if (!enabled) return;
248
262
  const idle = !sheetOpen;
249
- const intervalMs = idle ? idlePollMs : activeThreadId !== null ? THREAD_POLL_MS : SHEET_POLL_MS;
263
+ const intervalMs = idle ? idlePollMs : chatVisible ? CHAT_POLL_MS : SHEET_POLL_MS;
250
264
  const tick = () => {
251
265
  // While a receipt is unconfirmed the count-only endpoint would report
252
266
  // replies the user has already read, so pay for the full payload.
@@ -263,7 +277,7 @@ export function useSupportThreads({
263
277
  if (timer !== null) clearInterval(timer);
264
278
  appStateSub.remove();
265
279
  };
266
- }, [enabled, sheetOpen, activeThreadId, idlePollMs, fetchThreads, fetchCount]);
280
+ }, [enabled, sheetOpen, chatVisible, idlePollMs, fetchThreads, fetchCount]);
267
281
  const refresh = useCallback(() => {
268
282
  void fetchThreads('user');
269
283
  }, [fetchThreads]);
@@ -273,7 +287,10 @@ export function useSupportThreads({
273
287
  totalUnread,
274
288
  loading,
275
289
  refreshing,
276
- error,
290
+ errorKey,
291
+ serverLanguage,
292
+ languageLoaded,
293
+ store,
277
294
  refresh,
278
295
  reload
279
296
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","AppState","getThreads","getUnreadCount","markRead","SupportApiError","latestAdminMessageAt","pruneWatermarks","reconcileThreads","sumUnread","THREAD_POLL_MS","SHEET_POLL_MS","IDLE_POLL_MS","MIN_POLL_MS","MARK_READ_MAX_ATTEMPTS","MARK_READ_BACKOFF_MS","loadErrorMessage","e","offline","status","__DEV__","console","error","useSupportThreads","config","revenuecatId","enabled","sheetOpen","activeThreadId","idlePollMs","threads","setThreads","totalUnread","setTotalUnread","loading","setLoading","refreshing","setRefreshing","setError","mounted","rawThreads","watermarks","Map","reads","requestSeq","appliedSeq","readEpoch","activeThreadIdRef","current","timers","attempt","values","timer","clearTimeout","clear","publish","raw","reconciled","sendRead","threadId","get","inFlight","covers","target","queryId","then","attempts","delete","catch","setTimeout","flushReads","markThreadRead","thread","find","t","id","latest","set","fetchThreads","mode","seq","blank","spinner","skeleton","data","active","fetchCount","epoch","total_unread","idle","intervalMs","tick","size","setInterval","Math","max","appStateSub","addEventListener","state","clearInterval","remove","refresh","reload"],"sourceRoot":"../../src","sources":["useSupportThreads.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","AppState","getThreads","getUnreadCount","markRead","SupportApiError","latestAdminMessageAt","pruneWatermarks","reconcileThreads","sumUnread","CHAT_POLL_MS","SHEET_POLL_MS","IDLE_POLL_MS","MIN_POLL_MS","MARK_READ_MAX_ATTEMPTS","MARK_READ_BACKOFF_MS","loadErrorKey","e","offline","status","__DEV__","console","error","useSupportThreads","config","revenuecatId","enabled","sheetOpen","chatVisible","idlePollMs","threads","setThreads","totalUnread","setTotalUnread","loading","setLoading","refreshing","setRefreshing","errorKey","setErrorKey","serverLanguage","setServerLanguage","languageLoaded","setLanguageLoaded","store","setStore","mounted","rawThreads","watermarks","Map","reads","requestSeq","appliedSeq","readEpoch","chatVisibleRef","current","timers","attempt","values","timer","clearTimeout","clear","publish","raw","reconciled","sendRead","threadId","get","inFlight","covers","target","queryId","then","attempts","delete","catch","setTimeout","flushReads","markThreadRead","thread","find","t","id","latest","set","markAllRead","fetchThreads","mode","seq","blank","spinner","skeleton","data","language","fetchCount","epoch","total_unread","idle","intervalMs","tick","size","setInterval","Math","max","appStateSub","addEventListener","state","clearInterval","remove","refresh","reload"],"sourceRoot":"../../src","sources":["useSupportThreads.ts"],"mappings":"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","ignoreList":[]}
@@ -1,33 +1,19 @@
1
1
  "use strict";
2
2
 
3
- /** "2h ago" relative time — mirrors the web dashboard's formatting. */
4
- export function relativeTime(iso) {
5
- const then = new Date(iso).getTime();
6
- const seconds = Math.max(0, Math.floor((Date.now() - then) / 1000));
7
- if (seconds < 60) return 'just now';
8
- const minutes = Math.floor(seconds / 60);
9
- if (minutes < 60) return `${minutes}m ago`;
10
- const hours = Math.floor(minutes / 60);
11
- if (hours < 24) return `${hours}h ago`;
12
- const days = Math.floor(hours / 24);
13
- if (days < 7) return `${days}d ago`;
14
- const weeks = Math.floor(days / 7);
15
- if (weeks < 5) return `${weeks}w ago`;
16
- const months = Math.floor(days / 30);
17
- if (months < 12) return `${months}mo ago`;
18
- return `${Math.floor(days / 365)}y ago`;
19
- }
20
- export function formatDate(iso) {
21
- return new Date(iso).toLocaleDateString(undefined, {
3
+ // Dates and times follow the language the user picked, not the device's:
4
+ // a sheet that says "Traduction…" above "2 days ago" reads as broken.
5
+
6
+ export function formatDate(iso, strings) {
7
+ return new Date(iso).toLocaleDateString(strings.locale, {
22
8
  year: 'numeric',
23
9
  month: 'short',
24
10
  day: 'numeric'
25
11
  });
26
12
  }
27
13
 
28
- /** "14:32" in the device's locale — shown under a group of messages. */
29
- export function formatTime(iso) {
30
- return new Date(iso).toLocaleTimeString(undefined, {
14
+ /** "14:32" in the user's locale — shown under a group of messages. */
15
+ export function formatTime(iso, strings) {
16
+ return new Date(iso).toLocaleTimeString(strings.locale, {
31
17
  hour: 'numeric',
32
18
  minute: '2-digit'
33
19
  });
@@ -39,13 +25,13 @@ export function isSameDay(a, b) {
39
25
  }
40
26
 
41
27
  /** Date separator label: Today / Yesterday / "Mon, 5 Jan". */
42
- export function dayLabel(iso) {
28
+ export function dayLabel(iso, strings) {
43
29
  const now = new Date();
44
- if (isSameDay(iso, now.toISOString())) return 'Today';
30
+ if (isSameDay(iso, now.toISOString())) return strings.t('time.today');
45
31
  const yesterday = new Date(now.getTime() - 86_400_000);
46
- if (isSameDay(iso, yesterday.toISOString())) return 'Yesterday';
32
+ if (isSameDay(iso, yesterday.toISOString())) return strings.t('time.yesterday');
47
33
  const date = new Date(iso);
48
- return date.toLocaleDateString(undefined, {
34
+ return date.toLocaleDateString(strings.locale, {
49
35
  weekday: 'short',
50
36
  month: 'short',
51
37
  day: 'numeric',
@@ -54,6 +40,12 @@ export function dayLabel(iso) {
54
40
  })
55
41
  });
56
42
  }
43
+ const PLANS = ['free', 'trial', 'pro'];
44
+
45
+ /** The user's plan, reading the deprecated `isPaid` when `plan` is absent. */
46
+ export function userPlan(user) {
47
+ return user.plan ?? (user.isPaid ? 'pro' : 'free');
48
+ }
57
49
 
58
50
  /** Dev-mode prop validation with actionable messages. */
59
51
  export function validateProps(props) {
@@ -68,13 +60,16 @@ export function validateProps(props) {
68
60
  }
69
61
  const user = props.user;
70
62
  if (!user || typeof user !== 'object') {
71
- return 'SupportButton: `user` is required — { name, isPaid, revenuecatId, appVersion }.';
63
+ return 'SupportButton: `user` is required — { name, plan, revenuecatId, appVersion }.';
72
64
  }
73
65
  if (typeof user.name !== 'string' || user.name.length === 0) {
74
66
  return 'SupportButton: `user.name` is required (string).';
75
67
  }
76
- if (typeof user.isPaid !== 'boolean') {
77
- return 'SupportButton: `user.isPaid` is required (boolean).';
68
+ if (user.plan !== undefined && !PLANS.includes(user.plan)) {
69
+ return 'SupportButton: `user.plan` must be "free", "trial" or "pro".';
70
+ }
71
+ if (user.plan === undefined && typeof user.isPaid !== 'boolean') {
72
+ return 'SupportButton: `user.plan` is required — "free", "trial" or "pro".';
78
73
  }
79
74
  if (typeof user.revenuecatId !== 'string' || user.revenuecatId.length === 0) {
80
75
  return 'SupportButton: `user.revenuecatId` is required (string) — the RevenueCat app user id.';
@@ -1 +1 @@
1
- {"version":3,"names":["relativeTime","iso","then","Date","getTime","seconds","Math","max","floor","now","minutes","hours","days","weeks","months","formatDate","toLocaleDateString","undefined","year","month","day","formatTime","toLocaleTimeString","hour","minute","isSameDay","a","b","first","second","getFullYear","getMonth","getDate","dayLabel","toISOString","yesterday","date","weekday","validateProps","props","appName","length","apiKey","supabaseUrl","test","user","name","isPaid","revenuecatId","appVersion"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["formatDate","iso","strings","Date","toLocaleDateString","locale","year","month","day","formatTime","toLocaleTimeString","hour","minute","isSameDay","a","b","first","second","getFullYear","getMonth","getDate","dayLabel","now","toISOString","t","yesterday","getTime","date","weekday","PLANS","userPlan","user","plan","isPaid","validateProps","props","appName","length","apiKey","supabaseUrl","test","name","undefined","includes","revenuecatId","appVersion"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Sent as `x-sdk-version` on every request. The backend uses its presence to
5
+ * tell 0.4+ (one support chat) from older builds still in the App Store, so
6
+ * keep it in step with package.json.
7
+ */
8
+ export const SDK_VERSION = '0.4.0';
9
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SDK_VERSION"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAG,OAAO","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { PushPermissionStatus, QueryType, ThreadsResponse } from './types';
1
+ import type { PushPermissionStatus, ThreadsResponse, UserPlan } from './types';
2
2
  export interface ApiConfig {
3
3
  supabaseUrl: string;
4
4
  apiKey: string;
@@ -27,22 +27,52 @@ export declare function registerPush(config: ApiConfig, input: {
27
27
  }): Promise<{
28
28
  ok: boolean;
29
29
  }>;
30
- export declare function submitQuery(config: ApiConfig, input: {
31
- queryType: QueryType;
32
- message: string;
33
- userName: string;
34
- isPaid: boolean;
30
+ /** Records the language the user reads and writes support messages in. */
31
+ export declare function setLanguage(config: ApiConfig, input: {
35
32
  revenuecatId: string;
36
- appVersion: string;
33
+ language: string;
37
34
  }): Promise<{
38
- query_id: string;
35
+ language: string;
39
36
  }>;
40
- export declare function postMessage(config: ApiConfig, input: {
41
- queryId: string;
37
+ /** What the backend is told about the current user. */
38
+ export interface ReportedUser {
39
+ name: string;
40
+ plan: UserPlan;
41
+ appVersion: string;
42
+ /** Decides which store a review request opens. */
43
+ platform?: 'ios' | 'android';
44
+ }
45
+ /**
46
+ * Sends one chat message. The server appends it to the user's open
47
+ * conversation, or starts one if none is open (a first message, or the first
48
+ * after a resolve).
49
+ */
50
+ export declare function sendMessage(config: ApiConfig, input: {
42
51
  revenuecatId: string;
43
52
  message: string;
53
+ language: string;
54
+ user: ReportedUser;
44
55
  }): Promise<{
56
+ query_id: string;
45
57
  message_id: string;
58
+ started: boolean;
59
+ }>;
60
+ /**
61
+ * Records the user in the app's directory, so the team can find and message
62
+ * them before they ever open support. Called on every load.
63
+ */
64
+ export declare function registerUser(config: ApiConfig, input: {
65
+ revenuecatId: string;
66
+ user: ReportedUser;
67
+ }): Promise<{
68
+ ok: boolean;
69
+ }>;
70
+ /** Records a tap on a review request's store button, for the dashboard. */
71
+ export declare function reviewOpened(config: ApiConfig, input: {
72
+ revenuecatId: string;
73
+ messageId: string;
74
+ }): Promise<{
75
+ ok: boolean;
46
76
  }>;
47
77
  export declare function markRead(config: ApiConfig, input: {
48
78
  queryId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,UAAQ;CAMpE;AA2CD,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnC;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAW1B;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/B;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CASjC;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ1B"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/E,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,UAAQ;CAMpE;AA6CD,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnC;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAW1B;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ/B;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAWD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;CACpB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAYrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAS1B;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAS1B;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ1B"}
@@ -1,8 +1,8 @@
1
1
  import type { SupportButtonProps } from '../types';
2
2
  /**
3
3
  * The single entry point of the SDK: a launcher with an unread badge that
4
- * opens the support bottom sheet. Threads, polling, and read receipts are
5
- * handled by useSupportThreads.
4
+ * opens the support chat in a bottom sheet. Conversations, polling, and read
5
+ * receipts are handled by useSupportThreads.
6
6
  */
7
7
  export declare function SupportButton(props: SupportButtonProps): import("react").JSX.Element | null;
8
8
  //# sourceMappingURL=SupportButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupportButton.d.ts","sourceRoot":"","sources":["../../../src/components/SupportButton.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAa,kBAAkB,EAAU,MAAM,UAAU,CAAC;AActE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,sCA4LtD"}
1
+ {"version":3,"file":"SupportButton.d.ts","sourceRoot":"","sources":["../../../src/components/SupportButton.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,UAAU,CAAC;AAU9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,sCAgVtD"}
@@ -2,14 +2,6 @@ export declare function ChatIcon({ color, size }: {
2
2
  color: string;
3
3
  size?: number;
4
4
  }): import("react").JSX.Element;
5
- export declare function PlusCircleIcon({ color, size }: {
6
- color: string;
7
- size?: number;
8
- }): import("react").JSX.Element;
9
- export declare function AlertCircleIcon({ color, size }: {
10
- color: string;
11
- size?: number;
12
- }): import("react").JSX.Element;
13
5
  /** Chevron built from two borders, rotated. direction: right | left | down. */
14
6
  export declare function Chevron({ color, size, direction, }: {
15
7
  color: string;
@@ -24,20 +16,24 @@ export declare function CheckIcon({ color, size }: {
24
16
  color: string;
25
17
  size?: number;
26
18
  }): import("react").JSX.Element;
19
+ /** Globe: circle, equator, and a pill standing in for the meridian curve. */
20
+ export declare function GlobeIcon({ color, size }: {
21
+ color: string;
22
+ size?: number;
23
+ }): import("react").JSX.Element;
27
24
  /** Send arrow: a stem plus a chevron head, both centered on the same axis. */
28
25
  export declare function ArrowUpIcon({ color, size }: {
29
26
  color: string;
30
27
  size?: number;
31
28
  }): import("react").JSX.Element;
32
29
  /**
33
- * The chat-bubble mark on the launcher button: a filled bubble with the
34
- * dots knocked out in the button's own fill color. Solid shapes read far
35
- * better than 1.5px strokes at launcher size and on top of a color fill.
30
+ * The mark on the launcher button. Solid shapes read far better than 1.5px
31
+ * strokes at launcher size and on top of a color fill.
36
32
  */
37
- export declare function ChatBubbleMark({ color, dotColor, size, }: {
33
+ export declare function ConversationMark({ color, holeColor, size, }: {
38
34
  color: string;
39
- /** The surface behind the mark — the dots are punched out in this color. */
40
- dotColor: string;
35
+ /** The surface behind the mark — the gap between the bubbles is cut in this color. */
36
+ holeColor: string;
41
37
  size?: number;
42
38
  }): import("react").JSX.Element;
43
39
  //# sourceMappingURL=icons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0B9E;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyBpF;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyBrF;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAS,EACT,SAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACvC,+BAeA;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAsCjF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,IAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,+BA4CA"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0B9E;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAS,EACT,SAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACvC,+BAeA;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAiC/E;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAsCjF;AAkBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,SAAS,EACT,IAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,+BA0CA"}
@@ -1,21 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
3
+ import type { Translator } from '../i18n';
3
4
  import type { SupportTheme } from '../theme';
4
- import type { QueryStatus, QueryType } from '../types';
5
- export declare function typeIcon(type: QueryType, color: string, size?: number): ReactNode;
6
- export declare function typeColor(type: QueryType, theme: SupportTheme): string;
7
- export declare function typeBackground(type: QueryType, theme: SupportTheme): string;
8
- /** Tinted round chip holding a type icon — the anchor of every list row. */
9
- export declare function TypeGlyph({ type, theme, size, }: {
10
- type: QueryType;
11
- theme: SupportTheme;
12
- size?: number;
13
- }): import("react").JSX.Element;
14
- /** Status dot + label — same visual language as the dashboard. */
15
- export declare function StatusIndicator({ status, theme, }: {
16
- status: QueryStatus;
17
- theme: SupportTheme;
18
- }): import("react").JSX.Element;
19
5
  /** Pressable row with the standard press wash. */
20
6
  export declare function PressableRow({ onPress, children, theme, style, accessibilityLabel, }: {
21
7
  onPress: () => void;
@@ -46,16 +32,6 @@ export declare function SecondaryButton({ label, onPress, theme, }: {
46
32
  onPress: () => void;
47
33
  theme: SupportTheme;
48
34
  }): import("react").JSX.Element;
49
- /** The count pill on a thread row. */
50
- export declare function UnreadPill({ count, theme, }: {
51
- count: number;
52
- theme: SupportTheme;
53
- }): import("react").JSX.Element;
54
- export declare function SectionLabel({ children, theme, style, }: {
55
- children: ReactNode;
56
- theme: SupportTheme;
57
- style?: StyleProp<TextStyle>;
58
- }): import("react").JSX.Element;
59
35
  /** Small muted icon + one line — no illustrations. */
60
36
  export declare function EmptyState({ message, hint, theme, icon, }: {
61
37
  message: string;
@@ -64,10 +40,11 @@ export declare function EmptyState({ message, hint, theme, icon, }: {
64
40
  icon?: ReactNode;
65
41
  }): import("react").JSX.Element;
66
42
  /** Inline failure state with retry — errors are designed, not toasted. */
67
- export declare function ErrorState({ message, onRetry, theme, }: {
43
+ export declare function ErrorState({ message, onRetry, theme, strings, }: {
68
44
  message: string;
69
45
  onRetry: () => void;
70
46
  theme: SupportTheme;
47
+ strings: Translator;
71
48
  }): import("react").JSX.Element;
72
49
  /** Pulsing block matching final layout dimensions. */
73
50
  export declare function SkeletonBlock({ width, height, theme, radius, style, }: {
@@ -84,8 +61,4 @@ export declare const textStyles: {
84
61
  secondary: (theme: SupportTheme) => TextStyle;
85
62
  meta: (theme: SupportTheme) => TextStyle;
86
63
  };
87
- export declare function TypeChipView({ type, theme, }: {
88
- type: QueryType;
89
- theme: SupportTheme;
90
- }): import("react").JSX.Element;
91
64
  //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Translator } from '../../i18n';
2
+ import { type Language } from '../../i18n/languages';
3
+ import type { SupportTheme } from '../../theme';
4
+ import type { Thread } from '../../types';
5
+ export declare function ChatScreen({ theme, strings, language, threads, loading, error, onRetry, onSend, onChangeLanguage, onClose, reviewLabel, onOpenReview, }: {
6
+ theme: SupportTheme;
7
+ strings: Translator;
8
+ language: Language;
9
+ threads: Thread[] | null;
10
+ loading: boolean;
11
+ error: string | null;
12
+ onRetry: () => void;
13
+ /** Resolves null on success, or a user-facing error message. */
14
+ onSend: (message: string) => Promise<string | null>;
15
+ onChangeLanguage: () => void;
16
+ onClose: () => void;
17
+ /** The review button's label, or null when this platform's store isn't set up. */
18
+ reviewLabel: string | null;
19
+ onOpenReview: (messageId: string) => void;
20
+ }): import("react").JSX.Element;
21
+ //# sourceMappingURL=ChatScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ChatScreen.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAmPzD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,YAAY,GACb,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,+BAgQA"}