diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 9a37061..b542f6e 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9,6 +9,7 @@
"version": "1.0.0",
"dependencies": {
"@expo/ui": "~56.0.11",
+ "@expo/vector-icons": "^15.1.1",
"expo": "~56.0.3",
"expo-constants": "~56.0.14",
"expo-device": "~56.0.4",
@@ -1659,6 +1660,17 @@
}
}
},
+ "node_modules/@expo/vector-icons": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-15.1.1.tgz",
+ "integrity": "sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "expo-font": ">=14.0.4",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/@expo/ws-tunnel": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz",
@@ -5196,9 +5208,6 @@
"cpu": [
"arm64"
],
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -5219,9 +5228,6 @@
"cpu": [
"arm64"
],
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -5242,9 +5248,6 @@
"cpu": [
"x64"
],
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -5265,9 +5268,6 @@
"cpu": [
"x64"
],
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
diff --git a/frontend/package.json b/frontend/package.json
index 8a855db..9f88bec 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -4,6 +4,7 @@
"version": "1.0.0",
"dependencies": {
"@expo/ui": "~56.0.11",
+ "@expo/vector-icons": "^15.1.1",
"expo": "~56.0.3",
"expo-constants": "~56.0.14",
"expo-device": "~56.0.4",
diff --git a/frontend/src/app/_layout.tsx b/frontend/src/app/_layout.tsx
index b58e11f..7a02f47 100644
--- a/frontend/src/app/_layout.tsx
+++ b/frontend/src/app/_layout.tsx
@@ -1,15 +1,64 @@
-import { DarkTheme, DefaultTheme, ThemeProvider } from 'expo-router';
-import { useColorScheme } from 'react-native';
+import { Tabs } from "expo-router";
+import { Ionicons } from "@expo/vector-icons";
-import { AnimatedSplashOverlay } from '@/components/animated-icon';
-import AppTabs from '@/components/app-tabs';
-
-export default function TabLayout() {
- const colorScheme = useColorScheme();
+export default function Layout() {
return (
-
-
-
-
+
+ (
+
+ ),
+ }}
+ />
+
+ (
+
+ ),
+ }}
+ />
+
+ (
+
+ ),
+ }}
+ />
+
+ (
+
+ ),
+ }}
+ />
+
);
}
diff --git a/frontend/src/app/alerts.tsx b/frontend/src/app/alerts.tsx
new file mode 100644
index 0000000..77aabd8
--- /dev/null
+++ b/frontend/src/app/alerts.tsx
@@ -0,0 +1,15 @@
+import { View, Text } from "react-native";
+
+export default function AlertsScreen() {
+ return (
+
+ Alertas
+
+ );
+}
\ No newline at end of file
diff --git a/frontend/src/app/guide.tsx b/frontend/src/app/guide.tsx
new file mode 100644
index 0000000..fbdcea9
--- /dev/null
+++ b/frontend/src/app/guide.tsx
@@ -0,0 +1,15 @@
+import { View, Text } from "react-native";
+
+export default function GuideScreen() {
+ return (
+
+ Guía
+
+ );
+}
\ No newline at end of file
diff --git a/frontend/src/app/index.tsx b/frontend/src/app/index.tsx
index e69de29..648f45d 100644
--- a/frontend/src/app/index.tsx
+++ b/frontend/src/app/index.tsx
@@ -0,0 +1,15 @@
+import { View, Text } from "react-native";
+
+export default function HomeScreen() {
+ return (
+
+ Inicio
+
+ );
+}
diff --git a/frontend/src/app/profile.tsx b/frontend/src/app/profile.tsx
new file mode 100644
index 0000000..23dee45
--- /dev/null
+++ b/frontend/src/app/profile.tsx
@@ -0,0 +1,15 @@
+import { View, Text } from "react-native";
+
+export default function ProfileScreen() {
+ return (
+
+ Perfil
+
+ );
+}
\ No newline at end of file
diff --git a/frontend/src/components/Alertltem.tsx b/frontend/src/components/Alertltem.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/components/EtaCard.tsx b/frontend/src/components/EtaCard.tsx
new file mode 100644
index 0000000..3087258
--- /dev/null
+++ b/frontend/src/components/EtaCard.tsx
@@ -0,0 +1,54 @@
+import { View, Text, StyleSheet } from 'react-native';
+import { Colors } from '../constants/theme';
+
+type EtaCardProps = {
+ minutes?: number;
+ status?: string;
+};
+
+export default function EtaCard({
+ minutes = 12,
+ status = 'En Camino',
+}: EtaCardProps) {
+
+ const theme = Colors.light;
+
+ return (
+
+
+
+ ETA estimado
+
+
+
+ {minutes} min
+
+
+
+ {status}
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ card: {
+ margin: 15,
+ padding: 20,
+ borderRadius: 16,
+ },
+ label: {
+ fontSize: 12,
+ marginBottom: 6,
+ },
+ time: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ marginBottom: 6,
+ },
+ status: {
+ fontSize: 14,
+ fontWeight: '600',
+ },
+});
diff --git a/frontend/src/components/InputField.tsx b/frontend/src/components/InputField.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/components/PrimaryButton.tsx b/frontend/src/components/PrimaryButton.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/components/QuickAction.tsx b/frontend/src/components/QuickAction.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/components/SectionTitle.tsx b/frontend/src/components/SectionTitle.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/components/StatusBadge.tsx b/frontend/src/components/StatusBadge.tsx
new file mode 100644
index 0000000..e69de29