@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,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useEffect, useRef } from 'react';
4
- import { Animated, Pressable, Text, View } from 'react-native';
4
+ import { Animated, Easing, Pressable, Text, View } from 'react-native';
5
5
  import { QUERY_TYPE_LABEL } from '../types';
6
6
  import { AlertCircleIcon, ChatIcon, PlusCircleIcon } from './icons';
7
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -24,6 +24,30 @@ export function typeColor(type, theme) {
24
24
  if (type === 'feature_request') return theme.colors.statusProgress;
25
25
  return theme.colors.statusOpen;
26
26
  }
27
+ export function typeBackground(type, theme) {
28
+ if (type === 'bug_report') return theme.colors.statusDangerBg;
29
+ if (type === 'feature_request') return theme.colors.statusProgressBg;
30
+ return theme.colors.statusOpenBg;
31
+ }
32
+
33
+ /** Tinted round chip holding a type icon — the anchor of every list row. */
34
+ export function TypeGlyph({
35
+ type,
36
+ theme,
37
+ size = 36
38
+ }) {
39
+ return /*#__PURE__*/_jsx(View, {
40
+ style: {
41
+ width: size,
42
+ height: size,
43
+ borderRadius: size / 2,
44
+ backgroundColor: typeBackground(type, theme),
45
+ alignItems: 'center',
46
+ justifyContent: 'center'
47
+ },
48
+ children: typeIcon(type, typeColor(type, theme), size * 0.44)
49
+ });
50
+ }
27
51
 
28
52
  /** Status dot + label — same visual language as the dashboard. */
29
53
  export function StatusIndicator({
@@ -54,7 +78,7 @@ export function StatusIndicator({
54
78
  });
55
79
  }
56
80
 
57
- /** Pressable row with the standard hover/press wash. */
81
+ /** Pressable row with the standard press wash. */
58
82
  export function PressableRow({
59
83
  onPress,
60
84
  children,
@@ -74,32 +98,72 @@ export function PressableRow({
74
98
  children: children
75
99
  });
76
100
  }
101
+
102
+ /** Circular icon button — back, close, send. */
103
+ export function IconButton({
104
+ onPress,
105
+ children,
106
+ theme,
107
+ accessibilityLabel,
108
+ size = 34,
109
+ disabled,
110
+ tone = 'surface'
111
+ }) {
112
+ const accent = tone === 'accent';
113
+ return /*#__PURE__*/_jsx(Pressable, {
114
+ onPress: onPress,
115
+ disabled: disabled,
116
+ hitSlop: 6,
117
+ accessibilityRole: "button",
118
+ accessibilityLabel: accessibilityLabel,
119
+ style: ({
120
+ pressed
121
+ }) => ({
122
+ width: size,
123
+ height: size,
124
+ borderRadius: size / 2,
125
+ alignItems: 'center',
126
+ justifyContent: 'center',
127
+ opacity: disabled ? 0.45 : 1,
128
+ backgroundColor: accent ? pressed ? theme.colors.accentHover : theme.colors.accent : pressed ? theme.colors.surfaceActive : theme.colors.surface,
129
+ borderWidth: accent ? 0 : 1,
130
+ borderColor: theme.colors.border
131
+ }),
132
+ children: children
133
+ });
134
+ }
77
135
  export function PrimaryButton({
78
136
  label,
79
137
  onPress,
80
138
  disabled,
81
- theme
139
+ theme,
140
+ fullWidth
82
141
  }) {
83
142
  return /*#__PURE__*/_jsx(Pressable, {
84
143
  onPress: onPress,
85
144
  disabled: disabled,
86
145
  accessibilityRole: "button",
146
+ accessibilityState: {
147
+ disabled: Boolean(disabled)
148
+ },
87
149
  style: ({
88
150
  pressed
89
151
  }) => ({
90
- height: 36,
91
- paddingHorizontal: 14,
152
+ height: 44,
153
+ alignSelf: fullWidth ? 'stretch' : 'flex-start',
154
+ paddingHorizontal: 18,
92
155
  borderRadius: theme.radii.control,
93
156
  backgroundColor: pressed ? theme.colors.accentHover : theme.colors.accent,
94
- opacity: disabled ? 0.5 : 1,
157
+ opacity: disabled ? 0.45 : 1,
95
158
  alignItems: 'center',
96
159
  justifyContent: 'center'
97
160
  }),
98
161
  children: /*#__PURE__*/_jsx(Text, {
99
162
  style: {
100
163
  color: theme.colors.accentForeground,
101
- fontSize: 13,
102
- fontWeight: '500'
164
+ fontSize: 14,
165
+ fontWeight: '600',
166
+ letterSpacing: -0.1
103
167
  },
104
168
  children: label
105
169
  })
@@ -116,8 +180,8 @@ export function SecondaryButton({
116
180
  style: ({
117
181
  pressed
118
182
  }) => ({
119
- height: 32,
120
- paddingHorizontal: 12,
183
+ height: 38,
184
+ paddingHorizontal: 16,
121
185
  borderRadius: theme.radii.control,
122
186
  borderWidth: 1,
123
187
  borderColor: theme.colors.border,
@@ -128,7 +192,7 @@ export function SecondaryButton({
128
192
  children: /*#__PURE__*/_jsx(Text, {
129
193
  style: {
130
194
  color: theme.colors.textPrimary,
131
- fontSize: 12,
195
+ fontSize: 13,
132
196
  fontWeight: '500'
133
197
  },
134
198
  children: label
@@ -136,27 +200,94 @@ export function SecondaryButton({
136
200
  });
137
201
  }
138
202
 
203
+ /** The count pill on a thread row. */
204
+ export function UnreadPill({
205
+ count,
206
+ theme
207
+ }) {
208
+ return /*#__PURE__*/_jsx(View, {
209
+ style: {
210
+ minWidth: 20,
211
+ height: 20,
212
+ paddingHorizontal: 6,
213
+ borderRadius: theme.radii.pill,
214
+ backgroundColor: theme.colors.accent,
215
+ alignItems: 'center',
216
+ justifyContent: 'center'
217
+ },
218
+ children: /*#__PURE__*/_jsx(Text, {
219
+ style: {
220
+ fontSize: 11,
221
+ lineHeight: 14,
222
+ fontWeight: '700',
223
+ color: theme.colors.accentForeground,
224
+ fontVariant: ['tabular-nums']
225
+ },
226
+ children: count > 99 ? '99+' : count
227
+ })
228
+ });
229
+ }
230
+ export function SectionLabel({
231
+ children,
232
+ theme,
233
+ style
234
+ }) {
235
+ return /*#__PURE__*/_jsx(Text, {
236
+ style: [{
237
+ fontSize: 11,
238
+ fontWeight: '600',
239
+ textTransform: 'uppercase',
240
+ letterSpacing: 0.6,
241
+ color: theme.colors.textTertiary
242
+ }, style],
243
+ children: children
244
+ });
245
+ }
246
+
139
247
  /** Small muted icon + one line — no illustrations. */
140
248
  export function EmptyState({
141
249
  message,
250
+ hint,
142
251
  theme,
143
252
  icon
144
253
  }) {
145
254
  return /*#__PURE__*/_jsxs(View, {
146
255
  style: {
147
256
  alignItems: 'center',
148
- paddingVertical: 40,
149
- gap: 8
257
+ paddingVertical: 44,
258
+ paddingHorizontal: 32,
259
+ gap: 10
150
260
  },
151
- children: [icon ?? /*#__PURE__*/_jsx(ChatIcon, {
152
- color: theme.colors.textTertiary,
153
- size: 16
261
+ children: [/*#__PURE__*/_jsx(View, {
262
+ style: {
263
+ width: 44,
264
+ height: 44,
265
+ borderRadius: 22,
266
+ alignItems: 'center',
267
+ justifyContent: 'center',
268
+ backgroundColor: theme.colors.surface,
269
+ borderWidth: 1,
270
+ borderColor: theme.colors.border
271
+ },
272
+ children: icon ?? /*#__PURE__*/_jsx(ChatIcon, {
273
+ color: theme.colors.textTertiary,
274
+ size: 18
275
+ })
154
276
  }), /*#__PURE__*/_jsx(Text, {
155
277
  style: {
156
- fontSize: 13,
157
- color: theme.colors.textSecondary
278
+ fontSize: 15,
279
+ fontWeight: '600',
280
+ color: theme.colors.textPrimary
158
281
  },
159
282
  children: message
283
+ }), hint !== undefined && /*#__PURE__*/_jsx(Text, {
284
+ style: {
285
+ fontSize: 13,
286
+ lineHeight: 19,
287
+ color: theme.colors.textSecondary,
288
+ textAlign: 'center'
289
+ },
290
+ children: hint
160
291
  })]
161
292
  });
162
293
  }
@@ -170,17 +301,17 @@ export function ErrorState({
170
301
  return /*#__PURE__*/_jsxs(View, {
171
302
  style: {
172
303
  alignItems: 'center',
173
- paddingVertical: 32,
174
- gap: 10
304
+ paddingVertical: 40,
305
+ gap: 12
175
306
  },
176
307
  children: [/*#__PURE__*/_jsx(Text, {
177
308
  style: {
178
- fontSize: 13,
309
+ fontSize: 14,
179
310
  color: theme.colors.textSecondary
180
311
  },
181
312
  children: message
182
313
  }), /*#__PURE__*/_jsx(SecondaryButton, {
183
- label: "Retry",
314
+ label: "Try again",
184
315
  onPress: onRetry,
185
316
  theme: theme
186
317
  })]
@@ -192,17 +323,20 @@ export function SkeletonBlock({
192
323
  width,
193
324
  height,
194
325
  theme,
326
+ radius,
195
327
  style
196
328
  }) {
197
- const opacity = useRef(new Animated.Value(0.5)).current;
329
+ const opacity = useRef(new Animated.Value(0.4)).current;
198
330
  useEffect(() => {
199
331
  const loop = Animated.loop(Animated.sequence([Animated.timing(opacity, {
200
- toValue: 1,
201
- duration: 600,
332
+ toValue: 0.9,
333
+ duration: 700,
334
+ easing: Easing.inOut(Easing.quad),
202
335
  useNativeDriver: true
203
336
  }), Animated.timing(opacity, {
204
- toValue: 0.5,
205
- duration: 600,
337
+ toValue: 0.4,
338
+ duration: 700,
339
+ easing: Easing.inOut(Easing.quad),
206
340
  useNativeDriver: true
207
341
  })]));
208
342
  loop.start();
@@ -212,7 +346,7 @@ export function SkeletonBlock({
212
346
  style: [{
213
347
  width,
214
348
  height,
215
- borderRadius: theme.radii.control,
349
+ borderRadius: radius ?? theme.radii.control,
216
350
  backgroundColor: theme.colors.surfaceActive,
217
351
  opacity
218
352
  }, style]
@@ -220,22 +354,29 @@ export function SkeletonBlock({
220
354
  }
221
355
  export const textStyles = {
222
356
  title: theme => ({
223
- fontSize: 16,
357
+ fontSize: 19,
358
+ fontWeight: '700',
359
+ letterSpacing: -0.4,
360
+ color: theme.colors.textPrimary
361
+ }),
362
+ heading: theme => ({
363
+ fontSize: 15,
224
364
  fontWeight: '600',
225
365
  letterSpacing: -0.2,
226
366
  color: theme.colors.textPrimary
227
367
  }),
228
368
  body: theme => ({
229
- fontSize: 14,
369
+ fontSize: 15,
230
370
  color: theme.colors.textPrimary,
231
- lineHeight: 20
371
+ lineHeight: 21
232
372
  }),
233
373
  secondary: theme => ({
234
374
  fontSize: 13,
375
+ lineHeight: 19,
235
376
  color: theme.colors.textSecondary
236
377
  }),
237
378
  meta: theme => ({
238
- fontSize: 11,
379
+ fontSize: 11.5,
239
380
  color: theme.colors.textTertiary,
240
381
  fontVariant: ['tabular-nums']
241
382
  })
@@ -245,22 +386,21 @@ export function TypeChipView({
245
386
  theme
246
387
  }) {
247
388
  const color = typeColor(type, theme);
248
- const bg = type === 'bug_report' ? theme.colors.statusDangerBg : type === 'feature_request' ? theme.colors.statusProgressBg : theme.colors.statusOpenBg;
249
389
  return /*#__PURE__*/_jsxs(View, {
250
390
  style: {
251
391
  flexDirection: 'row',
252
392
  alignItems: 'center',
253
393
  gap: 5,
254
- paddingHorizontal: 6,
255
- paddingVertical: 2,
256
- borderRadius: theme.radii.control,
257
- backgroundColor: bg,
394
+ paddingHorizontal: 8,
395
+ paddingVertical: 4,
396
+ borderRadius: theme.radii.pill,
397
+ backgroundColor: typeBackground(type, theme),
258
398
  alignSelf: 'flex-start'
259
399
  },
260
400
  children: [typeIcon(type, color, 11), /*#__PURE__*/_jsx(Text, {
261
401
  style: {
262
- fontSize: 11,
263
- fontWeight: '500',
402
+ fontSize: 11.5,
403
+ fontWeight: '600',
264
404
  color
265
405
  },
266
406
  children: QUERY_TYPE_LABEL[type]
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Animated","Pressable","Text","View","QUERY_TYPE_LABEL","AlertCircleIcon","ChatIcon","PlusCircleIcon","jsx","_jsx","jsxs","_jsxs","typeIcon","type","color","size","typeColor","theme","colors","statusDanger","statusProgress","statusOpen","StatusIndicator","status","statusResolved","style","flexDirection","alignItems","gap","children","width","height","borderRadius","backgroundColor","fontSize","PressableRow","onPress","accessibilityLabel","accessibilityRole","pressed","surfaceHover","PrimaryButton","label","disabled","paddingHorizontal","radii","control","accentHover","accent","opacity","justifyContent","accentForeground","fontWeight","SecondaryButton","borderWidth","borderColor","border","surface","textPrimary","EmptyState","message","icon","paddingVertical","textTertiary","textSecondary","ErrorState","onRetry","SkeletonBlock","Value","current","loop","sequence","timing","toValue","duration","useNativeDriver","start","stop","surfaceActive","textStyles","title","letterSpacing","body","lineHeight","secondary","meta","fontVariant","TypeChipView","bg","statusDangerBg","statusProgressBg","statusOpenBg","alignSelf"],"sourceRoot":"../../../src","sources":["components/primitives.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","Pressable","Text","View","QUERY_TYPE_LABEL","AlertCircleIcon","ChatIcon","PlusCircleIcon","jsx","_jsx","jsxs","_jsxs","typeIcon","type","color","size","typeColor","theme","colors","statusDanger","statusProgress","statusOpen","typeBackground","statusDangerBg","statusProgressBg","statusOpenBg","TypeGlyph","style","width","height","borderRadius","backgroundColor","alignItems","justifyContent","children","StatusIndicator","status","statusResolved","flexDirection","gap","fontSize","PressableRow","onPress","accessibilityLabel","accessibilityRole","pressed","surfaceHover","IconButton","disabled","tone","accent","hitSlop","opacity","accentHover","surfaceActive","surface","borderWidth","borderColor","border","PrimaryButton","label","fullWidth","accessibilityState","Boolean","alignSelf","paddingHorizontal","radii","control","accentForeground","fontWeight","letterSpacing","SecondaryButton","textPrimary","UnreadPill","count","minWidth","pill","lineHeight","fontVariant","SectionLabel","textTransform","textTertiary","EmptyState","message","hint","icon","paddingVertical","undefined","textSecondary","textAlign","ErrorState","onRetry","SkeletonBlock","radius","Value","current","loop","sequence","timing","toValue","duration","easing","inOut","quad","useNativeDriver","start","stop","textStyles","title","heading","body","secondary","meta","TypeChipView"],"sourceRoot":"../../../src","sources":["components/primitives.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,62 @@
1
1
  "use strict";
2
2
 
3
- import { useState } from 'react';
4
- import { KeyboardAvoidingView, Platform, Text, TextInput, View } from 'react-native';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { Animated, Easing, KeyboardAvoidingView, Platform, Text, TextInput, View } from 'react-native';
5
5
  import { QUERY_TYPE_LABEL, USER_MESSAGE_MAX, USER_MESSAGE_MIN } from '../../types';
6
6
  import { CheckIcon, Chevron } from '../icons';
7
- import { PressableRow, PrimaryButton, textStyles } from '../primitives';
7
+ import { IconButton, PrimaryButton, textStyles, TypeGlyph } from '../primitives';
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const PROMPT = {
10
+ feedback: 'What should we know?',
11
+ feature_request: 'What would you like to see?',
12
+ bug_report: 'What happened, and what did you expect?'
13
+ };
14
+ const SUBTITLE = {
15
+ feedback: 'Good or bad — it goes straight to the team.',
16
+ feature_request: 'Tell us what you are trying to do.',
17
+ bug_report: 'Steps, screen, and what you expected all help.'
18
+ };
19
+
20
+ /** Scales in once on success — the only celebratory motion in the SDK. */
21
+ function SentMark({
22
+ theme
23
+ }) {
24
+ const scale = useRef(new Animated.Value(0.6)).current;
25
+ const opacity = useRef(new Animated.Value(0)).current;
26
+ useEffect(() => {
27
+ Animated.parallel([Animated.timing(scale, {
28
+ toValue: 1,
29
+ duration: 320,
30
+ easing: Easing.bezier(0.16, 1, 0.3, 1),
31
+ useNativeDriver: true
32
+ }), Animated.timing(opacity, {
33
+ toValue: 1,
34
+ duration: 200,
35
+ easing: Easing.out(Easing.cubic),
36
+ useNativeDriver: true
37
+ })]).start();
38
+ }, [scale, opacity]);
39
+ return /*#__PURE__*/_jsx(Animated.View, {
40
+ style: {
41
+ width: 56,
42
+ height: 56,
43
+ borderRadius: 28,
44
+ backgroundColor: theme.colors.statusResolvedBg,
45
+ borderWidth: 1,
46
+ borderColor: theme.colors.statusResolved,
47
+ alignItems: 'center',
48
+ justifyContent: 'center',
49
+ opacity,
50
+ transform: [{
51
+ scale
52
+ }]
53
+ },
54
+ children: /*#__PURE__*/_jsx(CheckIcon, {
55
+ color: theme.colors.statusResolved,
56
+ size: 20
57
+ })
58
+ });
59
+ }
9
60
  export function ComposeScreen({
10
61
  theme,
11
62
  type,
@@ -19,6 +70,7 @@ export function ComposeScreen({
19
70
  const trimmed = message.trim();
20
71
  const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
21
72
  const overLimit = message.length > USER_MESSAGE_MAX;
73
+ const tooShort = trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN;
22
74
  async function handleSubmit() {
23
75
  if (!valid || submitting) return;
24
76
  setSubmitting(true);
@@ -33,34 +85,23 @@ export function ComposeScreen({
33
85
  flex: 1,
34
86
  alignItems: 'center',
35
87
  justifyContent: 'center',
36
- gap: 12,
37
- padding: 24
88
+ gap: 14,
89
+ paddingHorizontal: 32,
90
+ paddingBottom: 40
38
91
  },
39
- children: [/*#__PURE__*/_jsx(View, {
40
- style: {
41
- width: 40,
42
- height: 40,
43
- borderRadius: 20,
44
- borderWidth: 1,
45
- borderColor: theme.colors.statusResolved,
46
- alignItems: 'center',
47
- justifyContent: 'center'
48
- },
49
- children: /*#__PURE__*/_jsx(CheckIcon, {
50
- color: theme.colors.statusResolved,
51
- size: 14
52
- })
92
+ children: [/*#__PURE__*/_jsx(SentMark, {
93
+ theme: theme
53
94
  }), /*#__PURE__*/_jsx(Text, {
54
- style: textStyles.body(theme),
95
+ style: textStyles.title(theme),
55
96
  children: "Sent"
56
97
  }), /*#__PURE__*/_jsx(Text, {
57
98
  style: [textStyles.secondary(theme), {
58
99
  textAlign: 'center'
59
100
  }],
60
- children: "We'll reply here. You'll see the thread under Open."
101
+ children: "We'll reply right here. You'll find the conversation under Open, and the button shows a badge when we answer."
61
102
  }), /*#__PURE__*/_jsx(View, {
62
103
  style: {
63
- marginTop: 8
104
+ marginTop: 6
64
105
  },
65
106
  children: /*#__PURE__*/_jsx(PrimaryButton, {
66
107
  label: "Done",
@@ -79,26 +120,36 @@ export function ComposeScreen({
79
120
  style: {
80
121
  flexDirection: 'row',
81
122
  alignItems: 'center',
82
- gap: 8,
123
+ gap: 10,
83
124
  paddingHorizontal: 12,
84
- paddingBottom: 12
125
+ paddingBottom: 14
85
126
  },
86
- children: [/*#__PURE__*/_jsx(PressableRow, {
127
+ children: [/*#__PURE__*/_jsx(IconButton, {
87
128
  onPress: onBack,
88
129
  theme: theme,
89
- accessibilityLabel: "Back",
90
- style: {
91
- padding: 6,
92
- borderRadius: theme.radii.control
93
- },
130
+ accessibilityLabel: "Back to conversations",
131
+ size: 32,
94
132
  children: /*#__PURE__*/_jsx(Chevron, {
95
133
  color: theme.colors.textSecondary,
96
134
  direction: "left",
97
135
  size: 12
98
136
  })
99
- }), /*#__PURE__*/_jsx(Text, {
100
- style: textStyles.title(theme),
101
- children: QUERY_TYPE_LABEL[type]
137
+ }), /*#__PURE__*/_jsx(TypeGlyph, {
138
+ type: type,
139
+ theme: theme,
140
+ size: 32
141
+ }), /*#__PURE__*/_jsxs(View, {
142
+ style: {
143
+ flex: 1,
144
+ gap: 1
145
+ },
146
+ children: [/*#__PURE__*/_jsx(Text, {
147
+ style: textStyles.heading(theme),
148
+ children: QUERY_TYPE_LABEL[type]
149
+ }), /*#__PURE__*/_jsx(Text, {
150
+ style: textStyles.meta(theme),
151
+ children: SUBTITLE[type]
152
+ })]
102
153
  })]
103
154
  }), /*#__PURE__*/_jsxs(View, {
104
155
  style: {
@@ -113,53 +164,59 @@ export function ComposeScreen({
113
164
  },
114
165
  multiline: true,
115
166
  autoFocus: true,
116
- placeholder: type === 'bug_report' ? 'What happened, and what did you expect?' : type === 'feature_request' ? 'What would you like to see?' : 'What should we know?',
167
+ editable: !submitting,
168
+ placeholder: PROMPT[type],
117
169
  placeholderTextColor: theme.colors.textTertiary,
118
170
  style: {
119
- minHeight: 120,
120
- maxHeight: 220,
171
+ minHeight: 140,
172
+ maxHeight: 240,
121
173
  borderWidth: 1,
122
174
  borderColor: theme.colors.border,
123
- borderRadius: theme.radii.control,
175
+ borderRadius: theme.radii.card,
124
176
  backgroundColor: theme.colors.surface,
125
177
  color: theme.colors.textPrimary,
126
- fontSize: 14,
127
- lineHeight: 20,
128
- padding: 12,
178
+ fontSize: 15,
179
+ lineHeight: 21,
180
+ padding: 14,
129
181
  textAlignVertical: 'top'
130
182
  }
131
183
  }), /*#__PURE__*/_jsxs(View, {
132
184
  style: {
133
185
  flexDirection: 'row',
134
186
  alignItems: 'center',
135
- marginTop: 8,
136
- gap: 12
187
+ gap: 10,
188
+ paddingTop: 10,
189
+ paddingHorizontal: 2,
190
+ minHeight: 20
137
191
  },
138
- children: [/*#__PURE__*/_jsxs(Text, {
139
- style: [textStyles.meta(theme), overLimit && {
140
- color: theme.colors.statusDanger
141
- }],
142
- children: [message.length, "/", USER_MESSAGE_MAX]
143
- }), trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN && /*#__PURE__*/_jsxs(Text, {
144
- style: textStyles.meta(theme),
145
- children: ["At least ", USER_MESSAGE_MIN, " characters"]
146
- }), failedMessage !== null && /*#__PURE__*/_jsx(Text, {
192
+ children: [failedMessage !== null ? /*#__PURE__*/_jsx(Text, {
147
193
  style: {
148
- fontSize: 11,
194
+ fontSize: 12,
149
195
  color: theme.colors.statusDanger
150
196
  },
151
197
  children: failedMessage
152
- }), /*#__PURE__*/_jsx(View, {
153
- style: {
198
+ }) : tooShort ? /*#__PURE__*/_jsxs(Text, {
199
+ style: textStyles.meta(theme),
200
+ children: ["At least ", USER_MESSAGE_MIN, " characters"]
201
+ }) : null, /*#__PURE__*/_jsxs(Text, {
202
+ style: [textStyles.meta(theme), {
154
203
  marginLeft: 'auto'
155
- },
156
- children: /*#__PURE__*/_jsx(PrimaryButton, {
157
- label: submitting ? 'Sending…' : 'Send',
158
- onPress: handleSubmit,
159
- disabled: !valid || submitting,
160
- theme: theme
161
- })
204
+ }, overLimit && {
205
+ color: theme.colors.statusDanger
206
+ }],
207
+ children: [message.length, "/", USER_MESSAGE_MAX]
162
208
  })]
209
+ }), /*#__PURE__*/_jsx(View, {
210
+ style: {
211
+ paddingTop: 12
212
+ },
213
+ children: /*#__PURE__*/_jsx(PrimaryButton, {
214
+ label: submitting ? 'Sending…' : 'Send',
215
+ onPress: handleSubmit,
216
+ disabled: !valid || submitting,
217
+ theme: theme,
218
+ fullWidth: true
219
+ })
163
220
  })]
164
221
  })]
165
222
  });