diff --git a/example/storybook-nativewind/.storybook/preview.js b/example/storybook-nativewind/.storybook/preview.js index 7a6dec70c8..b5bf11faa4 100644 --- a/example/storybook-nativewind/.storybook/preview.js +++ b/example/storybook-nativewind/.storybook/preview.js @@ -5,7 +5,7 @@ import { ToastProvider } from '@gluestack-ui/toast'; import { GluestackUIProvider as GluestackUIWithNativewindProvider } from '../src/core-components/nativewind/gluestack-ui-provider'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; - +import { BottomSheetModalProvider } from '../src/core-components/nativewind/bottomsheet'; // global css getting resolved from babel.config.js import 'global.css'; @@ -155,27 +155,29 @@ export const decorators = [ return ( - - - - - - - - - - - + + + + + + + + + + + + + ); }, @@ -191,9 +193,11 @@ addParameters({ - - {children} - + + + {children} + + diff --git a/example/storybook-nativewind/babel.config.js b/example/storybook-nativewind/babel.config.js index e1b7980c58..d93a976922 100644 --- a/example/storybook-nativewind/babel.config.js +++ b/example/storybook-nativewind/babel.config.js @@ -151,6 +151,7 @@ module.exports = function (api) { }, ], '@babel/plugin-transform-modules-commonjs', + '@babel/plugin-transform-export-namespace-from', 'react-native-reanimated/plugin', ], }; diff --git a/example/storybook-nativewind/package.json b/example/storybook-nativewind/package.json index fbb7ec200b..6dcf1d4bb2 100644 --- a/example/storybook-nativewind/package.json +++ b/example/storybook-nativewind/package.json @@ -34,7 +34,7 @@ "@gluestack-ui/config": "^1.1.19", "@gluestack-ui/themed": "^1.1.43", "@gluestack/design-system": "^0.5.36", - "@gorhom/bottom-sheet": "^5.0.0-alpha.10", + "@gorhom/bottom-sheet": "^5.0.0-alpha.11", "@legendapp/motion": "^2.2.0", "@react-aria/button": "^3.7.0", "@react-aria/focus": "^3.11.0", @@ -63,7 +63,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-native": "0.72.4", - "react-native-gesture-handler": "~2.14.0", + "react-native-gesture-handler": "^2.16.1", "react-native-reanimated": "~3.6.2", "react-native-safe-area-context": "^4.4.1", "react-native-svg": "13.4.0", diff --git a/example/storybook-nativewind/src/components/BottomSheet/BottomSheet.tsx b/example/storybook-nativewind/src/components/BottomSheet/BottomSheet.tsx index a4bac2e9de..ba7b7eaa07 100644 --- a/example/storybook-nativewind/src/components/BottomSheet/BottomSheet.tsx +++ b/example/storybook-nativewind/src/components/BottomSheet/BottomSheet.tsx @@ -6,25 +6,26 @@ import { BottomSheetDragIndicator, BottomSheetItem, BottomSheetItemText, - BottomSheetPortal, - BottomSheetTrigger, } from '@/components/ui/bottomsheet'; -import { Text } from '@/components/ui/text'; - -const BottomSheetBasic = ({ - text = 'Open Action Sheet', - _colorMode, - ...props -}: any) => { +import { Button, ButtonText } from '@/components/ui/button'; +const BottomSheetBasic = ({ ...props }: any) => { + const [isOpen, setIsOpen] = React.useState(false); return ( - - - {text} - - + + { + setIsOpen(false); + }} backdropComponent={BottomSheetBackdrop} handleComponent={BottomSheetDragIndicator} + {...props} > @@ -37,8 +38,8 @@ const BottomSheetBasic = ({ Item 3 - - + + ); }; diff --git a/example/storybook-nativewind/src/components/BottomSheet/index.nw.stories.mdx b/example/storybook-nativewind/src/components/BottomSheet/index.nw.stories.mdx index c51a0f21b5..633faaf10c 100644 --- a/example/storybook-nativewind/src/components/BottomSheet/index.nw.stories.mdx +++ b/example/storybook-nativewind/src/components/BottomSheet/index.nw.stories.mdx @@ -23,9 +23,9 @@ import { BottomSheetDragIndicator, BottomSheetItem, BottomSheetItemText, - BottomSheetPortal, - BottomSheetTrigger, - Text + Text, + Button, + ButtonText, } from '../../core-components/nativewind'; import { @@ -42,41 +42,77 @@ import { CollapsibleCode } from '@gluestack/design-system';
-## Installation - - - - - CLI - - - Manual - - - - -<> - -### Run the following command: - ```bash - npx gluestack-ui add bottomsheet - ``` +This is an illustration of **Actionsheet** component. -> Note: you need to install specific versions of `@gorhom/bottom-sheet@5.0.0-alpha.10 (v5)`, `react-native-reanimated` version `~3.6.2` and `react-native-gesture-handler` version `~2.14.0`. + + + + { + setIsOpen(false); + }} + backdropComponent={BottomSheetBackdrop} + handleComponent={BottomSheetDragIndicator} + > + + + Item 1 + + + Item 2 + + + Item 3 + + + + + ); + } + `, + transformCode: (code) => { + return transformedCode(code, 'function', 'App'); + }, + scope: { + BottomSheet, + BottomSheetBackdrop, + BottomSheetContent, + BottomSheetDragIndicator, + BottomSheetItem, + BottomSheetItemText, + Button, + ButtonText, + Wrapper, + }, + }} + /> + - - - -<> +## Installation +### Run the following command: ### Step 1: Install the following dependencies: ```bash -npm i @gorhom/bottom-sheet@alpha react-native-reanimated@~3.6.2 react-native-gesture-handler@~2.14.0 +npm i @gorhom/bottom-sheet@alpha react-native-reanimated@3.10.0 react-native-gesture-handler@~2.14.0 ``` -> Note: you need to install specific versions of `@gorhom/bottom-sheet@alpha (v5)`, `react-native-reanimated` version `~3.6.2` and `react-native-gesture-handler` version `~2.14.0`. +> Note: you need to install specific versions of `@gorhom/bottom-sheet@alpha (v5)`, `react-native-reanimated` version `3.10.0` and `react-native-gesture-handler` version `~2.14.0`. ### Step 2: Copy and paste the following code into your project. @@ -90,7 +126,7 @@ npm i @gorhom/bottom-sheet@alpha react-native-reanimated@~3.6.2 react-native-ges -### Step 3: Wrap your App or layout with GestureHandlerRootView. +### Step 3: Wrap your App or layout with GestureHandlerRootView and BottomSheetModalProvider. ```jsx @@ -99,7 +135,9 @@ import { GestureHandlerRootView } from 'react-native-gesture-handler'; export default function App() { return ( - {/* content */} + + {/* content */} + ); } @@ -110,11 +148,6 @@ for more info follow their [installation instructions.](https://docs.swmansion.c ### Step 4: Update the import paths to match your project setup. - - - - - ## API Reference To use this component in your project, include the following import statement in your file. @@ -128,20 +161,20 @@ import { BottomSheetDragIndicator, BottomSheetItem, BottomSheetItemText, - BottomSheetPortal, - BottomSheetTrigger, } from '@/components/ui/bottomsheet'; ``` ```jsx export default () => ( - - - Open BottomSheet - - { + setIsOpen(false); + }} backdropComponent={BottomSheetBackdrop} handleComponent={BottomSheetDragIndicator} > @@ -156,8 +189,7 @@ export default () => ( Item 3 - - + ); ``` @@ -167,7 +199,7 @@ This section provides a comprehensive reference list for the component props, de #### BottomSheet -It is a context provider for entire bottomsheet api. +it's a gorhom BottomSheet component. inherits all the properties of [gorhom BottomSheetModal](https://ui.gorhom.dev/components/bottom-sheet/modal/props). ### Props @@ -194,23 +226,23 @@ It is a context provider for entire bottomsheet api. - snapToIndex + isOpen (required) - number + boolean - 1 + - - {`index of snapPoints at which bottomsheet initially opens.`} + {`if true, BottomSheet is opens`} - onOpen + onClose (required) @@ -220,74 +252,39 @@ It is a context provider for entire bottomsheet api. - - {`callback function which trigger when bottomsheet is opens.`} + {`callback function which trigger when bottomsheet is closed.`} - + - onClose + index - () => void + number - - + 0 - {`callback function which trigger when bottomsheet is closed.`} + {`Initial snap point index`} - - - - - - -#### BottomSheetTrigger - -It inherits all the properties of React Native's [pressable](https://reactnative.dev/docs/pressable) component. - - -#### BottomSheetPortal - -it's a gorhom BottomSheet component. inherits all the properties of [gorhom BottomSheet](https://ui.gorhom.dev/components/bottom-sheet/props#configuration). - -<> - - - - - - Prop - - - Type - - - Default - - - Description - - - - - snapPoints + onOpen - {`Array`} + () => void - - {`Points for the bottom sheet to snap to. It accepts array of number, string or mix. String values should be a percentage.`} + {`callback function which trigger when bottomsheet is opens.`} @@ -295,6 +292,7 @@ it's a gorhom BottomSheet component. inherits all the properties of [gorhom Bott + #### BottomSheetContent It inherits all the properties of [gorhom BottomSheetView](https://ui.gorhom.dev/components/bottom-sheet/components/bottomsheetview). diff --git a/example/storybook-nativewind/src/core-components/nativewind/actionsheet/index.tsx b/example/storybook-nativewind/src/core-components/nativewind/actionsheet/index.tsx index e80735b9dc..cdd653ef11 100644 --- a/example/storybook-nativewind/src/core-components/nativewind/actionsheet/index.tsx +++ b/example/storybook-nativewind/src/core-components/nativewind/actionsheet/index.tsx @@ -159,7 +159,7 @@ cssInterop(UIActionsheet.Icon, { const actionsheetStyle = tva({ base: 'w-full h-full web:pointer-events-none' }); const actionsheetContentStyle = tva({ - base: 'items-center rounded-tl-3xl rounded-tr-3xl p-5 pt-2 bg-background-0 web:pointer-events-auto web:select-none shadow-hard-5 border border-b-0 border-outline-100', + base: 'items-center rounded-t-3xl p-5 pt-2 bg-background-0 web:pointer-events-auto web:select-none shadow-hard-5 border border-b-0 border-outline-100', }); const actionsheetItemStyle = tva({ diff --git a/example/storybook-nativewind/src/core-components/nativewind/bottomsheet/index.tsx b/example/storybook-nativewind/src/core-components/nativewind/bottomsheet/index.tsx index d627f0eff2..e46b1a281f 100644 --- a/example/storybook-nativewind/src/core-components/nativewind/bottomsheet/index.tsx +++ b/example/storybook-nativewind/src/core-components/nativewind/bottomsheet/index.tsx @@ -1,4 +1,4 @@ -import GorhomBottomSheet, { +import { BottomSheetBackdrop as GorhomBottomSheetBackdrop, BottomSheetView as GorhomBottomSheetView, BottomSheetHandle, @@ -6,207 +6,165 @@ import GorhomBottomSheet, { BottomSheetScrollView as GorhomBottomSheetScrollView, BottomSheetFlatList as GorhomBottomSheetFlatList, BottomSheetSectionList as GorhomBottomSheetSectionList, + BottomSheetModal as GorhomBottomSheetModal, + BottomSheetModalProvider, } from '@gorhom/bottom-sheet'; -import { Platform } from 'react-native'; -import type { PressableProps, TextProps } from 'react-native'; import { FocusScope } from '@react-native-aria/focus'; +import { cssInterop } from 'nativewind'; import React, { createContext, - useCallback, useContext, + useEffect, useMemo, useRef, - useState, } from 'react'; -import { Pressable, Text } from 'react-native'; -import { cssInterop } from 'nativewind'; +import { Platform } from 'react-native'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; +import type { TextProps } from 'react-native'; +import { Pressable, Text } from 'react-native'; +import { createPressable } from '@gluestack-ui/pressable'; +import { VariantProps } from '@gluestack-ui/nativewind-utils'; + +const ItemPressable = createPressable({ Root: Pressable }); +const BottomSheetContext = createContext({}); const bottomSheetBackdropStyle = tva({ base: 'absolute inset-0 flex-1 touch-none select-none bg-black opacity-0', }); const bottomSheetContentStyle = tva({ - base: 'mt-2', -}); -const bottomSheetTriggerStyle = tva({ - base: '', + base: 'flex-1 items-center p-5 pt-2 bg-background-0 shadow-hard-5', }); const bottomSheetIndicatorStyle = tva({ - base: 'py-1 w-full items-center rounded-t-lg ', + base: 'w-16 h-1 bg-background-400 rounded-full', }); const bottomSheetItemStyle = tva({ - base: 'p-3 flex-row items-center rounded-sm w-full disabled:opacity-0.4 web:pointer-events-auto disabled:cursor-not-allowed hover:bg-background-50 active:bg-background-100 focus:bg-background-100 web:focus-visible:bg-background-100', + base: 'w-full flex-row items-center p-3 rounded-sm data-[disabled=true]:opacity-40 data-[disabled=true]:web:pointer-events-auto data-[disabled=true]:web:cursor-not-allowed hover:bg-background-50 active:bg-background-100 data-[focus=true]:bg-background-100 web:data-[focus-visible=true]:bg-background-100 web:data-[focus-visible=true]:outline-indicator-primary gap-2', }); -const BottomSheetContext = createContext<{ - visible: boolean; - bottomSheetRef: React.RefObject; - handleClose: () => void; - handleOpen: () => void; -}>({ - visible: false, - bottomSheetRef: { current: null }, - handleClose: () => {}, - handleOpen: () => {}, +const bottomSheetItemTextStyle = tva({ + base: 'text-typography-700 font-normal font-body', + variants: { + isTruncated: { + true: 'web:truncate', + }, + bold: { + true: 'font-bold', + }, + underline: { + true: 'underline', + }, + strikeThrough: { + true: 'line-through', + }, + size: { + '2xs': 'text-2xs', + 'xs': 'text-xs', + 'sm': 'text-sm', + 'md': 'text-md', + 'lg': 'text-lg', + 'xl': 'text-xl', + '2xl': 'text-2xl', + '3xl': 'text-3xl', + '4xl': 'text-4xl', + '5xl': 'text-5xl', + '6xl': 'text-6xl', + }, + }, }); -type IBottomSheetProps = React.ComponentProps; -export const BottomSheet = ({ - snapToIndex = 1, - onOpen, - onClose, - ...props -}: { - snapToIndex?: number; - children?: React.ReactNode; - onOpen?: () => void; - onClose?: () => void; -}) => { - const bottomSheetRef = useRef(null); - - const [visible, setVisible] = useState(false); - - const handleOpen = useCallback(() => { - bottomSheetRef.current?.snapToIndex(snapToIndex); - setVisible(true); - onOpen && onOpen(); - }, [onOpen, snapToIndex]); - - const handleClose = useCallback(() => { - bottomSheetRef.current?.close(); - setVisible(false); - onClose && onClose(); - }, [onClose]); +cssInterop(GorhomBottomSheetView, { className: 'style' }); +cssInterop(GorhomBottomSheetBackdrop, { className: 'style' }); +cssInterop(BottomSheetHandle, { className: 'style' }); +cssInterop(GorhomBottomSheetInput, { className: 'style' }); +cssInterop(GorhomBottomSheetScrollView, { className: 'style' }); +cssInterop(GorhomBottomSheetFlatList, { className: 'style' }); +cssInterop(GorhomBottomSheetSectionList, { className: 'style' }); +cssInterop(GorhomBottomSheetModal, { + className: 'style', + dragIndicatorClassName: 'handleIndicatorStyle', +}); - return ( - - {props.children} - - ); +type IBottomSheetProps = React.ComponentProps & { + dragIndicatorClassName?: string; + className?: string; }; -export const BottomSheetPortal = ({ +const BottomSheet = ({ + onOpen, + onClose, + isOpen, + onChange, snapPoints, + index = 0, handleComponent: DragIndicator, backdropComponent: BackDrop, ...props }: Partial & { - defaultIsOpen?: boolean; - snapToIndex?: number; - snapPoints: string[]; + onClose: () => void; + isOpen: boolean; + snapPoints?: string[]; + children?: React.ReactNode; + onOpen?: () => void; + onChange?: (isOpen: boolean) => void; }) => { - const { bottomSheetRef, handleClose } = useContext(BottomSheetContext); + const bottomSheetRef = useRef(null); - const handleSheetChanges = useCallback( - (index: number) => { - if (index === 0 || index === -1) { - handleClose(); - } - }, - [handleClose] - ); + useEffect(() => { + if (isOpen) { + bottomSheetRef.current?.present(); + onOpen && onOpen(); + } else { + bottomSheetRef.current?.close(); + onClose && onClose(); + } + }, [isOpen, onOpen, onClose]); - return ( - - {props.children} - - ); -}; + const handleClose = () => { + bottomSheetRef.current?.close(); + }; -export const BottomSheetTrigger = ({ - className, - ...props -}: PressableProps & { className?: string }) => { - const { handleOpen } = useContext(BottomSheetContext); return ( - { - props.onPress && props.onPress(e); - handleOpen(); + { + onClose && onClose(); + props.onDismiss && props.onDismiss(); }} + onChange={onChange} + snapPoints={snapPoints} + index={index} {...props} - className={bottomSheetTriggerStyle({ - className: className, - })} - > - {props.children} - - ); -}; -type IBottomSheetBackdrop = React.ComponentProps< - typeof GorhomBottomSheetBackdrop ->; - -export const BottomSheetBackdrop = ({ - disappearsOnIndex = -1, - appearsOnIndex = 1, - className, - ...props -}: Partial & { className?: string }) => { - return ( - - ); -}; - -cssInterop(GorhomBottomSheetBackdrop, { className: 'style' }); - -type IBottomSheetDragIndicator = React.ComponentProps; - -export const BottomSheetDragIndicator = ({ - children, - className, - ...props -}: Partial & { className?: string }) => { - return ( - - {children} - + + {props.children} + + ); }; -cssInterop(BottomSheetHandle, { className: 'style' }); - type IBottomSheetContent = React.ComponentProps; -export const BottomSheetContent = ({ ...props }: IBottomSheetContent) => { +const BottomSheetContent = ({ ...props }: IBottomSheetContent) => { const { handleClose, visible } = useContext(BottomSheetContext); const keyDownHandlers = useMemo(() => { return Platform.OS === 'web' ? { - onKeyDown: (e: React.KeyboardEvent) => { + onKeyDown: (e: any) => { if (e.key === 'Escape') { e.preventDefault(); handleClose(); @@ -249,22 +207,57 @@ export const BottomSheetContent = ({ ...props }: IBottomSheetContent) => { ); }; -cssInterop(GorhomBottomSheetView, { className: 'style' }); +type IBottomSheetBackdrop = Partial< + React.ComponentProps +>; -export const BottomSheetItem = ({ +const BottomSheetBackdrop = ({ + disappearsOnIndex = -1, + appearsOnIndex = 1, + className, + ...props +}: IBottomSheetBackdrop & { className?: string }) => { + return ( + + ); +}; + +const BottomSheetDragIndicator = ({ children, ...props }: any) => { + return ( + + {children} + + ); +}; +type IBottomSheetItem = React.ComponentPropsWithRef & { + closeOnSelect?: boolean & VariantProps; +}; + +const BottomSheetItem = ({ children, className, closeOnSelect = true, ...props -}: PressableProps & { - closeOnSelect?: boolean; -}) => { +}: IBottomSheetItem) => { const { handleClose } = useContext(BottomSheetContext); return ( - { if (closeOnSelect) { @@ -272,15 +265,38 @@ export const BottomSheetItem = ({ } props.onPress && props.onPress(e); }} - role="button" > {children} - + ); }; -export const BottomSheetItemText = ({ ...props }: TextProps) => { - return ; +type IBottomSheetItemText = TextProps & { + closeOnSelect?: boolean; +} & VariantProps; + +const BottomSheetItemText = ({ + isTruncated, + bold, + underline, + strikeThrough, + size = 'sm', + className, + ...props +}: IBottomSheetItemText) => { + return ( + + ); }; export const BottomSheetScrollView = GorhomBottomSheetScrollView; @@ -288,7 +304,13 @@ export const BottomSheetFlatList = GorhomBottomSheetFlatList; export const BottomSheetSectionList = GorhomBottomSheetSectionList; export const BottomSheetTextInput = GorhomBottomSheetInput; -cssInterop(GorhomBottomSheetInput, { className: 'style' }); -cssInterop(GorhomBottomSheetScrollView, { className: 'style' }); -cssInterop(GorhomBottomSheetFlatList, { className: 'style' }); -cssInterop(GorhomBottomSheetSectionList, { className: 'style' }); +export { + BottomSheetModalProvider, + BottomSheet, + BottomSheetContent, + BottomSheetBackdrop, + BottomSheetHandle, + BottomSheetDragIndicator, + BottomSheetItem, + BottomSheetItemText, +}; diff --git a/example/storybook-v7/package.json b/example/storybook-v7/package.json index 0cc37c6888..be118e6243 100644 --- a/example/storybook-v7/package.json +++ b/example/storybook-v7/package.json @@ -41,7 +41,7 @@ "react-dom": "18.2.0", "react-native": "0.74.1", "react-native-gesture-handler": "~2.14.0", - "react-native-reanimated": "~3.10.1", + "react-native-reanimated": "3.10.0", "react-native-safe-area-context": "4.10.1", "react-native-svg": "15.2.0", "react-native-web": "~0.19.10", @@ -73,7 +73,8 @@ "typescript": "~5.3.3" }, "resolutions": { - "react-docgen-typescript": "2.2.2" + "react-docgen-typescript": "2.2.2", + "react-native-reanimated": "3.10.0" }, "overrides": { "react-docgen-typescript": "2.2.2" diff --git a/example/storybook-v7/yarn.lock b/example/storybook-v7/yarn.lock index 2802585d98..95c9acb4af 100644 --- a/example/storybook-v7/yarn.lock +++ b/example/storybook-v7/yarn.lock @@ -12022,10 +12022,10 @@ react-native-modal-selector@^2.1.1: dependencies: prop-types "^15.5.10" -react-native-reanimated@~3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz#3c37d1100bbba0065df39c96aab0c1ff1b50c0fa" - integrity sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w== +react-native-reanimated@3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.10.0.tgz#7367f0ae9c79193315f4f1ef4d359bfac678a761" + integrity sha512-oiQiO+iJ8HTXTli94+Cl5R7nd+TzZf+3MYnMKWtnVDDCxFsqBgpkKO2Xp2ZhZyseXY/JDdH0//E7LlPQRRxpXg== dependencies: "@babel/plugin-transform-arrow-functions" "^7.0.0-0" "@babel/plugin-transform-nullish-coalescing-operator" "^7.0.0-0" diff --git a/package.json b/package.json index 4306760072..8dae4f8fa3 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "react-native": "0.72.4", "react-native-web": "0.19.9", "react-native-css-interop": "0.0.36", + "react-native-reanimated": "3.10.0", "nativewind": "4.0.36" }, "packageManager": "yarn@1.22.17", diff --git a/yarn.lock b/yarn.lock index a198a710ba..e355ca2641 100644 --- a/yarn.lock +++ b/yarn.lock @@ -199,6 +199,14 @@ "@babel/highlight" "^7.24.2" picocolors "^1.0.0" +"@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": version "7.24.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" @@ -288,6 +296,16 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" +"@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== + dependencies: + "@babel/types" "^7.25.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -429,6 +447,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== +"@babel/helper-plugin-utils@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + "@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" @@ -461,6 +484,14 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-split-export-declaration@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" @@ -473,11 +504,21 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" @@ -511,11 +552,28 @@ js-tokens "^4.0.0" picocolors "^1.0.0" +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.13", "@babel/parser@^7.20.5", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5", "@babel/parser@^7.9.0": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== +"@babel/parser@^7.25.0", "@babel/parser@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz#4c3685eb9cd790bcad2843900fe0250c91ccf895" @@ -842,6 +900,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" +"@babel/plugin-transform-arrow-functions@^7.0.0-0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-transform-async-generator-functions@^7.24.3": version "7.24.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz#8fa7ae481b100768cc9842c8617808c5352b8b89" @@ -1065,6 +1130,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" +"@babel/plugin-transform-nullish-coalescing-operator@^7.0.0-0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": version "7.24.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" @@ -1081,13 +1154,6 @@ "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-assign@^7.16.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz#9d2cc7ee1482bd208fcc51974ca4f7649662c899" - integrity sha512-DOzAi77P9jSyPijHS7Z8vH0wLRcZH6wWxuIZgLAiy8FWOkcKMJmnyHjy2JM94k6A0QxlA/hlLh+R9T3GEryjNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-transform-object-rest-spread@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz#f91bbcb092ff957c54b4091c86bda8372f0b10ef" @@ -1114,6 +1180,15 @@ "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/plugin-transform-optional-chaining@^7.0.0-0": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz#a6334bebd7f9dd3df37447880d0bd64b778e600f" @@ -1236,6 +1311,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" +"@babel/plugin-transform-shorthand-properties@^7.0.0-0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.24.1": version "7.24.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" @@ -1258,6 +1340,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" +"@babel/plugin-transform-template-literals@^7.0.0-0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-transform-typeof-symbol@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz#703cace5ef74155fb5eecab63cbfc39bdd25fe12" @@ -1466,6 +1555,15 @@ "@babel/parser" "^7.24.0" "@babel/types" "^7.24.0" +"@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.20.0", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.23.0", "@babel/traverse@^7.24.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.9.0": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" @@ -1482,6 +1580,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.24.7": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" + integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.2" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" @@ -1491,6 +1602,15 @@ "@babel/helper-validator-identifier" "^7.24.5" to-fast-properties "^2.0.0" +"@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2767,10 +2887,10 @@ react-native-svg "13.4.0" react-native-web "^0.19.9" -"@gorhom/bottom-sheet@^5.0.0-alpha.10": - version "5.0.0-alpha.10" - resolved "https://registry.yarnpkg.com/@gorhom/bottom-sheet/-/bottom-sheet-5.0.0-alpha.10.tgz#e3e828f41fc4d8497eba0b230a36edd3da199c48" - integrity sha512-FjiNf2VtmCEWC4T6/1CHjNYHlgqq+eQAGp0jCSDm87nEWtzmvg6vhspttpRNqGCxj40//Z03BGw/JZR+AYhP0w== +"@gorhom/bottom-sheet@^5.0.0-alpha.11": + version "5.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@gorhom/bottom-sheet/-/bottom-sheet-5.0.0-alpha.11.tgz#70c1b827c8b5ac95cebe6348ce1bcfe014a8137e" + integrity sha512-AQ4hN72NgFrW7EKz9N2CiuOj655csKi74OMO992z2+ds1rJ9c7EDF5HsJRtFpPA+cV9I03nqURMipi1u91OjRQ== dependencies: "@gorhom/portal" "1.0.14" invariant "^2.2.4" @@ -18629,15 +18749,14 @@ react-native-gesture-handler@^2.12.1: lodash "^4.17.21" prop-types "^15.7.2" -react-native-gesture-handler@~2.14.0: - version "2.14.1" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.14.1.tgz#930640231024b7921435ab476aa501dd4a6b2e01" - integrity sha512-YiM1BApV4aKeuwsM6O4C2ufwewYEKk6VMXOt0YqEZFMwABBFWhXLySFZYjBSNRU2USGppJbfHP1q1DfFQpKhdA== +react-native-gesture-handler@^2.16.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.18.1.tgz#ec9206f34cd2f34a66c0430b2c416d31ee6dff17" + integrity sha512-WF2fxQ5kTaxHghlkBM4YxO86SyGWVwrSNgJ1E8z/ZtL2xD5B3bg5agvuVFfOzvceC114yq71s6E9vKPz94ZxRw== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^3.3.0" invariant "^2.2.4" - lodash "^4.17.21" prop-types "^15.7.2" react-native-modal-datetime-picker@^14.0.0: @@ -18654,12 +18773,16 @@ react-native-modal-selector@^2.1.1: dependencies: prop-types "^15.5.10" -react-native-reanimated@~3.6.2: - version "3.6.3" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.6.3.tgz#859cf2320e37c80e3a21e19db24f82c34d6d3ded" - integrity sha512-2KkkPozoIvDbJcHuf8qeyoLROXQxizSi+2CTCkuNVkVZOxxY4B0Omvgq61aOQhSZUh/649x1YHoAaTyGMGDJUw== - dependencies: - "@babel/plugin-transform-object-assign" "^7.16.7" +react-native-reanimated@3.10.0, react-native-reanimated@~3.6.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.10.0.tgz#7367f0ae9c79193315f4f1ef4d359bfac678a761" + integrity sha512-oiQiO+iJ8HTXTli94+Cl5R7nd+TzZf+3MYnMKWtnVDDCxFsqBgpkKO2Xp2ZhZyseXY/JDdH0//E7LlPQRRxpXg== + dependencies: + "@babel/plugin-transform-arrow-functions" "^7.0.0-0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.0.0-0" + "@babel/plugin-transform-optional-chaining" "^7.0.0-0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0-0" + "@babel/plugin-transform-template-literals" "^7.0.0-0" "@babel/preset-typescript" "^7.16.7" convert-source-map "^2.0.0" invariant "^2.2.4"