@appsupportkit/support-sdk 0.1.2 → 0.3.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 (224) hide show
  1. package/lib/commonjs/api.js +17 -2
  2. package/lib/commonjs/api.js.map +1 -1
  3. package/lib/commonjs/components/BottomSheet.js +67 -47
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  5. package/lib/commonjs/components/LauncherButton.js +177 -0
  6. package/lib/commonjs/components/LauncherButton.js.map +1 -0
  7. package/lib/commonjs/components/SupportButton.js +168 -190
  8. package/lib/commonjs/components/SupportButton.js.map +1 -1
  9. package/lib/commonjs/components/icons.js +110 -23
  10. package/lib/commonjs/components/icons.js.map +1 -1
  11. package/lib/commonjs/components/primitives.js +191 -44
  12. package/lib/commonjs/components/primitives.js.map +1 -1
  13. package/lib/commonjs/components/screens/ComposeScreen.js +108 -60
  14. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
  15. package/lib/commonjs/components/screens/HomeScreen.js +221 -118
  16. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
  17. package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
  18. package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
  19. package/lib/commonjs/components/screens/ThreadScreen.js +237 -111
  20. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
  21. package/lib/commonjs/i18n/index.js +101 -0
  22. package/lib/commonjs/i18n/index.js.map +1 -0
  23. package/lib/commonjs/i18n/languages.js +95 -0
  24. package/lib/commonjs/i18n/languages.js.map +1 -0
  25. package/lib/commonjs/i18n/strings/de.js +72 -0
  26. package/lib/commonjs/i18n/strings/de.js.map +1 -0
  27. package/lib/commonjs/i18n/strings/en.js +88 -0
  28. package/lib/commonjs/i18n/strings/en.js.map +1 -0
  29. package/lib/commonjs/i18n/strings/es.js +72 -0
  30. package/lib/commonjs/i18n/strings/es.js.map +1 -0
  31. package/lib/commonjs/i18n/strings/fr.js +72 -0
  32. package/lib/commonjs/i18n/strings/fr.js.map +1 -0
  33. package/lib/commonjs/i18n/strings/hi.js +72 -0
  34. package/lib/commonjs/i18n/strings/hi.js.map +1 -0
  35. package/lib/commonjs/i18n/strings/it.js +72 -0
  36. package/lib/commonjs/i18n/strings/it.js.map +1 -0
  37. package/lib/commonjs/i18n/strings/ja.js +72 -0
  38. package/lib/commonjs/i18n/strings/ja.js.map +1 -0
  39. package/lib/commonjs/i18n/strings/ko.js +72 -0
  40. package/lib/commonjs/i18n/strings/ko.js.map +1 -0
  41. package/lib/commonjs/i18n/strings/nl.js +72 -0
  42. package/lib/commonjs/i18n/strings/nl.js.map +1 -0
  43. package/lib/commonjs/i18n/strings/pl.js +72 -0
  44. package/lib/commonjs/i18n/strings/pl.js.map +1 -0
  45. package/lib/commonjs/i18n/strings/pt.js +72 -0
  46. package/lib/commonjs/i18n/strings/pt.js.map +1 -0
  47. package/lib/commonjs/i18n/strings/ru.js +72 -0
  48. package/lib/commonjs/i18n/strings/ru.js.map +1 -0
  49. package/lib/commonjs/i18n/strings/tr.js +72 -0
  50. package/lib/commonjs/i18n/strings/tr.js.map +1 -0
  51. package/lib/commonjs/i18n/strings/zh.js +72 -0
  52. package/lib/commonjs/i18n/strings/zh.js.map +1 -0
  53. package/lib/commonjs/index.js +31 -0
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/theme.js +136 -17
  56. package/lib/commonjs/theme.js.map +1 -1
  57. package/lib/commonjs/types.js +18 -0
  58. package/lib/commonjs/types.js.map +1 -1
  59. package/lib/commonjs/unread.js +92 -0
  60. package/lib/commonjs/unread.js.map +1 -0
  61. package/lib/commonjs/useSupportThreads.js +296 -0
  62. package/lib/commonjs/useSupportThreads.js.map +1 -0
  63. package/lib/commonjs/utils.js +58 -10
  64. package/lib/commonjs/utils.js.map +1 -1
  65. package/lib/module/api.js +16 -2
  66. package/lib/module/api.js.map +1 -1
  67. package/lib/module/components/BottomSheet.js +68 -48
  68. package/lib/module/components/BottomSheet.js.map +1 -1
  69. package/lib/module/components/LauncherButton.js +172 -0
  70. package/lib/module/components/LauncherButton.js.map +1 -0
  71. package/lib/module/components/SupportButton.js +172 -194
  72. package/lib/module/components/SupportButton.js.map +1 -1
  73. package/lib/module/components/icons.js +107 -22
  74. package/lib/module/components/icons.js.map +1 -1
  75. package/lib/module/components/primitives.js +187 -45
  76. package/lib/module/components/primitives.js.map +1 -1
  77. package/lib/module/components/screens/ComposeScreen.js +114 -64
  78. package/lib/module/components/screens/ComposeScreen.js.map +1 -1
  79. package/lib/module/components/screens/HomeScreen.js +224 -121
  80. package/lib/module/components/screens/HomeScreen.js.map +1 -1
  81. package/lib/module/components/screens/LanguageScreen.js +147 -0
  82. package/lib/module/components/screens/LanguageScreen.js.map +1 -0
  83. package/lib/module/components/screens/ThreadScreen.js +243 -115
  84. package/lib/module/components/screens/ThreadScreen.js.map +1 -1
  85. package/lib/module/i18n/index.js +56 -0
  86. package/lib/module/i18n/index.js.map +1 -0
  87. package/lib/module/i18n/languages.js +88 -0
  88. package/lib/module/i18n/languages.js.map +1 -0
  89. package/lib/module/i18n/strings/de.js +68 -0
  90. package/lib/module/i18n/strings/de.js.map +1 -0
  91. package/lib/module/i18n/strings/en.js +84 -0
  92. package/lib/module/i18n/strings/en.js.map +1 -0
  93. package/lib/module/i18n/strings/es.js +68 -0
  94. package/lib/module/i18n/strings/es.js.map +1 -0
  95. package/lib/module/i18n/strings/fr.js +68 -0
  96. package/lib/module/i18n/strings/fr.js.map +1 -0
  97. package/lib/module/i18n/strings/hi.js +68 -0
  98. package/lib/module/i18n/strings/hi.js.map +1 -0
  99. package/lib/module/i18n/strings/it.js +68 -0
  100. package/lib/module/i18n/strings/it.js.map +1 -0
  101. package/lib/module/i18n/strings/ja.js +68 -0
  102. package/lib/module/i18n/strings/ja.js.map +1 -0
  103. package/lib/module/i18n/strings/ko.js +68 -0
  104. package/lib/module/i18n/strings/ko.js.map +1 -0
  105. package/lib/module/i18n/strings/nl.js +68 -0
  106. package/lib/module/i18n/strings/nl.js.map +1 -0
  107. package/lib/module/i18n/strings/pl.js +68 -0
  108. package/lib/module/i18n/strings/pl.js.map +1 -0
  109. package/lib/module/i18n/strings/pt.js +68 -0
  110. package/lib/module/i18n/strings/pt.js.map +1 -0
  111. package/lib/module/i18n/strings/ru.js +68 -0
  112. package/lib/module/i18n/strings/ru.js.map +1 -0
  113. package/lib/module/i18n/strings/tr.js +68 -0
  114. package/lib/module/i18n/strings/tr.js.map +1 -0
  115. package/lib/module/i18n/strings/zh.js +68 -0
  116. package/lib/module/i18n/strings/zh.js.map +1 -0
  117. package/lib/module/index.js +1 -0
  118. package/lib/module/index.js.map +1 -1
  119. package/lib/module/theme.js +135 -16
  120. package/lib/module/theme.js.map +1 -1
  121. package/lib/module/types.js +18 -0
  122. package/lib/module/types.js.map +1 -1
  123. package/lib/module/unread.js +83 -0
  124. package/lib/module/unread.js.map +1 -0
  125. package/lib/module/useSupportThreads.js +291 -0
  126. package/lib/module/useSupportThreads.js.map +1 -0
  127. package/lib/module/utils.js +55 -10
  128. package/lib/module/utils.js.map +1 -1
  129. package/lib/typescript/api.d.ts +9 -0
  130. package/lib/typescript/api.d.ts.map +1 -1
  131. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  132. package/lib/typescript/components/LauncherButton.d.ts +14 -0
  133. package/lib/typescript/components/LauncherButton.d.ts.map +1 -0
  134. package/lib/typescript/components/SupportButton.d.ts +3 -3
  135. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  136. package/lib/typescript/components/icons.d.ts +18 -2
  137. package/lib/typescript/components/icons.d.ts.map +1 -1
  138. package/lib/typescript/components/primitives.d.ts +42 -7
  139. package/lib/typescript/components/primitives.d.ts.map +1 -1
  140. package/lib/typescript/components/screens/ComposeScreen.d.ts +3 -1
  141. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
  142. package/lib/typescript/components/screens/HomeScreen.d.ts +8 -2
  143. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
  144. package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
  145. package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
  146. package/lib/typescript/components/screens/ThreadScreen.d.ts +3 -1
  147. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
  148. package/lib/typescript/i18n/index.d.ts +15 -0
  149. package/lib/typescript/i18n/index.d.ts.map +1 -0
  150. package/lib/typescript/i18n/languages.d.ts +36 -0
  151. package/lib/typescript/i18n/languages.d.ts.map +1 -0
  152. package/lib/typescript/i18n/strings/de.d.ts +3 -0
  153. package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
  154. package/lib/typescript/i18n/strings/en.d.ts +83 -0
  155. package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
  156. package/lib/typescript/i18n/strings/es.d.ts +3 -0
  157. package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
  158. package/lib/typescript/i18n/strings/fr.d.ts +3 -0
  159. package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
  160. package/lib/typescript/i18n/strings/hi.d.ts +3 -0
  161. package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
  162. package/lib/typescript/i18n/strings/it.d.ts +3 -0
  163. package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
  164. package/lib/typescript/i18n/strings/ja.d.ts +3 -0
  165. package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
  166. package/lib/typescript/i18n/strings/ko.d.ts +3 -0
  167. package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
  168. package/lib/typescript/i18n/strings/nl.d.ts +3 -0
  169. package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
  170. package/lib/typescript/i18n/strings/pl.d.ts +3 -0
  171. package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
  172. package/lib/typescript/i18n/strings/pt.d.ts +3 -0
  173. package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
  174. package/lib/typescript/i18n/strings/ru.d.ts +3 -0
  175. package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
  176. package/lib/typescript/i18n/strings/tr.d.ts +3 -0
  177. package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
  178. package/lib/typescript/i18n/strings/zh.d.ts +3 -0
  179. package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
  180. package/lib/typescript/index.d.ts +2 -1
  181. package/lib/typescript/index.d.ts.map +1 -1
  182. package/lib/typescript/theme.d.ts +44 -3
  183. package/lib/typescript/theme.d.ts.map +1 -1
  184. package/lib/typescript/types.d.ts +54 -2
  185. package/lib/typescript/types.d.ts.map +1 -1
  186. package/lib/typescript/unread.d.ts +22 -0
  187. package/lib/typescript/unread.d.ts.map +1 -0
  188. package/lib/typescript/useSupportThreads.d.ts +38 -0
  189. package/lib/typescript/useSupportThreads.d.ts.map +1 -0
  190. package/lib/typescript/utils.d.ts +8 -2
  191. package/lib/typescript/utils.d.ts.map +1 -1
  192. package/package.json +3 -3
  193. package/src/api.ts +24 -1
  194. package/src/components/BottomSheet.tsx +61 -43
  195. package/src/components/LauncherButton.tsx +217 -0
  196. package/src/components/SupportButton.tsx +195 -210
  197. package/src/components/icons.tsx +113 -19
  198. package/src/components/primitives.tsx +230 -39
  199. package/src/components/screens/ComposeScreen.tsx +129 -63
  200. package/src/components/screens/HomeScreen.tsx +230 -120
  201. package/src/components/screens/LanguageScreen.tsx +172 -0
  202. package/src/components/screens/ThreadScreen.tsx +319 -122
  203. package/src/i18n/index.ts +81 -0
  204. package/src/i18n/languages.ts +106 -0
  205. package/src/i18n/strings/de.ts +78 -0
  206. package/src/i18n/strings/en.ts +94 -0
  207. package/src/i18n/strings/es.ts +77 -0
  208. package/src/i18n/strings/fr.ts +78 -0
  209. package/src/i18n/strings/hi.ts +77 -0
  210. package/src/i18n/strings/it.ts +77 -0
  211. package/src/i18n/strings/ja.ts +77 -0
  212. package/src/i18n/strings/ko.ts +76 -0
  213. package/src/i18n/strings/nl.ts +77 -0
  214. package/src/i18n/strings/pl.ts +77 -0
  215. package/src/i18n/strings/pt.ts +77 -0
  216. package/src/i18n/strings/ru.ts +77 -0
  217. package/src/i18n/strings/tr.ts +77 -0
  218. package/src/i18n/strings/zh.ts +75 -0
  219. package/src/index.tsx +9 -0
  220. package/src/theme.ts +165 -18
  221. package/src/types.ts +56 -2
  222. package/src/unread.ts +91 -0
  223. package/src/useSupportThreads.ts +392 -0
  224. package/src/utils.ts +48 -10
@@ -9,6 +9,7 @@ exports.getUnreadCount = getUnreadCount;
9
9
  exports.markRead = markRead;
10
10
  exports.postMessage = postMessage;
11
11
  exports.registerPush = registerPush;
12
+ exports.setLanguage = setLanguage;
12
13
  exports.submitQuery = submitQuery;
13
14
  // Thin client for the Supabase Edge Functions. Every call authenticates with
14
15
  // the per-app x-api-key header; no Supabase JS client is needed on-device.
@@ -86,6 +87,17 @@ function registerPush(config, input) {
86
87
  })
87
88
  });
88
89
  }
90
+
91
+ /** Records the language the user reads and writes support messages in. */
92
+ function setLanguage(config, input) {
93
+ return request(config, 'set-language', {
94
+ method: 'POST',
95
+ body: JSON.stringify({
96
+ revenuecat_id: input.revenuecatId,
97
+ language: input.language
98
+ })
99
+ });
100
+ }
89
101
  function submitQuery(config, input) {
90
102
  return request(config, 'submit-query', {
91
103
  method: 'POST',
@@ -96,7 +108,9 @@ function submitQuery(config, input) {
96
108
  user_name: input.userName,
97
109
  is_paid: input.isPaid,
98
110
  revenuecat_id: input.revenuecatId,
99
- app_version: input.appVersion
111
+ app_version: input.appVersion,
112
+ // Sent on every write so a lost set-language call self-heals.
113
+ language: input.language
100
114
  })
101
115
  });
102
116
  }
@@ -106,7 +120,8 @@ function postMessage(config, input) {
106
120
  body: JSON.stringify({
107
121
  query_id: input.queryId,
108
122
  revenuecat_id: input.revenuecatId,
109
- message: input.message
123
+ message: input.message,
124
+ language: input.language
110
125
  })
111
126
  });
112
127
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SupportApiError","Error","constructor","message","status","offline","name","exports","request","config","path","init","url","supabaseUrl","replace","response","fetch","headers","apiKey","payload","json","ok","error","getThreads","revenuecatId","params","URLSearchParams","revenuecat_id","toString","method","getUnreadCount","registerPush","input","body","JSON","stringify","app_name","appName","permission_status","permissionStatus","expo_push_token","expoPushToken","asked","submitQuery","query_type","queryType","user_name","userName","is_paid","isPaid","app_version","appVersion","postMessage","query_id","queryId","markRead"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SupportApiError","Error","constructor","message","status","offline","name","exports","request","config","path","init","url","supabaseUrl","replace","response","fetch","headers","apiKey","payload","json","ok","error","getThreads","revenuecatId","params","URLSearchParams","revenuecat_id","toString","method","getUnreadCount","registerPush","input","body","JSON","stringify","app_name","appName","permission_status","permissionStatus","expo_push_token","expoPushToken","asked","setLanguage","language","submitQuery","query_type","queryType","user_name","userName","is_paid","isPaid","app_version","appVersion","postMessage","query_id","queryId","markRead"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
@@ -11,12 +11,17 @@ var _jsxRuntime = require("react/jsx-runtime");
11
11
  // Bottom sheet built on the built-in Modal + Animated APIs.
12
12
  //
13
13
  // Why no sheet library: the SDK needs exactly one detent, a drag handle, a
14
- // backdrop fade, and a 180ms ease-out slide — all achievable with core APIs.
14
+ // backdrop fade, and a short ease-out slide — all achievable with core APIs.
15
15
  // Skipping reanimated/gesture-handler keeps the package free of native
16
16
  // dependencies and install friction for consumers.
17
+ //
18
+ // `visible` drives a single animation path: the sheet stays mounted until
19
+ // its exit finishes, so closing from the header button, the backdrop, the
20
+ // hardware back button, or a drag all animate identically — and a reopen
21
+ // always starts from off-screen instead of appearing already in place.
17
22
 
18
- const SLIDE_MS = 180; // motion.slow — ease-out, no springs, no bounce.
19
-
23
+ const SLIDE_MS = 260;
24
+ const FADE_MS = 200;
20
25
  function BottomSheet({
21
26
  visible,
22
27
  onClose,
@@ -26,45 +31,57 @@ function BottomSheet({
26
31
  const {
27
32
  height: windowHeight
28
33
  } = (0, _reactNative.useWindowDimensions)();
29
- const sheetHeight = Math.min(windowHeight * 0.82, 640);
34
+ const sheetHeight = Math.min(windowHeight * 0.88, 720);
35
+ const [rendered, setRendered] = (0, _react.useState)(false);
30
36
  const translateY = (0, _react.useRef)(new _reactNative.Animated.Value(sheetHeight)).current;
31
37
  const backdrop = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
32
- const animateIn = (0, _react.useCallback)(() => {
33
- _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
34
- toValue: 0,
35
- duration: SLIDE_MS,
36
- easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
37
- useNativeDriver: true
38
- }), _reactNative.Animated.timing(backdrop, {
39
- toValue: 1,
40
- duration: SLIDE_MS,
41
- easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
42
- useNativeDriver: true
43
- })]).start();
44
- }, [translateY, backdrop]);
45
- const animateOut = (0, _react.useCallback)(done => {
46
- _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
47
- toValue: sheetHeight,
48
- duration: SLIDE_MS,
49
- easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
50
- useNativeDriver: true
51
- }), _reactNative.Animated.timing(backdrop, {
52
- toValue: 0,
53
- duration: SLIDE_MS,
54
- easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
55
- useNativeDriver: true
56
- })]).start(({
57
- finished
58
- }) => {
59
- if (finished) done();
60
- });
61
- }, [translateY, backdrop, sheetHeight]);
38
+ /** Whether the entrance has already played for the current open. */
39
+ const shown = (0, _react.useRef)(false);
40
+ (0, _react.useEffect)(() => {
41
+ if (visible) setRendered(true);
42
+ }, [visible]);
62
43
  (0, _react.useEffect)(() => {
63
- if (visible) animateIn();
64
- }, [visible, animateIn]);
44
+ if (!rendered) return;
45
+ if (visible && !shown.current) {
46
+ shown.current = true;
47
+ translateY.setValue(sheetHeight);
48
+ _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
49
+ toValue: 0,
50
+ duration: SLIDE_MS,
51
+ easing: _reactNative.Easing.bezier(0.16, 1, 0.3, 1),
52
+ useNativeDriver: true
53
+ }), _reactNative.Animated.timing(backdrop, {
54
+ toValue: 1,
55
+ duration: FADE_MS,
56
+ easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
57
+ useNativeDriver: true
58
+ })]).start();
59
+ return;
60
+ }
61
+ if (!visible && shown.current) {
62
+ shown.current = false;
63
+ // Starts from wherever the sheet is now, so a drag that crosses the
64
+ // dismiss threshold continues rather than jumping.
65
+ _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
66
+ toValue: sheetHeight,
67
+ duration: theme.motion.slow,
68
+ easing: _reactNative.Easing.in(_reactNative.Easing.cubic),
69
+ useNativeDriver: true
70
+ }), _reactNative.Animated.timing(backdrop, {
71
+ toValue: 0,
72
+ duration: theme.motion.slow,
73
+ easing: _reactNative.Easing.in(_reactNative.Easing.cubic),
74
+ useNativeDriver: true
75
+ })]).start(({
76
+ finished
77
+ }) => {
78
+ if (finished) setRendered(false);
79
+ });
80
+ }
81
+ }, [rendered, visible, sheetHeight, translateY, backdrop, theme.motion.slow]);
65
82
  const requestClose = (0, _react.useCallback)(() => {
66
- animateOut(onClose);
67
- }, [animateOut, onClose]);
83
+ onClose();
84
+ }, [onClose]);
68
85
 
69
86
  // Drag handle: follow the finger downward; past 25% (or a flick), dismiss.
70
87
  const panResponder = (0, _react.useRef)(_reactNative.PanResponder.create({
@@ -79,14 +96,14 @@ function BottomSheet({
79
96
  } else {
80
97
  _reactNative.Animated.timing(translateY, {
81
98
  toValue: 0,
82
- duration: SLIDE_MS,
99
+ duration: theme.motion.slow,
83
100
  easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
84
101
  useNativeDriver: true
85
102
  }).start();
86
103
  }
87
104
  }
88
105
  })).current;
89
- if (!visible) return null;
106
+ if (!rendered) return null;
90
107
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
91
108
  visible: true,
92
109
  transparent: true,
@@ -106,7 +123,7 @@ function BottomSheet({
106
123
  right: 0,
107
124
  bottom: 0,
108
125
  left: 0,
109
- backgroundColor: 'rgba(0,0,0,0.5)',
126
+ backgroundColor: 'rgba(0,0,0,0.55)',
110
127
  opacity: backdrop
111
128
  },
112
129
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
@@ -119,27 +136,30 @@ function BottomSheet({
119
136
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
120
137
  style: {
121
138
  height: sheetHeight,
122
- backgroundColor: theme.colors.overlay,
139
+ backgroundColor: theme.colors.bg,
123
140
  borderTopLeftRadius: theme.radii.sheet,
124
141
  borderTopRightRadius: theme.radii.sheet,
125
142
  borderWidth: 1,
126
143
  borderBottomWidth: 0,
127
144
  borderColor: theme.colors.border,
145
+ overflow: 'hidden',
128
146
  transform: [{
129
147
  translateY
130
- }]
148
+ }],
149
+ ...theme.shadows.sheet
131
150
  },
132
151
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
133
152
  ...panResponder.panHandlers,
134
153
  style: {
135
154
  alignItems: 'center',
136
- paddingVertical: 10
155
+ paddingTop: 10,
156
+ paddingBottom: 6
137
157
  },
138
158
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
139
159
  style: {
140
- width: 32,
141
- height: 4,
142
- borderRadius: 2,
160
+ width: 40,
161
+ height: 5,
162
+ borderRadius: 3,
143
163
  backgroundColor: theme.colors.borderStrong
144
164
  }
145
165
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeSafeAreaContext","_jsxRuntime","SLIDE_MS","BottomSheet","visible","onClose","theme","children","height","windowHeight","useWindowDimensions","sheetHeight","Math","min","translateY","useRef","Animated","Value","current","backdrop","animateIn","useCallback","parallel","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","start","animateOut","done","finished","useEffect","requestClose","panResponder","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","_e","g","abs","dy","onPanResponderMove","setValue","onPanResponderRelease","vy","jsx","Modal","transparent","animationType","onRequestClose","statusBarTranslucent","SafeAreaProvider","jsxs","View","style","flex","justifyContent","position","top","right","bottom","left","backgroundColor","opacity","Pressable","onPress","accessibilityLabel","colors","overlay","borderTopLeftRadius","radii","sheet","borderTopRightRadius","borderWidth","borderBottomWidth","borderColor","border","transform","panHandlers","alignItems","paddingVertical","width","borderRadius","borderStrong","SafeAreaView","edges"],"sourceRoot":"../../../src","sources":["components/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeSafeAreaContext","_jsxRuntime","SLIDE_MS","FADE_MS","BottomSheet","visible","onClose","theme","children","height","windowHeight","useWindowDimensions","sheetHeight","Math","min","rendered","setRendered","useState","translateY","useRef","Animated","Value","current","backdrop","shown","useEffect","setValue","parallel","timing","toValue","duration","easing","Easing","bezier","useNativeDriver","out","cubic","start","motion","slow","in","finished","requestClose","useCallback","panResponder","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","_e","g","abs","dy","onPanResponderMove","onPanResponderRelease","vy","jsx","Modal","transparent","animationType","onRequestClose","statusBarTranslucent","SafeAreaProvider","jsxs","View","style","flex","justifyContent","position","top","right","bottom","left","backgroundColor","opacity","Pressable","onPress","accessibilityLabel","colors","bg","borderTopLeftRadius","radii","sheet","borderTopRightRadius","borderWidth","borderBottomWidth","borderColor","border","overflow","transform","shadows","panHandlers","alignItems","paddingTop","paddingBottom","width","borderRadius","borderStrong","SafeAreaView","edges"],"sourceRoot":"../../../src","sources":["components/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LauncherButton = LauncherButton;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _icons = require("./icons");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ // The launcher: the one piece of the SDK that lives inside the host app's
12
+ // own UI, so it has to look intentional next to anything. Three variants
13
+ // cover the placements that actually occur — a floating action button, a
14
+ // bordered button in a header, and a bare icon in a toolbar.
15
+
16
+ const PRESS_SCALE = 0.93;
17
+
18
+ /** Counts stay legible: three digits in a pill is not a design. */
19
+ function badgeLabel(unread) {
20
+ return unread > 99 ? '99+' : String(unread);
21
+ }
22
+ function LauncherButton({
23
+ theme,
24
+ unread,
25
+ variant = 'solid',
26
+ size = 52,
27
+ label,
28
+ style,
29
+ onPress
30
+ }) {
31
+ const scale = (0, _react.useRef)(new _reactNative.Animated.Value(1)).current;
32
+ const pulse = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
33
+ const previousUnread = (0, _react.useRef)(unread);
34
+
35
+ // A new reply pulses the halo twice, then stops. Enough to catch the eye
36
+ // on the way past; not a permanently animating element in someone's app.
37
+ (0, _react.useEffect)(() => {
38
+ if (unread > previousUnread.current) {
39
+ pulse.setValue(0);
40
+ const animation = _reactNative.Animated.loop(_reactNative.Animated.timing(pulse, {
41
+ toValue: 1,
42
+ duration: 1600,
43
+ easing: _reactNative.Easing.out(_reactNative.Easing.ease),
44
+ useNativeDriver: true
45
+ }), {
46
+ iterations: 2
47
+ });
48
+ animation.start(() => pulse.setValue(0));
49
+ previousUnread.current = unread;
50
+ return () => animation.stop();
51
+ }
52
+ previousUnread.current = unread;
53
+ return undefined;
54
+ }, [unread, pulse]);
55
+ const press = to => _reactNative.Animated.timing(scale, {
56
+ toValue: to,
57
+ duration: to === 1 ? theme.motion.base : theme.motion.fast,
58
+ easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
59
+ useNativeDriver: true
60
+ }).start();
61
+ const solid = variant === 'solid';
62
+ const soft = variant === 'soft';
63
+ const fill = solid ? theme.colors.accent : soft ? theme.colors.surface : 'transparent';
64
+ const markColor = solid ? theme.colors.accentForeground : soft ? theme.colors.accent : theme.launcher.minimalMark;
65
+ // Dots are punched out of the bubble in whatever sits behind the mark —
66
+ // the button's own fill, or the app background when there isn't one.
67
+ const markHoleColor = solid ? theme.colors.accent : soft ? theme.colors.surface : theme.colors.bg;
68
+ // Dark: a hairline separates the fill from a near-black app background.
69
+ // Light: the accent-tinted shadow already does that, so the ring only has
70
+ // to keep the edge from looking soft.
71
+ const border = solid ? {
72
+ borderWidth: 1,
73
+ borderColor: theme.launcher.solidRing
74
+ } : soft ? {
75
+ borderWidth: 1,
76
+ borderColor: theme.colors.border
77
+ } : {
78
+ borderWidth: 0,
79
+ borderColor: 'transparent'
80
+ };
81
+ const badgeBg = solid ? theme.colors.accentForeground : theme.colors.accent;
82
+ const badgeFg = solid ? theme.colors.accent : theme.colors.accentForeground;
83
+ const height = label ? Math.max(44, size * 0.84) : size;
84
+ const markSize = Math.round(size * (label ? 0.36 : 0.42));
85
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
86
+ style: [{
87
+ transform: [{
88
+ scale
89
+ }]
90
+ }, style]
91
+ // The halo and badge sit outside the button's bounds.
92
+ ,
93
+ pointerEvents: "box-none",
94
+ children: [unread > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
95
+ pointerEvents: "none",
96
+ style: {
97
+ position: 'absolute',
98
+ top: 0,
99
+ left: 0,
100
+ width: label ? undefined : size,
101
+ right: label ? 0 : undefined,
102
+ height,
103
+ borderRadius: theme.radii.pill,
104
+ backgroundColor: theme.colors.accent,
105
+ opacity: pulse.interpolate({
106
+ inputRange: [0, 1],
107
+ outputRange: [0.28, 0]
108
+ }),
109
+ transform: [{
110
+ scale: pulse.interpolate({
111
+ inputRange: [0, 1],
112
+ outputRange: [1, 1.5]
113
+ })
114
+ }]
115
+ }
116
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
117
+ onPress: onPress,
118
+ onPressIn: () => press(PRESS_SCALE),
119
+ onPressOut: () => press(1),
120
+ hitSlop: 8,
121
+ accessibilityRole: "button",
122
+ accessibilityLabel: unread > 0 ? `Support, ${unread} unread ${unread === 1 ? 'reply' : 'replies'}` : 'Support',
123
+ style: {
124
+ height,
125
+ width: label ? undefined : size,
126
+ paddingHorizontal: label ? 18 : 0,
127
+ flexDirection: 'row',
128
+ alignItems: 'center',
129
+ justifyContent: 'center',
130
+ gap: 9,
131
+ borderRadius: theme.radii.pill,
132
+ backgroundColor: fill,
133
+ ...border,
134
+ ...(variant === 'minimal' ? null : theme.shadows.launcher)
135
+ },
136
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ChatBubbleMark, {
137
+ color: markColor,
138
+ dotColor: markHoleColor,
139
+ size: markSize
140
+ }), label !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
141
+ style: {
142
+ fontSize: 15,
143
+ fontWeight: '600',
144
+ letterSpacing: -0.1,
145
+ color: solid ? theme.colors.accentForeground : theme.colors.textPrimary
146
+ },
147
+ children: label
148
+ })]
149
+ }), unread > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
150
+ pointerEvents: "none",
151
+ style: {
152
+ position: 'absolute',
153
+ top: -5,
154
+ right: -5,
155
+ minWidth: 19,
156
+ height: 19,
157
+ borderRadius: theme.radii.pill,
158
+ paddingHorizontal: 5,
159
+ backgroundColor: badgeBg,
160
+ alignItems: 'center',
161
+ justifyContent: 'center',
162
+ ...theme.shadows.badge
163
+ },
164
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
165
+ style: {
166
+ fontSize: 11,
167
+ lineHeight: 14,
168
+ fontWeight: '700',
169
+ color: badgeFg,
170
+ fontVariant: ['tabular-nums']
171
+ },
172
+ children: badgeLabel(unread)
173
+ })
174
+ })]
175
+ });
176
+ }
177
+ //# sourceMappingURL=LauncherButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_icons","_jsxRuntime","PRESS_SCALE","badgeLabel","unread","String","LauncherButton","theme","variant","size","label","style","onPress","scale","useRef","Animated","Value","current","pulse","previousUnread","useEffect","setValue","animation","loop","timing","toValue","duration","easing","Easing","out","ease","useNativeDriver","iterations","start","stop","undefined","press","to","motion","base","fast","cubic","solid","soft","fill","colors","accent","surface","markColor","accentForeground","launcher","minimalMark","markHoleColor","bg","border","borderWidth","borderColor","solidRing","badgeBg","badgeFg","height","Math","max","markSize","round","jsxs","View","transform","pointerEvents","children","jsx","position","top","left","width","right","borderRadius","radii","pill","backgroundColor","opacity","interpolate","inputRange","outputRange","Pressable","onPressIn","onPressOut","hitSlop","accessibilityRole","accessibilityLabel","paddingHorizontal","flexDirection","alignItems","justifyContent","gap","shadows","ChatBubbleMark","color","dotColor","Text","fontSize","fontWeight","letterSpacing","textPrimary","minWidth","badge","lineHeight","fontVariant"],"sourceRoot":"../../../src","sources":["components/LauncherButton.tsx"],"mappings":"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","ignoreList":[]}