diff --git a/COMMIT_EDITMSG b/COMMIT_EDITMSG
new file mode 100644
index 00000000..81fec706
--- /dev/null
+++ b/COMMIT_EDITMSG
@@ -0,0 +1,36 @@
+ft (HomeScreen): Add Home Screen component
+
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit.
+#
+# On branch ft-home-screen
+# Changes to be committed:
+# new file: app/(app)/ActionMenu/HomeScreen.tsx
+# modified: app/(app)/_layout.tsx
+# modified: app/index.tsx
+# new file: assets/icons/AppointmentSvg.ts
+# new file: assets/icons/ArticleSvg.ts
+# new file: assets/icons/HistorySvg.ts
+# new file: assets/icons/HomeSvg.ts
+# new file: assets/icons/ProfileSvg.ts
+# new file: assets/images/BlueHeart.png
+# new file: assets/images/Dentist.png
+# new file: assets/images/Ellipse.png
+# new file: assets/images/Frame.png
+# new file: assets/images/GeneralDoctor.png
+# new file: assets/images/HalfStar.png
+# new file: assets/images/Heart.png
+# new file: assets/images/More.png
+# new file: assets/images/Neurologist.png
+# new file: assets/images/Notification.png
+# new file: assets/images/Nutritionist.png
+# new file: assets/images/Optician.png
+# new file: assets/images/Pediatric.png
+# new file: assets/images/Radiologist.png
+# new file: assets/images/Randy.png
+# new file: assets/images/filter.png
+# new file: assets/images/search.png
+# new file: components/Line.tsx
+# modified: package-lock.json
+# modified: package.json
+#
diff --git a/app/(app)/ActionMenu/HomeScreen.tsx b/app/(app)/ActionMenu/HomeScreen.tsx
new file mode 100644
index 00000000..8f9e8808
--- /dev/null
+++ b/app/(app)/ActionMenu/HomeScreen.tsx
@@ -0,0 +1,473 @@
+import { View, Text } from "@/components/Themed";
+import { Image,StyleSheet,TouchableOpacity, TextInput,ImageBackground,ScrollView , } from "react-native";
+import React , { useState } from "react";
+import { useFonts as useFontsExpo } from 'expo-font';
+import { useNavigation } from "@react-navigation/native";
+import { SvgXml } from "react-native-svg";
+import {HomeIcon} from "../../../assets/icons/HomeSvg";
+import {HistoryIcon} from "../../../assets/icons/HistorySvg";
+import {AppointmentIcon} from "../../../assets/icons/AppointmentSvg";
+import {ArticleIcon} from "../../../assets/icons/ArticleSvg";
+import {ProfileIcon} from "../../../assets/icons/ProfileSvg";
+import Line from "@/components/Line";
+//import { HomeIcon, HistoryIcon, AppointmentIcon, ArticleIcon, ProfileIcon } from '../../../assets/icons';
+
+
+export default function HomeScreen() {
+ //const {user, isLoading}=useUser();
+ const [activeIcon, setActiveIcon] = useState('Home');
+ const handleIconPress = (iconName: string) => {
+ setActiveIcon(iconName); // Update active icon state when an icon is pressed
+ };
+ const isIconActive = (iconName: string) => {
+ return activeIcon === iconName;
+ };
+ const navigation = useNavigation();
+ const [text, setText] = useState('');
+ const [fontsLoaded] = useFontsExpo({
+ 'Urbanist-regular': require('../../../assets/fonts/Urbanist-Regular.ttf'),
+ 'Urbanist-bold': require('../../../assets/fonts/Urbanist-Bold.ttf'),
+ 'Urbanist-Semibold': require('../../../assets/fonts/Urbanist-SemiBold.ttf'),
+ 'Urbanist-Medium': require('../../../assets/fonts/Urbanist-Medium.ttf'),
+ });
+ if (!fontsLoaded) {
+ return null;
+ }
+
+ return (
+
+
+
+
+
+
+ Good Morningđź‘‹
+ Andrew Ainsley
+
+
+
+
+
+
+
+
+
+ setText(newText)}
+ style={styles.searchinput}
+ placeholderTextColor='rgba(45,45,45,0.4)'
+
+ />
+
+
+
+
+
+
+
+
+ Medical Checks!
+ Check your health condition regularly to minimize the incidence of disease in the future.
+ navigation.navigate('' as never)}>
+ Check Now
+
+
+
+
+
+
+ Doctor Speciality
+ See All
+
+
+
+
+
+
+
+
+ General..
+ Dentist
+ Ophthal..
+ Nutrition..
+
+
+
+
+
+
+
+
+ Neurolo..
+ Pediatric
+ Radiolo..
+ More
+
+
+ Top Doctors
+ See All
+
+
+
+
+
+ All
+
+
+ General
+
+
+ Dentist
+
+
+ Nutritionist
+
+
+ Neurologist
+
+
+
+
+
+
+
+
+
+ Dr. Randy Wigham
+
+
+
+
+ Cardiologist | The Valley Hospital
+
+
+ 4.8 (3,379 reviews)
+
+
+
+
+
+
+
+
+
+ handleIconPress('Home')}>
+
+ Home
+
+
+ handleIconPress('Appointment')}>
+
+ Appointments
+
+
+ handleIconPress('History')}>
+
+ History
+
+
+ handleIconPress('Article')}>
+
+ Articles
+
+
+ handleIconPress('Profile')}>
+
+ Profile
+
+
+
+ )
+}
+
+const styles = StyleSheet.create({
+ container:{
+ backgroundColor: '#FFFFFF',
+ padding:2,
+ paddingTop:40,
+ },
+ containerDark:{
+ backgroundColor: '#181A20',
+ padding:2,
+ paddingTop:40,
+
+ },
+ header:{
+ flexDirection: 'row' ,
+ alignItems: 'center',
+ justifyContent: 'flex-start',
+ backgroundColor: '#FFFFFF',
+ marginLeft: '3%',
+ marginTop:'5%'
+ },
+ userImage:{
+ width: 45,
+ height: 45,
+
+ },
+ heading:{
+ backgroundColor: '#FFFFFF',
+ marginLeft: '2%'
+ },
+ greetings: {
+ color: '#757575',
+ fontFamily: 'Urbanist-regular'
+ },
+ Icons:{
+ backgroundColor: '#FFFFFF',
+ flexDirection: 'row',
+ paddingLeft:'27%',
+ },
+
+
+
+ filter:{
+ marginLeft: '3%',
+
+ },
+ heart:{
+ marginLeft: '36%',
+ },
+ userName:{
+ color: '#000000',
+ fontSize: 20,
+ fontWeight: 'bold',
+ fontFamily:'Urbanist-bold'
+ },
+
+ searchinput:{
+ color:'#757575',
+ fontFamily:'Urbanist-regular',
+ fontSize:18,
+ flex: 1,
+},
+search:{
+ backgroundColor:'#F5F5F5',
+ width:'90%',
+ flexDirection:'row',
+ gap:18,
+ color:'#757575',
+ alignItems:'center',
+ justifyContent:'flex-start',
+ marginTop:'7%',
+ marginLeft:'5%',
+ marginRight:30,
+ padding:15,
+ borderRadius:12,
+ position: 'relative',
+ },
+ frame:{
+ backgroundColor: 'transparent',
+ marginRight:'0%',
+ padding:0,
+ width:'100%',
+ height: 200,
+ marginLeft: '0%',
+ alignItems: 'center',
+
+ },
+ FrameImage:{
+ width: '101%',
+ padding: 0,
+ height: '100%',
+ marginTop: '5%',
+ marginLeft: '3%',
+ shadowColor: '#A7C4FE',
+ shadowOpacity:5,
+ flexDirection:'row',
+
+ },
+ FrameText:{
+ backgroundColor:'transparent',
+
+ },
+ button2:{
+ backgroundColor:'#ffffff',
+ alignItems:'center',
+ justifyContent:'center',
+ borderRadius:20,
+ width:100,
+ height:30,
+ marginTop:'5%',
+ marginLeft: '13%'
+ },
+ buttontext2:{
+ color:'#246BFD',
+ fontFamily:'Urbanist-Semibold',
+ fontSize:13
+},
+
+ h1:{
+ marginTop: '10%',
+ marginLeft: '13%',
+ backgroundColor: 'transparent',
+ color:'#FFFFFF',
+ fontFamily:'Urbanist-bold',
+ fontSize: 25,
+ width: 185,
+ },
+ body:{
+ fontFamily:'Urbanist-regular' ,
+ fontSize: 12,
+ backgroundColor: 'transparent',
+ color:'#FFFFFF',
+ width: 194,
+ marginTop: '5%',
+ marginLeft: '13%'
+ },
+ TxtContainer:{
+ flexDirection: 'row',
+ gap:180,
+ backgroundColor: 'transparent',
+ marginTop: '6%',
+
+ },
+ specialityTxt:{
+ color: '#000000',
+ fontFamily: 'Urbanist-bold',
+ fontSize:19,
+ marginLeft: '4%',
+
+ },
+ seeTxt:{
+ color: '#246BFD',
+ fontFamily: 'Urbanist-bold',
+ fontSize:15
+ },
+ specialityContainer1:{
+ backgroundColor: 'transparent',
+ marginTop:'5%',
+ marginLeft:'5%',
+ marginRight:'5%',
+ flexDirection:'row',
+ gap:40,
+ },
+ NameTxt:{
+ backgroundColor: 'transparent',
+ marginLeft:'5%',
+ marginTop:'2%',
+ flexDirection:'row',
+ gap:40,
+ },
+ DocSpeciality:{
+ color: '#000000',
+ fontSize: 14,
+ marginLeft:'2%',
+ fontFamily: 'Urbanist-bold',
+ },
+ TopDocs:{
+ flexDirection: 'row',
+ gap:220,
+ backgroundColor: 'transparent',
+ marginTop: '8%',
+ marginBottom: '4%',
+
+ },
+ Footer:{
+ backgroundColor:'#FFFFFF',
+ height:90,
+ width:'101%',
+ marginTop:'0%',
+ marginLeft:'0%',
+ alignItems: 'flex-start',
+ justifyContent: 'space-around',
+ marginBottom:'0%',
+ flexDirection:'row',
+ gap:28,
+ //position:'absolute'
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ right: 0,
+ padding:20,
+ borderTopLeftRadius:20,
+ borderTopRightRadius:20,
+ },
+ icon:{
+ marginLeft:'0%'
+ },
+ iconText:{
+ color:'#000000',
+ fontSize:12,
+ marginLeft:'0%',
+
+ },
+ activeIcon: {
+ color: '#246BFD', // Example: change color for active icon
+},
+activeText: {
+ color: '#246BFD', // Example: change color for active text
+ fontWeight: 'bold', // Example: apply font weight for active text
+},
+cardContainer:{
+ backgroundColor:'#EEEEEE',
+ width:'100%',
+ height:'40%',
+ padding:5,
+
+},
+card:{
+ width:'95%',
+ height:'40%',
+ marginTop:'2%',
+ marginLeft:'2%',
+ borderRadius:20,
+ backgroundColor:'#FFFFFF',
+ padding:10,
+ flexDirection:'row'
+
+},
+cardImage:{
+ height:'93%',
+ width:'30%',
+ borderRadius:20,
+ //backgroundColor:'black'
+
+},
+DocName:{
+ fontFamily:'Urbanist-bold',
+ //backgroundColor:'',
+ color:'#000000',
+ marginLeft:'3%',
+ marginRight:'18%',
+ marginTop:'1%',
+ fontSize:20,
+ padding:0,
+
+},
+DocDescription:{
+ flexDirection:'column',
+ backgroundColor:'transparent'
+},
+DocHeart:{
+ marginTop:'3%'
+},
+CardHeader:{
+ flexDirection:'row',
+ backgroundColor:'transparent'
+},
+DocProfession:{
+ backgroundColor:'transparent',
+ color:'#424242',
+ fontFamily:'Urbanist-regular',
+ fontSize:15,
+ marginLeft:'5%',
+ marginTop:'5%'
+},
+DocRating:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ marginLeft:'5%',
+ marginTop:'6%'
+
+
+},
+Ratings:{
+ color:'#000000',
+ backgroundColor:'transparent',
+ fontSize:15,
+ marginLeft:'5%'
+}
+
+});
\ No newline at end of file
diff --git a/app/(app)/Appointments/ScheduledAppointments/AppointmentCancelledScreen.tsx b/app/(app)/Appointments/ScheduledAppointments/AppointmentCancelledScreen.tsx
new file mode 100644
index 00000000..8d4078d1
--- /dev/null
+++ b/app/(app)/Appointments/ScheduledAppointments/AppointmentCancelledScreen.tsx
@@ -0,0 +1,426 @@
+import React, { useState, useEffect } from 'react';
+import { View, Text, StyleSheet, TouchableOpacity,Image , Dimensions, ImageBackground ,ScrollView} from 'react-native';
+import { useFonts as useFontsExpo } from 'expo-font';
+import { SvgXml } from "react-native-svg";
+import { SearchIcon } from '@/assets/icons/SearchSvg';
+import { MoreIcon } from '@/assets/icons/MoreCircleSvg';
+import { HomeIcon } from '@/assets/icons/HomeSvg';
+import { HistoryIcon } from '@/assets/icons/HistorySvg';
+import { ProfileIcon } from '@/assets/icons/ProfileSvg';
+import { ArticleIcon } from '@/assets/icons/ArticleSvg';
+import { AppointmentIcon } from '@/assets/icons/AppointmentSvg';
+import Line from '@/components/Line';
+import { useNavigation } from '@react-navigation/native';
+
+
+export default function CancelledAppointment() {
+ const [activeTab, setActiveTab] = useState('Cancelled');
+ const [headerWidth, setHeaderWidth] = useState(0);
+ const [activeIcon, setActiveIcon] = useState('Appointment');
+ const [text, setText] = useState('');
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ const updateHeaderWidth = () => {
+ const screenWidth = Dimensions.get('window').width;
+ const headerPadding = 20 * 2;
+ const headerAvailableWidth = screenWidth - headerPadding;
+ setHeaderWidth(headerAvailableWidth);
+ };
+
+ updateHeaderWidth();
+ }, []);
+
+ const handleTabPress = (screen: 'Upcoming' | 'Completed' | 'Cancelled') => {
+ setActiveTab(screen);
+
+ if (screen === 'Upcoming') {
+ navigation.navigate('AppointmentUpcoming' as never) ;
+ } else if (screen === 'Completed') {
+ navigation.navigate('AppointmentCompleted'as never);
+ } else if (screen === 'Cancelled') {
+ navigation.navigate('AppointmentCancelled' as never);
+ }
+ };
+
+ const isIconActive = (iconName: string) => {
+ return activeIcon === iconName;
+ };
+
+ const handleIconPress = (iconName: string) => {
+ setActiveIcon(iconName);
+ };
+
+ const activeTabLinePosition = {
+ width: headerWidth / 3,
+ left: activeTab === 'Upcoming'
+ ? 0
+ : activeTab === 'Completed'
+ ? headerWidth / 3
+ : (headerWidth * 2) / 3,
+ };
+
+ const renderTab = (screen: 'Upcoming' | 'Completed' | 'Cancelled', label: string) => {
+ const isActive = activeTab === screen;
+ return (
+ handleTabPress(screen)}
+ >
+ {label}
+
+ );
+ };
+
+ return (
+
+
+
+
+ My Appointment
+
+
+
+
+
+
+
+
+
+ {renderTab('Upcoming', 'Upcoming')}
+ {renderTab('Completed', 'Completed')}
+ {renderTab('Cancelled', 'Cancelled')}
+
+
+
+
+
+
+
+ {/* 1st Card*/}
+
+
+
+
+
+ Dr. Raul Zirkind
+
+
+ Video Call -
+
+ Cancelled
+
+
+
+ Dec 12, 2022 | 16:00 PM
+
+
+
+
+
+
+ {/* 2nd Card*/}
+
+
+
+
+
+ Dr. Keegan Dach
+
+
+ Messaging -
+
+ Cancelled
+
+
+
+ Nov 20, 2022 | 10:00 AM
+
+
+
+
+
+
+ {/* 3rd Card*/}
+
+
+
+
+
+ Dr. Drake Boeson
+
+
+ Video Call -
+
+ Cancelled
+
+
+
+ Nov 08, 2022 | 13:00 PM
+
+
+
+
+
+
+ {/* 4th Card*/}
+
+
+
+
+
+ Dr. Quinn Slatter
+
+
+ Voice Call -
+
+ Cancelled
+
+
+
+ Oct 16, 2022 | 09:00 AM
+
+
+
+
+
+
+
+
+ handleIconPress('Home')} style={[styles.iconsBox]}>
+
+ Home
+
+
+ handleIconPress('Appointment')} style={[styles.iconsBox]}>
+
+ Appointme..
+
+
+ handleIconPress('History')} style={[styles.iconsBox]}>
+
+ History
+
+
+ handleIconPress('Article')} style={[styles.iconsBox]}>
+
+ Articles
+
+
+ handleIconPress('Profile')} style={[styles.iconsBox]}>
+
+ Profile
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: '#F7F7F7',
+ padding: 0,
+ height:'100%',
+ },
+ header:{
+ padding:20
+ },
+
+ heading:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ width:'100%',
+ marginBottom:'0%',
+ marginTop:'5%',
+ padding:10
+ },
+
+ headerLogo:{
+ backgroundColor:'transparent',
+
+ },
+ headerTitle:{
+ fontFamily:'Urbanist-bold',
+ fontSize:22,
+ marginLeft:'3%',
+ },
+ SearchIcon:{
+ marginLeft: 75
+
+ },
+ MoreIcon:{
+ marginLeft:25
+ },
+
+ headerNav: {
+ flexDirection: 'row',
+ justifyContent: 'space-around',
+ alignItems: 'center',
+ borderBottomWidth: 2,
+ borderBottomColor: '#D3D3D3',
+ paddingBottom: 10,
+ position: 'relative',
+ },
+ tab: {
+ paddingVertical: 8,
+ },
+ tabText: {
+ fontSize: 16,
+ fontFamily: 'Urbanist-regular',
+ marginTop: '4%',
+ color: '#9E9E9E',
+ },
+ activeTab: {
+ // Define styles for active tab if needed
+ },
+ activeTabText: {
+ color: '#246BFD',
+ fontWeight: 'bold',
+ },
+ activeTabLine: {
+ position: 'absolute',
+ bottom: 0,
+ height: 3,
+ backgroundColor: '#246BFD',
+ zIndex: 1,
+ },
+
+ Body:{
+ height:'100%',
+ width:'100%',
+ backgroundColor:'#F5F5F5'
+
+ },
+
+ Footer:{
+ backgroundColor:'#FFFFFF',
+ height:90,
+ width:'100%',
+ marginTop:'0%',
+ marginLeft:'0%',
+ alignItems: 'flex-start',
+ justifyContent: 'space-around',
+ marginBottom:'0%',
+ flexDirection:'row',
+ gap:45,
+ //position:'absolute'
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ right: 0,
+ padding:20,
+ borderTopLeftRadius:20,
+ borderTopRightRadius:20,
+ },
+ icon:{
+ marginLeft:'0%'
+
+ },
+ iconText:{
+ color:'#000000',
+ fontSize:12,
+ marginLeft:'0%',
+
+ },
+ activeIcon: {
+ color: '#246BFD', // Example: change color for active icon
+ },
+ activeText: {
+ color: '#246BFD', // Example: change color for active text
+ fontWeight: 'bold', // Example: apply font weight for active text
+ },
+ iconsBox:{
+ backgroundColor:'transparent',
+ justifyContent:'center',
+ alignItems:'center'
+ },
+
+ cardContainer:{
+ backgroundColor:'#F5F5F5',
+ width:'100%',
+ height:'100%',
+ padding:5,
+
+ },
+ card:{
+ width:'95%',
+ height:150,
+ marginTop:20,
+ marginLeft:'2%',
+ borderRadius:20,
+ backgroundColor:'#FFFFFF',
+ padding:15,
+ flexDirection:'column'
+
+ },
+ cardImage:{
+ height:110,
+ width:'30%',
+ borderRadius:20,
+ //backgroundColor:'black'
+
+ },
+
+ upperSection:{
+ flexDirection:'row'
+ },
+
+ CardButtons:{
+ flexDirection:'row',
+ gap:20,
+ marginLeft:'1%',
+ marginTop:'4%'
+
+ },
+
+ DocName:{
+ fontFamily:'Urbanist-bold',
+ //backgroundColor:'',
+ color:'#000000',
+ marginLeft:'3%',
+ marginRight:'18%',
+ marginTop:'1%',
+ fontSize:20,
+ padding:0,
+
+ },
+ DocDescription:{
+ flexDirection:'column',
+ backgroundColor:'transparent'
+ },
+ DocHeart:{
+ marginTop:'3%'
+ },
+ CardHeader:{
+ flexDirection:'row',
+ backgroundColor:'transparent'
+ },
+ Date:{
+ backgroundColor:'transparent',
+ color:'#424242',
+ fontFamily:'Urbanist-regular',
+ fontSize:12,
+ marginLeft:'5%',
+ marginTop:'0%'
+ },
+ DocStatus:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ marginLeft:'5%',
+ marginTop:'0%',
+ justifyContent:'center',
+ alignItems:'center'
+
+
+ },
+
+
+});
+
+
diff --git a/app/(app)/Appointments/ScheduledAppointments/AppointmentCompletedScreen.tsx b/app/(app)/Appointments/ScheduledAppointments/AppointmentCompletedScreen.tsx
new file mode 100644
index 00000000..a38bf6ee
--- /dev/null
+++ b/app/(app)/Appointments/ScheduledAppointments/AppointmentCompletedScreen.tsx
@@ -0,0 +1,460 @@
+import React, { useState, useEffect } from 'react';
+import { View, Text, StyleSheet, TouchableOpacity,Image , Dimensions, ImageBackground ,ScrollView} from 'react-native';
+import { useFonts as useFontsExpo } from 'expo-font';
+import { SvgXml } from "react-native-svg";
+import { SearchIcon } from '@/assets/icons/SearchSvg';
+import { MoreIcon } from '@/assets/icons/MoreCircleSvg';
+import { HomeIcon } from '@/assets/icons/HomeSvg';
+import { HistoryIcon } from '@/assets/icons/HistorySvg';
+import { ProfileIcon } from '@/assets/icons/ProfileSvg';
+import { ArticleIcon } from '@/assets/icons/ArticleSvg';
+import { AppointmentIcon } from '@/assets/icons/AppointmentSvg';
+import Line from '@/components/Line';
+import { useNavigation } from '@react-navigation/native';
+
+
+export default function CompletedAppointment() {
+ const [activeTab, setActiveTab] = useState('Completed');
+ const [headerWidth, setHeaderWidth] = useState(0);
+ const [activeIcon, setActiveIcon] = useState('Appointment');
+ const [text, setText] = useState('');
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ const updateHeaderWidth = () => {
+ const screenWidth = Dimensions.get('window').width;
+ const headerPadding = 20 * 2;
+ const headerAvailableWidth = screenWidth - headerPadding;
+ setHeaderWidth(headerAvailableWidth);
+ };
+
+ updateHeaderWidth();
+ }, []);
+
+ const handleTabPress = (screen: 'Upcoming' | 'Completed' | 'Cancelled') => {
+ setActiveTab(screen);
+
+ if (screen === 'Upcoming') {
+ navigation.navigate('AppointmentUpcoming' as never) ;
+ } else if (screen === 'Completed') {
+ navigation.navigate('AppointmentCompleted'as never);
+ } else if (screen === 'Cancelled') {
+ navigation.navigate('AppointmentCancelled' as never);
+ }
+ };
+
+ const isIconActive = (iconName: string) => {
+ return activeIcon === iconName;
+ };
+
+ const handleIconPress = (iconName: string) => {
+ setActiveIcon(iconName);
+ };
+
+ const activeTabLinePosition = {
+ width: headerWidth / 3,
+ left: activeTab === 'Upcoming'
+ ? 0
+ : activeTab === 'Completed'
+ ? headerWidth / 3
+ : (headerWidth * 2) / 3,
+ };
+
+ const renderTab = (screen: 'Upcoming' | 'Completed' | 'Cancelled', label: string) => {
+ const isActive = activeTab === screen;
+ return (
+ handleTabPress(screen)}
+ >
+ {label}
+
+ );
+ };
+
+
+ return (
+
+
+
+
+ My Appointment
+
+
+
+
+
+
+
+
+
+ {renderTab('Upcoming', 'Upcoming')}
+ {renderTab('Completed', 'Completed')}
+ {renderTab('Cancelled', 'Cancelled')}
+
+
+
+
+
+
+
+ {/* 1st Card*/}
+
+
+
+
+
+ Dr. Aidan Allende
+
+
+ Video Call -
+
+ Completed
+
+
+
+ Dec 14, 2022 | 15:00 PM
+
+
+
+
+
+ Book Again
+
+
+ Leave a Review
+
+
+
+
+
+ {/* 2nd Card*/}
+
+
+
+
+
+ Dr. Iker Holl
+
+
+ Messaging -
+
+ Completed
+
+
+
+ Nov 22, 2022 | 09:00 AM
+
+
+
+
+
+ Book Again
+
+
+ Leave a Review
+
+
+
+
+
+ {/* 3rd Card*/}
+
+
+
+
+
+ Dr. Jadar Srnsky
+
+
+ Voice Call -
+
+ Completed
+
+
+
+ Nov 06, 2022 | 18:00 PM
+
+
+
+
+
+ Book Again
+
+
+ Leave a Review
+
+
+
+
+
+ {/* 4th Card*/}
+
+
+
+
+
+ Dr. Aidan Allende
+
+
+ Video Call -
+
+ Completed
+
+
+
+ Dec 14, 2022 | 15:00 PM
+
+
+
+
+
+ Book Again
+
+
+ Leave a Review
+
+
+
+
+
+
+
+
+ handleIconPress('Home')} style={[styles.iconsBox]}>
+
+ Home
+
+
+ handleIconPress('Appointment')} style={[styles.iconsBox]}>
+
+ Appointme..
+
+
+ handleIconPress('History')} style={[styles.iconsBox]}>
+
+ History
+
+
+ handleIconPress('Article')} style={[styles.iconsBox]}>
+
+ Articles
+
+
+ handleIconPress('Profile')} style={[styles.iconsBox]}>
+
+ Profile
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: '#F7F7F7',
+ padding: 0,
+ height:'100%',
+ },
+ header:{
+ padding:20
+ },
+
+ heading:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ width:'100%',
+ marginBottom:'0%',
+ marginTop:'5%',
+ padding:10
+ },
+
+ headerLogo:{
+ backgroundColor:'transparent',
+
+ },
+ headerTitle:{
+ fontFamily:'Urbanist-bold',
+ fontSize:22,
+ marginLeft:'3%',
+ },
+ SearchIcon:{
+ marginLeft: 75
+
+ },
+ MoreIcon:{
+ marginLeft:25
+ },
+
+ headerNav: {
+ flexDirection: 'row',
+ justifyContent: 'space-around',
+ alignItems: 'center',
+ borderBottomWidth: 2,
+ borderBottomColor: '#D3D3D3',
+ paddingBottom: 10,
+ position: 'relative',
+ },
+ tab: {
+ paddingVertical: 8,
+ },
+ tabText: {
+ fontSize: 16,
+ fontFamily: 'Urbanist-regular',
+ marginTop: '4%',
+ color: '#9E9E9E',
+ },
+ activeTab: {
+ // Define styles for active tab if needed
+ },
+ activeTabText: {
+ color: '#246BFD',
+ fontWeight: 'bold',
+ },
+ activeTabLine: {
+ position: 'absolute',
+ bottom: 0,
+ height: 3,
+ backgroundColor: '#246BFD',
+ zIndex: 1,
+ },
+
+ Body:{
+ height:'100%',
+ width:'100%',
+ backgroundColor:'#F5F5F5'
+
+ },
+
+ Footer:{
+ backgroundColor:'#FFFFFF',
+ height:90,
+ width:'100%',
+ marginTop:'0%',
+ marginLeft:'0%',
+ alignItems: 'flex-start',
+ justifyContent: 'space-around',
+ marginBottom:'0%',
+ flexDirection:'row',
+ gap:45,
+ //position:'absolute'
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ right: 0,
+ padding:20,
+ borderTopLeftRadius:20,
+ borderTopRightRadius:20,
+ },
+ icon:{
+ marginLeft:'0%'
+
+ },
+ iconText:{
+ color:'#000000',
+ fontSize:12,
+ marginLeft:'0%',
+
+ },
+ activeIcon: {
+ color: '#246BFD', // Example: change color for active icon
+ },
+ activeText: {
+ color: '#246BFD', // Example: change color for active text
+ fontWeight: 'bold', // Example: apply font weight for active text
+ },
+ iconsBox:{
+ backgroundColor:'transparent',
+ justifyContent:'center',
+ alignItems:'center'
+ },
+
+ cardContainer:{
+ backgroundColor:'#F5F5F5',
+ width:'100%',
+ height:'100%',
+ padding:5,
+
+ },
+ card:{
+ width:'95%',
+ height:210,
+ marginTop:20,
+ marginLeft:'2%',
+ borderRadius:20,
+ backgroundColor:'#FFFFFF',
+ padding:15,
+ flexDirection:'column'
+
+ },
+ cardImage:{
+ height:110,
+ width:'30%',
+ borderRadius:20,
+ //backgroundColor:'black'
+
+ },
+
+ upperSection:{
+ flexDirection:'row'
+ },
+
+ CardButtons:{
+ flexDirection:'row',
+ gap:20,
+ marginLeft:'1%',
+ marginTop:'4%'
+
+ },
+
+ DocName:{
+ fontFamily:'Urbanist-bold',
+ //backgroundColor:'',
+ color:'#000000',
+ marginLeft:'3%',
+ marginRight:'18%',
+ marginTop:'1%',
+ fontSize:20,
+ padding:0,
+
+ },
+ DocDescription:{
+ flexDirection:'column',
+ backgroundColor:'transparent'
+ },
+ DocHeart:{
+ marginTop:'3%'
+ },
+ CardHeader:{
+ flexDirection:'row',
+ backgroundColor:'transparent'
+ },
+ Date:{
+ backgroundColor:'transparent',
+ color:'#424242',
+ fontFamily:'Urbanist-regular',
+ fontSize:12,
+ marginLeft:'5%',
+ marginTop:'0%'
+ },
+ DocStatus:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ marginLeft:'5%',
+ marginTop:'0%',
+ justifyContent:'center',
+ alignItems:'center'
+
+
+ },
+
+
+});
+
+
diff --git a/app/(app)/Appointments/ScheduledAppointments/AppointmentEmptyScreen.tsx b/app/(app)/Appointments/ScheduledAppointments/AppointmentEmptyScreen.tsx
new file mode 100644
index 00000000..9e09acf4
--- /dev/null
+++ b/app/(app)/Appointments/ScheduledAppointments/AppointmentEmptyScreen.tsx
@@ -0,0 +1,278 @@
+import React, { useState, useEffect } from 'react';
+import { View, Text, StyleSheet, TouchableOpacity,Image , Dimensions, ImageBackground } from 'react-native';
+import { useFonts as useFontsExpo } from 'expo-font';
+import { SvgXml } from "react-native-svg";
+import { SearchIcon } from '@/assets/icons/SearchSvg';
+import { MoreIcon } from '@/assets/icons/MoreCircleSvg';
+import { HomeIcon } from '@/assets/icons/HomeSvg';
+import { HistoryIcon } from '@/assets/icons/HistorySvg';
+import { ProfileIcon } from '@/assets/icons/ProfileSvg';
+import { ArticleIcon } from '@/assets/icons/ArticleSvg';
+import { AppointmentIcon } from '@/assets/icons/AppointmentSvg';
+import { useNavigation } from '@react-navigation/native';
+
+
+export default function EmptyAppointment() {
+ const [activeTab, setActiveTab] = useState('Upcoming');
+ const [headerWidth, setHeaderWidth] = useState(0);
+ const [activeIcon, setActiveIcon] = useState('Appointment');
+ const [text, setText] = useState('');
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ const updateHeaderWidth = () => {
+ const screenWidth = Dimensions.get('window').width;
+ const headerPadding = 20 * 2;
+ const headerAvailableWidth = screenWidth - headerPadding;
+ setHeaderWidth(headerAvailableWidth);
+ };
+
+ updateHeaderWidth();
+ }, []);
+
+ const handleTabPress = (screen: 'Upcoming' | 'Completed' | 'Cancelled') => {
+ setActiveTab(screen);
+
+ if (screen === 'Upcoming') {
+ navigation.navigate('AppointmentUpcoming' as never) ;
+ } else if (screen === 'Completed') {
+ navigation.navigate('AppointmentCompleted'as never);
+ } else if (screen === 'Cancelled') {
+ navigation.navigate('AppointmentCancelled' as never);
+ }
+ };
+
+ const isIconActive = (iconName: string) => {
+ return activeIcon === iconName;
+ };
+
+ const handleIconPress = (iconName: string) => {
+ setActiveIcon(iconName);
+ };
+
+ const activeTabLinePosition = {
+ width: headerWidth / 3,
+ left: activeTab === 'Upcoming'
+ ? 0
+ : activeTab === 'Completed'
+ ? headerWidth / 3
+ : (headerWidth * 2) / 3,
+ };
+
+ const renderTab = (screen: 'Upcoming' | 'Completed' | 'Cancelled', label: string) => {
+ const isActive = activeTab === screen;
+ return (
+ handleTabPress(screen)}
+ >
+ {label}
+
+ );
+ };
+
+
+ return (
+
+
+
+
+ My Appointment
+
+
+
+
+
+
+
+
+
+ {renderTab('Upcoming', 'Upcoming')}
+ {renderTab('Completed', 'Completed')}
+ {renderTab('Cancelled', 'Cancelled')}
+
+
+
+
+
+
+ You don't have an appointment yet
+ You don't have a doctor's appointment scheduled at the moment.
+
+
+
+ handleIconPress('Home')} style={[styles.iconsBox]}>
+
+ Home
+
+
+ handleIconPress('Appointment')} style={[styles.iconsBox]}>
+
+ Appointme..
+
+
+ handleIconPress('History')} style={[styles.iconsBox]}>
+
+ History
+
+
+ handleIconPress('Article')} style={[styles.iconsBox]}>
+
+ Articles
+
+
+ handleIconPress('Profile')} style={[styles.iconsBox]}>
+
+ Profile
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: '#FFFFFF',
+ padding: 0,
+ height:'100%',
+ },
+ header:{
+ padding:20
+ },
+
+ heading:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ width:'100%',
+ marginBottom:'3%',
+ marginTop:'5%',
+ padding:10
+ },
+
+ headerLogo:{
+ backgroundColor:'transparent',
+
+ },
+ headerTitle:{
+ fontFamily:'Urbanist-bold',
+ fontSize:22,
+ marginLeft:'3%',
+ },
+ SearchIcon:{
+ marginLeft: 75
+
+ },
+ MoreIcon:{
+ marginLeft:25
+ },
+
+ headerNav: {
+ flexDirection: 'row',
+ justifyContent: 'space-around',
+ alignItems: 'center',
+ borderBottomWidth: 2,
+ borderBottomColor: '#D3D3D3',
+ paddingBottom: 10,
+ position: 'relative',
+ },
+ tab: {
+ paddingVertical: 8,
+ },
+ tabText: {
+ fontSize: 16,
+ fontFamily: 'Urbanist-regular',
+ marginTop: '4%',
+ color: '#9E9E9E',
+ },
+ activeTab: {
+ // Define styles for active tab if needed
+ },
+ activeTabText: {
+ color: '#246BFD',
+ fontWeight: 'bold',
+ },
+ activeTabLine: {
+ position: 'absolute',
+ bottom: 0,
+ height: 3,
+ backgroundColor: '#246BFD',
+ zIndex: 1,
+ },
+
+ Body:{
+ height:'100%',
+ width:'100%',
+ backgroundColor:'#FFFFFF',
+ //justifyContent:'center',
+ alignItems:'center'
+
+ },
+
+ Img:{
+ marginTop:'20%'
+ },
+
+ BodyHeading:{
+ fontFamily:'Urbanist-Semibold',
+ fontSize:17,
+ marginTop:'10%'
+ },
+
+ BodyText:{
+ textAlign:'center',
+ fontFamily:'Urbanist-regular',
+ width:'80%',
+ marginTop:'3%'
+ },
+
+ Footer:{
+ backgroundColor:'#FFFFFF',
+ height:90,
+ width:'100%',
+ marginTop:'0%',
+ marginLeft:'0%',
+ alignItems: 'flex-start',
+ justifyContent: 'space-around',
+ marginBottom:'0%',
+ flexDirection:'row',
+ gap:35,
+ //position:'absolute'
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ right: 0,
+ padding:20,
+ borderTopLeftRadius:20,
+ borderTopRightRadius:20,
+ },
+ icon:{
+ marginLeft:'0%'
+
+ },
+ iconText:{
+ color:'#000000',
+ fontSize:12,
+ marginLeft:'0%',
+
+ },
+ activeIcon: {
+ color: '#246BFD', // Example: change color for active icon
+ },
+ activeText: {
+ color: '#246BFD', // Example: change color for active text
+ fontWeight: 'bold', // Example: apply font weight for active text
+ },
+ iconsBox:{
+ backgroundColor:'transparent',
+ justifyContent:'center',
+ alignItems:'center'
+ }
+
+});
+
diff --git a/app/(app)/Appointments/ScheduledAppointments/AppointmentUpcomingScreen.tsx b/app/(app)/Appointments/ScheduledAppointments/AppointmentUpcomingScreen.tsx
new file mode 100644
index 00000000..432847b4
--- /dev/null
+++ b/app/(app)/Appointments/ScheduledAppointments/AppointmentUpcomingScreen.tsx
@@ -0,0 +1,468 @@
+import React, { useState, useEffect } from 'react';
+import { useNavigation } from '@react-navigation/native';
+import { View, Text, StyleSheet, TouchableOpacity,Image , Dimensions, ImageBackground ,ScrollView} from 'react-native';
+import { useFonts as useFontsExpo } from 'expo-font';
+import { SvgXml } from "react-native-svg";
+import { SearchIcon } from '@/assets/icons/SearchSvg';
+import { MoreIcon } from '@/assets/icons/MoreCircleSvg';
+import { HomeIcon } from '@/assets/icons/HomeSvg';
+import { HistoryIcon } from '@/assets/icons/HistorySvg';
+import { ProfileIcon } from '@/assets/icons/ProfileSvg';
+import { ArticleIcon } from '@/assets/icons/ArticleSvg';
+import { AppointmentIcon } from '@/assets/icons/AppointmentSvg';
+import Line from '@/components/Line';
+import EmptyAppointment from './AppointmentEmptyScreen';
+import CancelledAppointment from './AppointmentCancelledScreen';
+import CompletedAppointment from './AppointmentCompletedScreen';
+
+export default function UpcomingAppointment() {
+ const [activeTab, setActiveTab] = useState('Upcoming');
+ const [headerWidth, setHeaderWidth] = useState(0);
+ const [activeIcon, setActiveIcon] = useState('Appointment');
+ const [text, setText] = useState('');
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ const updateHeaderWidth = () => {
+ const screenWidth = Dimensions.get('window').width;
+ const headerPadding = 20 * 2;
+ const headerAvailableWidth = screenWidth - headerPadding;
+ setHeaderWidth(headerAvailableWidth);
+ };
+
+ updateHeaderWidth();
+ }, []);
+
+ const handleTabPress = (screen: 'Upcoming' | 'Completed' | 'Cancelled') => {
+ setActiveTab(screen);
+
+ if (screen === 'Upcoming') {
+ navigation.navigate('AppointmentUpcoming' as never) ;
+ } else if (screen === 'Completed') {
+ navigation.navigate('AppointmentCompleted'as never);
+ } else if (screen === 'Cancelled') {
+ navigation.navigate('AppointmentCancelled' as never);
+ }
+ };
+
+ const isIconActive = (iconName: string) => {
+ return activeIcon === iconName;
+ };
+
+ const handleIconPress = (iconName: string) => {
+ setActiveIcon(iconName);
+ };
+
+ const activeTabLinePosition = {
+ width: headerWidth / 3,
+ left: activeTab === 'Upcoming'
+ ? 0
+ : activeTab === 'Completed'
+ ? headerWidth / 3
+ : (headerWidth * 2) / 3,
+ };
+
+ const renderTab = (screen: 'Upcoming' | 'Completed' | 'Cancelled', label: string) => {
+ const isActive = activeTab === screen;
+ return (
+ handleTabPress(screen)}
+ >
+ {label}
+
+ );
+ };
+
+
+ return (
+
+
+
+
+ My Appointment
+
+
+
+
+
+
+
+
+
+ handleTabPress('Upcoming')}>
+ {renderTab('Upcoming', 'Upcoming')}
+
+ handleTabPress('Completed')}>
+ {renderTab('Completed', 'Completed')}
+
+ handleTabPress('Cancelled')}>
+ {renderTab('Cancelled', 'Cancelled')}
+
+
+
+
+
+
+
+
+ {/* 1st Card*/}
+
+
+
+
+
+ Dr. Drake Boeson
+
+
+ Messaging -
+
+ Upcoming
+
+
+
+ Today | 16:00 PM
+
+
+
+
+
+ Cancel Appointment
+
+
+ Reschedule
+
+
+
+
+
+ {/* 2nd Card*/}
+
+
+
+
+
+ Dr. Jenny Watson
+
+
+ Voice call -
+
+ Upcoming
+
+
+
+ Today | 14:00 PM
+
+
+
+
+
+ Cancel Appointment
+
+
+ Reschedule
+
+
+
+
+
+ {/* 3rd Card*/}
+
+
+
+
+
+ Dr. Maria Foose
+
+
+ Messaging -
+
+ Upcoming
+
+
+
+ Today | 10:00 AM
+
+
+
+
+
+ Cancel Appointment
+
+
+ Reschedule
+
+
+
+
+
+ {/* 4th Card*/}
+
+
+
+
+
+ Dr. Drake Boeson
+
+
+ Messaging -
+
+ Upcoming
+
+
+
+ Today | 16:00 PM
+
+
+
+
+
+ Cancel Appointment
+
+
+ Reschedule
+
+
+
+
+
+
+
+
+ handleIconPress('Home')} style={[styles.iconsBox]}>
+
+ Home
+
+
+ handleIconPress('Appointment')} style={[styles.iconsBox]}>
+
+ Appointme..
+
+
+ handleIconPress('History')} style={[styles.iconsBox]}>
+
+ History
+
+
+ handleIconPress('Article')} style={[styles.iconsBox]}>
+
+ Articles
+
+
+ handleIconPress('Profile')} style={[styles.iconsBox]}>
+
+ Profile
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: '#F7F7F7',
+ padding: 0,
+ height:'100%',
+ },
+ header:{
+ padding:20
+ },
+
+ heading:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ width:'100%',
+ marginBottom:'0%',
+ marginTop:'5%',
+ padding:10
+ },
+
+ headerLogo:{
+ backgroundColor:'transparent',
+
+ },
+ headerTitle:{
+ fontFamily:'Urbanist-bold',
+ fontSize:22,
+ marginLeft:'3%',
+ },
+ SearchIcon:{
+ marginLeft: 75
+
+ },
+ MoreIcon:{
+ marginLeft:25
+ },
+
+ headerNav: {
+ flexDirection: 'row',
+ justifyContent: 'space-around',
+ alignItems: 'center',
+ borderBottomWidth: 2,
+ borderBottomColor: '#D3D3D3',
+ paddingBottom: 10,
+ position: 'relative',
+ },
+ tab: {
+ paddingVertical: 8,
+ },
+ tabText: {
+ fontSize: 16,
+ fontFamily: 'Urbanist-regular',
+ marginTop: '4%',
+ color: '#9E9E9E',
+ },
+ activeTab: {
+ // Define styles for active tab if needed
+ },
+ activeTabText: {
+ color: '#246BFD',
+ fontWeight: 'bold',
+ },
+ activeTabLine: {
+ position: 'absolute',
+ bottom: 0,
+ height: 3,
+ backgroundColor: '#246BFD',
+ zIndex: 1,
+ },
+
+ Body:{
+ height:'100%',
+ width:'100%',
+ backgroundColor:'#F5F5F5'
+
+ },
+
+ Footer:{
+ backgroundColor:'#FFFFFF',
+ height:90,
+ width:'100%',
+ marginTop:'0%',
+ marginLeft:'0%',
+ alignItems: 'flex-start',
+ justifyContent: 'space-around',
+ marginBottom:'0%',
+ flexDirection:'row',
+ gap:45,
+ //position:'absolute'
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ right: 0,
+ padding:20,
+ borderTopLeftRadius:20,
+ borderTopRightRadius:20,
+ },
+ icon:{
+ marginLeft:'0%'
+
+ },
+ iconText:{
+ color:'#000000',
+ fontSize:12,
+ marginLeft:'0%',
+
+ },
+ activeIcon: {
+ color: '#246BFD', // Example: change color for active icon
+ },
+ activeText: {
+ color: '#246BFD', // Example: change color for active text
+ fontWeight: 'bold', // Example: apply font weight for active text
+ },
+ iconsBox:{
+ backgroundColor:'transparent',
+ justifyContent:'center',
+ alignItems:'center'
+ },
+
+ cardContainer:{
+ backgroundColor:'#F5F5F5',
+ width:'100%',
+ height:'100%',
+ padding:5,
+
+ },
+ card:{
+ width:'95%',
+ height:210,
+ marginTop:20,
+ marginLeft:'2%',
+ borderRadius:20,
+ backgroundColor:'#FFFFFF',
+ padding:15,
+ flexDirection:'column'
+
+ },
+ cardImage:{
+ height:110,
+ width:'30%',
+ borderRadius:20,
+ //backgroundColor:'black'
+
+ },
+
+ upperSection:{
+ flexDirection:'row'
+ },
+
+ CardButtons:{
+ flexDirection:'row',
+ gap:20,
+ marginLeft:'1%',
+ marginTop:'4%'
+
+ },
+
+ DocName:{
+ fontFamily:'Urbanist-bold',
+ //backgroundColor:'',
+ color:'#000000',
+ marginLeft:'3%',
+ marginRight:'18%',
+ marginTop:'1%',
+ fontSize:20,
+ padding:0,
+
+ },
+ DocDescription:{
+ flexDirection:'column',
+ backgroundColor:'transparent'
+ },
+ DocHeart:{
+ marginTop:'3%'
+ },
+ CardHeader:{
+ flexDirection:'row',
+ backgroundColor:'transparent'
+ },
+ Date:{
+ backgroundColor:'transparent',
+ color:'#424242',
+ fontFamily:'Urbanist-regular',
+ fontSize:12,
+ marginLeft:'5%',
+ marginTop:'0%'
+ },
+ DocStatus:{
+ backgroundColor:'transparent',
+ flexDirection:'row',
+ marginLeft:'5%',
+ marginTop:'0%',
+ justifyContent:'center',
+ alignItems:'center'
+
+
+ },
+
+
+});
+
+
diff --git a/app/(app)/Appointments/ScheduledAppointments/Navigator.tsx b/app/(app)/Appointments/ScheduledAppointments/Navigator.tsx
new file mode 100644
index 00000000..e61ffd31
--- /dev/null
+++ b/app/(app)/Appointments/ScheduledAppointments/Navigator.tsx
@@ -0,0 +1,50 @@
+import React from 'react';
+import { createStackNavigator } from '@react-navigation/stack';
+import EmptyAppointment from './AppointmentEmptyScreen';
+import CompletedAppointment from './AppointmentCompletedScreen';
+import CancelledAppointment from './AppointmentCancelledScreen';
+import UpcomingAppointment from './AppointmentUpcomingScreen';
+
+const Stack = createStackNavigator();
+
+export function UpcomingAppointmentScreen(){
+ return
+}
+
+export function CompletedAppointmentScreen(){
+ return
+}
+
+export function CancelledAppointmentScreen(){
+ return
+}
+
+export function EmptyAppointmentScreen(){
+ return
+}
+
+{/*
+import * as React from 'react';
+import { NavigationContainer } from '@react-navigation/native';
+import { createStackNavigator } from '@react-navigation/stack';
+import EmptyAppointment from './AppointmentEmptyScreen';
+import CompletedAppointment from './AppointmentCompletedScreen';
+import CancelledAppointment from './AppointmentCancelledScreen';
+import UpcomingAppointment from './AppointmentUpcomingScreen';
+
+const Stack = createStackNavigator();
+
+ export default function Navigator() {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+*/}
diff --git a/app/(app)/_layout.tsx b/app/(app)/_layout.tsx
index f1938741..38bcb1dd 100644
--- a/app/(app)/_layout.tsx
+++ b/app/(app)/_layout.tsx
@@ -11,7 +11,14 @@ import Typography from "@/constants/Typography";
import { Stack, Tabs } from "expo-router";
import { Pressable, Text, TouchableOpacity, View } from "react-native";
import { SvgXml } from "react-native-svg";
+import { createStackNavigator } from '@react-navigation/stack';
+import { UpcomingAppointmentScreen } from "./Appointments/ScheduledAppointments/Navigator";
+import { CancelledAppointmentScreen } from "./Appointments/ScheduledAppointments/Navigator";
+import { CompletedAppointmentScreen } from "./Appointments/ScheduledAppointments/Navigator";
+import { EmptyAppointmentScreen } from "./Appointments/ScheduledAppointments/Navigator";
+
+const Stack = createStackNavigator();
export default function Layout() {
return (
<>
@@ -178,6 +185,16 @@ export default function Layout() {
}}
/>
+
+
+
+
+
+
+
+
+
+
>
);
}
diff --git a/app/index.tsx b/app/index.tsx
index 944358ac..b94c2eb1 100644
--- a/app/index.tsx
+++ b/app/index.tsx
@@ -6,7 +6,7 @@ import { Image, StyleSheet, Text, View } from "react-native";
export default function SplashScreen() {
useEffect(() => {
setTimeout(() => {
- router.push("/(app)");
+ router.push("/(app)/Appointments/ScheduledAppointments/AppointmentCompletedScreen");
}, 2000);
}, []);
diff --git a/assets/icons/MoreCircleSvg.ts b/assets/icons/MoreCircleSvg.ts
new file mode 100644
index 00000000..aadc124c
--- /dev/null
+++ b/assets/icons/MoreCircleSvg.ts
@@ -0,0 +1,12 @@
+export const MoreIcon =`
+
+`
\ No newline at end of file
diff --git a/assets/icons/SearchSvg.ts b/assets/icons/SearchSvg.ts
new file mode 100644
index 00000000..30aae051
--- /dev/null
+++ b/assets/icons/SearchSvg.ts
@@ -0,0 +1,24 @@
+export const SearchIcon = `
+
+`
\ No newline at end of file
diff --git a/assets/images/DefaultLogo.png b/assets/images/DefaultLogo.png
new file mode 100644
index 00000000..d96df922
Binary files /dev/null and b/assets/images/DefaultLogo.png differ
diff --git a/assets/images/Dr Aidan.png b/assets/images/Dr Aidan.png
new file mode 100644
index 00000000..9347399e
Binary files /dev/null and b/assets/images/Dr Aidan.png differ
diff --git a/assets/images/Dr Drake.png b/assets/images/Dr Drake.png
new file mode 100644
index 00000000..a4f4b32b
Binary files /dev/null and b/assets/images/Dr Drake.png differ
diff --git a/assets/images/Dr Iker.png b/assets/images/Dr Iker.png
new file mode 100644
index 00000000..5565ddae
Binary files /dev/null and b/assets/images/Dr Iker.png differ
diff --git a/assets/images/Dr Keegan.png b/assets/images/Dr Keegan.png
new file mode 100644
index 00000000..55215faf
Binary files /dev/null and b/assets/images/Dr Keegan.png differ
diff --git a/assets/images/Dr Quinn.png b/assets/images/Dr Quinn.png
new file mode 100644
index 00000000..eac3af57
Binary files /dev/null and b/assets/images/Dr Quinn.png differ
diff --git a/assets/images/Dr Raul.png b/assets/images/Dr Raul.png
new file mode 100644
index 00000000..19a13e2d
Binary files /dev/null and b/assets/images/Dr Raul.png differ
diff --git a/assets/images/Dr jada.png b/assets/images/Dr jada.png
new file mode 100644
index 00000000..14cfef33
Binary files /dev/null and b/assets/images/Dr jada.png differ
diff --git a/assets/images/Dr jenny.png b/assets/images/Dr jenny.png
new file mode 100644
index 00000000..8c0961f0
Binary files /dev/null and b/assets/images/Dr jenny.png differ
diff --git a/assets/images/Dr maria.png b/assets/images/Dr maria.png
new file mode 100644
index 00000000..234d458d
Binary files /dev/null and b/assets/images/Dr maria.png differ
diff --git a/assets/images/Empty.png b/assets/images/Empty.png
new file mode 100644
index 00000000..a278f366
Binary files /dev/null and b/assets/images/Empty.png differ
diff --git a/assets/images/Messaging.png b/assets/images/Messaging.png
new file mode 100644
index 00000000..eab3d8e0
Binary files /dev/null and b/assets/images/Messaging.png differ
diff --git a/data/doctor.ts b/data/doctor.ts
new file mode 100644
index 00000000..0b9432b2
--- /dev/null
+++ b/data/doctor.ts
@@ -0,0 +1,45 @@
+interface ReviewData{
+
+ id:string,
+ names: string,
+ comment: string,
+ likes: string
+
+}
+
+interface DoctorData{
+id: string
+name: string,
+specialization: string,
+hospital: string,
+reviews: ReviewData[]
+about: string,
+appointmentStatus: "upcoming" | "cancelled" | "completed"
+bookingMethod: "Messaging" | "Voice call" | "Video call"
+}
+
+
+const doctor: DoctorData[] = [
+{
+ id: "1",
+ name: "Dr. Raul Zirkind",
+ specialization: "Immunologist",
+ hospital: "king faisal",
+ reviews: [
+ { id: "1",
+ names: " Darron Kulikowski",
+ comment: " The doctor is very beautiful and the service is excellent! I like it and want to consult again 🤣🤣",
+ likes: "33",
+ },
+ { id: "2",
+ names: " Darron Kulikowski",
+ comment: " The doctor is very beautiful and the service is excellent! I like it and want to consult again 🤣🤣",
+ likes: "33",
+ }
+ ],
+ about: "Dr. Jenny Watson is the top most Immunologists specialist in Christ Hospital at London. She achived several awards for her wonderful contribution in medical field. She is available for private consultation. view more",
+ appointmentStatus: "cancelled",
+ bookingMethod:"Messaging"
+
+}
+]
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 46e78a5a..256de3f0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,25 +14,26 @@
"@react-navigation/native": "^6.0.2",
"eas-cli": "^8.0.0",
"expo": "^51.0.2",
- "expo-checkbox": "~3.0.0",
- "expo-font": "~12.0.4",
- "expo-linear-gradient": "~13.0.2",
- "expo-linking": "~6.3.1",
- "expo-local-authentication": "~14.0.1",
- "expo-navigation-bar": "~3.0.4",
- "expo-router": "~3.5.11",
- "expo-secure-store": "~13.0.1",
- "expo-splash-screen": "~0.27.4",
- "expo-status-bar": "~1.12.1",
- "expo-system-ui": "~3.0.4",
- "expo-updates": "~0.25.11",
- "expo-web-browser": "~13.0.3",
+ "expo-checkbox": "^3.0.0",
+ "expo-font": "^12.0.5",
+ "expo-linear-gradient": "^13.0.2",
+ "expo-linking": "^6.3.1",
+ "expo-local-authentication": "^14.0.1",
+ "expo-navigation-bar": "^3.0.4",
+ "expo-router": "^3.5.11",
+ "expo-secure-store": "^13.0.1",
+ "expo-splash-screen": "~0.26.5",
+ "expo-status-bar": "~1.11.1",
+ "expo-system-ui": "~2.9.3",
+ "expo-updates": "~0.24.12",
+ "expo-web-browser": "~12.8.2",
"nstall": "^0.2.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.74.1",
"react-native-calendars": "^1.1304.1",
"react-native-elements": "^3.4.3",
+ "react-native-gesture-handler": "^2.16.2",
"react-native-indicators": "^0.17.0",
"react-native-modern-datepicker": "^1.0.0-beta.91",
"react-native-otp-entry": "^1.6.1",
@@ -286,18 +287,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
- "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.22.15"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-compilation-targets": {
"version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
@@ -612,70 +601,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz",
- "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.24.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz",
- "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz",
- "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.24.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz",
- "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
"node_modules/@babel/plugin-proposal-async-generator-functions": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
@@ -741,22 +666,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
- "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
@@ -841,18 +750,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
@@ -880,6 +777,7 @@
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -887,21 +785,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-decorators": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz",
@@ -966,40 +849,11 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz",
- "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz",
- "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-import-meta": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
"integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -1011,6 +865,7 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1036,6 +891,7 @@
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -1116,6 +972,7 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1140,22 +997,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
"node_modules/@babel/plugin-transform-arrow-functions": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz",
@@ -1170,24 +1011,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.24.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz",
- "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-remap-async-to-generator": "^7.22.20",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-async-to-generator": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz",
@@ -1204,21 +1027,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz",
- "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-block-scoping": {
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz",
@@ -1233,39 +1041,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz",
- "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.1",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz",
- "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.4",
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
"node_modules/@babel/plugin-transform-classes": {
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz",
@@ -1324,69 +1099,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz",
- "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz",
- "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz",
- "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz",
- "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-export-namespace-from": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz",
@@ -1417,22 +1129,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz",
- "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-function-name": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz",
@@ -1449,22 +1145,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz",
- "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-literals": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz",
@@ -1479,53 +1159,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz",
- "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz",
- "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz",
- "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==",
- "peer": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-modules-commonjs": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz",
@@ -1542,40 +1175,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz",
- "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-validator-identifier": "^7.22.20"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz",
- "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
@@ -1591,21 +1190,6 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz",
- "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz",
@@ -1621,22 +1205,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz",
- "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-object-rest-spread": {
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz",
@@ -1654,38 +1222,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz",
- "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-replace-supers": "^7.24.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz",
- "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-optional-chaining": {
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz",
@@ -1748,21 +1284,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz",
- "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-react-display-name": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz",
@@ -1825,41 +1346,10 @@
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz",
- "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz",
- "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz",
- "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==",
- "peer": true,
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz",
+ "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0",
- "regenerator-transform": "^0.15.2"
+ "@babel/helper-plugin-utils": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1868,12 +1358,12 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-reserved-words": {
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz",
- "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==",
- "peer": true,
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz",
+ "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==",
"dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-plugin-utils": "^7.24.0"
},
"engines": {
@@ -1959,21 +1449,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz",
- "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-typescript": {
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz",
@@ -1991,37 +1466,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz",
- "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz",
- "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz",
@@ -2037,117 +1481,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz",
- "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.24.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz",
- "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==",
- "peer": true,
- "dependencies": {
- "@babel/compat-data": "^7.24.4",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-plugin-utils": "^7.24.5",
- "@babel/helper-validator-option": "^7.23.5",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.24.1",
- "@babel/plugin-syntax-import-attributes": "^7.24.1",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.24.1",
- "@babel/plugin-transform-async-generator-functions": "^7.24.3",
- "@babel/plugin-transform-async-to-generator": "^7.24.1",
- "@babel/plugin-transform-block-scoped-functions": "^7.24.1",
- "@babel/plugin-transform-block-scoping": "^7.24.5",
- "@babel/plugin-transform-class-properties": "^7.24.1",
- "@babel/plugin-transform-class-static-block": "^7.24.4",
- "@babel/plugin-transform-classes": "^7.24.5",
- "@babel/plugin-transform-computed-properties": "^7.24.1",
- "@babel/plugin-transform-destructuring": "^7.24.5",
- "@babel/plugin-transform-dotall-regex": "^7.24.1",
- "@babel/plugin-transform-duplicate-keys": "^7.24.1",
- "@babel/plugin-transform-dynamic-import": "^7.24.1",
- "@babel/plugin-transform-exponentiation-operator": "^7.24.1",
- "@babel/plugin-transform-export-namespace-from": "^7.24.1",
- "@babel/plugin-transform-for-of": "^7.24.1",
- "@babel/plugin-transform-function-name": "^7.24.1",
- "@babel/plugin-transform-json-strings": "^7.24.1",
- "@babel/plugin-transform-literals": "^7.24.1",
- "@babel/plugin-transform-logical-assignment-operators": "^7.24.1",
- "@babel/plugin-transform-member-expression-literals": "^7.24.1",
- "@babel/plugin-transform-modules-amd": "^7.24.1",
- "@babel/plugin-transform-modules-commonjs": "^7.24.1",
- "@babel/plugin-transform-modules-systemjs": "^7.24.1",
- "@babel/plugin-transform-modules-umd": "^7.24.1",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.24.1",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1",
- "@babel/plugin-transform-numeric-separator": "^7.24.1",
- "@babel/plugin-transform-object-rest-spread": "^7.24.5",
- "@babel/plugin-transform-object-super": "^7.24.1",
- "@babel/plugin-transform-optional-catch-binding": "^7.24.1",
- "@babel/plugin-transform-optional-chaining": "^7.24.5",
- "@babel/plugin-transform-parameters": "^7.24.5",
- "@babel/plugin-transform-private-methods": "^7.24.1",
- "@babel/plugin-transform-private-property-in-object": "^7.24.5",
- "@babel/plugin-transform-property-literals": "^7.24.1",
- "@babel/plugin-transform-regenerator": "^7.24.1",
- "@babel/plugin-transform-reserved-words": "^7.24.1",
- "@babel/plugin-transform-shorthand-properties": "^7.24.1",
- "@babel/plugin-transform-spread": "^7.24.1",
- "@babel/plugin-transform-sticky-regex": "^7.24.1",
- "@babel/plugin-transform-template-literals": "^7.24.1",
- "@babel/plugin-transform-typeof-symbol": "^7.24.5",
- "@babel/plugin-transform-unicode-escapes": "^7.24.1",
- "@babel/plugin-transform-unicode-property-regex": "^7.24.1",
- "@babel/plugin-transform-unicode-regex": "^7.24.1",
- "@babel/plugin-transform-unicode-sets-regex": "^7.24.1",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.4",
- "babel-plugin-polyfill-regenerator": "^0.6.1",
- "core-js-compat": "^3.31.0",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/preset-flow": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.1.tgz",
@@ -2164,20 +1497,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "peer": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
- }
- },
"node_modules/@babel/preset-react": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz",
@@ -2349,6 +1668,17 @@
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "node_modules/@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "dependencies": {
+ "@types/hammerjs": "^2.0.36"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -7789,7 +7119,6 @@
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
"@babel/plugin-proposal-class-properties": "^7.18.0",
"@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0",
"@babel/plugin-proposal-numeric-separator": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.20.0",
@@ -7842,8 +7171,8 @@
"integrity": "sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w==",
"dependencies": {
"@babel/parser": "^7.20.0",
+ "flow-parser": "^0.206.0",
"glob": "^7.1.1",
- "hermes-parser": "0.19.1",
"invariant": "^2.2.4",
"jscodeshift": "^0.14.0",
"mkdirp": "^0.5.1",
@@ -7856,6 +7185,14 @@
"@babel/preset-env": "^7.1.6"
}
},
+ "node_modules/@react-native/codegen/node_modules/flow-parser": {
+ "version": "0.206.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
+ "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/@react-native/community-cli-plugin": {
"version": "0.74.83",
"resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.83.tgz",
@@ -8201,12 +7538,30 @@
"nanoid": "^3.1.23"
}
},
+ "node_modules/@react-navigation/stack": {
+ "version": "6.3.29",
+ "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.29.tgz",
+ "integrity": "sha512-tzlGkoRgB6P7vgw7rHuWo3TL7Gzu6xh5LMf+zSdCuEiKp/qASzxYfnTEr9tOLbVs/gf+qeukEDheCSAJKVpBXw==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.30",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
"node_modules/@remix-run/node": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.9.1.tgz",
- "integrity": "sha512-shicVsSmXepj4zotWHR2kLmyYCxQ25mHmfBL11ODIcIs7iSmQO+W7CNbmX1jcRvhHki/v+S/n4fMm0iKNeJ92w==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.9.2.tgz",
+ "integrity": "sha512-2Mt2107pfelz4T+ziDBef3P4A7kgPqCDshnEYCVGxInivJ3HHwAKUcb7MhGa8uMMMA6LMWxbAPYNHPzC3iKv2A==",
"dependencies": {
- "@remix-run/server-runtime": "2.9.1",
+ "@remix-run/server-runtime": "2.9.2",
"@remix-run/web-fetch": "^4.4.2",
"@web3-storage/multipart-parser": "^1.0.0",
"cookie-signature": "^1.1.0",
@@ -8227,19 +7582,19 @@
}
},
"node_modules/@remix-run/router": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.0.tgz",
- "integrity": "sha512-Quz1KOffeEf/zwkCBM3kBtH4ZoZ+pT3xIXBG4PPW/XFtDP7EGhtTiC2+gpL9GnR7+Qdet5Oa6cYSvwKYg6kN9Q==",
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz",
+ "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@remix-run/server-runtime": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.9.1.tgz",
- "integrity": "sha512-6rRPiR+eMdTPkDojlYiZohVzXkD3+3X55ZvD78axMVocwGcDFFllpmgH9NSR2RKHW9eZDZUfKvNCwd/i9W6Xog==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.9.2.tgz",
+ "integrity": "sha512-dX37FEeMVVg7KUbpRhX4hD0nUY0Sscz/qAjU4lYCdd6IzwJGariTmz+bQTXKCjploZuXj09OQZHSOS/ydkUVDA==",
"dependencies": {
- "@remix-run/router": "1.16.0",
+ "@remix-run/router": "1.16.1",
"@types/cookie": "^0.6.0",
"@web3-storage/multipart-parser": "^1.0.0",
"cookie": "^0.6.0",
@@ -8515,6 +7870,11 @@
"@types/node": "*"
}
},
+ "node_modules/@types/hammerjs": {
+ "version": "2.0.45",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
+ "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
+ },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
@@ -10363,6 +9723,17 @@
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
+ "node_modules/compare-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz",
+ "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==",
+ "dependencies": {
+ "normalize-url": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/component-type": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
@@ -12222,6 +11593,7 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -12562,9 +11934,9 @@
}
},
"node_modules/expo-eas-client": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.12.0.tgz",
- "integrity": "sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA=="
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/expo-eas-client/-/expo-eas-client-0.11.2.tgz",
+ "integrity": "sha512-SY7rVFxb4ut/OMTgR7A39Jg+8+hXwQNRpZd+RBpB+B5XV2STj/pWXHnGFhBayEF4umI4SxrOvisY90rlPWVO9Q=="
},
"node_modules/expo-file-system": {
"version": "17.0.1",
@@ -12575,9 +11947,9 @@
}
},
"node_modules/expo-font": {
- "version": "12.0.4",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.4.tgz",
- "integrity": "sha512-VtOQB7MEeFMVwo46/9/ntqzrgraTE7gAsnfi2NukFcCpDmyAU3G1R7m287LUXltE46SmGkMgAvM6+fflXFjaJA==",
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.5.tgz",
+ "integrity": "sha512-h/VkN4jlHYDJ6T6pPgOYTVoDEfBY0CTKQe4pxnPDGQiE6H+DFdDgk+qWVABGpRMH0+zXoHB+AEi3OoQjXIynFA==",
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
@@ -12586,9 +11958,9 @@
}
},
"node_modules/expo-json-utils": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.13.1.tgz",
- "integrity": "sha512-mlfaSArGVb+oJmUcR22jEONlgPp0wj4iNIHfQ2je9Q8WTOqMc0Ws9tUciz3JdJnhffdHqo/k8fpvf0IRmN5HPA=="
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.12.3.tgz",
+ "integrity": "sha512-4pypQdinpNc6XY9wsZk56njvzDh+B/9mISr7FPP3CVk1QGB1nSLh883/BCDSgnsephATZkC5HG+cdE60kCAR6A=="
},
"node_modules/expo-keep-awake": {
"version": "13.0.1",
@@ -12627,12 +11999,12 @@
}
},
"node_modules/expo-manifests": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.14.2.tgz",
- "integrity": "sha512-hFrwIGr76/zGVhZ+vcjDZpOePd7uYNB6yCaiJcm7/bcrt2ne7cHyKQ8l+3n26/v1OuXfBfjxNH+PHIpkClszoQ==",
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.13.2.tgz",
+ "integrity": "sha512-l0Sia1WmLULx8V41K8RzGLsFoTe4qqthPRGpHjItsYn8ZB6lRrdTBM9OYp2McIflgqN1HAimUCQMFIwJyH+UmA==",
"dependencies": {
- "@expo/config": "~9.0.0-beta.0",
- "expo-json-utils": "~0.13.0"
+ "@expo/config": "~8.5.0",
+ "expo-json-utils": "~0.12.0"
},
"peerDependencies": {
"expo": "*"
@@ -12936,15 +12308,7 @@
}
}
},
- "node_modules/expo-secure-store": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/expo-secure-store/-/expo-secure-store-13.0.1.tgz",
- "integrity": "sha512-5DTKjbv98X7yPbm+1jER/sOEIlt2Ih7qwabTvkWDXry5bPcQGoulxH5zIX9+JvVH7of8GI4t7NSEbpAO3P7FZA==",
- "peerDependencies": {
- "expo": "*"
- }
- },
- "node_modules/expo-splash-screen": {
+ "node_modules/expo-router/node_modules/expo-splash-screen": {
"version": "0.27.4",
"resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.4.tgz",
"integrity": "sha512-JwepK1FjbwiOK2nwIFanfzj9s7UXYnpTwLX8A9v7Ec3K4V28yu8HooSc9X60cftBw9UZrs8Gwj4PgTpQabBS9A==",
@@ -13189,21 +12553,21 @@
}
},
"node_modules/expo-status-bar": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz",
- "integrity": "sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA=="
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz",
+ "integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg=="
},
"node_modules/expo-structured-headers": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.8.0.tgz",
- "integrity": "sha512-R+gFGn0x5CWl4OVlk2j1bJTJIz4KO8mPoCHpRHmfqMjmrMvrOM0qQSY3V5NHXwp1yT/L2v8aUmFQsBRIdvi1XA=="
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-3.7.2.tgz",
+ "integrity": "sha512-/nGOyeWUXSUy4aIYKJTwQOznRNs0yKqKPAyEE6jtwvOl9qvfDWx9xskNtShioggBhFAssFkV6RBbPn+xZMQtvw=="
},
"node_modules/expo-system-ui": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.4.tgz",
- "integrity": "sha512-v1n6hBO30k9qw6RE8/au4yNoovs71ExGuXizJUlR5KSo4Ruogpb+0/2q3uRZMDIYWWCANvms8L0UOh6fQJ5TXg==",
+ "version": "2.9.4",
+ "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-2.9.4.tgz",
+ "integrity": "sha512-ExJ8AzEZjb/zbg6nRLrN/mqxWr6e4fAcT0LBN/YvPZljbMo23HU+/lPy0/YctF1tRRvQ3Z95ABSNjnx9ajQBjg==",
"dependencies": {
- "@react-native/normalize-colors": "~0.74.83",
+ "@react-native/normalize-color": "^2.0.0",
"debug": "^4.3.2"
},
"peerDependencies": {
@@ -13211,24 +12575,20 @@
}
},
"node_modules/expo-updates": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.25.11.tgz",
- "integrity": "sha512-ZO+e6bLsEBMz+JdEOlJXGf+3w606si7zKKEEzkwDQWJWP20W0WQAG+MDYgTEgxQboc+jTC+T0MvvOvkVb8cFIQ==",
+ "version": "0.24.12",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.24.12.tgz",
+ "integrity": "sha512-35ZpAMSqHIyVGT5mEptaZJBxytu0mv4PIG28i3BQe+GG4ifQtY94aCOCrUwZe8Myzaf4dNVGEUXWTPo+JPCgcw==",
"dependencies": {
"@expo/code-signing-certificates": "0.0.5",
- "@expo/config": "~9.0.0-beta.0",
- "@expo/config-plugins": "~8.0.0-beta.0",
- "@expo/fingerprint": "^0.7.0",
- "@expo/spawn-async": "^1.7.2",
+ "@expo/config": "~8.5.0",
+ "@expo/config-plugins": "~7.8.0",
"arg": "4.1.0",
"chalk": "^4.1.2",
- "expo-eas-client": "~0.12.0",
- "expo-manifests": "~0.14.0",
- "expo-structured-headers": "~3.8.0",
- "expo-updates-interface": "~0.16.2",
- "fast-glob": "^3.3.2",
+ "expo-eas-client": "~0.11.0",
+ "expo-manifests": "~0.13.0",
+ "expo-structured-headers": "~3.7.0",
+ "expo-updates-interface": "~0.15.1",
"fbemitter": "^3.0.0",
- "ignore": "^5.3.1",
"resolve-from": "^5.0.0"
},
"bin": {
@@ -13239,9 +12599,9 @@
}
},
"node_modules/expo-updates-interface": {
- "version": "0.16.2",
- "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz",
- "integrity": "sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==",
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.15.3.tgz",
+ "integrity": "sha512-uLvsbaCmUsXgJqeen8rYH/jPr874ZUCXEvWpKHxrCv5/XATPlYEaDuecbNSGQ+cu78i6MdtB4BHOwZmoH2d47A==",
"peerDependencies": {
"expo": "*"
}
@@ -13304,17 +12664,7 @@
"resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.7.1.tgz",
"integrity": "sha512-lbTwFiIk0lOm9zzPRvnC45GfPqXqPB3w4hDDKVma+8FDAbPCWhNN42ltLhx/ekwcHFQxURmg0fHm59k0Vy+jtw==",
"dependencies": {
- "@expo/spawn-async": "^1.7.2",
- "chalk": "^4.1.2",
- "debug": "^4.3.4",
- "find-up": "^5.0.0",
- "minimatch": "^3.0.4",
- "p-limit": "^3.1.0",
- "resolve-from": "^5.0.0",
- "semver": "^7.6.0"
- },
- "bin": {
- "fingerprint": "bin/cli.js"
+ "@babel/highlight": "^7.10.4"
}
},
"node_modules/expo-updates/node_modules/@expo/json-file": {
@@ -13342,10 +12692,43 @@
"resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
"integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
"dependencies": {
- "cross-spawn": "^7.0.3"
- },
- "engines": {
- "node": ">=12"
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.9.0",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ }
+ },
+
+
+ "node_modules/expo-updates/node_modules/@expo/config/node_modules/@expo/config-plugins": {
+ "version": "7.9.2",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.9.2.tgz",
+ "integrity": "sha512-sRU/OAp7kJxrCUiCTUZqvPMKPdiN1oTmNfnbkG4oPdfWQTpid3jyCH7ZxJEN5SI6jrY/ZsK5B/JPgjDUhuWLBQ==",
+ "dependencies": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
}
},
"node_modules/expo-updates/node_modules/ansi-styles": {
@@ -13457,9 +12840,13 @@
}
},
"node_modules/expo-web-browser": {
- "version": "13.0.3",
- "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz",
- "integrity": "sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==",
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-12.8.2.tgz",
+ "integrity": "sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg==",
+ "dependencies": {
+ "compare-urls": "^2.0.0",
+ "url": "^0.11.0"
+ },
"peerDependencies": {
"expo": "*"
}
@@ -15153,6 +14540,14 @@
"node": ">=8"
}
},
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -19640,6 +19035,40 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "dependencies": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/normalize-url/node_modules/query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url/node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/npm-package-arg": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
@@ -20398,6 +19827,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -20550,6 +19987,20 @@
"qrcode-terminal": "bin/qrcode-terminal.js"
}
},
+ "node_modules/qs": {
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz",
+ "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/query-string": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
@@ -20817,6 +20268,22 @@
"color-string": "^1.6.0"
}
},
+ "node_modules/react-native-gesture-handler": {
+ "version": "2.16.2",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz",
+ "integrity": "sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==",
+ "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"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/react-native-helmet-async": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/react-native-helmet-async/-/react-native-helmet-async-2.0.4.tgz",
@@ -21307,15 +20774,6 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
- "node_modules/regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.8.4"
- }
- },
"node_modules/regexp.prototype.flags": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
@@ -23371,6 +22829,15 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/url": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
+ "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.11.2"
+ }
+ },
"node_modules/url-join": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
@@ -23386,6 +22853,11 @@
"requires-port": "^1.0.0"
}
},
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
"node_modules/use-latest-callback": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
diff --git a/package.json b/package.json
index 9b1e6403..43a81ba8 100644
--- a/package.json
+++ b/package.json
@@ -19,28 +19,30 @@
"dependencies": {
"@expo/vector-icons": "^14.0.0",
"@oclif/screen": "^3.0.8",
- "@react-navigation/native": "^6.0.2",
+ "@react-navigation/native": "^6.1.17",
+ "@react-navigation/stack": "^6.3.29",
"eas-cli": "^8.0.0",
"expo": "^51.0.2",
- "expo-checkbox": "~3.0.0",
- "expo-font": "~12.0.4",
- "expo-linear-gradient": "~13.0.2",
- "expo-linking": "~6.3.1",
- "expo-local-authentication": "~14.0.1",
- "expo-navigation-bar": "~3.0.4",
- "expo-router": "~3.5.11",
- "expo-secure-store": "~13.0.1",
- "expo-splash-screen": "~0.27.4",
- "expo-status-bar": "~1.12.1",
- "expo-system-ui": "~3.0.4",
- "expo-updates": "~0.25.11",
- "expo-web-browser": "~13.0.3",
+ "expo-checkbox": "^3.0.0",
+ "expo-font": "^12.0.5",
+ "expo-linear-gradient": "^13.0.2",
+ "expo-linking": "^6.3.1",
+ "expo-local-authentication": "^14.0.1",
+ "expo-navigation-bar": "^3.0.4",
+ "expo-router": "^3.5.11",
+ "expo-secure-store": "^13.0.1",
+ "expo-splash-screen": "~0.26.5",
+ "expo-status-bar": "~1.11.1",
+ "expo-system-ui": "~2.9.3",
+ "expo-updates": "~0.24.12",
+ "expo-web-browser": "~12.8.2",
"nstall": "^0.2.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.74.1",
"react-native-calendars": "^1.1304.1",
"react-native-elements": "^3.4.3",
+ "react-native-gesture-handler": "^2.16.2",
"react-native-indicators": "^0.17.0",
"react-native-modern-datepicker": "^1.0.0-beta.91",
"react-native-otp-entry": "^1.6.1",