@forthtilliath/react-native-kit 0.11.0 → 0.13.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/LICENSE +21 -21
- package/README.md +701 -533
- package/dist/components/list/ColorDot.d.ts +57 -0
- package/dist/components/list/ColorDot.d.ts.map +1 -0
- package/dist/components/list/ColorDot.js +48 -0
- package/dist/components/list/UndoToast.d.ts +100 -0
- package/dist/components/list/UndoToast.d.ts.map +1 -0
- package/dist/components/list/UndoToast.js +104 -0
- package/dist/components/list/index.d.ts +2 -0
- package/dist/components/list/index.d.ts.map +1 -1
- package/dist/components/list/index.js +2 -0
- package/dist/components/settings/AboutSettingsScreen.d.ts +10 -2
- package/dist/components/settings/AboutSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/AboutSettingsScreen.js +13 -5
- package/dist/components/settings/BackupSettingsScreen.d.ts +33 -1
- package/dist/components/settings/BackupSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/BackupSettingsScreen.js +58 -6
- package/dist/components/settings/ContactSettingsScreen.d.ts +22 -1
- package/dist/components/settings/ContactSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/ContactSettingsScreen.js +28 -5
- package/dist/components/settings/SettingsMenu.d.ts +11 -2
- package/dist/components/settings/SettingsMenu.d.ts.map +1 -1
- package/dist/components/settings/SettingsMenu.js +19 -6
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/package.json +2 -2
|
@@ -1,19 +1,40 @@
|
|
|
1
1
|
import type { StyleProp, TextStyle, ViewStyle } from "react-native";
|
|
2
|
+
import { Ionicons } from "@expo/vector-icons";
|
|
3
|
+
export interface ContactSettingsScreenAction {
|
|
4
|
+
icon: keyof typeof Ionicons.glyphMap;
|
|
5
|
+
label: string;
|
|
6
|
+
onPress: () => void;
|
|
7
|
+
accessibilityLabel?: string;
|
|
8
|
+
}
|
|
2
9
|
export interface ContactSettingsScreenStyles {
|
|
3
10
|
container?: StyleProp<ViewStyle>;
|
|
4
11
|
hint?: StyleProp<TextStyle>;
|
|
5
12
|
emailButton?: StyleProp<ViewStyle>;
|
|
6
13
|
emailButtonText?: StyleProp<TextStyle>;
|
|
7
14
|
separator?: StyleProp<ViewStyle>;
|
|
15
|
+
/** Only used when `actions` is set (rows layout). */
|
|
16
|
+
row?: StyleProp<ViewStyle>;
|
|
17
|
+
rowText?: StyleProp<TextStyle>;
|
|
18
|
+
rowIconColor?: string;
|
|
8
19
|
}
|
|
9
20
|
export interface ContactSettingsScreenLabels {
|
|
10
21
|
hint?: string;
|
|
11
22
|
footer?: string;
|
|
23
|
+
/** Only used when `actions` is set — the email row's label (the button itself shows the address in the default single-button layout). */
|
|
24
|
+
emailRowLabel?: string;
|
|
12
25
|
}
|
|
13
26
|
export interface ContactSettingsScreenProps {
|
|
14
27
|
email: string;
|
|
28
|
+
/**
|
|
29
|
+
* Extra rows below the email one (icon + label). Setting this switches
|
|
30
|
+
* the whole section from a single bordered `mailto:` button to a list of
|
|
31
|
+
* icon rows — the email becomes the first row (icon defaults to
|
|
32
|
+
* `emailIcon`, label to `labels.emailRowLabel`) instead of the button.
|
|
33
|
+
*/
|
|
34
|
+
actions?: ContactSettingsScreenAction[];
|
|
35
|
+
emailIcon?: keyof typeof Ionicons.glyphMap;
|
|
15
36
|
labels?: ContactSettingsScreenLabels;
|
|
16
37
|
styles?: ContactSettingsScreenStyles;
|
|
17
38
|
}
|
|
18
|
-
export declare function ContactSettingsScreen({ email, labels, styles, }: ContactSettingsScreenProps): import("react").JSX.Element;
|
|
39
|
+
export declare function ContactSettingsScreen({ email, actions, emailIcon, labels, styles, }: ContactSettingsScreenProps): import("react").JSX.Element;
|
|
19
40
|
//# sourceMappingURL=ContactSettingsScreen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContactSettingsScreen.d.ts","sourceRoot":"","sources":["../../../src/components/settings/ContactSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ContactSettingsScreen.d.ts","sourceRoot":"","sources":["../../../src/components/settings/ContactSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,OAAO,QAAQ,CAAC,QAAQ,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,qDAAqD;IACrD,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yIAAyI;IACzI,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,MAAM,CAAC,EAAE,2BAA2B,CAAC;CACtC;AA+CD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,OAAO,EACP,SAA0B,EAC1B,MAAM,EACN,MAAM,GACP,EAAE,0BAA0B,+BAkE5B"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Linking, Pressable, Text, View } from "react-native";
|
|
3
|
+
import { Ionicons } from "@expo/vector-icons";
|
|
3
4
|
const defaultLabels = {
|
|
4
5
|
hint: "Une question, un bug, une suggestion ?",
|
|
5
6
|
footer: "Si tu remontes un bug, précise si possible ce que tu faisais et ce que tu attendais — ça aide à le reproduire.",
|
|
7
|
+
emailRowLabel: "Me contacter",
|
|
6
8
|
};
|
|
7
9
|
const defaultStyles = {
|
|
8
10
|
container: {},
|
|
@@ -21,19 +23,40 @@ const defaultStyles = {
|
|
|
21
23
|
marginVertical: 16,
|
|
22
24
|
backgroundColor: "#e5e7eb",
|
|
23
25
|
},
|
|
26
|
+
row: {
|
|
27
|
+
flexDirection: "row",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
gap: 10,
|
|
30
|
+
backgroundColor: "#ffffff",
|
|
31
|
+
borderWidth: 1,
|
|
32
|
+
borderColor: "#e5e7eb",
|
|
33
|
+
borderRadius: 10,
|
|
34
|
+
padding: 14,
|
|
35
|
+
marginTop: 8,
|
|
36
|
+
},
|
|
37
|
+
rowText: { flex: 1, fontSize: 15, fontWeight: "600", color: "#111827" },
|
|
38
|
+
rowIconColor: "#111827",
|
|
24
39
|
};
|
|
25
40
|
// A mailto: button plus a short "how to report a bug" hint — the standard
|
|
26
|
-
// "Contact" section of a settings tab.
|
|
27
|
-
|
|
41
|
+
// "Contact" section of a settings tab. Pass `actions` for extra rows (share
|
|
42
|
+
// the app, a donation link...), switching email + those to a rows layout.
|
|
43
|
+
export function ContactSettingsScreen({ email, actions, emailIcon = "mail-outline", labels, styles, }) {
|
|
28
44
|
const merged = {
|
|
29
45
|
container: [defaultStyles.container, styles?.container],
|
|
30
46
|
hint: [defaultStyles.hint, styles?.hint],
|
|
31
47
|
emailButton: [defaultStyles.emailButton, styles?.emailButton],
|
|
32
48
|
emailButtonText: [defaultStyles.emailButtonText, styles?.emailButtonText],
|
|
33
49
|
separator: [defaultStyles.separator, styles?.separator],
|
|
50
|
+
row: [defaultStyles.row, styles?.row],
|
|
51
|
+
rowText: [defaultStyles.rowText, styles?.rowText],
|
|
34
52
|
};
|
|
35
53
|
const t = { ...defaultLabels, ...labels };
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
54
|
+
const rowIconColor = styles?.rowIconColor ?? defaultStyles.rowIconColor;
|
|
55
|
+
function openEmail() {
|
|
56
|
+
void Linking.openURL(`mailto:${email}`);
|
|
57
|
+
}
|
|
58
|
+
if (actions) {
|
|
59
|
+
return (_jsxs(View, { style: merged.container, children: [_jsx(Text, { style: merged.hint, children: t.hint }), _jsxs(Pressable, { style: merged.row, onPress: openEmail, accessibilityRole: "button", accessibilityLabel: `Envoyer un email à ${email}`, children: [_jsx(Ionicons, { name: emailIcon, size: 20, color: rowIconColor }), _jsx(Text, { style: merged.rowText, children: t.emailRowLabel })] }), actions.map((action) => (_jsxs(Pressable, { style: merged.row, onPress: action.onPress, accessibilityRole: "button", accessibilityLabel: action.accessibilityLabel ?? action.label, children: [_jsx(Ionicons, { name: action.icon, size: 20, color: rowIconColor }), _jsx(Text, { style: merged.rowText, children: action.label })] }, action.label)))] }));
|
|
60
|
+
}
|
|
61
|
+
return (_jsxs(View, { style: merged.container, children: [_jsx(Text, { style: merged.hint, children: t.hint }), _jsx(Pressable, { style: merged.emailButton, onPress: openEmail, accessibilityRole: "button", accessibilityLabel: `Envoyer un email à ${email}`, children: _jsx(Text, { style: merged.emailButtonText, children: `✉️ ${email}` }) }), _jsx(View, { style: merged.separator }), _jsx(Text, { style: merged.hint, children: t.footer })] }));
|
|
39
62
|
}
|
|
@@ -29,8 +29,14 @@ export interface SettingsMenuItem {
|
|
|
29
29
|
hint?: string;
|
|
30
30
|
onPress: () => void;
|
|
31
31
|
}
|
|
32
|
+
export interface SettingsMenuGroup {
|
|
33
|
+
/** Omit for a group with no visible header (e.g. the first one). */
|
|
34
|
+
title?: string;
|
|
35
|
+
items: SettingsMenuItem[];
|
|
36
|
+
}
|
|
32
37
|
export interface SettingsMenuStyles {
|
|
33
38
|
container?: StyleProp<ViewStyle>;
|
|
39
|
+
groupTitle?: StyleProp<TextStyle>;
|
|
34
40
|
row?: StyleProp<ViewStyle>;
|
|
35
41
|
titleColumn?: StyleProp<ViewStyle>;
|
|
36
42
|
emoji?: StyleProp<TextStyle>;
|
|
@@ -40,7 +46,10 @@ export interface SettingsMenuStyles {
|
|
|
40
46
|
chevronColor?: string;
|
|
41
47
|
}
|
|
42
48
|
export interface SettingsMenuProps {
|
|
43
|
-
|
|
49
|
+
/** A flat list of rows. Mutually exclusive with `groups`. */
|
|
50
|
+
items?: SettingsMenuItem[];
|
|
51
|
+
/** Rows grouped under optional section headers. Mutually exclusive with `items`. */
|
|
52
|
+
groups?: SettingsMenuGroup[];
|
|
44
53
|
/**
|
|
45
54
|
* Which flavor of the default icon table to use for items that don't set
|
|
46
55
|
* their own `emoji`/`icon`. Doesn't affect items that do. Defaults to
|
|
@@ -51,5 +60,5 @@ export interface SettingsMenuProps {
|
|
|
51
60
|
showHints?: boolean;
|
|
52
61
|
styles?: SettingsMenuStyles;
|
|
53
62
|
}
|
|
54
|
-
export declare function SettingsMenu({ items, defaultIconKind, showHints, styles, }: SettingsMenuProps): import("react").JSX.Element;
|
|
63
|
+
export declare function SettingsMenu({ items, groups, defaultIconKind, showHints, styles, }: SettingsMenuProps): import("react").JSX.Element;
|
|
55
64
|
//# sourceMappingURL=SettingsMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAC7B,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAclE,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAC7B,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAclE,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,oFAAoF;IACpF,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gHAAgH;IAChH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAmDD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,eAAyB,EACzB,SAAgB,EAChB,MAAM,GACP,EAAE,iBAAiB,+BAsDnB"}
|
|
@@ -11,6 +11,12 @@ const defaultSectionIcons = {
|
|
|
11
11
|
};
|
|
12
12
|
const defaultStyles = {
|
|
13
13
|
container: { gap: 10 },
|
|
14
|
+
groupTitle: {
|
|
15
|
+
fontSize: 13,
|
|
16
|
+
fontWeight: "700",
|
|
17
|
+
color: "#6b7280",
|
|
18
|
+
textTransform: "uppercase",
|
|
19
|
+
},
|
|
14
20
|
row: {
|
|
15
21
|
flexDirection: "row",
|
|
16
22
|
alignItems: "center",
|
|
@@ -44,13 +50,15 @@ function resolveIcon(item, defaultIconKind) {
|
|
|
44
50
|
: { icon: undefined, emoji: fallback.emoji };
|
|
45
51
|
}
|
|
46
52
|
// Menu screen for a settings tab: one row per section (icon + title +
|
|
47
|
-
// optional hint), navigating to it on press
|
|
53
|
+
// optional hint), navigating to it on press, optionally grouped under
|
|
54
|
+
// section headers (`groups` instead of `items`). Has no opinion on how
|
|
48
55
|
// navigation works — each item carries its own `onPress` (e.g.
|
|
49
56
|
// `() => router.push("/settings/xxx")`), so this doesn't depend on
|
|
50
57
|
// expo-router or any other specific navigator.
|
|
51
|
-
export function SettingsMenu({ items, defaultIconKind = "emoji", showHints = true, styles, }) {
|
|
58
|
+
export function SettingsMenu({ items, groups, defaultIconKind = "emoji", showHints = true, styles, }) {
|
|
52
59
|
const merged = {
|
|
53
60
|
container: [defaultStyles.container, styles?.container],
|
|
61
|
+
groupTitle: [defaultStyles.groupTitle, styles?.groupTitle],
|
|
54
62
|
row: [defaultStyles.row, styles?.row],
|
|
55
63
|
titleColumn: [defaultStyles.titleColumn, styles?.titleColumn],
|
|
56
64
|
emoji: [defaultStyles.emoji, styles?.emoji],
|
|
@@ -59,8 +67,13 @@ export function SettingsMenu({ items, defaultIconKind = "emoji", showHints = tru
|
|
|
59
67
|
};
|
|
60
68
|
const chevronColor = styles?.chevronColor ?? defaultStyles.chevronColor;
|
|
61
69
|
const iconColor = styles?.iconColor ?? defaultStyles.iconColor;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
70
|
+
function renderItem(item) {
|
|
71
|
+
const { icon, emoji } = resolveIcon(item, defaultIconKind);
|
|
72
|
+
return (_jsxs(Pressable, { style: merged.row, onPress: item.onPress, accessibilityRole: "button", accessibilityLabel: item.title, children: [icon ? (_jsx(Ionicons, { name: icon, size: 24, color: iconColor })) : (_jsx(Text, { style: merged.emoji, children: emoji })), _jsxs(View, { style: merged.titleColumn, children: [_jsx(Text, { style: merged.title, children: item.title }), showHints && item.hint ? (_jsx(Text, { style: merged.hint, children: item.hint })) : null] }), _jsx(Ionicons, { name: "chevron-forward", size: 20, color: chevronColor })] }, item.key));
|
|
73
|
+
}
|
|
74
|
+
return (_jsx(View, { style: merged.container, children: groups
|
|
75
|
+
? groups.map((group, index) => (
|
|
76
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key -- groups have no other stable identifier, and are a static, author-defined list (not reordered/filtered at runtime)
|
|
77
|
+
_jsxs(View, { style: merged.container, children: [group.title ? (_jsx(Text, { style: merged.groupTitle, children: group.title })) : null, group.items.map(renderItem)] }, group.title ?? index)))
|
|
78
|
+
: items?.map(renderItem) }));
|
|
66
79
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export * from "./components/list/ColorDot.js";
|
|
1
2
|
export * from "./components/list/SwipeableRow.js";
|
|
2
3
|
export * from "./components/list/Thumbnail.js";
|
|
4
|
+
export * from "./components/list/UndoToast.js";
|
|
3
5
|
export * from "./components/picker/PhotoPicker.js";
|
|
4
6
|
export * from "./components/picker/PickerModal.js";
|
|
5
7
|
export * from "./components/picker/VoiceSearchButton.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
// etc.) remain the recommended default for apps that want to avoid pulling in
|
|
4
4
|
// peer deps they don't have installed (Metro doesn't reliably tree-shake) —
|
|
5
5
|
// see the README.
|
|
6
|
+
export * from "./components/list/ColorDot.js";
|
|
6
7
|
export * from "./components/list/SwipeableRow.js";
|
|
7
8
|
export * from "./components/list/Thumbnail.js";
|
|
9
|
+
export * from "./components/list/UndoToast.js";
|
|
8
10
|
export * from "./components/picker/PhotoPicker.js";
|
|
9
11
|
export * from "./components/picker/PickerModal.js";
|
|
10
12
|
export * from "./components/picker/VoiceSearchButton.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forthtilliath/react-native-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"react-test-renderer": "19.2.3",
|
|
45
45
|
"typescript": "^5.9.3",
|
|
46
46
|
"vitest": "^4.1.10",
|
|
47
|
-
"@forthtilliath/eslint-config": "0.
|
|
47
|
+
"@forthtilliath/eslint-config": "0.1.0",
|
|
48
48
|
"@forthtilliath/typescript-config": "0.0.0"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|