From 4c634abc1e4fd50e2958b30602e6c7a1fd73ec75 Mon Sep 17 00:00:00 2001 From: Jorrin <43169049+JorrinKievit@users.noreply.github.com> Date: Sat, 27 Jan 2024 13:53:41 +0100 Subject: [PATCH] upgrade to native wind v4 --- .vscode/settings.json | 3 +- apps/mobile/app/(tabs)/about.tsx | 7 +- apps/mobile/app/(tabs)/account.tsx | 5 +- apps/mobile/app/(tabs)/index.tsx | 5 +- apps/mobile/app/(tabs)/search/Searchbar.tsx | 10 +- apps/mobile/app/(tabs)/search/_layout.tsx | 25 +- apps/mobile/app/(tabs)/settings.tsx | 5 +- apps/mobile/app/[...missing].tsx | 15 +- apps/mobile/app/_layout.tsx | 1 + apps/mobile/app/hooks/useTailwind.ts | 7 +- apps/mobile/babel.config.js | 7 +- apps/mobile/components/item/item.tsx | 23 +- .../mobile/components/layout/screenLayout.tsx | 16 +- apps/mobile/components/ui/Styled.tsx | 6 - apps/mobile/metro.config.js | 51 ++- apps/mobile/package.json | 3 +- apps/mobile/styles/global.css | 3 + apps/mobile/tailwind.config.js | 26 -- apps/mobile/tailwind.config.ts | 58 ++++ apps/mobile/tsconfig.app.json | 2 +- pnpm-lock.yaml | 319 ++++++++++++------ 21 files changed, 396 insertions(+), 201 deletions(-) delete mode 100644 apps/mobile/components/ui/Styled.tsx create mode 100644 apps/mobile/styles/global.css delete mode 100644 apps/mobile/tailwind.config.js create mode 100644 apps/mobile/tailwind.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 08ad711..8e4de29 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,6 @@ }, "[typescriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" - } + }, + "typescript.tsdk": "node_modules\\typescript\\lib" } diff --git a/apps/mobile/app/(tabs)/about.tsx b/apps/mobile/app/(tabs)/about.tsx index 064e9f6..933b0cc 100644 --- a/apps/mobile/app/(tabs)/about.tsx +++ b/apps/mobile/app/(tabs)/about.tsx @@ -1,5 +1,6 @@ +import { Text } from 'react-native'; + import ScreenLayout from '../../components/layout/ScreenLayout'; -import { StyledText } from '../../components/ui/Styled'; export default function AboutScreen() { return ( @@ -7,10 +8,10 @@ export default function AboutScreen() { title="About" subtitle="What is movie-web and how content is served?" > - + No content is served from movie-web directly and movie web does not host anything. - + ); } diff --git a/apps/mobile/app/(tabs)/account.tsx b/apps/mobile/app/(tabs)/account.tsx index 73f5b6a..69ce9be 100644 --- a/apps/mobile/app/(tabs)/account.tsx +++ b/apps/mobile/app/(tabs)/account.tsx @@ -1,5 +1,6 @@ +import { Text } from 'react-native'; + import ScreenLayout from '../../components/layout/ScreenLayout'; -import { StyledText } from '../../components/ui/Styled'; export default function AccountScreen() { return ( @@ -7,7 +8,7 @@ export default function AccountScreen() { title="Account" subtitle="Manage your movie web account from here" > - Hey Bro! what are you up to? + Hey Bro! what are you up to? ); } diff --git a/apps/mobile/app/(tabs)/index.tsx b/apps/mobile/app/(tabs)/index.tsx index c1ecd65..037cc75 100644 --- a/apps/mobile/app/(tabs)/index.tsx +++ b/apps/mobile/app/(tabs)/index.tsx @@ -1,10 +1,11 @@ +import { Text } from 'react-native'; + import ScreenLayout from '../../components/layout/ScreenLayout'; -import { StyledText } from '../../components/ui/Styled'; export default function HomeScreen() { return ( - Movies will be listed here + Movies will be listed here ); } diff --git a/apps/mobile/app/(tabs)/search/Searchbar.tsx b/apps/mobile/app/(tabs)/search/Searchbar.tsx index f289bc7..8a39276 100644 --- a/apps/mobile/app/(tabs)/search/Searchbar.tsx +++ b/apps/mobile/app/(tabs)/search/Searchbar.tsx @@ -1,9 +1,9 @@ import { FontAwesome5 } from '@expo/vector-icons'; import { useFocusEffect } from 'expo-router'; import { useCallback, useRef, useState } from 'react'; +import { View } from 'react-native'; import { TextInput } from 'react-native-gesture-handler'; -import { StyledView } from '../../../components/ui/Styled'; import useTailwind from '../../hooks/useTailwind'; export default function Searchbar() { @@ -25,10 +25,10 @@ export default function Searchbar() { ); return ( - - + + - + - + ); } diff --git a/apps/mobile/app/(tabs)/search/_layout.tsx b/apps/mobile/app/(tabs)/search/_layout.tsx index 5daf1c2..9793863 100644 --- a/apps/mobile/app/(tabs)/search/_layout.tsx +++ b/apps/mobile/app/(tabs)/search/_layout.tsx @@ -1,33 +1,32 @@ -import { ScrollView } from 'react-native'; +import { ScrollView, Text, View } from 'react-native'; import Searchbar from './Searchbar'; import Item from '../../../components/item/item'; import ScreenLayout from '../../../components/layout/ScreenLayout'; -import { StyledText, StyledView } from '../../../components/ui/Styled'; export default function SearchScreen() { return ( - Search - + + Search + } subtitle="Looking for something?" > - - + + - - + + - - + + - - + + ); diff --git a/apps/mobile/app/(tabs)/settings.tsx b/apps/mobile/app/(tabs)/settings.tsx index be769ae..6b4ee8f 100644 --- a/apps/mobile/app/(tabs)/settings.tsx +++ b/apps/mobile/app/(tabs)/settings.tsx @@ -1,10 +1,11 @@ +import { Text } from 'react-native'; + import ScreenLayout from '../../components/layout/ScreenLayout'; -import { StyledText } from '../../components/ui/Styled'; export default function SettingsScreen() { return ( - Settings would be listed in here. Coming soon + Settings would be listed in here. Coming soon ); } diff --git a/apps/mobile/app/[...missing].tsx b/apps/mobile/app/[...missing].tsx index 2335f06..57c2953 100644 --- a/apps/mobile/app/[...missing].tsx +++ b/apps/mobile/app/[...missing].tsx @@ -1,22 +1,19 @@ import { Link, Stack } from 'expo-router'; - -import { StyledText, StyledView } from '../components/ui/Styled'; +import { Text, View } from 'react-native'; export default function NotFoundScreen() { return ( <> - - + + This screen doesn't exist. - + - - Go to home screen! - + Go to home screen! - + ); } diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx index ff6c288..110209c 100644 --- a/apps/mobile/app/_layout.tsx +++ b/apps/mobile/app/_layout.tsx @@ -11,6 +11,7 @@ import { useEffect } from 'react'; import { useColorScheme } from 'react-native'; import useTailwind from './hooks/useTailwind'; +import '../styles/global.css'; export { // Catch any errors thrown by the Layout component. diff --git a/apps/mobile/app/hooks/useTailwind.ts b/apps/mobile/app/hooks/useTailwind.ts index 161f3fb..540bdf3 100644 --- a/apps/mobile/app/hooks/useTailwind.ts +++ b/apps/mobile/app/hooks/useTailwind.ts @@ -1,12 +1,15 @@ import { useMemo } from 'react'; import resolveConfig from 'tailwindcss/resolveConfig'; -import tailwindConfig from '../../tailwind.config.js'; +import tailwindConfig from '../../tailwind.config'; const useTailwind = () => { const tailwind = useMemo(() => resolveConfig(tailwindConfig), []); + console.log(tailwind); return { - colors: tailwind.theme.colors, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + colors: tailwind.theme.colors as typeof tailwindConfig.theme.extend.colors, }; }; diff --git a/apps/mobile/babel.config.js b/apps/mobile/babel.config.js index 95fa08c..bc70ad0 100644 --- a/apps/mobile/babel.config.js +++ b/apps/mobile/babel.config.js @@ -1,11 +1,14 @@ module.exports = function (api) { api.cache(true); return { - presets: ['babel-preset-expo'], + presets: [ + ['babel-preset-expo', { jsxImportSource: 'nativewind' }], + 'nativewind/babel', + ], plugins: [ // Required for expo-router 'expo-router/babel', - 'nativewind/babel', + 'react-native-reanimated/plugin', ], }; }; diff --git a/apps/mobile/components/item/item.tsx b/apps/mobile/components/item/item.tsx index 7acb1e9..5216d4e 100644 --- a/apps/mobile/components/item/item.tsx +++ b/apps/mobile/components/item/item.tsx @@ -1,12 +1,11 @@ -import { Image } from 'react-native'; +import { Image, Text, View } from 'react-native'; import { TMDB_POSTER_PATH } from '../../constants/General'; -import { StyledText, StyledView } from '../ui/Styled'; export default function Item() { return ( - - + + - - Hamilton - - Movie - - 2023 - - + + Hamilton + + Movie + + 2023 + + ); } diff --git a/apps/mobile/components/layout/screenLayout.tsx b/apps/mobile/components/layout/screenLayout.tsx index 5162b4f..245bc9e 100644 --- a/apps/mobile/components/layout/screenLayout.tsx +++ b/apps/mobile/components/layout/screenLayout.tsx @@ -1,4 +1,4 @@ -import { StyledText, StyledView } from '../ui/Styled'; +import { Text, View } from 'react-native'; type Props = { title?: React.ReactNode | string; @@ -8,17 +8,13 @@ type Props = { export default function ScreenLayout({ title, subtitle, children }: Props) { return ( - + {typeof title === 'string' && ( - - {title} - + {title} )} {typeof title !== 'string' && title} - - {subtitle} - - {children} - + {subtitle} + {children} + ); } diff --git a/apps/mobile/components/ui/Styled.tsx b/apps/mobile/components/ui/Styled.tsx deleted file mode 100644 index 0e4d2fa..0000000 --- a/apps/mobile/components/ui/Styled.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { styled } from 'nativewind'; -import { Text, View } from 'react-native'; - -export const StyledText = styled(Text, 'text-white'); - -export const StyledView = styled(View); diff --git a/apps/mobile/metro.config.js b/apps/mobile/metro.config.js index 58823e1..f937dd0 100644 --- a/apps/mobile/metro.config.js +++ b/apps/mobile/metro.config.js @@ -1,6 +1,45 @@ +// const { withNxMetro } = require('@nx/expo'); +// const { getDefaultConfig } = require('@expo/metro-config'); +// const { mergeConfig } = require('metro-config'); +// const { withNativeWind } = require('nativewind/metro'); +// const exclusionList = require('metro-config/src/defaults/exclusionList'); + +// const defaultConfig = getDefaultConfig(__dirname); +// const { assetExts, sourceExts } = defaultConfig.resolver; + +// /** +// * Metro configuration +// * https://facebook.github.io/metro/docs/configuration +// * +// * @type {import('metro-config').MetroConfig} +// */ +// const customConfig = { +// transformer: { +// babelTransformerPath: require.resolve('react-native-svg-transformer'), +// }, +// resolver: { +// assetExts: assetExts.filter((ext) => ext !== 'svg'), +// sourceExts: [...sourceExts, 'svg'], +// blockList: exclusionList([/^(?!.*node_modules).*\/dist\/.*/]), +// // unstable_enableSymlinks: true, +// // unstable_enablePackageExports: true, +// }, +// }; + +// module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { +// // Change this to true to see debugging info. +// // Useful if you have issues resolving modules +// debug: false, +// // all the file extensions used for imports other than 'ts', 'tsx', 'js', 'jsx', 'json' +// extensions: [], +// // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules) +// watchFolders: [], +// }); + const { withNxMetro } = require('@nx/expo'); const { getDefaultConfig } = require('@expo/metro-config'); const { mergeConfig } = require('metro-config'); +const { withNativeWind } = require('nativewind/metro'); const exclusionList = require('metro-config/src/defaults/exclusionList'); const defaultConfig = getDefaultConfig(__dirname); @@ -25,7 +64,15 @@ const customConfig = { }, }; -module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { +const nativeWindConfig = withNativeWind( + mergeConfig(defaultConfig, customConfig), + { + input: './styles/global.css', + configPath: './tailwind.config.ts', + }, +); + +const nxConfig = withNxMetro(nativeWindConfig, { // Change this to true to see debugging info. // Useful if you have issues resolving modules debug: false, @@ -34,3 +81,5 @@ module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules) watchFolders: [], }); + +module.exports = nxConfig; diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 14e3e79..e59c900 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -30,7 +30,7 @@ "jest": "*", "jest-expo": "*", "metro-config": "*", - "nativewind": "^2.0.11", + "nativewind": "^4.0.23", "pod-install": "*", "react": "*", "react-dom": "18.2.0", @@ -41,6 +41,7 @@ "react-native-svg": "*", "react-native-svg-transformer": "*", "react-native-web": "^0.19.10", + "react-native-reanimated": "~3.3.0", "react-test-renderer": "*", "typescript": "*", "tailwindcss": "3.3.2" diff --git a/apps/mobile/styles/global.css b/apps/mobile/styles/global.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/apps/mobile/styles/global.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/apps/mobile/tailwind.config.js b/apps/mobile/tailwind.config.js deleted file mode 100644 index 50457ef..0000000 --- a/apps/mobile/tailwind.config.js +++ /dev/null @@ -1,26 +0,0 @@ -const colors = require('tailwindcss/colors'); - -// https://github.com/marklawlor/nativewind/issues/573 -module.exports = { - content: ['./**/*.{js,jsx,ts,tsx}'], - theme: { - extend: { - colors: { - ...colors, - purple: { - 100: '#C082FF', - 300: '#8D44D6', - 400: '#7831BF', - }, - shade: { - 50: '#676790', - 200: '#3F3F60', - 300: '#32324F', - 700: '#131322', - 900: '#0A0A12', - }, - }, - }, - }, - plugins: [], -}; diff --git a/apps/mobile/tailwind.config.ts b/apps/mobile/tailwind.config.ts new file mode 100644 index 0000000..876588d --- /dev/null +++ b/apps/mobile/tailwind.config.ts @@ -0,0 +1,58 @@ +// const colors = require('tailwindcss/colors'); + +// // https://github.com/marklawlor/nativewind/issues/573 +// /** @type {import('tailwindcss').Config} */ +// module.exports = { +// content: ['./**/*.{js,jsx,ts,tsx}'], +// theme: { +// extend: { +// colors: { +// ...colors, +// purple: { +// 100: '#C082FF', +// 300: '#8D44D6', +// 400: '#7831BF', +// }, +// shade: { +// 50: '#676790', +// 200: '#3F3F60', +// 300: '#32324F', +// 700: '#131322', +// 900: '#0A0A12', +// }, +// }, +// }, +// }, +// plugins: [], +// }; + +// @ts-expect-error - no types +import nativewind from 'nativewind/preset'; +import type { Config } from 'tailwindcss'; + +export default { + content: ['./src/**/*.{ts,tsx}'], + presets: [ + nativewind, + { + theme: { + extend: { + colors: { + purple: { + 100: '#C082FF', + 300: '#8D44D6', + 400: '#7831BF', + }, + shade: { + 50: '#676790', + 200: '#3F3F60', + 300: '#32324F', + 700: '#131322', + 900: '#0A0A12', + }, + }, + }, + }, + }, + ], +} satisfies Config; diff --git a/apps/mobile/tsconfig.app.json b/apps/mobile/tsconfig.app.json index 6d08c79..cc72c86 100644 --- a/apps/mobile/tsconfig.app.json +++ b/apps/mobile/tsconfig.app.json @@ -12,5 +12,5 @@ "**/*.spec.tsx", "test-setup.ts" ], - "include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "tailwind.config.js"] + "include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "tailwind.config.ts"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc871c3..56849e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -218,7 +218,7 @@ importers: version: 5.0.2(expo@49.0.16) expo-router: specifier: ^2.0.14 - version: 2.0.14(@testing-library/jest-native@5.4.3)(expo-constants@15.4.5)(expo-linking@5.0.2)(expo-modules-autolinking@1.10.2)(expo-status-bar@1.6.0)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.14.1)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.72.6)(react@18.2.0) + version: 2.0.14(@testing-library/jest-native@5.4.3)(expo-constants@15.4.5)(expo-linking@5.0.2)(expo-modules-autolinking@1.10.2)(expo-status-bar@1.6.0)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.14.1)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.72.6)(react@18.2.0) expo-splash-screen: specifier: ~0.20.5 version: 0.20.5(expo-modules-autolinking@1.10.2)(expo@49.0.16) @@ -241,8 +241,8 @@ importers: specifier: '*' version: 0.80.4 nativewind: - specifier: ^2.0.11 - version: 2.0.11(react@18.2.0)(tailwindcss@3.3.2) + specifier: ^4.0.23 + version: 4.0.23(@babel/core@7.23.7)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-svg@13.9.0)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.2) pod-install: specifier: '*' version: 0.2.0 @@ -258,6 +258,9 @@ importers: react-native-gesture-handler: specifier: ^2.14.1 version: 2.14.1(react-native@0.72.6)(react@18.2.0) + react-native-reanimated: + specifier: ~3.3.0 + version: 3.3.0(@babel/core@7.23.7)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.23.3)(@babel/plugin-transform-shorthand-properties@7.23.3)(@babel/plugin-transform-template-literals@7.23.3)(react-native@0.72.6)(react@18.2.0) react-native-safe-area-context: specifier: ^4.8.2 version: 4.8.2(react-native@0.72.6)(react@18.2.0) @@ -468,13 +471,6 @@ packages: dependencies: '@babel/types': 7.23.6 - /@babel/helper-module-imports@7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: false - /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} @@ -1252,6 +1248,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + /@babel/plugin-transform-object-assign@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} @@ -1721,15 +1727,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.19.0: - resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: false - /@babel/types@7.23.6: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -5319,6 +5316,22 @@ packages: /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} + /babel-plugin-tester@11.0.4(@babel/core@7.23.7): + resolution: {integrity: sha512-cqswtpSPo0e++rZB0l/54EG17LL25l9gLgh59yXfnmNxX+2lZTIOpx2zt4YI9QIClVXc8xf63J6yWwKkzy0jNg==} + engines: {node: ^14.20.0 || ^16.16.0 || >=18.5.0} + peerDependencies: + '@babel/core': '>=7.11.6' + dependencies: + '@babel/core': 7.23.7 + core-js: 3.35.1 + debug: 4.3.4(supports-color@8.1.1) + lodash.mergewith: 4.6.2 + prettier: 2.8.8 + strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.23.7): resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: @@ -5730,10 +5743,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - dev: false - /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: @@ -6078,6 +6087,11 @@ packages: dependencies: browserslist: 4.22.2 + /core-js@3.35.1: + resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} + requiresBuild: true + dev: false + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -6192,11 +6206,6 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - /css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - dev: false - /css-declaration-sorter@7.1.1(postcss@8.4.33): resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} engines: {node: ^14 || ^16 || >=18} @@ -6227,10 +6236,6 @@ packages: semver: 7.5.4 webpack: 5.89.0(@swc/core@1.3.105) - /css-mediaquery@0.1.2: - resolution: {integrity: sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==} - dev: false - /css-minimizer-webpack-plugin@5.0.1(webpack@5.89.0): resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} @@ -6273,14 +6278,6 @@ packages: domutils: 3.1.0 nth-check: 2.1.1 - /css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - dev: false - /css-tree@1.1.3: resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} engines: {node: '>=8.0.0'} @@ -7581,7 +7578,7 @@ packages: compare-versions: 3.6.0 invariant: 2.2.4 - /expo-router@2.0.14(@testing-library/jest-native@5.4.3)(expo-constants@15.4.5)(expo-linking@5.0.2)(expo-modules-autolinking@1.10.2)(expo-status-bar@1.6.0)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.14.1)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.72.6)(react@18.2.0): + /expo-router@2.0.14(@testing-library/jest-native@5.4.3)(expo-constants@15.4.5)(expo-linking@5.0.2)(expo-modules-autolinking@1.10.2)(expo-status-bar@1.6.0)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.14.1)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.72.6)(react@18.2.0): resolution: {integrity: sha512-F5dP4WMe+zQLzlGSbC+NT9/67FGgwmUCJuPGD4BkK0eRt0uga+y53vQ59m5MCOebqE0N9Ukr/Jz8Num16iGqZA==} peerDependencies: '@react-navigation/drawer': ^6.5.8 @@ -7620,6 +7617,7 @@ packages: query-string: 7.1.3 react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) react-native-gesture-handler: 2.14.1(react-native@0.72.6)(react@18.2.0) + react-native-reanimated: 3.3.0(@babel/core@7.23.7)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.23.3)(@babel/plugin-transform-shorthand-properties@7.23.3)(@babel/plugin-transform-template-literals@7.23.3)(react-native@0.72.6)(react@18.2.0) react-native-safe-area-context: 4.8.2(react-native@0.72.6)(react@18.2.0) react-native-screens: 3.29.0(react-native@0.72.6)(react@18.2.0) schema-utils: 4.2.0 @@ -7742,10 +7740,6 @@ packages: transitivePeerDependencies: - supports-color - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -9855,6 +9849,15 @@ packages: requiresBuild: true optional: true + /lightningcss-darwin-arm64@1.22.0: + resolution: {integrity: sha512-aH2be3nNny+It5YEVm8tBSSdRlBVWQV8m2oJ7dESiYRzyY/E/bQUe2xlw5caaMuhlM9aoTMtOH25yzMhir0qPg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /lightningcss-darwin-x64@1.19.0: resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==} engines: {node: '>= 12.0.0'} @@ -9863,6 +9866,24 @@ packages: requiresBuild: true optional: true + /lightningcss-darwin-x64@1.22.0: + resolution: {integrity: sha512-9KHRFA0Y6mNxRHeoQMp0YaI0R0O2kOgUlYPRjuasU4d+pI8NRhVn9bt0yX9VPs5ibWX1RbDViSPtGJvYYrfVAQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /lightningcss-freebsd-x64@1.22.0: + resolution: {integrity: sha512-xaYL3xperGwD85rQioDb52ozF3NAJb+9wrge3jD9lxGffplu0Mn35rXMptB8Uc2N9Mw1i3Bvl7+z1evlqVl7ww==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + /lightningcss-linux-arm-gnueabihf@1.19.0: resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==} engines: {node: '>= 12.0.0'} @@ -9871,6 +9892,15 @@ packages: requiresBuild: true optional: true + /lightningcss-linux-arm-gnueabihf@1.22.0: + resolution: {integrity: sha512-epQGvXIjOuxrZpMpMnRjK54ZqzhiHhCPLtHvw2fb6NeK2kK9YtF0wqmeTBiQ1AkbWfnnXGTstYaFNiadNK+StQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + /lightningcss-linux-arm64-gnu@1.19.0: resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==} engines: {node: '>= 12.0.0'} @@ -9879,6 +9909,15 @@ packages: requiresBuild: true optional: true + /lightningcss-linux-arm64-gnu@1.22.0: + resolution: {integrity: sha512-AArGtKSY4DGTA8xP8SDyNyKtpsUl1Rzq6FW4JomeyUQ4nBrR71uPChksTpj3gmWuGhZeRKLeCUI1DBid/zhChg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /lightningcss-linux-arm64-musl@1.19.0: resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==} engines: {node: '>= 12.0.0'} @@ -9887,6 +9926,15 @@ packages: requiresBuild: true optional: true + /lightningcss-linux-arm64-musl@1.22.0: + resolution: {integrity: sha512-RRraNgP8hnBPhInTTUdlFm+z16C/ghbxBG51Sw00hd7HUyKmEUKRozyc5od+/N6pOrX/bIh5vIbtMXIxsos0lg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /lightningcss-linux-x64-gnu@1.19.0: resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==} engines: {node: '>= 12.0.0'} @@ -9895,6 +9943,15 @@ packages: requiresBuild: true optional: true + /lightningcss-linux-x64-gnu@1.22.0: + resolution: {integrity: sha512-grdrhYGRi2KrR+bsXJVI0myRADqyA7ekprGxiuK5QRNkv7kj3Yq1fERDNyzZvjisHwKUi29sYMClscbtl+/Zpw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /lightningcss-linux-x64-musl@1.19.0: resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==} engines: {node: '>= 12.0.0'} @@ -9903,6 +9960,15 @@ packages: requiresBuild: true optional: true + /lightningcss-linux-x64-musl@1.22.0: + resolution: {integrity: sha512-t5f90X+iQUtIyR56oXIHMBUyQFX/zwmPt72E6Dane3P8KNGlkijTg2I75XVQS860gNoEFzV7Mm5ArRRA7u5CAQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /lightningcss-win32-x64-msvc@1.19.0: resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==} engines: {node: '>= 12.0.0'} @@ -9911,6 +9977,15 @@ packages: requiresBuild: true optional: true + /lightningcss-win32-x64-msvc@1.22.0: + resolution: {integrity: sha512-64HTDtOOZE9PUCZJiZZQpyqXBbdby1lnztBccnqh+NtbKxjnGzP92R2ngcgeuqMPecMNqNWxgoWgTGpC+yN5Sw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /lightningcss@1.19.0: resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==} engines: {node: '>= 12.0.0'} @@ -9926,6 +10001,23 @@ packages: lightningcss-linux-x64-musl: 1.19.0 lightningcss-win32-x64-msvc: 1.19.0 + /lightningcss@1.22.0: + resolution: {integrity: sha512-+z0qvwRVzs4XGRXelnWRNwqsXUx8k3bSkbP8vD42kYKSk3z9OM2P3e/gagT7ei/gwh8DTS80LZOFZV6lm8Z8Fg==} + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.22.0 + lightningcss-darwin-x64: 1.22.0 + lightningcss-freebsd-x64: 1.22.0 + lightningcss-linux-arm-gnueabihf: 1.22.0 + lightningcss-linux-arm64-gnu: 1.22.0 + lightningcss-linux-arm64-musl: 1.22.0 + lightningcss-linux-x64-gnu: 1.22.0 + lightningcss-linux-x64-musl: 1.22.0 + lightningcss-win32-x64-msvc: 1.22.0 + dev: false + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -9994,6 +10086,10 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + /lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -10851,28 +10947,22 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nativewind@2.0.11(react@18.2.0)(tailwindcss@3.3.2): - resolution: {integrity: sha512-qCEXUwKW21RYJ33KRAJl3zXq2bCq82WoI564fI21D/TiqhfmstZOqPN53RF8qK1NDK6PGl56b2xaTxgObEePEg==} - engines: {node: '>=14.18'} + /nativewind@4.0.23(@babel/core@7.23.7)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-svg@13.9.0)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.2): + resolution: {integrity: sha512-7eKMjcdoZMqxmPwJhLwe5VbuwCNTdIXChxV9n4FwdzKTpZX3kNGj95J7fpqpefFPRT6yYp6SqK2n6TG/BSzA+w==} + engines: {node: '>=16'} peerDependencies: - tailwindcss: ~3 + tailwindcss: '>3.3.0' dependencies: - '@babel/generator': 7.23.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/types': 7.19.0 - css-mediaquery: 0.1.2 - css-to-react-native: 3.2.0 - micromatch: 4.0.5 - postcss: 8.4.33 - postcss-calc: 8.2.4(postcss@8.4.33) - postcss-color-functional-notation: 4.2.4(postcss@8.4.33) - postcss-css-variables: 0.18.0(postcss@8.4.33) - postcss-nested: 5.0.6(postcss@8.4.33) - react-is: 18.2.0 + react-native-css-interop: 0.0.22(@babel/core@7.23.7)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-svg@13.9.0)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.2) tailwindcss: 3.3.2(ts-node@10.9.1) - use-sync-external-store: 1.2.0(react@18.2.0) transitivePeerDependencies: + - '@babel/core' - react + - react-native + - react-native-reanimated + - react-native-safe-area-context + - react-native-svg + - supports-color dev: false /natural-compare@1.4.0: @@ -11548,16 +11638,6 @@ packages: transitivePeerDependencies: - supports-color - /postcss-calc@8.2.4(postcss@8.4.33): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: 8.4.33 - postcss-selector-parser: 6.0.15 - postcss-value-parser: 4.2.0 - dev: false - /postcss-calc@9.0.1(postcss@8.4.33): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -11568,16 +11648,6 @@ packages: postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 - /postcss-color-functional-notation@4.2.4(postcss@8.4.33): - resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==} - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: 8.4.33 - postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} engines: {node: ^14 || ^16 || >=18.0} @@ -11600,17 +11670,6 @@ packages: postcss: 8.4.33 postcss-value-parser: 4.2.0 - /postcss-css-variables@0.18.0(postcss@8.4.33): - resolution: {integrity: sha512-lYS802gHbzn1GI+lXvy9MYIYDuGnl1WB4FTKoqMQqJ3Mab09A7a/1wZvGTkCEZJTM8mSbIyb1mJYn8f0aPye0Q==} - peerDependencies: - postcss: ^8.2.6 - dependencies: - balanced-match: 1.0.2 - escape-string-regexp: 1.0.5 - extend: 3.0.2 - postcss: 8.4.33 - dev: false - /postcss-discard-comments@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} engines: {node: ^14 || ^16 || >=18.0} @@ -11806,16 +11865,6 @@ packages: icss-utils: 5.1.0(postcss@8.4.33) postcss: 8.4.33 - /postcss-nested@5.0.6(postcss@8.4.33): - resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.33 - postcss-selector-parser: 6.0.15 - dev: false - /postcss-nested@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} @@ -11989,6 +12038,12 @@ packages: fast-diff: 1.3.0 dev: true + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: false + /prettier@3.2.4: resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} engines: {node: '>=14'} @@ -12259,6 +12314,38 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + /react-native-css-interop@0.0.22(@babel/core@7.23.7)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.8.2)(react-native-svg@13.9.0)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.2): + resolution: {integrity: sha512-JHLYHlLEqM13dy0XSxIPOWvqmQkPrqUt+KHPkbLV0sIiw/4aN6B5TPsNKZFX9bJJaZ//dAECn782R0MqDrTBWQ==} + engines: {node: '>=16'} + peerDependencies: + react: '>=18' + react-native: '*' + react-native-reanimated: '>=3.3.0' + react-native-safe-area-context: '*' + react-native-svg: '*' + tailwindcss: ~3 + peerDependenciesMeta: + react-native-safe-area-context: + optional: true + react-native-svg: + optional: true + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + babel-plugin-tester: 11.0.4(@babel/core@7.23.7) + lightningcss: 1.22.0 + react: 18.2.0 + react-native: 0.72.6(@babel/core@7.23.7)(@babel/preset-env@7.23.8)(react@18.2.0) + react-native-reanimated: 3.3.0(@babel/core@7.23.7)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.23.3)(@babel/plugin-transform-shorthand-properties@7.23.3)(@babel/plugin-transform-template-literals@7.23.3)(react-native@0.72.6)(react@18.2.0) + react-native-safe-area-context: 4.8.2(react-native@0.72.6)(react@18.2.0) + react-native-svg: 13.9.0(react-native@0.72.6)(react@18.2.0) + tailwindcss: 3.3.2(ts-node@10.9.1) + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: false + /react-native-gesture-handler@2.14.1(react-native@0.72.6)(react@18.2.0): resolution: {integrity: sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==} peerDependencies: @@ -12274,6 +12361,32 @@ packages: react-native: 0.72.6(@babel/core@7.23.7)(@babel/preset-env@7.23.8)(react@18.2.0) dev: false + /react-native-reanimated@3.3.0(@babel/core@7.23.7)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.23.3)(@babel/plugin-transform-shorthand-properties@7.23.3)(@babel/plugin-transform-template-literals@7.23.3)(react-native@0.72.6)(react@18.2.0): + resolution: {integrity: sha512-LzfpPZ1qXBGy5BcUHqw3pBC0qSd22qXS3t8hWSbozXNrBkzMhhOrcILE/nEg/PHpNNp1xvGOW8NwpAMF006roQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-nullish-coalescing-operator': ^7.0.0-0 + '@babel/plugin-proposal-optional-chaining': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties': ^7.0.0-0 + '@babel/plugin-transform-template-literals': ^7.0.0-0 + react: '*' + react-native: '*' + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + convert-source-map: 2.0.0 + invariant: 2.2.4 + react: 18.2.0 + react-native: 0.72.6(@babel/core@7.23.7)(@babel/preset-env@7.23.8)(react@18.2.0) + dev: false + /react-native-safe-area-context@4.8.2(react-native@0.72.6)(react@18.2.0): resolution: {integrity: sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==} peerDependencies: