@forthtilliath/react-native-kit 0.15.1 → 0.16.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 +100 -0
- package/dist/components/feedback/ErrorFallback.d.ts +63 -0
- package/dist/components/feedback/ErrorFallback.d.ts.map +1 -0
- package/dist/components/feedback/ErrorFallback.js +86 -0
- package/dist/components/feedback/index.d.ts +2 -0
- package/dist/components/feedback/index.d.ts.map +1 -0
- package/dist/components/feedback/index.js +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/list/AddButton.d.ts +27 -0
- package/dist/components/list/AddButton.d.ts.map +1 -0
- package/dist/components/list/AddButton.js +29 -0
- package/dist/components/list/DragHandle.d.ts +35 -0
- package/dist/components/list/DragHandle.d.ts.map +1 -0
- package/dist/components/list/DragHandle.js +31 -0
- package/dist/components/list/SwipeableRow.d.ts +18 -4
- package/dist/components/list/SwipeableRow.d.ts.map +1 -1
- package/dist/components/list/SwipeableRow.js +40 -13
- 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/overlay/BottomSheet.d.ts +45 -0
- package/dist/components/overlay/BottomSheet.d.ts.map +1 -0
- package/dist/components/overlay/BottomSheet.js +48 -0
- package/dist/components/overlay/index.d.ts +2 -0
- package/dist/components/overlay/index.d.ts.map +1 -0
- package/dist/components/overlay/index.js +1 -0
- package/dist/components/picker/CheckboxGroup.d.ts +47 -0
- package/dist/components/picker/CheckboxGroup.d.ts.map +1 -0
- package/dist/components/picker/CheckboxGroup.js +50 -0
- package/dist/components/picker/MonthDayGrid.d.ts +58 -0
- package/dist/components/picker/MonthDayGrid.d.ts.map +1 -0
- package/dist/components/picker/MonthDayGrid.js +73 -0
- package/dist/components/picker/OptionsModal.d.ts +45 -0
- package/dist/components/picker/OptionsModal.d.ts.map +1 -0
- package/dist/components/picker/OptionsModal.js +45 -0
- package/dist/components/picker/QuantityStepper.d.ts +63 -0
- package/dist/components/picker/QuantityStepper.d.ts.map +1 -0
- package/dist/components/picker/QuantityStepper.js +101 -0
- package/dist/components/picker/SegmentedToggle.d.ts +52 -0
- package/dist/components/picker/SegmentedToggle.d.ts.map +1 -0
- package/dist/components/picker/SegmentedToggle.js +48 -0
- package/dist/components/picker/SelectField.d.ts +45 -0
- package/dist/components/picker/SelectField.d.ts.map +1 -0
- package/dist/components/picker/SelectField.js +54 -0
- package/dist/components/picker/index.d.ts +6 -0
- package/dist/components/picker/index.d.ts.map +1 -1
- package/dist/components/picker/index.js +6 -0
- package/dist/components/settings/SettingsCard.d.ts +63 -0
- package/dist/components/settings/SettingsCard.d.ts.map +1 -0
- package/dist/components/settings/SettingsCard.js +68 -0
- package/dist/components/settings/SwitchRow.d.ts +48 -0
- package/dist/components/settings/SwitchRow.d.ts.map +1 -0
- package/dist/components/settings/SwitchRow.js +44 -0
- package/dist/components/settings/index.d.ts +2 -0
- package/dist/components/settings/index.d.ts.map +1 -1
- package/dist/components/settings/index.js +2 -0
- package/dist/components/theme/ThemePreferenceProvider.d.ts +39 -0
- package/dist/components/theme/ThemePreferenceProvider.d.ts.map +1 -0
- package/dist/components/theme/ThemePreferenceProvider.js +53 -0
- package/dist/components/theme/index.d.ts +2 -0
- package/dist/components/theme/index.d.ts.map +1 -1
- package/dist/components/theme/index.js +2 -0
- package/dist/components/theme/themePreferenceContext.d.ts +20 -0
- package/dist/components/theme/themePreferenceContext.d.ts.map +1 -0
- package/dist/components/theme/themePreferenceContext.js +21 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/utils/calendar/index.d.ts +3 -0
- package/dist/utils/calendar/index.d.ts.map +1 -0
- package/dist/utils/calendar/index.js +2 -0
- package/dist/utils/calendar/syncDedicatedCalendar.d.ts +37 -0
- package/dist/utils/calendar/syncDedicatedCalendar.d.ts.map +1 -0
- package/dist/utils/calendar/syncDedicatedCalendar.js +42 -0
- package/dist/utils/calendar/toCalendarEventDetails.d.ts +32 -0
- package/dist/utils/calendar/toCalendarEventDetails.d.ts.map +1 -0
- package/dist/utils/calendar/toCalendarEventDetails.js +47 -0
- package/dist/utils/files/appFiles.d.ts +61 -0
- package/dist/utils/files/appFiles.d.ts.map +1 -0
- package/dist/utils/files/appFiles.js +126 -0
- package/dist/utils/files/imageThumbnail.d.ts +22 -0
- package/dist/utils/files/imageThumbnail.d.ts.map +1 -0
- package/dist/utils/files/imageThumbnail.js +28 -0
- package/dist/utils/files/index.d.ts +3 -0
- package/dist/utils/files/index.d.ts.map +1 -0
- package/dist/utils/files/index.js +2 -0
- package/dist/utils/helpers/haptics.d.ts +9 -0
- package/dist/utils/helpers/haptics.d.ts.map +1 -0
- package/dist/utils/helpers/haptics.js +28 -0
- package/dist/utils/helpers/index.d.ts +5 -0
- package/dist/utils/helpers/index.d.ts.map +1 -1
- package/dist/utils/helpers/index.js +5 -0
- package/dist/utils/helpers/isNativeModuleAvailable.d.ts +12 -0
- package/dist/utils/helpers/isNativeModuleAvailable.d.ts.map +1 -0
- package/dist/utils/helpers/isNativeModuleAvailable.js +15 -0
- package/dist/utils/helpers/shareFile.d.ts +23 -0
- package/dist/utils/helpers/shareFile.d.ts.map +1 -0
- package/dist/utils/helpers/shareFile.js +26 -0
- package/dist/utils/helpers/shareTextFile.d.ts +16 -0
- package/dist/utils/helpers/shareTextFile.d.ts.map +1 -0
- package/dist/utils/helpers/shareTextFile.js +23 -0
- package/dist/utils/helpers/shareViewAsImage.d.ts +21 -0
- package/dist/utils/helpers/shareViewAsImage.d.ts.map +1 -0
- package/dist/utils/helpers/shareViewAsImage.js +32 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/package.json +38 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NativeModules, TurboModuleRegistry, } from "react-native";
|
|
2
|
+
/**
|
|
3
|
+
* Whether the native module `name` is compiled into this binary (new or old
|
|
4
|
+
* architecture). Check it before loading a library that requires its native
|
|
5
|
+
* module on import: on a binary built without it (an older dev build),
|
|
6
|
+
* importing it anyway crashes the whole screen instead of disabling the one
|
|
7
|
+
* feature that needs it.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* if (isNativeModuleAvailable("RNViewShot")) showShareAsImageButton();
|
|
11
|
+
*/
|
|
12
|
+
export function isNativeModuleAvailable(name) {
|
|
13
|
+
return (TurboModuleRegistry.get(name) != null ||
|
|
14
|
+
NativeModules[name] != null);
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type KitLocale } from "../../i18n/locale.js";
|
|
2
|
+
export interface ShareFileOptions {
|
|
3
|
+
/** E.g. `"text/calendar"`, `"image/png"`. */
|
|
4
|
+
mimeType: string;
|
|
5
|
+
/** Title of Android's share sheet. */
|
|
6
|
+
dialogTitle?: string;
|
|
7
|
+
/** Language of the default error message. @defaultValue "fr" */
|
|
8
|
+
locale?: KitLocale;
|
|
9
|
+
/** Message of the error thrown when the device can't share. */
|
|
10
|
+
unavailableMessage?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Opens the native share sheet for a local file (a capture, an export…).
|
|
14
|
+
* Needs `expo-sharing` (an optional peer dependency).
|
|
15
|
+
*
|
|
16
|
+
* @param uri - A `file://` URI.
|
|
17
|
+
* @param options - See {@link ShareFileOptions}.
|
|
18
|
+
* @throws An `Error` with a user-facing message when sharing isn't available.
|
|
19
|
+
* @example
|
|
20
|
+
* await shareFile(captureUri, { mimeType: "image/png", dialogTitle: "Partager le planning" });
|
|
21
|
+
*/
|
|
22
|
+
export declare function shareFile(uri: string, options: ShareFileOptions): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=shareFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shareFile.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/shareFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Sharing from "expo-sharing";
|
|
2
|
+
import { DEFAULT_KIT_LOCALE } from "../../i18n/locale.js";
|
|
3
|
+
const defaultUnavailableMessages = {
|
|
4
|
+
fr: "Le partage n'est pas disponible sur cet appareil.",
|
|
5
|
+
en: "Sharing isn't available on this device.",
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Opens the native share sheet for a local file (a capture, an export…).
|
|
9
|
+
* Needs `expo-sharing` (an optional peer dependency).
|
|
10
|
+
*
|
|
11
|
+
* @param uri - A `file://` URI.
|
|
12
|
+
* @param options - See {@link ShareFileOptions}.
|
|
13
|
+
* @throws An `Error` with a user-facing message when sharing isn't available.
|
|
14
|
+
* @example
|
|
15
|
+
* await shareFile(captureUri, { mimeType: "image/png", dialogTitle: "Partager le planning" });
|
|
16
|
+
*/
|
|
17
|
+
export async function shareFile(uri, options) {
|
|
18
|
+
if (!(await Sharing.isAvailableAsync())) {
|
|
19
|
+
throw new Error(options.unavailableMessage ??
|
|
20
|
+
defaultUnavailableMessages[options.locale ?? DEFAULT_KIT_LOCALE]);
|
|
21
|
+
}
|
|
22
|
+
await Sharing.shareAsync(uri, {
|
|
23
|
+
mimeType: options.mimeType,
|
|
24
|
+
dialogTitle: options.dialogTitle,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ShareFileOptions } from "./shareFile.js";
|
|
2
|
+
/**
|
|
3
|
+
* Writes text to a file in the app's cache (replacing any previous one of
|
|
4
|
+
* that name), then opens the native share sheet for it — to export an
|
|
5
|
+
* `.ics`, a `.csv`, a JSON backup… Needs `expo-file-system` and
|
|
6
|
+
* `expo-sharing` (optional peer dependencies).
|
|
7
|
+
*
|
|
8
|
+
* @param filename - The shared file's name, extension included.
|
|
9
|
+
* @param content - Its text content.
|
|
10
|
+
* @param options - See `ShareFileOptions`.
|
|
11
|
+
* @throws An `Error` with a user-facing message when sharing isn't available.
|
|
12
|
+
* @example
|
|
13
|
+
* await shareTextFile("planning-2026-07.ics", ics, { mimeType: "text/calendar" });
|
|
14
|
+
*/
|
|
15
|
+
export declare function shareTextFile(filename: string, content: string, options: ShareFileOptions): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=shareTextFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shareTextFile.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/shareTextFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { File, Paths } from "expo-file-system";
|
|
2
|
+
import { shareFile } from "./shareFile.js";
|
|
3
|
+
/**
|
|
4
|
+
* Writes text to a file in the app's cache (replacing any previous one of
|
|
5
|
+
* that name), then opens the native share sheet for it — to export an
|
|
6
|
+
* `.ics`, a `.csv`, a JSON backup… Needs `expo-file-system` and
|
|
7
|
+
* `expo-sharing` (optional peer dependencies).
|
|
8
|
+
*
|
|
9
|
+
* @param filename - The shared file's name, extension included.
|
|
10
|
+
* @param content - Its text content.
|
|
11
|
+
* @param options - See `ShareFileOptions`.
|
|
12
|
+
* @throws An `Error` with a user-facing message when sharing isn't available.
|
|
13
|
+
* @example
|
|
14
|
+
* await shareTextFile("planning-2026-07.ics", ics, { mimeType: "text/calendar" });
|
|
15
|
+
*/
|
|
16
|
+
export async function shareTextFile(filename, content, options) {
|
|
17
|
+
const file = new File(Paths.cache, filename);
|
|
18
|
+
if (file.exists)
|
|
19
|
+
file.delete();
|
|
20
|
+
file.create({ overwrite: true });
|
|
21
|
+
file.write(content);
|
|
22
|
+
await shareFile(file.uri, options);
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import type { View } from "react-native";
|
|
3
|
+
import { type ShareFileOptions } from "./shareFile.js";
|
|
4
|
+
export type ShareViewAsImageOptions = Omit<ShareFileOptions, "mimeType"> & {
|
|
5
|
+
/** Message of the error thrown when this binary can't capture views. */
|
|
6
|
+
captureUnavailableMessage?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Captures a view as a PNG and opens the native share sheet with it (a
|
|
10
|
+
* scoreboard, a schedule…). Needs `react-native-view-shot` and
|
|
11
|
+
* `expo-sharing`. The capture library is loaded on demand, once its native
|
|
12
|
+
* module is known to be there: on a binary built without it, only this
|
|
13
|
+
* feature fails — with a user-facing `Error` — instead of the whole screen.
|
|
14
|
+
*
|
|
15
|
+
* @param view - Ref of the view to capture (`collapsable={false}` on Android).
|
|
16
|
+
* @param options - See {@link ShareViewAsImageOptions} and `shareFile`.
|
|
17
|
+
* @example
|
|
18
|
+
* await shareViewAsImage(rankingRef, { dialogTitle: "Partager le classement" });
|
|
19
|
+
*/
|
|
20
|
+
export declare function shareViewAsImage(view: RefObject<View | null>, { captureUnavailableMessage, ...options }?: ShareViewAsImageOptions): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=shareViewAsImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shareViewAsImage.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/shareViewAsImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKzC,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IACzE,wEAAwE;IACxE,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAOF;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,EAC5B,EAAE,yBAAyB,EAAE,GAAG,OAAO,EAAE,GAAE,uBAA4B,GACtE,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DEFAULT_KIT_LOCALE } from "../../i18n/locale.js";
|
|
2
|
+
import { isNativeModuleAvailable } from "./isNativeModuleAvailable.js";
|
|
3
|
+
import { shareFile } from "./shareFile.js";
|
|
4
|
+
const defaultCaptureUnavailableMessages = {
|
|
5
|
+
fr: "Le partage en image n'est pas disponible dans cette version de l'app.",
|
|
6
|
+
en: "Sharing as an image isn't available in this version of the app.",
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Captures a view as a PNG and opens the native share sheet with it (a
|
|
10
|
+
* scoreboard, a schedule…). Needs `react-native-view-shot` and
|
|
11
|
+
* `expo-sharing`. The capture library is loaded on demand, once its native
|
|
12
|
+
* module is known to be there: on a binary built without it, only this
|
|
13
|
+
* feature fails — with a user-facing `Error` — instead of the whole screen.
|
|
14
|
+
*
|
|
15
|
+
* @param view - Ref of the view to capture (`collapsable={false}` on Android).
|
|
16
|
+
* @param options - See {@link ShareViewAsImageOptions} and `shareFile`.
|
|
17
|
+
* @example
|
|
18
|
+
* await shareViewAsImage(rankingRef, { dialogTitle: "Partager le classement" });
|
|
19
|
+
*/
|
|
20
|
+
export async function shareViewAsImage(view, { captureUnavailableMessage, ...options } = {}) {
|
|
21
|
+
if (!isNativeModuleAvailable("RNViewShot")) {
|
|
22
|
+
throw new Error(captureUnavailableMessage ??
|
|
23
|
+
defaultCaptureUnavailableMessages[options.locale ?? DEFAULT_KIT_LOCALE]);
|
|
24
|
+
}
|
|
25
|
+
const { captureRef } = await import("react-native-view-shot");
|
|
26
|
+
const uri = await captureRef(view, {
|
|
27
|
+
format: "png",
|
|
28
|
+
quality: 1,
|
|
29
|
+
result: "tmpfile",
|
|
30
|
+
});
|
|
31
|
+
await shareFile(uri, { ...options, mimeType: "image/png" });
|
|
32
|
+
}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forthtilliath/react-native-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,17 +22,43 @@
|
|
|
22
22
|
"./*": "./dist/*.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@forthtilliath/expo-release-updates-ui": "^0.
|
|
26
|
-
"@forthtilliath/ts-kit": "^0.
|
|
25
|
+
"@forthtilliath/expo-release-updates-ui": "^0.4.0",
|
|
26
|
+
"@forthtilliath/ts-kit": "^0.12.0"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@expo/vector-icons": ">=15.0.0",
|
|
30
|
+
"expo-calendar": ">=54.0.0",
|
|
31
|
+
"expo-file-system": ">=54.0.0",
|
|
32
|
+
"expo-haptics": ">=54.0.0",
|
|
33
|
+
"expo-image-manipulator": ">=54.0.0",
|
|
30
34
|
"expo-image-picker": ">=54.0.0",
|
|
35
|
+
"expo-sharing": ">=54.0.0",
|
|
31
36
|
"expo-speech-recognition": ">=1.0.0",
|
|
32
37
|
"react": ">=19",
|
|
33
38
|
"react-native": ">=0.81",
|
|
34
39
|
"react-native-gesture-handler": ">=2.20.0",
|
|
35
|
-
"react-native-reanimated": ">=3.0.0"
|
|
40
|
+
"react-native-reanimated": ">=3.0.0",
|
|
41
|
+
"react-native-view-shot": ">=4.0.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependenciesMeta": {
|
|
44
|
+
"expo-calendar": {
|
|
45
|
+
"optional": true
|
|
46
|
+
},
|
|
47
|
+
"expo-file-system": {
|
|
48
|
+
"optional": true
|
|
49
|
+
},
|
|
50
|
+
"expo-haptics": {
|
|
51
|
+
"optional": true
|
|
52
|
+
},
|
|
53
|
+
"expo-image-manipulator": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"expo-sharing": {
|
|
57
|
+
"optional": true
|
|
58
|
+
},
|
|
59
|
+
"react-native-view-shot": {
|
|
60
|
+
"optional": true
|
|
61
|
+
}
|
|
36
62
|
},
|
|
37
63
|
"devDependencies": {
|
|
38
64
|
"@expo/vector-icons": "^15.1.1",
|
|
@@ -41,25 +67,31 @@
|
|
|
41
67
|
"@types/react-test-renderer": "^19.1.0",
|
|
42
68
|
"@vitest/coverage-v8": "5.0.2",
|
|
43
69
|
"eslint": "10.7.0",
|
|
70
|
+
"expo-calendar": "~57.0.5",
|
|
71
|
+
"expo-file-system": "~57.0.2",
|
|
72
|
+
"expo-haptics": "~57.0.3",
|
|
73
|
+
"expo-image-manipulator": "~57.0.21",
|
|
44
74
|
"expo-image-picker": "~57.0.9",
|
|
75
|
+
"expo-sharing": "~57.0.23",
|
|
45
76
|
"expo-speech-recognition": "^56.0.1",
|
|
46
77
|
"react": "^19.2.8",
|
|
47
78
|
"react-native": "0.86.0",
|
|
48
79
|
"react-native-gesture-handler": "~2.32.0",
|
|
49
80
|
"react-native-reanimated": "4.5.1",
|
|
81
|
+
"react-native-view-shot": "5.1.0",
|
|
50
82
|
"react-native-worklets": "0.10.1",
|
|
51
83
|
"react-test-renderer": "19.2.3",
|
|
52
84
|
"size-limit": "^14.1.0",
|
|
53
85
|
"typescript": "^5.9.3",
|
|
54
86
|
"vitest": "^5.0.2",
|
|
55
|
-
"@forthtilliath/eslint-config": "0.
|
|
87
|
+
"@forthtilliath/eslint-config": "0.9.0",
|
|
56
88
|
"@forthtilliath/typescript-config": "0.1.1"
|
|
57
89
|
},
|
|
58
90
|
"size-limit": [
|
|
59
91
|
{
|
|
60
92
|
"name": "dist (all modules, brotli)",
|
|
61
93
|
"path": "dist/**/*.js",
|
|
62
|
-
"limit": "
|
|
94
|
+
"limit": "44 KB"
|
|
63
95
|
}
|
|
64
96
|
],
|
|
65
97
|
"scripts": {
|