@forthtilliath/react-native-kit 0.14.8 → 0.15.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/README.md +37 -17
- package/dist/components/index.d.ts +4 -4
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +4 -4
- package/dist/components/list/SwipeableRow.d.ts +14 -1
- package/dist/components/list/SwipeableRow.d.ts.map +1 -1
- package/dist/components/list/SwipeableRow.js +18 -16
- package/dist/components/list/Thumbnail.d.ts.map +1 -1
- package/dist/components/list/Thumbnail.js +2 -6
- package/dist/components/list/UndoToast.d.ts +10 -4
- package/dist/components/list/UndoToast.d.ts.map +1 -1
- package/dist/components/list/UndoToast.js +11 -8
- package/dist/components/list/index.d.ts +4 -4
- package/dist/components/list/index.d.ts.map +1 -1
- package/dist/components/list/index.js +4 -4
- package/dist/components/picker/PhotoPicker.d.ts +7 -1
- package/dist/components/picker/PhotoPicker.d.ts.map +1 -1
- package/dist/components/picker/PhotoPicker.js +33 -28
- package/dist/components/picker/PickerModal.d.ts +7 -1
- package/dist/components/picker/PickerModal.d.ts.map +1 -1
- package/dist/components/picker/PickerModal.js +8 -28
- package/dist/components/picker/PickerModal.styles.d.ts +18 -1
- package/dist/components/picker/PickerModal.styles.d.ts.map +1 -1
- package/dist/components/picker/PickerModal.styles.js +16 -6
- package/dist/components/picker/VoiceSearchButton.d.ts +13 -2
- package/dist/components/picker/VoiceSearchButton.d.ts.map +1 -1
- package/dist/components/picker/VoiceSearchButton.js +18 -1
- package/dist/components/picker/index.d.ts +3 -3
- package/dist/components/picker/index.d.ts.map +1 -1
- package/dist/components/picker/index.js +3 -3
- package/dist/components/settings/AboutSettingsScreen.d.ts +7 -1
- package/dist/components/settings/AboutSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/AboutSettingsScreen.js +13 -13
- package/dist/components/settings/BackupSettingsScreen.d.ts +9 -59
- package/dist/components/settings/BackupSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/BackupSettingsScreen.js +32 -141
- package/dist/components/settings/BackupSettingsScreen.styles.d.ts +173 -0
- package/dist/components/settings/BackupSettingsScreen.styles.d.ts.map +1 -0
- package/dist/components/settings/BackupSettingsScreen.styles.js +98 -0
- package/dist/components/settings/ContactSettingsScreen.d.ts +7 -1
- package/dist/components/settings/ContactSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/ContactSettingsScreen.js +15 -14
- package/dist/components/settings/PrivacySettingsScreen.d.ts +7 -1
- package/dist/components/settings/PrivacySettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/PrivacySettingsScreen.js +50 -28
- package/dist/components/settings/SettingsMenu.d.ts.map +1 -1
- package/dist/components/settings/SettingsMenu.js +2 -9
- package/dist/components/settings/ThemeSettingsScreen.d.ts +7 -1
- package/dist/components/settings/ThemeSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/ThemeSettingsScreen.js +17 -19
- package/dist/components/settings/UpdateSettingsScreen.d.ts +11 -2
- package/dist/components/settings/UpdateSettingsScreen.d.ts.map +1 -1
- package/dist/components/settings/UpdateSettingsScreen.js +7 -31
- package/dist/components/settings/UpdateSettingsScreen.styles.d.ts +28 -1
- package/dist/components/settings/UpdateSettingsScreen.styles.d.ts.map +1 -1
- package/dist/components/settings/UpdateSettingsScreen.styles.js +26 -11
- package/dist/components/settings/index.d.ts +7 -7
- package/dist/components/settings/index.d.ts.map +1 -1
- package/dist/components/settings/index.js +7 -7
- package/dist/components/theme/ThemeOptionList.d.ts +7 -1
- package/dist/components/theme/ThemeOptionList.d.ts.map +1 -1
- package/dist/components/theme/ThemeOptionList.js +6 -17
- package/dist/components/theme/ThemeToggle.d.ts +7 -1
- package/dist/components/theme/ThemeToggle.d.ts.map +1 -1
- package/dist/components/theme/ThemeToggle.js +6 -20
- package/dist/components/theme/index.d.ts +2 -2
- package/dist/components/theme/index.d.ts.map +1 -1
- package/dist/components/theme/index.js +2 -2
- package/dist/components/theme/themeLabels.d.ts +14 -0
- package/dist/components/theme/themeLabels.d.ts.map +1 -0
- package/dist/components/theme/themeLabels.js +5 -0
- package/dist/hooks/index.d.ts +3 -3
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/useDebouncedChange.d.ts.map +1 -1
- package/dist/hooks/useDebouncedChange.js +6 -7
- package/dist/hooks/useSubmitGuard.d.ts.map +1 -1
- package/dist/hooks/useSubmitGuard.js +9 -5
- package/dist/i18n/KitLocaleProvider.d.ts +19 -0
- package/dist/i18n/KitLocaleProvider.d.ts.map +1 -0
- package/dist/i18n/KitLocaleProvider.js +16 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/locale.d.ts +14 -0
- package/dist/i18n/locale.d.ts.map +1 -0
- package/dist/i18n/locale.js +18 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/utils/helpers/confirmDestructive.d.ts +6 -0
- package/dist/utils/helpers/confirmDestructive.d.ts.map +1 -1
- package/dist/utils/helpers/confirmDestructive.js +20 -6
- package/dist/utils/helpers/index.d.ts +1 -0
- package/dist/utils/helpers/index.d.ts.map +1 -1
- package/dist/utils/helpers/index.js +1 -0
- package/dist/utils/helpers/mergeSlotStyles.d.ts +20 -0
- package/dist/utils/helpers/mergeSlotStyles.d.ts.map +1 -0
- package/dist/utils/helpers/mergeSlotStyles.js +26 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +14 -10
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import { type KitLocale } from "../../i18n/locale.js";
|
|
1
2
|
export interface ConfirmDestructiveOptions {
|
|
2
3
|
message?: string;
|
|
3
4
|
cancelLabel?: string;
|
|
4
5
|
confirmLabel?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Language of the default message/labels. Not a component, so this can't
|
|
8
|
+
* read a `KitLocaleProvider`: pass the app's locale here (French by default).
|
|
9
|
+
*/
|
|
10
|
+
locale?: KitLocale;
|
|
5
11
|
}
|
|
6
12
|
export declare function confirmDestructive(title: string, onConfirm: () => void, options?: ConfirmDestructiveOptions): void;
|
|
7
13
|
//# sourceMappingURL=confirmDestructive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmDestructive.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/confirmDestructive.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"confirmDestructive.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/confirmDestructive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAoBD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,IAAI,EACrB,OAAO,GAAE,yBAA8B,QAWxC"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import { Alert } from "react-native";
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { DEFAULT_KIT_LOCALE } from "../../i18n/locale.js";
|
|
3
|
+
const defaultTexts = {
|
|
4
|
+
fr: {
|
|
5
|
+
message: "Cette action est définitive.",
|
|
6
|
+
cancelLabel: "Annuler",
|
|
7
|
+
confirmLabel: "Supprimer",
|
|
8
|
+
},
|
|
9
|
+
en: {
|
|
10
|
+
message: "This can't be undone.",
|
|
11
|
+
cancelLabel: "Cancel",
|
|
12
|
+
confirmLabel: "Delete",
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
// Generic destructive confirmation (title + message + Cancel/Confirm), for
|
|
16
|
+
// any irreversible action (deletion, reset...).
|
|
7
17
|
export function confirmDestructive(title, onConfirm, options = {}) {
|
|
8
|
-
const {
|
|
18
|
+
const { locale = DEFAULT_KIT_LOCALE, ...overrides } = options;
|
|
19
|
+
const { message, cancelLabel, confirmLabel } = {
|
|
20
|
+
...defaultTexts[locale],
|
|
21
|
+
...overrides,
|
|
22
|
+
};
|
|
9
23
|
Alert.alert(title, message, [
|
|
10
24
|
{ text: cancelLabel, style: "cancel" },
|
|
11
25
|
{ text: confirmLabel, style: "destructive", onPress: onConfirm },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges a component's per-slot style overrides onto its defaults, slot by
|
|
3
|
+
* slot, as `[default, override]` style arrays — so overriding one property of
|
|
4
|
+
* a slot (say `button.backgroundColor`) keeps the rest of that slot's default
|
|
5
|
+
* (padding, radius…) instead of replacing it wholesale.
|
|
6
|
+
*
|
|
7
|
+
* Every key of `defaults` is paired this way, including non-style fields
|
|
8
|
+
* (icon colors…), which the caller resolves itself and simply ignores here.
|
|
9
|
+
*
|
|
10
|
+
* @param defaults - The default style of each slot.
|
|
11
|
+
* @param overrides - The caller's `styles` prop, if any.
|
|
12
|
+
* @returns For each slot of `defaults`, a `[default, override]` style array.
|
|
13
|
+
* @example
|
|
14
|
+
* const merged = mergeSlotStyles(defaultStyles, styles);
|
|
15
|
+
* <View style={merged.container} />
|
|
16
|
+
*/
|
|
17
|
+
export declare function mergeSlotStyles<D extends Record<string, unknown>, O extends object>(defaults: D, overrides: O | undefined): {
|
|
18
|
+
[K in keyof D]: [D[K], K extends keyof O ? O[K] : undefined];
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=mergeSlotStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeSlotStyles.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/mergeSlotStyles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,CAAC,SAAS,MAAM,EAEhB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,GAAG,SAAS,GACvB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAAE,CAWlE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges a component's per-slot style overrides onto its defaults, slot by
|
|
3
|
+
* slot, as `[default, override]` style arrays — so overriding one property of
|
|
4
|
+
* a slot (say `button.backgroundColor`) keeps the rest of that slot's default
|
|
5
|
+
* (padding, radius…) instead of replacing it wholesale.
|
|
6
|
+
*
|
|
7
|
+
* Every key of `defaults` is paired this way, including non-style fields
|
|
8
|
+
* (icon colors…), which the caller resolves itself and simply ignores here.
|
|
9
|
+
*
|
|
10
|
+
* @param defaults - The default style of each slot.
|
|
11
|
+
* @param overrides - The caller's `styles` prop, if any.
|
|
12
|
+
* @returns For each slot of `defaults`, a `[default, override]` style array.
|
|
13
|
+
* @example
|
|
14
|
+
* const merged = mergeSlotStyles(defaultStyles, styles);
|
|
15
|
+
* <View style={merged.container} />
|
|
16
|
+
*/
|
|
17
|
+
export function mergeSlotStyles(defaults, overrides) {
|
|
18
|
+
const merged = {};
|
|
19
|
+
for (const key of Object.keys(defaults)) {
|
|
20
|
+
merged[key] = [
|
|
21
|
+
defaults[key],
|
|
22
|
+
overrides?.[key],
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
return merged;
|
|
26
|
+
}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./helpers";
|
|
1
|
+
export * from "./helpers/index.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./helpers";
|
|
1
|
+
export * from "./helpers/index.js";
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forthtilliath/react-native-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"sideEffects": false,
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
@@ -21,8 +22,8 @@
|
|
|
21
22
|
"./*": "./dist/*.js"
|
|
22
23
|
},
|
|
23
24
|
"dependencies": {
|
|
24
|
-
"@forthtilliath/expo-release-updates-ui": "0.
|
|
25
|
-
"@forthtilliath/ts-kit": "0.
|
|
25
|
+
"@forthtilliath/expo-release-updates-ui": "^0.3.0",
|
|
26
|
+
"@forthtilliath/ts-kit": "^0.11.0"
|
|
26
27
|
},
|
|
27
28
|
"peerDependencies": {
|
|
28
29
|
"@expo/vector-icons": ">=15.0.0",
|
|
@@ -30,25 +31,28 @@
|
|
|
30
31
|
"expo-speech-recognition": ">=1.0.0",
|
|
31
32
|
"react": ">=19",
|
|
32
33
|
"react-native": ">=0.81",
|
|
33
|
-
"react-native-gesture-handler": ">=2.20.0"
|
|
34
|
+
"react-native-gesture-handler": ">=2.20.0",
|
|
35
|
+
"react-native-reanimated": ">=3.0.0"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
38
|
"@expo/vector-icons": "^15.1.1",
|
|
37
|
-
"@size-limit/file": "^
|
|
39
|
+
"@size-limit/file": "^14.1.0",
|
|
38
40
|
"@types/react": "^19.2.18",
|
|
39
41
|
"@types/react-test-renderer": "^19.1.0",
|
|
40
|
-
"@vitest/coverage-v8": "
|
|
42
|
+
"@vitest/coverage-v8": "5.0.2",
|
|
41
43
|
"eslint": "10.7.0",
|
|
42
44
|
"expo-image-picker": "~57.0.9",
|
|
43
45
|
"expo-speech-recognition": "^56.0.1",
|
|
44
46
|
"react": "^19.2.8",
|
|
45
47
|
"react-native": "0.86.0",
|
|
46
48
|
"react-native-gesture-handler": "~2.32.0",
|
|
49
|
+
"react-native-reanimated": "4.5.1",
|
|
50
|
+
"react-native-worklets": "0.10.1",
|
|
47
51
|
"react-test-renderer": "19.2.3",
|
|
48
|
-
"size-limit": "^
|
|
52
|
+
"size-limit": "^14.1.0",
|
|
49
53
|
"typescript": "^5.9.3",
|
|
50
|
-
"vitest": "^
|
|
51
|
-
"@forthtilliath/eslint-config": "0.
|
|
54
|
+
"vitest": "^5.0.2",
|
|
55
|
+
"@forthtilliath/eslint-config": "0.8.0",
|
|
52
56
|
"@forthtilliath/typescript-config": "0.1.1"
|
|
53
57
|
},
|
|
54
58
|
"size-limit": [
|
|
@@ -61,7 +65,7 @@
|
|
|
61
65
|
"scripts": {
|
|
62
66
|
"lint": "eslint . --max-warnings 0",
|
|
63
67
|
"check-types": "tsc --noEmit",
|
|
64
|
-
"clean": "
|
|
68
|
+
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
65
69
|
"dev": "tsc --watch -p tsconfig.build.json",
|
|
66
70
|
"build": "pnpm run clean && tsc -p tsconfig.build.json",
|
|
67
71
|
"test": "vitest run",
|