@appsupportkit/support-sdk 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/api.js +17 -2
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +67 -47
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/LauncherButton.js +177 -0
- package/lib/commonjs/components/LauncherButton.js.map +1 -0
- package/lib/commonjs/components/SupportButton.js +168 -190
- package/lib/commonjs/components/SupportButton.js.map +1 -1
- package/lib/commonjs/components/icons.js +110 -23
- package/lib/commonjs/components/icons.js.map +1 -1
- package/lib/commonjs/components/primitives.js +191 -44
- package/lib/commonjs/components/primitives.js.map +1 -1
- package/lib/commonjs/components/screens/ComposeScreen.js +108 -60
- package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
- package/lib/commonjs/components/screens/HomeScreen.js +221 -118
- package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
- package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
- package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
- package/lib/commonjs/components/screens/ThreadScreen.js +237 -111
- package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
- package/lib/commonjs/i18n/index.js +101 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/languages.js +95 -0
- package/lib/commonjs/i18n/languages.js.map +1 -0
- package/lib/commonjs/i18n/strings/de.js +72 -0
- package/lib/commonjs/i18n/strings/de.js.map +1 -0
- package/lib/commonjs/i18n/strings/en.js +88 -0
- package/lib/commonjs/i18n/strings/en.js.map +1 -0
- package/lib/commonjs/i18n/strings/es.js +72 -0
- package/lib/commonjs/i18n/strings/es.js.map +1 -0
- package/lib/commonjs/i18n/strings/fr.js +72 -0
- package/lib/commonjs/i18n/strings/fr.js.map +1 -0
- package/lib/commonjs/i18n/strings/hi.js +72 -0
- package/lib/commonjs/i18n/strings/hi.js.map +1 -0
- package/lib/commonjs/i18n/strings/it.js +72 -0
- package/lib/commonjs/i18n/strings/it.js.map +1 -0
- package/lib/commonjs/i18n/strings/ja.js +72 -0
- package/lib/commonjs/i18n/strings/ja.js.map +1 -0
- package/lib/commonjs/i18n/strings/ko.js +72 -0
- package/lib/commonjs/i18n/strings/ko.js.map +1 -0
- package/lib/commonjs/i18n/strings/nl.js +72 -0
- package/lib/commonjs/i18n/strings/nl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pl.js +72 -0
- package/lib/commonjs/i18n/strings/pl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pt.js +72 -0
- package/lib/commonjs/i18n/strings/pt.js.map +1 -0
- package/lib/commonjs/i18n/strings/ru.js +72 -0
- package/lib/commonjs/i18n/strings/ru.js.map +1 -0
- package/lib/commonjs/i18n/strings/tr.js +72 -0
- package/lib/commonjs/i18n/strings/tr.js.map +1 -0
- package/lib/commonjs/i18n/strings/zh.js +72 -0
- package/lib/commonjs/i18n/strings/zh.js.map +1 -0
- package/lib/commonjs/index.js +31 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/theme.js +136 -17
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/types.js +18 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/unread.js +92 -0
- package/lib/commonjs/unread.js.map +1 -0
- package/lib/commonjs/useSupportThreads.js +296 -0
- package/lib/commonjs/useSupportThreads.js.map +1 -0
- package/lib/commonjs/utils.js +58 -10
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/api.js +16 -2
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BottomSheet.js +68 -48
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/LauncherButton.js +172 -0
- package/lib/module/components/LauncherButton.js.map +1 -0
- package/lib/module/components/SupportButton.js +172 -194
- package/lib/module/components/SupportButton.js.map +1 -1
- package/lib/module/components/icons.js +107 -22
- package/lib/module/components/icons.js.map +1 -1
- package/lib/module/components/primitives.js +187 -45
- package/lib/module/components/primitives.js.map +1 -1
- package/lib/module/components/screens/ComposeScreen.js +114 -64
- package/lib/module/components/screens/ComposeScreen.js.map +1 -1
- package/lib/module/components/screens/HomeScreen.js +224 -121
- package/lib/module/components/screens/HomeScreen.js.map +1 -1
- package/lib/module/components/screens/LanguageScreen.js +147 -0
- package/lib/module/components/screens/LanguageScreen.js.map +1 -0
- package/lib/module/components/screens/ThreadScreen.js +243 -115
- package/lib/module/components/screens/ThreadScreen.js.map +1 -1
- package/lib/module/i18n/index.js +56 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/languages.js +88 -0
- package/lib/module/i18n/languages.js.map +1 -0
- package/lib/module/i18n/strings/de.js +68 -0
- package/lib/module/i18n/strings/de.js.map +1 -0
- package/lib/module/i18n/strings/en.js +84 -0
- package/lib/module/i18n/strings/en.js.map +1 -0
- package/lib/module/i18n/strings/es.js +68 -0
- package/lib/module/i18n/strings/es.js.map +1 -0
- package/lib/module/i18n/strings/fr.js +68 -0
- package/lib/module/i18n/strings/fr.js.map +1 -0
- package/lib/module/i18n/strings/hi.js +68 -0
- package/lib/module/i18n/strings/hi.js.map +1 -0
- package/lib/module/i18n/strings/it.js +68 -0
- package/lib/module/i18n/strings/it.js.map +1 -0
- package/lib/module/i18n/strings/ja.js +68 -0
- package/lib/module/i18n/strings/ja.js.map +1 -0
- package/lib/module/i18n/strings/ko.js +68 -0
- package/lib/module/i18n/strings/ko.js.map +1 -0
- package/lib/module/i18n/strings/nl.js +68 -0
- package/lib/module/i18n/strings/nl.js.map +1 -0
- package/lib/module/i18n/strings/pl.js +68 -0
- package/lib/module/i18n/strings/pl.js.map +1 -0
- package/lib/module/i18n/strings/pt.js +68 -0
- package/lib/module/i18n/strings/pt.js.map +1 -0
- package/lib/module/i18n/strings/ru.js +68 -0
- package/lib/module/i18n/strings/ru.js.map +1 -0
- package/lib/module/i18n/strings/tr.js +68 -0
- package/lib/module/i18n/strings/tr.js.map +1 -0
- package/lib/module/i18n/strings/zh.js +68 -0
- package/lib/module/i18n/strings/zh.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme.js +135 -16
- package/lib/module/theme.js.map +1 -1
- package/lib/module/types.js +18 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/unread.js +83 -0
- package/lib/module/unread.js.map +1 -0
- package/lib/module/useSupportThreads.js +291 -0
- package/lib/module/useSupportThreads.js.map +1 -0
- package/lib/module/utils.js +55 -10
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/api.d.ts +9 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/LauncherButton.d.ts +14 -0
- package/lib/typescript/components/LauncherButton.d.ts.map +1 -0
- package/lib/typescript/components/SupportButton.d.ts +3 -3
- package/lib/typescript/components/SupportButton.d.ts.map +1 -1
- package/lib/typescript/components/icons.d.ts +18 -2
- package/lib/typescript/components/icons.d.ts.map +1 -1
- package/lib/typescript/components/primitives.d.ts +42 -7
- package/lib/typescript/components/primitives.d.ts.map +1 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts +3 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
- package/lib/typescript/components/screens/HomeScreen.d.ts +8 -2
- package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
- package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
- package/lib/typescript/components/screens/ThreadScreen.d.ts +3 -1
- package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
- package/lib/typescript/i18n/index.d.ts +15 -0
- package/lib/typescript/i18n/index.d.ts.map +1 -0
- package/lib/typescript/i18n/languages.d.ts +36 -0
- package/lib/typescript/i18n/languages.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/de.d.ts +3 -0
- package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/en.d.ts +83 -0
- package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/es.d.ts +3 -0
- package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/fr.d.ts +3 -0
- package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/hi.d.ts +3 -0
- package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/it.d.ts +3 -0
- package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ja.d.ts +3 -0
- package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ko.d.ts +3 -0
- package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/nl.d.ts +3 -0
- package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pl.d.ts +3 -0
- package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pt.d.ts +3 -0
- package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ru.d.ts +3 -0
- package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/tr.d.ts +3 -0
- package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/zh.d.ts +3 -0
- package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/theme.d.ts +44 -3
- package/lib/typescript/theme.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +54 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/unread.d.ts +22 -0
- package/lib/typescript/unread.d.ts.map +1 -0
- package/lib/typescript/useSupportThreads.d.ts +38 -0
- package/lib/typescript/useSupportThreads.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +8 -2
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api.ts +24 -1
- package/src/components/BottomSheet.tsx +61 -43
- package/src/components/LauncherButton.tsx +217 -0
- package/src/components/SupportButton.tsx +195 -210
- package/src/components/icons.tsx +113 -19
- package/src/components/primitives.tsx +230 -39
- package/src/components/screens/ComposeScreen.tsx +129 -63
- package/src/components/screens/HomeScreen.tsx +230 -120
- package/src/components/screens/LanguageScreen.tsx +172 -0
- package/src/components/screens/ThreadScreen.tsx +319 -122
- package/src/i18n/index.ts +81 -0
- package/src/i18n/languages.ts +106 -0
- package/src/i18n/strings/de.ts +78 -0
- package/src/i18n/strings/en.ts +94 -0
- package/src/i18n/strings/es.ts +77 -0
- package/src/i18n/strings/fr.ts +78 -0
- package/src/i18n/strings/hi.ts +77 -0
- package/src/i18n/strings/it.ts +77 -0
- package/src/i18n/strings/ja.ts +77 -0
- package/src/i18n/strings/ko.ts +76 -0
- package/src/i18n/strings/nl.ts +77 -0
- package/src/i18n/strings/pl.ts +77 -0
- package/src/i18n/strings/pt.ts +77 -0
- package/src/i18n/strings/ru.ts +77 -0
- package/src/i18n/strings/tr.ts +77 -0
- package/src/i18n/strings/zh.ts +75 -0
- package/src/index.tsx +9 -0
- package/src/theme.ts +165 -18
- package/src/types.ts +56 -2
- package/src/unread.ts +91 -0
- package/src/useSupportThreads.ts +392 -0
- package/src/utils.ts +48 -10
|
@@ -24,9 +24,25 @@ export declare function CheckIcon({ color, size }: {
|
|
|
24
24
|
color: string;
|
|
25
25
|
size?: number;
|
|
26
26
|
}): import("react").JSX.Element;
|
|
27
|
-
/**
|
|
28
|
-
export declare function
|
|
27
|
+
/** Globe: circle, equator, and a pill standing in for the meridian curve. */
|
|
28
|
+
export declare function GlobeIcon({ color, size }: {
|
|
29
29
|
color: string;
|
|
30
30
|
size?: number;
|
|
31
31
|
}): import("react").JSX.Element;
|
|
32
|
+
/** Send arrow: a stem plus a chevron head, both centered on the same axis. */
|
|
33
|
+
export declare function ArrowUpIcon({ color, size }: {
|
|
34
|
+
color: string;
|
|
35
|
+
size?: number;
|
|
36
|
+
}): import("react").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* The chat-bubble mark on the launcher button: a filled bubble with the
|
|
39
|
+
* dots knocked out in the button's own fill color. Solid shapes read far
|
|
40
|
+
* better than 1.5px strokes at launcher size and on top of a color fill.
|
|
41
|
+
*/
|
|
42
|
+
export declare function ChatBubbleMark({ color, dotColor, size, }: {
|
|
43
|
+
color: string;
|
|
44
|
+
/** The surface behind the mark — the dots are punched out in this color. */
|
|
45
|
+
dotColor: string;
|
|
46
|
+
size?: number;
|
|
47
|
+
}): import("react").JSX.Element;
|
|
32
48
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +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,
|
|
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,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAiC/E;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAsCjF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,IAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,+BA4CA"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Translator } from '../i18n';
|
|
3
4
|
import type { SupportTheme } from '../theme';
|
|
4
5
|
import type { QueryStatus, QueryType } from '../types';
|
|
5
6
|
export declare function typeIcon(type: QueryType, color: string, size?: number): ReactNode;
|
|
6
7
|
export declare function typeColor(type: QueryType, theme: SupportTheme): string;
|
|
8
|
+
export declare function typeBackground(type: QueryType, theme: SupportTheme): string;
|
|
9
|
+
/** Tinted round chip holding a type icon — the anchor of every list row. */
|
|
10
|
+
export declare function TypeGlyph({ type, theme, size, }: {
|
|
11
|
+
type: QueryType;
|
|
12
|
+
theme: SupportTheme;
|
|
13
|
+
size?: number;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
7
15
|
/** Status dot + label — same visual language as the dashboard. */
|
|
8
|
-
export declare function StatusIndicator({ status, theme, }: {
|
|
16
|
+
export declare function StatusIndicator({ status, theme, strings, }: {
|
|
9
17
|
status: QueryStatus;
|
|
10
18
|
theme: SupportTheme;
|
|
19
|
+
strings: Translator;
|
|
11
20
|
}): import("react").JSX.Element;
|
|
12
|
-
/** Pressable row with the standard
|
|
21
|
+
/** Pressable row with the standard press wash. */
|
|
13
22
|
export declare function PressableRow({ onPress, children, theme, style, accessibilityLabel, }: {
|
|
14
23
|
onPress: () => void;
|
|
15
24
|
children: ReactNode;
|
|
@@ -17,44 +26,70 @@ export declare function PressableRow({ onPress, children, theme, style, accessib
|
|
|
17
26
|
style?: StyleProp<ViewStyle>;
|
|
18
27
|
accessibilityLabel?: string;
|
|
19
28
|
}): import("react").JSX.Element;
|
|
20
|
-
|
|
29
|
+
/** Circular icon button — back, close, send. */
|
|
30
|
+
export declare function IconButton({ onPress, children, theme, accessibilityLabel, size, disabled, tone, }: {
|
|
31
|
+
onPress: () => void;
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
theme: SupportTheme;
|
|
34
|
+
accessibilityLabel: string;
|
|
35
|
+
size?: number;
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
tone?: 'surface' | 'accent';
|
|
38
|
+
}): import("react").JSX.Element;
|
|
39
|
+
export declare function PrimaryButton({ label, onPress, disabled, theme, fullWidth, }: {
|
|
21
40
|
label: string;
|
|
22
41
|
onPress: () => void;
|
|
23
42
|
disabled?: boolean;
|
|
24
43
|
theme: SupportTheme;
|
|
44
|
+
fullWidth?: boolean;
|
|
25
45
|
}): import("react").JSX.Element;
|
|
26
46
|
export declare function SecondaryButton({ label, onPress, theme, }: {
|
|
27
47
|
label: string;
|
|
28
48
|
onPress: () => void;
|
|
29
49
|
theme: SupportTheme;
|
|
30
50
|
}): import("react").JSX.Element;
|
|
51
|
+
/** The count pill on a thread row. */
|
|
52
|
+
export declare function UnreadPill({ count, theme, }: {
|
|
53
|
+
count: number;
|
|
54
|
+
theme: SupportTheme;
|
|
55
|
+
}): import("react").JSX.Element;
|
|
56
|
+
export declare function SectionLabel({ children, theme, style, }: {
|
|
57
|
+
children: ReactNode;
|
|
58
|
+
theme: SupportTheme;
|
|
59
|
+
style?: StyleProp<TextStyle>;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
31
61
|
/** Small muted icon + one line — no illustrations. */
|
|
32
|
-
export declare function EmptyState({ message, theme, icon, }: {
|
|
62
|
+
export declare function EmptyState({ message, hint, theme, icon, }: {
|
|
33
63
|
message: string;
|
|
64
|
+
hint?: string;
|
|
34
65
|
theme: SupportTheme;
|
|
35
66
|
icon?: ReactNode;
|
|
36
67
|
}): import("react").JSX.Element;
|
|
37
68
|
/** Inline failure state with retry — errors are designed, not toasted. */
|
|
38
|
-
export declare function ErrorState({ message, onRetry, theme, }: {
|
|
69
|
+
export declare function ErrorState({ message, onRetry, theme, strings, }: {
|
|
39
70
|
message: string;
|
|
40
71
|
onRetry: () => void;
|
|
41
72
|
theme: SupportTheme;
|
|
73
|
+
strings: Translator;
|
|
42
74
|
}): import("react").JSX.Element;
|
|
43
75
|
/** Pulsing block matching final layout dimensions. */
|
|
44
|
-
export declare function SkeletonBlock({ width, height, theme, style, }: {
|
|
76
|
+
export declare function SkeletonBlock({ width, height, theme, radius, style, }: {
|
|
45
77
|
width: number | `${number}%`;
|
|
46
78
|
height: number;
|
|
47
79
|
theme: SupportTheme;
|
|
80
|
+
radius?: number;
|
|
48
81
|
style?: StyleProp<ViewStyle>;
|
|
49
82
|
}): import("react").JSX.Element;
|
|
50
83
|
export declare const textStyles: {
|
|
51
84
|
title: (theme: SupportTheme) => TextStyle;
|
|
85
|
+
heading: (theme: SupportTheme) => TextStyle;
|
|
52
86
|
body: (theme: SupportTheme) => TextStyle;
|
|
53
87
|
secondary: (theme: SupportTheme) => TextStyle;
|
|
54
88
|
meta: (theme: SupportTheme) => TextStyle;
|
|
55
89
|
};
|
|
56
|
-
export declare function TypeChipView({ type, theme, }: {
|
|
90
|
+
export declare function TypeChipView({ type, theme, strings, }: {
|
|
57
91
|
type: QueryType;
|
|
58
92
|
theme: SupportTheme;
|
|
93
|
+
strings: Translator;
|
|
59
94
|
}): import("react").JSX.Element;
|
|
60
95
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { Translator } from '../../i18n';
|
|
1
2
|
import type { SupportTheme } from '../../theme';
|
|
2
3
|
import type { QueryType } from '../../types';
|
|
3
|
-
export declare function ComposeScreen({ theme, type, onBack, onSubmit, }: {
|
|
4
|
+
export declare function ComposeScreen({ theme, strings, type, onBack, onSubmit, }: {
|
|
4
5
|
theme: SupportTheme;
|
|
6
|
+
strings: Translator;
|
|
5
7
|
type: QueryType;
|
|
6
8
|
onBack: () => void;
|
|
7
9
|
/** Resolves null on success, or a user-facing error message. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ComposeScreen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComposeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ComposeScreen.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoD7C,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACvD,+BAuJA"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
import type { Translator } from '../../i18n';
|
|
2
|
+
import { type Language } from '../../i18n/languages';
|
|
1
3
|
import type { SupportTheme } from '../../theme';
|
|
2
4
|
import type { QueryType, Thread } from '../../types';
|
|
3
|
-
export declare function HomeScreen({ theme, threads, loading, error,
|
|
5
|
+
export declare function HomeScreen({ theme, strings, language, threads, loading, refreshing, error, onRefresh, onCompose, onOpenThread, onChangeLanguage, onClose, }: {
|
|
4
6
|
theme: SupportTheme;
|
|
7
|
+
strings: Translator;
|
|
8
|
+
language: Language;
|
|
5
9
|
threads: Thread[] | null;
|
|
6
10
|
loading: boolean;
|
|
11
|
+
refreshing: boolean;
|
|
7
12
|
error: string | null;
|
|
8
|
-
|
|
13
|
+
onRefresh: () => void;
|
|
9
14
|
onCompose: (type: QueryType) => void;
|
|
10
15
|
onOpenThread: (thread: Thread) => void;
|
|
16
|
+
onChangeLanguage: () => void;
|
|
11
17
|
onClose: () => void;
|
|
12
18
|
}): import("react").JSX.Element;
|
|
13
19
|
//# sourceMappingURL=HomeScreen.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"HomeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/HomeScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmJrD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAwKA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Translator } from '../../i18n';
|
|
2
|
+
import { type Language } from '../../i18n/languages';
|
|
3
|
+
import type { SupportTheme } from '../../theme';
|
|
4
|
+
/**
|
|
5
|
+
* The one-time language prompt, and the same screen again whenever the user
|
|
6
|
+
* changes their mind from the home header.
|
|
7
|
+
*
|
|
8
|
+
* Selecting a row re-renders the whole sheet in that language immediately —
|
|
9
|
+
* the confirmation button is the only way to see what you are choosing before
|
|
10
|
+
* you commit to it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function LanguageScreen({ theme, strings, selected, onSelect, onConfirm, onBack, onDismiss, saving, error, }: {
|
|
13
|
+
theme: SupportTheme;
|
|
14
|
+
strings: Translator;
|
|
15
|
+
selected: Language;
|
|
16
|
+
onSelect: (language: Language) => void;
|
|
17
|
+
onConfirm: () => void;
|
|
18
|
+
/** Absent on first run: there is nothing to go back to yet. */
|
|
19
|
+
onBack?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* First run only — dismissing without choosing closes the sheet and leaves
|
|
22
|
+
* the preference unset, so the prompt appears again next time. Saving a
|
|
23
|
+
* language the user never actually picked would be worse: every message
|
|
24
|
+
* they write would be translated from the wrong one.
|
|
25
|
+
*/
|
|
26
|
+
onDismiss?: () => void;
|
|
27
|
+
saving: boolean;
|
|
28
|
+
error: string | null;
|
|
29
|
+
}): import("react").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=LanguageScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/LanguageScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,GACN,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,+BAuHA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { Translator } from '../../i18n';
|
|
1
2
|
import type { SupportTheme } from '../../theme';
|
|
2
3
|
import type { Thread } from '../../types';
|
|
3
|
-
export declare function ThreadScreen({ theme, thread, onBack, onSend, }: {
|
|
4
|
+
export declare function ThreadScreen({ theme, strings, thread, onBack, onSend, }: {
|
|
4
5
|
theme: SupportTheme;
|
|
6
|
+
strings: Translator;
|
|
5
7
|
thread: Thread;
|
|
6
8
|
onBack: () => void;
|
|
7
9
|
/** Resolves null on success, or a user-facing error message. */
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"ThreadScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ThreadScreen.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AA6LzD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,GACP,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACrD,+BAkNA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Language } from './languages';
|
|
2
|
+
import { type StringKey, type StringTable } from './strings/en';
|
|
3
|
+
export interface Translator {
|
|
4
|
+
language: Language;
|
|
5
|
+
/**
|
|
6
|
+
* BCP-47 tag for Intl — dates and times stay in the user's chosen language
|
|
7
|
+
* rather than the device's, so a sheet never mixes the two.
|
|
8
|
+
*/
|
|
9
|
+
locale: string;
|
|
10
|
+
t: (key: StringKey, vars?: Record<string, string | number>) => string;
|
|
11
|
+
}
|
|
12
|
+
export declare function createTranslator(language: Language): Translator;
|
|
13
|
+
export type { StringKey, StringTable };
|
|
14
|
+
export { asLanguage, baseLanguage, DEFAULT_LANGUAGE, deviceLanguage, isSupportedLanguage, LANGUAGE_LABELS, SUPPORTED_LANGUAGES, type Language, } from './languages';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAM,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AA2CpE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACvE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAO/D;AAED,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACvC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The languages the picker offers.
|
|
3
|
+
*
|
|
4
|
+
* Kept in sync by hand with supabase/functions/_shared/languages.ts — the two
|
|
5
|
+
* run in different runtimes and share no build step. Adding one means adding a
|
|
6
|
+
* string table here too, which the compiler enforces.
|
|
7
|
+
*
|
|
8
|
+
* Right-to-left languages are deliberately absent for now: React Native only
|
|
9
|
+
* flips layout direction through I18nManager, which needs an app restart the
|
|
10
|
+
* SDK has no business triggering inside a host app.
|
|
11
|
+
*/
|
|
12
|
+
export declare const SUPPORTED_LANGUAGES: readonly ["en", "es", "fr", "de", "nl", "pt", "it", "pl", "tr", "ru", "ja", "ko", "zh", "hi"];
|
|
13
|
+
export type Language = (typeof SUPPORTED_LANGUAGES)[number];
|
|
14
|
+
/** The language the support team reads and writes. */
|
|
15
|
+
export declare const DEFAULT_LANGUAGE: Language;
|
|
16
|
+
/**
|
|
17
|
+
* Endonyms — a language is listed the way its own speakers write it, so the
|
|
18
|
+
* picker is readable to someone who can't read the current UI language.
|
|
19
|
+
*/
|
|
20
|
+
export declare const LANGUAGE_LABELS: Record<Language, string>;
|
|
21
|
+
/** Strips a region qualifier: "pt-BR" → "pt". */
|
|
22
|
+
export declare function baseLanguage(code: string): string;
|
|
23
|
+
export declare function isSupportedLanguage(code: string): code is Language;
|
|
24
|
+
/** Narrows any string to a supported language, or null. */
|
|
25
|
+
export declare function asLanguage(code: string | null | undefined): Language | null;
|
|
26
|
+
/**
|
|
27
|
+
* The device's language, if the SDK supports it.
|
|
28
|
+
*
|
|
29
|
+
* Used to pre-select a row in the picker and to render the picker itself, so
|
|
30
|
+
* the one screen shown before we know the user's choice is already in a
|
|
31
|
+
* language they probably read. Deliberately not used to *skip* the picker: a
|
|
32
|
+
* device set to French says nothing about which language its owner wants to
|
|
33
|
+
* write support messages in.
|
|
34
|
+
*/
|
|
35
|
+
export declare function deviceLanguage(): Language | null;
|
|
36
|
+
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/i18n/languages.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,+FAetB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,EAAE,QAAe,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAepD,CAAC;AAEF,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAElE;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAI3E;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,QAAQ,GAAG,IAAI,CAGhD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA2EhB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English is the source table: every other language is typed against it, so a
|
|
3
|
+
* missing or misspelled key fails the build rather than falling back silently
|
|
4
|
+
* at runtime.
|
|
5
|
+
*
|
|
6
|
+
* Placeholders are `{name}` tokens filled in by `format()` — the table stays
|
|
7
|
+
* pure data so it can be handed to a translator (or lifted to JSON) without
|
|
8
|
+
* touching code.
|
|
9
|
+
*
|
|
10
|
+
* Keys that read identically in English are still separate when their context
|
|
11
|
+
* differs: `home.open` labels a section of several threads, `status.open`
|
|
12
|
+
* labels one thread's state, and plenty of languages inflect those
|
|
13
|
+
* differently.
|
|
14
|
+
*/
|
|
15
|
+
export declare const en: {
|
|
16
|
+
readonly 'home.title': "Support";
|
|
17
|
+
readonly 'home.subtitle': "Start a conversation — we reply right here.";
|
|
18
|
+
readonly 'home.close': "Close support";
|
|
19
|
+
readonly 'home.open': "Open";
|
|
20
|
+
readonly 'home.resolved': "Resolved";
|
|
21
|
+
readonly 'home.empty': "No conversations yet";
|
|
22
|
+
readonly 'home.emptyHint': "Anything you send lands with the team, and their replies come back to this sheet.";
|
|
23
|
+
readonly 'home.noMessages': "No messages yet";
|
|
24
|
+
readonly 'home.you': "You";
|
|
25
|
+
readonly 'home.threadA11y': "{type} thread";
|
|
26
|
+
readonly 'home.threadUnreadA11y': "{type} thread, {count} unread";
|
|
27
|
+
readonly 'home.newA11y': "New {type}";
|
|
28
|
+
readonly 'home.language': "Language";
|
|
29
|
+
readonly 'type.feedback': "Feedback";
|
|
30
|
+
readonly 'type.feature_request': "Feature request";
|
|
31
|
+
readonly 'type.bug_report': "Bug report";
|
|
32
|
+
readonly 'hint.feedback': "Tell us what you think";
|
|
33
|
+
readonly 'hint.feature_request': "Suggest an improvement";
|
|
34
|
+
readonly 'hint.bug_report': "Something isn't working";
|
|
35
|
+
readonly 'prompt.feedback': "What should we know?";
|
|
36
|
+
readonly 'prompt.feature_request': "What would you like to see?";
|
|
37
|
+
readonly 'prompt.bug_report': "What happened, and what did you expect?";
|
|
38
|
+
readonly 'sub.feedback': "Good or bad — it goes straight to the team.";
|
|
39
|
+
readonly 'sub.feature_request': "Tell us what you are trying to do.";
|
|
40
|
+
readonly 'sub.bug_report': "Steps, screen, and what you expected all help.";
|
|
41
|
+
readonly 'compose.back': "Back to conversations";
|
|
42
|
+
readonly 'compose.sent': "Sent";
|
|
43
|
+
readonly 'compose.sentHint': "We'll reply right here. You'll find the conversation under Open, and the button shows a badge when we answer.";
|
|
44
|
+
readonly 'compose.done': "Done";
|
|
45
|
+
readonly 'compose.send': "Send";
|
|
46
|
+
readonly 'compose.sending': "Sending…";
|
|
47
|
+
readonly 'compose.minChars': "At least {count} characters";
|
|
48
|
+
readonly 'thread.support': "Support";
|
|
49
|
+
readonly 'thread.new': "New";
|
|
50
|
+
readonly 'thread.resolvedAt': "Resolved · {date}";
|
|
51
|
+
readonly 'thread.readOnly': "This conversation is resolved and read-only";
|
|
52
|
+
readonly 'thread.placeholder': "Write a reply…";
|
|
53
|
+
readonly 'thread.sendA11y': "Send reply";
|
|
54
|
+
readonly 'thread.sendingA11y': "Sending";
|
|
55
|
+
readonly 'thread.translating': "Translating…";
|
|
56
|
+
readonly 'status.open': "Open";
|
|
57
|
+
readonly 'status.resolved': "Resolved";
|
|
58
|
+
readonly 'error.tryAgain': "Try again";
|
|
59
|
+
readonly 'error.rateLimited': "Too many requests — try again later";
|
|
60
|
+
readonly 'error.offline': "You're offline — check your connection";
|
|
61
|
+
readonly 'error.sendFailed': "Couldn't send — try again";
|
|
62
|
+
readonly 'error.loadFailed': "Couldn't load your conversations";
|
|
63
|
+
readonly 'error.unavailable': "Support is unavailable right now";
|
|
64
|
+
readonly 'error.loadRateLimited': "Too many requests — try again in a bit";
|
|
65
|
+
readonly 'lang.title': "Choose your language";
|
|
66
|
+
readonly 'lang.subtitle': "Write in whichever language you prefer — we translate between you and the support team.";
|
|
67
|
+
readonly 'lang.continue': "Continue";
|
|
68
|
+
readonly 'lang.change': "Change language";
|
|
69
|
+
readonly 'lang.saveFailed': "Couldn't save — try again";
|
|
70
|
+
readonly 'time.justNow': "just now";
|
|
71
|
+
readonly 'time.minutes': "{count}m ago";
|
|
72
|
+
readonly 'time.hours': "{count}h ago";
|
|
73
|
+
readonly 'time.days': "{count}d ago";
|
|
74
|
+
readonly 'time.weeks': "{count}w ago";
|
|
75
|
+
readonly 'time.months': "{count}mo ago";
|
|
76
|
+
readonly 'time.years': "{count}y ago";
|
|
77
|
+
readonly 'time.today': "Today";
|
|
78
|
+
readonly 'time.yesterday': "Yesterday";
|
|
79
|
+
};
|
|
80
|
+
export type StringKey = keyof typeof en;
|
|
81
|
+
/** Every language provides every key — enforced at compile time. */
|
|
82
|
+
export type StringTable = Record<StringKey, string>;
|
|
83
|
+
//# sourceMappingURL=en.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/en.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EL,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC;AAExC,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/fr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA2EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hi.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/hi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/it.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/ja.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/ko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WAyEhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pl.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/pl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/pt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WA0EhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../../src/i18n/strings/zh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,eAAO,MAAM,EAAE,EAAE,WAwEhB,CAAC"}
|
|
@@ -2,6 +2,7 @@ export { SupportButton } from './components/SupportButton';
|
|
|
2
2
|
export { supportDarkTheme, supportLightTheme, resolveTheme, type SupportTheme, } from './theme';
|
|
3
3
|
export { SupportApiError } from './api';
|
|
4
4
|
export { isPushAvailable } from './push';
|
|
5
|
-
export
|
|
5
|
+
export { DEFAULT_LANGUAGE, deviceLanguage, isSupportedLanguage, LANGUAGE_LABELS, SUPPORTED_LANGUAGES, type Language, } from './i18n/languages';
|
|
6
|
+
export type { LauncherVariant, MessageSender, PushPermissionStatus, QueryStatus, QueryType, SupportButtonProps, SupportUser, Thread, ThreadMessage, ThreadsResponse, ThemeName, } from './types';
|
|
6
7
|
export { QUERY_TYPE_LABEL, USER_MESSAGE_MAX, USER_MESSAGE_MIN, } from './types';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,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"}
|
|
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,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,KAAK,QAAQ,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,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"}
|
|
@@ -1,13 +1,54 @@
|
|
|
1
|
-
import { motion,
|
|
1
|
+
import { motion, spacing, type ThemeColors } from '@appsupportkit/design-tokens';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
2
3
|
import type { ThemeName } from './types';
|
|
4
|
+
/** Rounder than the dashboard: touch targets read better with more radius. */
|
|
5
|
+
export declare const supportRadii: {
|
|
6
|
+
readonly control: 10;
|
|
7
|
+
readonly card: 14;
|
|
8
|
+
readonly cardLg: 18;
|
|
9
|
+
/** Message bubbles. */
|
|
10
|
+
readonly bubble: 18;
|
|
11
|
+
/** The tight corner on a bubble's sender side. */
|
|
12
|
+
readonly bubbleTail: 6;
|
|
13
|
+
readonly sheet: 24;
|
|
14
|
+
readonly pill: 999;
|
|
15
|
+
readonly full: 9999;
|
|
16
|
+
};
|
|
17
|
+
export interface SupportShadows {
|
|
18
|
+
/** Floating launcher button. */
|
|
19
|
+
launcher: ViewStyle;
|
|
20
|
+
/** The bottom sheet itself. */
|
|
21
|
+
sheet: ViewStyle;
|
|
22
|
+
/** Unread badge, so it lifts off the button. */
|
|
23
|
+
badge: ViewStyle;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The launcher sits on the host app's own background rather than on an SDK
|
|
27
|
+
* surface, so the two themes need different treatment: on near-black a
|
|
28
|
+
* solid fill needs a hairline to separate from the background and a black
|
|
29
|
+
* shadow, while on white the accent-tinted shadow does that work and a
|
|
30
|
+
* borderless mark has to be darkened to stay legible.
|
|
31
|
+
*/
|
|
32
|
+
export interface LauncherPalette {
|
|
33
|
+
/** Hairline drawn over the solid fill. */
|
|
34
|
+
solidRing: string;
|
|
35
|
+
/** Mark color for the borderless (minimal) variant. */
|
|
36
|
+
minimalMark: string;
|
|
37
|
+
}
|
|
3
38
|
export interface SupportTheme {
|
|
4
39
|
name: ThemeName;
|
|
5
40
|
colors: ThemeColors;
|
|
6
41
|
spacing: typeof spacing;
|
|
7
|
-
radii: typeof
|
|
42
|
+
radii: typeof supportRadii;
|
|
8
43
|
motion: typeof motion;
|
|
44
|
+
shadows: SupportShadows;
|
|
45
|
+
launcher: LauncherPalette;
|
|
9
46
|
}
|
|
10
47
|
export declare const supportDarkTheme: SupportTheme;
|
|
11
48
|
export declare const supportLightTheme: SupportTheme;
|
|
12
|
-
|
|
49
|
+
/**
|
|
50
|
+
* @param name "light" | "dark" (default dark).
|
|
51
|
+
* @param accentColor Optional brand color (hex) replacing the default accent.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveTheme(name: ThemeName | undefined, accentColor?: string): SupportTheme;
|
|
13
54
|
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,MAAM,EAEN,OAAO,EACP,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,8EAA8E;AAC9E,eAAO,MAAM,YAAY;;;;IAKvB,uBAAuB;;IAEvB,kDAAkD;;;;;CAI1C,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,YAAY,CAAC;IAC3B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAmFD,eAAO,MAAM,gBAAgB,EAAE,YAA6C,CAAC;AAC7E,eAAO,MAAM,iBAAiB,EAAE,YAA+C,CAAC;AA+BhF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,YAAY,CAGd"}
|