@appsupportkit/support-sdk 0.1.2 → 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 (94) hide show
  1. package/lib/commonjs/components/BottomSheet.js +67 -47
  2. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  3. package/lib/commonjs/components/LauncherButton.js +177 -0
  4. package/lib/commonjs/components/LauncherButton.js.map +1 -0
  5. package/lib/commonjs/components/SupportButton.js +54 -176
  6. package/lib/commonjs/components/SupportButton.js.map +1 -1
  7. package/lib/commonjs/components/icons.js +74 -23
  8. package/lib/commonjs/components/icons.js.map +1 -1
  9. package/lib/commonjs/components/primitives.js +183 -38
  10. package/lib/commonjs/components/primitives.js.map +1 -1
  11. package/lib/commonjs/components/screens/ComposeScreen.js +115 -58
  12. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
  13. package/lib/commonjs/components/screens/HomeScreen.js +170 -115
  14. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
  15. package/lib/commonjs/components/screens/ThreadScreen.js +222 -108
  16. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/theme.js +136 -17
  19. package/lib/commonjs/theme.js.map +1 -1
  20. package/lib/commonjs/types.js +7 -0
  21. package/lib/commonjs/types.js.map +1 -1
  22. package/lib/commonjs/unread.js +92 -0
  23. package/lib/commonjs/unread.js.map +1 -0
  24. package/lib/commonjs/useSupportThreads.js +286 -0
  25. package/lib/commonjs/useSupportThreads.js.map +1 -0
  26. package/lib/commonjs/utils.js +33 -0
  27. package/lib/commonjs/utils.js.map +1 -1
  28. package/lib/module/components/BottomSheet.js +68 -48
  29. package/lib/module/components/BottomSheet.js.map +1 -1
  30. package/lib/module/components/LauncherButton.js +172 -0
  31. package/lib/module/components/LauncherButton.js.map +1 -0
  32. package/lib/module/components/SupportButton.js +57 -179
  33. package/lib/module/components/SupportButton.js.map +1 -1
  34. package/lib/module/components/icons.js +72 -22
  35. package/lib/module/components/icons.js.map +1 -1
  36. package/lib/module/components/primitives.js +179 -39
  37. package/lib/module/components/primitives.js.map +1 -1
  38. package/lib/module/components/screens/ComposeScreen.js +118 -61
  39. package/lib/module/components/screens/ComposeScreen.js.map +1 -1
  40. package/lib/module/components/screens/HomeScreen.js +172 -117
  41. package/lib/module/components/screens/HomeScreen.js.map +1 -1
  42. package/lib/module/components/screens/ThreadScreen.js +228 -112
  43. package/lib/module/components/screens/ThreadScreen.js.map +1 -1
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/theme.js +135 -16
  46. package/lib/module/theme.js.map +1 -1
  47. package/lib/module/types.js +7 -0
  48. package/lib/module/types.js.map +1 -1
  49. package/lib/module/unread.js +83 -0
  50. package/lib/module/unread.js.map +1 -0
  51. package/lib/module/useSupportThreads.js +281 -0
  52. package/lib/module/useSupportThreads.js.map +1 -0
  53. package/lib/module/utils.js +30 -0
  54. package/lib/module/utils.js.map +1 -1
  55. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  56. package/lib/typescript/components/LauncherButton.d.ts +14 -0
  57. package/lib/typescript/components/LauncherButton.d.ts.map +1 -0
  58. package/lib/typescript/components/SupportButton.d.ts +3 -3
  59. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  60. package/lib/typescript/components/icons.d.ts +13 -2
  61. package/lib/typescript/components/icons.d.ts.map +1 -1
  62. package/lib/typescript/components/primitives.d.ts +35 -4
  63. package/lib/typescript/components/primitives.d.ts.map +1 -1
  64. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
  65. package/lib/typescript/components/screens/HomeScreen.d.ts +3 -2
  66. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
  67. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
  68. package/lib/typescript/index.d.ts +1 -1
  69. package/lib/typescript/index.d.ts.map +1 -1
  70. package/lib/typescript/theme.d.ts +44 -3
  71. package/lib/typescript/theme.d.ts.map +1 -1
  72. package/lib/typescript/types.d.ts +22 -0
  73. package/lib/typescript/types.d.ts.map +1 -1
  74. package/lib/typescript/unread.d.ts +22 -0
  75. package/lib/typescript/unread.d.ts.map +1 -0
  76. package/lib/typescript/useSupportThreads.d.ts +28 -0
  77. package/lib/typescript/useSupportThreads.d.ts.map +1 -0
  78. package/lib/typescript/utils.d.ts +5 -0
  79. package/lib/typescript/utils.d.ts.map +1 -1
  80. package/package.json +2 -2
  81. package/src/components/BottomSheet.tsx +61 -43
  82. package/src/components/LauncherButton.tsx +217 -0
  83. package/src/components/SupportButton.tsx +52 -196
  84. package/src/components/icons.tsx +77 -19
  85. package/src/components/primitives.tsx +217 -36
  86. package/src/components/screens/ComposeScreen.tsx +131 -61
  87. package/src/components/screens/HomeScreen.tsx +168 -117
  88. package/src/components/screens/ThreadScreen.tsx +289 -119
  89. package/src/index.tsx +1 -0
  90. package/src/theme.ts +165 -18
  91. package/src/types.ts +24 -0
  92. package/src/unread.ts +91 -0
  93. package/src/useSupportThreads.ts +372 -0
  94. package/src/utils.ts +33 -0
@@ -11,6 +11,123 @@ var _utils = require("../../utils");
11
11
  var _icons = require("../icons");
12
12
  var _primitives = require("../primitives");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
+ /** Consecutive messages from one sender inside this window form a group. */const GROUP_WINDOW_MS = 5 * 60 * 1000;
15
+ /** The counter only appears once the limit is actually in play. */
16
+ const COUNTER_VISIBLE_FROM = _types.USER_MESSAGE_MAX - 60;
17
+ function buildRows(messages, unreadCount) {
18
+ // Unread messages are always the newest admin ones, so the divider goes
19
+ // above the Nth-from-last admin message.
20
+ let remaining = unreadCount;
21
+ let firstUnreadId = null;
22
+ for (let i = messages.length - 1; i >= 0 && remaining > 0; i -= 1) {
23
+ const candidate = messages[i];
24
+ if (candidate === undefined || candidate.sender !== 'admin') continue;
25
+ remaining -= 1;
26
+ firstUnreadId = candidate.id;
27
+ }
28
+ return messages.map((message, i) => {
29
+ const previous = i > 0 ? messages[i - 1] ?? null : null;
30
+ const next = i < messages.length - 1 ? messages[i + 1] ?? null : null;
31
+ const withinGroup = (a, b) => a !== null && a.sender === b.sender && a.admin_name === b.admin_name && Math.abs(Date.parse(b.created_at) - Date.parse(a.created_at)) < GROUP_WINDOW_MS;
32
+ const day = previous === null || !(0, _utils.isSameDay)(previous.created_at, message.created_at) ? (0, _utils.dayLabel)(message.created_at) : null;
33
+ const startsUnread = message.id === firstUnreadId;
34
+ return {
35
+ message,
36
+ // A separator always breaks a group.
37
+ firstInGroup: day !== null || startsUnread || !withinGroup(previous, message),
38
+ lastInGroup: next === null || next.id === firstUnreadId || !(0, _utils.isSameDay)(next.created_at, message.created_at) || !withinGroup(next, message),
39
+ day,
40
+ startsUnread
41
+ };
42
+ });
43
+ }
44
+ function Separator({
45
+ label,
46
+ theme,
47
+ tone = 'muted'
48
+ }) {
49
+ const color = tone === 'accent' ? theme.colors.accent : theme.colors.textTertiary;
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
51
+ style: {
52
+ flexDirection: 'row',
53
+ alignItems: 'center',
54
+ gap: 10,
55
+ paddingVertical: 6
56
+ },
57
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
58
+ style: {
59
+ flex: 1,
60
+ height: 1,
61
+ backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
62
+ }
63
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
64
+ style: {
65
+ fontSize: 11,
66
+ fontWeight: '600',
67
+ letterSpacing: 0.3,
68
+ color
69
+ },
70
+ children: label
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
72
+ style: {
73
+ flex: 1,
74
+ height: 1,
75
+ backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
76
+ }
77
+ })]
78
+ });
79
+ }
80
+ function MessageBubble({
81
+ row,
82
+ theme
83
+ }) {
84
+ const {
85
+ message,
86
+ firstInGroup,
87
+ lastInGroup
88
+ } = row;
89
+ const own = message.sender === 'user';
90
+ const round = theme.radii.bubble;
91
+ const tight = theme.radii.bubbleTail;
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
93
+ style: {
94
+ maxWidth: '86%',
95
+ alignSelf: own ? 'flex-end' : 'flex-start',
96
+ alignItems: own ? 'flex-end' : 'flex-start',
97
+ marginTop: firstInGroup ? 10 : 2,
98
+ gap: 4
99
+ },
100
+ children: [!own && firstInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
101
+ style: [_primitives.textStyles.meta(theme), {
102
+ paddingHorizontal: 4
103
+ }],
104
+ children: message.admin_name ?? 'Support'
105
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
106
+ style: {
107
+ paddingHorizontal: 14,
108
+ paddingVertical: 10,
109
+ backgroundColor: own ? theme.colors.accent : theme.colors.surface,
110
+ borderWidth: own ? 0 : 1,
111
+ borderColor: theme.colors.border,
112
+ borderTopLeftRadius: own || firstInGroup ? round : tight,
113
+ borderBottomLeftRadius: own || lastInGroup ? round : tight,
114
+ borderTopRightRadius: !own || firstInGroup ? round : tight,
115
+ borderBottomRightRadius: !own || lastInGroup ? round : tight
116
+ },
117
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
118
+ style: [_primitives.textStyles.body(theme), own && {
119
+ color: theme.colors.accentForeground
120
+ }],
121
+ children: message.body
122
+ })
123
+ }), lastInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
124
+ style: [_primitives.textStyles.meta(theme), {
125
+ paddingHorizontal: 4
126
+ }],
127
+ children: (0, _utils.formatTime)(message.created_at)
128
+ })]
129
+ });
130
+ }
14
131
  function ThreadScreen({
15
132
  theme,
16
133
  thread,
@@ -21,9 +138,14 @@ function ThreadScreen({
21
138
  const [sending, setSending] = (0, _react.useState)(false);
22
139
  const [failedMessage, setFailedMessage] = (0, _react.useState)(null);
23
140
  const scrollRef = (0, _react.useRef)(null);
141
+ // Captured once: opening the thread marks it read within a tick, but the
142
+ // "New" divider should stay put while the user is reading.
143
+ const [unreadOnOpen] = (0, _react.useState)(thread.unread_count);
24
144
  const resolved = thread.status === 'resolved';
25
145
  const trimmed = draft.trim();
26
146
  const valid = trimmed.length >= _types.USER_MESSAGE_MIN && trimmed.length <= _types.USER_MESSAGE_MAX;
147
+ const tooShort = trimmed.length > 0 && trimmed.length < _types.USER_MESSAGE_MIN;
148
+ const rows = (0, _react.useMemo)(() => buildRows(thread.messages, unreadOnOpen), [thread.messages, unreadOnOpen]);
27
149
  (0, _react.useEffect)(() => {
28
150
  scrollRef.current?.scrollToEnd({
29
151
  animated: false
@@ -46,20 +168,17 @@ function ThreadScreen({
46
168
  style: {
47
169
  flexDirection: 'row',
48
170
  alignItems: 'center',
49
- gap: 8,
171
+ gap: 10,
50
172
  paddingHorizontal: 12,
51
- paddingBottom: 10,
173
+ paddingBottom: 12,
52
174
  borderBottomWidth: 1,
53
175
  borderBottomColor: theme.colors.border
54
176
  },
55
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PressableRow, {
177
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
56
178
  onPress: onBack,
57
179
  theme: theme,
58
- accessibilityLabel: "Back",
59
- style: {
60
- padding: 6,
61
- borderRadius: theme.radii.control
62
- },
180
+ accessibilityLabel: "Back to conversations",
181
+ size: 32,
63
182
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
64
183
  color: theme.colors.textSecondary,
65
184
  direction: "left",
@@ -83,127 +202,122 @@ function ThreadScreen({
83
202
  flex: 1
84
203
  },
85
204
  contentContainerStyle: {
86
- padding: 16,
87
- gap: 10
205
+ paddingHorizontal: 16,
206
+ paddingVertical: 12
88
207
  },
89
- children: [thread.messages.map(m => {
90
- const own = m.sender === 'user';
91
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
92
- style: {
93
- maxWidth: '85%',
94
- alignSelf: own ? 'flex-end' : 'flex-start',
95
- alignItems: own ? 'flex-end' : 'flex-start',
96
- gap: 3
97
- },
98
- children: [!own && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
99
- style: _primitives.textStyles.meta(theme),
100
- children: m.admin_name ?? 'Support'
101
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
102
- style: {
103
- borderRadius: theme.radii.card,
104
- paddingHorizontal: 12,
105
- paddingVertical: 8,
106
- backgroundColor: own ? theme.colors.accentMuted : theme.colors.surface,
107
- borderWidth: own ? 0 : 1,
108
- borderColor: theme.colors.border
109
- },
110
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
111
- style: _primitives.textStyles.body(theme),
112
- children: m.body
113
- })
114
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
115
- style: _primitives.textStyles.meta(theme),
116
- children: (0, _utils.relativeTime)(m.created_at)
117
- })]
118
- }, m.id);
119
- }), resolved && thread.resolved_at && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
208
+ keyboardShouldPersistTaps: "handled",
209
+ onContentSizeChange: () => scrollRef.current?.scrollToEnd({
210
+ animated: false
211
+ }),
212
+ children: [rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
213
+ children: [row.day !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
214
+ label: row.day,
215
+ theme: theme
216
+ }), row.startsUnread && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
217
+ label: "New",
218
+ theme: theme,
219
+ tone: "accent"
220
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageBubble, {
221
+ row: row,
222
+ theme: theme
223
+ })]
224
+ }, row.message.id)), resolved && thread.resolved_at !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
120
225
  style: {
121
- flexDirection: 'row',
122
- alignItems: 'center',
123
- gap: 10,
124
- marginVertical: 6
226
+ marginTop: 16
125
227
  },
126
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
127
- style: {
128
- flex: 1,
129
- height: 1,
130
- backgroundColor: theme.colors.border
131
- }
132
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
133
- style: _primitives.textStyles.meta(theme),
134
- children: ["Resolved by ", thread.resolved_by_name ?? 'support', " \xB7", ' ', (0, _utils.formatDate)(thread.resolved_at)]
135
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
136
- style: {
137
- flex: 1,
138
- height: 1,
139
- backgroundColor: theme.colors.border
140
- }
141
- })]
228
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
229
+ label: `Resolved by ${thread.resolved_by_name ?? 'support'} · ${(0, _utils.formatDate)(thread.resolved_at)}`,
230
+ theme: theme
231
+ })
142
232
  })]
143
233
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
144
234
  style: {
145
235
  borderTopWidth: 1,
146
236
  borderTopColor: theme.colors.border,
147
237
  paddingHorizontal: 16,
148
- paddingTop: 10
238
+ paddingTop: 10,
239
+ paddingBottom: 4
149
240
  },
150
- children: resolved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
151
- style: [_primitives.textStyles.meta(theme), {
152
- textAlign: 'center',
153
- paddingVertical: 8
154
- }],
155
- children: "This thread is resolved and read-only"
241
+ children: resolved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
242
+ style: {
243
+ alignItems: 'center',
244
+ paddingVertical: 10,
245
+ borderRadius: theme.radii.control,
246
+ backgroundColor: theme.colors.surface
247
+ },
248
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
249
+ style: _primitives.textStyles.secondary(theme),
250
+ children: "This conversation is resolved and read-only"
251
+ })
156
252
  }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
157
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
158
- value: draft,
159
- onChangeText: v => {
160
- setDraft(v);
161
- setFailedMessage(null);
162
- },
163
- multiline: true,
164
- placeholder: "Reply",
165
- placeholderTextColor: theme.colors.textTertiary,
253
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
166
254
  style: {
167
- minHeight: 60,
168
- maxHeight: 120,
169
- borderWidth: 1,
170
- borderColor: theme.colors.border,
171
- borderRadius: theme.radii.control,
172
- backgroundColor: theme.colors.surface,
173
- color: theme.colors.textPrimary,
174
- fontSize: 14,
175
- lineHeight: 20,
176
- padding: 10,
177
- textAlignVertical: 'top'
178
- }
179
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
255
+ flexDirection: 'row',
256
+ alignItems: 'flex-end',
257
+ gap: 10
258
+ },
259
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
260
+ value: draft,
261
+ onChangeText: v => {
262
+ setDraft(v);
263
+ setFailedMessage(null);
264
+ },
265
+ multiline: true,
266
+ editable: !sending,
267
+ placeholder: "Write a reply\u2026",
268
+ placeholderTextColor: theme.colors.textTertiary,
269
+ style: {
270
+ flex: 1,
271
+ minHeight: 44,
272
+ maxHeight: 120,
273
+ borderWidth: 1,
274
+ borderColor: theme.colors.border,
275
+ borderRadius: theme.radii.cardLg,
276
+ backgroundColor: theme.colors.surface,
277
+ color: theme.colors.textPrimary,
278
+ fontSize: 15,
279
+ lineHeight: 20,
280
+ paddingHorizontal: 14,
281
+ paddingTop: 12,
282
+ paddingBottom: 12,
283
+ textAlignVertical: 'top'
284
+ }
285
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
286
+ onPress: handleSend,
287
+ theme: theme,
288
+ tone: "accent",
289
+ size: 44,
290
+ disabled: !valid || sending,
291
+ accessibilityLabel: sending ? 'Sending' : 'Send reply',
292
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ArrowUpIcon, {
293
+ color: theme.colors.accentForeground,
294
+ size: 19
295
+ })
296
+ })]
297
+ }), (tooShort || draft.length >= COUNTER_VISIBLE_FROM || failedMessage !== null) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
180
298
  style: {
181
299
  flexDirection: 'row',
182
300
  alignItems: 'center',
183
- gap: 12,
184
- paddingVertical: 8
301
+ gap: 10,
302
+ paddingTop: 8,
303
+ paddingHorizontal: 4
185
304
  },
186
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
187
- style: [_primitives.textStyles.meta(theme), draft.length > _types.USER_MESSAGE_MAX && {
188
- color: theme.colors.statusDanger
189
- }],
190
- children: [draft.length, "/", _types.USER_MESSAGE_MAX]
191
- }), failedMessage !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
305
+ children: [failedMessage !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
192
306
  style: {
193
- fontSize: 11,
307
+ fontSize: 12,
194
308
  color: theme.colors.statusDanger
195
309
  },
196
310
  children: failedMessage
197
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
198
- style: {
311
+ }) : tooShort ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
312
+ style: _primitives.textStyles.meta(theme),
313
+ children: ["At least ", _types.USER_MESSAGE_MIN, " characters"]
314
+ }) : null, draft.length >= COUNTER_VISIBLE_FROM && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
315
+ style: [_primitives.textStyles.meta(theme), {
199
316
  marginLeft: 'auto'
200
- },
201
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PrimaryButton, {
202
- label: sending ? 'Sending…' : 'Send',
203
- onPress: handleSend,
204
- disabled: !valid || sending,
205
- theme: theme
206
- })
317
+ }, draft.length > _types.USER_MESSAGE_MAX && {
318
+ color: theme.colors.statusDanger
319
+ }],
320
+ children: [draft.length, "/", _types.USER_MESSAGE_MAX]
207
321
  })]
208
322
  })]
209
323
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_types","_utils","_icons","_primitives","_jsxRuntime","ThreadScreen","theme","thread","onBack","onSend","draft","setDraft","useState","sending","setSending","failedMessage","setFailedMessage","scrollRef","useRef","resolved","status","trimmed","trim","valid","length","USER_MESSAGE_MIN","USER_MESSAGE_MAX","useEffect","current","scrollToEnd","animated","messages","handleSend","errorMessage","jsxs","KeyboardAvoidingView","style","flex","behavior","Platform","OS","undefined","children","View","flexDirection","alignItems","gap","paddingHorizontal","paddingBottom","borderBottomWidth","borderBottomColor","colors","border","jsx","PressableRow","onPress","accessibilityLabel","padding","borderRadius","radii","control","Chevron","color","textSecondary","direction","size","TypeChipView","type","StatusIndicator","Text","textStyles","meta","marginLeft","relativeTime","created_at","ScrollView","ref","contentContainerStyle","map","m","own","sender","maxWidth","alignSelf","admin_name","card","paddingVertical","backgroundColor","accentMuted","surface","borderWidth","borderColor","body","id","resolved_at","marginVertical","height","resolved_by_name","formatDate","borderTopWidth","borderTopColor","paddingTop","textAlign","Fragment","TextInput","value","onChangeText","v","multiline","placeholder","placeholderTextColor","textTertiary","minHeight","maxHeight","textPrimary","fontSize","lineHeight","textAlignVertical","statusDanger","PrimaryButton","label","disabled"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_types","_utils","_icons","_primitives","_jsxRuntime","GROUP_WINDOW_MS","COUNTER_VISIBLE_FROM","USER_MESSAGE_MAX","buildRows","messages","unreadCount","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","admin_name","Math","abs","Date","parse","created_at","day","isSameDay","dayLabel","startsUnread","firstInGroup","lastInGroup","Separator","label","theme","tone","color","colors","accent","textTertiary","jsxs","View","style","flexDirection","alignItems","gap","paddingVertical","children","jsx","flex","height","backgroundColor","accentMuted","border","Text","fontSize","fontWeight","letterSpacing","MessageBubble","row","own","round","radii","bubble","tight","bubbleTail","maxWidth","alignSelf","marginTop","textStyles","meta","paddingHorizontal","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","formatTime","ThreadScreen","thread","onBack","onSend","draft","setDraft","useState","sending","setSending","failedMessage","setFailedMessage","scrollRef","useRef","unreadOnOpen","unread_count","resolved","status","trimmed","trim","valid","USER_MESSAGE_MIN","tooShort","rows","useMemo","useEffect","current","scrollToEnd","animated","handleSend","errorMessage","KeyboardAvoidingView","behavior","Platform","OS","paddingBottom","borderBottomWidth","borderBottomColor","IconButton","onPress","accessibilityLabel","size","Chevron","textSecondary","direction","TypeChipView","type","StatusIndicator","marginLeft","relativeTime","ScrollView","ref","contentContainerStyle","keyboardShouldPersistTaps","onContentSizeChange","resolved_at","resolved_by_name","formatDate","borderTopWidth","borderTopColor","paddingTop","borderRadius","control","secondary","Fragment","TextInput","value","onChangeText","v","multiline","editable","placeholder","placeholderTextColor","minHeight","maxHeight","cardLg","textPrimary","lineHeight","textAlignVertical","disabled","ArrowUpIcon","statusDanger"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_SupportButton","require","_theme","_api","_push","_types"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAaA,IAAAI,MAAA,GAAAJ,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_SupportButton","require","_theme","_api","_push","_types"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAcA,IAAAI,MAAA,GAAAJ,OAAA","ignoreList":[]}
@@ -4,26 +4,145 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.resolveTheme = resolveTheme;
7
- exports.supportLightTheme = exports.supportDarkTheme = void 0;
7
+ exports.supportRadii = exports.supportLightTheme = exports.supportDarkTheme = void 0;
8
8
  var _designTokens = require("@appsupportkit/design-tokens");
9
9
  // The SDK consumes the same design tokens as the admin dashboard, so both
10
- // surfaces look like one product.
10
+ // surfaces look like one product. On top of those it adds the few values
11
+ // that only exist on mobile: sheet/bubble radii and the elevation used by
12
+ // the launcher and the sheet (the web side gets those from CSS).
11
13
 
12
- const supportDarkTheme = exports.supportDarkTheme = {
13
- name: 'dark',
14
- colors: _designTokens.darkColors,
15
- spacing: _designTokens.spacing,
16
- radii: _designTokens.radii,
17
- motion: _designTokens.motion
14
+ /** Rounder than the dashboard: touch targets read better with more radius. */
15
+ const supportRadii = exports.supportRadii = {
16
+ ..._designTokens.radii,
17
+ control: 10,
18
+ card: 14,
19
+ cardLg: 18,
20
+ /** Message bubbles. */
21
+ bubble: 18,
22
+ /** The tight corner on a bubble's sender side. */
23
+ bubbleTail: 6,
24
+ sheet: 24,
25
+ pill: 999
18
26
  };
19
- const supportLightTheme = exports.supportLightTheme = {
20
- name: 'light',
21
- colors: _designTokens.lightColors,
22
- spacing: _designTokens.spacing,
23
- radii: _designTokens.radii,
24
- motion: _designTokens.motion
25
- };
26
- function resolveTheme(name) {
27
- return name === 'light' ? supportLightTheme : supportDarkTheme;
27
+
28
+ /**
29
+ * The launcher sits on the host app's own background rather than on an SDK
30
+ * surface, so the two themes need different treatment: on near-black a
31
+ * solid fill needs a hairline to separate from the background and a black
32
+ * shadow, while on white the accent-tinted shadow does that work and a
33
+ * borderless mark has to be darkened to stay legible.
34
+ */
35
+
36
+ // Color helpers come first: the themes below are built at module load, so
37
+ // anything they reach for has to already be initialized. (A `const` used
38
+ // before its definition survives tsc but lands as `undefined` on Hermes.)
39
+ const HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
40
+ function parseHex(color) {
41
+ const match = HEX.exec(color.trim());
42
+ const digits = match?.[1];
43
+ if (digits === undefined) return null;
44
+ const hex = digits.length === 3 ? digits.split('').map(c => c + c).join('') : digits;
45
+ return [parseInt(hex.slice(0, 2), 16), parseInt(hex.slice(2, 4), 16), parseInt(hex.slice(4, 6), 16)];
46
+ }
47
+ function mix([r, g, b], target, amount) {
48
+ const channel = c => Math.round(c + (target - c) * amount);
49
+ return `rgb(${channel(r)}, ${channel(g)}, ${channel(b)})`;
50
+ }
51
+ function shadowsFor(name, accent) {
52
+ const dark = name === 'dark';
53
+ return {
54
+ launcher: {
55
+ // Tinting the launcher's shadow with the accent is what makes it read
56
+ // as lifted rather than pasted on.
57
+ shadowColor: dark ? '#000000' : accent,
58
+ shadowOpacity: dark ? 0.45 : 0.3,
59
+ shadowRadius: 14,
60
+ shadowOffset: {
61
+ width: 0,
62
+ height: 6
63
+ },
64
+ elevation: 8
65
+ },
66
+ sheet: {
67
+ shadowColor: '#000000',
68
+ shadowOpacity: dark ? 0.5 : 0.16,
69
+ shadowRadius: 24,
70
+ shadowOffset: {
71
+ width: 0,
72
+ height: -6
73
+ },
74
+ elevation: 24
75
+ },
76
+ badge: {
77
+ shadowColor: '#000000',
78
+ shadowOpacity: 0.25,
79
+ shadowRadius: 3,
80
+ shadowOffset: {
81
+ width: 0,
82
+ height: 1
83
+ },
84
+ elevation: 3
85
+ }
86
+ };
87
+ }
88
+ function launcherFor(name, accent) {
89
+ const rgb = parseHex(accent);
90
+ return {
91
+ solidRing: name === 'dark' ? 'rgba(255, 255, 255, 0.14)' : 'rgba(0, 0, 0, 0.06)',
92
+ // On a dark app background the raw accent is too close to the surface
93
+ // to read as a glyph; lift it toward white.
94
+ minimalMark: name === 'dark' && rgb !== null ? mix(rgb, 255, 0.35) : accent
95
+ };
96
+ }
97
+ function buildTheme(name, colors) {
98
+ return {
99
+ name,
100
+ colors,
101
+ spacing: _designTokens.spacing,
102
+ radii: supportRadii,
103
+ motion: _designTokens.motion,
104
+ shadows: shadowsFor(name, colors.accent),
105
+ launcher: launcherFor(name, colors.accent)
106
+ };
107
+ }
108
+ const supportDarkTheme = exports.supportDarkTheme = buildTheme('dark', _designTokens.darkColors);
109
+ const supportLightTheme = exports.supportLightTheme = buildTheme('light', _designTokens.lightColors);
110
+
111
+ /**
112
+ * Derives the accent family from a single brand color: a pressed shade, the
113
+ * 12% wash used behind chips and own-message bubbles, and a foreground that
114
+ * stays legible on top (dark text on light brands, white on dark ones).
115
+ */
116
+ function withAccent(theme, accent) {
117
+ const rgb = parseHex(accent);
118
+ if (!rgb) return theme;
119
+ const [r, g, b] = rgb;
120
+ // Relative luminance, sRGB coefficients — good enough to pick a foreground.
121
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
122
+ const colors = {
123
+ ...theme.colors,
124
+ accent,
125
+ accentHover: mix(rgb, theme.name === 'dark' ? 255 : 0, 0.12),
126
+ accentMuted: `rgba(${r}, ${g}, ${b}, 0.12)`,
127
+ accentForeground: luminance > 0.62 ? '#111113' : '#FFFFFF',
128
+ statusOpen: accent,
129
+ statusOpenBg: `rgba(${r}, ${g}, ${b}, 0.10)`,
130
+ focusRing: accent
131
+ };
132
+ return {
133
+ ...theme,
134
+ colors,
135
+ shadows: shadowsFor(theme.name, accent),
136
+ launcher: launcherFor(theme.name, accent)
137
+ };
138
+ }
139
+
140
+ /**
141
+ * @param name "light" | "dark" (default dark).
142
+ * @param accentColor Optional brand color (hex) replacing the default accent.
143
+ */
144
+ function resolveTheme(name, accentColor) {
145
+ const base = name === 'light' ? supportLightTheme : supportDarkTheme;
146
+ return accentColor ? withAccent(base, accentColor) : base;
28
147
  }
29
148
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_designTokens","require","supportDarkTheme","exports","name","colors","darkColors","spacing","radii","motion","supportLightTheme","lightColors","resolveTheme"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":";;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAFA;AACA;;AAmBO,MAAMC,gBAA8B,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC5CE,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEC,wBAAU;EAClBC,OAAO,EAAPA,qBAAO;EACPC,KAAK,EAALA,mBAAK;EACLC,MAAM,EAANA;AACF,CAAC;AAEM,MAAMC,iBAA+B,GAAAP,OAAA,CAAAO,iBAAA,GAAG;EAC7CN,IAAI,EAAE,OAAO;EACbC,MAAM,EAAEM,yBAAW;EACnBJ,OAAO,EAAPA,qBAAO;EACPC,KAAK,EAALA,mBAAK;EACLC,MAAM,EAANA;AACF,CAAC;AAEM,SAASG,YAAYA,CAACR,IAA2B,EAAgB;EACtE,OAAOA,IAAI,KAAK,OAAO,GAAGM,iBAAiB,GAAGR,gBAAgB;AAChE","ignoreList":[]}
1
+ {"version":3,"names":["_designTokens","require","supportRadii","exports","radii","control","card","cardLg","bubble","bubbleTail","sheet","pill","HEX","parseHex","color","match","exec","trim","digits","undefined","hex","length","split","map","c","join","parseInt","slice","mix","r","g","b","target","amount","channel","Math","round","shadowsFor","name","accent","dark","launcher","shadowColor","shadowOpacity","shadowRadius","shadowOffset","width","height","elevation","badge","launcherFor","rgb","solidRing","minimalMark","buildTheme","colors","spacing","motion","shadows","supportDarkTheme","darkColors","supportLightTheme","lightColors","withAccent","theme","luminance","accentHover","accentMuted","accentForeground","statusOpen","statusOpenBg","focusRing","resolveTheme","accentColor","base"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.USER_MESSAGE_MIN = exports.USER_MESSAGE_MAX = exports.QUERY_TYPE_LABEL = void 0;
7
+ /**
8
+ * How the launcher renders:
9
+ * solid — accent fill, elevated. The floating action button.
10
+ * soft — app surface + hairline border. Sits in a header or toolbar.
11
+ * minimal — bare mark, no fill or border. Sits in a nav bar.
12
+ */
13
+
7
14
  const QUERY_TYPE_LABEL = exports.QUERY_TYPE_LABEL = {
8
15
  feedback: 'Feedback',
9
16
  feature_request: 'Feature request',
@@ -1 +1 @@
1
- {"version":3,"names":["QUERY_TYPE_LABEL","exports","feedback","feature_request","bug_report","USER_MESSAGE_MIN","USER_MESSAGE_MAX"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AAiFO,MAAMA,gBAA2C,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACzDE,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,iBAAiB;EAClCC,UAAU,EAAE;AACd,CAAC;AAEM,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,EAAE;AAC3B,MAAMC,gBAAgB,GAAAL,OAAA,CAAAK,gBAAA,GAAG,GAAG","ignoreList":[]}
1
+ {"version":3,"names":["QUERY_TYPE_LABEL","exports","feedback","feature_request","bug_report","USER_MESSAGE_MIN","USER_MESSAGE_MAX"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;;AA4FO,MAAMA,gBAA2C,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACzDE,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,iBAAiB;EAClCC,UAAU,EAAE;AACd,CAAC;AAEM,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,EAAE;AAC3B,MAAMC,gBAAgB,GAAAL,OAAA,CAAAK,gBAAA,GAAG,GAAG","ignoreList":[]}