upgrade to native wind v4

This commit is contained in:
Jorrin
2024-01-27 13:53:41 +01:00
parent 26a1b623e7
commit 4c634abc1e
21 changed files with 396 additions and 201 deletions

View File

@@ -7,5 +7,6 @@
}, },
"[typescriptreact]": { "[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" "editor.defaultFormatter": "esbenp.prettier-vscode"
} },
"typescript.tsdk": "node_modules\\typescript\\lib"
} }

View File

@@ -1,5 +1,6 @@
import { Text } from 'react-native';
import ScreenLayout from '../../components/layout/ScreenLayout'; import ScreenLayout from '../../components/layout/ScreenLayout';
import { StyledText } from '../../components/ui/Styled';
export default function AboutScreen() { export default function AboutScreen() {
return ( return (
@@ -7,10 +8,10 @@ export default function AboutScreen() {
title="About" title="About"
subtitle="What is movie-web and how content is served?" subtitle="What is movie-web and how content is served?"
> >
<StyledText> <Text>
No content is served from movie-web directly and movie web does not host No content is served from movie-web directly and movie web does not host
anything. anything.
</StyledText> </Text>
</ScreenLayout> </ScreenLayout>
); );
} }

View File

@@ -1,5 +1,6 @@
import { Text } from 'react-native';
import ScreenLayout from '../../components/layout/ScreenLayout'; import ScreenLayout from '../../components/layout/ScreenLayout';
import { StyledText } from '../../components/ui/Styled';
export default function AccountScreen() { export default function AccountScreen() {
return ( return (
@@ -7,7 +8,7 @@ export default function AccountScreen() {
title="Account" title="Account"
subtitle="Manage your movie web account from here" subtitle="Manage your movie web account from here"
> >
<StyledText>Hey Bro! what are you up to?</StyledText> <Text>Hey Bro! what are you up to?</Text>
</ScreenLayout> </ScreenLayout>
); );
} }

View File

@@ -1,10 +1,11 @@
import { Text } from 'react-native';
import ScreenLayout from '../../components/layout/ScreenLayout'; import ScreenLayout from '../../components/layout/ScreenLayout';
import { StyledText } from '../../components/ui/Styled';
export default function HomeScreen() { export default function HomeScreen() {
return ( return (
<ScreenLayout title="Home" subtitle="This is where all magic happens"> <ScreenLayout title="Home" subtitle="This is where all magic happens">
<StyledText>Movies will be listed here</StyledText> <Text>Movies will be listed here</Text>
</ScreenLayout> </ScreenLayout>
); );
} }

View File

@@ -1,9 +1,9 @@
import { FontAwesome5 } from '@expo/vector-icons'; import { FontAwesome5 } from '@expo/vector-icons';
import { useFocusEffect } from 'expo-router'; import { useFocusEffect } from 'expo-router';
import { useCallback, useRef, useState } from 'react'; import { useCallback, useRef, useState } from 'react';
import { View } from 'react-native';
import { TextInput } from 'react-native-gesture-handler'; import { TextInput } from 'react-native-gesture-handler';
import { StyledView } from '../../../components/ui/Styled';
import useTailwind from '../../hooks/useTailwind'; import useTailwind from '../../hooks/useTailwind';
export default function Searchbar() { export default function Searchbar() {
@@ -25,10 +25,10 @@ export default function Searchbar() {
); );
return ( return (
<StyledView className="mb-6 mt-4 flex-row items-center rounded-full border"> <View className="mb-6 mt-4 flex-row items-center rounded-full border">
<StyledView className="ml-1 w-12 items-center justify-center"> <View className="ml-1 w-12 items-center justify-center">
<FontAwesome5 name="search" size={18} color={colors.shade[200]} /> <FontAwesome5 name="search" size={18} color={colors.shade[200]} />
</StyledView> </View>
<TextInput <TextInput
value={keyword} value={keyword}
autoFocus autoFocus
@@ -38,6 +38,6 @@ export default function Searchbar() {
placeholderTextColor={colors.shade[200]} placeholderTextColor={colors.shade[200]}
className="w-full rounded-3xl py-3 pr-5 text-white" className="w-full rounded-3xl py-3 pr-5 text-white"
/> />
</StyledView> </View>
); );
} }

View File

@@ -1,33 +1,32 @@
import { ScrollView } from 'react-native'; import { ScrollView, Text, View } from 'react-native';
import Searchbar from './Searchbar'; import Searchbar from './Searchbar';
import Item from '../../../components/item/item'; import Item from '../../../components/item/item';
import ScreenLayout from '../../../components/layout/ScreenLayout'; import ScreenLayout from '../../../components/layout/ScreenLayout';
import { StyledText, StyledView } from '../../../components/ui/Styled';
export default function SearchScreen() { export default function SearchScreen() {
return ( return (
<ScrollView> <ScrollView>
<ScreenLayout <ScreenLayout
title={ title={
<StyledView className="flex-row items-center"> <View className="flex-row items-center">
<StyledText className="text-2xl font-bold">Search</StyledText> <Text className="text-2xl font-bold">Search</Text>
</StyledView> </View>
} }
subtitle="Looking for something?" subtitle="Looking for something?"
> >
<Searchbar /> <Searchbar />
<StyledView className="flex w-full flex-1 flex-row flex-wrap justify-start"> <View className="flex w-full flex-1 flex-row flex-wrap justify-start">
<StyledView className="basis-1/2 px-3 pb-3"> <View className="basis-1/2 px-3 pb-3">
<Item /> <Item />
</StyledView> </View>
<StyledView className="basis-1/2 px-3 pb-3"> <View className="basis-1/2 px-3 pb-3">
<Item /> <Item />
</StyledView> </View>
<StyledView className="basis-1/2 px-3 pb-3"> <View className="basis-1/2 px-3 pb-3">
<Item /> <Item />
</StyledView> </View>
</StyledView> </View>
</ScreenLayout> </ScreenLayout>
</ScrollView> </ScrollView>
); );

View File

@@ -1,10 +1,11 @@
import { Text } from 'react-native';
import ScreenLayout from '../../components/layout/ScreenLayout'; import ScreenLayout from '../../components/layout/ScreenLayout';
import { StyledText } from '../../components/ui/Styled';
export default function SettingsScreen() { export default function SettingsScreen() {
return ( return (
<ScreenLayout title="Settings" subtitle="Need to change something?"> <ScreenLayout title="Settings" subtitle="Need to change something?">
<StyledText>Settings would be listed in here. Coming soon</StyledText> <Text>Settings would be listed in here. Coming soon</Text>
</ScreenLayout> </ScreenLayout>
); );
} }

View File

@@ -1,22 +1,19 @@
import { Link, Stack } from 'expo-router'; import { Link, Stack } from 'expo-router';
import { Text, View } from 'react-native';
import { StyledText, StyledView } from '../components/ui/Styled';
export default function NotFoundScreen() { export default function NotFoundScreen() {
return ( return (
<> <>
<Stack.Screen options={{ title: 'Oops!' }} /> <Stack.Screen options={{ title: 'Oops!' }} />
<StyledView className="flex-1 items-center justify-center p-5"> <View className="flex-1 items-center justify-center p-5">
<StyledText className="text-lg font-bold"> <Text className="text-lg font-bold">
This screen doesn&apos;t exist. This screen doesn&apos;t exist.
</StyledText> </Text>
<Link href="/" className="mt-4 py-4"> <Link href="/" className="mt-4 py-4">
<StyledText className="text-sm text-sky-500"> <Text className="text-sm text-sky-500">Go to home screen!</Text>
Go to home screen!
</StyledText>
</Link> </Link>
</StyledView> </View>
</> </>
); );
} }

View File

@@ -11,6 +11,7 @@ import { useEffect } from 'react';
import { useColorScheme } from 'react-native'; import { useColorScheme } from 'react-native';
import useTailwind from './hooks/useTailwind'; import useTailwind from './hooks/useTailwind';
import '../styles/global.css';
export { export {
// Catch any errors thrown by the Layout component. // Catch any errors thrown by the Layout component.

View File

@@ -1,12 +1,15 @@
import { useMemo } from 'react'; import { useMemo } from 'react';
import resolveConfig from 'tailwindcss/resolveConfig'; import resolveConfig from 'tailwindcss/resolveConfig';
import tailwindConfig from '../../tailwind.config.js'; import tailwindConfig from '../../tailwind.config';
const useTailwind = () => { const useTailwind = () => {
const tailwind = useMemo(() => resolveConfig(tailwindConfig), []); const tailwind = useMemo(() => resolveConfig(tailwindConfig), []);
console.log(tailwind);
return { 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,
}; };
}; };

View File

@@ -1,11 +1,14 @@
module.exports = function (api) { module.exports = function (api) {
api.cache(true); api.cache(true);
return { return {
presets: ['babel-preset-expo'], presets: [
['babel-preset-expo', { jsxImportSource: 'nativewind' }],
'nativewind/babel',
],
plugins: [ plugins: [
// Required for expo-router // Required for expo-router
'expo-router/babel', 'expo-router/babel',
'nativewind/babel', 'react-native-reanimated/plugin',
], ],
}; };
}; };

View File

@@ -1,12 +1,11 @@
import { Image } from 'react-native'; import { Image, Text, View } from 'react-native';
import { TMDB_POSTER_PATH } from '../../constants/General'; import { TMDB_POSTER_PATH } from '../../constants/General';
import { StyledText, StyledView } from '../ui/Styled';
export default function Item() { export default function Item() {
return ( return (
<StyledView className="w-full"> <View className="w-full">
<StyledView className="mb-2 aspect-[9/14] w-full overflow-hidden rounded-2xl"> <View className="mb-2 aspect-[9/14] w-full overflow-hidden rounded-2xl">
<Image <Image
source={{ source={{
uri: `${TMDB_POSTER_PATH}/w342//gdIrmf2DdY5mgN6ycVP0XlzKzbE.jpg`, uri: `${TMDB_POSTER_PATH}/w342//gdIrmf2DdY5mgN6ycVP0XlzKzbE.jpg`,
@@ -14,13 +13,13 @@ export default function Item() {
}} }}
className="h-full w-full object-cover" className="h-full w-full object-cover"
/> />
</StyledView> </View>
<StyledText className="font-bold text-white">Hamilton</StyledText> <Text className="font-bold text-white">Hamilton</Text>
<StyledView className="flex-row items-center gap-3"> <View className="flex-row items-center gap-3">
<StyledText className="text-xs text-gray-600">Movie</StyledText> <Text className="text-xs text-gray-600">Movie</Text>
<StyledView className="h-1 w-1 rounded-3xl bg-gray-600" /> <View className="h-1 w-1 rounded-3xl bg-gray-600" />
<StyledText className="text-sm text-gray-600">2023</StyledText> <Text className="text-sm text-gray-600">2023</Text>
</StyledView> </View>
</StyledView> </View>
); );
} }

View File

@@ -1,4 +1,4 @@
import { StyledText, StyledView } from '../ui/Styled'; import { Text, View } from 'react-native';
type Props = { type Props = {
title?: React.ReactNode | string; title?: React.ReactNode | string;
@@ -8,17 +8,13 @@ type Props = {
export default function ScreenLayout({ title, subtitle, children }: Props) { export default function ScreenLayout({ title, subtitle, children }: Props) {
return ( return (
<StyledView tw="bg-shade-900 flex-1 p-12"> <View tw="bg-shade-900 flex-1 p-12">
{typeof title === 'string' && ( {typeof title === 'string' && (
<StyledText className="text-2xl font-bold text-white"> <Text className="text-2xl font-bold text-white">{title}</Text>
{title}
</StyledText>
)} )}
{typeof title !== 'string' && title} {typeof title !== 'string' && title}
<StyledText className="mt-1 text-sm font-bold text-white"> <Text className="mt-1 text-sm font-bold text-white">{subtitle}</Text>
{subtitle} <View className="py-3">{children}</View>
</StyledText> </View>
<StyledView className="py-3">{children}</StyledView>
</StyledView>
); );
} }

View File

@@ -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);

View File

@@ -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 { withNxMetro } = require('@nx/expo');
const { getDefaultConfig } = require('@expo/metro-config'); const { getDefaultConfig } = require('@expo/metro-config');
const { mergeConfig } = require('metro-config'); const { mergeConfig } = require('metro-config');
const { withNativeWind } = require('nativewind/metro');
const exclusionList = require('metro-config/src/defaults/exclusionList'); const exclusionList = require('metro-config/src/defaults/exclusionList');
const defaultConfig = getDefaultConfig(__dirname); 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. // Change this to true to see debugging info.
// Useful if you have issues resolving modules // Useful if you have issues resolving modules
debug: false, 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) // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules)
watchFolders: [], watchFolders: [],
}); });
module.exports = nxConfig;

View File

@@ -30,7 +30,7 @@
"jest": "*", "jest": "*",
"jest-expo": "*", "jest-expo": "*",
"metro-config": "*", "metro-config": "*",
"nativewind": "^2.0.11", "nativewind": "^4.0.23",
"pod-install": "*", "pod-install": "*",
"react": "*", "react": "*",
"react-dom": "18.2.0", "react-dom": "18.2.0",
@@ -41,6 +41,7 @@
"react-native-svg": "*", "react-native-svg": "*",
"react-native-svg-transformer": "*", "react-native-svg-transformer": "*",
"react-native-web": "^0.19.10", "react-native-web": "^0.19.10",
"react-native-reanimated": "~3.3.0",
"react-test-renderer": "*", "react-test-renderer": "*",
"typescript": "*", "typescript": "*",
"tailwindcss": "3.3.2" "tailwindcss": "3.3.2"

View File

@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

View File

@@ -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: [],
};

View File

@@ -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;

View File

@@ -12,5 +12,5 @@
"**/*.spec.tsx", "**/*.spec.tsx",
"test-setup.ts" "test-setup.ts"
], ],
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "tailwind.config.js"] "include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "tailwind.config.ts"]
} }

319
pnpm-lock.yaml generated
View File

@@ -218,7 +218,7 @@ importers:
version: 5.0.2(expo@49.0.16) version: 5.0.2(expo@49.0.16)
expo-router: expo-router:
specifier: ^2.0.14 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: expo-splash-screen:
specifier: ~0.20.5 specifier: ~0.20.5
version: 0.20.5(expo-modules-autolinking@1.10.2)(expo@49.0.16) version: 0.20.5(expo-modules-autolinking@1.10.2)(expo@49.0.16)
@@ -241,8 +241,8 @@ importers:
specifier: '*' specifier: '*'
version: 0.80.4 version: 0.80.4
nativewind: nativewind:
specifier: ^2.0.11 specifier: ^4.0.23
version: 2.0.11(react@18.2.0)(tailwindcss@3.3.2) 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: pod-install:
specifier: '*' specifier: '*'
version: 0.2.0 version: 0.2.0
@@ -258,6 +258,9 @@ importers:
react-native-gesture-handler: react-native-gesture-handler:
specifier: ^2.14.1 specifier: ^2.14.1
version: 2.14.1(react-native@0.72.6)(react@18.2.0) 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: react-native-safe-area-context:
specifier: ^4.8.2 specifier: ^4.8.2
version: 4.8.2(react-native@0.72.6)(react@18.2.0) version: 4.8.2(react-native@0.72.6)(react@18.2.0)
@@ -468,13 +471,6 @@ packages:
dependencies: dependencies:
'@babel/types': 7.23.6 '@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: /@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -1252,6 +1248,16 @@ packages:
'@babel/helper-plugin-utils': 7.22.5 '@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) '@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): /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7):
resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -1721,15 +1727,6 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - 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: /@babel/types@7.23.6:
resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -5319,6 +5316,22 @@ packages:
/babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0:
resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} 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): /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.23.7):
resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
dependencies: dependencies:
@@ -5730,10 +5743,6 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'} engines: {node: '>=10'}
/camelize@1.0.1:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
dev: false
/caniuse-api@3.0.0: /caniuse-api@3.0.0:
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
dependencies: dependencies:
@@ -6078,6 +6087,11 @@ packages:
dependencies: dependencies:
browserslist: 4.22.2 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: /core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -6192,11 +6206,6 @@ packages:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'} 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): /css-declaration-sorter@7.1.1(postcss@8.4.33):
resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==}
engines: {node: ^14 || ^16 || >=18} engines: {node: ^14 || ^16 || >=18}
@@ -6227,10 +6236,6 @@ packages:
semver: 7.5.4 semver: 7.5.4
webpack: 5.89.0(@swc/core@1.3.105) 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): /css-minimizer-webpack-plugin@5.0.1(webpack@5.89.0):
resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
engines: {node: '>= 14.15.0'} engines: {node: '>= 14.15.0'}
@@ -6273,14 +6278,6 @@ packages:
domutils: 3.1.0 domutils: 3.1.0
nth-check: 2.1.1 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: /css-tree@1.1.3:
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
@@ -7581,7 +7578,7 @@ packages:
compare-versions: 3.6.0 compare-versions: 3.6.0
invariant: 2.2.4 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==} resolution: {integrity: sha512-F5dP4WMe+zQLzlGSbC+NT9/67FGgwmUCJuPGD4BkK0eRt0uga+y53vQ59m5MCOebqE0N9Ukr/Jz8Num16iGqZA==}
peerDependencies: peerDependencies:
'@react-navigation/drawer': ^6.5.8 '@react-navigation/drawer': ^6.5.8
@@ -7620,6 +7617,7 @@ packages:
query-string: 7.1.3 query-string: 7.1.3
react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) 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-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-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) react-native-screens: 3.29.0(react-native@0.72.6)(react@18.2.0)
schema-utils: 4.2.0 schema-utils: 4.2.0
@@ -7742,10 +7740,6 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
/extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
dev: false
/fast-deep-equal@3.1.3: /fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -9855,6 +9849,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-darwin-x64@1.19.0:
resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==} resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9863,6 +9866,24 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-linux-arm-gnueabihf@1.19.0:
resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==} resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9871,6 +9892,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-linux-arm64-gnu@1.19.0:
resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==} resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9879,6 +9909,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-linux-arm64-musl@1.19.0:
resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==} resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9887,6 +9926,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-linux-x64-gnu@1.19.0:
resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==} resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9895,6 +9943,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-linux-x64-musl@1.19.0:
resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==} resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9903,6 +9960,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss-win32-x64-msvc@1.19.0:
resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==} resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9911,6 +9977,15 @@ packages:
requiresBuild: true requiresBuild: true
optional: 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: /lightningcss@1.19.0:
resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==} resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
@@ -9926,6 +10001,23 @@ packages:
lightningcss-linux-x64-musl: 1.19.0 lightningcss-linux-x64-musl: 1.19.0
lightningcss-win32-x64-msvc: 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: /lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
@@ -9994,6 +10086,10 @@ packages:
/lodash.merge@4.6.2: /lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 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: /lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
@@ -10851,28 +10947,22 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
/nativewind@2.0.11(react@18.2.0)(tailwindcss@3.3.2): /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-qCEXUwKW21RYJ33KRAJl3zXq2bCq82WoI564fI21D/TiqhfmstZOqPN53RF8qK1NDK6PGl56b2xaTxgObEePEg==} resolution: {integrity: sha512-7eKMjcdoZMqxmPwJhLwe5VbuwCNTdIXChxV9n4FwdzKTpZX3kNGj95J7fpqpefFPRT6yYp6SqK2n6TG/BSzA+w==}
engines: {node: '>=14.18'} engines: {node: '>=16'}
peerDependencies: peerDependencies:
tailwindcss: ~3 tailwindcss: '>3.3.0'
dependencies: dependencies:
'@babel/generator': 7.23.6 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)
'@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
tailwindcss: 3.3.2(ts-node@10.9.1) tailwindcss: 3.3.2(ts-node@10.9.1)
use-sync-external-store: 1.2.0(react@18.2.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core'
- react - react
- react-native
- react-native-reanimated
- react-native-safe-area-context
- react-native-svg
- supports-color
dev: false dev: false
/natural-compare@1.4.0: /natural-compare@1.4.0:
@@ -11548,16 +11638,6 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - 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): /postcss-calc@9.0.1(postcss@8.4.33):
resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
engines: {node: ^14 || ^16 || >=18.0} engines: {node: ^14 || ^16 || >=18.0}
@@ -11568,16 +11648,6 @@ packages:
postcss-selector-parser: 6.0.15 postcss-selector-parser: 6.0.15
postcss-value-parser: 4.2.0 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): /postcss-colormin@6.0.2(postcss@8.4.33):
resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==}
engines: {node: ^14 || ^16 || >=18.0} engines: {node: ^14 || ^16 || >=18.0}
@@ -11600,17 +11670,6 @@ packages:
postcss: 8.4.33 postcss: 8.4.33
postcss-value-parser: 4.2.0 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): /postcss-discard-comments@6.0.1(postcss@8.4.33):
resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==}
engines: {node: ^14 || ^16 || >=18.0} engines: {node: ^14 || ^16 || >=18.0}
@@ -11806,16 +11865,6 @@ packages:
icss-utils: 5.1.0(postcss@8.4.33) icss-utils: 5.1.0(postcss@8.4.33)
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): /postcss-nested@6.0.1(postcss@8.4.33):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'} engines: {node: '>=12.0'}
@@ -11989,6 +12038,12 @@ packages:
fast-diff: 1.3.0 fast-diff: 1.3.0
dev: true 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: /prettier@3.2.4:
resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -12259,6 +12314,38 @@ packages:
/react-is@18.2.0: /react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 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): /react-native-gesture-handler@2.14.1(react-native@0.72.6)(react@18.2.0):
resolution: {integrity: sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==} resolution: {integrity: sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA==}
peerDependencies: 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) react-native: 0.72.6(@babel/core@7.23.7)(@babel/preset-env@7.23.8)(react@18.2.0)
dev: false 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): /react-native-safe-area-context@4.8.2(react-native@0.72.6)(react@18.2.0):
resolution: {integrity: sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==} resolution: {integrity: sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==}
peerDependencies: peerDependencies: