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