diff --git a/src/screen/HomeScreen.tsx b/app/HomeScreen.tsx
similarity index 91%
rename from src/screen/HomeScreen.tsx
rename to app/HomeScreen.tsx
index 023fdfb..7bbba87 100644
--- a/src/screen/HomeScreen.tsx
+++ b/app/HomeScreen.tsx
@@ -1,10 +1,9 @@
import {SafeAreaView, StyleSheet, View} from "react-native";
import React from "react";
-import {Avatar, AvatarFallbackText, AvatarImage,} from "@/app/src/components/ui/avatar"
+import {Avatar, AvatarFallbackText, AvatarImage,} from "@/app/components/ui/avatar"
import {AntDesign} from "@expo/vector-icons";
-import {Text} from "@/app/src/components/ui/text";
-import {Box} from "@/app/src/components/ui/box";
-import ExerciceOverview from "@/src/component/ExerciceOverview";
+import {Text} from "@/app/components/ui/text";
+import ExerciceOverview from "@/app/components/ExerciceOverview";
export default function HomeScreen() {
diff --git a/src/screen/ProfileScreen.tsx b/app/ProfileScreen.tsx
similarity index 100%
rename from src/screen/ProfileScreen.tsx
rename to app/ProfileScreen.tsx
diff --git a/app/_layout.tsx b/app/_layout.tsx
index 55d43ba..56b2272 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,7 +1,7 @@
import "../global.css";
-import { GluestackUIProvider } from "./src/components/ui/gluestack-ui-provider";
-import HomeScreen from "@/src/screen/HomeScreen";
-import ProfileScreen from "@/src/screen/ProfileScreen";
+import { GluestackUIProvider } from "@/app/components/ui/gluestack-ui-provider";
+import HomeScreen from "@/app/HomeScreen";
+import ProfileScreen from "@/app/ProfileScreen";
import React from "react";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import {
diff --git a/src/component/ExerciceOverview.tsx b/app/components/ExerciceOverview.tsx
similarity index 51%
rename from src/component/ExerciceOverview.tsx
rename to app/components/ExerciceOverview.tsx
index 2a4c4dd..2ee989b 100644
--- a/src/component/ExerciceOverview.tsx
+++ b/app/components/ExerciceOverview.tsx
@@ -1,8 +1,10 @@
-
import React from "react";
-import {View, TouchableOpacity, ImageBackground, ImageBase} from "react-native";
-import { AntDesign } from "@expo/vector-icons"; // Assure-toi d'avoir installé les icônes
-import { Text } from "@/app/src/components/ui/text";
+import {Text} from "./ui/text";
+import {Box} from "./ui/box";
+import {ImageBackground} from "react-native";
+import {HStack} from "@/app/components/ui/hstack";
+import {Button} from "@/app/components/ui/button";
+import {AntDesign} from "@expo/vector-icons";
export default function ExerciceOverview() {
const exercise = {
@@ -17,34 +19,30 @@ export default function ExerciceOverview() {
const image = {uri: exercise.imageUri};
return (
-
+
-
+
{exercise.time}
{exercise.kcal} kcal
-
+
-
+
{exercise.name}
{exercise.sets} Sets
{exercise.difficulty} Difficulty
-
-
- console.log("Play exercise started")}
- >
-
-
-
+
+
+
-
+
);
}
\ No newline at end of file
diff --git a/app/src/components/ui/avatar/index.tsx b/app/components/ui/avatar/index.tsx
similarity index 100%
rename from app/src/components/ui/avatar/index.tsx
rename to app/components/ui/avatar/index.tsx
diff --git a/app/src/components/ui/box/index.tsx b/app/components/ui/box/index.tsx
similarity index 100%
rename from app/src/components/ui/box/index.tsx
rename to app/components/ui/box/index.tsx
diff --git a/app/src/components/ui/box/index.web.tsx b/app/components/ui/box/index.web.tsx
similarity index 100%
rename from app/src/components/ui/box/index.web.tsx
rename to app/components/ui/box/index.web.tsx
diff --git a/app/src/components/ui/box/styles.tsx b/app/components/ui/box/styles.tsx
similarity index 100%
rename from app/src/components/ui/box/styles.tsx
rename to app/components/ui/box/styles.tsx
diff --git a/app/src/components/ui/button/index.tsx b/app/components/ui/button/index.tsx
similarity index 100%
rename from app/src/components/ui/button/index.tsx
rename to app/components/ui/button/index.tsx
diff --git a/app/components/ui/checkbox/index.tsx b/app/components/ui/checkbox/index.tsx
new file mode 100644
index 0000000..4e85cac
--- /dev/null
+++ b/app/components/ui/checkbox/index.tsx
@@ -0,0 +1,237 @@
+'use client';
+import React from 'react';
+import { createCheckbox } from '@gluestack-ui/checkbox';
+import { View, Pressable, Text, Platform } from 'react-native';
+import type { TextProps, ViewProps } from 'react-native';
+import { tva } from '@gluestack-ui/nativewind-utils/tva';
+import { PrimitiveIcon, IPrimitiveIcon, UIIcon } from '@gluestack-ui/icon';
+import {
+ withStyleContext,
+ useStyleContext,
+} from '@gluestack-ui/nativewind-utils/withStyleContext';
+import { cssInterop } from 'nativewind';
+import type { VariantProps } from '@gluestack-ui/nativewind-utils';
+
+const IndicatorWrapper = React.forwardRef<
+ React.ElementRef,
+ ViewProps
+>(({ ...props }, ref) => {
+ return ;
+});
+
+const LabelWrapper = React.forwardRef, TextProps>(
+ ({ ...props }, ref) => {
+ return ;
+ }
+);
+
+const IconWrapper = React.forwardRef<
+ React.ElementRef,
+ IPrimitiveIcon
+>(({ ...props }, ref) => {
+ return ;
+});
+
+const SCOPE = 'CHECKBOX';
+const UICheckbox = createCheckbox({
+ // @ts-expect-error
+ Root:
+ Platform.OS === 'web'
+ ? withStyleContext(View, SCOPE)
+ : withStyleContext(Pressable, SCOPE),
+ Group: View,
+ Icon: IconWrapper,
+ Label: LabelWrapper,
+ Indicator: IndicatorWrapper,
+});
+
+cssInterop(PrimitiveIcon, {
+ className: {
+ target: 'style',
+ nativeStyleToProp: {
+ height: true,
+ width: true,
+ fill: true,
+ color: 'classNameColor',
+ stroke: true,
+ },
+ },
+});
+
+const checkboxStyle = tva({
+ base: 'group/checkbox flex-row items-center justify-start web:cursor-pointer data-[disabled=true]:cursor-not-allowed',
+ variants: {
+ size: {
+ lg: 'gap-2',
+ md: 'gap-2',
+ sm: 'gap-1.5',
+ },
+ },
+});
+
+const checkboxIndicatorStyle = tva({
+ base: 'justify-center items-center border-outline-400 bg-transparent rounded web:data-[focus-visible=true]:outline-none web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-indicator-primary data-[checked=true]:bg-primary-600 data-[checked=true]:border-primary-600 data-[hover=true]:data-[checked=false]:border-outline-500 data-[hover=true]:bg-transparent data-[hover=true]:data-[invalid=true]:border-error-700 data-[hover=true]:data-[checked=true]:bg-primary-700 data-[hover=true]:data-[checked=true]:border-primary-700 data-[hover=true]:data-[checked=true]:data-[disabled=true]:border-primary-600 data-[hover=true]:data-[checked=true]:data-[disabled=true]:bg-primary-600 data-[hover=true]:data-[checked=true]:data-[disabled=true]:opacity-40 data-[hover=true]:data-[checked=true]:data-[disabled=true]:data-[invalid=true]:border-error-700 data-[hover=true]:data-[disabled=true]:border-outline-400 data-[hover=true]:data-[disabled=true]:data-[invalid=true]:border-error-700 data-[active=true]:data-[checked=true]:bg-primary-800 data-[active=true]:data-[checked=true]:border-primary-800 data-[invalid=true]:border-error-700 data-[disabled=true]:opacity-40',
+ parentVariants: {
+ size: {
+ lg: 'w-6 h-6 border-[3px]',
+ md: 'w-5 h-5 border-2',
+ sm: 'w-4 h-4 border-2',
+ },
+ },
+});
+
+const checkboxLabelStyle = tva({
+ base: 'text-typography-600 data-[checked=true]:text-typography-900 data-[hover=true]:text-typography-900 data-[hover=true]:data-[checked=true]:text-typography-900 data-[hover=true]:data-[checked=true]:data-[disabled=true]:text-typography-900 data-[hover=true]:data-[disabled=true]:text-typography-400 data-[active=true]:text-typography-900 data-[active=true]:data-[checked=true]:text-typography-900 data-[disabled=true]:opacity-40 web:select-none',
+ parentVariants: {
+ size: {
+ lg: 'text-lg',
+ md: 'text-base',
+ sm: 'text-sm',
+ },
+ },
+});
+
+const checkboxIconStyle = tva({
+ base: 'text-typography-50 fill-none',
+
+ parentVariants: {
+ size: {
+ sm: 'h-3 w-3',
+ md: 'h-4 w-4',
+ lg: 'h-5 w-5',
+ },
+ },
+});
+
+const CheckboxGroup = UICheckbox.Group;
+
+type ICheckboxProps = React.ComponentPropsWithoutRef &
+ VariantProps;
+
+const Checkbox = React.forwardRef<
+ React.ElementRef,
+ ICheckboxProps
+>(({ className, size = 'md', ...props }, ref) => {
+ return (
+
+ );
+});
+
+type ICheckboxIndicatorProps = React.ComponentPropsWithoutRef<
+ typeof UICheckbox.Indicator
+> &
+ VariantProps;
+
+const CheckboxIndicator = React.forwardRef<
+ React.ElementRef,
+ ICheckboxIndicatorProps
+>(({ className, ...props }, ref) => {
+ const { size: parentSize } = useStyleContext(SCOPE);
+
+ return (
+
+ );
+});
+
+type ICheckboxLabelProps = React.ComponentPropsWithoutRef<
+ typeof UICheckbox.Label
+> &
+ VariantProps;
+const CheckboxLabel = React.forwardRef<
+ React.ElementRef,
+ ICheckboxLabelProps
+>(({ className, ...props }, ref) => {
+ const { size: parentSize } = useStyleContext(SCOPE);
+ return (
+
+ );
+});
+
+type ICheckboxIconProps = React.ComponentPropsWithoutRef<
+ typeof UICheckbox.Icon
+> &
+ VariantProps;
+
+const CheckboxIcon = React.forwardRef<
+ React.ElementRef,
+ ICheckboxIconProps
+>(({ className, size, ...props }, ref) => {
+ const { size: parentSize } = useStyleContext(SCOPE);
+
+ if (typeof size === 'number') {
+ return (
+
+ );
+ } else if (
+ (props.height !== undefined || props.width !== undefined) &&
+ size === undefined
+ ) {
+ return (
+
+ );
+ }
+
+ return (
+
+ );
+});
+
+Checkbox.displayName = 'Checkbox';
+CheckboxIndicator.displayName = 'CheckboxIndicator';
+CheckboxLabel.displayName = 'CheckboxLabel';
+CheckboxIcon.displayName = 'CheckboxIcon';
+
+export {
+ Checkbox,
+ CheckboxIndicator,
+ CheckboxLabel,
+ CheckboxIcon,
+ CheckboxGroup,
+};
diff --git a/app/src/components/ui/gluestack-ui-provider/config.ts b/app/components/ui/gluestack-ui-provider/config.ts
similarity index 100%
rename from app/src/components/ui/gluestack-ui-provider/config.ts
rename to app/components/ui/gluestack-ui-provider/config.ts
diff --git a/app/src/components/ui/gluestack-ui-provider/index.tsx b/app/components/ui/gluestack-ui-provider/index.tsx
similarity index 100%
rename from app/src/components/ui/gluestack-ui-provider/index.tsx
rename to app/components/ui/gluestack-ui-provider/index.tsx
diff --git a/app/components/ui/hstack/index.tsx b/app/components/ui/hstack/index.tsx
new file mode 100644
index 0000000..5c4a81e
--- /dev/null
+++ b/app/components/ui/hstack/index.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import type { VariantProps } from '@gluestack-ui/nativewind-utils';
+import { View } from 'react-native';
+import type { ViewProps } from 'react-native';
+import { hstackStyle } from './styles';
+
+type IHStackProps = ViewProps & VariantProps;
+
+const HStack = React.forwardRef, IHStackProps>(
+ ({ className, space, reversed, ...props }, ref) => {
+ return (
+
+ );
+ }
+);
+
+HStack.displayName = 'HStack';
+
+export { HStack };
diff --git a/app/components/ui/hstack/index.web.tsx b/app/components/ui/hstack/index.web.tsx
new file mode 100644
index 0000000..7d1c50f
--- /dev/null
+++ b/app/components/ui/hstack/index.web.tsx
@@ -0,0 +1,22 @@
+import React from 'react';
+import type { VariantProps } from '@gluestack-ui/nativewind-utils';
+import { hstackStyle } from './styles';
+
+type IHStackProps = React.ComponentPropsWithoutRef<'div'> &
+ VariantProps;
+
+const HStack = React.forwardRef, IHStackProps>(
+ ({ className, space, reversed, ...props }, ref) => {
+ return (
+
+ );
+ }
+);
+
+HStack.displayName = 'HStack';
+
+export { HStack };
diff --git a/app/components/ui/hstack/styles.tsx b/app/components/ui/hstack/styles.tsx
new file mode 100644
index 0000000..f02fb7c
--- /dev/null
+++ b/app/components/ui/hstack/styles.tsx
@@ -0,0 +1,25 @@
+import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb';
+import { tva } from '@gluestack-ui/nativewind-utils/tva';
+
+const baseStyle = isWeb
+ ? 'flex relative z-0 box-border border-0 list-none min-w-0 min-h-0 bg-transparent items-stretch m-0 p-0 text-decoration-none'
+ : '';
+
+export const hstackStyle = tva({
+ base: `flex-row ${baseStyle}`,
+ variants: {
+ space: {
+ 'xs': 'gap-1',
+ 'sm': 'gap-2',
+ 'md': 'gap-3',
+ 'lg': 'gap-4',
+ 'xl': 'gap-5',
+ '2xl': 'gap-6',
+ '3xl': 'gap-7',
+ '4xl': 'gap-8',
+ },
+ reversed: {
+ true: 'flex-row-reverse',
+ },
+ },
+});
diff --git a/app/src/components/ui/text/index.tsx b/app/components/ui/text/index.tsx
similarity index 100%
rename from app/src/components/ui/text/index.tsx
rename to app/components/ui/text/index.tsx
diff --git a/app/src/components/ui/text/index.web.tsx b/app/components/ui/text/index.web.tsx
similarity index 100%
rename from app/src/components/ui/text/index.web.tsx
rename to app/components/ui/text/index.web.tsx
diff --git a/app/src/components/ui/text/styles.tsx b/app/components/ui/text/styles.tsx
similarity index 100%
rename from app/src/components/ui/text/styles.tsx
rename to app/components/ui/text/styles.tsx
diff --git a/app/components/ui/vstack/index.tsx b/app/components/ui/vstack/index.tsx
new file mode 100644
index 0000000..343b97a
--- /dev/null
+++ b/app/components/ui/vstack/index.tsx
@@ -0,0 +1,24 @@
+import React from 'react';
+import type { VariantProps } from '@gluestack-ui/nativewind-utils';
+import { View } from 'react-native';
+
+import { vstackStyle } from './styles';
+
+type IVStackProps = React.ComponentProps &
+ VariantProps;
+
+const VStack = React.forwardRef, IVStackProps>(
+ ({ className, space, reversed, ...props }, ref) => {
+ return (
+
+ );
+ }
+);
+
+VStack.displayName = 'VStack';
+
+export { VStack };
diff --git a/app/components/ui/vstack/index.web.tsx b/app/components/ui/vstack/index.web.tsx
new file mode 100644
index 0000000..2f76b46
--- /dev/null
+++ b/app/components/ui/vstack/index.web.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import type { VariantProps } from '@gluestack-ui/nativewind-utils';
+
+import { vstackStyle } from './styles';
+
+type IVStackProps = React.ComponentProps<'div'> &
+ VariantProps;
+
+const VStack = React.forwardRef, IVStackProps>(
+ ({ className, space, reversed, ...props }, ref) => {
+ return (
+
+ );
+ }
+);
+
+VStack.displayName = 'VStack';
+
+export { VStack };
diff --git a/app/components/ui/vstack/styles.tsx b/app/components/ui/vstack/styles.tsx
new file mode 100644
index 0000000..abc5dbe
--- /dev/null
+++ b/app/components/ui/vstack/styles.tsx
@@ -0,0 +1,25 @@
+import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb';
+import { tva } from '@gluestack-ui/nativewind-utils/tva';
+
+const baseStyle = isWeb
+ ? 'flex flex-col relative z-0 box-border border-0 list-none min-w-0 min-h-0 bg-transparent items-stretch m-0 p-0 text-decoration-none'
+ : '';
+
+export const vstackStyle = tva({
+ base: `flex-col ${baseStyle}`,
+ variants: {
+ space: {
+ 'xs': 'gap-1',
+ 'sm': 'gap-2',
+ 'md': 'gap-3',
+ 'lg': 'gap-4',
+ 'xl': 'gap-5',
+ '2xl': 'gap-6',
+ '3xl': 'gap-7',
+ '4xl': 'gap-8',
+ },
+ reversed: {
+ true: 'flex-col-reverse',
+ },
+ },
+});
diff --git a/app/index.tsx b/app/index.tsx
index 7501f9c..92ad8e8 100644
--- a/app/index.tsx
+++ b/app/index.tsx
@@ -1,6 +1,6 @@
import {SafeAreaView, Text, View} from "react-native";
import Navigation from "@/src/navigation/navigation";
-import HomeScreen from "@/src/screen/HomeScreen";
+import HomeScreen from "@/app/HomeScreen";
export default function Index() {
return (
diff --git a/src/component/component.ts b/app/model/component.ts
similarity index 100%
rename from src/component/component.ts
rename to app/model/component.ts
diff --git a/package-lock.json b/package-lock.json
index 94dabb1..100ddab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"@expo/vector-icons": "^14.0.2",
"@gluestack-ui/avatar": "^0.1.18",
"@gluestack-ui/button": "^1.0.8",
+ "@gluestack-ui/checkbox": "^0.1.33",
"@gluestack-ui/icon": "^0.1.25",
"@gluestack-ui/nativewind-utils": "^1.0.26",
"@gluestack-ui/overlay": "^0.1.16",
@@ -2410,6 +2411,38 @@
"react-dom": ">=16"
}
},
+ "node_modules/@gluestack-ui/checkbox": {
+ "version": "0.1.33",
+ "resolved": "https://registry.npmjs.org/@gluestack-ui/checkbox/-/checkbox-0.1.33.tgz",
+ "integrity": "sha512-sTbjWiqJDzwfIzp1ZUnHV4MnR08+mlfixsBNqJHCUPrcFCvW2DMFyyRKHWdgHj3BJcfPZQH/kYljVGzJQeAetA==",
+ "dependencies": {
+ "@gluestack-ui/form-control": "^0.1.19",
+ "@gluestack-ui/utils": "^0.1.14",
+ "@react-aria/visually-hidden": "^3.8.6",
+ "@react-native-aria/checkbox": "^0.2.9",
+ "@react-native-aria/focus": "^0.2.9",
+ "@react-native-aria/interactions": "0.2.13",
+ "@react-native-aria/utils": "0.2.11",
+ "@react-stately/checkbox": "^3.4.2"
+ },
+ "peerDependencies": {
+ "react": ">=16",
+ "react-dom": ">=16"
+ }
+ },
+ "node_modules/@gluestack-ui/form-control": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@gluestack-ui/form-control/-/form-control-0.1.19.tgz",
+ "integrity": "sha512-6YbPbi/RZrXc5DyVPbxPV17FYaBoEl1yAdSwut8iE6n+yQekjluINrh2q5ZPWF2SGmyo7VSNcL85yeU5I97xHg==",
+ "dependencies": {
+ "@gluestack-ui/utils": "^0.1.14",
+ "@react-native-aria/focus": "^0.2.9"
+ },
+ "peerDependencies": {
+ "react": ">=16",
+ "react-dom": ">=16"
+ }
+ },
"node_modules/@gluestack-ui/hooks": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/@gluestack-ui/hooks/-/hooks-0.1.12.tgz",
@@ -3217,6 +3250,24 @@
"react": "^16.8 || ^17.0 || ^18.0"
}
},
+ "node_modules/@react-aria/checkbox": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.2.1.tgz",
+ "integrity": "sha512-XnypnlVIfhB3CD7eSjSds8hNkzHgnhu0t48I1D0jYdL1O6tQC4UytPdIqlemRYBVHDloZkWerbjenpHnxhv8iA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/label": "^3.1.1",
+ "@react-aria/toggle": "^3.1.1",
+ "@react-aria/utils": "^3.3.0",
+ "@react-stately/checkbox": "^3.0.1",
+ "@react-stately/toggle": "^3.2.1",
+ "@react-types/checkbox": "^3.2.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
"node_modules/@react-aria/focus": {
"version": "3.19.0",
"resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz",
@@ -3267,6 +3318,20 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
+ "node_modules/@react-aria/label": {
+ "version": "3.7.13",
+ "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.13.tgz",
+ "integrity": "sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/utils": "^3.26.0",
+ "@react-types/shared": "^3.26.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-aria/overlays": {
"version": "3.24.0",
"resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz",
@@ -3305,6 +3370,24 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
+ "node_modules/@react-aria/toggle": {
+ "version": "3.10.10",
+ "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.10.tgz",
+ "integrity": "sha512-QwMT/vTNrbrILxWVHfd9zVQ3mV2NdBwyRu+DphVQiFAXcmc808LEaIX2n0lI6FCsUDC9ZejCyvzd91/YemdZ1Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/focus": "^3.19.0",
+ "@react-aria/interactions": "^3.22.5",
+ "@react-aria/utils": "^3.26.0",
+ "@react-stately/toggle": "^3.8.0",
+ "@react-types/checkbox": "^3.9.0",
+ "@react-types/shared": "^3.26.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-aria/utils": {
"version": "3.26.0",
"resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz",
@@ -3336,6 +3419,23 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
+ "node_modules/@react-native-aria/checkbox": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@react-native-aria/checkbox/-/checkbox-0.2.9.tgz",
+ "integrity": "sha512-REycBw1DKbw2r9LbynrB+egWOnJXo1YPoMkAQOv6wiKgIzRZ69l4GpmAwkwqUmKit+DJM9Van6/cGl9kOKTAeA==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-aria/checkbox": "3.2.1",
+ "@react-aria/utils": "^3.6.0",
+ "@react-native-aria/toggle": "^0.2.8",
+ "@react-native-aria/utils": "0.2.11",
+ "@react-stately/toggle": "^3.2.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/@react-native-aria/focus": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/@react-native-aria/focus/-/focus-0.2.9.tgz",
@@ -3383,6 +3483,24 @@
"react-native": "*"
}
},
+ "node_modules/@react-native-aria/toggle": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@react-native-aria/toggle/-/toggle-0.2.8.tgz",
+ "integrity": "sha512-4TJXuIUuVeozbV3Lk9YUxHxCHAhignn6/GfEdQv8XsfKHUmRMHyvXwdrmKTQCnbtz2Nn+NDUoqKUfZtOYpT3cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-aria/focus": "^3.2.3",
+ "@react-aria/utils": "^3.6.0",
+ "@react-native-aria/interactions": "0.2.13",
+ "@react-native-aria/utils": "0.2.11",
+ "@react-stately/toggle": "^3.2.1",
+ "@react-types/checkbox": "^3.2.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/@react-native-aria/utils": {
"version": "0.2.11",
"resolved": "https://registry.npmjs.org/@react-native-aria/utils/-/utils-0.2.11.tgz",
@@ -3888,6 +4006,35 @@
"react-native-screens": ">= 4.0.0"
}
},
+ "node_modules/@react-stately/checkbox": {
+ "version": "3.6.10",
+ "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.10.tgz",
+ "integrity": "sha512-LHm7i4YI8A/RdgWAuADrnSAYIaYYpQeZqsp1a03Og0pJHAlZL0ymN3y2IFwbZueY0rnfM+yF+kWNXjJqbKrFEQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-stately/form": "^3.1.0",
+ "@react-stately/utils": "^3.10.5",
+ "@react-types/checkbox": "^3.9.0",
+ "@react-types/shared": "^3.26.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/form": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.0.tgz",
+ "integrity": "sha512-E2wxNQ0QaTyDHD0nJFtTSnEH9A3bpJurwxhS4vgcUmESHgjFEMLlC9irUSZKgvOgb42GAq+fHoWBsgKeTp9Big==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-types/shared": "^3.26.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-stately/overlays": {
"version": "3.6.12",
"resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.12.tgz",
@@ -3902,6 +4049,21 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
+ "node_modules/@react-stately/toggle": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.0.tgz",
+ "integrity": "sha512-pyt/k/J8BwE/2g6LL6Z6sMSWRx9HEJB83Sm/MtovXnI66sxJ2EfQ1OaXB7Su5PEL9OMdoQF6Mb+N1RcW3zAoPw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-stately/utils": "^3.10.5",
+ "@react-types/checkbox": "^3.9.0",
+ "@react-types/shared": "^3.26.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-stately/utils": {
"version": "3.10.5",
"resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz",
@@ -3926,6 +4088,18 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
+ "node_modules/@react-types/checkbox": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.0.tgz",
+ "integrity": "sha512-9hbHx0Oo2Hp5a8nV8Q75LQR0DHtvOIJbFaeqESSopqmV9EZoYjtY/h0NS7cZetgahQgnqYWQi44XGooMDCsmxA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-types/shared": "^3.26.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-types/overlays": {
"version": "3.8.11",
"resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.11.tgz",
diff --git a/package.json b/package.json
index ff9bc02..62a8801 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"@expo/vector-icons": "^14.0.2",
"@gluestack-ui/avatar": "^0.1.18",
"@gluestack-ui/button": "^1.0.8",
+ "@gluestack-ui/checkbox": "^0.1.33",
"@gluestack-ui/icon": "^0.1.25",
"@gluestack-ui/nativewind-utils": "^1.0.26",
"@gluestack-ui/overlay": "^0.1.16",
diff --git a/src/model/component.ts b/src/model/component.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/src/navigation/navigation.tsx b/src/navigation/navigation.tsx
deleted file mode 100644
index af983d3..0000000
--- a/src/navigation/navigation.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import {createBottomTabNavigator} from "@react-navigation/bottom-tabs";
-import {NavigationContainer} from "expo-router/build/fork/NavigationContainer";
-import ProfileScreen from "@/src/screen/ProfileScreen";
-import HomeScreen from "@/src/screen/HomeScreen";
-import {MaterialIcons} from "@expo/vector-icons";
-
-export default function Navigation() {
- /* const BottomTabNavigator = createBottomTabNavigator();
-
- return (
-
-
- (
-
- ),
- }}
- />
-
-
-
-
- )
- */
-
-}
\ No newline at end of file
diff --git a/src/screen/component.tsx b/src/screen/component.tsx
deleted file mode 100644
index e69de29..0000000