@appsupportkit/support-sdk 0.1.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 (87) hide show
  1. package/lib/commonjs/api.js +93 -0
  2. package/lib/commonjs/api.js.map +1 -0
  3. package/lib/commonjs/components/BottomSheet.js +158 -0
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -0
  5. package/lib/commonjs/components/SupportButton.js +244 -0
  6. package/lib/commonjs/components/SupportButton.js.map +1 -0
  7. package/lib/commonjs/components/icons.js +236 -0
  8. package/lib/commonjs/components/icons.js.map +1 -0
  9. package/lib/commonjs/components/primitives.js +284 -0
  10. package/lib/commonjs/components/primitives.js.map +1 -0
  11. package/lib/commonjs/components/screens/ComposeScreen.js +171 -0
  12. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -0
  13. package/lib/commonjs/components/screens/HomeScreen.js +227 -0
  14. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -0
  15. package/lib/commonjs/components/screens/ThreadScreen.js +213 -0
  16. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -0
  17. package/lib/commonjs/index.js +58 -0
  18. package/lib/commonjs/index.js.map +1 -0
  19. package/lib/commonjs/package.json +1 -0
  20. package/lib/commonjs/theme.js +29 -0
  21. package/lib/commonjs/theme.js.map +1 -0
  22. package/lib/commonjs/types.js +14 -0
  23. package/lib/commonjs/types.js.map +1 -0
  24. package/lib/commonjs/utils.js +63 -0
  25. package/lib/commonjs/utils.js.map +1 -0
  26. package/lib/module/api.js +84 -0
  27. package/lib/module/api.js.map +1 -0
  28. package/lib/module/components/BottomSheet.js +153 -0
  29. package/lib/module/components/BottomSheet.js.map +1 -0
  30. package/lib/module/components/SupportButton.js +240 -0
  31. package/lib/module/components/SupportButton.js.map +1 -0
  32. package/lib/module/components/icons.js +225 -0
  33. package/lib/module/components/icons.js.map +1 -0
  34. package/lib/module/components/primitives.js +270 -0
  35. package/lib/module/components/primitives.js.map +1 -0
  36. package/lib/module/components/screens/ComposeScreen.js +167 -0
  37. package/lib/module/components/screens/ComposeScreen.js.map +1 -0
  38. package/lib/module/components/screens/HomeScreen.js +223 -0
  39. package/lib/module/components/screens/HomeScreen.js.map +1 -0
  40. package/lib/module/components/screens/ThreadScreen.js +209 -0
  41. package/lib/module/components/screens/ThreadScreen.js.map +1 -0
  42. package/lib/module/index.js +7 -0
  43. package/lib/module/index.js.map +1 -0
  44. package/lib/module/package.json +1 -0
  45. package/lib/module/theme.js +23 -0
  46. package/lib/module/theme.js.map +1 -0
  47. package/lib/module/types.js +10 -0
  48. package/lib/module/types.js.map +1 -0
  49. package/lib/module/utils.js +57 -0
  50. package/lib/module/utils.js.map +1 -0
  51. package/lib/typescript/api.d.ts +37 -0
  52. package/lib/typescript/api.d.ts.map +1 -0
  53. package/lib/typescript/components/BottomSheet.d.ts +9 -0
  54. package/lib/typescript/components/BottomSheet.d.ts.map +1 -0
  55. package/lib/typescript/components/SupportButton.d.ts +8 -0
  56. package/lib/typescript/components/SupportButton.d.ts.map +1 -0
  57. package/lib/typescript/components/icons.d.ts +32 -0
  58. package/lib/typescript/components/icons.d.ts.map +1 -0
  59. package/lib/typescript/components/primitives.d.ts +60 -0
  60. package/lib/typescript/components/primitives.d.ts.map +1 -0
  61. package/lib/typescript/components/screens/ComposeScreen.d.ts +10 -0
  62. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -0
  63. package/lib/typescript/components/screens/HomeScreen.d.ts +13 -0
  64. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -0
  65. package/lib/typescript/components/screens/ThreadScreen.d.ts +10 -0
  66. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -0
  67. package/lib/typescript/index.d.ts +6 -0
  68. package/lib/typescript/index.d.ts.map +1 -0
  69. package/lib/typescript/theme.d.ts +13 -0
  70. package/lib/typescript/theme.d.ts.map +1 -0
  71. package/lib/typescript/types.d.ts +61 -0
  72. package/lib/typescript/types.d.ts.map +1 -0
  73. package/lib/typescript/utils.d.ts +11 -0
  74. package/lib/typescript/utils.d.ts.map +1 -0
  75. package/package.json +51 -0
  76. package/src/api.ts +125 -0
  77. package/src/components/BottomSheet.tsx +173 -0
  78. package/src/components/SupportButton.tsx +265 -0
  79. package/src/components/icons.tsx +189 -0
  80. package/src/components/primitives.tsx +298 -0
  81. package/src/components/screens/ComposeScreen.tsx +163 -0
  82. package/src/components/screens/HomeScreen.tsx +234 -0
  83. package/src/components/screens/ThreadScreen.tsx +227 -0
  84. package/src/index.tsx +24 -0
  85. package/src/theme.ts +39 -0
  86. package/src/types.ts +71 -0
  87. package/src/utils.ts +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScrollView","Text","View","QUERY_TYPE_LABEL","relativeTime","Chevron","CloseIcon","EmptyState","ErrorState","PressableRow","SkeletonBlock","textStyles","typeColor","typeIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","COMPOSE_TYPES","ThreadRow","thread","theme","onPress","preview","last_message","body","accessibilityLabel","type","style","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","colors","border","children","flexDirection","alignItems","gap","unread_count","width","height","borderRadius","backgroundColor","accent","fontSize","fontWeight","color","meta","marginLeft","created_at","marginTop","numberOfLines","flex","textPrimary","textSecondary","textTertiary","HomeScreen","threads","loading","error","onRetry","onCompose","onOpenThread","onClose","open","filter","t","status","resolved","paddingBottom","title","padding","radii","control","size","marginHorizontal","borderWidth","borderColor","card","surface","overflow","map","i","toLowerCase","borderTopWidth","borderTopColor","message","paddingTop","length","textTransform","letterSpacing","id"],"sourceRoot":"../../../../src","sources":["components/screens/HomeScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { KeyboardAvoidingView, Platform, ScrollView, Text, TextInput, View } from 'react-native';
5
+ import { USER_MESSAGE_MAX, USER_MESSAGE_MIN } from '../../types';
6
+ import { formatDate, relativeTime } from '../../utils';
7
+ import { Chevron } from '../icons';
8
+ import { PressableRow, PrimaryButton, StatusIndicator, textStyles, TypeChipView } from '../primitives';
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ export function ThreadScreen({
11
+ theme,
12
+ thread,
13
+ onBack,
14
+ onSend
15
+ }) {
16
+ const [draft, setDraft] = useState('');
17
+ const [sending, setSending] = useState(false);
18
+ const [failed, setFailed] = useState(false);
19
+ const scrollRef = useRef(null);
20
+ const resolved = thread.status === 'resolved';
21
+ const trimmed = draft.trim();
22
+ const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
23
+ useEffect(() => {
24
+ scrollRef.current?.scrollToEnd({
25
+ animated: false
26
+ });
27
+ }, [thread.messages.length]);
28
+ async function handleSend() {
29
+ if (!valid || sending || resolved) return;
30
+ setSending(true);
31
+ setFailed(false);
32
+ const ok = await onSend(trimmed);
33
+ setSending(false);
34
+ if (ok) setDraft('');else setFailed(true);
35
+ }
36
+ return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
37
+ style: {
38
+ flex: 1
39
+ },
40
+ behavior: Platform.OS === 'ios' ? 'padding' : undefined,
41
+ children: [/*#__PURE__*/_jsxs(View, {
42
+ style: {
43
+ flexDirection: 'row',
44
+ alignItems: 'center',
45
+ gap: 8,
46
+ paddingHorizontal: 12,
47
+ paddingBottom: 10,
48
+ borderBottomWidth: 1,
49
+ borderBottomColor: theme.colors.border
50
+ },
51
+ children: [/*#__PURE__*/_jsx(PressableRow, {
52
+ onPress: onBack,
53
+ theme: theme,
54
+ accessibilityLabel: "Back",
55
+ style: {
56
+ padding: 6,
57
+ borderRadius: theme.radii.control
58
+ },
59
+ children: /*#__PURE__*/_jsx(Chevron, {
60
+ color: theme.colors.textSecondary,
61
+ direction: "left",
62
+ size: 12
63
+ })
64
+ }), /*#__PURE__*/_jsx(TypeChipView, {
65
+ type: thread.type,
66
+ theme: theme
67
+ }), /*#__PURE__*/_jsx(StatusIndicator, {
68
+ status: thread.status,
69
+ theme: theme
70
+ }), /*#__PURE__*/_jsx(Text, {
71
+ style: [textStyles.meta(theme), {
72
+ marginLeft: 'auto'
73
+ }],
74
+ children: relativeTime(thread.created_at)
75
+ })]
76
+ }), /*#__PURE__*/_jsxs(ScrollView, {
77
+ ref: scrollRef,
78
+ style: {
79
+ flex: 1
80
+ },
81
+ contentContainerStyle: {
82
+ padding: 16,
83
+ gap: 10
84
+ },
85
+ children: [thread.messages.map(m => {
86
+ const own = m.sender === 'user';
87
+ return /*#__PURE__*/_jsxs(View, {
88
+ style: {
89
+ maxWidth: '85%',
90
+ alignSelf: own ? 'flex-end' : 'flex-start',
91
+ alignItems: own ? 'flex-end' : 'flex-start',
92
+ gap: 3
93
+ },
94
+ children: [!own && /*#__PURE__*/_jsx(Text, {
95
+ style: textStyles.meta(theme),
96
+ children: m.admin_name ?? 'Support'
97
+ }), /*#__PURE__*/_jsx(View, {
98
+ style: {
99
+ borderRadius: theme.radii.card,
100
+ paddingHorizontal: 12,
101
+ paddingVertical: 8,
102
+ backgroundColor: own ? theme.colors.accentMuted : theme.colors.surface,
103
+ borderWidth: own ? 0 : 1,
104
+ borderColor: theme.colors.border
105
+ },
106
+ children: /*#__PURE__*/_jsx(Text, {
107
+ style: textStyles.body(theme),
108
+ children: m.body
109
+ })
110
+ }), /*#__PURE__*/_jsx(Text, {
111
+ style: textStyles.meta(theme),
112
+ children: relativeTime(m.created_at)
113
+ })]
114
+ }, m.id);
115
+ }), resolved && thread.resolved_at && /*#__PURE__*/_jsxs(View, {
116
+ style: {
117
+ flexDirection: 'row',
118
+ alignItems: 'center',
119
+ gap: 10,
120
+ marginVertical: 6
121
+ },
122
+ children: [/*#__PURE__*/_jsx(View, {
123
+ style: {
124
+ flex: 1,
125
+ height: 1,
126
+ backgroundColor: theme.colors.border
127
+ }
128
+ }), /*#__PURE__*/_jsxs(Text, {
129
+ style: textStyles.meta(theme),
130
+ children: ["Resolved by ", thread.resolved_by_name ?? 'support', " \xB7", ' ', formatDate(thread.resolved_at)]
131
+ }), /*#__PURE__*/_jsx(View, {
132
+ style: {
133
+ flex: 1,
134
+ height: 1,
135
+ backgroundColor: theme.colors.border
136
+ }
137
+ })]
138
+ })]
139
+ }), /*#__PURE__*/_jsx(View, {
140
+ style: {
141
+ borderTopWidth: 1,
142
+ borderTopColor: theme.colors.border,
143
+ paddingHorizontal: 16,
144
+ paddingTop: 10
145
+ },
146
+ children: resolved ? /*#__PURE__*/_jsx(Text, {
147
+ style: [textStyles.meta(theme), {
148
+ textAlign: 'center',
149
+ paddingVertical: 8
150
+ }],
151
+ children: "This thread is resolved and read-only"
152
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
153
+ children: [/*#__PURE__*/_jsx(TextInput, {
154
+ value: draft,
155
+ onChangeText: v => {
156
+ setDraft(v);
157
+ setFailed(false);
158
+ },
159
+ multiline: true,
160
+ placeholder: "Reply",
161
+ placeholderTextColor: theme.colors.textTertiary,
162
+ style: {
163
+ minHeight: 60,
164
+ maxHeight: 120,
165
+ borderWidth: 1,
166
+ borderColor: theme.colors.border,
167
+ borderRadius: theme.radii.control,
168
+ backgroundColor: theme.colors.surface,
169
+ color: theme.colors.textPrimary,
170
+ fontSize: 14,
171
+ lineHeight: 20,
172
+ padding: 10,
173
+ textAlignVertical: 'top'
174
+ }
175
+ }), /*#__PURE__*/_jsxs(View, {
176
+ style: {
177
+ flexDirection: 'row',
178
+ alignItems: 'center',
179
+ gap: 12,
180
+ paddingVertical: 8
181
+ },
182
+ children: [/*#__PURE__*/_jsxs(Text, {
183
+ style: [textStyles.meta(theme), draft.length > USER_MESSAGE_MAX && {
184
+ color: theme.colors.statusDanger
185
+ }],
186
+ children: [draft.length, "/", USER_MESSAGE_MAX]
187
+ }), failed && /*#__PURE__*/_jsx(Text, {
188
+ style: {
189
+ fontSize: 11,
190
+ color: theme.colors.statusDanger
191
+ },
192
+ children: "Couldn't send \u2014 try again"
193
+ }), /*#__PURE__*/_jsx(View, {
194
+ style: {
195
+ marginLeft: 'auto'
196
+ },
197
+ children: /*#__PURE__*/_jsx(PrimaryButton, {
198
+ label: sending ? 'Sending…' : 'Send',
199
+ onPress: handleSend,
200
+ disabled: !valid || sending,
201
+ theme: theme
202
+ })
203
+ })]
204
+ })]
205
+ })
206
+ })]
207
+ });
208
+ }
209
+ //# sourceMappingURL=ThreadScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","Text","TextInput","View","USER_MESSAGE_MAX","USER_MESSAGE_MIN","formatDate","relativeTime","Chevron","PressableRow","PrimaryButton","StatusIndicator","textStyles","TypeChipView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ThreadScreen","theme","thread","onBack","onSend","draft","setDraft","sending","setSending","failed","setFailed","scrollRef","resolved","status","trimmed","trim","valid","length","current","scrollToEnd","animated","messages","handleSend","ok","style","flex","behavior","OS","undefined","children","flexDirection","alignItems","gap","paddingHorizontal","paddingBottom","borderBottomWidth","borderBottomColor","colors","border","onPress","accessibilityLabel","padding","borderRadius","radii","control","color","textSecondary","direction","size","type","meta","marginLeft","created_at","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","borderTopWidth","borderTopColor","paddingTop","textAlign","value","onChangeText","v","multiline","placeholder","placeholderTextColor","textTertiary","minHeight","maxHeight","textPrimary","fontSize","lineHeight","textAlignVertical","statusDanger","label","disabled"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { SupportButton } from './components/SupportButton';
4
+ export { supportDarkTheme, supportLightTheme, resolveTheme } from './theme';
5
+ export { SupportApiError } from './api';
6
+ export { QUERY_TYPE_LABEL, USER_MESSAGE_MAX, USER_MESSAGE_MIN } from './types';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SupportButton","supportDarkTheme","supportLightTheme","resolveTheme","SupportApiError","QUERY_TYPE_LABEL","USER_MESSAGE_MAX","USER_MESSAGE_MIN"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,YAAY,QAEP,SAAS;AAChB,SAASC,eAAe,QAAQ,OAAO;AAYvC,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,QACX,SAAS","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ // The SDK consumes the same design tokens as the admin dashboard, so both
4
+ // surfaces look like one product.
5
+ import { darkColors, lightColors, motion, radii, spacing } from '@appsupportkit/design-tokens';
6
+ export const supportDarkTheme = {
7
+ name: 'dark',
8
+ colors: darkColors,
9
+ spacing,
10
+ radii,
11
+ motion
12
+ };
13
+ export const supportLightTheme = {
14
+ name: 'light',
15
+ colors: lightColors,
16
+ spacing,
17
+ radii,
18
+ motion
19
+ };
20
+ export function resolveTheme(name) {
21
+ return name === 'light' ? supportLightTheme : supportDarkTheme;
22
+ }
23
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["darkColors","lightColors","motion","radii","spacing","supportDarkTheme","name","colors","supportLightTheme","resolveTheme"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":";;AAAA;AACA;AACA,SACEA,UAAU,EACVC,WAAW,EACXC,MAAM,EACNC,KAAK,EACLC,OAAO,QAEF,8BAA8B;AAWrC,OAAO,MAAMC,gBAA8B,GAAG;EAC5CC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEP,UAAU;EAClBI,OAAO;EACPD,KAAK;EACLD;AACF,CAAC;AAED,OAAO,MAAMM,iBAA+B,GAAG;EAC7CF,IAAI,EAAE,OAAO;EACbC,MAAM,EAAEN,WAAW;EACnBG,OAAO;EACPD,KAAK;EACLD;AACF,CAAC;AAED,OAAO,SAASO,YAAYA,CAACH,IAA2B,EAAgB;EACtE,OAAOA,IAAI,KAAK,OAAO,GAAGE,iBAAiB,GAAGH,gBAAgB;AAChE","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ export const QUERY_TYPE_LABEL = {
4
+ feedback: 'Feedback',
5
+ feature_request: 'Feature request',
6
+ bug_report: 'Bug report'
7
+ };
8
+ export const USER_MESSAGE_MIN = 10;
9
+ export const USER_MESSAGE_MAX = 300;
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["QUERY_TYPE_LABEL","feedback","feature_request","bug_report","USER_MESSAGE_MIN","USER_MESSAGE_MAX"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AA+DA,OAAO,MAAMA,gBAA2C,GAAG;EACzDC,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,iBAAiB;EAClCC,UAAU,EAAE;AACd,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AAClC,OAAO,MAAMC,gBAAgB,GAAG,GAAG","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ /** "2h ago" relative time — mirrors the web dashboard's formatting. */
4
+ export function relativeTime(iso) {
5
+ const then = new Date(iso).getTime();
6
+ const seconds = Math.max(0, Math.floor((Date.now() - then) / 1000));
7
+ if (seconds < 60) return 'just now';
8
+ const minutes = Math.floor(seconds / 60);
9
+ if (minutes < 60) return `${minutes}m ago`;
10
+ const hours = Math.floor(minutes / 60);
11
+ if (hours < 24) return `${hours}h ago`;
12
+ const days = Math.floor(hours / 24);
13
+ if (days < 7) return `${days}d ago`;
14
+ const weeks = Math.floor(days / 7);
15
+ if (weeks < 5) return `${weeks}w ago`;
16
+ const months = Math.floor(days / 30);
17
+ if (months < 12) return `${months}mo ago`;
18
+ return `${Math.floor(days / 365)}y ago`;
19
+ }
20
+ export function formatDate(iso) {
21
+ return new Date(iso).toLocaleDateString(undefined, {
22
+ year: 'numeric',
23
+ month: 'short',
24
+ day: 'numeric'
25
+ });
26
+ }
27
+
28
+ /** Dev-mode prop validation with actionable messages. */
29
+ export function validateProps(props) {
30
+ if (typeof props.appName !== 'string' || props.appName.length === 0) {
31
+ return 'SupportButton: `appName` is required — the app name registered in the admin dashboard.';
32
+ }
33
+ if (typeof props.apiKey !== 'string' || props.apiKey.length === 0) {
34
+ return 'SupportButton: `apiKey` is required — the key shown once when the app was registered.';
35
+ }
36
+ if (typeof props.supabaseUrl !== 'string' || !/^https?:\/\//.test(props.supabaseUrl)) {
37
+ return 'SupportButton: `supabaseUrl` is required — your Supabase project URL, e.g. "https://abcd1234.supabase.co".';
38
+ }
39
+ const user = props.user;
40
+ if (!user || typeof user !== 'object') {
41
+ return 'SupportButton: `user` is required — { name, isPaid, revenuecatId, appVersion }.';
42
+ }
43
+ if (typeof user.name !== 'string' || user.name.length === 0) {
44
+ return 'SupportButton: `user.name` is required (string).';
45
+ }
46
+ if (typeof user.isPaid !== 'boolean') {
47
+ return 'SupportButton: `user.isPaid` is required (boolean).';
48
+ }
49
+ if (typeof user.revenuecatId !== 'string' || user.revenuecatId.length === 0) {
50
+ return 'SupportButton: `user.revenuecatId` is required (string) — the RevenueCat app user id.';
51
+ }
52
+ if (typeof user.appVersion !== 'string' || user.appVersion.length === 0) {
53
+ return 'SupportButton: `user.appVersion` is required (string), e.g. "2.4.1".';
54
+ }
55
+ return null;
56
+ }
57
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,37 @@
1
+ import type { QueryType, ThreadsResponse } from './types';
2
+ export interface ApiConfig {
3
+ supabaseUrl: string;
4
+ apiKey: string;
5
+ appName: string;
6
+ }
7
+ export declare class SupportApiError extends Error {
8
+ status: number | null;
9
+ /** True for network-level failures (likely offline). */
10
+ offline: boolean;
11
+ constructor(message: string, status: number | null, offline?: boolean);
12
+ }
13
+ export declare function getThreads(config: ApiConfig, revenuecatId: string): Promise<ThreadsResponse>;
14
+ export declare function submitQuery(config: ApiConfig, input: {
15
+ queryType: QueryType;
16
+ message: string;
17
+ userName: string;
18
+ isPaid: boolean;
19
+ revenuecatId: string;
20
+ appVersion: string;
21
+ }): Promise<{
22
+ query_id: string;
23
+ }>;
24
+ export declare function postMessage(config: ApiConfig, input: {
25
+ queryId: string;
26
+ revenuecatId: string;
27
+ message: string;
28
+ }): Promise<{
29
+ message_id: string;
30
+ }>;
31
+ export declare function markRead(config: ApiConfig, input: {
32
+ queryId: string;
33
+ revenuecatId: string;
34
+ }): Promise<{
35
+ ok: boolean;
36
+ }>;
37
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,UAAQ;CAMpE;AA2CD,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/B;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CASjC;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ1B"}
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { SupportTheme } from '../theme';
3
+ export declare function BottomSheet({ visible, onClose, theme, children, }: {
4
+ visible: boolean;
5
+ onClose: () => void;
6
+ theme: SupportTheme;
7
+ children: ReactNode;
8
+ }): import("react").JSX.Element | null;
9
+ //# sourceMappingURL=BottomSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,sCA6IA"}
@@ -0,0 +1,8 @@
1
+ import type { SupportButtonProps } from '../types';
2
+ /**
3
+ * The single entry point of the SDK: a button with an unread badge that
4
+ * opens the support bottom sheet. Polls get-threads on mount and whenever
5
+ * the sheet opens (no websockets in v1).
6
+ */
7
+ export declare function SupportButton(props: SupportButtonProps): import("react").JSX.Element | null;
8
+ //# sourceMappingURL=SupportButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportButton.d.ts","sourceRoot":"","sources":["../../../src/components/SupportButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,kBAAkB,EAAU,MAAM,UAAU,CAAC;AAatE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,sCAkPtD"}
@@ -0,0 +1,32 @@
1
+ export declare function ChatIcon({ color, size }: {
2
+ color: string;
3
+ size?: number;
4
+ }): import("react").JSX.Element;
5
+ export declare function PlusCircleIcon({ color, size }: {
6
+ color: string;
7
+ size?: number;
8
+ }): import("react").JSX.Element;
9
+ export declare function AlertCircleIcon({ color, size }: {
10
+ color: string;
11
+ size?: number;
12
+ }): import("react").JSX.Element;
13
+ /** Chevron built from two borders, rotated. direction: right | left | down. */
14
+ export declare function Chevron({ color, size, direction, }: {
15
+ color: string;
16
+ size?: number;
17
+ direction?: 'right' | 'left' | 'down';
18
+ }): import("react").JSX.Element;
19
+ export declare function CloseIcon({ color, size }: {
20
+ color: string;
21
+ size?: number;
22
+ }): import("react").JSX.Element;
23
+ export declare function CheckIcon({ color, size }: {
24
+ color: string;
25
+ size?: number;
26
+ }): import("react").JSX.Element;
27
+ /** The chat-bubble mark on the floating support button. */
28
+ export declare function BubbleMark({ color, size }: {
29
+ color: string;
30
+ size?: number;
31
+ }): import("react").JSX.Element;
32
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0B9E;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyBpF;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyBrF;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAS,EACT,SAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACvC,+BAeA;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAwChF"}
@@ -0,0 +1,60 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
3
+ import type { SupportTheme } from '../theme';
4
+ import type { QueryStatus, QueryType } from '../types';
5
+ export declare function typeIcon(type: QueryType, color: string, size?: number): ReactNode;
6
+ export declare function typeColor(type: QueryType, theme: SupportTheme): string;
7
+ /** Status dot + label — same visual language as the dashboard. */
8
+ export declare function StatusIndicator({ status, theme, }: {
9
+ status: QueryStatus;
10
+ theme: SupportTheme;
11
+ }): import("react").JSX.Element;
12
+ /** Pressable row with the standard hover/press wash. */
13
+ export declare function PressableRow({ onPress, children, theme, style, accessibilityLabel, }: {
14
+ onPress: () => void;
15
+ children: ReactNode;
16
+ theme: SupportTheme;
17
+ style?: StyleProp<ViewStyle>;
18
+ accessibilityLabel?: string;
19
+ }): import("react").JSX.Element;
20
+ export declare function PrimaryButton({ label, onPress, disabled, theme, }: {
21
+ label: string;
22
+ onPress: () => void;
23
+ disabled?: boolean;
24
+ theme: SupportTheme;
25
+ }): import("react").JSX.Element;
26
+ export declare function SecondaryButton({ label, onPress, theme, }: {
27
+ label: string;
28
+ onPress: () => void;
29
+ theme: SupportTheme;
30
+ }): import("react").JSX.Element;
31
+ /** Small muted icon + one line — no illustrations. */
32
+ export declare function EmptyState({ message, theme, icon, }: {
33
+ message: string;
34
+ theme: SupportTheme;
35
+ icon?: ReactNode;
36
+ }): import("react").JSX.Element;
37
+ /** Inline failure state with retry — errors are designed, not toasted. */
38
+ export declare function ErrorState({ message, onRetry, theme, }: {
39
+ message: string;
40
+ onRetry: () => void;
41
+ theme: SupportTheme;
42
+ }): import("react").JSX.Element;
43
+ /** Pulsing block matching final layout dimensions. */
44
+ export declare function SkeletonBlock({ width, height, theme, style, }: {
45
+ width: number | `${number}%`;
46
+ height: number;
47
+ theme: SupportTheme;
48
+ style?: StyleProp<ViewStyle>;
49
+ }): import("react").JSX.Element;
50
+ export declare const textStyles: {
51
+ title: (theme: SupportTheme) => TextStyle;
52
+ body: (theme: SupportTheme) => TextStyle;
53
+ secondary: (theme: SupportTheme) => TextStyle;
54
+ meta: (theme: SupportTheme) => TextStyle;
55
+ };
56
+ export declare function TypeChipView({ type, theme, }: {
57
+ type: QueryType;
58
+ theme: SupportTheme;
59
+ }): import("react").JSX.Element;
60
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,SAAS,CAI7E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAItE;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB,+BAaA;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,KAAK,EACL,KAAK,EACL,kBAAkB,GACnB,EAAE;IACD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,+BAcA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACrB,+BA6BA;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB,+BAuBA;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,KAAK,EACL,IAAI,GACL,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,+BASA;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB,+BASA;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,+BAoCA;AAED,eAAO,MAAM,UAAU;mBACN,YAAY,KAAG,SAAS;kBAMzB,YAAY,KAAG,SAAS;uBAKnB,YAAY,KAAG,SAAS;kBAI7B,YAAY,KAAG,SAAS;CAKvC,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;CACrB,+BA2BA"}
@@ -0,0 +1,10 @@
1
+ import type { SupportTheme } from '../../theme';
2
+ import type { QueryType } from '../../types';
3
+ export declare function ComposeScreen({ theme, type, onBack, onSubmit, }: {
4
+ theme: SupportTheme;
5
+ type: QueryType;
6
+ onBack: () => void;
7
+ /** Resolves true on success. */
8
+ onSubmit: (message: string) => Promise<boolean>;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=ComposeScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ComposeScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gCAAgC;IAChC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD,+BA+IA"}
@@ -0,0 +1,13 @@
1
+ import type { SupportTheme } from '../../theme';
2
+ import type { QueryType, Thread } from '../../types';
3
+ export declare function HomeScreen({ theme, threads, loading, error, onRetry, onCompose, onOpenThread, onClose, }: {
4
+ theme: SupportTheme;
5
+ threads: Thread[] | null;
6
+ loading: boolean;
7
+ error: string | null;
8
+ onRetry: () => void;
9
+ onCompose: (type: QueryType) => void;
10
+ onOpenThread: (thread: Thread) => void;
11
+ onClose: () => void;
12
+ }): import("react").JSX.Element;
13
+ //# sourceMappingURL=HomeScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/HomeScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA+ErD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,OAAO,GACR,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAsIA"}
@@ -0,0 +1,10 @@
1
+ import type { SupportTheme } from '../../theme';
2
+ import type { Thread } from '../../types';
3
+ export declare function ThreadScreen({ theme, thread, onBack, onSend, }: {
4
+ theme: SupportTheme;
5
+ thread: Thread;
6
+ onBack: () => void;
7
+ /** Resolves true on success. */
8
+ onSend: (message: string) => Promise<boolean>;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=ThreadScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ThreadScreen.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAY1C,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,GACP,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gCAAgC;IAChC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C,+BAiMA"}
@@ -0,0 +1,6 @@
1
+ export { SupportButton } from './components/SupportButton';
2
+ export { supportDarkTheme, supportLightTheme, resolveTheme, type SupportTheme, } from './theme';
3
+ export { SupportApiError } from './api';
4
+ export type { MessageSender, QueryStatus, QueryType, SupportButtonProps, SupportUser, Thread, ThreadMessage, ThreadsResponse, ThemeName, } from './types';
5
+ export { QUERY_TYPE_LABEL, USER_MESSAGE_MAX, USER_MESSAGE_MIN, } from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,aAAa,EACb,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { motion, radii, spacing, type ThemeColors } from '@appsupportkit/design-tokens';
2
+ import type { ThemeName } from './types';
3
+ export interface SupportTheme {
4
+ name: ThemeName;
5
+ colors: ThemeColors;
6
+ spacing: typeof spacing;
7
+ radii: typeof radii;
8
+ motion: typeof motion;
9
+ }
10
+ export declare const supportDarkTheme: SupportTheme;
11
+ export declare const supportLightTheme: SupportTheme;
12
+ export declare function resolveTheme(name: ThemeName | undefined): SupportTheme;
13
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,YAM9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAM/B,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAEtE"}