diff --git a/.github/workflows/expo.build.yml b/.github/workflows/expo.build.yml
index db3a80486..f8f291f01 100644
--- a/.github/workflows/expo.build.yml
+++ b/.github/workflows/expo.build.yml
@@ -46,9 +46,9 @@ jobs:
# If you need additional setup or configurations, add them here
- name: Run Local Build for Android
- working-directory: ./client
+ working-directory: ./apps/expo
run: eas build --non-interactive --platform android --local
- name: Run Local Build for iOS
- working-directory: ./client
+ working-directory: ./apps/expo
run: eas build --non-interactive --platform ios --local
\ No newline at end of file
diff --git a/.github/workflows/node.js.dev.yml b/.github/workflows/node.js.dev.yml
index d52256ed6..de347340f 100644
--- a/.github/workflows/node.js.dev.yml
+++ b/.github/workflows/node.js.dev.yml
@@ -73,9 +73,9 @@ jobs:
cd server
yarn start &
- - name: Start Client in Background
+ - name: Start Expo in Background
run: |
- cd client
+ cd apps/expo
yarn web &
- name: Wait for a while
diff --git a/README.md b/README.md
index 5cb3cc4eb..8dab05f74 100644
--- a/README.md
+++ b/README.md
@@ -107,14 +107,27 @@ The main apps are:
- `packages` shared packages across apps
- `ui` includes your custom UI kit that will be optimized by Tamagui
- `app` you'll be importing most files from `app/`
- - `features` (don't use a `screens` folder. organize by feature.)
+ - `features` (don't use a `screens` folder. organize by feature.) [pending]
- `provider` (all the providers that wrap the app, and some no-ops for Web.)
+ - `api` - intended to be our services, but tRPC eliminated a lot of this need due to custom hooks. [mostly deprecated]
+ - `assets` - images and branding
+ - `auth` - auth provider and hook, currently set up for expo router auth. Once we have next js config done, will refactor to support next js auth somehow
+ - `components` - built components from our primitive ui elements (root/packages/ui), and custom logic hooks (/hooks)
+ - `config` - axios config, we have almost no axios needs with trpc. Once fully migrated away this will be removed.
+ - `constants` - strings and arrays that donโt change
+ - `context` - all react context stuff
+ - `hooks` - custom hooks for logic and data fetching with trpc
+ - `media` - media query in react native config
+ - `public` - web only assets like favicon
+/store - redux store. TRPC query reduced the need for a lot of these files. Will likely clean up soon.
+/theme - tracks dark and light mode theming logic and tamagui config
+/utils - utility functions that can be reused
## UI Kit
Note we're following the [design systems guide](https://tamagui.dev/docs/guides/design-systems) and creating our own package for components.
-See `packages/ui` named `@my/ui` for how this works.
+See `packages/ui` named `@packrat/ui` for how this works.
## ๐ Add new dependencies
@@ -186,7 +199,7 @@ cd PackRat
3. Set up the environment variables for the client and server.
- If you have access to the development env files, use those. Otherwise, replace the values with your own.
- - See the `.env.example` files in the `client` and `server` directories for the necessary environment variables.
+ - See the `.env.example` files in the `apps/expo` and `server` directories for the necessary environment variables.
#### Automated Setup ๐ ๏ธ
@@ -199,10 +212,10 @@ yarn setup
1. Navigate to the `PackRat` directory if you are not already there.
-2. Navigate to the `client` directory.
+2. Navigate to the `apps/expo` directory.
```
-cd client
+cd apps/expo
```
- Note that for the client to run, you need to also make the following changes:
diff --git a/client/.eslintrc.js b/apps/expo/.eslintrc.js
similarity index 100%
rename from client/.eslintrc.js
rename to apps/expo/.eslintrc.js
diff --git a/client/.gitignore b/apps/expo/.gitignore
similarity index 100%
rename from client/.gitignore
rename to apps/expo/.gitignore
diff --git a/client/Dockerfile b/apps/expo/Dockerfile
similarity index 100%
rename from client/Dockerfile
rename to apps/expo/Dockerfile
diff --git a/client/Podfile.example b/apps/expo/Podfile.example
similarity index 100%
rename from client/Podfile.example
rename to apps/expo/Podfile.example
diff --git a/client/android/.gitignore b/apps/expo/android/.gitignore
similarity index 100%
rename from client/android/.gitignore
rename to apps/expo/android/.gitignore
diff --git a/client/android/app/build.gradle b/apps/expo/android/app/build.gradle
similarity index 100%
rename from client/android/app/build.gradle
rename to apps/expo/android/app/build.gradle
diff --git a/client/android/app/debug.keystore b/apps/expo/android/app/debug.keystore
similarity index 100%
rename from client/android/app/debug.keystore
rename to apps/expo/android/app/debug.keystore
diff --git a/client/android/app/proguard-rules.pro b/apps/expo/android/app/proguard-rules.pro
similarity index 100%
rename from client/android/app/proguard-rules.pro
rename to apps/expo/android/app/proguard-rules.pro
diff --git a/client/android/app/src/debug/AndroidManifest.xml b/apps/expo/android/app/src/debug/AndroidManifest.xml
similarity index 100%
rename from client/android/app/src/debug/AndroidManifest.xml
rename to apps/expo/android/app/src/debug/AndroidManifest.xml
diff --git a/client/android/app/src/debug/java/com/andrewbierman/packrat/ReactNativeFlipper.java b/apps/expo/android/app/src/debug/java/com/andrewbierman/packrat/ReactNativeFlipper.java
similarity index 100%
rename from client/android/app/src/debug/java/com/andrewbierman/packrat/ReactNativeFlipper.java
rename to apps/expo/android/app/src/debug/java/com/andrewbierman/packrat/ReactNativeFlipper.java
diff --git a/client/android/app/src/main/AndroidManifest.xml b/apps/expo/android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from client/android/app/src/main/AndroidManifest.xml
rename to apps/expo/android/app/src/main/AndroidManifest.xml
diff --git a/client/android/app/src/main/java/com/andrewbierman/packrat/MainActivity.java b/apps/expo/android/app/src/main/java/com/andrewbierman/packrat/MainActivity.java
similarity index 100%
rename from client/android/app/src/main/java/com/andrewbierman/packrat/MainActivity.java
rename to apps/expo/android/app/src/main/java/com/andrewbierman/packrat/MainActivity.java
diff --git a/client/android/app/src/main/java/com/andrewbierman/packrat/MainApplication.java b/apps/expo/android/app/src/main/java/com/andrewbierman/packrat/MainApplication.java
similarity index 100%
rename from client/android/app/src/main/java/com/andrewbierman/packrat/MainApplication.java
rename to apps/expo/android/app/src/main/java/com/andrewbierman/packrat/MainApplication.java
diff --git a/client/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/apps/expo/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
similarity index 100%
rename from client/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
rename to apps/expo/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
diff --git a/client/android/app/src/main/res/drawable-mdpi/splashscreen_image.png b/apps/expo/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
similarity index 100%
rename from client/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
rename to apps/expo/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
diff --git a/client/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png b/apps/expo/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
similarity index 100%
rename from client/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
rename to apps/expo/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
diff --git a/client/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png b/apps/expo/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
similarity index 100%
rename from client/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
rename to apps/expo/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
diff --git a/client/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png b/apps/expo/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
similarity index 100%
rename from client/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
rename to apps/expo/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
diff --git a/client/android/app/src/main/res/drawable/rn_edit_text_material.xml b/apps/expo/android/app/src/main/res/drawable/rn_edit_text_material.xml
similarity index 100%
rename from client/android/app/src/main/res/drawable/rn_edit_text_material.xml
rename to apps/expo/android/app/src/main/res/drawable/rn_edit_text_material.xml
diff --git a/client/android/app/src/main/res/drawable/splashscreen.xml b/apps/expo/android/app/src/main/res/drawable/splashscreen.xml
similarity index 100%
rename from client/android/app/src/main/res/drawable/splashscreen.xml
rename to apps/expo/android/app/src/main/res/drawable/splashscreen.xml
diff --git a/client/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from client/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/client/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from client/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/client/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/client/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
rename to apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/client/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/client/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/client/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
rename to apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/client/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/client/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/client/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
rename to apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/client/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
rename to apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/client/android/app/src/main/res/values-night/colors.xml b/apps/expo/android/app/src/main/res/values-night/colors.xml
similarity index 100%
rename from client/android/app/src/main/res/values-night/colors.xml
rename to apps/expo/android/app/src/main/res/values-night/colors.xml
diff --git a/client/android/app/src/main/res/values/colors.xml b/apps/expo/android/app/src/main/res/values/colors.xml
similarity index 100%
rename from client/android/app/src/main/res/values/colors.xml
rename to apps/expo/android/app/src/main/res/values/colors.xml
diff --git a/client/android/app/src/main/res/values/strings.xml b/apps/expo/android/app/src/main/res/values/strings.xml
similarity index 100%
rename from client/android/app/src/main/res/values/strings.xml
rename to apps/expo/android/app/src/main/res/values/strings.xml
diff --git a/client/android/app/src/main/res/values/styles.xml b/apps/expo/android/app/src/main/res/values/styles.xml
similarity index 100%
rename from client/android/app/src/main/res/values/styles.xml
rename to apps/expo/android/app/src/main/res/values/styles.xml
diff --git a/client/android/app/src/release/java/com/andrewbierman/packrat/ReactNativeFlipper.java b/apps/expo/android/app/src/release/java/com/andrewbierman/packrat/ReactNativeFlipper.java
similarity index 100%
rename from client/android/app/src/release/java/com/andrewbierman/packrat/ReactNativeFlipper.java
rename to apps/expo/android/app/src/release/java/com/andrewbierman/packrat/ReactNativeFlipper.java
diff --git a/client/android/build.gradle b/apps/expo/android/build.gradle
similarity index 100%
rename from client/android/build.gradle
rename to apps/expo/android/build.gradle
diff --git a/client/android/gradle/wrapper/gradle-wrapper.jar b/apps/expo/android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from client/android/gradle/wrapper/gradle-wrapper.jar
rename to apps/expo/android/gradle/wrapper/gradle-wrapper.jar
diff --git a/client/android/gradle/wrapper/gradle-wrapper.properties b/apps/expo/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from client/android/gradle/wrapper/gradle-wrapper.properties
rename to apps/expo/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/client/android/gradlew b/apps/expo/android/gradlew
similarity index 100%
rename from client/android/gradlew
rename to apps/expo/android/gradlew
diff --git a/client/android/gradlew.bat b/apps/expo/android/gradlew.bat
similarity index 100%
rename from client/android/gradlew.bat
rename to apps/expo/android/gradlew.bat
diff --git a/client/android/settings.gradle b/apps/expo/android/settings.gradle
similarity index 100%
rename from client/android/settings.gradle
rename to apps/expo/android/settings.gradle
diff --git a/client/app.example.json b/apps/expo/app.example.json
similarity index 100%
rename from client/app.example.json
rename to apps/expo/app.example.json
diff --git a/client/app/(app)/_layout.tsx b/apps/expo/app/(app)/_layout.tsx
similarity index 70%
rename from client/app/(app)/_layout.tsx
rename to apps/expo/app/(app)/_layout.tsx
index 0d5d7448c..408b96ca9 100644
--- a/client/app/(app)/_layout.tsx
+++ b/apps/expo/app/(app)/_layout.tsx
@@ -1,5 +1,5 @@
import { Stack } from 'expo-router';
-import { useProtectedRoute, useSession } from '../../context/auth';
+import { useProtectedRoute, useSession } from 'app/context/auth';
export default function AppLayout() {
const { session } = useSession();
diff --git a/client/app/(app)/about/index.tsx b/apps/expo/app/(app)/about/index.tsx
similarity index 95%
rename from client/app/(app)/about/index.tsx
rename to apps/expo/app/(app)/about/index.tsx
index de5f9e826..25c02fc2b 100644
--- a/client/app/(app)/about/index.tsx
+++ b/apps/expo/app/(app)/about/index.tsx
@@ -1,4 +1,4 @@
-import About from '../../../screens/about';
+import About from 'app/screens/about';
import { Platform, ScrollView, StyleSheet } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/appearance/index.tsx b/apps/expo/app/(app)/appearance/index.tsx
similarity index 89%
rename from client/app/(app)/appearance/index.tsx
rename to apps/expo/app/(app)/appearance/index.tsx
index 318afd02f..662cb1903 100644
--- a/client/app/(app)/appearance/index.tsx
+++ b/apps/expo/app/(app)/appearance/index.tsx
@@ -1,7 +1,7 @@
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
-import AppearanceContainer from '../../../screens/appearance/AppearanceContainer';
+import AppearanceContainer from 'app/screens/appearance/AppearanceContainer';
export default function Appearance() {
return (
diff --git a/client/app/(app)/destination/[destinationId].tsx b/apps/expo/app/(app)/destination/[destinationId].tsx
similarity index 92%
rename from client/app/(app)/destination/[destinationId].tsx
rename to apps/expo/app/(app)/destination/[destinationId].tsx
index 81f1c57e7..9d698a380 100644
--- a/client/app/(app)/destination/[destinationId].tsx
+++ b/apps/expo/app/(app)/destination/[destinationId].tsx
@@ -1,5 +1,5 @@
import { Platform } from 'react-native';
-import { DestinationPage } from '../../../components/destination';
+import { DestinationPage } from 'app/components/destination';
// import DestinationPage from "../../components/destination";
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/drawer/index.tsx b/apps/expo/app/(app)/drawer/index.tsx
similarity index 95%
rename from client/app/(app)/drawer/index.tsx
rename to apps/expo/app/(app)/drawer/index.tsx
index 80383133f..3d5d6c294 100644
--- a/client/app/(app)/drawer/index.tsx
+++ b/apps/expo/app/(app)/drawer/index.tsx
@@ -7,14 +7,14 @@ import {
MaterialCommunityIcons,
MaterialIcons,
} from '@expo/vector-icons';
-import { theme, darkTheme } from '../../../theme';
+import { theme, darkTheme } from 'app/theme';
// import { useAuth } from "../../auth/provider";
-import useTheme from '../../../hooks/useTheme';
-import { signOut } from '../../../store/authStore';
+import useTheme from 'app/hooks/useTheme';
+import { signOut } from 'app/store/authStore';
import { useDispatch, useSelector } from 'react-redux';
-import { useSession } from '../../../context/auth';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import { useSession } from 'app/context/auth';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export default function Drawer() {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
diff --git a/client/app/(app)/feed/index.tsx b/apps/expo/app/(app)/feed/index.tsx
similarity index 93%
rename from client/app/(app)/feed/index.tsx
rename to apps/expo/app/(app)/feed/index.tsx
index 0088e8d86..74cfdcff4 100644
--- a/client/app/(app)/feed/index.tsx
+++ b/apps/expo/app/(app)/feed/index.tsx
@@ -1,4 +1,4 @@
-import Feed from '../../../screens/feed/Feed';
+import Feed from 'app/screens/feed/Feed';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/apps/expo/app/(app)/items/index.tsx b/apps/expo/app/(app)/items/index.tsx
new file mode 100644
index 000000000..380794dc1
--- /dev/null
+++ b/apps/expo/app/(app)/items/index.tsx
@@ -0,0 +1,123 @@
+import { View } from 'react-native';
+import React, { useEffect, useState } from 'react';
+import { StyleSheet, Platform } from 'react-native';
+import { MaterialIcons } from '@expo/vector-icons';
+import { theme } from 'app/theme';
+import useTheme from 'app/hooks/useTheme';
+import { RTooltip, RButton, RScrollView, BaseModal } from '@packrat/ui';
+import { AddItemGlobal } from 'app/components/item/AddItemGlobal';
+import { ItemsTable } from 'app/components/itemtable/itemTable';
+import { useDispatch, useSelector } from 'react-redux';
+import { getItemsGlobal } from 'app/store/globalItemsStore';
+import { Stack } from 'expo-router';
+import Head from 'expo-router/head';
+import { useFetchGlobalItems } from 'app/hooks/globalItems';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+
+export default function Items() {
+ // pagination index limit
+ const [limit, setLimit] = useState(5);
+ // page number for pagination
+ const [page, setPage] = useState(1);
+
+ const [refetch, setRefetch] = useState(false);
+
+ const { data, isLoading, isError } = useFetchGlobalItems(limit, page);
+ return (
+
+ {Platform.OS === 'web' && (
+
+ Items
+
+ )}
+
+
+ <>
+ }
+ >
+
+
+ >
+ {!isError &&
+ data?.globalItems &&
+ Array.isArray(data?.globalItems?.items) ? (
+
+ ) : null}
+
+
+ );
+}
+const loadStyles = () => {
+ const currentTheme = theme;
+ return {
+ container: {
+ display: 'flex',
+ justifyContent: 'center',
+ marginTop: '1rem',
+ alignItems: 'center',
+ },
+ button: {
+ backgroundColor: currentTheme.colors.background,
+ color: currentTheme.colors.white,
+ width: Platform.OS === 'web' ? '20rem' : '20%',
+ alignItems: 'center',
+ textAlign: 'center',
+ },
+ };
+};
+
+const ModalTriggerButton = ({ setIsModalOpen }) => {
+ const styles = useCustomStyles(loadStyles);
+ const { currentTheme } = useTheme();
+
+ return (
+
+ {
+ setIsModalOpen(true);
+ }}
+ >
+ Add Item
+
+ {Platform.OS === 'web' ? (
+
+ }
+ />
+ ) : null}
+
+ );
+};
diff --git a/client/app/(app)/map/index.tsx b/apps/expo/app/(app)/map/index.tsx
similarity index 98%
rename from client/app/(app)/map/index.tsx
rename to apps/expo/app/(app)/map/index.tsx
index fadb98b7c..f77b215d3 100644
--- a/client/app/(app)/map/index.tsx
+++ b/apps/expo/app/(app)/map/index.tsx
@@ -4,17 +4,16 @@ import {
StyleSheet,
Text,
View,
- Picker,
TouchableOpacity,
} from 'react-native';
import Mapbox from '@rnmapbox/maps';
// get mapbox access token from .env file
import { MAPBOX_ACCESS_TOKEN } from '@env';
import { FontAwesome, MaterialCommunityIcons } from '@expo/vector-icons';
-import { theme } from '../../../theme';
-import useTheme from '../../../hooks/useTheme';
+import { theme } from 'app/theme';
+import useTheme from 'app/hooks/useTheme';
import ErrorBoundary from '@packrat/ui';
-import { useCustomStyles } from '~/hooks/useCustomStyles';
+import { useCustomStyles } from 'app/hooks/useCustomStyles';
Mapbox.setAccessToken(MAPBOX_ACCESS_TOKEN);
diff --git a/client/app/(app)/maps/index.tsx b/apps/expo/app/(app)/maps/index.tsx
similarity index 92%
rename from client/app/(app)/maps/index.tsx
rename to apps/expo/app/(app)/maps/index.tsx
index 1f6566bbe..de3c19825 100644
--- a/client/app/(app)/maps/index.tsx
+++ b/apps/expo/app/(app)/maps/index.tsx
@@ -2,14 +2,15 @@ import { Modal, Text, View, Image, Dimensions } from 'react-native';
import Mapbox, { offlineManager } from '@rnmapbox/maps';
import { useEffect, useState } from 'react';
import { TouchableOpacity } from 'react-native-gesture-handler';
-import MapButtonsOverlay from '../../../components/map/MapButtonsOverlay';
-import { theme } from '../../../theme';
-import useTheme from '../../../hooks/useTheme';
+import MapButtonsOverlay from 'app/components/map/MapButtonsOverlay';
+import { theme } from 'app/theme';
+import useTheme from 'app/hooks/useTheme';
import { StyleSheet } from 'react-native';
import {
calculateZoomLevel,
getShapeSourceBounds,
-} from '../../../utils/mapFunctions';
+} from 'app/utils/mapFunctions';
+import { api } from 'app/constants/api';
function CircleCapComp() {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
@@ -91,11 +92,9 @@ export default function DownloadedMaps() {
borderRadius: 10,
}}
source={{
- uri: `https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/${
+ uri: `${api}/mapPreview/${
pack?.bounds[0] + ',' + pack?.bounds[1]
- },10,60,60/600x600?access_token=${
- process.env.MAPBOX_ACCESS_TOKEN
- }`,
+ },10,60,60/600x600`,
}}
/>
)}
diff --git a/client/app/(app)/pack/[packId].tsx b/apps/expo/app/(app)/pack/[packId].tsx
similarity index 79%
rename from client/app/(app)/pack/[packId].tsx
rename to apps/expo/app/(app)/pack/[packId].tsx
index 020245dbe..63781b479 100644
--- a/client/app/(app)/pack/[packId].tsx
+++ b/apps/expo/app/(app)/pack/[packId].tsx
@@ -1,6 +1,6 @@
-import PackContainer from '../../../components/pack/PackContainer';
-import { PackDetails } from '../../../components/pack/PackDetails';
-import { DetailsComponent } from '../../../components/details';
+import PackContainer from 'app/components/pack/PackContainer';
+import { PackDetails } from 'app/components/pack/PackDetails';
+import { DetailsComponent } from 'app/components/details';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/pack/create.tsx b/apps/expo/app/(app)/pack/create.tsx
similarity index 92%
rename from client/app/(app)/pack/create.tsx
rename to apps/expo/app/(app)/pack/create.tsx
index b0cf299d2..7274497ac 100644
--- a/client/app/(app)/pack/create.tsx
+++ b/apps/expo/app/(app)/pack/create.tsx
@@ -1,4 +1,4 @@
-import { AddPack } from '../../../components/pack/AddPack';
+import { AddPack } from 'app/components/pack/AddPack';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/packs/index.tsx b/apps/expo/app/(app)/packs/index.tsx
similarity index 93%
rename from client/app/(app)/packs/index.tsx
rename to apps/expo/app/(app)/packs/index.tsx
index 0995ab27a..275bafed4 100644
--- a/client/app/(app)/packs/index.tsx
+++ b/apps/expo/app/(app)/packs/index.tsx
@@ -1,4 +1,4 @@
-import Feed from '../../../screens/feed/Feed';
+import Feed from 'app/screens/feed/Feed';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/password-reset/index.tsx b/apps/expo/app/(app)/password-reset/index.tsx
similarity index 80%
rename from client/app/(app)/password-reset/index.tsx
rename to apps/expo/app/(app)/password-reset/index.tsx
index b51cfc53d..aeaecd130 100644
--- a/client/app/(app)/password-reset/index.tsx
+++ b/apps/expo/app/(app)/password-reset/index.tsx
@@ -1,10 +1,7 @@
import { Platform } from 'react-native';
-import {
- RequestPasswordReset,
- ResetPassword,
-} from '../../../components/password-reset';
+import { RequestPasswordReset } from 'app/components/password-reset';
import { Stack } from 'expo-router';
-import { PasswordResetForm } from '../../../components/password-reset/PasswordResetForm';
+import { PasswordResetForm } from 'app/components/password-reset/PasswordResetForm';
import Head from 'expo-router/head';
export default function ResetPasswordRoute() {
diff --git a/client/app/(app)/profile/[id].tsx b/apps/expo/app/(app)/profile/[id].tsx
similarity index 92%
rename from client/app/(app)/profile/[id].tsx
rename to apps/expo/app/(app)/profile/[id].tsx
index 82eb64940..cdb90f8c0 100644
--- a/client/app/(app)/profile/[id].tsx
+++ b/apps/expo/app/(app)/profile/[id].tsx
@@ -1,7 +1,7 @@
import { useSearchParams, Stack } from 'expo-router';
import { useEffect, useState } from 'react';
import { StyleSheet, Text, View, Platform } from 'react-native';
-import ProfileContainer from '../../../screens/user/ProfileContainer';
+import ProfileContainer from 'app/screens/user/ProfileContainer';
import Head from 'expo-router/head';
const Profile = () => {
diff --git a/client/app/(app)/profile/index.tsx b/apps/expo/app/(app)/profile/index.tsx
similarity index 90%
rename from client/app/(app)/profile/index.tsx
rename to apps/expo/app/(app)/profile/index.tsx
index 033416455..cc9d3a60c 100644
--- a/client/app/(app)/profile/index.tsx
+++ b/apps/expo/app/(app)/profile/index.tsx
@@ -1,4 +1,4 @@
-import ProfileContainer from '../../../screens/user/ProfileContainer';
+import ProfileContainer from 'app/screens/user/ProfileContainer';
import { Platform, ScrollView } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/profile/settings/index.tsx b/apps/expo/app/(app)/profile/settings/index.tsx
similarity index 92%
rename from client/app/(app)/profile/settings/index.tsx
rename to apps/expo/app/(app)/profile/settings/index.tsx
index 831dd042b..14ec97e8a 100644
--- a/client/app/(app)/profile/settings/index.tsx
+++ b/apps/expo/app/(app)/profile/settings/index.tsx
@@ -1,6 +1,6 @@
import { Platform, ScrollView } from 'react-native';
import { Stack } from 'expo-router';
-import Settings from '../../../../screens/user/Settings';
+import Settings from 'app/screens/user/Settings';
import Head from 'expo-router/head';
export default function SettingsPage() {
diff --git a/client/app/(app)/trip/[tripId].tsx b/apps/expo/app/(app)/trip/[tripId].tsx
similarity index 78%
rename from client/app/(app)/trip/[tripId].tsx
rename to apps/expo/app/(app)/trip/[tripId].tsx
index 4ec3baa31..ca114b373 100644
--- a/client/app/(app)/trip/[tripId].tsx
+++ b/apps/expo/app/(app)/trip/[tripId].tsx
@@ -1,6 +1,6 @@
-import PackContainer from '../../../components/pack/PackContainer';
-import { TripDetails } from '../../../screens/trip/TripDetails';
-import { DetailsComponent } from '../../../components/details';
+import PackContainer from 'app/components/pack/PackContainer';
+import { TripDetails } from 'app/screens/trip/TripDetails';
+import { DetailsComponent } from 'app/components/details';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(app)/trip/create.tsx b/apps/expo/app/(app)/trip/create.tsx
similarity index 92%
rename from client/app/(app)/trip/create.tsx
rename to apps/expo/app/(app)/trip/create.tsx
index e8dbe4858..7f3aac755 100644
--- a/client/app/(app)/trip/create.tsx
+++ b/apps/expo/app/(app)/trip/create.tsx
@@ -1,4 +1,4 @@
-import CreateTrip from '../../../screens/trip/createTrip';
+import CreateTrip from 'app/screens/trip/createTrip';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
diff --git a/client/app/(app)/trips/index.tsx b/apps/expo/app/(app)/trips/index.tsx
similarity index 93%
rename from client/app/(app)/trips/index.tsx
rename to apps/expo/app/(app)/trips/index.tsx
index 340a54905..58921470c 100644
--- a/client/app/(app)/trips/index.tsx
+++ b/apps/expo/app/(app)/trips/index.tsx
@@ -1,4 +1,4 @@
-import Feed from '../../../screens/feed/Feed';
+import Feed from 'app/screens/feed/Feed';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(auth)/_layout.tsx b/apps/expo/app/(auth)/_layout.tsx
similarity index 70%
rename from client/app/(auth)/_layout.tsx
rename to apps/expo/app/(auth)/_layout.tsx
index 0d5d7448c..408b96ca9 100644
--- a/client/app/(auth)/_layout.tsx
+++ b/apps/expo/app/(auth)/_layout.tsx
@@ -1,5 +1,5 @@
import { Stack } from 'expo-router';
-import { useProtectedRoute, useSession } from '../../context/auth';
+import { useProtectedRoute, useSession } from 'app/context/auth';
export default function AppLayout() {
const { session } = useSession();
diff --git a/client/app/(auth)/register.tsx b/apps/expo/app/(auth)/register.tsx
similarity index 94%
rename from client/app/(auth)/register.tsx
rename to apps/expo/app/(auth)/register.tsx
index cb3058e47..acec42743 100644
--- a/client/app/(auth)/register.tsx
+++ b/apps/expo/app/(auth)/register.tsx
@@ -1,4 +1,4 @@
-import Register from '../../screens/RegisterScreen';
+import Register from 'app/screens/RegisterScreen';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/(auth)/sign-in.tsx b/apps/expo/app/(auth)/sign-in.tsx
similarity index 93%
rename from client/app/(auth)/sign-in.tsx
rename to apps/expo/app/(auth)/sign-in.tsx
index e17593bdc..192f12f49 100644
--- a/client/app/(auth)/sign-in.tsx
+++ b/apps/expo/app/(auth)/sign-in.tsx
@@ -1,4 +1,4 @@
-import Login from '../../screens/LoginScreen';
+import Login from 'app/screens/LoginScreen';
import { Platform } from 'react-native';
import { Stack } from 'expo-router';
import Head from 'expo-router/head';
diff --git a/client/app/_layout.tsx b/apps/expo/app/_layout.tsx
similarity index 64%
rename from client/app/_layout.tsx
rename to apps/expo/app/_layout.tsx
index bf01b425c..b05963a0e 100644
--- a/client/app/_layout.tsx
+++ b/apps/expo/app/_layout.tsx
@@ -2,10 +2,10 @@ import { Slot } from 'expo-router';
import { Platform, View } from 'react-native';
-import Navigation from '../screens/Navigation';
+import { Navigation } from 'app/components/navigation';
-import { Provider } from '../provider';
-import Footer from '../components/footer/Footer';
+import { Provider } from 'app/provider';
+import Footer from 'app/components/footer/Footer';
export default function HomeLayout() {
return (
diff --git a/client/app/index.tsx b/apps/expo/app/index.tsx
similarity index 83%
rename from client/app/index.tsx
rename to apps/expo/app/index.tsx
index 3021edd59..2f7408be6 100644
--- a/client/app/index.tsx
+++ b/apps/expo/app/index.tsx
@@ -1,10 +1,10 @@
import { useSelector } from 'react-redux';
import { Platform, StyleSheet, View } from 'react-native';
import { Stack } from 'expo-router';
-import { darkTheme, theme } from '../theme';
-import LandingPage from '../components/landing_page';
-import Dashboard from '../screens/dashboard';
-import useTheme from '../hooks/useTheme';
+import { darkTheme, theme } from 'app/theme';
+import LandingPage from 'app/components/landing_page';
+import Dashboard from 'app/screens/dashboard';
+import useTheme from 'app/hooks/useTheme';
import { current } from '@reduxjs/toolkit';
import Head from 'expo-router/head';
diff --git a/client/assets/adaptive-icon.png b/apps/expo/assets/adaptive-icon.png
similarity index 100%
rename from client/assets/adaptive-icon.png
rename to apps/expo/assets/adaptive-icon.png
diff --git a/client/assets/background-image.png b/apps/expo/assets/background-image.png
similarity index 100%
rename from client/assets/background-image.png
rename to apps/expo/assets/background-image.png
diff --git a/client/assets/download.svg b/apps/expo/assets/download.svg
similarity index 100%
rename from client/assets/download.svg
rename to apps/expo/assets/download.svg
diff --git a/client/assets/favicon.png b/apps/expo/assets/favicon.png
similarity index 100%
rename from client/assets/favicon.png
rename to apps/expo/assets/favicon.png
diff --git a/client/assets/icon.png b/apps/expo/assets/icon.png
similarity index 100%
rename from client/assets/icon.png
rename to apps/expo/assets/icon.png
diff --git a/client/assets/images.png b/apps/expo/assets/images.png
similarity index 100%
rename from client/assets/images.png
rename to apps/expo/assets/images.png
diff --git a/client/assets/packrat-app-icon.png b/apps/expo/assets/packrat-app-icon.png
similarity index 100%
rename from client/assets/packrat-app-icon.png
rename to apps/expo/assets/packrat-app-icon.png
diff --git a/client/assets/packrat-icon-svg.svg b/apps/expo/assets/packrat-icon-svg.svg
similarity index 100%
rename from client/assets/packrat-icon-svg.svg
rename to apps/expo/assets/packrat-icon-svg.svg
diff --git a/client/assets/packrat-svg.svg b/apps/expo/assets/packrat-svg.svg
similarity index 100%
rename from client/assets/packrat-svg.svg
rename to apps/expo/assets/packrat-svg.svg
diff --git a/client/assets/packrat.png b/apps/expo/assets/packrat.png
similarity index 100%
rename from client/assets/packrat.png
rename to apps/expo/assets/packrat.png
diff --git a/client/assets/packrat_icon.png b/apps/expo/assets/packrat_icon.png
similarity index 100%
rename from client/assets/packrat_icon.png
rename to apps/expo/assets/packrat_icon.png
diff --git a/client/assets/splash.png b/apps/expo/assets/splash.png
similarity index 100%
rename from client/assets/splash.png
rename to apps/expo/assets/splash.png
diff --git a/client/assets/topographical-pattern.jpg b/apps/expo/assets/topographical-pattern.jpg
similarity index 100%
rename from client/assets/topographical-pattern.jpg
rename to apps/expo/assets/topographical-pattern.jpg
diff --git a/client/assets/topographical-pattern.png b/apps/expo/assets/topographical-pattern.png
similarity index 100%
rename from client/assets/topographical-pattern.png
rename to apps/expo/assets/topographical-pattern.png
diff --git a/client/babel.config.js b/apps/expo/babel.config.js
similarity index 78%
rename from client/babel.config.js
rename to apps/expo/babel.config.js
index c01c7364d..ed3844faf 100644
--- a/client/babel.config.js
+++ b/apps/expo/babel.config.js
@@ -26,15 +26,6 @@ module.exports = function (api) {
'module-resolver',
{
extensions: ['.ios.js', '.android.js', '.js', '.ts', '.tsx', '.json'],
- alias: {
- '~/config': './config',
- '~/constants': './constants',
- '~/components': ['./components'],
- '~/utils': ['./utils'],
- '~/hooks': ['./hooks'],
- '~/store': ['./store'],
- '~/theme': ['./theme'],
- },
},
],
[
@@ -42,7 +33,7 @@ module.exports = function (api) {
{
exclude: ['**/node_modules/**'],
// components: ['@packrat/ui', 'tamagui'], // this breaks the stylesheet usage on Tamagui components, but fixes build time errors. TODO: fix this
- config: './theme/tamagui.config.js',
+ config: 'app/theme/tamagui.config.js',
logTimings: true,
},
],
diff --git a/client/eas.json b/apps/expo/eas.json
similarity index 100%
rename from client/eas.json
rename to apps/expo/eas.json
diff --git a/client/env.example b/apps/expo/env.example
similarity index 100%
rename from client/env.example
rename to apps/expo/env.example
diff --git a/client/gradle.properties.example b/apps/expo/gradle.properties.example
similarity index 100%
rename from client/gradle.properties.example
rename to apps/expo/gradle.properties.example
diff --git a/client/index.js b/apps/expo/index.js
similarity index 100%
rename from client/index.js
rename to apps/expo/index.js
diff --git a/client/ios/.gitignore b/apps/expo/ios/.gitignore
similarity index 100%
rename from client/ios/.gitignore
rename to apps/expo/ios/.gitignore
diff --git a/client/ios/Podfile.properties.json b/apps/expo/ios/Podfile.properties.json
similarity index 100%
rename from client/ios/Podfile.properties.json
rename to apps/expo/ios/Podfile.properties.json
diff --git a/client/ios/packrat.xcodeproj/project.pbxproj b/apps/expo/ios/packrat.xcodeproj/project.pbxproj
similarity index 100%
rename from client/ios/packrat.xcodeproj/project.pbxproj
rename to apps/expo/ios/packrat.xcodeproj/project.pbxproj
diff --git a/client/ios/packrat.xcodeproj/xcshareddata/xcschemes/packrat.xcscheme b/apps/expo/ios/packrat.xcodeproj/xcshareddata/xcschemes/packrat.xcscheme
similarity index 100%
rename from client/ios/packrat.xcodeproj/xcshareddata/xcschemes/packrat.xcscheme
rename to apps/expo/ios/packrat.xcodeproj/xcshareddata/xcschemes/packrat.xcscheme
diff --git a/client/ios/packrat.xcworkspace/contents.xcworkspacedata b/apps/expo/ios/packrat.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from client/ios/packrat.xcworkspace/contents.xcworkspacedata
rename to apps/expo/ios/packrat.xcworkspace/contents.xcworkspacedata
diff --git a/client/ios/packrat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/apps/expo/ios/packrat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from client/ios/packrat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to apps/expo/ios/packrat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/client/ios/packrat/AppDelegate.h b/apps/expo/ios/packrat/AppDelegate.h
similarity index 100%
rename from client/ios/packrat/AppDelegate.h
rename to apps/expo/ios/packrat/AppDelegate.h
diff --git a/client/ios/packrat/AppDelegate.mm b/apps/expo/ios/packrat/AppDelegate.mm
similarity index 100%
rename from client/ios/packrat/AppDelegate.mm
rename to apps/expo/ios/packrat/AppDelegate.mm
diff --git a/client/ios/packrat/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/apps/expo/ios/packrat/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
similarity index 100%
rename from client/ios/packrat/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
rename to apps/expo/ios/packrat/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
diff --git a/client/ios/packrat/Images.xcassets/AppIcon.appiconset/Contents.json b/apps/expo/ios/packrat/Images.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from client/ios/packrat/Images.xcassets/AppIcon.appiconset/Contents.json
rename to apps/expo/ios/packrat/Images.xcassets/AppIcon.appiconset/Contents.json
diff --git a/client/ios/packrat/Images.xcassets/Contents.json b/apps/expo/ios/packrat/Images.xcassets/Contents.json
similarity index 100%
rename from client/ios/packrat/Images.xcassets/Contents.json
rename to apps/expo/ios/packrat/Images.xcassets/Contents.json
diff --git a/client/ios/packrat/Images.xcassets/SplashScreen.imageset/Contents.json b/apps/expo/ios/packrat/Images.xcassets/SplashScreen.imageset/Contents.json
similarity index 100%
rename from client/ios/packrat/Images.xcassets/SplashScreen.imageset/Contents.json
rename to apps/expo/ios/packrat/Images.xcassets/SplashScreen.imageset/Contents.json
diff --git a/client/ios/packrat/Images.xcassets/SplashScreen.imageset/image.png b/apps/expo/ios/packrat/Images.xcassets/SplashScreen.imageset/image.png
similarity index 100%
rename from client/ios/packrat/Images.xcassets/SplashScreen.imageset/image.png
rename to apps/expo/ios/packrat/Images.xcassets/SplashScreen.imageset/image.png
diff --git a/client/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/apps/expo/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/Contents.json
similarity index 100%
rename from client/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/Contents.json
rename to apps/expo/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/Contents.json
diff --git a/client/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/image.png b/apps/expo/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/image.png
similarity index 100%
rename from client/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/image.png
rename to apps/expo/ios/packrat/Images.xcassets/SplashScreenBackground.imageset/image.png
diff --git a/client/ios/packrat/Info.plist b/apps/expo/ios/packrat/Info.plist
similarity index 100%
rename from client/ios/packrat/Info.plist
rename to apps/expo/ios/packrat/Info.plist
diff --git a/client/ios/packrat/SplashScreen.storyboard b/apps/expo/ios/packrat/SplashScreen.storyboard
similarity index 100%
rename from client/ios/packrat/SplashScreen.storyboard
rename to apps/expo/ios/packrat/SplashScreen.storyboard
diff --git a/client/ios/packrat/Supporting/Expo.plist b/apps/expo/ios/packrat/Supporting/Expo.plist
similarity index 100%
rename from client/ios/packrat/Supporting/Expo.plist
rename to apps/expo/ios/packrat/Supporting/Expo.plist
diff --git a/client/ios/packrat/main.m b/apps/expo/ios/packrat/main.m
similarity index 100%
rename from client/ios/packrat/main.m
rename to apps/expo/ios/packrat/main.m
diff --git a/client/ios/packrat/noop-file.swift b/apps/expo/ios/packrat/noop-file.swift
similarity index 100%
rename from client/ios/packrat/noop-file.swift
rename to apps/expo/ios/packrat/noop-file.swift
diff --git a/client/ios/packrat/packrat-Bridging-Header.h b/apps/expo/ios/packrat/packrat-Bridging-Header.h
similarity index 100%
rename from client/ios/packrat/packrat-Bridging-Header.h
rename to apps/expo/ios/packrat/packrat-Bridging-Header.h
diff --git a/client/ios/packrat/packrat.entitlements b/apps/expo/ios/packrat/packrat.entitlements
similarity index 100%
rename from client/ios/packrat/packrat.entitlements
rename to apps/expo/ios/packrat/packrat.entitlements
diff --git a/client/metro.config.js b/apps/expo/metro.config.js
similarity index 91%
rename from client/metro.config.js
rename to apps/expo/metro.config.js
index d40fbee73..c1b512610 100644
--- a/client/metro.config.js
+++ b/apps/expo/metro.config.js
@@ -19,7 +19,7 @@ config.resolver.sourceExts.push('mjs', 'cjs');
// Find the project and workspace directories
const projectRoot = __dirname;
-const workspaceRoot = path.resolve(projectRoot, '../'); // Adjust as per your project structure
+const workspaceRoot = path.resolve(projectRoot, '../../'); // Adjust as per your project structure
// Watch all files within the monorepo
config.watchFolders = [workspaceRoot];
diff --git a/client/package.json b/apps/expo/package.json
similarity index 90%
rename from client/package.json
rename to apps/expo/package.json
index e910806fc..67ef910e1 100644
--- a/client/package.json
+++ b/apps/expo/package.json
@@ -1,5 +1,5 @@
{
- "name": "packrat",
+ "name": "expo-app",
"version": "1.0.0",
"main": "index.js",
"scripts": {
@@ -41,18 +41,18 @@
"@react-navigation/native-stack": "^6.9.12",
"@reduxjs/toolkit": "^1.9.3",
"@rnmapbox/maps": "^10.0.0-beta.79",
- "@tamagui/animations-react-native": "1.79.14",
- "@tamagui/babel-plugin": "1.79.14",
- "@tamagui/config": "1.79.14",
- "@tamagui/font-inter": "1.79.14",
- "@tamagui/linear-gradient": "1.79.14",
- "@tamagui/lucide-icons": "1.79.14",
- "@tamagui/progress": "1.79.14",
- "@tamagui/react-native-media-driver": "1.79.14",
- "@tamagui/shorthands": "1.79.14",
- "@tamagui/switch": "1.79.14",
- "@tamagui/theme-base": "1.79.14",
- "@tamagui/themes": "1.79.14",
+ "@tamagui/animations-react-native": "^1.84.1",
+ "@tamagui/babel-plugin": "^1.84.1",
+ "@tamagui/config": "^1.84.1",
+ "@tamagui/font-inter": "^1.84.1",
+ "@tamagui/linear-gradient": "^1.84.1",
+ "@tamagui/lucide-icons": "^1.84.1",
+ "@tamagui/progress": "^1.84.1",
+ "@tamagui/react-native-media-driver": "^1.84.1",
+ "@tamagui/shorthands": "^1.84.1",
+ "@tamagui/switch": "^1.84.1",
+ "@tamagui/theme-base": "^1.84.1",
+ "@tamagui/themes": "^1.84.1",
"@tanstack/query-async-storage-persister": "^4.36.1",
"@tanstack/react-query": "^4.36.1",
"@tanstack/react-query-devtools": "^4.36.1",
@@ -61,6 +61,7 @@
"@trpc/client": "^10.38.5",
"@trpc/react-query": "^10.38.5",
"@trpc/server": "^10.38.5",
+ "app": "*",
"axios": "^1.4.0",
"babel-plugin-transform-inline-environment-variables": "^0.4.4",
"burnt": "^0.12.1",
@@ -119,8 +120,8 @@
"redux-persist": "^6.0.0",
"serve": "^14.2.0",
"server": "*",
- "superjson": "1.10.0",
- "tamagui": "1.79.14",
+ "superjson": "^2.0.0",
+ "tamagui": "^1.84.1",
"togpx": "^0.5.4",
"uuid": "3.4.0",
"xmldom": "^0.6.0",
diff --git a/client/public/favicon.ico b/apps/expo/public/favicon.ico
similarity index 100%
rename from client/public/favicon.ico
rename to apps/expo/public/favicon.ico
diff --git a/client/setup.js b/apps/expo/setup.js
similarity index 100%
rename from client/setup.js
rename to apps/expo/setup.js
diff --git a/apps/expo/tsconfig.json b/apps/expo/tsconfig.json
new file mode 100644
index 000000000..05f6d6f6e
--- /dev/null
+++ b/apps/expo/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "extends": "@tsconfig/react-native/tsconfig.json",
+ "compilerOptions": {
+ "lib": ["es2022"],
+ "alwaysStrict": false,
+ "strictNullChecks": false,
+ "strictBindCallApply": false,
+ "strictFunctionTypes": false,
+ "strictPropertyInitialization": false,
+ "noImplicitAny": false,
+ "noImplicitThis": false,
+ "useUnknownInCatchVariables": false,
+ "baseUrl": ".",
+ },
+ "exclude": [
+ "node_modules",
+ "babel.config.js",
+ "metro.config.js",
+ "jest.config.js"
+ ]
+}
diff --git a/apps/next/.gitignore b/apps/next/.gitignore
new file mode 100644
index 000000000..7d093c39f
--- /dev/null
+++ b/apps/next/.gitignore
@@ -0,0 +1,38 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
diff --git a/apps/next/app-env.d.ts b/apps/next/app-env.d.ts
new file mode 100644
index 000000000..868bca255
--- /dev/null
+++ b/apps/next/app-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/next/next-env.d.ts b/apps/next/next-env.d.ts
new file mode 100644
index 000000000..4f11a03dc
--- /dev/null
+++ b/apps/next/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/apps/next/next.config.js b/apps/next/next.config.js
new file mode 100644
index 000000000..911de483a
--- /dev/null
+++ b/apps/next/next.config.js
@@ -0,0 +1,25 @@
+const { withExpo } = require('@expo/next-adapter');
+
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ // reanimated (and thus, Moti) doesn't work with strict mode currently...
+ // https://github.com/nandorojo/moti/issues/224
+ // https://github.com/necolas/react-native-web/pull/2330
+ // https://github.com/nandorojo/moti/issues/224
+ // once that gets fixed, set this back to true
+ reactStrictMode: false,
+ transpilePackages: [
+ 'react-native',
+ 'react-native-web',
+ 'solito',
+ 'dripsy',
+ '@dripsy/core',
+ 'moti',
+ 'app',
+ 'react-native-reanimated',
+ '@expo/html-elements',
+ 'react-native-gesture-handler',
+ ],
+};
+
+module.exports = withExpo(nextConfig);
diff --git a/apps/next/package.json b/apps/next/package.json
new file mode 100644
index 000000000..4afcf44a6
--- /dev/null
+++ b/apps/next/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "next-app",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@expo/next-adapter": "5.0.2",
+ "@tamagui/config": "^1.84.1",
+ "@tamagui/next-theme": "^1.84.1",
+ "app": "*",
+ "next": "^13.5.2",
+ "raf": "^3.4.1",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-native": "0.72.6",
+ "react-native-web": "~0.19.6",
+ "react-native-web-lite": "^1.84.1",
+ "setimmediate": "^1.0.5",
+ "tamagui": "^1.84.1",
+ "vercel": "latest"
+ },
+ "devDependencies": {
+ "@types/node": "^20.8.3"
+ }
+}
diff --git a/apps/next/pages/_app.tsx b/apps/next/pages/_app.tsx
new file mode 100644
index 000000000..e2ebe94ef
--- /dev/null
+++ b/apps/next/pages/_app.tsx
@@ -0,0 +1,28 @@
+import 'raf/polyfill';
+import 'setimmediate';
+
+import { Provider } from 'app/provider';
+import Head from 'next/head';
+import React from 'react';
+import type { SolitoAppProps } from 'solito';
+
+function MyApp({ Component, pageProps }: SolitoAppProps) {
+ return (
+ <>
+
+ Solito Example App
+
+
+
+ {/* Disabling provider until tamagui + next js config is complete */}
+ {/* */}
+
+ {/* */}
+ >
+ );
+}
+
+export default MyApp;
diff --git a/apps/next/pages/_document.js b/apps/next/pages/_document.js
new file mode 100644
index 000000000..3732d257a
--- /dev/null
+++ b/apps/next/pages/_document.js
@@ -0,0 +1,76 @@
+// Based on https://github.com/zeit/next.js/tree/canary/examples/with-react-native-web
+// and https://github.com/expo/expo-cli/blob/main/packages/webpack-config/web-default/index.html
+import NextDocument, { Head, Html, Main, NextScript } from 'next/document';
+import * as React from 'react';
+import { AppRegistry } from 'react-native';
+
+export const style = `
+/**
+ * Building on the RNWeb reset:
+ * https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/StyleSheet/initialRules.js
+ */
+html, body, #__next {
+ width: 100%;
+ /* To smooth any scrolling behavior */
+ -webkit-overflow-scrolling: touch;
+ margin: 0px;
+ padding: 0px;
+ /* Allows content to fill the viewport and go beyond the bottom */
+ min-height: 100%;
+}
+#__next {
+ flex-shrink: 0;
+ flex-basis: auto;
+ flex-direction: column;
+ flex-grow: 1;
+ display: flex;
+ flex: 1;
+}
+html {
+ scroll-behavior: smooth;
+ /* Prevent text size change on orientation change https://gist.github.com/tfausak/2222823#file-ios-8-web-app-html-L138 */
+ -webkit-text-size-adjust: 100%;
+ height: 100%;
+}
+body {
+ display: flex;
+ /* Allows you to scroll below the viewport; default value is visible */
+ overflow-y: auto;
+ overscroll-behavior-y: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -ms-overflow-style: scrollbar;
+}
+`;
+
+export async function getInitialProps({ renderPage }) {
+ AppRegistry.registerComponent('Main', () => Main);
+ const { getStyleElement } = AppRegistry.getApplication('Main');
+ const page = await renderPage();
+ const styles = [
+ ,
+ getStyleElement(),
+ ];
+ return { ...page, styles: React.Children.toArray(styles) };
+}
+
+export class Document extends NextDocument {
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+Document.getInitialProps = getInitialProps;
+
+export default Document;
diff --git a/apps/next/pages/index.tsx b/apps/next/pages/index.tsx
new file mode 100644
index 000000000..aa58cf374
--- /dev/null
+++ b/apps/next/pages/index.tsx
@@ -0,0 +1,3 @@
+export default function Home() {
+ return Hello World
;
+}
diff --git a/apps/next/pages/user/[id].tsx b/apps/next/pages/user/[id].tsx
new file mode 100644
index 000000000..091e1f243
--- /dev/null
+++ b/apps/next/pages/user/[id].tsx
@@ -0,0 +1,3 @@
+// import { UserDetailScreen } from 'app/features/user/detail-screen'
+
+// export default UserDetailScreen
diff --git a/apps/next/plugins/swc_plugin_reanimated.wasm b/apps/next/plugins/swc_plugin_reanimated.wasm
new file mode 100644
index 000000000..bf7ded052
Binary files /dev/null and b/apps/next/plugins/swc_plugin_reanimated.wasm differ
diff --git a/apps/next/public/favicon.ico b/apps/next/public/favicon.ico
new file mode 100644
index 000000000..718d6fea4
Binary files /dev/null and b/apps/next/public/favicon.ico differ
diff --git a/apps/next/public/vercel.svg b/apps/next/public/vercel.svg
new file mode 100644
index 000000000..fbf0e25a6
--- /dev/null
+++ b/apps/next/public/vercel.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/apps/next/tsconfig.json b/apps/next/tsconfig.json
new file mode 100644
index 000000000..a4069c489
--- /dev/null
+++ b/apps/next/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "app-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/client/app/(app)/items/index.tsx b/client/app/(app)/items/index.tsx
deleted file mode 100644
index 1eb4f3913..000000000
--- a/client/app/(app)/items/index.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-import { View } from 'react-native';
-import React, { useEffect, useState } from 'react';
-import { StyleSheet, Platform } from 'react-native';
-import { MaterialIcons } from '@expo/vector-icons';
-import { theme } from '../../../theme';
-import useTheme from '../../../hooks/useTheme';
-import { RTooltip, RButton, RScrollView } from '@packrat/ui';
-import { CustomModal } from '../../../components/modal';
-import { AddItemGlobal } from '../../../components/item/AddItemGlobal';
-import { ItemsTable } from '../../../components/itemtable/itemTable';
-import { useDispatch, useSelector } from 'react-redux';
-import { getItemsGlobal } from '../../../store/globalItemsStore';
-import { Stack } from 'expo-router';
-import Head from 'expo-router/head';
-import { useFetchGlobalItems } from '~/hooks/globalItems';
-import useCustomStyles from '~/hooks/useCustomStyles';
-
-export default function Items() {
- const styles = useCustomStyles(loadStyles);
-
- const [isAddItemModalOpen, setIsAddItemModalOpen] = useState(false);
-
- const onTrigger = (event) => {
- setIsAddItemModalOpen(event);
- };
- // pagination index limit
- const [limit, setLimit] = useState(5);
- // page number for pagination
- const [page, setPage] = useState(1);
-
- const [refetch, setRefetch] = useState(false);
-
- const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
- useTheme();
-
- const { data, isLoading, isError } = useFetchGlobalItems(limit, page);
- return (
-
- {Platform.OS === 'web' && (
-
- Items
-
- )}
-
-
- <>
-
- {' '}
- {
- setIsAddItemModalOpen(true);
- }}
- >
- Add Item
-
- {Platform.OS === 'web' ? (
-
- }
- />
- ) : null}
-
- }
- onTrigger={setIsAddItemModalOpen}
- >
-
-
- >
- {!isError &&
- data.globalItems &&
- Array.isArray(data?.globalItems.items) ? (
-
- ) : null}
-
-
- );
-}
-const loadStyles = () => {
- const currentTheme = theme;
- return {
- container: {
- display: 'flex',
- justifyContent: 'center',
- marginTop: '1rem',
- alignItems: 'center',
- },
- button: {
- backgroundColor: currentTheme.colors.background,
- color: currentTheme.colors.white,
- width: Platform.OS === 'web' ? '20rem' : '20%',
- alignItems: 'center',
- textAlign: 'center',
- },
- };
-};
diff --git a/client/components/custombutton/index.tsx b/client/components/custombutton/index.tsx
deleted file mode 100644
index 21e362742..000000000
--- a/client/components/custombutton/index.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import { RButton } from '@packrat/ui';
-import React from 'react';
-
-const CustomButton = ({ children, copy, handler, ...args }) => {
- return (
- <>
- {copy && (
-
- {children}
-
- )}
- >
- );
-};
-
-export default CustomButton;
diff --git a/client/components/dialog/index.tsx b/client/components/dialog/index.tsx
deleted file mode 100644
index 3d5162d15..000000000
--- a/client/components/dialog/index.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-// import { X } from "@tamagui/lucide-icons";
-
-import { MaterialCommunityIcons } from '@expo/vector-icons';
-import { useState } from 'react';
-
-import {
- Adapt,
- Button,
- Dialog,
- Fieldset,
- Input,
- Label,
- Paragraph,
- Sheet,
- TooltipSimple,
- Unspaced,
- XStack,
- YStack,
-} from 'tamagui';
-
-import { SelectDemoItem } from '../select';
-
-export function DialogDemo() {
- // return null
- return ;
-}
-
-function DialogInstance() {
- const [open, setOpen] = useState(false);
- return (
-
- );
-}
diff --git a/client/components/modal/index.tsx b/client/components/modal/index.tsx
deleted file mode 100644
index 3417385a7..000000000
--- a/client/components/modal/index.tsx
+++ /dev/null
@@ -1,154 +0,0 @@
-import React from 'react';
-import { RButton, RStack } from '@packrat/ui';
-import { X } from '@tamagui/lucide-icons';
-
-import { Dialog } from 'tamagui';
-
-interface PropTypes {
- id?: string;
- title: string;
- trigger?: string;
- children: React.ReactNode;
- onSave?: () => void;
- onCancel?: () => void;
- buttonColor?: string;
- type?: string;
- size?: string;
- footerButtons?: any[];
- isActive: boolean;
- onTrigger: (value: boolean) => void;
- buttonText?: string;
- triggerComponent?: React.ReactNode;
-}
-export const CustomModal = ({
- id,
- title,
- trigger = 'Open',
- children,
- onSave,
- onCancel,
- buttonColor = 'primary',
- type,
- size = 'lg',
- footerButtons = [],
- isActive,
- onTrigger,
- buttonText,
- triggerComponent = null,
- ...rest
-}: PropTypes) => {
- /**
- *
- * Closes the modal either by calling the onCancel function or by triggering the onTrigger function with a value of false.
- *
- * @param {function} onCancel - The function to be called when the modal is closed by canceling.
- * @param {function} onTrigger - The function to be called when the modal is closed by triggering.
- * @return {undefined} This function does not return a value.
- */
- const closeModal = () => {
- if (onCancel) {
- onCancel();
- } else {
- onTrigger(false);
- }
- };
- const triggerElement = triggerComponent ? (
- onTrigger(true)}
- style={{ backgroundColor: 'transparent' }}
- >
- {triggerComponent}
-
- ) : (
- onTrigger(true)}>
- {trigger}
-
- );
- if (onTrigger) {
- return (
-
- );
- } else {
- return null;
- }
-};
diff --git a/client/components/multi_step/index.tsx b/client/components/multi_step/index.tsx
deleted file mode 100644
index 8e483aa9b..000000000
--- a/client/components/multi_step/index.tsx
+++ /dev/null
@@ -1,184 +0,0 @@
-import React, { useState } from 'react';
-import { View, Text, TouchableOpacity } from 'react-native';
-import { Svg, Line, Circle } from 'react-native-svg';
-import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-
-const ProgressBar = ({ steps, currentStep }) => {
- const percentage = ((currentStep + 1) / steps.length) * 100;
- const styles = useCustomStyles(loadStyles);
-
- return (
-
-
-
- );
-};
-
-const Sidebar = ({ stepsData, currentStep }) => {
- // Get the data for the current step and all previous steps
- const displayData = Object.values(stepsData).slice(0, currentStep + 1);
- const styles = useCustomStyles(loadStyles);
-
- if (displayData.length === 0) return null;
-
- return (
-
- {/* Display your data here */}
- {displayData.map((data, index) => {
- if (!data) return null;
- const { title, subtext } = data;
- return (
-
- {title && {title}}
- {subtext && {subtext}}
-
- );
- })}
-
- );
-};
-
-/**
- * Renders a multi-step form component.
- *
- * @param {Object[]} steps - An array of steps to be rendered in the form.
- * @param {number} steps[].component - The component to be rendered for each step.
- * @param {Object} steps[].props - The props to be passed to the component.
- *
- * @return {JSX.Element} The rendered multi-step form component.
- */
-const MultiStepForm = ({ steps = [] }) => {
- const [currentStep, setCurrentStep] = useState(0);
- const [stepsData, setStepsData] = useState({});
- const styles = useCustomStyles(loadStyles);
-
- /**
- * Updates the current step and saves the data of the current step before moving.
- *
- * @param {any} newStep - The new step to set as the current step.
- * @return {undefined} This function does not have a return value.
- */
- const updateStep = (newStep) => {
- // Save data of the current step before moving
- setStepsData({
- ...stepsData,
- [currentStep]: steps[currentStep].sidebarData,
- });
- setCurrentStep(newStep);
- };
-
- /**
- * Executes the next step in the process.
- *
- * @return {void}
- */
- const nextStep = () => {
- if (currentStep < steps.length - 1) {
- updateStep(currentStep + 1);
- }
- };
-
- /**
- * Decrements the current step and updates the step if the current step is greater than 0.
- *
- * @return {undefined} No return value
- */
- /**
- * Decrements the current step and updates the step if the current step is greater than 0.
- *
- * @return {undefined} No return value
- */
- const prevStep = () => {
- if (currentStep > 0) {
- updateStep(currentStep - 1);
- }
- };
-
- const { component: CurrentComponent, props } = steps[currentStep] || {};
-
- if (!steps.length) return null;
-
- return (
-
-
-
-
-
- {CurrentComponent && }
-
-
-
- Previous
-
-
- Next
-
-
-
- );
-};
-
-const loadStyles = (theme) => {
- const { currentTheme } = theme;
- return {
- container: {
- // flex: 1,
- height: '800px',
- backgroundColor: currentTheme.colors.white,
- alignItems: 'center',
- justifyContent: 'center',
- },
- progressBar: {
- width: '100%',
- marginBottom: 20,
- },
- svg: {
- width: '100%',
- height: 50,
- },
- buttonContainer: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- margin: 20,
- width: '60%',
- },
- button: {
- padding: 15,
- backgroundColor: currentTheme.colors.background,
- color: currentTheme.colors.white,
- borderRadius: 20,
- width: 100,
- textAlign: 'center',
- },
- sidebar: {
- width: '20%', // adjust as necessary
- padding: 10,
- backgroundColor: currentTheme.colors.white, // adjust as necessary
- },
- };
-};
-
-export default MultiStepForm;
diff --git a/client/components/pack_table/EditPackItemModal.tsx b/client/components/pack_table/EditPackItemModal.tsx
deleted file mode 100644
index ee4682530..000000000
--- a/client/components/pack_table/EditPackItemModal.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import React, { useState } from 'react';
-import { MaterialIcons } from '@expo/vector-icons';
-import { AddItem } from '../item/AddItem';
-import { CustomModal } from '../modal';
-import { View } from 'react-native';
-
-export const EditPackItemModal = ({
- initialData,
- packId,
- currentPack,
- editAsDuplicate,
- setPage,
- page,
- isModalOpen,
- onTrigger,
- closeModalHandler,
-}) => {
- const [modalOpen, setModalOpen] = useState(false);
- let currentPackId;
- if (currentPack) {
- currentPackId = currentPack._id;
- }
-
- const onTriggerOpen = (newState) => {
- setModalOpen(newState);
- };
- const closeTriggerOpen = () => {
- onTriggerOpen(false);
- };
- const footerCloseHandler = closeModalHandler ?? closeTriggerOpen;
-
- const footerButtons = [
- {
- label: 'Cancel',
- onClick: closeModalHandler,
- color: '#B22222',
- disabled: false,
- },
- // add more footer buttons here if needed
- ];
-
- return (
-
- }
- onTrigger={onTrigger || onTriggerOpen}
- footerButtons={footerButtons}
- onCancel={closeModalHandler}
- >
-
-
-
- );
-};
diff --git a/client/components/skeleton/index.tsx b/client/components/skeleton/index.tsx
deleted file mode 100644
index a11614dfd..000000000
--- a/client/components/skeleton/index.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { RSkeleton } from '@packrat/ui';
-
-export const TableLoader = () => {
- return ;
-};
diff --git a/client/components/weather/WeatherData.tsx b/client/components/weather/WeatherData.tsx
deleted file mode 100644
index 21e1470ce..000000000
--- a/client/components/weather/WeatherData.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import { useSelector } from 'react-redux';
-import WeatherCard from './WeatherCard';
-import { useFetchWeather, useFetchWeatherWeak } from '~/hooks/weather';
-
-/**
- * Generates a function comment for the given function body.
- *
- * @param {Object} geoJSON - The GeoJSON data.
- * @return {JSX.Element|null} The WeatherCard component if weatherObject and weatherWeek are truthy, otherwise null.
- */
-export const WeatherData = ({ geoJSON }) => {
- // const weatherObject = useSelector((state) => state.destination.weatherObject);
- // const weatherWeek = useSelector((state) => state.destination.weatherWeek);
- const [latLng, setLatLng] = useState({});
- const { data: weatherObjectData } = useFetchWeather(latLng);
- const { data: weatherWeekData } = useFetchWeatherWeak(latLng);
-
- useEffect(() => {
- /**
- * Fetches weather data based on the provided geoJSON.
- *
- * @return {Promise} - A Promise that resolves when the weather data is fetched and stored.
- */
- const fetchWeatherData = async () => {
- if (geoJSON?.features) {
- const { coordinates } = geoJSON.features[0].geometry;
-
- // const [lon, lat] = coordinates;
- let lon, lat;
-
- if (coordinates[0] && Array.isArray(coordinates[0])) {
- [lon, lat] = coordinates[0];
- } else {
- [lon, lat] = coordinates;
- }
-
- if (lat && lon) {
- setLatLng({ lat, lon });
- try {
- // console.log(lat, lon)
- // const weatherObjRes = await dispatch(fetchWeather({ lat, lon }));
- // const weatherWkRes = await dispatch(fetchWeatherWeek({ lat, lon }));
- // dispatch(setWeatherObject(weatherObjRes.payload));
- // dispatch(setWeatherWeek(weatherWkRes.payload.list.slice(0, 4)));
- } catch (err) {
- console.error(err);
- }
- }
- }
- };
- fetchWeatherData();
- }, [geoJSON]);
-
- return weatherObjectData && weatherWeekData ? (
-
- ) : null;
-};
diff --git a/client/constants/options.ts b/client/constants/options.ts
deleted file mode 100644
index 4f10e990d..000000000
--- a/client/constants/options.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export const packSelectOptions = [
- { value: 'Yes', label: 'Yes' },
- { value: 'For me only', label: 'For me only' },
- ];
diff --git a/client/provider/CombinedProvider.tsx b/client/provider/CombinedProvider.tsx
deleted file mode 100644
index fc9f9af3b..000000000
--- a/client/provider/CombinedProvider.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-// src/provider/CombinedProvider.tsx
-import { Provider as ReduxProvider } from 'react-redux';
-import { PersistGate } from 'redux-persist/integration/react';
-import { SessionProvider } from '../context/auth';
-import { ThemeProvider } from '../context/theme';
-import { store, persistor } from '../store/store';
-
-// Additional imports from the branch
-import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
-import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
-import AsyncStorage from '@react-native-async-storage/async-storage';
-import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client';
-import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
-import { onlineManager } from '@tanstack/react-query';
-import NetInfo from '@react-native-community/netinfo';
-
-import { queryTrpc, getToken } from '../trpc';
-import { httpBatchLink } from '@trpc/client';
-import { api } from '~/constants/api';
-import { useEffect } from 'react';
-
-export function CombinedProvider({ children }: { children: React.ReactNode }) {
- // Setup for React Query and TRPC
- const [queryClient] = React.useState(() => new QueryClient());
-
- const persister = createAsyncStoragePersister({
- storage: AsyncStorage,
- throttleTime: 3000,
- });
-
- useEffect(() => {
- return NetInfo.addEventListener((state) => {
- const status = !!state.isConnected;
- onlineManager.setOnline(status);
- });
- }, []);
-
- const trpcClient = queryTrpc.createClient({
- links: [
- httpBatchLink({
- url: `${api}/trpc`,
- async headers() {
- const token = await getToken('session');
- return {
- authorization: token ? `Bearer ${token}` : '',
- };
- },
- }),
- ],
- });
-
- useEffect(() => {
- return NetInfo.addEventListener((state) => {
- const status = !!state.isConnected;
- onlineManager.setOnline(status);
- });
- }, []);
-
- return (
-
-
- queryClient
- .resumePausedMutations()
- .then(async () => queryClient.invalidateQueries())
- }
- persistOptions={{ persister }}
- client={queryClient}
- >
-
-
-
-
- {children}
-
-
-
-
-
-
-
- );
-}
diff --git a/client/queryClient.js b/client/queryClient.js
deleted file mode 100644
index 6d46de591..000000000
--- a/client/queryClient.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { QueryClient } from '@tanstack/react-query';
-
-export const queryClient = new QueryClient();
diff --git a/client/screens/Drawer.tsx b/client/screens/Drawer.tsx
deleted file mode 100644
index fb3f32b79..000000000
--- a/client/screens/Drawer.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-import {
- View,
- Text,
- TouchableOpacity,
- Modal,
- SafeAreaView,
- Platform,
-} from 'react-native';
-import { Link } from 'expo-router';
-import { theme } from '../theme';
-import { AntDesign, MaterialIcons } from '@expo/vector-icons';
-import useTheme from '../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-const Drawer = ({
- isDrawerOpen,
- toggleDrawer,
- handleSignOut,
- navigationItems,
- navigateTo,
- renderNavigationItem,
-}) => {
- const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
- useTheme();
- const styles = useCustomStyles(loadStyles);
- const renderNavigationItems = () => {
- return (
-
-
-
-
- {navigationItems.map((item) => (
- navigateTo(item.href)}
- >
- {renderNavigationItem(item)}
-
- ))}
-
- );
- };
-
- return (
-
-
-
- {renderNavigationItems()}
-
-
- );
-};
-
-const loadStyles = (theme) => {
- const { currentTheme } = theme;
- return {
- modalOverlay: {
- flex: 1,
- flexDirection: 'row',
- backgroundColor: 'rgba(0,0,0,0.5)',
- },
- fullScreenTouchable: {
- flex: 1,
- },
- drawerContainer: {
- backgroundColor: currentTheme.colors.background,
- width: '70%',
- height: '100%',
- padding: 16,
- },
- navigationItem: {
- flexDirection: 'row',
- alignItems: 'center',
- paddingVertical: 8,
- },
- closeButton: {
- position: 'absolute',
- top: 16,
- right: 16,
- },
- };
-};
-
-export default Drawer;
diff --git a/client/screens/Navigation.tsx b/client/screens/Navigation.tsx
deleted file mode 100644
index 1f9cb7e01..000000000
--- a/client/screens/Navigation.tsx
+++ /dev/null
@@ -1,403 +0,0 @@
-import React, {
- useState,
- useEffect,
- useMemo,
- useCallback,
- useRef,
-} from 'react';
-import {
- View,
- StyleSheet,
- Text,
- TouchableOpacity,
- Dimensions,
- ScrollView,
- Modal,
- SafeAreaView,
-} from 'react-native';
-import { AuthStateListener } from '../auth/AuthStateListener';
-import { theme } from '../theme';
-import {
- EvilIcons,
- MaterialCommunityIcons,
- FontAwesome,
- MaterialIcons,
- Entypo,
- Fontisto,
-} from '@expo/vector-icons';
-
-import SVGLogoComponent from '../components/logo';
-import { useSelector, useDispatch } from 'react-redux';
-import { signOut } from '../store/authStore';
-
-import Drawer from './Drawer';
-import { Link, useRouter, usePathname } from 'expo-router';
-import { hexToRGBA } from '../utils/colorFunctions';
-import useTheme from '../hooks/useTheme';
-import { useSession } from '../context/auth';
-import useCustomStyles from '~/hooks/useCustomStyles';
-
-const Navigation = () => {
- const router = useRouter();
- const dispatch = useDispatch();
- const user = useSelector((state) => state.auth.user);
- const pathName = usePathname();
- const { sessionSignOut } = useSession();
-
- const [isDrawerOpen, setIsDrawerOpen] = useState(false);
- const [isMobileView, setIsMobileView] = useState(
- Dimensions.get('window').width < 1024,
- );
-
- const [navBarWidth, setNavBarWidth] = useState(null);
- const [selectedNavItem, setSelectedNavItem] = useState('');
- const firstRender = useRef(true);
- const [isLoading, setIsLoading] = useState(false); // Loading state
- const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
- useTheme();
- const hoverColor = hexToRGBA(currentTheme.colors.primary, 0.2);
-
- const styles = useCustomStyles(loadStyles);
-
- /**
- * Toggle the state of the drawer.
- *
- * @return {void} No return value.
- */
- const toggleDrawer = () => {
- setIsDrawerOpen(!isDrawerOpen);
- };
-
- const staticNavigationItems = useMemo(
- () => [
- {
- href: '/',
- icon: 'home',
- text: 'Home',
- iconSource: Entypo,
- },
- {
- href: '/about',
- icon: 'info',
- text: 'About',
- iconSource: MaterialIcons,
- },
- ],
- [],
- );
-
- const userNavigationItems = useMemo(
- () =>
- user
- ? [
- {
- href: '/feed',
- icon: 'newspaper-variant',
- text: 'Feed',
- iconSource: MaterialCommunityIcons,
- },
- {
- href: '/trips',
- icon: 'routes',
- text: 'Trips',
- iconSource: MaterialCommunityIcons,
- },
- {
- href: '/packs',
- icon: 'backpack',
- text: 'Packs',
- iconSource: MaterialIcons,
- },
- ...(Platform.OS != 'web'
- ? [
- {
- href: 'maps',
- icon: 'map',
- text: 'Downloaded Maps',
- iconSource: Entypo,
- },
- ]
- : []),
- {
- href: '/items',
- icon: 'tent',
- text: 'Items',
- iconSource: Fontisto,
- },
- {
- href: '/profile',
- icon: 'book',
- text: 'Profile',
- iconSource: FontAwesome,
- },
- {
- href: '/appearance',
- icon: 'theme-light-dark',
- text: 'Appearance',
- iconSource: MaterialCommunityIcons,
- },
- {
- href: 'logout',
- icon: 'logout',
- text: 'Logout',
- iconSource: MaterialIcons,
- },
- ]
- : [
- {
- href: 'sign-in',
- icon: 'login',
- text: 'Login',
- iconSource: MaterialIcons,
- },
- {
- href: 'register',
- icon: 'person-add',
- text: 'Register',
- iconSource: MaterialIcons,
- },
- ],
- [user],
- );
- useEffect(() => {}, []);
- const navigationItems = [...staticNavigationItems, ...userNavigationItems];
-
- const navigateTo = useCallback(
- (href) => {
- if (href === 'logout') {
- dispatch(signOut());
- sessionSignOut();
- } else {
- setIsDrawerOpen(false);
- setSelectedNavItem(href);
- setIsLoading(true); // Start loading
-
- setTimeout(() => {
- router.push(href);
- setIsLoading(false); // Stop loading after a delay
- }, 0); // Adjust the delay as needed
- }
- },
- [dispatch, router],
- );
-
- useEffect(() => {
- const handleScreenResize = () => {
- const isMobile =
- Dimensions.get('window').width < 1300 ||
- (navBarWidth < 1024 && !firstRender); // Adjust these values as needed
- setIsMobileView(isMobile);
- // update first render
- if (firstRender.current) {
- firstRender.current = false;
- }
- };
-
- const subscription = Dimensions.addEventListener(
- 'change',
- handleScreenResize,
- );
- return () => {
- subscription.remove(); // Proper event listener cleanup
- };
- }, [navBarWidth]); // Add navBarWidth as a dependency to the effect
-
- const renderNavigationItem = useCallback(
- (item, index) => {
- const { icon, iconSource, text, href } = item;
- const IconComponent = iconSource || EvilIcons;
-
- const isCurrentPage = pathName === href; // compare the current route with the href
- const isSelected = selectedNavItem === href; // check if the item is selected
-
- const handleItemPress = () => {
- setSelectedNavItem(href);
- navigateTo(href);
- };
-
- // if ((href === 'profile' || href === 'logout') && !user) {
- // return null; // Do not render the item if the user is not signed in
- // }
-
- return (
-
-
-
- {text}
-
-
- );
- },
- [user, selectedNavItem], // add any other dependencies that this function uses
- );
-
- return (
-
- setNavBarWidth(event.nativeEvent.layout.width)} // calculate the width of the navbar
- >
- {user && }
-
- navigateTo('/')}
- >
-
-
-
- PackRat
-
-
- {/* Trigger to open/close the drawer */}
-
- {!isDrawerOpen && isMobileView && (
-
-
-
- )}
-
-
- {isMobileView ? (
-
- {}}
- navigationItems={navigationItems}
- navigateTo={navigateTo}
- renderNavigationItem={renderNavigationItem}
- />
-
- ) : (
- //
-
- {navigationItems?.map((item, index) =>
- renderNavigationItem(item, index),
- )}
-
- //
- )}
-
-
-
- );
-};
-
-const loadStyles = (theme) => {
- const { currentTheme } = theme;
-
- return {
- safeArea: {
- backgroundColor: currentTheme.colors.background,
- },
- container: {
- width: '100%',
- backgroundColor: currentTheme.colors.background,
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- },
- header: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- padding: 16,
- width: '100%',
- },
- logoContainer: {
- flexDirection: 'row',
- alignItems: 'center',
- },
- logoWrapper: {
- marginHorizontal: 10,
- },
- logoText: {
- color: currentTheme.colors.text,
- fontSize: 38,
- fontWeight: '900',
- },
- menuBar: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'flex-end',
- paddingHorizontal: 16,
- height: 60,
- },
- menuBarItem: {
- flexDirection: 'row',
- alignItems: 'center',
- gap: 8,
- paddingHorizontal: 12,
- },
- menuBarItemText: {
- color: currentTheme.colors.text,
- fontSize: 18,
- },
- drawerContainer: {},
- drawerTrigger: {},
- menuBarItemActive: {
- // Apply styles for the active item
- // ...
- },
- menuBarItemTextActive: {
- // Apply styles for the active item's text
- // ...
- },
- menuBarItemSelected: {
- // Apply styles for the selected item
- // ...
- },
- menuBarItemTextSelected: {
- // Apply styles for the selected item's text
- // ...
- },
- };
-};
-
-export default Navigation;
diff --git a/docker-compose.yml b/docker-compose.yml
index 30c5a4186..b068c6aff 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,3 +1,4 @@
+# Not currently functional due to restructuring of project
version: "3"
services:
client:
diff --git a/package.json b/package.json
index 9f21a7588..7327acb36 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,6 @@
"private": true,
"workspaces": [
"server",
- "client",
"apps/*",
"packages/*"
],
@@ -17,26 +16,23 @@
"build:tsc": "yarn build:tsc:packages && yarn build:tsc:server",
"build:tsc:packages": "cd packages/validations && yarn build",
"build:tsc:server": "cd server && yarn build",
- "install:all": "yarn install:packages && yarn install:client && yarn install:server",
- "install:client": "cd client && yarn",
- "install:server": "cd server && yarn",
- "install:packages": "cd packages/validations && yarn",
- "setup": "yarn && yarn setup:client && yarn setup:server",
- "setup:client": "cd client && yarn setup",
+ "setup": "yarn && yarn setup:expo && yarn setup:server",
+ "setup:expo": "cd apps/expo && yarn setup",
"setup:server": "cd server && yarn setup",
- "expo:export": "cd client && cp app.example.json app.json && npx expo export --platform web",
- "start": "cd server && yarn start:ts-node",
+ "expo:export": "cd apps/expo && cp app.example.json app.json && npx expo export --platform web",
+ "start": "node scripts/start.js",
"start:prod": "cd server && yarn start:prod",
"start:prod:ts-node": "cd server && yarn start:ts-node",
- "dev:client": "cd client && yarn start",
+ "dev:expo": "cd apps/expo && yarn start",
+ "dev:next": "cd apps/next && yarn dev",
"dev:server": "cd server && yarn start",
"test": "yarn test:all",
- "test:all": "yarn test:client && yarn test:server",
- "test:client": "cd client && yarn test",
+ "test:all": "yarn test:expo && yarn test:server",
+ "test:expo": "cd apps/expo && yarn test",
"test:server": "cd server && yarn test",
"lint": "yarn lint:all",
- "lint:all": "yarn lint:client && yarn lint:server",
- "lint:client": "cd client && yarn lint",
+ "lint:all": "yarn lint:expo && yarn lint:server",
+ "lint:expo": "cd apps/expo && yarn lint",
"lint:server": "cd server && yarn lint",
"format": "yarn format:all",
"format:all": "prettier --write \"**/*.{js,jsx,ts,tsx}\"",
@@ -49,10 +45,10 @@
"upgrade:tamagui": "yarn up '*tamagui*'@latest '@tamagui/*'@latest",
"upgrade:tamagui:canary": "yarn up '*tamagui*'@canary '@tamagui/*'@canary",
"check-deps": "check-dependency-version-consistency .",
- "copy:env:client": "cp .env client/.env",
+ "copy:env:expo": "cp .env apps/expo/.env",
"copy:env:server": "cp .env server/.env",
"copy:env:packages": "cp .env packages/.env",
- "copy:env:all": "yarn copy:env:client && yarn copy:env:server && yarn copy:env:packages",
+ "copy:env:all": "yarn copy:env:expo && yarn copy:env:server && yarn copy:env:packages",
"regen": "yarn install --refresh-lockfile"
},
"engines": {
@@ -65,6 +61,8 @@
"check-dependency-version-consistency": "^4.1.0",
"cross-env": "^7.0.3",
"dotenv-cli": "^7.3.0",
+ "enquirer": "^2.4.1",
+ "eslint": "^8.47.0",
"husky": "^8.0.0",
"lint-staged": "^14.0.1",
"typescript": "^5.2.2"
diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js
new file mode 100644
index 000000000..e56de141e
--- /dev/null
+++ b/packages/app/.eslintrc.js
@@ -0,0 +1,81 @@
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true,
+ },
+ extends: [
+ 'standard-with-typescript',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:@tanstack/eslint-plugin-query/recommended',
+ 'prettier',
+ ],
+ overrides: [
+ {
+ env: {
+ node: true,
+ },
+ files: ['.eslintrc.{js,cjs,jsx,ts,tsx}'],
+ parserOptions: {
+ sourceType: 'script',
+ },
+ },
+ ],
+ ignorePatterns: [
+ '.eslintrc.js',
+ '**/node_modules/**',
+ '**/dist/**',
+ '**/coverage/**',
+ '**/build/**',
+ '**/android/**',
+ '**/ios/**',
+ '**/web/**',
+ '**/config/**',
+ '**/constants/**',
+ '**/types/**',
+ '**/public/**',
+ 'babel.config.js',
+ 'metro.config.js',
+ ],
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ project: './tsconfig.json',
+ },
+ plugins: ['react', 'react-native', '@typescript-eslint', 'prettier'],
+ rules: {
+ 'prettier/prettier': 'error',
+ '@typescript-eslint/explicit-function-return-type': 'off',
+ '@typescript-eslint/prefer-nullish-coalescing': 'off',
+ '@typescript-eslint/strict-boolean-expressions': 'off',
+ '@typescript-eslint/no-explicit-any': 'off',
+ 'react-native/no-inline-styles': 'off',
+ '@typescript-eslint/no-unused-vars': 'off',
+ '@typescript-eslint/restrict-template-expressions': 'off',
+ eqeqeq: 'off',
+ '@typescript-eslint/naming-convention': 'off',
+ 'no-unreachable': 'off',
+ '@typescript-eslint/no-var-requires': 'off',
+ '@typescript-eslint/no-confusing-void-expression': 'off',
+ '@typescript-eslint/no-floating-promises': 'off',
+ '@typescript-eslint/no-misused-promises': 'off',
+ 'import/no-duplicates': 'off',
+ 'multiline-ternary': 'off',
+ 'no-dupe-keys': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+ 'array-callback-return': 'off',
+ '@typescript-eslint/array-callback-return': 'off',
+ 'no-empty': 'off',
+ 'operator-linebreak': 'off',
+ '@typescript-eslint/await-thenable': 'off',
+ '@typescript-eslint/prefer-optional-chain': 'off',
+ '@typescript-eslint/return-await': 'off',
+ },
+ settings: {
+ react: {
+ version: 'detect',
+ },
+ },
+};
diff --git a/client/api/fetcher.ts b/packages/app/api/fetcher.ts
similarity index 100%
rename from client/api/fetcher.ts
rename to packages/app/api/fetcher.ts
diff --git a/client/api/getGeoCode.ts b/packages/app/api/getGeoCode.ts
similarity index 100%
rename from client/api/getGeoCode.ts
rename to packages/app/api/getGeoCode.ts
diff --git a/client/api/getParks.ts b/packages/app/api/getParks.ts
similarity index 98%
rename from client/api/getParks.ts
rename to packages/app/api/getParks.ts
index b1148e78d..7d7493425 100644
--- a/client/api/getParks.ts
+++ b/packages/app/api/getParks.ts
@@ -1,6 +1,6 @@
import { api } from '../constants/api';
import abbrRegion from '../constants/convertStateToAbbr';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import osmtogeojson from 'osmtogeojson';
/**
diff --git a/client/api/getPhotonResults.ts b/packages/app/api/getPhotonResults.ts
similarity index 96%
rename from client/api/getPhotonResults.ts
rename to packages/app/api/getPhotonResults.ts
index dd263793a..b73a75287 100644
--- a/client/api/getPhotonResults.ts
+++ b/packages/app/api/getPhotonResults.ts
@@ -1,4 +1,4 @@
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
/**
* Retrieves photon results based on the provided address array.
diff --git a/client/api/getTrails.ts b/packages/app/api/getTrails.ts
similarity index 98%
rename from client/api/getTrails.ts
rename to packages/app/api/getTrails.ts
index 8386f3797..ae4785269 100644
--- a/client/api/getTrails.ts
+++ b/packages/app/api/getTrails.ts
@@ -1,5 +1,5 @@
import { X_RAPIDAPI_KEY } from '@env';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import osmtogeojson from 'osmtogeojson';
/**
diff --git a/client/api/getTrailsResult.ts b/packages/app/api/getTrailsResult.ts
similarity index 95%
rename from client/api/getTrailsResult.ts
rename to packages/app/api/getTrailsResult.ts
index 219e8548a..0abaed6fe 100644
--- a/client/api/getTrailsResult.ts
+++ b/packages/app/api/getTrailsResult.ts
@@ -1,5 +1,5 @@
import { GEOAPIFY_KEY } from '@env';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
/**
* Retrieves the trails result based on the given address array.
diff --git a/client/api/getWeather.ts b/packages/app/api/getWeather.ts
similarity index 100%
rename from client/api/getWeather.ts
rename to packages/app/api/getWeather.ts
diff --git a/client/api/getWeatherWeek.ts b/packages/app/api/getWeatherWeek.ts
similarity index 100%
rename from client/api/getWeatherWeek.ts
rename to packages/app/api/getWeatherWeek.ts
diff --git a/packages/app/assets/adaptive-icon.png b/packages/app/assets/adaptive-icon.png
new file mode 100644
index 000000000..03d6f6b6c
Binary files /dev/null and b/packages/app/assets/adaptive-icon.png differ
diff --git a/packages/app/assets/background-image.png b/packages/app/assets/background-image.png
new file mode 100644
index 000000000..97a4d65af
Binary files /dev/null and b/packages/app/assets/background-image.png differ
diff --git a/packages/app/assets/download.svg b/packages/app/assets/download.svg
new file mode 100644
index 000000000..a88b67b51
--- /dev/null
+++ b/packages/app/assets/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/app/assets/favicon.png b/packages/app/assets/favicon.png
new file mode 100644
index 000000000..e75f697b1
Binary files /dev/null and b/packages/app/assets/favicon.png differ
diff --git a/packages/app/assets/icon.png b/packages/app/assets/icon.png
new file mode 100644
index 000000000..a0b1526fc
Binary files /dev/null and b/packages/app/assets/icon.png differ
diff --git a/packages/app/assets/images.png b/packages/app/assets/images.png
new file mode 100644
index 000000000..820ac3f65
Binary files /dev/null and b/packages/app/assets/images.png differ
diff --git a/packages/app/assets/packrat-app-icon.png b/packages/app/assets/packrat-app-icon.png
new file mode 100644
index 000000000..d32d4717b
Binary files /dev/null and b/packages/app/assets/packrat-app-icon.png differ
diff --git a/packages/app/assets/packrat-icon-svg.svg b/packages/app/assets/packrat-icon-svg.svg
new file mode 100644
index 000000000..5e48b02ec
--- /dev/null
+++ b/packages/app/assets/packrat-icon-svg.svg
@@ -0,0 +1,100 @@
+
+
+
+
diff --git a/packages/app/assets/packrat-svg.svg b/packages/app/assets/packrat-svg.svg
new file mode 100644
index 000000000..893fea18a
--- /dev/null
+++ b/packages/app/assets/packrat-svg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/app/assets/packrat.png b/packages/app/assets/packrat.png
new file mode 100644
index 000000000..e5a02f45b
Binary files /dev/null and b/packages/app/assets/packrat.png differ
diff --git a/packages/app/assets/packrat_icon.png b/packages/app/assets/packrat_icon.png
new file mode 100644
index 000000000..ed957154e
Binary files /dev/null and b/packages/app/assets/packrat_icon.png differ
diff --git a/packages/app/assets/splash.png b/packages/app/assets/splash.png
new file mode 100644
index 000000000..0e89705a9
Binary files /dev/null and b/packages/app/assets/splash.png differ
diff --git a/packages/app/assets/topographical-pattern.jpg b/packages/app/assets/topographical-pattern.jpg
new file mode 100644
index 000000000..8a1d6f3b0
Binary files /dev/null and b/packages/app/assets/topographical-pattern.jpg differ
diff --git a/packages/app/assets/topographical-pattern.png b/packages/app/assets/topographical-pattern.png
new file mode 100644
index 000000000..ea264d783
Binary files /dev/null and b/packages/app/assets/topographical-pattern.png differ
diff --git a/client/auth/AuthStateListener.tsx b/packages/app/auth/AuthStateListener.tsx
similarity index 100%
rename from client/auth/AuthStateListener.tsx
rename to packages/app/auth/AuthStateListener.tsx
diff --git a/client/auth/provider.tsx b/packages/app/auth/provider.tsx
similarity index 100%
rename from client/auth/provider.tsx
rename to packages/app/auth/provider.tsx
diff --git a/client/components/Avatar.tsx b/packages/app/components/Avatar/Avatar.tsx
similarity index 82%
rename from client/components/Avatar.tsx
rename to packages/app/components/Avatar/Avatar.tsx
index 763dc285e..10a1aa0f5 100644
--- a/client/components/Avatar.tsx
+++ b/packages/app/components/Avatar/Avatar.tsx
@@ -1,13 +1,10 @@
import { RImage } from '@packrat/ui';
import { MaterialCommunityIcons } from '@expo/vector-icons';
-
-export default function Avatar({
- src,
- size = 100,
-}: {
- src: string;
+export interface AvatarProps {
+ src?: string;
size?: number;
-}) {
+}
+export default function Avatar({ src, size = 100 }: AvatarProps) {
const style = {
width: size,
height: size,
diff --git a/packages/app/components/DialogDemo/DialogDemo.tsx b/packages/app/components/DialogDemo/DialogDemo.tsx
new file mode 100644
index 000000000..bcf97a510
--- /dev/null
+++ b/packages/app/components/DialogDemo/DialogDemo.tsx
@@ -0,0 +1,67 @@
+import { MaterialCommunityIcons } from '@expo/vector-icons';
+import {
+ Button,
+ Dialog,
+ Fieldset,
+ Input,
+ Label,
+ Paragraph,
+ TooltipSimple,
+ Unspaced,
+ XStack,
+ YStack,
+} from 'tamagui';
+
+import { BaseDialog } from '@packrat/ui';
+import { SelectDemoItem } from '../select';
+
+export const DialogDemo = () => {
+ return (
+
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ }
+ />
+
+
+ >
+
+ );
+};
diff --git a/packages/app/components/DialogDemo/index.ts b/packages/app/components/DialogDemo/index.ts
new file mode 100644
index 000000000..0a5ded1f4
--- /dev/null
+++ b/packages/app/components/DialogDemo/index.ts
@@ -0,0 +1 @@
+export { DialogDemo } from './DialogDemo';
diff --git a/client/components/Dropdown.tsx b/packages/app/components/Dropdown.tsx
similarity index 100%
rename from client/components/Dropdown.tsx
rename to packages/app/components/Dropdown.tsx
diff --git a/client/components/DuplicateIcon/index.tsx b/packages/app/components/DuplicateIcon/index.tsx
similarity index 100%
rename from client/components/DuplicateIcon/index.tsx
rename to packages/app/components/DuplicateIcon/index.tsx
diff --git a/client/components/EditableText/index.tsx b/packages/app/components/EditableText/index.tsx
similarity index 96%
rename from client/components/EditableText/index.tsx
rename to packages/app/components/EditableText/index.tsx
index e20ae8677..16ab98e87 100644
--- a/client/components/EditableText/index.tsx
+++ b/packages/app/components/EditableText/index.tsx
@@ -4,7 +4,7 @@ import { TextInput } from 'react-native';
import { useDispatch } from 'react-redux';
import { updatePack } from '../../store/packsStore';
// import { editTrip } from '../../store/tripsStore';
-import { useEditTrips } from '~/hooks/trips';
+import { useEditTrips } from 'app/hooks/trips';
import LoadingPlaceholder from '../loading-placeholder';
export const EditableInput = ({
@@ -28,7 +28,7 @@ export const EditableInput = ({
{loading && }
{
const { currentTheme } = useTheme();
@@ -10,11 +10,11 @@ export const GearList = () => {
{
style={{
color: currentTheme.colors.textPrimary,
fontSize: currentTheme.font.size,
- paddingVertical: 12,
+ paddingTop: 12,
+ paddingBottom: 12,
fontWeight: 600,
}}
fontFamily="$body"
diff --git a/client/components/InputText/InputTextRules.ts b/packages/app/components/InputText/InputTextRules.ts
similarity index 96%
rename from client/components/InputText/InputTextRules.ts
rename to packages/app/components/InputText/InputTextRules.ts
index 1be736bed..357de315e 100644
--- a/client/components/InputText/InputTextRules.ts
+++ b/packages/app/components/InputText/InputTextRules.ts
@@ -1,5 +1,5 @@
import { type UseControllerProps } from 'react-hook-form';
-import { Regex } from '~/utils/regex';
+import { Regex } from 'app/utils/regex';
type ruleProps = UseControllerProps['rules'];
diff --git a/client/components/InputText/component.tsx b/packages/app/components/InputText/component.tsx
similarity index 100%
rename from client/components/InputText/component.tsx
rename to packages/app/components/InputText/component.tsx
diff --git a/client/components/InputText/index.ts b/packages/app/components/InputText/index.ts
similarity index 100%
rename from client/components/InputText/index.ts
rename to packages/app/components/InputText/index.ts
diff --git a/client/components/InputText/props.ts b/packages/app/components/InputText/props.ts
similarity index 100%
rename from client/components/InputText/props.ts
rename to packages/app/components/InputText/props.ts
diff --git a/client/components/ItemRow.tsx b/packages/app/components/ItemRow/ItemRow.tsx
similarity index 86%
rename from client/components/ItemRow.tsx
rename to packages/app/components/ItemRow/ItemRow.tsx
index 9e284e524..14843eead 100644
--- a/client/components/ItemRow.tsx
+++ b/packages/app/components/ItemRow/ItemRow.tsx
@@ -1,20 +1,19 @@
import { Box, Container, Text } from 'native-base';
import Checkbox from 'expo-checkbox';
-
-import { useState } from 'react';
-
import { FontAwesome } from '@expo/vector-icons';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useItemRow } from 'app/hooks/itemrow';
export const ItemRow = ({ packName }) => {
- const [isChecked, setChecked] = useState(false);
+ const { isChecked, handleChange } = useItemRow();
const styles = useCustomStyles(loadStyles);
+
return (
{
flexDirection: 'row',
marginTop: 20,
justifyContent: 'center',
- gap: '8px',
+ gap: 8,
}}
>
diff --git a/packages/app/components/MultistepForm/MultistepForm.tsx b/packages/app/components/MultistepForm/MultistepForm.tsx
new file mode 100644
index 000000000..711cf95ad
--- /dev/null
+++ b/packages/app/components/MultistepForm/MultistepForm.tsx
@@ -0,0 +1,68 @@
+import React from 'react';
+import { View, Text, TouchableOpacity } from 'react-native';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useMultiStepForm } from './useMultiStepForm';
+import { ProgressBar } from './ProgressBar';
+import { Sidebar } from './Sidebar';
+
+// TODO move to packages, we need to inject styles in this component, need to think what is the best way to do it
+
+export const MultiStepForm = ({ steps = [] }) => {
+ const styles = useCustomStyles(loadStyles);
+ const {
+ currentStep,
+ currentStepData,
+ sideBarData,
+ nextStep,
+ prevStep,
+ isLastStep,
+ isFirstStep,
+ } = useMultiStepForm(steps);
+
+ const { component: CurrentComponent, ...props } = currentStepData;
+
+ if (!steps.length) return null;
+
+ return (
+
+
+
+ {CurrentComponent && }
+
+
+ Previous
+
+
+ Next
+
+
+
+ );
+};
+
+const loadStyles = (theme) => {
+ const { currentTheme } = theme;
+
+ return {
+ container: {
+ height: 800,
+ backgroundColor: currentTheme.colors.white,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ buttonContainer: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ margin: 20,
+ width: '60%',
+ },
+ button: {
+ padding: 15,
+ backgroundColor: currentTheme.colors.background,
+ color: currentTheme.colors.white,
+ borderRadius: 20,
+ width: 100,
+ textAlign: 'center',
+ },
+ };
+};
diff --git a/packages/app/components/MultistepForm/ProgressBar.tsx b/packages/app/components/MultistepForm/ProgressBar.tsx
new file mode 100644
index 000000000..028c1e830
--- /dev/null
+++ b/packages/app/components/MultistepForm/ProgressBar.tsx
@@ -0,0 +1,46 @@
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { Svg, Line, Circle } from 'react-native-svg';
+import { View } from 'react-native';
+
+export const ProgressBar = ({ steps, currentStep }) => {
+ const percentage = ((currentStep + 1) / steps.length) * 100;
+ const styles = useCustomStyles(loadStyles);
+
+ return (
+
+
+
+ );
+};
+
+const loadStyles = () => {
+ return {
+ progressBar: {
+ width: '100%',
+ marginBottom: 20,
+ },
+ svg: {
+ width: '100%',
+ height: 50,
+ },
+ };
+};
diff --git a/packages/app/components/MultistepForm/Sidebar.tsx b/packages/app/components/MultistepForm/Sidebar.tsx
new file mode 100644
index 000000000..8f27a0016
--- /dev/null
+++ b/packages/app/components/MultistepForm/Sidebar.tsx
@@ -0,0 +1,39 @@
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { View, Text } from 'react-native';
+
+// /TODO: Review this logic.
+export const Sidebar = ({ data, currentStep }) => {
+ const displayData = Object.values(data).slice(0, currentStep + 1);
+ const styles = useCustomStyles(loadStyles);
+
+ if (displayData.length === 0) return null;
+
+ return (
+
+ {/* Display your data here */}
+ {displayData.map((currentData, index) => {
+ if (!currentData) return null;
+ const { title, subtext } = currentData;
+
+ return (
+
+ {title && {title}}
+ {subtext && {subtext}}
+
+ );
+ })}
+
+ );
+};
+
+const loadStyles = (theme) => {
+ const { currentTheme } = theme;
+
+ return {
+ sidebar: {
+ width: '20%',
+ padding: 10,
+ backgroundColor: currentTheme.colors.white,
+ },
+ };
+};
diff --git a/packages/app/components/MultistepForm/index.ts b/packages/app/components/MultistepForm/index.ts
new file mode 100644
index 000000000..3ef4ad68c
--- /dev/null
+++ b/packages/app/components/MultistepForm/index.ts
@@ -0,0 +1 @@
+export { MultiStepForm } from './MultistepForm';
diff --git a/packages/app/components/MultistepForm/useMultiStepForm.ts b/packages/app/components/MultistepForm/useMultiStepForm.ts
new file mode 100644
index 000000000..39ca4bbcf
--- /dev/null
+++ b/packages/app/components/MultistepForm/useMultiStepForm.ts
@@ -0,0 +1,27 @@
+import { useState } from 'react';
+
+export const useMultiStepForm = (steps = []) => {
+ const [currentStep, setCurrentStep] = useState(0);
+
+ const nextStep = () => {
+ if (currentStep < steps.length - 1) {
+ setCurrentStep(currentStep + 1);
+ }
+ };
+
+ const prevStep = () => {
+ if (currentStep > 0) {
+ setCurrentStep(currentStep - 1);
+ }
+ };
+
+ return {
+ currentStep,
+ currentStepData: steps[currentStep] || {},
+ sideBarData: steps?.[currentStep]?.sidebarData || {},
+ nextStep,
+ prevStep,
+ isLastStep: currentStep === steps.length - 1,
+ isFirstStep: currentStep === 0,
+ };
+};
diff --git a/client/components/PackOptions/index.tsx b/packages/app/components/PackOptions/index.tsx
similarity index 50%
rename from client/components/PackOptions/index.tsx
rename to packages/app/components/PackOptions/index.tsx
index 36dbd0448..15ea1d0a2 100644
--- a/client/components/PackOptions/index.tsx
+++ b/packages/app/components/PackOptions/index.tsx
@@ -2,39 +2,14 @@ import { useState } from 'react';
import { View } from 'react-native';
import { useDispatch } from 'react-redux';
import { useRouter } from 'expo-router';
-import { CustomModal } from '../modal';
-import { RStack, RIconButton } from '@packrat/ui';
+import { RStack, RIconButton, BaseModal } from '@packrat/ui';
import { Entypo } from '@expo/vector-icons';
export const PackOptions = ({ Edit, Delete, Ignore }) => {
const dispatch = useDispatch();
const router = useRouter();
- const [isMenuOpen, setIsMenuOpen] = useState(false);
return (
-
-
- }
- onPress={() => {
- setIsMenuOpen(true);
- }}
- />
-
- }
- >
+ }>
{Edit} Edit{' '}
@@ -50,7 +25,28 @@ export const PackOptions = ({ Edit, Delete, Ignore }) => {
>
{Ignore}{' '}
-
+
+
+ );
+};
+
+const MenuTriggerComponent = ({ setIsModalOpen }) => {
+ return (
+
+ }
+ onPress={() => {
+ setIsModalOpen(true);
+ }}
+ />
);
};
diff --git a/client/components/ScoreContainer.tsx b/packages/app/components/ScoreContainer.tsx
similarity index 71%
rename from client/components/ScoreContainer.tsx
rename to packages/app/components/ScoreContainer.tsx
index be915d58f..7086f373f 100644
--- a/client/components/ScoreContainer.tsx
+++ b/packages/app/components/ScoreContainer.tsx
@@ -6,16 +6,18 @@ import useTheme from '../hooks/useTheme';
import { useDispatch } from 'react-redux';
import { scorePack } from '../store/packsStore';
import { Svg, Circle, Path, G, Text as SvgText } from 'react-native-svg';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useGradingPie, useScoreData, useScoreProgress } from 'app/hooks/score';
const ScoreProgressChart = ({ score, size = 150, strokeWidth = 10 }) => {
if (!score) return null;
const styles = useCustomStyles(loadStyles);
- const radius = (size - strokeWidth) / 2;
- const circumference = 2 * Math.PI * radius;
- const progress = score / 100;
- const progressPath = progress * circumference;
+ const { radius, circumference, progressPath } = useScoreProgress(
+ score,
+ size,
+ strokeWidth,
+ );
return (
@@ -56,36 +58,20 @@ const ScoreProgressChart = ({ score, size = 150, strokeWidth = 10 }) => {
const GradingPieChart = ({ scores, size = 150, strokeWidth = 10 }) => {
if (!scores) return null;
- const { weightScore, essentialItemsScore, redundancyAndVersatilityScore } =
- scores;
const styles = useCustomStyles(loadStyles);
// pie chart with 3 sections to represent the 3 grades
// each section is a circle with a different color
-
- const radius = 70;
- const circleCircumference = 2 * Math.PI * radius;
-
- const total =
- weightScore + essentialItemsScore + redundancyAndVersatilityScore;
-
- const weightPercentage = (weightScore / total) * 100;
- const essentialItemsPercentage = (essentialItemsScore / total) * 100;
- const redundancyAndVersatilityPercentage =
- (redundancyAndVersatilityScore / total) * 100;
-
- const weightStrokeDashoffset =
- circleCircumference - (circleCircumference * weightPercentage) / 100;
- const essentialItemsStrokeDashoffset =
- circleCircumference -
- (circleCircumference * essentialItemsPercentage) / 100;
- const redundancyAndVersatilityStrokeDashoffset =
- circleCircumference -
- (circleCircumference * redundancyAndVersatilityPercentage) / 100;
-
- const essentialItemsAngle = (weightScore / total) * 360;
- const redundancyAndVersatilityAngle =
- essentialItemsAngle + (essentialItemsScore / total) * 360;
+ const {
+ radius,
+ circleCircumference,
+ total,
+ weightStrokeDashoffset,
+ essentialItemsStrokeDashoffset,
+ redundancyAndVersatilityStrokeDashoffset,
+ essentialItemsAngle,
+ redundancyAndVersatilityAngle,
+ } = useGradingPie(scores);
return (
@@ -160,31 +146,16 @@ export default function ScoreContainer({ type, data, isOwner }) {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
useTheme();
const styles = useCustomStyles(loadStyles);
- const id = data._id;
- const totalScore = data.totalScore;
- const grades = data.grades;
- const scores = data.scores;
-
- const isAlreadyScored = totalScore !== null;
-
- const textData = {
- pack: {
- title: isAlreadyScored ? 'Pack Score' : 'Score this pack!',
- subheader: 'See how this pack matches up with our scoring system!',
- description:
- 'PackRating is our proprietary scoring system that rates packs based on their weight, essential items, and redundancy and versatility. We worked with experts to create a system that is as objective as possible. The higher the score, the better the pack!',
- },
- trip: {
- title: isAlreadyScored ? 'Trip Score' : 'Score this trip!',
- subheader: 'See how this trip matches up with our scoring system!',
- description:
- 'PackRating is our proprietary scoring system that rates trips based on their weight, essential items, and redundancy and versatility. We worked with experts to create a system that is as objective as possible. The higher the score, the better the trip!',
- },
- };
-
- const title = textData[type].title;
- const subheader = textData[type].subheader;
- const description = textData[type].description;
+ const {
+ id,
+ totalScore,
+ grades,
+ scores,
+ isAlreadyScored,
+ title,
+ subheader,
+ description,
+ } = useScoreData(type, data);
const handleScoreClick = () => {
if (type === 'pack') {
diff --git a/client/components/SearchInput.tsx b/packages/app/components/SearchInput.tsx
similarity index 85%
rename from client/components/SearchInput.tsx
rename to packages/app/components/SearchInput.tsx
index 18aeb7e25..d0f1adcb2 100644
--- a/client/components/SearchInput.tsx
+++ b/packages/app/components/SearchInput.tsx
@@ -1,10 +1,17 @@
import React from 'react';
import { Platform } from 'react-native';
import { MaterialIcons } from '@expo/vector-icons';
-import useSearchInput from '~/hooks/search/useSearchInput';
-import useTheme from '~/hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { RStack, RInput, RButton, RText, RScrollView } from '@packrat/ui';
+import useSearchInput from 'app/hooks/search/useSearchInput';
+import useTheme from 'app/hooks/useTheme';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import {
+ RStack,
+ RInput,
+ RButton,
+ RText,
+ RScrollView,
+ RIconButton,
+} from '@packrat/ui';
import { View, Pressable } from 'react-native';
export const SearchInput = ({ onSelect, placeholder }) => {
@@ -35,8 +42,8 @@ export const SearchInput = ({ onSelect, placeholder }) => {
>
{
@@ -53,7 +60,7 @@ export const SearchInput = ({ onSelect, placeholder }) => {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
- width: '40px',
+ width: 40,
fontSize: 20,
}}
/>
@@ -88,10 +95,7 @@ export const SearchInput = ({ onSelect, placeholder }) => {
showsVerticalScrollIndicator={false}
zIndex={20000}
>
-
+
{data.map((result, i) => (
{
{result.properties.name}
{result.properties.osm_value}
@@ -132,14 +134,12 @@ export const SearchInput = ({ onSelect, placeholder }) => {
setSearchString(text);
}}
placeholder="Search"
- style={{
- width: '100%',
- borderRadius: '4',
- padding: '16px 8px',
- backgroundColor: 'white',
- }}
value={searchString}
fontSize={14}
+ width={'100%'}
+ borderRadius={4}
+ paddingVertical={16}
+ backgroundColor="white"
/>
({
container: {
marginTop: 20,
marginBottom: 15,
- maxWidth: '400px',
+ maxWidth: 400,
},
});
diff --git a/client/components/SummaryCard.tsx b/packages/app/components/SummaryCard.tsx
similarity index 63%
rename from client/components/SummaryCard.tsx
rename to packages/app/components/SummaryCard.tsx
index 0340608e5..99e0903b2 100644
--- a/client/components/SummaryCard.tsx
+++ b/packages/app/components/SummaryCard.tsx
@@ -1,40 +1,28 @@
-import { Box } from 'native-base';
-import { Text } from 'react-native';
-import { ItemRow } from './ItemRow';
-import { theme } from '../theme';
+import React from 'react';
+import { View, Text, StyleSheet } from 'react-native';
import { FontAwesome } from '@expo/vector-icons';
import useTheme from '../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-
-const dummyData = [
- 'First-aid kit',
- 'Water bottles',
- 'Tent',
- 'Sleeping bags (2x)',
-];
+import useSummaryCardLogic from 'app/hooks/card/useSummaryCardLogic';
+import useCustomStyles from '../hooks/useCustomStyles';
+import { ItemRow } from './ItemRow/ItemRow';
export default function SummaryCard() {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
useTheme();
+ const { dummyData, handleDelete, handleEdit } = useSummaryCardLogic();
const styles = useCustomStyles(loadStyles);
- const handleDelete = () => {};
- const handleEdit = () => {};
-
return (
-
-
+
Image here
-
-
+
+
{dummyData.map((data, id) => (
))}
@@ -44,8 +32,8 @@ export default function SummaryCard() {
size={24}
color={currentTheme.colors.cardIconColor}
/>
-
-
+
+
);
}
diff --git a/client/components/ThreeDotsMenu/index.tsx b/packages/app/components/ThreeDotsMenu/index.tsx
similarity index 98%
rename from client/components/ThreeDotsMenu/index.tsx
rename to packages/app/components/ThreeDotsMenu/index.tsx
index 7ff3d857e..8f6466f8d 100644
--- a/client/components/ThreeDotsMenu/index.tsx
+++ b/packages/app/components/ThreeDotsMenu/index.tsx
@@ -6,7 +6,7 @@ import { deleteTrip } from '../../store/tripsStore';
import { MoreHorizontal } from '@tamagui/lucide-icons';
import { Adapt, Button, Popover, YStack } from 'tamagui';
-import { useDeleteTrips } from '~/hooks/trips';
+import { useDeleteTrips } from 'app/hooks/trips';
// import { deleteTrip } from '../../store/tripsStore';
export function ThreeDotsMenu({ data, titleRef, setEditTitle }) {
const dispatch = useDispatch();
diff --git a/client/components/TripCard.tsx b/packages/app/components/TripCard.tsx
similarity index 76%
rename from client/components/TripCard.tsx
rename to packages/app/components/TripCard.tsx
index 5cc82a638..6940e321c 100644
--- a/client/components/TripCard.tsx
+++ b/packages/app/components/TripCard.tsx
@@ -1,16 +1,13 @@
+import { RCard, RParagraph, RStack, RText } from '@packrat/ui';
import { Platform } from 'react-native';
-import { RStack, RText, RCard, RParagraph } from '@packrat/ui';
-import { SearchInput } from './SearchInput';
-import { theme } from '../theme/index';
-import { useSelector, useDispatch } from 'react-redux';
-import { addTrail, addPark } from '../store/dropdownStore';
-import MapContainer from './map/MapContainer';
-import { convertPhotonGeoJsonToShape } from '../utils/mapFunctions';
-import { selectAllTrails } from '../store/trailsStore';
+import { Text } from 'tamagui';
+import { useCardTrip } from 'app/hooks/trips/useTripCard';
+import useCustomStyles from 'app/hooks/useCustomStyles';
import useTheme from '../hooks/useTheme';
+import { theme } from '../theme/index';
+import { SearchInput } from './SearchInput';
import Carousel from './carousel';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { Text } from 'tamagui';
+import MapContainer from './map/MapContainer';
export default function TripCard({
title,
@@ -23,36 +20,24 @@ export default function TripCard({
isPark,
isLoading,
}) {
- const dispatch = useDispatch();
const { isDark, currentTheme } = useTheme();
const styles = useCustomStyles(loadStyles);
-
- const currentTrail = useSelector((state) => state.dropdown.currentTrail);
- const currentPark = useSelector((state) => state.dropdown.currentPark);
- const trailsDetails = useSelector(selectAllTrails); // updated selector for new trails slice
- const currentShape = trailsDetails.filter(
- (trail) => trail.properties.name == currentTrail,
- );
+ const { currentTrail, currentPark, currentShape, addTrailFn } = useCardTrip();
const handleValueChange = (value) => {
- // Assuming that you have a redux action to set the current trail and park
- if (isTrail) {
- dispatch(addTrail(value));
- } else if (isPark) {
- dispatch(addPark(value));
- }
+ addTrailFn(isTrail, isPark, value);
};
return (
{
flex: 1,
paddingHorizontal: 60,
paddingVertical: 70,
- height: Platform.OS === 'web' ? '450px' : '100%',
+ height: Platform.OS === 'web' ? 450 : '100%',
alignSelf: 'center',
},
mapCard: {
@@ -172,7 +157,7 @@ const loadStyles = (theme) => {
padding: currentTheme.size.cardPadding,
paddingHorizontal: currentTheme.padding.paddingInside,
marginBottom: 20,
- height: Platform.OS === 'web' ? '650px' : '100%',
+ height: Platform.OS === 'web' ? 650 : '100%',
overflow: 'hidden',
alignSelf: 'center',
},
diff --git a/client/components/card/LargeCard.tsx b/packages/app/components/card/LargeCard.tsx
similarity index 95%
rename from client/components/card/LargeCard.tsx
rename to packages/app/components/card/LargeCard.tsx
index d5cd82c95..7ed6e61f7 100644
--- a/client/components/card/LargeCard.tsx
+++ b/packages/app/components/card/LargeCard.tsx
@@ -4,7 +4,7 @@ import { RText, RStack } from '@packrat/ui';
import { useSelector } from 'react-redux';
import useTheme from '../../hooks/useTheme';
import { theme } from '../../theme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
/**
* Retrieves the appropriate container style based on the provided type.
@@ -77,7 +77,7 @@ export default function LargeCard({
style={{
color: currentTheme.colors.textPrimary,
fontSize: currentTheme.font.size,
- fontWeight: 600,
+ fontWeight: '600',
}}
>
{title && {title}}
@@ -120,7 +120,7 @@ const loadStyles = (theme) => {
flex: 1,
paddingHorizontal: 60,
paddingVertical: 70,
- height: Platform.OS === 'web' ? '450px' : '100%',
+ height: Platform.OS === 'web' ? 450 : '100%',
},
mapCard: {
backgroundColor: currentTheme.colors.card,
@@ -130,7 +130,7 @@ const loadStyles = (theme) => {
padding: currentTheme.size.cardPadding,
paddingHorizontal: currentTheme.padding.paddingInside,
marginBottom: 20,
- height: Platform.OS === 'web' ? '650px' : '100%',
+ height: Platform.OS === 'web' ? 650 : '100%',
overflow: 'hidden',
},
};
diff --git a/client/components/card/index.tsx b/packages/app/components/card/index.tsx
similarity index 90%
rename from client/components/card/index.tsx
rename to packages/app/components/card/index.tsx
index 132abf991..ad421a4ba 100644
--- a/client/components/card/index.tsx
+++ b/packages/app/components/card/index.tsx
@@ -23,7 +23,7 @@ import { ThreeDotsMenu } from '../ThreeDotsMenu';
import useTheme from '../../hooks/useTheme';
import { SearchItem } from '../item/searchItem';
import Loader from '../Loader';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export const CustomCard = ({
title,
@@ -78,15 +78,15 @@ export const CustomCard = ({
-
+
-
+
{user._id === data.owner_id
@@ -159,8 +159,8 @@ export const CustomCard = ({
style={{
alignItems: 'center',
justifyContent: 'center',
- paddingRight: '16px',
- paddingLeft: '16px',
+ paddingRight: 16,
+ paddingLeft: 16,
}}
>
@@ -170,14 +170,14 @@ export const CustomCard = ({
style={{
alignItems: 'center',
justifyContent: 'center',
- paddingRight: '16px',
- paddingLeft: '16px',
+ paddingRight: 16,
+ paddingLeft: 16,
}}
>
{content}
- {footer}
+ {footer}
{/*
*/}
@@ -190,15 +190,15 @@ export const CustomCard = ({
-
+
{title}
-
+
{user._id === data.owner_id
@@ -255,14 +255,14 @@ export const CustomCard = ({
style={{
alignItems: 'center',
justifyContent: 'center',
- paddingRight: '16px',
- paddingLeft: '16px',
+ paddingRight: 16,
+ paddingLeft: 16,
}}
>
{content}
- {footer}
+ {footer}
);
diff --git a/client/components/carousel/ScrollButton.tsx b/packages/app/components/carousel/ScrollButton.tsx
similarity index 93%
rename from client/components/carousel/ScrollButton.tsx
rename to packages/app/components/carousel/ScrollButton.tsx
index be6ebda63..6631ae5ba 100644
--- a/client/components/carousel/ScrollButton.tsx
+++ b/packages/app/components/carousel/ScrollButton.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const ScrollButton = ({ direction, onPress }) => {
const styles = useCustomStyles(loadStyles);
diff --git a/client/components/carousel/index.tsx b/packages/app/components/carousel/index.tsx
similarity index 97%
rename from client/components/carousel/index.tsx
rename to packages/app/components/carousel/index.tsx
index 3abdf215f..de898f3b1 100644
--- a/client/components/carousel/index.tsx
+++ b/packages/app/components/carousel/index.tsx
@@ -2,7 +2,7 @@ import React, { useRef, useState } from 'react';
import { ScrollView, Platform, Dimensions } from 'react-native';
import { RStack } from '@packrat/ui';
import ScrollButton from './ScrollButton';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const { height, width } = Dimensions.get('window');
diff --git a/client/components/chat/index.tsx b/packages/app/components/chat/index.tsx
similarity index 69%
rename from client/components/chat/index.tsx
rename to packages/app/components/chat/index.tsx
index c429e452f..59ee56d43 100644
--- a/client/components/chat/index.tsx
+++ b/packages/app/components/chat/index.tsx
@@ -1,15 +1,14 @@
-import React, { useEffect, useState } from 'react';
+import React, { useState } from 'react';
import {
View,
Text,
FlatList,
TextInput,
TouchableOpacity,
- ScrollView,
} from 'react-native';
import { useDispatch, useSelector } from 'react-redux';
import useTheme from '../../hooks/useTheme';
-import { RStack } from '@packrat/ui';
+import { BaseModal, RStack } from '@packrat/ui';
// import {
// getUserChats,
// getAIResponse,
@@ -17,9 +16,8 @@ import { RStack } from '@packrat/ui';
// selectAllConversations,
// } from '../../store/chatStore';
import { Box, VStack, HStack, Select } from 'native-base';
-import { CustomModal } from '../modal';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useGetUserChats, useGetAIResponse } from '~/hooks/chat';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useChat } from 'app/hooks/chat/useChat';
// import { Select } from "tamagui";
const MessageBubble = ({ message }) => {
@@ -48,63 +46,16 @@ const ChatSelector = ({ conversation, onSelect, isActive }) => {
};
const ChatComponent = ({ showChatSelector = true, defaultChatId = null }) => {
- const dispatch = useDispatch();
- const user = useSelector((state) => state.auth.user);
- const [conversationId, setConversationId] = useState(defaultChatId);
- // const conversation = useSelector((state) =>
- // selectConversationById(state, conversationId),
- // );
- // const conversations = useSelector((state) => selectAllConversations(state));
- const [userInput, setUserInput] = useState('');
- // const [parsedMessages, setParsedMessages] = useState([]);
const styles = useCustomStyles(loadStyles);
-
- const { data: chatsData, refetch } = useGetUserChats(user._id);
-
- const { getAIResponse } = useGetAIResponse();
-
- const conversations = chatsData?.conversations;
-
- /**
- * Parses a conversation history string and returns an array of objects representing each message in the conversation.
- *
- * @param {string} historyString - The string containing the conversation history.
- * @return {Array} An array of objects representing each message in the conversation.
- */
- const parseConversationHistory = (historyString) => {
- const historyArray = historyString.split('\n');
- return historyArray.reduce((accumulator, current) => {
- const isAI = current.startsWith('AI:');
- const content = isAI ? current.substring(3) : current;
- const role = isAI ? 'ai' : 'user';
- if (content) {
- accumulator.push({ role, content });
- }
- return accumulator;
- }, []);
- };
-
- const conversation = conversations?.find(
- (chat) => chat._id === conversationId,
- );
-
- // Compute parsedMessages directly
- const parsedMessages = conversation
- ? parseConversationHistory(conversation.history)
- : [];
-
- console.log('parsedMessages:', parsedMessages);
-
- /**
- * Handles sending a message.
- *
- * @return {Promise} This function returns nothing.
- */
- const handleSendMessage = async () => {
- await getAIResponse({ userId: user._id, conversationId, userInput });
- refetch();
- setUserInput('');
- };
+ const {
+ conversations,
+ conversationId,
+ parsedMessages,
+ userInput,
+ handleSendMessage,
+ setUserInput,
+ setConversationId,
+ } = useChat({ defaultChatId });
return (
@@ -179,23 +130,13 @@ const ChatComponent = ({ showChatSelector = true, defaultChatId = null }) => {
};
const ChatModalTrigger = () => {
- const [isOpen, setIsOpen] = useState(false);
- const handleClose = () => {
- setIsOpen(false);
- };
const styles = useCustomStyles(loadStyles);
return (
-
-
-
+
+
+
);
};
diff --git a/client/components/dashboard/FeedPreview.tsx b/packages/app/components/dashboard/FeedPreview.tsx
similarity index 77%
rename from client/components/dashboard/FeedPreview.tsx
rename to packages/app/components/dashboard/FeedPreview.tsx
index cf6a0e43b..7febb50ce 100644
--- a/client/components/dashboard/FeedPreview.tsx
+++ b/packages/app/components/dashboard/FeedPreview.tsx
@@ -6,8 +6,8 @@ import { Dimensions, View } from 'react-native';
import { getPublicPacks, getPublicTrips } from '../../store/feedStore';
import useTheme from '../../hooks/useTheme';
import Carousel from '../carousel';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useFeed } from '~/hooks/feed';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useFeed } from 'app/hooks/feed';
const { height, width } = Dimensions.get('window');
@@ -29,22 +29,19 @@ const FeedPreviewScroll = () => {
return linkStr ? (
-
- {item.name}
+
+
+ {item.name}
+
{item.type}
diff --git a/client/components/dashboard/HeroBanner.tsx b/packages/app/components/dashboard/HeroBanner.tsx
similarity index 98%
rename from client/components/dashboard/HeroBanner.tsx
rename to packages/app/components/dashboard/HeroBanner.tsx
index c472854ac..d00107ed6 100644
--- a/client/components/dashboard/HeroBanner.tsx
+++ b/packages/app/components/dashboard/HeroBanner.tsx
@@ -14,7 +14,7 @@ import {
setSelectedSearchResult,
} from '../../store/destinationStore';
import { hexToRGBA } from '../../utils/colorFunctions';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const HeroSection = ({ onSelect }) => {
const dispatch = useDispatch();
diff --git a/client/components/dashboard/QuickActionButton.tsx b/packages/app/components/dashboard/QuickActionButton.tsx
similarity index 95%
rename from client/components/dashboard/QuickActionButton.tsx
rename to packages/app/components/dashboard/QuickActionButton.tsx
index 35cd6d3e9..a88e41c1d 100644
--- a/client/components/dashboard/QuickActionButton.tsx
+++ b/packages/app/components/dashboard/QuickActionButton.tsx
@@ -4,7 +4,7 @@ import { MaterialIcons } from '@expo/vector-icons';
import React from 'react';
import { theme } from '../../theme';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const QuickActionButton = ({ onPress, iconName, text }) => {
const styles = useCustomStyles(loadStyles);
diff --git a/client/components/dashboard/QuickActionSection.tsx b/packages/app/components/dashboard/QuickActionSection.tsx
similarity index 90%
rename from client/components/dashboard/QuickActionSection.tsx
rename to packages/app/components/dashboard/QuickActionSection.tsx
index 9d03b86a3..5c11f1768 100644
--- a/client/components/dashboard/QuickActionSection.tsx
+++ b/packages/app/components/dashboard/QuickActionSection.tsx
@@ -1,7 +1,7 @@
import { RStack } from '@packrat/ui';
import QuickActionButton from './QuickActionButton';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useQuickActions } from '~/hooks/dashboard';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useQuickActions } from 'app/hooks/dashboard';
const QuickActionsSection = () => {
const styles = useCustomStyles(loadStyles);
diff --git a/client/components/dashboard/Section.tsx b/packages/app/components/dashboard/Section.tsx
similarity index 86%
rename from client/components/dashboard/Section.tsx
rename to packages/app/components/dashboard/Section.tsx
index a4fa8e9c4..d9a5f87fc 100644
--- a/client/components/dashboard/Section.tsx
+++ b/packages/app/components/dashboard/Section.tsx
@@ -3,13 +3,13 @@ import { RCard } from '@packrat/ui';
import React from 'react';
import { theme } from '../../theme';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const Section = ({ children, onPress }) => {
const styles = useCustomStyles(loadStyles);
return (
-
+
{children}
@@ -29,7 +29,7 @@ const loadStyles = (theme) => {
paddingHorizontal: 10,
paddingVertical: 20,
backgroundColor: currentTheme.colors.secondaryBlue,
- borderRadius: '8px',
+ borderRadius: 8,
},
};
};
diff --git a/client/components/dashboard/SectionHeader.tsx b/packages/app/components/dashboard/SectionHeader.tsx
similarity index 93%
rename from client/components/dashboard/SectionHeader.tsx
rename to packages/app/components/dashboard/SectionHeader.tsx
index 71d879394..0a3b825c4 100644
--- a/client/components/dashboard/SectionHeader.tsx
+++ b/packages/app/components/dashboard/SectionHeader.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import { RText, RStack } from '@packrat/ui';
import { Ionicons } from '@expo/vector-icons';
import { theme } from '../../theme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const SectionHeader = ({ iconName, text }) => {
const styles = useCustomStyles(loadStyles);
diff --git a/client/components/destination/index.tsx b/packages/app/components/destination/index.tsx
similarity index 96%
rename from client/components/destination/index.tsx
rename to packages/app/components/destination/index.tsx
index 4259c7b31..8c3e67c80 100644
--- a/client/components/destination/index.tsx
+++ b/packages/app/components/destination/index.tsx
@@ -23,9 +23,9 @@ import {
setWeatherWeek,
} from '../../store/destinationStore';
import { fetchWeather, fetchWeatherWeek } from '../../store/weatherStore';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useFetchWeather, useFetchWeatherWeak } from '~/hooks/weather';
-import { useGetDestination, useGetPhotonDetails } from '~/hooks/destination';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useFetchWeather, useFetchWeatherWeak } from 'app/hooks/weather';
+import { useGetDestination, useGetPhotonDetails } from 'app/hooks/destination';
import { WeatherData } from '../weather/WeatherData';
const DestinationHeader = ({ geoJSON, selectedSearchResult }) => {
diff --git a/client/components/details/header.tsx b/packages/app/components/details/header.tsx
similarity index 100%
rename from client/components/details/header.tsx
rename to packages/app/components/details/header.tsx
diff --git a/client/components/details/index.tsx b/packages/app/components/details/index.tsx
similarity index 100%
rename from client/components/details/index.tsx
rename to packages/app/components/details/index.tsx
diff --git a/client/components/feed/FeedCard.tsx b/packages/app/components/feed/FeedCard.tsx
similarity index 93%
rename from client/components/feed/FeedCard.tsx
rename to packages/app/components/feed/FeedCard.tsx
index 214084884..3f881c2ff 100644
--- a/client/components/feed/FeedCard.tsx
+++ b/packages/app/components/feed/FeedCard.tsx
@@ -13,8 +13,8 @@ import { Link } from 'expo-router';
import { DuplicateIcon } from '../DuplicateIcon/index';
import { truncateString } from '../../utils/truncateString';
import { RText, RStack, RHeading } from '@packrat/ui';
-import { formatNumber } from '~/utils/formatNumber';
-import { useAddFavorite } from '~/hooks/favorites';
+import { formatNumber } from 'app/utils/formatNumber';
+import { useAddFavorite } from 'app/hooks/favorites';
export default function Card({
type,
@@ -42,8 +42,8 @@ export default function Card({
const isFavorite =
type !== 'trip' &&
- (favorited_by?.includes(user._id) ||
- favorited_by?.some((obj) => obj._id === user._id));
+ (favorited_by?.includes(user?._id) ||
+ favorited_by?.some((obj) => obj?._id === user?._id && user?.id));
/**
* Handles adding an item to the user's favorites.
@@ -83,21 +83,21 @@ export default function Card({
if (duration) numberOfNights = JSON.parse(duration).numberOfNights;
return (
-
+
-
-
+
+
{type === 'pack' && (
@@ -126,7 +126,7 @@ export default function Card({
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
- gap: '8px',
+ gap: 8,
// border: '1px solid #ccc',
}}
>
@@ -189,7 +189,7 @@ export default function Card({
style={{
flexDirection: 'column',
alignItems: 'flex-start',
- gap: '8px',
+ gap: 8,
}}
>
@@ -201,7 +201,7 @@ export default function Card({
style={{
flexDirection: 'row',
alignItems: 'center',
- gap: '100px',
+ gap: 100,
}}
>
@@ -234,7 +234,7 @@ export default function Card({
style={{
flexDirection: 'row',
alignItems: 'center',
- gap: '8px',
+ gap: 8,
}}
>
{user?._id === owner_id ? null : (
diff --git a/client/components/feed/FeedSearchFilter.tsx b/packages/app/components/feed/FeedSearchFilter.tsx
similarity index 93%
rename from client/components/feed/FeedSearchFilter.tsx
rename to packages/app/components/feed/FeedSearchFilter.tsx
index ee8f2a876..f25d9b05b 100644
--- a/client/components/feed/FeedSearchFilter.tsx
+++ b/packages/app/components/feed/FeedSearchFilter.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
import { Switch } from 'tamagui';
import { View } from 'react-native';
import {
@@ -13,7 +13,7 @@ import {
RInput,
} from '@packrat/ui';
import { AntDesign } from '@expo/vector-icons';
-import DropdownComponent from '~/components/Dropdown';
+import DropdownComponent from 'app/components/Dropdown';
import { debounce } from 'lodash';
const dataValues = [
@@ -76,7 +76,7 @@ const FeedSearchFilter = ({
>
{feedType === 'public' && (
)}
-
+
{
if (isObjectEmpty(imageDetails || {})) {
@@ -22,7 +22,7 @@ const Hero = ({ children, imageDetails }) => {
diff --git a/client/components/inventory/Inventory.tsx b/packages/app/components/inventory/Inventory.tsx
similarity index 100%
rename from client/components/inventory/Inventory.tsx
rename to packages/app/components/inventory/Inventory.tsx
diff --git a/client/components/item/AddItem.tsx b/packages/app/components/item/AddItem.tsx
similarity index 95%
rename from client/components/item/AddItem.tsx
rename to packages/app/components/item/AddItem.tsx
index 29117824d..5d78d0dfd 100644
--- a/client/components/item/AddItem.tsx
+++ b/packages/app/components/item/AddItem.tsx
@@ -2,8 +2,8 @@ import { useEffect, useState } from 'react';
import { View } from 'react-native';
import { useDispatch, useSelector } from 'react-redux';
import { ItemForm } from './ItemForm'; // assuming you moved the form related code to a separate component
-import { useAddPackItem } from '~/hooks/packs/useAddPackItem';
-import { useEditPackItem } from '~/hooks/packs/useEditPackItem';
+import { useAddPackItem } from 'app/hooks/packs/useAddPackItem';
+import { useEditPackItem } from 'app/hooks/packs/useEditPackItem';
export const AddItem = ({
_id,
diff --git a/client/components/item/AddItemGlobal.tsx b/packages/app/components/item/AddItemGlobal.tsx
similarity index 87%
rename from client/components/item/AddItemGlobal.tsx
rename to packages/app/components/item/AddItemGlobal.tsx
index b99023fda..dbad19233 100644
--- a/client/components/item/AddItemGlobal.tsx
+++ b/packages/app/components/item/AddItemGlobal.tsx
@@ -1,12 +1,13 @@
-import { useState } from 'react';
+import { useContext, useState } from 'react';
import { View } from 'react-native';
import { useDispatch, useSelector } from 'react-redux';
import { addItemsGlobal, addItemOffline } from '../../store/globalItemsStore';
import { addOfflineRequest } from '../../store/offlineQueue';
import { queryTrpc } from '../../trpc';
import { ItemForm } from './ItemForm'; // assuming you moved the form related code to a separate component
+import { useModal } from '@packrat/ui/src/modal';
-export const AddItemGlobal = ({ setIsAddItemModalOpen }) => {
+export const AddItemGlobal = () => {
const utils = queryTrpc.useContext();
const dispatch = useDispatch();
const isLoading = useSelector((state) => state.items.isLoading);
@@ -18,6 +19,7 @@ export const AddItemGlobal = ({ setIsAddItemModalOpen }) => {
const [unit, setUnit] = useState('');
const [categoryType, setCategoryType] = useState('');
+ const { setIsModalOpen } = useModal();
/**
* Resets the add form by setting all the input values to an empty string.
@@ -55,8 +57,10 @@ export const AddItemGlobal = ({ setIsAddItemModalOpen }) => {
}
resetAddForm();
- setIsAddItemModalOpen(false);
- utils.getItemsGlobally.invalidate();
+ setIsModalOpen(false);
+ if (utils.getItemsGlobally) {
+ utils.getItemsGlobally.invalidate();
+ }
};
return (
diff --git a/client/components/item/ItemForm.tsx b/packages/app/components/item/ItemForm.tsx
similarity index 98%
rename from client/components/item/ItemForm.tsx
rename to packages/app/components/item/ItemForm.tsx
index 95311938e..55c60c040 100644
--- a/client/components/item/ItemForm.tsx
+++ b/packages/app/components/item/ItemForm.tsx
@@ -42,7 +42,7 @@ export const ItemForm = ({
return (
-
+
= ({ onSelect, placeholder }) => {
const dispatch = useDispatch();
return Platform.OS === 'web' ? (
-
+
{/* ... */}
= ({ onSelect, placeholder }) => {
setShowSearchResults(true);
}}
placeholder={placeholder ?? 'Type here to search'}
- style={{
- width: '100%',
- borderRadius: '4',
- padding: '16px 8px',
- backgroundColor: 'white',
- }}
value={searchString}
fontSize={14}
+ width={'100%'}
+ borderRadius={4}
+ paddingVertical={16}
+ paddingHorizontal={8}
+ backgroundColor="white"
/>
= ({ onSelect, placeholder }) => {
setSearchString(text)}
placeholder="Search"
- style={{
- width: '100%',
- borderRadius: '4',
- padding: '16px 8px',
- backgroundColor: 'white',
- }}
value={searchString}
fontSize={14}
+ width={'100%'}
+ borderRadius={4}
+ paddingVertical={16}
+ paddingHorizontal={8}
+ backgroundColor="white"
/>
= ({ onSelect, placeholder }) => {
showsVerticalScrollIndicator={false}
zIndex={10}
>
-
+
{searchResults.map((result, i) => (
handleSearchResultClick(result, i)}
- // @ts-expect-error
>
diff --git a/client/components/itemtable/itemTable.tsx b/packages/app/components/itemtable/itemTable.tsx
similarity index 87%
rename from client/components/itemtable/itemTable.tsx
rename to packages/app/components/itemtable/itemTable.tsx
index 9eac12131..51a69d9d5 100644
--- a/client/components/itemtable/itemTable.tsx
+++ b/packages/app/components/itemtable/itemTable.tsx
@@ -9,8 +9,9 @@ import { EditPackItemModal } from '../pack_table/EditPackItemModal';
import { DeletePackItemModal } from '../pack_table/DeletePackItemModal';
import { PaginationLimit } from '../paginationChooseLimit';
import Loader from '../Loader';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
import { loadStyles } from './itemsTable.style';
+import { AddItem } from '../item/AddItem';
export const ItemsTable = ({
limit,
@@ -44,12 +45,15 @@ export const ItemsTable = ({
`${formatNumber(weight)} ${unit}`,
quantity,
`${category?.name || type}`,
- ,
+
+
+ ,
,
];
return
;
@@ -98,7 +102,7 @@ export const ItemsTable = ({
/>
@@ -115,12 +119,12 @@ export const ItemsTable = ({
{
flexWrap: 'wrap',
}}
>
-
+
{
{
diff --git a/client/components/loading-placeholder/index.tsx b/packages/app/components/loading-placeholder/index.tsx
similarity index 95%
rename from client/components/loading-placeholder/index.tsx
rename to packages/app/components/loading-placeholder/index.tsx
index 57b82071a..0c84affc0 100644
--- a/client/components/loading-placeholder/index.tsx
+++ b/packages/app/components/loading-placeholder/index.tsx
@@ -1,6 +1,6 @@
import React, { useEffect, useRef } from 'react';
import { View, Animated } from 'react-native';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const LoadingPlaceholder = ({
width = '100%',
diff --git a/client/components/logo/index.tsx b/packages/app/components/logo/index.tsx
similarity index 100%
rename from client/components/logo/index.tsx
rename to packages/app/components/logo/index.tsx
diff --git a/client/components/map/MapButtonsOverlay.tsx b/packages/app/components/map/MapButtonsOverlay.tsx
similarity index 98%
rename from client/components/map/MapButtonsOverlay.tsx
rename to packages/app/components/map/MapButtonsOverlay.tsx
index 7c9929a85..8d33aec60 100644
--- a/client/components/map/MapButtonsOverlay.tsx
+++ b/packages/app/components/map/MapButtonsOverlay.tsx
@@ -15,7 +15,7 @@ import {
} from '@expo/vector-icons';
import useTheme from '../../hooks/useTheme';
import { mapboxStyles } from '../../utils/mapFunctions';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const MapButtonsOverlay = ({
mapFullscreen,
@@ -227,9 +227,9 @@ const loadStyles = (theme) => {
container: {
alignItems: 'center',
justifyContent: 'center',
- height: '400px',
+ height: 400,
width: '100%',
- borderRadius: '10px',
+ borderRadius: 10,
},
map: {
width: '100%',
diff --git a/client/components/map/MapContainer.native.tsx b/packages/app/components/map/MapContainer.native.tsx
similarity index 95%
rename from client/components/map/MapContainer.native.tsx
rename to packages/app/components/map/MapContainer.native.tsx
index 5e1c9039e..512f1f60a 100644
--- a/client/components/map/MapContainer.native.tsx
+++ b/packages/app/components/map/MapContainer.native.tsx
@@ -5,7 +5,7 @@ import { isObjectEmpty } from '../../utils/isObjectEmpty';
import { defaultShape } from '../../utils/mapFunctions';
import useTheme from '../../hooks/useTheme';
import NativeMap from './NativeMap';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export function MapContainer({ shape }) {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
diff --git a/client/components/map/MapContainer.web.tsx b/packages/app/components/map/MapContainer.web.tsx
similarity index 84%
rename from client/components/map/MapContainer.web.tsx
rename to packages/app/components/map/MapContainer.web.tsx
index 69d0cf956..3c8e379de 100644
--- a/client/components/map/MapContainer.web.tsx
+++ b/packages/app/components/map/MapContainer.web.tsx
@@ -5,7 +5,7 @@ import { View, Platform } from 'react-native';
import WebMap from './WebMap';
import { isObjectEmpty } from '../../utils/isObjectEmpty';
import { defaultShape } from '../../utils/mapFunctions';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export function MapContainer({ shape }) {
if (isObjectEmpty(shape)) {
@@ -29,9 +29,9 @@ const loadStyles = () => ({
alignItems: 'center',
justifyContent: 'center',
overflow: 'hidden',
- marginVertical: '10px',
+ marginVertical: 10,
width: '100%',
- height: '400px',
- borderRadius: '10px',
+ height: 400,
+ borderRadius: 10,
},
});
diff --git a/client/components/map/MapPreview.tsx b/packages/app/components/map/MapPreview.tsx
similarity index 84%
rename from client/components/map/MapPreview.tsx
rename to packages/app/components/map/MapPreview.tsx
index 667486c27..0625e79ee 100644
--- a/client/components/map/MapPreview.tsx
+++ b/packages/app/components/map/MapPreview.tsx
@@ -6,7 +6,7 @@ import {
processShapeData,
isPoint,
} from '../../utils/mapFunctions';
-import { MAPBOX_ACCESS_TOKEN } from '@env';
+import { api } from '../../constants/api';
/**
* Renders a preview of a map based on the given shape.
@@ -67,6 +67,8 @@ export default function MapPreview({ shape }) {
} = shape.features[0].geometry;
// console.log("๐ ~ file: MapPreview.js:39 ~ MapPreview ~ coordinates:", isPoint(shape),MAPBOX_ACCESS_TOKEN)
+ const mapPreviewEndpoint = `${api}/mapPreview`;
+
return isPoint(shape) ? (
) : (
@@ -84,9 +86,9 @@ export default function MapPreview({ shape }) {
height: '100%',
}}
source={{
- uri: `https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/geojson(${urlEncodedImageShapeGeoJSON})/[${bounds.join(
+ uri: `${mapPreviewEndpoint}/geojson(${urlEncodedImageShapeGeoJSON})/[${bounds.join(
',',
- )}]/900x400?access_token=${MAPBOX_ACCESS_TOKEN}&padding=50,30,30,30`,
+ )}]/900x400?padding=50,30,30,30`,
}}
/>
);
diff --git a/client/components/map/NativeMap.native.tsx b/packages/app/components/map/NativeMap.native.tsx
similarity index 69%
rename from client/components/map/NativeMap.native.tsx
rename to packages/app/components/map/NativeMap.native.tsx
index 568e8bbd3..d8825b500 100644
--- a/client/components/map/NativeMap.native.tsx
+++ b/packages/app/components/map/NativeMap.native.tsx
@@ -1,37 +1,18 @@
-import React, { useEffect, useState, useRef } from 'react';
+import React from 'react';
import {
Platform,
- Text,
View,
- Picker,
- TouchableOpacity,
SafeAreaView,
Dimensions,
Modal,
Alert,
Linking,
- Image,
} from 'react-native';
import Geolocation from '@react-native-community/geolocation';
// import { check, PERMISSIONS, RESULTS } from 'react-native-permissions';
-import {
- MaterialCommunityIcons,
- FontAwesome,
- MaterialIcons,
- Entypo,
-} from '@expo/vector-icons';
+import { MaterialCommunityIcons } from '@expo/vector-icons';
import Mapbox, { ShapeSource, offlineManager, Camera } from '@rnmapbox/maps';
-import {
- Select,
- Center,
- AlertDialog,
- Button,
- Input,
- Box,
- Actionsheet,
- CheckIcon,
- useToast,
-} from 'native-base';
+import { AlertDialog, Button, Input } from 'native-base';
// get mapbox access token from .env file
import { MAPBOX_ACCESS_TOKEN } from '@env';
@@ -39,11 +20,7 @@ import { MAPBOX_ACCESS_TOKEN } from '@env';
import { theme } from '../../theme';
import MapButtonsOverlay from './MapButtonsOverlay';
import {
- calculateZoomLevel,
- findTrailCenter,
- getShapeSourceBounds,
isShapeDownloadable,
- mapboxStyles,
isPoint,
isLineString,
isPolygonOrMultiPolygon,
@@ -54,8 +31,8 @@ import * as DocumentPicker from 'expo-document-picker';
import * as FileSystem from 'expo-file-system';
import { DOMParser } from 'xmldom';
import { gpx as toGeoJSON } from '@tmcw/togeojson';
-import MapPreview from './MapPreview';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useNativeMap } from 'app/hooks/map/useNativeMap';
Mapbox.setWellKnownTileServer(Platform.OS === 'android' ? 'Mapbox' : 'mapbox');
Mapbox.setAccessToken(MAPBOX_ACCESS_TOKEN);
@@ -75,127 +52,31 @@ const previewMapStyle = {
// MapView.setConnected(true);
function NativeMap({ shape: shapeProp }) {
- const camera = useRef(null);
- const mapViewRef = useRef(null);
- const cancelRef = React.useRef(null);
- const [location, setLocation] = useState({
- longitude: 0.0,
- latitude: 0.0,
- });
- const [getLocationLoading, setGetLocationLoading] = useState(false);
- const [correctLocation, setCorrectLocation] = useState(false);
- const [mapFullscreen, setMapFullscreen] = useState(false);
- const [progress, setProgress] = useState(0);
- const [downloading, setDownloading] = useState(false);
- const [mapStyle, setMapStyle] = useState(mapboxStyles[0].style);
- const [showMapNameInputDialog, setShowMapNameInputDialog] = useState(false);
- const [shape, setShape] = useState(shapeProp);
- const [mapName, setMapName] = useState(shape?.features[0]?.properties?.name);
- const [trailCenterPoint, setTrailCenterPoint] = useState(
- findTrailCenter(shape),
- );
-
- const toast = useToast();
const styles = useCustomStyles(loadStyles);
+ const {
+ camera,
+ mapViewRef,
+ cancelRef,
+ location,
+ mapFullscreen,
+ setMapFullscreen,
+ progress,
+ downloading,
+ mapStyle,
+ setMapStyle,
+ showMapNameInputDialog,
+ setShowMapNameInputDialog,
+ shape,
+ setShape,
+ mapName,
+ setMapName,
+ trailCenterPoint,
+ setTrailCenterPoint,
+ zoomLevel,
+ getPosition,
+ onDownload,
+ } = useNativeMap({ shape: shapeProp });
- // consts
- let bounds = getShapeSourceBounds(shape);
- // console.log("๐ ~ file: NativeMap.native.js:99 ~ NativeMap ~ bounds:", bounds)
- bounds = bounds[0].concat(bounds[1]);
- const zoomLevel = calculateZoomLevel(bounds, { width: dw, height: 360 });
- // console.log("trailCenterPoint", trailCenterPoint);
- // console.log("zoomLevel", zoomLevel);
-
- // effects
- useEffect(() => {
- // update the shape state when a new shapeProp gets passed
- if (shapeProp !== shape) setShape(shapeProp);
- }, [shapeProp]);
-
- useEffect(() => {
- // update mapName & calculate new trailCenter whenever shape changes e.g newly passed shapeProp or new shape from gpx upload
- setMapName(shape?.features[0]?.properties?.name);
- setTrailCenterPoint(findTrailCenter(shape));
- }, [shape]);
-
- /**
- * Retrieves the current position using Geolocation API and updates the location state.
- *
- * @param {function} onSucccess - a callback function to be executed on success
- * @return {undefined} This function does not return anything
- */
- const getPosition = (onSucccess) => {
- Geolocation.getCurrentPosition(
- (data) => {
- setLocation({
- ...location,
- longitude: Number(data.coords.longitude),
- latitude: Number(data.coords.latitude),
- });
- setCorrectLocation(true);
- onSucccess?.(location);
- },
- (error) => {
- setCorrectLocation(false);
- Alert.alert('Something went wrong with location', error.message);
- },
- { enableHighAccuracy: false, timeout: 20000, maximumAge: 1000 },
- );
- };
-
- /**
- * Handles the press event on the map.
- *
- * @param {Event} event - The press event object.
- */
- function onMapPress(event) {
- console.log(event, 'eventtt');
- // if (trailCenterPoint) {
- // mapViewFullScreenRef?.current.setCamera({
- // centerCoordinate: trailCenterPoint,
- // });
- // }
- }
-
- /**
- * Handles the download progress of an offline region.
- *
- * @param {Object} offlineRegion - The offline region being downloaded.
- * @param {Object} offlineRegionStatus - The status of the offline region download.
- * @returns {void}
- */
- function onDownloadProgress(offlineRegion, offlineRegionStatus) {
- console.log('control there', offlineRegionStatus?.percentage);
- setProgress(offlineRegionStatus.percentage);
- setDownloading(true);
- if (offlineRegionStatus.percentage == 100) {
- Alert.alert('Map download successfully!');
- setDownloading(false);
- }
- }
- /**
- * A function that serves as an error listener for the offline region.
- *
- * @param {Object} offlineRegion - The offline region object.
- * @param {Object} error - The error object.
- */
- function errorListener(offlineRegion, error) {
- Alert.alert(error.message);
- }
- /**
- * Downloads a file using the provided options.
- *
- * @param {object} optionsForDownload - The options for the download.
- * @return {Promise} A promise that resolves when the download is complete.
- */
- async function onDownload(optionsForDownload) {
- // start download
- offlineManager
- .createPack(optionsForDownload, onDownloadProgress, errorListener)
- .catch((error) => {
- Alert.alert(error.message);
- });
- }
function CircleCapComp() {
return (
{
+ const [downloadable, setDownloadable] = useState(false);
+ const styles = useCustomStyles(loadStyles);
+ const {
+ shape,
+ setShape,
+ showModal,
+ mapFullscreen,
+ enableFullScreen,
+ disableFullScreen,
+ handleChangeMapStyle,
+ fetchLocation,
+ openMaps,
+ fetchGpxDownload,
+ downloading,
+ mapContainer,
+ } = useWebMap({ shape: shapeProp });
+
+ const element = (
+
+ {showModal || isPolygonOrMultiPolygon(shape) ? (
+
+ ) : (
+
+ )}
+ {
+ console.log('clikedd');
+ try {
+ const result = await DocumentPicker.getDocumentAsync({
+ type: 'application/gpx+xml',
+ });
+ console.log('result', result);
+ if (result.type === 'success') {
+ const base64Gpx = result.uri.split(',')[1];
+ const gpxString = atob(base64Gpx);
+ const parsedGpx = new DOMParser().parseFromString(gpxString);
+ const geojson = toGeoJSON(parsedGpx);
+ setShape(geojson);
+ }
+ } catch (err) {
+ Alert.alert('An error occured');
+ }
+ }}
+ shape={shape}
+ />
+
+ );
+
+ return showModal ? (
+
+ {element}
+
+ ) : (
+ element
+ );
+};
+
+const loadStyles = () => ({
+ container: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '100%',
+ borderRadius: 10,
+ },
+ map: {
+ width: '100%',
+ minHeight: '100vh', // Adjust the height to your needs
+ },
+ modal: {
+ alignItems: 'center',
+ },
+});
+
+export default WebMap;
diff --git a/packages/app/components/navigation/Drawer.tsx b/packages/app/components/navigation/Drawer.tsx
new file mode 100644
index 000000000..528132700
--- /dev/null
+++ b/packages/app/components/navigation/Drawer.tsx
@@ -0,0 +1,90 @@
+import { View, TouchableOpacity, Modal, SafeAreaView } from 'react-native';
+import { AntDesign, EvilIcons } from '@expo/vector-icons';
+import useTheme from '../../hooks/useTheme';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { NavigationList } from './NavigationList';
+import { useDrawer } from 'app/hooks/navigation';
+
+export const Drawer = () => {
+ const { currentTheme } = useTheme();
+ const { isDrawerOpen, toggleDrawer, closeDrower } = useDrawer();
+ const styles = useCustomStyles(loadStyles);
+
+ return (
+ <>
+
+ {!isDrawerOpen && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+const loadStyles = (theme) => {
+ const { currentTheme } = theme;
+ return {
+ modalOverlay: {
+ flex: 1,
+ flexDirection: 'row',
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ },
+ fullScreenTouchable: {
+ flex: 1,
+ },
+ drawerContainer: {
+ backgroundColor: currentTheme.colors.background,
+ width: '70%',
+ height: '100%',
+ padding: 16,
+ },
+ drawerWrapper: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ navigationItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingVertical: 8,
+ },
+ };
+};
diff --git a/packages/app/components/navigation/Navigation.tsx b/packages/app/components/navigation/Navigation.tsx
new file mode 100644
index 000000000..85bde5817
--- /dev/null
+++ b/packages/app/components/navigation/Navigation.tsx
@@ -0,0 +1,115 @@
+import React from 'react';
+import { View, Text, TouchableOpacity, SafeAreaView } from 'react-native';
+import { AuthStateListener } from '../../auth/AuthStateListener';
+import SVGLogoComponent from '../../components/logo';
+import { Drawer } from './Drawer';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useIsMobileView } from 'app/hooks/common';
+import { useNavigate } from 'app/hooks/navigation';
+import { useAuthUser } from 'app/hooks/user/useAuthUser';
+import { NavigationList } from './NavigationList';
+
+export const Navigation = () => {
+ const user = useAuthUser();
+ const isMobileView = useIsMobileView();
+ const styles = useCustomStyles(loadStyles);
+ const navigate = useNavigate();
+
+ return (
+
+
+ {user && }
+
+ navigate('/')}
+ >
+
+
+
+ PackRat
+
+
+ {isMobileView ? (
+
+ ) : (
+
+
+
+ )}
+
+
+
+ );
+};
+
+const loadStyles = (theme) => {
+ const { currentTheme } = theme;
+
+ return {
+ safeArea: {
+ backgroundColor: currentTheme.colors.background,
+ },
+ container: {
+ width: '100%',
+ backgroundColor: currentTheme.colors.background,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ header: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ padding: 16,
+ width: '100%',
+ },
+ logoContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ logoWrapper: {
+ marginHorizontal: 10,
+ },
+ logoText: {
+ color: currentTheme.colors.text,
+ fontSize: 38,
+ fontWeight: '900',
+ },
+ menuBar: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ paddingHorizontal: 16,
+ height: 60,
+ },
+ menuBarItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 8,
+ paddingHorizontal: 12,
+ },
+ menuBarItemText: {
+ color: currentTheme.colors.text,
+ fontSize: 18,
+ },
+ drawerTrigger: {},
+ menuBarItemActive: {
+ // Apply styles for the active item
+ // ...
+ },
+ menuBarItemTextActive: {
+ // Apply styles for the active item's text
+ // ...
+ },
+ menuBarItemSelected: {
+ // Apply styles for the selected item
+ // ...
+ },
+ menuBarItemTextSelected: {
+ // Apply styles for the selected item's text
+ // ...
+ },
+ };
+};
diff --git a/packages/app/components/navigation/NavigationItem.tsx b/packages/app/components/navigation/NavigationItem.tsx
new file mode 100644
index 000000000..28a94df16
--- /dev/null
+++ b/packages/app/components/navigation/NavigationItem.tsx
@@ -0,0 +1,73 @@
+import { TouchableOpacity, Text } from 'react-native';
+import { useNavigationItem } from 'app/hooks/navigation';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import useTheme from 'app/hooks/useTheme';
+
+export const NavigationItem = ({ item, itemStyle, isMobileView, onSelect }) => {
+ const styles = useCustomStyles(loadStyles);
+ const { currentTheme } = useTheme();
+ const { IconComponent, isCurrentPage, handleItemPress } = useNavigationItem(
+ item,
+ onSelect,
+ );
+ const { icon, text } = item;
+
+ return (
+
+
+
+ {text}
+
+
+ );
+};
+
+const loadStyles = (theme) => {
+ const { currentTheme } = theme;
+
+ return {
+ menuBarItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ gap: 8,
+ paddingHorizontal: 12,
+ },
+ menuBarItemText: {
+ color: currentTheme.colors.text,
+ fontSize: 18,
+ },
+ menuBarItemActive: {
+ // Apply styles for the active item
+ // ...
+ },
+ menuBarItemTextActive: {
+ // Apply styles for the active item's text
+ // ...
+ },
+ menuBarItemSelected: {
+ // Apply styles for the selected item
+ // ...
+ },
+ };
+};
diff --git a/packages/app/components/navigation/NavigationList.tsx b/packages/app/components/navigation/NavigationList.tsx
new file mode 100644
index 000000000..0c8ca0e0c
--- /dev/null
+++ b/packages/app/components/navigation/NavigationList.tsx
@@ -0,0 +1,27 @@
+import { useNavigationList } from 'app/hooks/navigation';
+import { NavigationItem } from './NavigationItem';
+import { useAuthUser } from 'app/hooks/user/useAuthUser';
+import { MaterialIcons } from '@expo/vector-icons';
+import { useIsMobileView } from 'app/hooks/common';
+
+export const NavigationList = ({
+ itemStyle = null,
+ onItemSelect = () => {},
+}) => {
+ const isMobileView = useIsMobileView();
+ const { navigationItems } = useNavigationList();
+
+ return (
+ <>
+ {navigationItems?.map((item) => (
+
+ ))}
+ >
+ );
+};
diff --git a/packages/app/components/navigation/index.ts b/packages/app/components/navigation/index.ts
new file mode 100644
index 000000000..61f39d15c
--- /dev/null
+++ b/packages/app/components/navigation/index.ts
@@ -0,0 +1 @@
+export { Navigation } from './Navigation';
diff --git a/client/components/pack/AddItemModal.tsx b/packages/app/components/pack/AddItemModal.tsx
similarity index 65%
rename from client/components/pack/AddItemModal.tsx
rename to packages/app/components/pack/AddItemModal.tsx
index 4421d7ea4..ca8db9282 100644
--- a/client/components/pack/AddItemModal.tsx
+++ b/packages/app/components/pack/AddItemModal.tsx
@@ -1,6 +1,6 @@
-import { CustomModal } from '../modal';
import { AddItem } from '../item/AddItem';
-import useTheme from '~/hooks/useTheme';
+import useTheme from 'app/hooks/useTheme';
+import { BaseModal } from '@packrat/ui';
export const AddItemModal = ({
currentPackId,
@@ -12,32 +12,29 @@ export const AddItemModal = ({
const { currentTheme } = useTheme();
return (
- setIsAddItemModalOpen(false),
+ onClick: (_, closeModal) => closeModal(),
},
{
label: 'Cancel',
color: '#B22222',
- onClick: () => setIsAddItemModalOpen(false),
+ onClick: (_, closeModal) => closeModal(),
},
]}
>
{
setRefetch();
}}
/>
-
+
);
};
diff --git a/client/components/pack/AddPack.tsx b/packages/app/components/pack/AddPack.tsx
similarity index 89%
rename from client/components/pack/AddPack.tsx
rename to packages/app/components/pack/AddPack.tsx
index b3f10ef46..e34557e05 100644
--- a/client/components/pack/AddPack.tsx
+++ b/packages/app/components/pack/AddPack.tsx
@@ -1,15 +1,15 @@
import { Platform, View } from 'react-native';
import DropdownComponent from '../Dropdown';
import { RInput, RButton, RText, RLabel } from '@packrat/ui';
+import { BaseModal } from '@packrat/ui';
import { addPack } from '../../store/packsStore';
import { useState } from 'react';
import { useSelector, useDispatch } from 'react-redux';
-import { CustomModal } from '../modal';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useAddNewPack } from '~/hooks/packs';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useAddNewPack } from 'app/hooks/packs';
import { useRouter } from 'expo-router';
-import { packSelectOptions } from '~/constants/options';
+import { packSelectOptions } from 'app/constants/options';
export const AddPack = ({ isCreatingTrip = false }) => {
// Hooks
@@ -27,6 +27,7 @@ export const AddPack = ({ isCreatingTrip = false }) => {
isLoading,
name,
setIsPublic,
+ isPublic,
setName,
} = useAddNewPack();
@@ -60,7 +61,7 @@ export const AddPack = ({ isCreatingTrip = false }) => {
/>
Is Public:
{
};
export const AddPackContainer = ({ isCreatingTrip }) => {
- const [isOpen, setIsOpen] = useState(false);
return (
-
+
-
+
);
};
diff --git a/client/components/pack/PackContainer.tsx b/packages/app/components/pack/PackContainer.tsx
similarity index 93%
rename from client/components/pack/PackContainer.tsx
rename to packages/app/components/pack/PackContainer.tsx
index 2025b6aa5..2829dc012 100644
--- a/client/components/pack/PackContainer.tsx
+++ b/packages/app/components/pack/PackContainer.tsx
@@ -14,9 +14,8 @@ import {
import { updateNewTripPack } from '../../store/tripsStore';
import { useDispatch } from 'react-redux';
import { View } from 'react-native';
-import { CustomModal } from '../modal';
import { AddItemModal } from './AddItemModal';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export default function PackContainer({ isCreatingTrip = false }) {
const dispatch = useDispatch();
@@ -66,9 +65,9 @@ export default function PackContainer({ isCreatingTrip = false }) {
// selectPackById(state, currentPackId),
// );
- const currentPack = packs.find((pack) => pack._id === currentPackId);
+ const currentPack = packs?.find((pack) => pack._id === currentPackId);
- const dataValues = packs.map((item) => item?.name) ?? [];
+ const dataValues = packs?.map((item) => item?.name) ?? [];
return dataValues?.length > 0 ? (
diff --git a/client/components/pack/PackDetails.tsx b/packages/app/components/pack/PackDetails.tsx
similarity index 97%
rename from client/components/pack/PackDetails.tsx
rename to packages/app/components/pack/PackDetails.tsx
index 6a95e68d0..ae512ffd6 100644
--- a/client/components/pack/PackDetails.tsx
+++ b/packages/app/components/pack/PackDetails.tsx
@@ -15,8 +15,8 @@ import ScoreContainer from '../ScoreContainer';
import ChatContainer from '../chat';
import { AddItem } from '../item/AddItem';
import { AddItemModal } from './AddItemModal';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useUserPacks } from '~/hooks/packs/useUserPacks';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useUserPacks } from 'app/hooks/packs/useUserPacks';
import { useFetchSinglePack } from '../../hooks/packs';
export function PackDetails() {
diff --git a/client/components/pack_table/DeletePackItemModal.tsx b/packages/app/components/pack_table/DeletePackItemModal.tsx
similarity index 63%
rename from client/components/pack_table/DeletePackItemModal.tsx
rename to packages/app/components/pack_table/DeletePackItemModal.tsx
index 4fb6d2e60..74c7f1a02 100644
--- a/client/components/pack_table/DeletePackItemModal.tsx
+++ b/packages/app/components/pack_table/DeletePackItemModal.tsx
@@ -2,45 +2,23 @@ import React from 'react';
import { MaterialIcons } from '@expo/vector-icons';
import { useDispatch, useSelector } from 'react-redux';
import { deletePackItem } from '../../store/packsStore';
-import { CustomModal } from '../modal';
import {
deleteGlobalItem,
deleteItemOffline,
getItemsGlobal,
} from '../../store/globalItemsStore';
import { addOfflineRequest } from '../../store/offlineQueue';
-import { useDeletePackItem } from '~/hooks/packs/useDeletePackItem';
+import { useDeletePackItem } from 'app/hooks/packs/useDeletePackItem';
import { queryTrpc, trpc } from '../../trpc';
+import { BaseModal } from '@packrat/ui';
export const DeletePackItemModal = ({ itemId, pack }) => {
const utils = queryTrpc.useContext();
- const [isModalOpen, setIsModalOpen] = React.useState(false);
const dispatch = useDispatch();
const { isConnected } = useSelector((state) => state.offlineQueue);
- const closeModalHandler = () => {
- setIsModalOpen(false);
- };
- /**
- * Sets the value of `isModalOpen` to `true`.
- *
- * @param {}
- * @return {}
- */
- const onTrigger = (event) => {
- setIsModalOpen(event);
- };
- const closeTriggerOpen = () => {
- onTriggerOpen(false);
- };
- /**
- * Deletes an item.
- *
- * @param {type} paramName - description of parameter
- * @return {type} description of return value
- */
const { deletePackItem } = useDeletePackItem();
- const deleteItemHandler = () => {
+ const deleteItemHandler = (_, closeModal) => {
if (pack) {
deletePackItem({ itemId, packId: pack._id });
} else {
@@ -52,13 +30,13 @@ export const DeletePackItemModal = ({ itemId, pack }) => {
dispatch(addOfflineRequest({ method: 'deleteItem', data: itemId }));
}
}
- setIsModalOpen(false);
+ closeModal();
};
const footerButtons = [
{
label: 'Cancel',
- onClick: closeModalHandler,
+ onClick: (_, closeModal) => closeModal(),
color: 'gray',
disabled: false,
},
@@ -71,15 +49,12 @@ export const DeletePackItemModal = ({ itemId, pack }) => {
];
return (
- }
footerButtons={footerButtons}
- onCancel={closeModalHandler}
- onTrigger={onTrigger}
>
Are you sure you want to delete this item?
-
+
);
};
diff --git a/packages/app/components/pack_table/EditPackItemModal.tsx b/packages/app/components/pack_table/EditPackItemModal.tsx
new file mode 100644
index 000000000..106ca7d75
--- /dev/null
+++ b/packages/app/components/pack_table/EditPackItemModal.tsx
@@ -0,0 +1,40 @@
+import React, { useState } from 'react';
+import { MaterialIcons } from '@expo/vector-icons';
+import { AddItem } from '../item/AddItem';
+import { View } from 'react-native';
+import { BaseModal, useModal } from '@packrat/ui';
+
+export const EditPackItemModal = ({ children }) => {
+ const footerButtons = [
+ {
+ label: 'Cancel',
+ onClick: (_, closeModal) => closeModal(),
+ color: '#B22222',
+ disabled: false,
+ },
+ // add more footer buttons here if needed
+ ];
+
+ return (
+
+ }
+ footerButtons={footerButtons}
+ >
+ {withCloseModalHandler(children)}
+
+
+ );
+};
+
+const withCloseModalHandler = (Component) => (props) => {
+ const { setIsModalOpen } = useModal();
+
+ return (
+
+ );
+};
diff --git a/client/components/pack_table/Table.tsx b/packages/app/components/pack_table/Table.tsx
similarity index 65%
rename from client/components/pack_table/Table.tsx
rename to packages/app/components/pack_table/Table.tsx
index d7a91c34f..ac352e7e7 100644
--- a/client/components/pack_table/Table.tsx
+++ b/packages/app/components/pack_table/Table.tsx
@@ -1,21 +1,18 @@
-import { FlatList, Platform, View } from 'react-native';
-import { Table, Row, Cell, TableWrapper } from 'react-native-table-component';
import { Feather } from '@expo/vector-icons';
+import { RButton, RCheckbox, RSkeleton, RStack, RText } from '@packrat/ui';
import { useState } from 'react';
-import { useDispatch, useSelector } from 'react-redux';
-import { convertWeight } from '../../utils/convertWeight';
-import { EditPackItemModal } from './EditPackItemModal';
-import { ItemCategoryEnum } from '../../constants/itemCategory';
-import { DeletePackItemModal } from './DeletePackItemModal';
-import { duplicatePackItem } from '../../store/packsStore';
-import { formatNumber } from '../../utils/formatNumber';
-import { theme } from '../../theme';
-import useTheme from '../../hooks/useTheme';
-import { PackOptions } from '../PackOptions';
-import CustomButton from '../custombutton';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { RSkeleton, RText, RStack, RButton, RCheckbox } from '@packrat/ui';
+import { FlatList, Platform, View } from 'react-native';
+import { Cell, Row, Table } from 'react-native-table-component';
+import { usePackTable } from 'app/hooks/packs/usePackTable';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import useTheme from 'app/hooks/useTheme';
import DropdownComponent from '../Dropdown';
+import { PackOptions } from '../PackOptions';
+import { DeletePackItemModal } from './DeletePackItemModal';
+import { EditPackItemModal } from './EditPackItemModal';
+import { categoryIcons } from 'app/constants/pack/icons';
+import { formatNumber } from 'app/utils/formatNumber';
+import { AddItem } from '../item/AddItem';
const WeightUnitDropdown = ({ value, onChange }) => {
return (
@@ -96,16 +93,14 @@ const TableItem = ({
quantity,
+
+
+
}
Delete={
,
+
+
+ ,
{
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
useTheme();
const styles = useCustomStyles(loadStyles);
- const categoryIcons = {
- [ItemCategoryEnum.ESSENTIALS]: 'check-square',
- [ItemCategoryEnum.FOOD]: 'coffee',
- [ItemCategoryEnum.WATER]: 'droplet',
- [ItemCategoryEnum.CLOTHING]: 'tshirt',
- [ItemCategoryEnum.SHELTER]: 'home',
- [ItemCategoryEnum.SLEEPING]: 'moon',
- [ItemCategoryEnum.HYGIENE]: 'smile',
- [ItemCategoryEnum.TOOLS]: 'tool',
- [ItemCategoryEnum.MEDICAL]: 'heart',
- [ItemCategoryEnum.OTHER]: 'more-horizontal',
- Undefined: 'help-circle', // Choose an appropriate icon for "Undefined" category
- };
const rowData = [
-
+
{},
copy,
}) => {
- const user = useSelector((state) => state.auth.user);
- const dispatch = useDispatch();
const styles = useCustomStyles(loadStyles);
- let ids = [];
- if (currentPack?.items) {
- ids = copy ? currentPack.items.map((item) => item._id) : [];
- }
- const [checkedItems, setCheckedItems] = useState([...ids]);
-
- const handleDuplicate = () => {
- const data = {
- packId: currentPack._id,
- ownerId: user._id,
- items: checkedItems,
- };
- dispatch(duplicatePackItem(data));
- };
-
- const [weightUnit, setWeightUnit] = useState('g');
- const isLoading = useSelector((state: any) => state.packs.isLoading);
-
- const error = useSelector((state: any) => state.items.error);
- const data = currentPack?.items;
- let totalFoodWeight = 0;
- let totalWaterWeight = 0;
- let totalBaseWeight = 0;
-
- let waterItem;
- const foodItems = [];
- // for calculating the total.
- /*
- Todo better to move this all inside a utility function and pass them variables
- */
- data
- ?.filter((item) => !checkedItems.includes(item._id))
- .forEach((item) => {
- const categoryName = item.category ? item.category.name : 'Undefined';
- const itemWeight = Number(item.weight) || 0; // ensure it's a number
- const itemQuantity = Number(item.quantity) || 0; // ensure it's a number
- const itemUnit = item.unit || null;
-
- if (!copy) {
- switch (categoryName) {
- case ItemCategoryEnum.ESSENTIALS: {
- totalBaseWeight += convertWeight(
- itemWeight * itemQuantity,
- itemUnit,
- weightUnit,
- );
- break;
- }
- case ItemCategoryEnum.FOOD: {
- totalFoodWeight += convertWeight(
- itemWeight * itemQuantity,
- itemUnit,
- weightUnit,
- );
- foodItems.push(item);
- break;
- }
- case ItemCategoryEnum.WATER: {
- totalWaterWeight += convertWeight(
- itemWeight * itemQuantity,
- itemUnit,
- weightUnit,
- );
- waterItem = item;
- break;
- }
- }
- }
- });
-
- const totalWeight = totalBaseWeight + totalWaterWeight + totalFoodWeight;
-
- const handleCheckboxChange = (itemId) => {
- setCheckedItems((prev) =>
- prev.includes(itemId)
- ? prev.filter((id) => id !== itemId)
- : [...prev, itemId],
- );
- };
-
- // In your groupedData definition, provide a default category for items without one
- const groupedData = data
- ?.filter((fItem) => !Array.isArray(fItem.category))
- ?.reduce((acc, item) => {
- const categoryName = item.category ? item.category.name : 'Undefined';
- (acc[categoryName] = acc[categoryName] || []).push(item);
- return acc;
- }, {});
+ const {
+ isLoading,
+ error,
+ data,
+ groupedData,
+ checkedItems,
+ handleCheckboxChange,
+ handleDuplicate,
+ totalBaseWeight,
+ totalFoodWeight,
+ totalWaterWeight,
+ totalWeight,
+ weightUnit,
+ setWeightUnit,
+ } = usePackTable({
+ currentPack,
+ selectedPack,
+ refetch,
+ setRefetch,
+ copy,
+ });
let flexArr = [2, 1, 1, 1, 0.65, 0.65, 0.65];
let heading = [
@@ -331,7 +243,7 @@ export const TableContainer = ({
flexArr = [1, 1, 1, 1];
heading = ['Item Name', 'Weight', 'Quantity', 'Options'];
}
- if (isLoading) return ;
+ if (isLoading) return ;
if (error) return ;
return (
@@ -379,9 +291,18 @@ export const TableContainer = ({
)}
/>
-
- Copy
-
+ {copy ? (
+
+ Copy
+
+ ) : null}
{
const styles = useCustomStyles(loadStyles);
@@ -10,7 +10,7 @@ export const PaginationLimit = ({ limit, setLimit, setPage }) => {
return (
-
+
Choose a value:
{
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
diff --git a/client/components/password-reset/RequestEmailModal.tsx b/packages/app/components/password-reset/RequestEmailModal.tsx
similarity index 88%
rename from client/components/password-reset/RequestEmailModal.tsx
rename to packages/app/components/password-reset/RequestEmailModal.tsx
index e1673680c..a0ae9c751 100644
--- a/client/components/password-reset/RequestEmailModal.tsx
+++ b/packages/app/components/password-reset/RequestEmailModal.tsx
@@ -1,17 +1,15 @@
import React, { useState } from 'react';
-import { RInput } from '@packrat/ui';
-import { CustomModal } from '../modal';
-import axios from '~/config/axios';
+import { BaseModal, RInput } from '@packrat/ui';
+import axios from 'app/config/axios';
import { api } from '../../constants/api';
import { InformUser } from '../../utils/ToastUtils';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export const RequestPasswordResetEmailModal = () => {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
useTheme();
const styles = useCustomStyles(loadStyles);
- const [isOpen, setIsOpen] = useState(false);
const [email, setEmail] = useState('');
const [loading, setLoading] = useState(false);
@@ -20,7 +18,7 @@ export const RequestPasswordResetEmailModal = () => {
*
* @return {Promise} A promise that resolves when the password reset email is sent successfully.
*/
- const handleResetPasswordEmail = async () => {
+ const handleResetPasswordEmail = async (_, closeModal) => {
try {
setLoading(true);
// Call your API to initiate the password reset process
@@ -29,7 +27,7 @@ export const RequestPasswordResetEmailModal = () => {
// TODO - switch to RTK query
await axios.post(`${api}/password-reset`, { email });
setLoading(false);
- setIsOpen(false);
+ closeModal();
InformUser({
title: 'Password reset email sent',
style: { backgroundColor: currentTheme.colors.textPrimary },
@@ -49,11 +47,9 @@ export const RequestPasswordResetEmailModal = () => {
};
return (
- {
{
label: 'Cancel',
color: '#B22222',
- onClick: () => {
- setIsOpen(false);
+ onClick: (_, closeModal) => {
+ closeModal();
},
},
]}
@@ -107,7 +103,7 @@ export const RequestPasswordResetEmailModal = () => {
*/}
-
+
);
};
diff --git a/client/components/password-reset/index.tsx b/packages/app/components/password-reset/index.tsx
similarity index 91%
rename from client/components/password-reset/index.tsx
rename to packages/app/components/password-reset/index.tsx
index cc937b948..a662add6f 100644
--- a/client/components/password-reset/index.tsx
+++ b/packages/app/components/password-reset/index.tsx
@@ -3,10 +3,9 @@ import { View } from 'react-native';
import { api } from '../../constants/api';
import { PasswordResetForm } from './PasswordResetForm';
-import { CustomModal } from '../modal';
import { useSearchParams } from 'expo-router';
import { RequestPasswordResetEmailModal } from './RequestEmailModal';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
export const RequestPasswordReset = () => {
const [email, setEmail] = useState('');
diff --git a/client/components/progress/index.tsx b/packages/app/components/progress/index.tsx
similarity index 96%
rename from client/components/progress/index.tsx
rename to packages/app/components/progress/index.tsx
index 1e90a92ec..fea1ca26e 100644
--- a/client/components/progress/index.tsx
+++ b/packages/app/components/progress/index.tsx
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
import { Progress } from 'native-base';
-import useTheme from '~/hooks/useTheme';
+import useTheme from 'app/hooks/useTheme';
const ProgressBarComponent = () => {
const { currentTheme } = useTheme();
diff --git a/client/components/select/index.tsx b/packages/app/components/select/index.tsx
similarity index 100%
rename from client/components/select/index.tsx
rename to packages/app/components/select/index.tsx
diff --git a/client/components/trip/TripDateRange.tsx b/packages/app/components/trip/TripDateRange.tsx
similarity index 98%
rename from client/components/trip/TripDateRange.tsx
rename to packages/app/components/trip/TripDateRange.tsx
index aa1fc6904..2b56cd2aa 100644
--- a/client/components/trip/TripDateRange.tsx
+++ b/packages/app/components/trip/TripDateRange.tsx
@@ -35,11 +35,11 @@ const TripDateRange = ({ dateRange, setDateRange }) => {
{
};
export const SaveTripContainer = ({ dateRange }) => {
- const [isSaveModalOpen, setIsSaveModalOpen] = useState(false);
const weatherObject = useSelector((state) => state.weather.weatherObject);
const search = useSelector((state) => state.search.selectedSearchResult);
const dropdown = useSelector((state) => state.dropdown);
@@ -96,7 +94,7 @@ export const SaveTripContainer = ({ dateRange }) => {
});
// create trip
- const handleCreateTrip = async () => {
+ const handleCreateTrip = async (_, closeModal) => {
// duration object
const startDate = dateRange.startDate
? format(dateRange.startDate, 'MM/dd/yyyy')
@@ -137,7 +135,7 @@ export const SaveTripContainer = ({ dateRange }) => {
// creating a trip
console.log('create trip data ->', data);
addTrip(data);
- setIsSaveModalOpen(!isSaveModalOpen);
+ closeModal();
};
if (isSuccess && response) {
router.push(`/trip/${response.trip._id}`);
@@ -176,13 +174,9 @@ export const SaveTripContainer = ({ dateRange }) => {
});
return (
- {
- setIsSaveModalOpen(!isSaveModalOpen);
- }}
footerButtons={[
{
label: 'Save',
@@ -294,6 +288,6 @@ export const SaveTripContainer = ({ dateRange }) => {
)}
-
+
);
};
diff --git a/client/components/user/UserDataCard.tsx b/packages/app/components/user/UserDataCard.tsx
similarity index 89%
rename from client/components/user/UserDataCard.tsx
rename to packages/app/components/user/UserDataCard.tsx
index 857160083..20f2889bc 100644
--- a/client/components/user/UserDataCard.tsx
+++ b/packages/app/components/user/UserDataCard.tsx
@@ -58,20 +58,20 @@ const UserDataCard = ({
const truncatedDestination = truncateString(destination, 25);
return (
-
+
-
-
+
+
- {truncatedName}
+ {truncatedName}
{state[index] ? (
- Loading....
+ Loading....
) : (
<>
{!differentUser && (
@@ -105,7 +105,7 @@ const UserDataCard = ({
{type === 'pack' ? (
@@ -145,7 +145,7 @@ const UserDataCard = ({
{
@@ -81,18 +81,18 @@ export default function UserDataContainer({
>
diff --git a/client/components/Water.tsx b/packages/app/components/water/Water.tsx
similarity index 60%
rename from client/components/Water.tsx
rename to packages/app/components/water/Water.tsx
index 804dfc13f..76ecb3565 100644
--- a/client/components/Water.tsx
+++ b/packages/app/components/water/Water.tsx
@@ -1,44 +1,13 @@
import { MaterialCommunityIcons } from '@expo/vector-icons';
import { Button, Input, Text, Box } from 'native-base';
-import React, { useState } from 'react';
-import { ItemCategoryEnum } from '../constants/itemCategory';
-import { useDispatch } from 'react-redux';
-import { addPackItem } from '../store/packsStore';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import React from 'react';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useWater } from 'app/hooks/water';
export default function Water({ currentPack, setWaterItem }) {
- const [waterWeight, setWaterWeight] = useState(0);
- const dispatch = useDispatch();
+ const { handleWaterChange, addWater, waterWeight } = useWater(currentPack);
const styles = useCustomStyles(loadStyles);
- /**
- * Update the water weight.
- *
- * @param {type} value - the new value of the water weight
- * @return {undefined} no return value
- */
- const handleWaterChange = (value) => {
- setWaterWeight(value);
- };
-
- /**
- * Adds water to the pack.
- *
- * @return {void} No return value.
- */
- const addWater = () => {
- const data = {
- name: 'Water',
- weight: waterWeight,
- quantity: '1',
- unit: 'oz',
- packId: currentPack._id,
- type: ItemCategoryEnum.WATER,
- };
-
- dispatch(addPackItem(data));
- };
-
return (
{
+ const { data: weatherObjectData } = useFetchWeather(geoJSON);
+ const { data: weatherWeekData } = useFetchWeatherWeak(geoJSON);
+
+ return weatherObjectData && weatherWeekData ? (
+
+ ) : (
+ No Weather Data
+ );
+};
diff --git a/client/config/axios.ts b/packages/app/config/axios.ts
similarity index 97%
rename from client/config/axios.ts
rename to packages/app/config/axios.ts
index 4a982bbbb..a3dc5f761 100644
--- a/client/config/axios.ts
+++ b/packages/app/config/axios.ts
@@ -1,7 +1,7 @@
import axios from 'axios';
-import { api } from '~/constants/api';
+import { api } from 'app/constants/api';
import { store } from '../store/store';
-import { InformUser } from '~/utils/ToastUtils';
+import { InformUser } from 'app/utils/ToastUtils';
import { setTargetProgress, resetProgress } from '../store/progressStore';
import AsyncStorage from '@react-native-async-storage/async-storage';
diff --git a/client/constants/api.ts b/packages/app/constants/api.ts
similarity index 100%
rename from client/constants/api.ts
rename to packages/app/constants/api.ts
diff --git a/client/constants/convertStateToAbbr.ts b/packages/app/constants/convertStateToAbbr.ts
similarity index 100%
rename from client/constants/convertStateToAbbr.ts
rename to packages/app/constants/convertStateToAbbr.ts
diff --git a/client/constants/defaultWeatherObj.ts b/packages/app/constants/defaultWeatherObj.ts
similarity index 100%
rename from client/constants/defaultWeatherObj.ts
rename to packages/app/constants/defaultWeatherObj.ts
diff --git a/client/constants/defaultWeekObj.ts b/packages/app/constants/defaultWeekObj.ts
similarity index 100%
rename from client/constants/defaultWeekObj.ts
rename to packages/app/constants/defaultWeekObj.ts
diff --git a/client/constants/itemCategory.ts b/packages/app/constants/itemCategory.ts
similarity index 100%
rename from client/constants/itemCategory.ts
rename to packages/app/constants/itemCategory.ts
diff --git a/client/constants/linkData.ts b/packages/app/constants/linkData.ts
similarity index 100%
rename from client/constants/linkData.ts
rename to packages/app/constants/linkData.ts
diff --git a/packages/app/constants/options.ts b/packages/app/constants/options.ts
new file mode 100644
index 000000000..71cbb17ae
--- /dev/null
+++ b/packages/app/constants/options.ts
@@ -0,0 +1,4 @@
+export const packSelectOptions = [
+ { text: 'yes', value: 'Yes', label: 'Yes' },
+ { text: 'form me only', value: 'For me only', label: 'For me only' },
+];
diff --git a/packages/app/constants/pack/icons.ts b/packages/app/constants/pack/icons.ts
new file mode 100644
index 000000000..39207901a
--- /dev/null
+++ b/packages/app/constants/pack/icons.ts
@@ -0,0 +1,15 @@
+import { ItemCategoryEnum } from '../itemCategory';
+
+export const categoryIcons = {
+ [ItemCategoryEnum.ESSENTIALS]: 'check-square',
+ [ItemCategoryEnum.FOOD]: 'coffee',
+ [ItemCategoryEnum.WATER]: 'droplet',
+ [ItemCategoryEnum.CLOTHING]: 'tshirt',
+ [ItemCategoryEnum.SHELTER]: 'home',
+ [ItemCategoryEnum.SLEEPING]: 'moon',
+ [ItemCategoryEnum.HYGIENE]: 'smile',
+ [ItemCategoryEnum.TOOLS]: 'tool',
+ [ItemCategoryEnum.MEDICAL]: 'heart',
+ [ItemCategoryEnum.OTHER]: 'more-horizontal',
+ Undefined: 'help-circle', // Choose an appropriate icon for "Undefined" category
+};
diff --git a/client/constants/queryClient.ts b/packages/app/constants/queryClient.ts
similarity index 100%
rename from client/constants/queryClient.ts
rename to packages/app/constants/queryClient.ts
diff --git a/client/context/FontLoader.tsx b/packages/app/context/FontLoader.tsx
similarity index 100%
rename from client/context/FontLoader.tsx
rename to packages/app/context/FontLoader.tsx
diff --git a/client/context/NetworkStatusProvider/index.tsx b/packages/app/context/NetworkStatusProvider/index.tsx
similarity index 90%
rename from client/context/NetworkStatusProvider/index.tsx
rename to packages/app/context/NetworkStatusProvider/index.tsx
index fd866b605..9063fcedd 100644
--- a/client/context/NetworkStatusProvider/index.tsx
+++ b/packages/app/context/NetworkStatusProvider/index.tsx
@@ -2,7 +2,7 @@ import React, { createContext, useEffect } from 'react';
// import { store } from '../store/store';
import { useDispatch } from 'react-redux';
import { setNetworkStatus } from '../../store/offlineQueue';
-import { checkNetworkConnected } from '~/utils/netInfo';
+import { checkNetworkConnected } from 'app/utils/netInfo';
const NetworkStatusContext = createContext();
diff --git a/client/context/ThirdPartyThemeProviders.tsx b/packages/app/context/ThirdPartyThemeProviders.tsx
similarity index 100%
rename from client/context/ThirdPartyThemeProviders.tsx
rename to packages/app/context/ThirdPartyThemeProviders.tsx
diff --git a/client/context/auth.tsx b/packages/app/context/auth.tsx
similarity index 100%
rename from client/context/auth.tsx
rename to packages/app/context/auth.tsx
diff --git a/client/context/tRPC/index.tsx b/packages/app/context/tRPC/index.tsx
similarity index 98%
rename from client/context/tRPC/index.tsx
rename to packages/app/context/tRPC/index.tsx
index 8753bfefc..b862b56d3 100644
--- a/client/context/tRPC/index.tsx
+++ b/packages/app/context/tRPC/index.tsx
@@ -4,7 +4,7 @@ import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
import { useState } from 'react';
import * as React from 'react';
import { createTRPCReact } from '@trpc/react-query';
-import { api } from '~/constants/api';
+import { api } from 'app/constants/api';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
// import { trpc } from '../../trpc';
diff --git a/client/context/theme.tsx b/packages/app/context/theme.tsx
similarity index 100%
rename from client/context/theme.tsx
rename to packages/app/context/theme.tsx
diff --git a/client/hooks/about/useAbout.js b/packages/app/hooks/about/useAbout.js
similarity index 100%
rename from client/hooks/about/useAbout.js
rename to packages/app/hooks/about/useAbout.js
diff --git a/client/hooks/appearance/useAppearance.js b/packages/app/hooks/appearance/useAppearance.js
similarity index 100%
rename from client/hooks/appearance/useAppearance.js
rename to packages/app/hooks/appearance/useAppearance.js
diff --git a/packages/app/hooks/card/useSummaryCardLogic.ts b/packages/app/hooks/card/useSummaryCardLogic.ts
new file mode 100644
index 000000000..c20d433a2
--- /dev/null
+++ b/packages/app/hooks/card/useSummaryCardLogic.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+
+const useSummaryCardLogic = () => {
+ const [dummyData, setDummyData] = useState([
+ 'First-aid kit',
+ 'Water bottles',
+ 'Tent',
+ 'Sleeping bags (2x)',
+ ]);
+
+ const handleDelete = () => {};
+
+ const handleEdit = () => {};
+
+ return { dummyData, handleDelete, handleEdit };
+};
+
+export default useSummaryCardLogic;
diff --git a/client/hooks/chat/index.ts b/packages/app/hooks/chat/index.ts
similarity index 100%
rename from client/hooks/chat/index.ts
rename to packages/app/hooks/chat/index.ts
diff --git a/packages/app/hooks/chat/useChat.ts b/packages/app/hooks/chat/useChat.ts
new file mode 100644
index 000000000..219d834f7
--- /dev/null
+++ b/packages/app/hooks/chat/useChat.ts
@@ -0,0 +1,74 @@
+import { useDispatch } from 'react-redux';
+import { useSelector } from '../redux/useSelector';
+import { useState } from 'react';
+import { useGetUserChats } from './useGetUserChats';
+import { useGetAIResponse } from './useGetAIResponse';
+
+export const useChat = (defaultChatId = null) => {
+ const dispatch = useDispatch();
+ const user = useSelector((state) => state.auth.user);
+ const [conversationId, setConversationId] = useState(defaultChatId);
+ // const conversation = useSelector((state) =>
+ // selectConversationById(state, conversationId),
+ // );
+ // const conversations = useSelector((state) => selectAllConversations(state));
+ const [userInput, setUserInput] = useState('');
+ // const [parsedMessages, setParsedMessages] = useState([]);
+
+ const { data: chatsData, refetch } = useGetUserChats(user._id);
+
+ const { getAIResponse } = useGetAIResponse();
+
+ const conversations = chatsData?.conversations;
+
+ /**
+ * Parses a conversation history string and returns an array of objects representing each message in the conversation.
+ *
+ * @param {string} historyString - The string containing the conversation history.
+ * @return {Array} An array of objects representing each message in the conversation.
+ */
+ const parseConversationHistory = (historyString) => {
+ const historyArray = historyString.split('\n');
+ return historyArray.reduce((accumulator, current) => {
+ const isAI = current.startsWith('AI:');
+ const content = isAI ? current.substring(3) : current;
+ const role = isAI ? 'ai' : 'user';
+ if (content) {
+ accumulator.push({ role, content });
+ }
+ return accumulator;
+ }, []);
+ };
+
+ const conversation = conversations?.find(
+ (chat) => chat._id === conversationId,
+ );
+
+ // Compute parsedMessages directly
+ const parsedMessages = conversation
+ ? parseConversationHistory(conversation.history)
+ : [];
+
+ console.log('parsedMessages:', parsedMessages);
+
+ /**
+ * Handles sending a message.
+ *
+ * @return {Promise} This function returns nothing.
+ */
+ const handleSendMessage = async () => {
+ await getAIResponse({ userId: user._id, conversationId, userInput });
+ refetch();
+ setUserInput('');
+ };
+
+ return {
+ conversations,
+ conversationId,
+ parsedMessages,
+ userInput,
+ handleSendMessage,
+ setUserInput,
+ setConversationId,
+ };
+};
diff --git a/client/hooks/chat/useGetAIResponse.ts b/packages/app/hooks/chat/useGetAIResponse.ts
similarity index 100%
rename from client/hooks/chat/useGetAIResponse.ts
rename to packages/app/hooks/chat/useGetAIResponse.ts
diff --git a/client/hooks/chat/useGetUserChats.ts b/packages/app/hooks/chat/useGetUserChats.ts
similarity index 100%
rename from client/hooks/chat/useGetUserChats.ts
rename to packages/app/hooks/chat/useGetUserChats.ts
diff --git a/packages/app/hooks/common/index.ts b/packages/app/hooks/common/index.ts
new file mode 100644
index 000000000..39b25af02
--- /dev/null
+++ b/packages/app/hooks/common/index.ts
@@ -0,0 +1 @@
+export { useIsMobileView } from './useIsMobileView';
diff --git a/packages/app/hooks/common/useIsMobileView.ts b/packages/app/hooks/common/useIsMobileView.ts
new file mode 100644
index 000000000..8cd12d5b0
--- /dev/null
+++ b/packages/app/hooks/common/useIsMobileView.ts
@@ -0,0 +1,7 @@
+import { useMedia } from 'tamagui';
+
+export const useIsMobileView = () => {
+ const media = useMedia();
+
+ return media.md;
+};
diff --git a/client/hooks/dashboard/index.ts b/packages/app/hooks/dashboard/index.ts
similarity index 100%
rename from client/hooks/dashboard/index.ts
rename to packages/app/hooks/dashboard/index.ts
diff --git a/client/hooks/dashboard/useQuickActions.ts b/packages/app/hooks/dashboard/useQuickActions.ts
similarity index 100%
rename from client/hooks/dashboard/useQuickActions.ts
rename to packages/app/hooks/dashboard/useQuickActions.ts
diff --git a/client/hooks/destination/index.ts b/packages/app/hooks/destination/index.ts
similarity index 100%
rename from client/hooks/destination/index.ts
rename to packages/app/hooks/destination/index.ts
diff --git a/client/hooks/destination/useGetDestination.ts b/packages/app/hooks/destination/useGetDestination.ts
similarity index 100%
rename from client/hooks/destination/useGetDestination.ts
rename to packages/app/hooks/destination/useGetDestination.ts
diff --git a/client/hooks/destination/useGetPhotonDetails.ts b/packages/app/hooks/destination/useGetPhotonDetails.ts
similarity index 100%
rename from client/hooks/destination/useGetPhotonDetails.ts
rename to packages/app/hooks/destination/useGetPhotonDetails.ts
diff --git a/client/hooks/destination/useProcessGeoJson.ts b/packages/app/hooks/destination/useProcessGeoJson.ts
similarity index 100%
rename from client/hooks/destination/useProcessGeoJson.ts
rename to packages/app/hooks/destination/useProcessGeoJson.ts
diff --git a/client/hooks/favorites/index.ts b/packages/app/hooks/favorites/index.ts
similarity index 100%
rename from client/hooks/favorites/index.ts
rename to packages/app/hooks/favorites/index.ts
diff --git a/client/hooks/favorites/useAddFavorite.ts b/packages/app/hooks/favorites/useAddFavorite.ts
similarity index 100%
rename from client/hooks/favorites/useAddFavorite.ts
rename to packages/app/hooks/favorites/useAddFavorite.ts
diff --git a/client/hooks/favorites/useFetchUserFavorites.ts b/packages/app/hooks/favorites/useFetchUserFavorites.ts
similarity index 100%
rename from client/hooks/favorites/useFetchUserFavorites.ts
rename to packages/app/hooks/favorites/useFetchUserFavorites.ts
diff --git a/client/hooks/feed/index.ts b/packages/app/hooks/feed/index.ts
similarity index 100%
rename from client/hooks/feed/index.ts
rename to packages/app/hooks/feed/index.ts
diff --git a/client/hooks/feed/publicFeed.ts b/packages/app/hooks/feed/publicFeed.ts
similarity index 100%
rename from client/hooks/feed/publicFeed.ts
rename to packages/app/hooks/feed/publicFeed.ts
diff --git a/client/hooks/geojson/index.ts b/packages/app/hooks/geojson/index.ts
similarity index 100%
rename from client/hooks/geojson/index.ts
rename to packages/app/hooks/geojson/index.ts
diff --git a/client/hooks/geojson/useConvertToGpx.ts b/packages/app/hooks/geojson/useConvertToGpx.ts
similarity index 100%
rename from client/hooks/geojson/useConvertToGpx.ts
rename to packages/app/hooks/geojson/useConvertToGpx.ts
diff --git a/client/hooks/globalItems.ts b/packages/app/hooks/globalItems.ts
similarity index 100%
rename from client/hooks/globalItems.ts
rename to packages/app/hooks/globalItems.ts
diff --git a/packages/app/hooks/itemrow/index.ts b/packages/app/hooks/itemrow/index.ts
new file mode 100644
index 000000000..34ca2a141
--- /dev/null
+++ b/packages/app/hooks/itemrow/index.ts
@@ -0,0 +1 @@
+export * from './useItemRow';
diff --git a/packages/app/hooks/itemrow/useItemRow.ts b/packages/app/hooks/itemrow/useItemRow.ts
new file mode 100644
index 000000000..2cdff4433
--- /dev/null
+++ b/packages/app/hooks/itemrow/useItemRow.ts
@@ -0,0 +1,9 @@
+import { useState } from 'react';
+
+export const useItemRow = () => {
+ const [isChecked, setChecked] = useState(false);
+ const handleChange = (value: boolean) => {
+ setChecked(value);
+ };
+ return { isChecked, handleChange };
+};
diff --git a/client/hooks/login/index.ts b/packages/app/hooks/login/index.ts
similarity index 68%
rename from client/hooks/login/index.ts
rename to packages/app/hooks/login/index.ts
index 68c7059c4..fdbe03cf4 100644
--- a/client/hooks/login/index.ts
+++ b/packages/app/hooks/login/index.ts
@@ -1,2 +1,3 @@
export { useLogin } from './useLogin';
export { useGoogleAuth } from './useGoogleAuth';
+export { useLogout } from './useLogout';
diff --git a/client/hooks/login/useGoogleAuth.ts b/packages/app/hooks/login/useGoogleAuth.ts
similarity index 100%
rename from client/hooks/login/useGoogleAuth.ts
rename to packages/app/hooks/login/useGoogleAuth.ts
diff --git a/client/hooks/login/useLogin.ts b/packages/app/hooks/login/useLogin.ts
similarity index 100%
rename from client/hooks/login/useLogin.ts
rename to packages/app/hooks/login/useLogin.ts
diff --git a/packages/app/hooks/login/useLogout.ts b/packages/app/hooks/login/useLogout.ts
new file mode 100644
index 000000000..834bfcf30
--- /dev/null
+++ b/packages/app/hooks/login/useLogout.ts
@@ -0,0 +1,15 @@
+import { useDispatch } from 'react-redux';
+import { useSession } from '../../context/auth';
+import { signOut } from '../../store/authStore';
+
+export const useLogout = () => {
+ const dispatch = useDispatch();
+ const { sessionSignOut } = useSession();
+
+ const logout = () => {
+ dispatch(signOut());
+ sessionSignOut();
+ };
+
+ return logout;
+};
diff --git a/packages/app/hooks/map/index.ts b/packages/app/hooks/map/index.ts
new file mode 100644
index 000000000..eff47360c
--- /dev/null
+++ b/packages/app/hooks/map/index.ts
@@ -0,0 +1,2 @@
+export { useWebMap } from './useWebMap';
+export { useNativeMap } from './useNativeMap';
diff --git a/packages/app/hooks/map/useNativeMap.ts b/packages/app/hooks/map/useNativeMap.ts
new file mode 100644
index 000000000..55a99eee6
--- /dev/null
+++ b/packages/app/hooks/map/useNativeMap.ts
@@ -0,0 +1,159 @@
+import React, { useEffect, useState, useRef } from 'react';
+import { Alert } from 'react-native';
+import Geolocation from '@react-native-community/geolocation';
+import { offlineManager } from '@rnmapbox/maps';
+import { useToast } from 'native-base';
+
+import {
+ calculateZoomLevel,
+ findTrailCenter,
+ getShapeSourceBounds,
+ mapboxStyles,
+} from '../../utils/mapFunctions';
+
+export const useNativeMap = ({ shape: shapeProp }) => {
+ const camera = useRef(null);
+ const mapViewRef = useRef(null);
+ const cancelRef = React.useRef(null);
+ const [location, setLocation] = useState({
+ longitude: 0.0,
+ latitude: 0.0,
+ });
+ const [getLocationLoading, setGetLocationLoading] = useState(false);
+ const [correctLocation, setCorrectLocation] = useState(false);
+ const [mapFullscreen, setMapFullscreen] = useState(false);
+ const [progress, setProgress] = useState(0);
+ const [downloading, setDownloading] = useState(false);
+ const [mapStyle, setMapStyle] = useState(mapboxStyles[0].style);
+ const [showMapNameInputDialog, setShowMapNameInputDialog] = useState(false);
+ const [shape, setShape] = useState(shapeProp);
+ const [mapName, setMapName] = useState(shape?.features[0]?.properties?.name);
+ const [trailCenterPoint, setTrailCenterPoint] = useState(
+ findTrailCenter(shape),
+ );
+
+ const toast = useToast();
+
+ // consts
+ let bounds = getShapeSourceBounds(shape);
+ // console.log("๐ ~ file: NativeMap.native.js:99 ~ NativeMap ~ bounds:", bounds)
+ bounds = bounds[0].concat(bounds[1]);
+ const zoomLevel = calculateZoomLevel(bounds, { width: dw, height: 360 });
+ // console.log("trailCenterPoint", trailCenterPoint);
+ // console.log("zoomLevel", zoomLevel);
+
+ // effects
+ useEffect(() => {
+ // update the shape state when a new shapeProp gets passed
+ if (shapeProp !== shape) setShape(shapeProp);
+ }, [shapeProp]);
+
+ useEffect(() => {
+ // update mapName & calculate new trailCenter whenever shape changes e.g newly passed shapeProp or new shape from gpx upload
+ setMapName(shape?.features[0]?.properties?.name);
+ setTrailCenterPoint(findTrailCenter(shape));
+ }, [shape]);
+
+ /**
+ * Retrieves the current position using Geolocation API and updates the location state.
+ *
+ * @param {function} onSucccess - a callback function to be executed on success
+ * @return {undefined} This function does not return anything
+ */
+ const getPosition = (onSucccess) => {
+ Geolocation.getCurrentPosition(
+ (data) => {
+ setLocation({
+ ...location,
+ longitude: Number(data.coords.longitude),
+ latitude: Number(data.coords.latitude),
+ });
+ setCorrectLocation(true);
+ onSucccess?.(location);
+ },
+ (error) => {
+ setCorrectLocation(false);
+ Alert.alert('Something went wrong with location', error.message);
+ },
+ { enableHighAccuracy: false, timeout: 20000, maximumAge: 1000 },
+ );
+ };
+
+ /**
+ * Handles the press event on the map.
+ *
+ * @param {Event} event - The press event object.
+ */
+ function onMapPress(event) {
+ console.log(event, 'eventtt');
+ // if (trailCenterPoint) {
+ // mapViewFullScreenRef?.current.setCamera({
+ // centerCoordinate: trailCenterPoint,
+ // });
+ // }
+ }
+
+ /**
+ * Handles the download progress of an offline region.
+ *
+ * @param {Object} offlineRegion - The offline region being downloaded.
+ * @param {Object} offlineRegionStatus - The status of the offline region download.
+ * @returns {void}
+ */
+ function onDownloadProgress(offlineRegion, offlineRegionStatus) {
+ console.log('control there', offlineRegionStatus?.percentage);
+ setProgress(offlineRegionStatus.percentage);
+ setDownloading(true);
+ if (offlineRegionStatus.percentage == 100) {
+ Alert.alert('Map download successfully!');
+ setDownloading(false);
+ }
+ }
+ /**
+ * A function that serves as an error listener for the offline region.
+ *
+ * @param {Object} offlineRegion - The offline region object.
+ * @param {Object} error - The error object.
+ */
+ function errorListener(offlineRegion, error) {
+ Alert.alert(error.message);
+ }
+ /**
+ * Downloads a file using the provided options.
+ *
+ * @param {object} optionsForDownload - The options for the download.
+ * @return {Promise} A promise that resolves when the download is complete.
+ */
+ async function onDownload(optionsForDownload) {
+ // start download
+ offlineManager
+ .createPack(optionsForDownload, onDownloadProgress, errorListener)
+ .catch((error) => {
+ Alert.alert(error.message);
+ });
+ }
+
+ return {
+ camera,
+ mapViewRef,
+ cancelRef,
+ location,
+ mapFullscreen,
+ setMapFullscreen,
+ progress,
+ downloading,
+ mapStyle,
+ setMapStyle,
+ showMapNameInputDialog,
+ setShowMapNameInputDialog,
+ shape,
+ setShape,
+ mapName,
+ setMapName,
+ trailCenterPoint,
+ setTrailCenterPoint,
+ zoomLevel,
+ getPosition,
+ onDownload,
+ };
+};
diff --git a/client/components/map/WebMap.web.tsx b/packages/app/hooks/map/useWebMap.ts
similarity index 81%
rename from client/components/map/WebMap.web.tsx
rename to packages/app/hooks/map/useWebMap.ts
index 4d667200d..46b8f89d6 100644
--- a/client/components/map/WebMap.web.tsx
+++ b/packages/app/hooks/map/useWebMap.ts
@@ -1,52 +1,23 @@
-import React, {
- useRef,
- useState,
- useEffect,
- useCallback,
- useMemo,
-} from 'react';
-import mapboxgl, { Marker } from 'mapbox-gl';
-import { MAPBOX_ACCESS_TOKEN } from '@env';
-import { useSelector, useDispatch } from 'react-redux';
+import { useState, useEffect, useRef, useMemo, useCallback } from 'react';
+import { Dimensions } from 'react-native';
+import mapboxgl from 'mapbox-gl';
+import togpx from 'togpx';
import {
- Platform,
- Text,
- View,
- TouchableOpacity,
- Dimensions,
- Image,
- Modal,
- Alert,
-} from 'react-native';
-import {
- getShapeSourceBounds,
calculateZoomLevel,
findTrailCenter,
- processShapeData,
- mapboxStyles,
getLocation,
- isShapeDownloadable,
+ getShapeSourceBounds,
isPoint,
isPolygonOrMultiPolygon,
+ isShapeDownloadable,
+ mapboxStyles,
multiPolygonBounds,
-} from '../../utils/mapFunctions';
-import MapButtonsOverlay from './MapButtonsOverlay';
-import { saveFile } from '../../utils/fileSaver/fileSaver';
-import * as DocumentPicker from 'expo-document-picker';
-import togpx from 'togpx';
-import { gpx as toGeoJSON } from '@tmcw/togeojson';
-import { DOMParser } from 'xmldom';
-import MapPreview from './MapPreview';
-import useCustomStyles from '~/hooks/useCustomStyles';
-
-// import 'mapbox-gl/dist/mapbox-gl.css'
-
-mapboxgl.accessToken = MAPBOX_ACCESS_TOKEN;
+ processShapeData,
+} from 'app/utils/mapFunctions';
+import { saveFile } from 'app/utils/fileSaver/fileSaver.web';
-const DESTINATION = 'destination';
-const TRIP = 'trip';
-const WebMap = ({ shape: shapeProp }) => {
+export const useWebMap = ({ shape: shapeProp }) => {
// useEffect(() => {
// // temporary solution to fix mapbox-gl-js missing css error
// if (Platform.OS === 'web') {
@@ -94,9 +65,7 @@ const WebMap = ({ shape: shapeProp }) => {
const [userLat, setUserLat] = useState(null);
// download variables
- const dispatch = useDispatch();
const [downloadable, setDownloadable] = useState(false);
- const styles = useCustomStyles(loadStyles);
useEffect(() => {
// update the shape state when a new shapeProp gets passed
@@ -488,77 +457,29 @@ const WebMap = ({ shape: shapeProp }) => {
}
};
console.log(isPolygonOrMultiPolygon(shape) || showModal, 'polygon or not');
- const element = (
-
- {showModal || isPolygonOrMultiPolygon(shape) ? (
-
- ) : (
-
- )}
- {
- console.log('clikedd');
- try {
- const result = await DocumentPicker.getDocumentAsync({
- type: 'application/gpx+xml',
- });
- console.log('result', result);
- if (result.type === 'success') {
- const base64Gpx = result.uri.split(',')[1];
- const gpxString = atob(base64Gpx);
- const parsedGpx = new DOMParser().parseFromString(gpxString);
- const geojson = toGeoJSON(parsedGpx);
- setShape(geojson);
- }
- } catch (err) {
- Alert.alert('An error occured');
- }
- }}
- shape={shape}
- />
-
- );
-
- return showModal ? (
-
- {element}
-
- ) : (
- element
- );
+ return {
+ mapContainer,
+ lng,
+ lat,
+ zoomLevel,
+ mapFullscreen,
+ downloading,
+ showModal,
+ mapStyle,
+ showUserLocation,
+ userLng,
+ userLat,
+ fetchGpxDownload,
+ enableFullScreen,
+ disableFullScreen,
+ handleChangeMapStyle,
+ openMaps,
+ fetchLocation,
+ downloadable,
+ previewMapDiemension,
+ fullMapDiemention,
+ map,
+ shape,
+ setShape,
+ };
};
-
-const loadStyles = () => ({
- container: {
- alignItems: 'center',
- justifyContent: 'center',
- width: '100%',
- borderRadius: '10px',
- },
- map: {
- width: '100%',
- minHeight: '100vh', // Adjust the height to your needs
- },
- modal: {
- alignItems: 'center',
- },
-});
-
-export default WebMap;
diff --git a/packages/app/hooks/navigation/index.ts b/packages/app/hooks/navigation/index.ts
new file mode 100644
index 000000000..c75870da7
--- /dev/null
+++ b/packages/app/hooks/navigation/index.ts
@@ -0,0 +1,5 @@
+export { useNavigationList } from './useNavigationList';
+export { useDrawer } from './useDrawer';
+export { useNavigate } from './useNavigate';
+export { useNavigationItem } from './useNavigationItem';
+export { useRouter } from './useRouter';
diff --git a/packages/app/hooks/navigation/useDrawer.ts b/packages/app/hooks/navigation/useDrawer.ts
new file mode 100644
index 000000000..9debb075c
--- /dev/null
+++ b/packages/app/hooks/navigation/useDrawer.ts
@@ -0,0 +1,13 @@
+import { useState } from 'react';
+
+export const useDrawer = () => {
+ const [isDrawerOpen, setIsDrawerOpen] = useState(false);
+
+ const toggleDrawer = () => {
+ setIsDrawerOpen((prevState) => !prevState);
+ };
+
+ const closeDrower = () => setIsDrawerOpen(false);
+
+ return { isDrawerOpen, toggleDrawer, closeDrower };
+};
diff --git a/packages/app/hooks/navigation/useNavigate.ts b/packages/app/hooks/navigation/useNavigate.ts
new file mode 100644
index 000000000..61eae3010
--- /dev/null
+++ b/packages/app/hooks/navigation/useNavigate.ts
@@ -0,0 +1,17 @@
+import { useCallback } from 'react';
+import { useRouter } from './useRouter';
+
+export const useNavigate = () => {
+ const router = useRouter();
+
+ const navigate = useCallback(
+ (href) => {
+ setTimeout(() => {
+ router.push(href);
+ }, 0);
+ },
+ [router],
+ );
+
+ return navigate;
+};
diff --git a/packages/app/hooks/navigation/useNavigationItem.ts b/packages/app/hooks/navigation/useNavigationItem.ts
new file mode 100644
index 000000000..e94e467c2
--- /dev/null
+++ b/packages/app/hooks/navigation/useNavigationItem.ts
@@ -0,0 +1,25 @@
+import { useState } from 'react';
+import { EvilIcons } from '@expo/vector-icons';
+import { usePathname } from 'expo-router';
+import { useLogout } from '../login';
+import { useNavigate } from './useNavigate';
+
+export const useNavigationItem = (item, onSelect) => {
+ const pathname = usePathname();
+ const logout = useLogout();
+ const navigate = useNavigate();
+ const { iconSource, href } = item;
+ const IconComponent = iconSource || EvilIcons;
+ const isCurrentPage = pathname === href;
+
+ const handleItemPress = () => {
+ if (item.href === 'logout') {
+ logout();
+ return;
+ }
+ onSelect?.();
+ navigate(item.href);
+ };
+
+ return { IconComponent, isCurrentPage, handleItemPress };
+};
diff --git a/packages/app/hooks/navigation/useNavigationList.ts b/packages/app/hooks/navigation/useNavigationList.ts
new file mode 100644
index 000000000..d476dd501
--- /dev/null
+++ b/packages/app/hooks/navigation/useNavigationList.ts
@@ -0,0 +1,107 @@
+import { useMemo, useState } from 'react';
+import {
+ MaterialCommunityIcons,
+ FontAwesome,
+ MaterialIcons,
+ Entypo,
+ Fontisto,
+} from '@expo/vector-icons';
+import { useAuthUser } from '../user/useAuthUser';
+import { Platform } from 'react-native';
+
+export const useNavigationList = () => {
+ const user = useAuthUser();
+
+ const navigationItems = useMemo(() => {
+ const additionalMenuItems = user
+ ? logedInMenuItems
+ : [
+ {
+ href: 'sign-in',
+ icon: 'login',
+ text: 'Login',
+ iconSource: MaterialIcons,
+ },
+ {
+ href: 'register',
+ icon: 'person-add',
+ text: 'Register',
+ iconSource: MaterialIcons,
+ },
+ ];
+
+ return [...staticNavigationItems, ...additionalMenuItems];
+ }, [user]);
+
+ return { navigationItems };
+};
+
+const staticNavigationItems = [
+ {
+ href: '/',
+ icon: 'home',
+ text: 'Home',
+ iconSource: Entypo,
+ },
+ {
+ href: '/about',
+ icon: 'info',
+ text: 'About',
+ iconSource: MaterialIcons,
+ },
+];
+
+const logedInMenuItems = [
+ {
+ href: '/feed',
+ icon: 'newspaper-variant',
+ text: 'Feed',
+ iconSource: MaterialCommunityIcons,
+ },
+ {
+ href: '/trips',
+ icon: 'routes',
+ text: 'Trips',
+ iconSource: MaterialCommunityIcons,
+ },
+ {
+ href: '/packs',
+ icon: 'backpack',
+ text: 'Packs',
+ iconSource: MaterialIcons,
+ },
+ ...(Platform.OS != 'web'
+ ? [
+ {
+ href: 'maps',
+ icon: 'map',
+ text: 'Downloaded Maps',
+ iconSource: Entypo,
+ },
+ ]
+ : []),
+ {
+ href: '/items',
+ icon: 'tent',
+ text: 'Items',
+ iconSource: Fontisto,
+ },
+ {
+ href: '/profile',
+ icon: 'book',
+ text: 'Profile',
+ iconSource: FontAwesome,
+ },
+ {
+ href: '/appearance',
+ icon: 'theme-light-dark',
+ text: 'Appearance',
+ iconSource: MaterialCommunityIcons,
+ },
+ {
+ href: 'logout',
+ icon: 'logout',
+ text: 'Logout',
+ iconSource: MaterialIcons,
+ },
+];
diff --git a/packages/app/hooks/navigation/useRouter.ts b/packages/app/hooks/navigation/useRouter.ts
new file mode 100644
index 000000000..58a833536
--- /dev/null
+++ b/packages/app/hooks/navigation/useRouter.ts
@@ -0,0 +1,19 @@
+import { useRouter as useExpoRouter } from 'expo-router';
+
+interface HrefObject {
+ pathname?: string;
+ /** Query parameters for the path. */
+ params?: Record;
+}
+
+type Href = HrefObject | string;
+
+interface Router {
+ push: (href: Href) => void;
+}
+
+export const useRouter = (): Router => {
+ const { push } = useExpoRouter();
+
+ return { push };
+};
diff --git a/client/hooks/packs/index.ts b/packages/app/hooks/packs/index.ts
similarity index 100%
rename from client/hooks/packs/index.ts
rename to packages/app/hooks/packs/index.ts
diff --git a/client/hooks/packs/useAddNewPack.ts b/packages/app/hooks/packs/useAddNewPack.ts
similarity index 100%
rename from client/hooks/packs/useAddNewPack.ts
rename to packages/app/hooks/packs/useAddNewPack.ts
diff --git a/client/hooks/packs/useAddPackItem.ts b/packages/app/hooks/packs/useAddPackItem.ts
similarity index 100%
rename from client/hooks/packs/useAddPackItem.ts
rename to packages/app/hooks/packs/useAddPackItem.ts
diff --git a/client/hooks/packs/useDeletePackItem.ts b/packages/app/hooks/packs/useDeletePackItem.ts
similarity index 100%
rename from client/hooks/packs/useDeletePackItem.ts
rename to packages/app/hooks/packs/useDeletePackItem.ts
diff --git a/client/hooks/packs/useEditPackItem.ts b/packages/app/hooks/packs/useEditPackItem.ts
similarity index 100%
rename from client/hooks/packs/useEditPackItem.ts
rename to packages/app/hooks/packs/useEditPackItem.ts
diff --git a/client/hooks/packs/useFetchSinglePack.ts b/packages/app/hooks/packs/useFetchSinglePack.ts
similarity index 100%
rename from client/hooks/packs/useFetchSinglePack.ts
rename to packages/app/hooks/packs/useFetchSinglePack.ts
diff --git a/packages/app/hooks/packs/usePackTable.tsx b/packages/app/hooks/packs/usePackTable.tsx
new file mode 100644
index 000000000..187d1486f
--- /dev/null
+++ b/packages/app/hooks/packs/usePackTable.tsx
@@ -0,0 +1,127 @@
+import { useDispatch } from 'react-redux';
+import { useSelector } from '../redux/useSelector';
+import { useState } from 'react';
+import { duplicatePackItem } from 'app/store/packsStore';
+import { ItemCategoryEnum } from 'app/constants/itemCategory';
+import { convertWeight } from 'app/utils/convertWeight';
+
+export const usePackTable = ({
+ currentPack,
+ selectedPack,
+ refetch,
+ setRefetch,
+ copy,
+}) => {
+ const user = useSelector((state) => state.auth.user);
+ const dispatch = useDispatch();
+ let ids = [];
+ if (currentPack?.items) {
+ ids = copy ? currentPack.items.map((item) => item._id) : [];
+ }
+ const [checkedItems, setCheckedItems] = useState([...ids]);
+
+ const handleDuplicate = () => {
+ const data = {
+ packId: currentPack._id,
+ ownerId: user._id,
+ items: checkedItems,
+ };
+ dispatch(duplicatePackItem(data));
+ };
+
+ const [weightUnit, setWeightUnit] = useState('g');
+ const isLoading = useSelector((state: any) => state.packs.isLoading);
+
+ const error = useSelector((state: any) => state.items.error);
+ const data = currentPack?.items;
+ let totalFoodWeight = 0;
+ let totalWaterWeight = 0;
+ let totalBaseWeight = 0;
+
+ let waterItem;
+ const foodItems = [];
+ // for calculating the total.
+ /*
+ Todo better to move this all inside a utility function and pass them variables
+ */
+ data
+ ?.filter((item) => !checkedItems.includes(item._id))
+ .forEach((item) => {
+ const categoryName = item.category ? item.category.name : 'Undefined';
+ const itemWeight = Number(item.weight) || 0; // ensure it's a number
+ const itemQuantity = Number(item.quantity) || 0; // ensure it's a number
+ const itemUnit = item.unit || null;
+
+ if (!copy) {
+ switch (categoryName) {
+ case ItemCategoryEnum.ESSENTIALS: {
+ totalBaseWeight += convertWeight(
+ itemWeight * itemQuantity,
+ itemUnit,
+ weightUnit,
+ );
+ break;
+ }
+ case ItemCategoryEnum.FOOD: {
+ totalFoodWeight += convertWeight(
+ itemWeight * itemQuantity,
+ itemUnit,
+ weightUnit,
+ );
+ foodItems.push(item);
+ break;
+ }
+ case ItemCategoryEnum.WATER: {
+ totalWaterWeight += convertWeight(
+ itemWeight * itemQuantity,
+ itemUnit,
+ weightUnit,
+ );
+ waterItem = item;
+ break;
+ }
+ }
+ }
+ });
+
+ const totalWeight = totalBaseWeight + totalWaterWeight + totalFoodWeight;
+
+ const handleCheckboxChange = (itemId) => {
+ setCheckedItems((prev) =>
+ prev.includes(itemId)
+ ? prev.filter((id) => id !== itemId)
+ : [...prev, itemId],
+ );
+ };
+
+ // In your groupedData definition, provide a default category for items without one
+ const groupedData = data
+ ?.filter((fItem) => !Array.isArray(fItem.category))
+ ?.reduce((acc, item) => {
+ const categoryName = item.category ? item.category.name : 'Undefined';
+ (acc[categoryName] = acc[categoryName] || []).push(item);
+ return acc;
+ }, {});
+
+ return {
+ user,
+ dispatch,
+ ids,
+ checkedItems,
+ setCheckedItems,
+ handleDuplicate,
+ weightUnit,
+ setWeightUnit,
+ isLoading,
+ error,
+ data,
+ totalFoodWeight,
+ totalWaterWeight,
+ totalBaseWeight,
+ waterItem,
+ foodItems,
+ totalWeight,
+ handleCheckboxChange,
+ groupedData,
+ };
+};
diff --git a/client/hooks/packs/useUserPacks.ts b/packages/app/hooks/packs/useUserPacks.ts
similarity index 93%
rename from client/hooks/packs/useUserPacks.ts
rename to packages/app/hooks/packs/useUserPacks.ts
index 893e83c96..f586d81b8 100644
--- a/client/hooks/packs/useUserPacks.ts
+++ b/packages/app/hooks/packs/useUserPacks.ts
@@ -1,5 +1,5 @@
import { getQueryKey } from '@trpc/react-query';
-import { queryClient } from '~/constants/queryClient';
+import { queryClient } from 'app/constants/queryClient';
import { queryTrpc } from '../../trpc';
export const useUserPacks = (ownerId, queryString = '') => {
diff --git a/client/hooks/parks/index.ts b/packages/app/hooks/parks/index.ts
similarity index 100%
rename from client/hooks/parks/index.ts
rename to packages/app/hooks/parks/index.ts
diff --git a/client/hooks/photonDetail.ts b/packages/app/hooks/photonDetail.ts
similarity index 100%
rename from client/hooks/photonDetail.ts
rename to packages/app/hooks/photonDetail.ts
diff --git a/packages/app/hooks/redux/useSelector.ts b/packages/app/hooks/redux/useSelector.ts
new file mode 100644
index 000000000..9e60a7a3a
--- /dev/null
+++ b/packages/app/hooks/redux/useSelector.ts
@@ -0,0 +1,7 @@
+import {
+ type TypedUseSelectorHook,
+ useSelector as useSelectorRaw,
+} from 'react-redux';
+import { type RootState } from 'store/store';
+
+export const useSelector: TypedUseSelectorHook = useSelectorRaw;
diff --git a/packages/app/hooks/score/index.ts b/packages/app/hooks/score/index.ts
new file mode 100644
index 000000000..9f544d18b
--- /dev/null
+++ b/packages/app/hooks/score/index.ts
@@ -0,0 +1,3 @@
+export * from './useScoreProgress';
+export * from './useGradingPie';
+export * from './useScoreData';
diff --git a/packages/app/hooks/score/useGradingPie.ts b/packages/app/hooks/score/useGradingPie.ts
new file mode 100644
index 000000000..36669887f
--- /dev/null
+++ b/packages/app/hooks/score/useGradingPie.ts
@@ -0,0 +1,37 @@
+export const useGradingPie = (scores) => {
+ const { weightScore, essentialItemsScore, redundancyAndVersatilityScore } =
+ scores;
+ const radius = 70;
+ const circleCircumference = 2 * Math.PI * radius;
+
+ const total =
+ weightScore + essentialItemsScore + redundancyAndVersatilityScore;
+
+ const weightPercentage = (weightScore / total) * 100;
+ const essentialItemsPercentage = (essentialItemsScore / total) * 100;
+ const redundancyAndVersatilityPercentage =
+ (redundancyAndVersatilityScore / total) * 100;
+
+ const weightStrokeDashoffset =
+ circleCircumference - (circleCircumference * weightPercentage) / 100;
+ const essentialItemsStrokeDashoffset =
+ circleCircumference -
+ (circleCircumference * essentialItemsPercentage) / 100;
+ const redundancyAndVersatilityStrokeDashoffset =
+ circleCircumference -
+ (circleCircumference * redundancyAndVersatilityPercentage) / 100;
+
+ const essentialItemsAngle = (weightScore / total) * 360;
+ const redundancyAndVersatilityAngle =
+ essentialItemsAngle + (essentialItemsScore / total) * 360;
+ return {
+ radius,
+ circleCircumference,
+ total,
+ weightStrokeDashoffset,
+ essentialItemsStrokeDashoffset,
+ redundancyAndVersatilityStrokeDashoffset,
+ essentialItemsAngle,
+ redundancyAndVersatilityAngle,
+ };
+};
diff --git a/packages/app/hooks/score/useScoreData.ts b/packages/app/hooks/score/useScoreData.ts
new file mode 100644
index 000000000..c4c615a37
--- /dev/null
+++ b/packages/app/hooks/score/useScoreData.ts
@@ -0,0 +1,38 @@
+export const useScoreData = (type, data) => {
+ const id = data._id;
+ const totalScore = data.totalScore;
+ const grades = data.grades;
+ const scores = data.scores;
+
+ const isAlreadyScored = totalScore !== null;
+
+ const textData = {
+ pack: {
+ title: isAlreadyScored ? 'Pack Score' : 'Score this pack!',
+ subheader: 'See how this pack matches up with our scoring system!',
+ description:
+ 'PackRating is our proprietary scoring system that rates packs based on their weight, essential items, and redundancy and versatility. We worked with experts to create a system that is as objective as possible. The higher the score, the better the pack!',
+ },
+ trip: {
+ title: isAlreadyScored ? 'Trip Score' : 'Score this trip!',
+ subheader: 'See how this trip matches up with our scoring system!',
+ description:
+ 'PackRating is our proprietary scoring system that rates trips based on their weight, essential items, and redundancy and versatility. We worked with experts to create a system that is as objective as possible. The higher the score, the better the trip!',
+ },
+ };
+
+ const title = textData[type].title;
+ const subheader = textData[type].subheader;
+ const description = textData[type].description;
+
+ return {
+ id,
+ totalScore,
+ grades,
+ scores,
+ isAlreadyScored,
+ title,
+ subheader,
+ description,
+ };
+};
diff --git a/packages/app/hooks/score/useScoreProgress.ts b/packages/app/hooks/score/useScoreProgress.ts
new file mode 100644
index 000000000..2c1855d94
--- /dev/null
+++ b/packages/app/hooks/score/useScoreProgress.ts
@@ -0,0 +1,11 @@
+export const useScoreProgress = (score, size, strokeWidth) => {
+ const radius = (size - strokeWidth) / 2;
+ const circumference = 2 * Math.PI * radius;
+ const progress = score / 100;
+ const progressPath = progress * circumference;
+ return {
+ radius,
+ circumference,
+ progressPath,
+ };
+};
diff --git a/client/hooks/search/index.ts b/packages/app/hooks/search/index.ts
similarity index 100%
rename from client/hooks/search/index.ts
rename to packages/app/hooks/search/index.ts
diff --git a/client/hooks/search/useSearchInput.ts b/packages/app/hooks/search/useSearchInput.ts
similarity index 96%
rename from client/hooks/search/useSearchInput.ts
rename to packages/app/hooks/search/useSearchInput.ts
index 8c8627306..309774c95 100644
--- a/client/hooks/search/useSearchInput.ts
+++ b/packages/app/hooks/search/useSearchInput.ts
@@ -5,7 +5,7 @@ import {
clearSearchResults,
} from '../../store/searchStore';
import { setLatLng } from '../../store/weatherStore';
-import { usePhotonDetail } from '~/hooks/photonDetail';
+import { usePhotonDetail } from 'app/hooks/photonDetail';
import { type RootState } from 'store/store';
const useSearchInput = (onSelect) => {
diff --git a/client/hooks/singletrips/index.ts b/packages/app/hooks/singletrips/index.ts
similarity index 100%
rename from client/hooks/singletrips/index.ts
rename to packages/app/hooks/singletrips/index.ts
diff --git a/client/hooks/singletrips/useFetchSingleTrip.ts b/packages/app/hooks/singletrips/useFetchSingleTrip.ts
similarity index 100%
rename from client/hooks/singletrips/useFetchSingleTrip.ts
rename to packages/app/hooks/singletrips/useFetchSingleTrip.ts
diff --git a/client/hooks/singletrips/useUserTrips.ts b/packages/app/hooks/singletrips/useUserTrips.ts
similarity index 100%
rename from client/hooks/singletrips/useUserTrips.ts
rename to packages/app/hooks/singletrips/useUserTrips.ts
diff --git a/client/hooks/trails/index.ts b/packages/app/hooks/trails/index.ts
similarity index 100%
rename from client/hooks/trails/index.ts
rename to packages/app/hooks/trails/index.ts
diff --git a/client/hooks/trips/index.ts b/packages/app/hooks/trips/index.ts
similarity index 100%
rename from client/hooks/trips/index.ts
rename to packages/app/hooks/trips/index.ts
diff --git a/client/hooks/trips/useAddTrip.ts b/packages/app/hooks/trips/useAddTrip.ts
similarity index 100%
rename from client/hooks/trips/useAddTrip.ts
rename to packages/app/hooks/trips/useAddTrip.ts
diff --git a/client/hooks/trips/useDeleteTrips.ts b/packages/app/hooks/trips/useDeleteTrips.ts
similarity index 100%
rename from client/hooks/trips/useDeleteTrips.ts
rename to packages/app/hooks/trips/useDeleteTrips.ts
diff --git a/client/hooks/trips/useEditTrips.ts b/packages/app/hooks/trips/useEditTrips.ts
similarity index 100%
rename from client/hooks/trips/useEditTrips.ts
rename to packages/app/hooks/trips/useEditTrips.ts
diff --git a/client/hooks/trips/useFetchTrips.ts b/packages/app/hooks/trips/useFetchTrips.ts
similarity index 100%
rename from client/hooks/trips/useFetchTrips.ts
rename to packages/app/hooks/trips/useFetchTrips.ts
diff --git a/client/hooks/trips/usePhotonDetails.ts b/packages/app/hooks/trips/usePhotonDetails.ts
similarity index 100%
rename from client/hooks/trips/usePhotonDetails.ts
rename to packages/app/hooks/trips/usePhotonDetails.ts
diff --git a/packages/app/hooks/trips/useTripCard.ts b/packages/app/hooks/trips/useTripCard.ts
new file mode 100644
index 000000000..95f7b56ba
--- /dev/null
+++ b/packages/app/hooks/trips/useTripCard.ts
@@ -0,0 +1,29 @@
+import { useDispatch } from 'react-redux';
+import { useSelector } from '../redux/useSelector';
+import { addPark, addTrail } from 'app/store/dropdownStore';
+import { selectAllTrails } from 'app/store/trailsStore';
+
+export const useCardTrip = () => {
+ const dispatch = useDispatch();
+ const currentTrail = useSelector((state) => state.dropdown.currentTrail);
+ const currentPark = useSelector((state) => state.dropdown.currentPark);
+ const trailsDetails = useSelector(selectAllTrails); // updated selector for new trails slice
+ const currentShape = trailsDetails.filter(
+ (trail: any) => trail.properties.name == currentTrail,
+ );
+
+ const addTrailFn = (isTrail, isPark, value) => {
+ if (isTrail) {
+ dispatch(addTrail(value));
+ } else if (isPark) {
+ dispatch(addPark(value));
+ }
+ };
+
+ return {
+ currentTrail,
+ currentPark,
+ currentShape,
+ addTrailFn,
+ };
+};
diff --git a/client/hooks/useCustomStyles.tsx b/packages/app/hooks/useCustomStyles.tsx
similarity index 100%
rename from client/hooks/useCustomStyles.tsx
rename to packages/app/hooks/useCustomStyles.tsx
diff --git a/client/hooks/useEditItem.tsx b/packages/app/hooks/useEditItem.tsx
similarity index 100%
rename from client/hooks/useEditItem.tsx
rename to packages/app/hooks/useEditItem.tsx
diff --git a/client/hooks/useMatchesCurrentUser.ts b/packages/app/hooks/useMatchesCurrentUser.ts
similarity index 100%
rename from client/hooks/useMatchesCurrentUser.ts
rename to packages/app/hooks/useMatchesCurrentUser.ts
diff --git a/client/hooks/useNetworkStatus.tsx b/packages/app/hooks/useNetworkStatus.tsx
similarity index 100%
rename from client/hooks/useNetworkStatus.tsx
rename to packages/app/hooks/useNetworkStatus.tsx
diff --git a/client/hooks/useStorageState.ts b/packages/app/hooks/useStorageState.ts
similarity index 100%
rename from client/hooks/useStorageState.ts
rename to packages/app/hooks/useStorageState.ts
diff --git a/client/hooks/useTheme.tsx b/packages/app/hooks/useTheme.tsx
similarity index 100%
rename from client/hooks/useTheme.tsx
rename to packages/app/hooks/useTheme.tsx
diff --git a/client/hooks/user/index.ts b/packages/app/hooks/user/index.ts
similarity index 100%
rename from client/hooks/user/index.ts
rename to packages/app/hooks/user/index.ts
diff --git a/client/hooks/user/useAuthUser.ts b/packages/app/hooks/user/useAuthUser.ts
similarity index 100%
rename from client/hooks/user/useAuthUser.ts
rename to packages/app/hooks/user/useAuthUser.ts
diff --git a/client/hooks/user/useGetUser.ts b/packages/app/hooks/user/useGetUser.ts
similarity index 100%
rename from client/hooks/user/useGetUser.ts
rename to packages/app/hooks/user/useGetUser.ts
diff --git a/client/hooks/user/useProfile.ts b/packages/app/hooks/user/useProfile.ts
similarity index 100%
rename from client/hooks/user/useProfile.ts
rename to packages/app/hooks/user/useProfile.ts
diff --git a/client/hooks/user/useProfileSettings.ts b/packages/app/hooks/user/useProfileSettings.ts
similarity index 100%
rename from client/hooks/user/useProfileSettings.ts
rename to packages/app/hooks/user/useProfileSettings.ts
diff --git a/client/hooks/user/useRegisterUser.ts b/packages/app/hooks/user/useRegisterUser.ts
similarity index 100%
rename from client/hooks/user/useRegisterUser.ts
rename to packages/app/hooks/user/useRegisterUser.ts
diff --git a/packages/app/hooks/water/index.ts b/packages/app/hooks/water/index.ts
new file mode 100644
index 000000000..c4fccdc79
--- /dev/null
+++ b/packages/app/hooks/water/index.ts
@@ -0,0 +1 @@
+export * from './useWater';
diff --git a/packages/app/hooks/water/useWater.ts b/packages/app/hooks/water/useWater.ts
new file mode 100644
index 000000000..a5df6690c
--- /dev/null
+++ b/packages/app/hooks/water/useWater.ts
@@ -0,0 +1,39 @@
+import React, { useState } from 'react';
+import { useDispatch } from 'react-redux';
+import { addPackItem } from 'store/packsStore';
+import { ItemCategoryEnum } from 'app/constants/itemCategory';
+
+export const useWater = ({ currentPack, setWaterItem }) => {
+ const [waterWeight, setWaterWeight] = useState(0);
+ const dispatch = useDispatch();
+
+ /**
+ * Update the water weight.
+ *
+ * @param {type} value - the new value of the water weight
+ * @return {undefined} no return value
+ */
+ const handleWaterChange = (value) => {
+ setWaterWeight(value);
+ };
+
+ /**
+ * Adds water to the pack.
+ *
+ * @return {void} No return value.
+ */
+ const addWater = () => {
+ const data = {
+ name: 'Water',
+ weight: waterWeight,
+ quantity: '1',
+ unit: 'oz',
+ packId: currentPack._id,
+ type: ItemCategoryEnum.WATER,
+ };
+
+ dispatch(addPackItem(data));
+ };
+
+ return { handleWaterChange, addWater, waterWeight };
+};
diff --git a/client/hooks/weather/index.ts b/packages/app/hooks/weather/index.ts
similarity index 100%
rename from client/hooks/weather/index.ts
rename to packages/app/hooks/weather/index.ts
diff --git a/packages/app/hooks/weather/useDate.ts b/packages/app/hooks/weather/useDate.ts
new file mode 100644
index 000000000..ab7843162
--- /dev/null
+++ b/packages/app/hooks/weather/useDate.ts
@@ -0,0 +1,15 @@
+import { format, addDays } from 'date-fns';
+
+export const useDate = () => {
+ const date = new Date();
+ const dateFormatted = format(date, 'MMMM d, yyyy');
+ const getNext4Days = (currentDate) => {
+ return Array.from({ length: 4 }, (_, i) =>
+ format(addDays(currentDate, i + 1), 'EEEE'),
+ );
+ };
+ const day = date.getDay();
+ const restOfWeek = getNext4Days(date);
+
+ return { dateFormatted, day, restOfWeek };
+};
diff --git a/client/hooks/weather/useFetchWeather.ts b/packages/app/hooks/weather/useFetchWeather.ts
similarity index 51%
rename from client/hooks/weather/useFetchWeather.ts
rename to packages/app/hooks/weather/useFetchWeather.ts
index ce9495ca0..53b1ef1dd 100644
--- a/client/hooks/weather/useFetchWeather.ts
+++ b/packages/app/hooks/weather/useFetchWeather.ts
@@ -1,7 +1,16 @@
import { queryTrpc } from '../../trpc';
import { store } from '../../store/store';
+import { useState, useEffect } from 'react';
+import { parseCoordinates } from 'app/utils/coordinatesParser';
-export const useFetchWeather = (latLng) => {
+export const useFetchWeather = (geoJSON) => {
+ const [latLng, setLatLng] = useState({ lat: null, lon: null });
+ useEffect(() => {
+ /**
+ * @return {Promise} - A Promise that resolves when the weather data is fetched and stored.
+ */
+ setLatLng(parseCoordinates(geoJSON));
+ }, [geoJSON]);
const { lat, lon } = latLng;
const isEnabled = Boolean(lat && lon);
const { refetch, data, error, isLoading, isError } =
diff --git a/client/hooks/weather/useFetchWeatherWeek.ts b/packages/app/hooks/weather/useFetchWeatherWeek.ts
similarity index 52%
rename from client/hooks/weather/useFetchWeatherWeek.ts
rename to packages/app/hooks/weather/useFetchWeatherWeek.ts
index cf00345b1..e9133c65c 100644
--- a/client/hooks/weather/useFetchWeatherWeek.ts
+++ b/packages/app/hooks/weather/useFetchWeatherWeek.ts
@@ -1,7 +1,16 @@
import { queryTrpc } from '../../trpc';
import { store } from '../../store/store';
+import { useEffect, useState } from 'react';
+import { parseCoordinates } from 'app/utils/coordinatesParser';
-export const useFetchWeatherWeak = (latLng) => {
+export const useFetchWeatherWeak = (geoJSON) => {
+ const [latLng, setLatLng] = useState({ lat: null, lon: null });
+ useEffect(() => {
+ /**
+ * @return {Promise} - A Promise that resolves when the weather data is fetched and stored.
+ */
+ setLatLng(parseCoordinates(geoJSON));
+ }, [geoJSON]);
const { lat, lon } = latLng;
const isEnabled = Boolean(lat && lon);
const { refetch, data, error, isLoading, isError } =
diff --git a/client/media/index.tsx b/packages/app/media/index.tsx
similarity index 100%
rename from client/media/index.tsx
rename to packages/app/media/index.tsx
diff --git a/packages/app/package.json b/packages/app/package.json
new file mode 100644
index 000000000..47147d334
--- /dev/null
+++ b/packages/app/package.json
@@ -0,0 +1,175 @@
+{
+ "name": "app",
+ "version": "1.0.0",
+ "main": "index.js",
+ "scripts": {
+ "lint": "eslint . --fix",
+ "start-web": "TAMAGUI_TARGET=web npx expo start -c",
+ "start-native": "TAMAGUI_TARGET=native npx expo start -c",
+ "start": "EXPO_USE_METRO_WORKSPACE_ROOT=1 npx expo start --dev-client -c",
+ "android": "TAMAGUI_TARGET=native npx expo run:android",
+ "ios": "TAMAGUI_TARGET=native npx expo run:ios",
+ "web": "npx expo start --web",
+ "test": "echo \"No tests yet\"",
+ "setup": "yarn setup:copy && yarn setup:keyreplace && yarn setup:move",
+ "setup:copy": "yarn copy:env && yarn copy:app && yarn copy:gradle && yarn copy:pod",
+ "setup:keyreplace": "node setup.js",
+ "setup:move": "yarn move:gradle && yarn move:pod",
+ "copy:env": "test -f .env && echo '.env already exists, skipping copy' || (echo 'Copying .env.example to .env' && cp .env.example .env)",
+ "copy:app": "cp app.example.json app.json",
+ "copy:gradle": "cp gradle.properties.example gradle.properties",
+ "copy:pod": "cp Podfile.example Podfile",
+ "move:gradle": "mv gradle.properties android/gradle.properties",
+ "move:pod": "mv Podfile ios/Podfile"
+ },
+ "dependencies": {
+ "@babel/runtime": "^7.21.0",
+ "@expo/match-media": "^0.4.0",
+ "@expo/vector-icons": "^13.0.0",
+ "@expo/webpack-config": "^19.0.0",
+ "@fortawesome/fontawesome-svg-core": "^6.3.0",
+ "@fortawesome/free-solid-svg-icons": "^6.3.0",
+ "@fortawesome/react-fontawesome": "^0.2.0",
+ "@hookform/resolvers": "^3.3.1",
+ "@packrat/ui": "*",
+ "@packrat/validations": "*",
+ "@react-native-async-storage/async-storage": "^1.21.0",
+ "@react-native-community/geolocation": "^3.0.6",
+ "@react-native-community/netinfo": "^9.4.1",
+ "@react-native-google-signin/google-signin": "^9.0.2",
+ "@react-navigation/native": "^6.1.6",
+ "@react-navigation/native-stack": "^6.9.12",
+ "@reduxjs/toolkit": "^1.9.3",
+ "@rnmapbox/maps": "^10.0.0-beta.79",
+ "@tamagui/animations-react-native": "^1.84.1",
+ "@tamagui/babel-plugin": "^1.84.1",
+ "@tamagui/config": "^1.84.1",
+ "@tamagui/font-inter": "^1.84.1",
+ "@tamagui/linear-gradient": "^1.84.1",
+ "@tamagui/lucide-icons": "^1.84.1",
+ "@tamagui/progress": "^1.84.1",
+ "@tamagui/react-native-media-driver": "^1.84.1",
+ "@tamagui/shorthands": "^1.84.1",
+ "@tamagui/switch": "^1.84.1",
+ "@tamagui/theme-base": "^1.84.1",
+ "@tamagui/themes": "^1.84.1",
+ "@tanstack/query-async-storage-persister": "^4.36.1",
+ "@tanstack/react-query": "^4.36.1",
+ "@tanstack/react-query-devtools": "^4.36.1",
+ "@tanstack/react-query-persist-client": "^4.36.1",
+ "@tmcw/togeojson": "^5.7.0",
+ "@trpc/client": "^10.38.5",
+ "@trpc/react-query": "^10.38.5",
+ "@trpc/server": "^10.38.5",
+ "axios": "^1.4.0",
+ "babel-plugin-transform-inline-environment-variables": "^0.4.4",
+ "burnt": "^0.12.1",
+ "date-fns": "^2.29.3",
+ "dotenv": "^16.0.3",
+ "eslint-plugin-react-native": "^4.0.0",
+ "expo": "49.0.15",
+ "expo-application": "~5.3.0",
+ "expo-auth-session": "~5.0.2",
+ "expo-checkbox": "~2.4.0",
+ "expo-constants": "~14.4.2",
+ "expo-crypto": "~12.4.1",
+ "expo-document-picker": "~11.5.4",
+ "expo-file-system": "~15.4.4",
+ "expo-font": "~11.4.0",
+ "expo-image-picker": "~14.3.2",
+ "expo-linking": "~5.0.2",
+ "expo-location": "~16.1.0",
+ "expo-random": "~13.2.0",
+ "expo-router": "^2.0.9",
+ "expo-secure-store": "~12.3.1",
+ "expo-splash-screen": "~0.20.5",
+ "expo-standard-web-crypto": "^1.7.0",
+ "expo-status-bar": "~1.6.0",
+ "expo-system-ui": "~2.4.0",
+ "expo-web-browser": "~12.3.2",
+ "file-saver": "^2.0.5",
+ "firebase": "^9.19.1",
+ "fuse.js": "^6.6.2",
+ "lodash": "^4.17.21",
+ "mapbox-gl": "1.13.3",
+ "native-base": "^3.4.28",
+ "normalize-css-color": "^1.0.2",
+ "osmtogeojson": "^3.0.0-beta.5",
+ "react": "18.2.0",
+ "react-dom": "^18.2.0",
+ "react-hook-form": "^7.46.1",
+ "react-native": "0.72.6",
+ "react-native-dotenv": "^3.4.8",
+ "react-native-elements": "^3.4.3",
+ "react-native-flash-message": "^0.4.2",
+ "react-native-gesture-handler": "~2.12.0",
+ "react-native-google-places-autocomplete": "^2.5.1",
+ "react-native-paper": "^5.10.6",
+ "react-native-paper-dates": "^0.18.12",
+ "react-native-safe-area-context": "^4.7.4",
+ "react-native-screens": "~3.22.0",
+ "react-native-select-dropdown": "^3.3.4",
+ "react-native-svg": "13.9.0",
+ "react-native-table-component": "https://github.com/slice312/react-native-table-component.git",
+ "react-native-vector-icons": "^9.2.0",
+ "react-native-web": "~0.19.6",
+ "react-native-webview": "13.2.2",
+ "react-redux": "^9.0.4",
+ "react-responsive": "^9.0.2",
+ "redux-persist": "^6.0.0",
+ "serve": "^14.2.0",
+ "server": "*",
+ "solito": "^4.2.0",
+ "superjson": "^2.0.0",
+ "tamagui": "^1.84.1",
+ "togpx": "^0.5.4",
+ "uuid": "3.4.0",
+ "xmldom": "^0.6.0",
+ "zod": "^3.22.2"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.21.3",
+ "@babel/preset-typescript": "^7.22.5",
+ "@tanstack/eslint-plugin-query": "^5.14.6",
+ "@tsconfig/react-native": "^3.0.2",
+ "@types/jest": "^29.5.3",
+ "@types/lodash": "^4.14.202",
+ "@types/node": "^20.8.3",
+ "@types/react": "^18.2.20",
+ "@types/react-native": "^0.72.5",
+ "@types/react-test-renderer": "^18.0.0",
+ "@types/server": "^1.0.5",
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
+ "eslint": "^8.47.0",
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-config-standard-with-typescript": "^38.0.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-n": "^16.0.2",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-react": "^7.33.2",
+ "prettier": "^3.0.2",
+ "typescript": "^5.2.2"
+ },
+ "overrides": {
+ "metro": "0.73.7",
+ "metro-resolver": "0.73.7"
+ },
+ "private": true,
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all",
+ "not safari < 10",
+ "not chrome < 51",
+ "not android < 5",
+ "not ie < 12"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ }
+}
diff --git a/packages/app/provider/CombinedProvider.tsx b/packages/app/provider/CombinedProvider.tsx
new file mode 100644
index 000000000..cb4801603
--- /dev/null
+++ b/packages/app/provider/CombinedProvider.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import { SessionProvider } from '../context/auth';
+import { ThemeProvider } from '../context/theme';
+import { TrpcTanstackProvider } from './TrpcTanstackProvider';
+import { ReduxProvider } from './ReduxProvider';
+
+export function CombinedProvider({ children }: { children: React.ReactNode }) {
+ return (
+
+
+
+ {children}
+
+
+
+ );
+}
diff --git a/packages/app/provider/ReduxProvider/index.tsx b/packages/app/provider/ReduxProvider/index.tsx
new file mode 100644
index 000000000..57fb87cfb
--- /dev/null
+++ b/packages/app/provider/ReduxProvider/index.tsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import { Provider as ReduxStoreProvider } from 'react-redux';
+import { PersistGate } from 'redux-persist/integration/react';
+import { store, persistor } from '../../store/store';
+
+export const ReduxProvider: React.FC<{ children: React.ReactNode }> = ({
+ children,
+}) => {
+ return (
+
+
+ {children}
+
+
+ );
+};
diff --git a/packages/app/provider/TrpcTanstackProvider/index.tsx b/packages/app/provider/TrpcTanstackProvider/index.tsx
new file mode 100644
index 000000000..051f785e1
--- /dev/null
+++ b/packages/app/provider/TrpcTanstackProvider/index.tsx
@@ -0,0 +1,65 @@
+import React, { useEffect } from 'react';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client';
+import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { onlineManager } from '@tanstack/react-query';
+import NetInfo from '@react-native-community/netinfo';
+import { queryTrpc, getToken } from '../../trpc';
+import { httpBatchLink } from '@trpc/client';
+import { api } from 'app/constants/api';
+import { Platform } from 'react-native';
+
+export const TrpcTanstackProvider: React.FC<{ children: React.ReactNode }> = ({
+ children,
+}) => {
+ const [queryClient] = React.useState(() => new QueryClient());
+
+ const persister = createAsyncStoragePersister({
+ storage: AsyncStorage,
+ throttleTime: 3000,
+ });
+
+ useEffect(() => {
+ return NetInfo.addEventListener((state) => {
+ const status = !!state.isConnected;
+ onlineManager.setOnline(status);
+ });
+ }, []);
+
+ const trpcClient = queryTrpc.createClient({
+ links: [
+ httpBatchLink({
+ url: `${api}/trpc`,
+ async headers() {
+ const token = await getToken('session');
+ return {
+ authorization: token ? `Bearer ${token}` : '',
+ };
+ },
+ }),
+ ],
+ });
+
+ return (
+
+ queryClient
+ .resumePausedMutations()
+ .then(async () => queryClient.invalidateQueries())
+ }
+ persistOptions={{ persister }}
+ client={queryClient}
+ >
+
+
+ {children}
+ {Platform.OS === 'web' && (
+
+ )}
+
+
+
+ );
+};
diff --git a/client/provider/index.tsx b/packages/app/provider/index.tsx
similarity index 100%
rename from client/provider/index.tsx
rename to packages/app/provider/index.tsx
diff --git a/client/provider/safe-area/index.tsx b/packages/app/provider/safe-area/index.tsx
similarity index 100%
rename from client/provider/safe-area/index.tsx
rename to packages/app/provider/safe-area/index.tsx
diff --git a/client/provider/safe-area/index.web.tsx b/packages/app/provider/safe-area/index.web.tsx
similarity index 100%
rename from client/provider/safe-area/index.web.tsx
rename to packages/app/provider/safe-area/index.web.tsx
diff --git a/client/provider/safe-area/use-safe-area.ts b/packages/app/provider/safe-area/use-safe-area.ts
similarity index 100%
rename from client/provider/safe-area/use-safe-area.ts
rename to packages/app/provider/safe-area/use-safe-area.ts
diff --git a/client/provider/safe-area/use-safe-area.web.ts b/packages/app/provider/safe-area/use-safe-area.web.ts
similarity index 100%
rename from client/provider/safe-area/use-safe-area.web.ts
rename to packages/app/provider/safe-area/use-safe-area.web.ts
diff --git a/client/screens/LoginScreen.tsx b/packages/app/screens/LoginScreen.tsx
similarity index 89%
rename from client/screens/LoginScreen.tsx
rename to packages/app/screens/LoginScreen.tsx
index 8fb58f0d9..c64ee2238 100644
--- a/client/screens/LoginScreen.tsx
+++ b/packages/app/screens/LoginScreen.tsx
@@ -5,11 +5,11 @@ import { NODE_ENV } from '@env';
import { Link, usePathname } from 'expo-router';
import { InformUser } from '../utils/ToastUtils';
import useTheme from '../hooks/useTheme';
-import { InputText, InputTextRules } from '~/components/InputText';
-import { useGoogleAuth, useLogin } from '~/hooks/login';
+import { InputText, InputTextRules } from 'app/components/InputText';
+import { useGoogleAuth, useLogin } from 'app/hooks/login';
const demoUser = {
- email: 'email52@email.com',
+ email: 'zoot3@email.com',
password: '12345678',
};
@@ -39,7 +39,7 @@ export default function Login() {
return (
-
+
Welcome
@@ -47,12 +47,12 @@ export default function Login() {
color="grey"
fontWeight="medium"
fontSize={14}
- style={{ marginTop: '8px' }}
+ style={{ marginTop: 8 }}
>
Sign in to continue!
-
+
Sign in
@@ -116,7 +116,7 @@ export default function Login() {
{/* Google Login starts */}
-
+
Welcome
@@ -37,11 +37,11 @@ export default function Register() {
color="grey"
fontWeight="medium"
fontSize={14}
- style={{ marginTop: '8px' }}
+ style={{ marginTop: 8 }}
>
Sign up to continue!
-
+
registerUser()}
- style={{ marginTop: '16px' }}
+ style={{ marginTop: 16 }}
backgroundColor="mediumpurple"
>
{'Sign up'}
@@ -107,7 +107,7 @@ export default function Register() {
{/* Google register */}
{
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
diff --git a/client/screens/appearance/AppearanceContainer.tsx b/packages/app/screens/appearance/AppearanceContainer.tsx
similarity index 94%
rename from client/screens/appearance/AppearanceContainer.tsx
rename to packages/app/screens/appearance/AppearanceContainer.tsx
index 305096fc8..bfbaff798 100644
--- a/client/screens/appearance/AppearanceContainer.tsx
+++ b/packages/app/screens/appearance/AppearanceContainer.tsx
@@ -12,9 +12,9 @@ import {
ScrollView,
} from 'tamagui';
import { Card as RNPCard } from 'react-native-paper';
-import { DialogDemo } from '../../components/dialog';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import useAppearance from '~/hooks/appearance/useAppearance';
+import { DialogDemo } from '../../components/DialogDemo';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import useAppearance from 'app/hooks/appearance/useAppearance';
import { Scroll } from '@tamagui/lucide-icons';
export default function AppearanceContainer() {
diff --git a/client/screens/dashboard/index.tsx b/packages/app/screens/dashboard/index.tsx
similarity index 97%
rename from client/screens/dashboard/index.tsx
rename to packages/app/screens/dashboard/index.tsx
index 23e4e7a59..82e13cf29 100644
--- a/client/screens/dashboard/index.tsx
+++ b/packages/app/screens/dashboard/index.tsx
@@ -8,7 +8,7 @@ import QuickActionsSection from '../../components/dashboard/QuickActionSection';
import FeedPreview from '../../components/dashboard/FeedPreview';
import Section from '../../components/dashboard/Section';
import SectionHeader from '../../components/dashboard/SectionHeader';
-import useCustomStyles from '~/hooks/useCustomStyles';
+import useCustomStyles from 'app/hooks/useCustomStyles';
const Dashboard = () => {
const styles = useCustomStyles(loadStyles);
diff --git a/client/screens/feed/Feed.tsx b/packages/app/screens/feed/Feed.tsx
similarity index 97%
rename from client/screens/feed/Feed.tsx
rename to packages/app/screens/feed/Feed.tsx
index 2e1b183a9..c17315c1d 100644
--- a/client/screens/feed/Feed.tsx
+++ b/packages/app/screens/feed/Feed.tsx
@@ -13,13 +13,13 @@ import {
selectAllPacks,
} from '../../store/packsStore';
// import { fetchUserTrips, selectAllTrips } from '../../store/tripsStore';
-import { usefetchTrips } from '~/hooks/trips';
+import { usefetchTrips } from 'app/hooks/trips';
import { useRouter } from 'expo-router';
import { fuseSearch } from '../../utils/fuseSearch';
import { fetchUserFavorites } from '../../store/favoritesStore';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import FeedSearchFilter from '~/components/feed/FeedSearchFilter';
-import { useFeed } from '~/hooks/feed';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import FeedSearchFilter from 'app/components/feed/FeedSearchFilter';
+import { useFeed } from 'app/hooks/feed';
import { RefreshControl } from 'react-native';
import { RText } from '@packrat/ui';
diff --git a/client/screens/header/index.tsx b/packages/app/screens/header/index.tsx
similarity index 61%
rename from client/screens/header/index.tsx
rename to packages/app/screens/header/index.tsx
index d7749a405..3d3cabcdf 100644
--- a/client/screens/header/index.tsx
+++ b/packages/app/screens/header/index.tsx
@@ -1,5 +1,5 @@
-import Navigation from '../Navigation';
-import ProgressBarComponent from '~/components/progress';
+import { Navigation } from '../../components/navigation';
+import ProgressBarComponent from 'app/components/progress';
export default function Header() {
return (
diff --git a/client/screens/items/index.tsx b/packages/app/screens/items/index.tsx
similarity index 60%
rename from client/screens/items/index.tsx
rename to packages/app/screens/items/index.tsx
index 8a4818927..256fd94cf 100644
--- a/client/screens/items/index.tsx
+++ b/packages/app/screens/items/index.tsx
@@ -4,24 +4,21 @@ import { Box, Button, ScrollView, Tooltip } from 'native-base';
import { MaterialIcons } from '@expo/vector-icons';
import { theme } from '../../theme';
import useTheme from '../../hooks/useTheme';
-import { CustomModal } from '../../components/modal';
import { AddItemGlobal } from '../../components/item/AddItemGlobal';
import { ItemsTable } from '../../components/itemtable/itemTable';
import { useDispatch, useSelector } from 'react-redux';
import { getItemsGlobal } from '../../store/globalItemsStore';
import { Stack } from 'expo-router';
import { executeOfflineRequests } from '../../store/offlineQueue';
-import useCustomStyles from '~/hooks/useCustomStyles';
-// import { checkNetworkConnected } from '~/utils/netInfo';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { BaseModal } from '@packrat/ui';
+// import { checkNetworkConnected } from 'app/utils/netInfo';
export default function Items() {
const [isAddItemModalOpen, setIsAddItemModalOpen] = useState(false);
const [limit, setLimit] = useState(5);
const [page, setPage] = useState(1);
const [refetch, setRefetch] = useState(false);
-
- const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
- useTheme();
const styles = useCustomStyles(loadStyles);
const data = useSelector((state) => state.globalItems);
const isLoading = useSelector((state) => state.globalItems.isLoading);
@@ -49,58 +46,13 @@ export default function Items() {
}}
/>
-
-
- {Platform.OS === 'web' && (
-
-
-
- )}
-
- }
- onCancel={setIsAddItemModalOpen}
+ triggerComponent={}
>
-
-
+
+
{!isError &&
data.globalItems &&
Array.isArray(data.globalItems.items) && (
@@ -121,6 +73,43 @@ export default function Items() {
);
}
+const ModalTriggerButton = ({ setIsModalOpen }) => {
+ const { currentTheme } = useTheme();
+ const styles = useCustomStyles(loadStyles);
+
+ return (
+
+
+ {Platform.OS === 'web' && (
+
+
+
+ )}
+
+ );
+};
+
const loadStyles = (theme) => {
const { currentTheme } = theme;
diff --git a/client/screens/trip/TripDetails.tsx b/packages/app/screens/trip/TripDetails.tsx
similarity index 97%
rename from client/screens/trip/TripDetails.tsx
rename to packages/app/screens/trip/TripDetails.tsx
index a15acc13b..ff45e64f1 100644
--- a/client/screens/trip/TripDetails.tsx
+++ b/packages/app/screens/trip/TripDetails.tsx
@@ -16,8 +16,8 @@ import TripCard from '../../components/TripCard';
import { FontAwesome5 } from '@expo/vector-icons';
import { convertPhotonGeoJsonToShape } from '../../utils/mapFunctions';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import { useFetchSingleTrip } from '~/hooks/singletrips';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import { useFetchSingleTrip } from 'app/hooks/singletrips';
export function TripDetails() {
const { enableDarkMode, enableLightMode, isDark, isLight, currentTheme } =
useTheme();
diff --git a/client/screens/trip/createTrip.tsx b/packages/app/screens/trip/createTrip.tsx
similarity index 92%
rename from client/screens/trip/createTrip.tsx
rename to packages/app/screens/trip/createTrip.tsx
index a4923a5f9..cefbb3cb9 100644
--- a/client/screens/trip/createTrip.tsx
+++ b/packages/app/screens/trip/createTrip.tsx
@@ -6,18 +6,17 @@ import WeatherCard from '../../components/weather/WeatherCard';
import { FontAwesome, FontAwesome5 } from '@expo/vector-icons';
import { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
-import { GearList } from '../../components/GearList';
-import { SaveTripContainer } from '~/components/trip/createTripModal';
-import TripDateRange from '~/components/trip/TripDateRange';
-import { useFetchWeather, useFetchWeatherWeak } from '~/hooks/weather';
-// import MultiStepForm from "../multi_step";
+import { GearList } from '../../components/GearList/GearList';
+import { SaveTripContainer } from 'app/components/trip/createTripModal';
+import TripDateRange from 'app/components/trip/TripDateRange';
+import { useFetchWeather, useFetchWeatherWeak } from 'app/hooks/weather';
// import { photonDetails } from '../../store/destinationStore';
import useTheme from '../../hooks/useTheme';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import useParks from '~/hooks/parks';
-import useTrails from '~/hooks/trails';
-import { useGetPhotonDetails } from '~/hooks/destination';
-import { WeatherData } from '~/components/weather/WeatherData';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import useParks from 'app/hooks/parks';
+import useTrails from 'app/hooks/trails';
+import { useGetPhotonDetails } from 'app/hooks/destination';
+import { WeatherData } from 'app/components/weather/WeatherData';
export default function Trips() {
const { currentTheme } = useTheme();
const styles = useCustomStyles(loadStyles);
diff --git a/client/screens/user/ProfileContainer.tsx b/packages/app/screens/user/ProfileContainer.tsx
similarity index 89%
rename from client/screens/user/ProfileContainer.tsx
rename to packages/app/screens/user/ProfileContainer.tsx
index 1ed7862fb..04b9f435e 100644
--- a/client/screens/user/ProfileContainer.tsx
+++ b/packages/app/screens/user/ProfileContainer.tsx
@@ -7,9 +7,9 @@ import { MaterialCommunityIcons } from '@expo/vector-icons';
// import useGetPacks from "../../hooks/useGetPacks";
import { useDispatch } from 'react-redux';
import { useRouter } from 'expo-router';
-import useCustomStyles from '~/hooks/useCustomStyles';
-import Avatar from '../../components/Avatar';
-import { useProfile } from '~/hooks/user';
+import useCustomStyles from 'app/hooks/useCustomStyles';
+import Avatar from '../../components/Avatar/Avatar';
+import { useProfile } from 'app/hooks/user';
const SettingsButton = () => {
const router = useRouter();
@@ -23,10 +23,10 @@ const SettingsButton = () => {
onPress={onSettingsClick}
style={{
backgroundColor: 'transparent',
- marginBottom: '16px',
+ marginBottom: 16,
justifyContent: 'center',
border: '1px solid lightgray',
- borderRadius: '8px',
+ borderRadius: 8,
}}
icon={
@@ -72,15 +72,15 @@ const Header = ({
@@ -88,7 +88,7 @@ const Header = ({
) : (
<>
-
+
{userRealName}
{username}
@@ -102,16 +102,16 @@ const Header = ({
{isLoading ? (
<>
>
) : (
@@ -163,13 +163,9 @@ const SkeletonUserDataCard = () => {
boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
}}
>
-
-
-
+
+
+
);
};
diff --git a/client/screens/user/Settings.tsx b/packages/app/screens/user/Settings.tsx
similarity index 97%
rename from client/screens/user/Settings.tsx
rename to packages/app/screens/user/Settings.tsx
index 82f177eab..591ea9ace 100644
--- a/client/screens/user/Settings.tsx
+++ b/packages/app/screens/user/Settings.tsx
@@ -10,9 +10,9 @@ import {
RScrollView,
RLabel,
} from '@packrat/ui';
-import Avatar from '~/components/Avatar';
+import Avatar from 'app/components/Avatar/Avatar';
import DropdownComponent from '../../components/Dropdown';
-import { useProfileSettings } from '~/hooks/user';
+import { useProfileSettings } from 'app/hooks/user';
export default function Settings() {
const {
diff --git a/client/store/authStore.ts b/packages/app/store/authStore.ts
similarity index 100%
rename from client/store/authStore.ts
rename to packages/app/store/authStore.ts
diff --git a/client/store/chatStore.ts b/packages/app/store/chatStore.ts
similarity index 98%
rename from client/store/chatStore.ts
rename to packages/app/store/chatStore.ts
index 3915e50d8..9a833b767 100644
--- a/client/store/chatStore.ts
+++ b/packages/app/store/chatStore.ts
@@ -7,7 +7,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/destinationStore.ts b/packages/app/store/destinationStore.ts
similarity index 99%
rename from client/store/destinationStore.ts
rename to packages/app/store/destinationStore.ts
index 1510e10c3..a32193e92 100644
--- a/client/store/destinationStore.ts
+++ b/packages/app/store/destinationStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/dropdownStore.ts b/packages/app/store/dropdownStore.ts
similarity index 100%
rename from client/store/dropdownStore.ts
rename to packages/app/store/dropdownStore.ts
diff --git a/client/store/favoritesStore.ts b/packages/app/store/favoritesStore.ts
similarity index 99%
rename from client/store/favoritesStore.ts
rename to packages/app/store/favoritesStore.ts
index 84195dc3b..8b0f36b03 100644
--- a/client/store/favoritesStore.ts
+++ b/packages/app/store/favoritesStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/feedStore.ts b/packages/app/store/feedStore.ts
similarity index 98%
rename from client/store/feedStore.ts
rename to packages/app/store/feedStore.ts
index 68ccf29ef..96c3fe1f3 100644
--- a/client/store/feedStore.ts
+++ b/packages/app/store/feedStore.ts
@@ -4,7 +4,7 @@ import {
createEntityAdapter,
} from '@reduxjs/toolkit';
import { api } from '../constants/api';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { trpc } from '../trpc';
// Define the adapter for packs and trips
diff --git a/client/store/globalItemsStore.ts b/packages/app/store/globalItemsStore.ts
similarity index 92%
rename from client/store/globalItemsStore.ts
rename to packages/app/store/globalItemsStore.ts
index 23233438a..633269a50 100644
--- a/client/store/globalItemsStore.ts
+++ b/packages/app/store/globalItemsStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { queryTrpc, trpc } from '../trpc';
@@ -86,14 +86,9 @@ const itemsSlice = createSlice({
};
},
addItemOffline: (state, action) => {
- console.log(action.payload, 'add item offline');
- return {
- ...state,
- globalItems: {
- ...state.globalItems,
- items: [...state.globalItems.items, action.payload],
- },
- };
+ const newItem = action.payload;
+ const updatedState = itemsAdapter.addOne(state, newItem);
+ return updatedState;
},
},
extraReducers: (builder) => {
@@ -103,7 +98,7 @@ const itemsSlice = createSlice({
state.error = null;
})
.addCase(addItemsGlobal.fulfilled, (state, action) => {
- itemsAdapter.addOne(state, { ...action.payload });
+ itemsAdapter.addOne(state, action.payload);
state.isLoading = false;
state.error = null;
})
diff --git a/client/store/gpxStore.ts b/packages/app/store/gpxStore.ts
similarity index 100%
rename from client/store/gpxStore.ts
rename to packages/app/store/gpxStore.ts
diff --git a/client/store/itemsStore.ts b/packages/app/store/itemsStore.ts
similarity index 98%
rename from client/store/itemsStore.ts
rename to packages/app/store/itemsStore.ts
index 35d490fd0..4abcfd344 100644
--- a/client/store/itemsStore.ts
+++ b/packages/app/store/itemsStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/middleware/apiMessageMiddleware.ts b/packages/app/store/middleware/apiMessageMiddleware.ts
similarity index 96%
rename from client/store/middleware/apiMessageMiddleware.ts
rename to packages/app/store/middleware/apiMessageMiddleware.ts
index 6b61c13a6..c9d8b4136 100644
--- a/client/store/middleware/apiMessageMiddleware.ts
+++ b/packages/app/store/middleware/apiMessageMiddleware.ts
@@ -1,7 +1,7 @@
import { type Middleware } from '@reduxjs/toolkit';
import axios from 'axios';
-import { InformUser } from '~/utils/ToastUtils';
-import { api } from '~/constants/api';
+import { InformUser } from 'app/utils/ToastUtils';
+import { api } from 'app/constants/api';
const apiMiddleware: Middleware =
({ dispatch }) =>
diff --git a/client/store/offlineQueue.ts b/packages/app/store/offlineQueue.ts
similarity index 100%
rename from client/store/offlineQueue.ts
rename to packages/app/store/offlineQueue.ts
diff --git a/client/store/packsStore.ts b/packages/app/store/packsStore.ts
similarity index 99%
rename from client/store/packsStore.ts
rename to packages/app/store/packsStore.ts
index b32f06f88..66cfa5ebd 100644
--- a/client/store/packsStore.ts
+++ b/packages/app/store/packsStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { InformUser } from '../utils/ToastUtils';
import { trpc } from '../trpc';
diff --git a/client/store/parksStore.ts b/packages/app/store/parksStore.ts
similarity index 100%
rename from client/store/parksStore.ts
rename to packages/app/store/parksStore.ts
diff --git a/client/store/progressStore.ts b/packages/app/store/progressStore.ts
similarity index 100%
rename from client/store/progressStore.ts
rename to packages/app/store/progressStore.ts
diff --git a/client/store/searchStore.ts b/packages/app/store/searchStore.ts
similarity index 98%
rename from client/store/searchStore.ts
rename to packages/app/store/searchStore.ts
index c74d25152..0533be59e 100644
--- a/client/store/searchStore.ts
+++ b/packages/app/store/searchStore.ts
@@ -4,7 +4,7 @@ import {
createEntityAdapter,
} from '@reduxjs/toolkit';
import { api } from '../constants/api';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { trpc } from '../trpc';
export const fetchPhotonSearchResults = createAsyncThunk(
diff --git a/client/store/singlePackStore.ts b/packages/app/store/singlePackStore.ts
similarity index 98%
rename from client/store/singlePackStore.ts
rename to packages/app/store/singlePackStore.ts
index 557cbc978..e3b6d6c8e 100644
--- a/client/store/singlePackStore.ts
+++ b/packages/app/store/singlePackStore.ts
@@ -6,7 +6,7 @@ import {
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/singleTripStore.ts b/packages/app/store/singleTripStore.ts
similarity index 97%
rename from client/store/singleTripStore.ts
rename to packages/app/store/singleTripStore.ts
index 498ff260b..bdcbcd289 100644
--- a/client/store/singleTripStore.ts
+++ b/packages/app/store/singleTripStore.ts
@@ -6,7 +6,7 @@ import {
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/slices/weather/api.ts b/packages/app/store/slices/weather/api.ts
similarity index 100%
rename from client/store/slices/weather/api.ts
rename to packages/app/store/slices/weather/api.ts
diff --git a/client/store/store.ts b/packages/app/store/store.ts
similarity index 100%
rename from client/store/store.ts
rename to packages/app/store/store.ts
diff --git a/client/store/trailsStore.ts b/packages/app/store/trailsStore.ts
similarity index 98%
rename from client/store/trailsStore.ts
rename to packages/app/store/trailsStore.ts
index adaa6b46c..9534c1ef6 100644
--- a/client/store/trailsStore.ts
+++ b/packages/app/store/trailsStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
import { fetchTrails } from './trailsStore_copy';
diff --git a/client/store/trailsStore_copy.ts b/packages/app/store/trailsStore_copy.ts
similarity index 98%
rename from client/store/trailsStore_copy.ts
rename to packages/app/store/trailsStore_copy.ts
index 6e697a392..47597cbc9 100644
--- a/client/store/trailsStore_copy.ts
+++ b/packages/app/store/trailsStore_copy.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-// import axios from '~/config/axios';
+// import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/tripsStore.ts b/packages/app/store/tripsStore.ts
similarity index 99%
rename from client/store/tripsStore.ts
rename to packages/app/store/tripsStore.ts
index 862a6bcb2..5d2a3e73b 100644
--- a/client/store/tripsStore.ts
+++ b/packages/app/store/tripsStore.ts
@@ -3,7 +3,7 @@ import {
createAsyncThunk,
createEntityAdapter,
} from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/userStore.ts b/packages/app/store/userStore.ts
similarity index 96%
rename from client/store/userStore.ts
rename to packages/app/store/userStore.ts
index 877b81e6f..de6e4270a 100644
--- a/client/store/userStore.ts
+++ b/packages/app/store/userStore.ts
@@ -1,5 +1,5 @@
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { api } from '../constants/api';
import { trpc } from '../trpc';
diff --git a/client/store/weatherStore.ts b/packages/app/store/weatherStore.ts
similarity index 99%
rename from client/store/weatherStore.ts
rename to packages/app/store/weatherStore.ts
index a334b18ea..65d96bff5 100644
--- a/client/store/weatherStore.ts
+++ b/packages/app/store/weatherStore.ts
@@ -8,7 +8,7 @@ import { defaultWeekObj } from '../constants/defaultWeekObj';
import { api } from '../constants/api';
-import axios from '~/config/axios';
+import axios from 'app/config/axios';
import { trpc } from '../trpc';
const weatherAdapter = createEntityAdapter();
diff --git a/client/theme/index.ts b/packages/app/theme/index.ts
similarity index 100%
rename from client/theme/index.ts
rename to packages/app/theme/index.ts
diff --git a/client/theme/tamagui.config.js b/packages/app/theme/tamagui.config.js
similarity index 100%
rename from client/theme/tamagui.config.js
rename to packages/app/theme/tamagui.config.js
diff --git a/client/trpc.ts b/packages/app/trpc.ts
similarity index 100%
rename from client/trpc.ts
rename to packages/app/trpc.ts
diff --git a/client/tsconfig.json b/packages/app/tsconfig.json
similarity index 61%
rename from client/tsconfig.json
rename to packages/app/tsconfig.json
index c7084770f..171940593 100644
--- a/client/tsconfig.json
+++ b/packages/app/tsconfig.json
@@ -12,15 +12,7 @@
"useUnknownInCatchVariables": false,
"baseUrl": ".",
"paths": {
- "~/config/*": ["config/*"],
- "~/constants/*": ["constants/*"],
- "~/components/*": ["components/*"],
- "~/context/*": ["context/*"],
- "~/utils/*": ["utils/*"],
- "~/hooks/*": ["hooks/*"],
- "~/screens/*": ["screens/*"],
- "~/theme/*": ["theme/*"],
- "@trpc": ["../server/src/routes/index"]
+ "@trpc": ["../../server/src/routes/index"]
},
},
"exclude": [
diff --git a/client/utils/ToastUtils.ts b/packages/app/utils/ToastUtils.ts
similarity index 100%
rename from client/utils/ToastUtils.ts
rename to packages/app/utils/ToastUtils.ts
diff --git a/client/utils/colorFunctions.ts b/packages/app/utils/colorFunctions.ts
similarity index 100%
rename from client/utils/colorFunctions.ts
rename to packages/app/utils/colorFunctions.ts
diff --git a/client/utils/convertStateToAbbr.ts b/packages/app/utils/convertStateToAbbr.ts
similarity index 100%
rename from client/utils/convertStateToAbbr.ts
rename to packages/app/utils/convertStateToAbbr.ts
diff --git a/client/utils/convertToCelsius.ts b/packages/app/utils/convertToCelsius.ts
similarity index 100%
rename from client/utils/convertToCelsius.ts
rename to packages/app/utils/convertToCelsius.ts
diff --git a/client/utils/convertToKmh.ts b/packages/app/utils/convertToKmh.ts
similarity index 100%
rename from client/utils/convertToKmh.ts
rename to packages/app/utils/convertToKmh.ts
diff --git a/client/utils/convertWeight.ts b/packages/app/utils/convertWeight.ts
similarity index 100%
rename from client/utils/convertWeight.ts
rename to packages/app/utils/convertWeight.ts
diff --git a/packages/app/utils/coordinatesParser.ts b/packages/app/utils/coordinatesParser.ts
new file mode 100644
index 000000000..4c207f8de
--- /dev/null
+++ b/packages/app/utils/coordinatesParser.ts
@@ -0,0 +1,23 @@
+export const parseCoordinates = (geoJson) => {
+ let lon = 0;
+ let lat = 0;
+
+ const findDeepestArray = (arr) => {
+ if (Array.isArray(arr[0])) {
+ return findDeepestArray(arr[0]);
+ } else {
+ return arr;
+ }
+ };
+
+ if (geoJson?.features) {
+ const { coordinates } = geoJson.features[0].geometry;
+
+ if (coordinates[0]) {
+ const deepestArray = findDeepestArray(coordinates);
+ [lon, lat] = deepestArray;
+ }
+ }
+
+ return { lat, lon };
+};
diff --git a/client/utils/dayNumToString.ts b/packages/app/utils/dayNumToString.ts
similarity index 100%
rename from client/utils/dayNumToString.ts
rename to packages/app/utils/dayNumToString.ts
diff --git a/client/utils/defaultWeatherObj.ts b/packages/app/utils/defaultWeatherObj.ts
similarity index 100%
rename from client/utils/defaultWeatherObj.ts
rename to packages/app/utils/defaultWeatherObj.ts
diff --git a/client/utils/defaultWeekObj.ts b/packages/app/utils/defaultWeekObj.ts
similarity index 100%
rename from client/utils/defaultWeekObj.ts
rename to packages/app/utils/defaultWeekObj.ts
diff --git a/client/utils/fileSaver/fileSaver.native.ts b/packages/app/utils/fileSaver/fileSaver.native.ts
similarity index 100%
rename from client/utils/fileSaver/fileSaver.native.ts
rename to packages/app/utils/fileSaver/fileSaver.native.ts
diff --git a/client/utils/fileSaver/fileSaver.web.ts b/packages/app/utils/fileSaver/fileSaver.web.ts
similarity index 100%
rename from client/utils/fileSaver/fileSaver.web.ts
rename to packages/app/utils/fileSaver/fileSaver.web.ts
diff --git a/client/utils/formatNumber.ts b/packages/app/utils/formatNumber.ts
similarity index 100%
rename from client/utils/formatNumber.ts
rename to packages/app/utils/formatNumber.ts
diff --git a/client/utils/fuseSearch.ts b/packages/app/utils/fuseSearch.ts
similarity index 100%
rename from client/utils/fuseSearch.ts
rename to packages/app/utils/fuseSearch.ts
diff --git a/client/utils/getNextDays.ts b/packages/app/utils/getNextDays.ts
similarity index 100%
rename from client/utils/getNextDays.ts
rename to packages/app/utils/getNextDays.ts
diff --git a/client/utils/isObjectEmpty.ts b/packages/app/utils/isObjectEmpty.ts
similarity index 100%
rename from client/utils/isObjectEmpty.ts
rename to packages/app/utils/isObjectEmpty.ts
diff --git a/client/utils/mapFunctions.ts b/packages/app/utils/mapFunctions.ts
similarity index 100%
rename from client/utils/mapFunctions.ts
rename to packages/app/utils/mapFunctions.ts
diff --git a/client/utils/netInfo.ts b/packages/app/utils/netInfo.ts
similarity index 100%
rename from client/utils/netInfo.ts
rename to packages/app/utils/netInfo.ts
diff --git a/client/utils/regex.ts b/packages/app/utils/regex.ts
similarity index 100%
rename from client/utils/regex.ts
rename to packages/app/utils/regex.ts
diff --git a/client/utils/truncateString.ts b/packages/app/utils/truncateString.ts
similarity index 100%
rename from client/utils/truncateString.ts
rename to packages/app/utils/truncateString.ts
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 468747967..7b0ef62f4 100755
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -19,22 +19,22 @@
},
"dependencies": {
"@shopify/flash-list": "^1.6.1",
- "@tamagui/animations-react-native": "1.79.14",
- "@tamagui/font-inter": "1.79.14",
- "@tamagui/progress": "1.79.14",
- "@tamagui/react-native-media-driver": "1.79.14",
- "@tamagui/shorthands": "1.79.14",
- "@tamagui/switch": "1.79.14",
- "@tamagui/themes": "1.79.14",
- "@tamagui/toast": "1.79.14",
+ "@tamagui/animations-react-native": "^1.84.1",
+ "@tamagui/font-inter": "^1.84.1",
+ "@tamagui/progress": "^1.84.1",
+ "@tamagui/react-native-media-driver": "^1.84.1",
+ "@tamagui/shorthands": "^1.84.1",
+ "@tamagui/switch": "^1.84.1",
+ "@tamagui/themes": "^1.84.1",
+ "@tamagui/toast": "^1.84.1",
"@tanstack/react-table": "^8.10.7",
"@tanstack/react-virtual": "3.0.0-beta.54",
"esbuild": "^0.19.5",
"jotai": "^2.4.3",
"react": "18.2.0",
- "tamagui": "1.79.14"
+ "tamagui": "^1.84.1"
},
"devDependencies": {
- "@tamagui/build": "1.79.14"
+ "@tamagui/build": "^1.84.1"
}
}
diff --git a/packages/ui/src/RButton/index.tsx b/packages/ui/src/RButton/index.tsx
index 93e226fde..5a4bee153 100644
--- a/packages/ui/src/RButton/index.tsx
+++ b/packages/ui/src/RButton/index.tsx
@@ -3,6 +3,6 @@ import { Button, styled } from 'tamagui';
const RButton = styled(Button, {
backgroundColor: '#0C66A1', // temp fix, we need to set up proper tamagui theme
color: 'white',
-})
+});
export default RButton;
diff --git a/packages/ui/src/RImage/index.js b/packages/ui/src/RImage/index.tsx
similarity index 100%
rename from packages/ui/src/RImage/index.js
rename to packages/ui/src/RImage/index.tsx
diff --git a/packages/ui/src/RInput/index.js b/packages/ui/src/RInput/index.tsx
similarity index 100%
rename from packages/ui/src/RInput/index.js
rename to packages/ui/src/RInput/index.tsx
diff --git a/packages/ui/src/RScrollview/index.js b/packages/ui/src/RScrollview/index.tsx
similarity index 100%
rename from packages/ui/src/RScrollview/index.js
rename to packages/ui/src/RScrollview/index.tsx
diff --git a/packages/ui/src/RSkeleton/RSkeleton.tsx b/packages/ui/src/RSkeleton/RSkeleton.tsx
new file mode 100644
index 000000000..30325cf0b
--- /dev/null
+++ b/packages/ui/src/RSkeleton/RSkeleton.tsx
@@ -0,0 +1,22 @@
+import { Animated, Text } from 'react-native';
+import { useSkeletonAnimation } from './useSkeletonAnimation';
+
+export const RSkeleton = ({ style }) => {
+ const fadeAnim = useSkeletonAnimation();
+
+ return (
+
+
+
+ );
+};
diff --git a/packages/ui/src/RSkeleton/index.tsx b/packages/ui/src/RSkeleton/index.tsx
index 39505b960..5092b12ed 100644
--- a/packages/ui/src/RSkeleton/index.tsx
+++ b/packages/ui/src/RSkeleton/index.tsx
@@ -1,44 +1 @@
-import { useState, useEffect } from 'react';
-import { Animated, Text } from 'react-native';
-
-const RSkeleton = ({style}) => {
- const [fadeAnim] = useState(new Animated.Value(1)); // Initial opacity set to 0
-
- useEffect(() => {
- const startAnimation = () => {
- Animated.loop(
- Animated.sequence([
- Animated.timing(fadeAnim, {
- toValue: 0,
- duration: 1000,
- useNativeDriver: false, // Add this if you encounter any issues with native driver
- }),
- Animated.timing(fadeAnim, {
- toValue: 1,
- duration: 1000,
- useNativeDriver: false, // Add this if you encounter any issues with native driver
- }),
- ]),
- ).start();
- };
- startAnimation();
- }, [fadeAnim]);
-
- return (
-
- {' '}
-
- );
-};
-
-export default RSkeleton;
+export { RSkeleton } from './RSkeleton';
diff --git a/packages/ui/src/RSkeleton/useSkeletonAnimation.ts b/packages/ui/src/RSkeleton/useSkeletonAnimation.ts
new file mode 100644
index 000000000..2efab5717
--- /dev/null
+++ b/packages/ui/src/RSkeleton/useSkeletonAnimation.ts
@@ -0,0 +1,25 @@
+import { useEffect, useRef } from 'react';
+import { Animated } from 'react-native';
+
+export const useSkeletonAnimation = () => {
+ const fadeAnim = useRef(new Animated.Value(1));
+
+ useEffect(() => {
+ Animated.loop(
+ Animated.sequence([
+ Animated.timing(fadeAnim.current, {
+ toValue: 0,
+ duration: 1000,
+ useNativeDriver: false, // Add this if you encounter any issues with native driver
+ }),
+ Animated.timing(fadeAnim.current, {
+ toValue: 1,
+ duration: 1000,
+ useNativeDriver: false, // Add this if you encounter any issues with native driver
+ }),
+ ]),
+ ).start();
+ }, []);
+
+ return fadeAnim.current;
+};
diff --git a/packages/ui/src/RText/index.tsx b/packages/ui/src/RText/index.tsx
index 1bc4a67d4..dd108e333 100644
--- a/packages/ui/src/RText/index.tsx
+++ b/packages/ui/src/RText/index.tsx
@@ -1,19 +1,11 @@
-// import { Text } from 'tamagui';
-
-// const PRText = ({ children, style, ...props }) => {
-// return (
-//
-// {children}
-//
-// );
-// };
-
-// export default PRText;
-
-import { Paragraph, styled } from "tamagui";
+import { Paragraph, styled } from 'tamagui';
+// import { Text } from 'react-native';
+import { Text } from 'native-base';
const RText = styled(Paragraph, {
- fontFamily: "$body",
- });
+ fontFamily: '$body',
+});
-export default RText;
\ No newline at end of file
+// This is very temporary fix for issues we have with RText. Speeds up the app just using Text from react-native or native-base. If we use native-base, we can get nearly identical styling to RText, for the time being.
+// export default Text;
+export default RText;
diff --git a/packages/ui/src/Rparagraph/index.js b/packages/ui/src/Rparagraph/index.tsx
similarity index 100%
rename from packages/ui/src/Rparagraph/index.js
rename to packages/ui/src/Rparagraph/index.tsx
diff --git a/packages/ui/src/Skeleton/index.tsx b/packages/ui/src/Skeleton/index.tsx
deleted file mode 100644
index 3e2084902..000000000
--- a/packages/ui/src/Skeleton/index.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Center, Skeleton, VStack } from 'native-base';
-
-export { Skeleton } from 'native-base';
-
-const TableLoader = () => {
- return (
-
-
-
-
-
-
- );
-};
-
-export default TableLoader;
diff --git a/packages/ui/src/dialog/BaseDialog.tsx b/packages/ui/src/dialog/BaseDialog.tsx
new file mode 100644
index 000000000..91ad5935b
--- /dev/null
+++ b/packages/ui/src/dialog/BaseDialog.tsx
@@ -0,0 +1,65 @@
+import { MaterialCommunityIcons } from '@expo/vector-icons';
+import { useState } from 'react';
+
+import { Adapt, Button, Dialog, Sheet } from 'tamagui';
+
+export const BaseDialog = ({ title, description, trigger, children }) => {
+ const [open, setOpen] = useState(false);
+
+ return (
+
+ );
+};
diff --git a/packages/ui/src/dialog/index.ts b/packages/ui/src/dialog/index.ts
new file mode 100644
index 000000000..3ff17bb41
--- /dev/null
+++ b/packages/ui/src/dialog/index.ts
@@ -0,0 +1 @@
+export { BaseDialog } from './BaseDialog';
diff --git a/packages/ui/src/index.tsx b/packages/ui/src/index.tsx
index ef22cbcc3..7be8f2c9a 100644
--- a/packages/ui/src/index.tsx
+++ b/packages/ui/src/index.tsx
@@ -1,13 +1,11 @@
import RStack from './RStack';
-import RForm from './RForm'
+import RForm from './RForm';
import RText from './RText';
import RCard from './RCard';
import RParagraph from './Rparagraph';
import RInput from './RInput';
-import RButton from './RButton';
import RImage from './RImage';
import RScrollView from './RScrollview';
-import RSkeleton from './RSkeleton';
import RSwitch from './RSwitch';
import RIconButton from './RIconButton';
import RSeparator from './RSeparator';
@@ -26,7 +24,9 @@ import RH5 from './RH5';
import RH6 from './RH6';
import XStack from './XStack';
import YStack from './YStack';
+import RButton from './RButton';
+export { RSkeleton } from './RSkeleton';
export {
RH1,
@@ -50,30 +50,29 @@ export {
RCard,
RParagraph,
RInput,
- RButton,
RIconButton,
RImage,
RScrollView,
- RSkeleton,
XStack,
- YStack
+ YStack,
+ RButton,
};
-export { config } from './tamagui.config'
-export * from 'tamagui'
-export * from '@tamagui/toast'
-export * from './toast'
-export * from './list'
+export { config } from './tamagui.config';
+export * from 'tamagui';
+export * from './modal';
+export * from './dialog';
+export * from '@tamagui/toast';
+export * from './toast';
+export * from './list';
export * from './RStack';
export * from './RText';
export * from './RCard';
export * from './Rparagraph';
export * from './RInput';
-export * from './RButton';
export * from './RImage';
export * from './RScrollview';
-export * from './Skeleton';
export * from './XStack';
export * from './YStack';
@@ -84,4 +83,4 @@ export * from './YStack';
// export * from './RToast';
// export * from './RTooltip';
-export * from './ErrorBoundary'
\ No newline at end of file
+export * from './ErrorBoundary';
diff --git a/packages/ui/src/modal/BaseModal.tsx b/packages/ui/src/modal/BaseModal.tsx
new file mode 100644
index 000000000..e4c0ec7fa
--- /dev/null
+++ b/packages/ui/src/modal/BaseModal.tsx
@@ -0,0 +1,142 @@
+import React, { useMemo, useState } from 'react';
+import { Button, Dialog } from 'tamagui';
+import { X } from '@tamagui/lucide-icons';
+import RButton from '@packrat/ui/src/RButton';
+import RStack from '@packrat/ui/src/RStack';
+import { useModal, ModalProvider } from './provider';
+
+export interface BaseModalProps {
+ id?: string;
+ title: string;
+ trigger?: string;
+ children: React.ReactNode;
+ buttonColor?: string;
+ footerButtons?: any[];
+ triggerComponent?: React.DetailedReactHTMLElement;
+ footerComponent: React.DetailedReactHTMLElement;
+}
+
+export const BaseModal = ({
+ triggerComponent,
+ title,
+ trigger,
+ footerButtons,
+ footerComponent,
+ children,
+}: BaseModalProps) => {
+ const [isModalOpen, setIsModalOpen] = useState(false);
+
+ const triggerElement = useMemo(() => {
+ return triggerComponent ? (
+ setIsModalOpen(true)}
+ style={{ backgroundColor: 'transparent' }}
+ >
+ {React.cloneElement(triggerComponent, { setIsModalOpen })}
+
+ ) : (
+ setIsModalOpen(true)}
+ >
+ {trigger}
+
+ );
+ }, [triggerComponent]);
+
+ const memoFooterButtons = useMemo(() => {
+ if (!Array.isArray(footerButtons)) return null;
+
+ return footerButtons.map(({ color, label, onClick, ...button }, index) => (
+
+ {label}
+
+ ));
+ }, [footerButtons]);
+
+ const footerElement = useMemo(() => {
+ return (
+ footerComponent && React.cloneElement(footerComponent, { setIsModalOpen })
+ );
+ }, [footerComponent]);
+
+ return (
+
+ );
+};
+
+const withModalCloseHandler =
+ (fn, closeHandler) =>
+ (...args) =>
+ fn?.(...args, closeHandler.bind(null, false));
diff --git a/packages/ui/src/modal/index.ts b/packages/ui/src/modal/index.ts
new file mode 100644
index 000000000..2848c0e42
--- /dev/null
+++ b/packages/ui/src/modal/index.ts
@@ -0,0 +1,2 @@
+export { BaseModal } from './BaseModal';
+export { useModal, ModalProvider } from './provider';
diff --git a/packages/ui/src/modal/provider/ModalProvider.tsx b/packages/ui/src/modal/provider/ModalProvider.tsx
new file mode 100644
index 000000000..1f9a2242f
--- /dev/null
+++ b/packages/ui/src/modal/provider/ModalProvider.tsx
@@ -0,0 +1,13 @@
+import { createContext, useContext, useState } from 'react';
+
+export const ModalContext = createContext({});
+
+export const ModalProvider = ({ children, isModalOpen, setIsModalOpen }) => {
+ const _value = { isModalOpen, setIsModalOpen };
+
+ return (
+ {children}
+ );
+};
+
+export const useModal = () => useContext(ModalContext);
diff --git a/packages/ui/src/modal/provider/index.ts b/packages/ui/src/modal/provider/index.ts
new file mode 100644
index 000000000..7709e12bc
--- /dev/null
+++ b/packages/ui/src/modal/provider/index.ts
@@ -0,0 +1 @@
+export { ModalProvider, useModal } from './ModalProvider';
diff --git a/packages/ui/src/toast/index.js b/packages/ui/src/toast/index.js
deleted file mode 100644
index e482c24e6..000000000
--- a/packages/ui/src/toast/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './CustomToast'
-export * from './NativeToast'
\ No newline at end of file
diff --git a/packages/ui/src/toast/index.tsx b/packages/ui/src/toast/index.tsx
new file mode 100644
index 000000000..a111c7891
--- /dev/null
+++ b/packages/ui/src/toast/index.tsx
@@ -0,0 +1,2 @@
+export * from './CustomToast';
+export * from './NativeToast';
diff --git a/scripts/start.js b/scripts/start.js
new file mode 100644
index 000000000..d8f1fde16
--- /dev/null
+++ b/scripts/start.js
@@ -0,0 +1,44 @@
+const { Select } = require('enquirer');
+const { spawn } = require('child_process');
+
+function runApp(command, args) {
+ const process = spawn(command, args, { stdio: 'inherit' });
+
+ process.on('error', (error) => {
+ console.error(`Error: ${error.message}`);
+ });
+
+ process.on('close', (code) => {
+ console.log(`Process exited with code ${code}`);
+ });
+}
+
+async function startApp() {
+ const prompt = new Select({
+ name: 'app',
+ message: 'Choose an app to start',
+ choices: ['Expo', 'Next', 'Server'],
+ });
+
+ const app = await prompt.run();
+
+ switch (app) {
+ case 'Expo':
+ console.log('Starting Expo...');
+ runApp('yarn', ['dev:expo']);
+ break;
+ case 'Next':
+ console.log('Starting Next...');
+ runApp('yarn', ['dev:next']);
+ break;
+ case 'Server':
+ console.log('Starting Server...');
+ runApp('yarn', ['dev:server']);
+ break;
+ default:
+ console.log('No app selected');
+ break;
+ }
+}
+
+startApp().catch(console.error);
diff --git a/server/.eslintrc.js b/server/.eslintrc.js
index dcb6239db..6054016a5 100644
--- a/server/.eslintrc.js
+++ b/server/.eslintrc.js
@@ -1,3 +1,5 @@
+const { types } = require('util');
+
module.exports = {
env: {
browser: true,
@@ -145,6 +147,7 @@ module.exports = {
'import/no-duplicates': 'off',
'@typescript-eslint/no-confusing-void-expression': 'off',
'no-unmodified-loop-condition': 'off',
+ '@typescript-eslint/no-base-to-string': 'off',
},
extends: [
'plugin:@typescript-eslint/recommended',
diff --git a/server/nodemon.json b/server/nodemon.json
index 10ed13eda..5766ee73d 100644
--- a/server/nodemon.json
+++ b/server/nodemon.json
@@ -2,5 +2,5 @@
"watch": ["src"],
"ext": ".ts,.js",
"ignore": ["node_modules"],
- "exec": "ts-node src/index.ts"
+ "exec": "tsx src/index.ts"
}
\ No newline at end of file
diff --git a/server/package.json b/server/package.json
index 648d57619..71bfa46bb 100644
--- a/server/package.json
+++ b/server/package.json
@@ -96,7 +96,8 @@
"mocha": "^10.2.0",
"openapi-generator": "^0.1.39",
"prettier": "^3.0.2",
- "ts-node": "^10.9.1"
+ "ts-node": "^10.9.1",
+ "tsx": "^4.7.0"
},
"engines": {
"node": ">=16.0.0"
diff --git a/server/src/config.ts b/server/src/config.ts
index d462b80a8..405eb93e8 100644
--- a/server/src/config.ts
+++ b/server/src/config.ts
@@ -38,3 +38,5 @@ export const REDIRECT_URL = 'auth/google';
export const CORS_ORIGIN = process.env.CORS_ORIGIN;
export const CORS_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'];
+
+export const MAPBOX_ACCESS_TOKEN = process.env.MAPBOX_ACCESS_TOKEN;
diff --git a/server/src/controllers/mapPreview/index.ts b/server/src/controllers/mapPreview/index.ts
new file mode 100644
index 000000000..89411e954
--- /dev/null
+++ b/server/src/controllers/mapPreview/index.ts
@@ -0,0 +1,47 @@
+import express, {
+ type NextFunction,
+ type Request,
+ type Response,
+} from 'express';
+import axios from 'axios';
+import { MAPBOX_ACCESS_TOKEN } from '../../config';
+import { MapPreviewError } from '../../helpers/errors';
+
+/**
+ * Responds with map preview image from mapbox api
+ *
+ * @param {Request} req - Request object
+ * @param {Response} res - Respone object
+ * @param {NextFunction} next - The next middleware
+ * @returns {Promise} - Resolves with the preview image
+ */
+export default async function getMapPreview(
+ req: Request,
+ res: Response,
+ next: NextFunction,
+) {
+ try {
+ const queryParams = Object.entries(req.query).reduce(
+ (acc, [key, val], i, arr) =>
+ `${acc}${key}=${val}${i == arr.length - 1 ? '' : '&'}`,
+ '',
+ );
+
+ const { data } = await axios.get(
+ `https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/${req.originalUrl
+ .replace('/api', '')
+ .replace('/mapPreview/', '')
+ .replace(
+ '?' + queryParams,
+ '',
+ )}?access_token=${MAPBOX_ACCESS_TOKEN}&${queryParams}`,
+ { responseType: 'arraybuffer' },
+ );
+
+ res.setHeader('Content-Type', 'image/png');
+ res.send(data);
+ } catch (error) {
+ console.log(error);
+ next(MapPreviewError);
+ }
+}
diff --git a/server/src/helpers/errors.ts b/server/src/helpers/errors.ts
index 103c7746d..597ca8d3f 100644
--- a/server/src/helpers/errors.ts
+++ b/server/src/helpers/errors.ts
@@ -189,3 +189,8 @@ export const UnableToEditUserError = {
statusCode: 500,
message: 'Unable to edit user',
};
+
+export const MapPreviewError = {
+ statusCode: 500,
+ message: 'Error getting map preview',
+};
diff --git a/server/src/routes/index.ts b/server/src/routes/index.ts
index 1953a1368..33b6a88fc 100644
--- a/server/src/routes/index.ts
+++ b/server/src/routes/index.ts
@@ -14,6 +14,7 @@ import openAiRoutes from './openAiRoutes';
import templateRoutes from './templateRoutes';
import favoriteRouters from './favoriteRoutes';
import userRoutes from './userRoutes';
+import mapPreviewRouter from './mapPreviewRouter';
const router = express.Router();
@@ -56,6 +57,7 @@ router.use('/openai', openAiRoutes);
router.use('/template', templateRoutes);
router.use('/favorite', favoriteRouters);
router.use('/openai', openAiRoutes);
+router.use('/mapPreview', mapPreviewRouter);
// Also listen to /api for backwards compatibility
router.use('/api/user', userRoutes);
@@ -72,6 +74,7 @@ router.use('/api/openai', openAiRoutes);
router.use('/api/template', templateRoutes);
router.use('/api/favorite', favoriteRouters);
router.use('/api/openai', openAiRoutes);
+router.use('/api/mapPreview', mapPreviewRouter);
// Static routes for serving the React Native Web app
if (process.env.NODE_ENV === 'production') {
@@ -82,16 +85,16 @@ if (process.env.NODE_ENV === 'production') {
// Attach the CSRF token cookie to the response
// res.cookie("XSRF-TOKEN", req.csrfToken());
- res.sendFile(path.resolve(__dirname, '../client', 'dist', 'index.html'));
+ res.sendFile(path.resolve(__dirname, '../apps/expo', 'dist', 'index.html'));
});
// Serve the static assets from the client's dist app
- router.use(express.static(path.join(__dirname, '../client/dist')));
+ router.use(express.static(path.join(__dirname, '../apps/expo/dist')));
// Serve the client's index.html file at all other routes NOT starting with /api
router.get(/^(?!\/?api).*/, (req, res) => {
// res.cookie("XSRF-TOKEN", req.csrfToken());
- res.sendFile(path.resolve(__dirname, '../client', 'dist', 'index.html'));
+ res.sendFile(path.resolve(__dirname, '../apps/expo', 'dist', 'index.html'));
});
}
diff --git a/server/src/routes/mapPreviewRouter.ts b/server/src/routes/mapPreviewRouter.ts
new file mode 100644
index 000000000..cf1778228
--- /dev/null
+++ b/server/src/routes/mapPreviewRouter.ts
@@ -0,0 +1,35 @@
+import express from 'express';
+import { tryCatchWrapper } from '../helpers/tryCatchWrapper';
+import getMapPreview from '../controllers/mapPreview';
+import authTokenMiddleware from '../middleware/auth';
+import checkRole from '../middleware/checkRole';
+
+const router = express.Router();
+
+/**
+ * @swagger
+ * /mapPreview/{mapQuery}:
+ * get:
+ * summary: get static image map preview
+ * tags:
+ * - Map image preview
+ * parameters:
+ * - in: path
+ * name: mapQuery
+ * schema:
+ * type: string
+ * required: true
+ * description: mapQuery is anything that comes after "https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/" excluding access_token query param
+ * responses:
+ * 200:
+ * content:
+ * image/png:
+ * schema:
+ * type: string
+ * format: binary
+ * 500:
+ * description: Error getting map preview
+ */
+router.get('/*', tryCatchWrapper(getMapPreview));
+
+export default router;
diff --git a/yarn.lock b/yarn.lock
index d200d05f4..5c96a9004 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -400,13 +400,13 @@ __metadata:
linkType: hard
"@babel/helpers@npm:^7.23.7":
- version: 7.23.7
- resolution: "@babel/helpers@npm:7.23.7"
+ version: 7.23.8
+ resolution: "@babel/helpers@npm:7.23.8"
dependencies:
"@babel/template": "npm:^7.22.15"
"@babel/traverse": "npm:^7.23.7"
"@babel/types": "npm:^7.23.6"
- checksum: ec07061dc871d406ed82c8757c4d7a510aaf15145799fb0a2c3bd3c72ca101fe82a02dd5f83ca604fbbba5de5408dd731bb1452150562bed4f3b0a2846f81f61
+ checksum: 4c392351910102403b6a7c922319077b179c276e422a4e45b243b45610f813a05a043b6b116cbf5eb4b437fb51b9a2dfc2b7c65f38a0de7fde1f97d08a675313
languageName: node
linkType: hard
@@ -952,22 +952,21 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/plugin-transform-classes@npm:7.23.5"
+"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.23.8":
+ version: 7.23.8
+ resolution: "@babel/plugin-transform-classes@npm:7.23.8"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-compilation-targets": "npm:^7.22.15"
+ "@babel/helper-compilation-targets": "npm:^7.23.6"
"@babel/helper-environment-visitor": "npm:^7.22.20"
"@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-optimise-call-expression": "npm:^7.22.5"
"@babel/helper-plugin-utils": "npm:^7.22.5"
"@babel/helper-replace-supers": "npm:^7.22.20"
"@babel/helper-split-export-declaration": "npm:^7.22.6"
globals: "npm:^11.1.0"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: f6c4fed2f48bdd46a4726b829ea2ddb5c9c97edd0e55dc53791d82927daad5725052b7e785a8b7e90a53b0606166b9c554469dc94f10fba59ca9642e997d97ee
+ checksum: 4bb4b19e7a39871c4414fb44fc5f2cc47c78f993b74c43238dfb99c9dac2d15cb99b43f8a3d42747580e1807d2b8f5e13ce7e95e593fd839bd176aa090bf9a23
languageName: node
linkType: hard
@@ -1539,8 +1538,8 @@ __metadata:
linkType: hard
"@babel/preset-env@npm:^7.20.0":
- version: 7.23.7
- resolution: "@babel/preset-env@npm:7.23.7"
+ version: 7.23.8
+ resolution: "@babel/preset-env@npm:7.23.8"
dependencies:
"@babel/compat-data": "npm:^7.23.5"
"@babel/helper-compilation-targets": "npm:^7.23.6"
@@ -1575,7 +1574,7 @@ __metadata:
"@babel/plugin-transform-block-scoping": "npm:^7.23.4"
"@babel/plugin-transform-class-properties": "npm:^7.23.3"
"@babel/plugin-transform-class-static-block": "npm:^7.23.4"
- "@babel/plugin-transform-classes": "npm:^7.23.5"
+ "@babel/plugin-transform-classes": "npm:^7.23.8"
"@babel/plugin-transform-computed-properties": "npm:^7.23.3"
"@babel/plugin-transform-destructuring": "npm:^7.23.3"
"@babel/plugin-transform-dotall-regex": "npm:^7.23.3"
@@ -1624,7 +1623,7 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 2059dee350c39aba0a1f128d00ccfd7abf97f92a9b661f4db07a96c11d91c928a9f1df39477583f068090627bff571b4415f1a4f94008d29f6ad8b124e69804e
+ checksum: 74493faa8b3e4bdd07ab3fbde80d7b13cc05321877f997698177c0bb082669c9b6a87397bd79ca6656df3c80c05e514ffed6d81510e2d8719a6e9647c038b7b9
languageName: node
linkType: hard
@@ -1692,11 +1691,11 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
- version: 7.23.7
- resolution: "@babel/runtime@npm:7.23.7"
+ version: 7.23.8
+ resolution: "@babel/runtime@npm:7.23.8"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: b29cf3ca6277aea8c5c823d9b86e7f7153757f07eaaa81d726f125de00ac0e7451c90845770f919826a94ade8f71a6bda9c0421410dfcc285ee17a40f8f8ca00
+ checksum: ec8f1967a36164da6cac868533ffdff97badd76d23d7d820cc84f0818864accef972f22f9c6a710185db1e3810e353fc18c3da721e5bb3ee8bc61bdbabce03ff
languageName: node
linkType: hard
@@ -1784,6 +1783,52 @@ __metadata:
languageName: node
linkType: hard
+"@edge-runtime/cookies@npm:3.4.1":
+ version: 3.4.1
+ resolution: "@edge-runtime/cookies@npm:3.4.1"
+ checksum: 38ce775624c42e9245617120579a43c991a4f50489d35e8026a2665ac1880b3ebf35d311b92d579508cc628380d435af8dec898083962452416c0bdbb7c7a1d8
+ languageName: node
+ linkType: hard
+
+"@edge-runtime/format@npm:2.2.0":
+ version: 2.2.0
+ resolution: "@edge-runtime/format@npm:2.2.0"
+ checksum: 5591700c2a9e2b136049932e858de1ba3279b6c798e05bbc633b313ec7e7428d42d35b811f9a413f2d16d6c4c7c12aaf3e4e990889311ed5bd914332757a1575
+ languageName: node
+ linkType: hard
+
+"@edge-runtime/node-utils@npm:2.2.1":
+ version: 2.2.1
+ resolution: "@edge-runtime/node-utils@npm:2.2.1"
+ dependencies:
+ "@edge-runtime/cookies": "npm:3.4.1"
+ checksum: 97f4b61505a14eadd925ba0890e7708de71b81f685c9e1d15a5b80ca7e81c7a6cb81ebf766f6c78c28a882a6323b8767ea96f226581825536175b8c5e3d17646
+ languageName: node
+ linkType: hard
+
+"@edge-runtime/ponyfill@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@edge-runtime/ponyfill@npm:2.4.1"
+ checksum: cf15168794f219255965997395f7d97cbf76680ac9b0cbe8d3ac98f6819e7511ad31a92b52549f579808e7881ba0597131736d42f1d22400827e23b7a7731472
+ languageName: node
+ linkType: hard
+
+"@edge-runtime/primitives@npm:4.0.5":
+ version: 4.0.5
+ resolution: "@edge-runtime/primitives@npm:4.0.5"
+ checksum: 05c75ea830b29e8dd67fcc4084e1ad15d73862a60f1092054946543ca84b8c5d9ba683d6ef8d58b57edcaf54164dad287531744548cce8ad1f360377b87a2ad3
+ languageName: node
+ linkType: hard
+
+"@edge-runtime/vm@npm:3.1.7":
+ version: 3.1.7
+ resolution: "@edge-runtime/vm@npm:3.1.7"
+ dependencies:
+ "@edge-runtime/primitives": "npm:4.0.5"
+ checksum: bf1420afcf1a1586f0dec5cad6583e6e88bd0d5aff157f4c027537501ee1ea5bf37275b7e2d463395a4a1ab49afd99bd182f9e67599e674cf7fc2c3321cfc72f
+ languageName: node
+ linkType: hard
+
"@egjs/hammerjs@npm:^2.0.17":
version: 2.0.17
resolution: "@egjs/hammerjs@npm:2.0.17"
@@ -2345,6 +2390,19 @@ __metadata:
languageName: node
linkType: hard
+"@expo/next-adapter@npm:5.0.2":
+ version: 5.0.2
+ resolution: "@expo/next-adapter@npm:5.0.2"
+ peerDependencies:
+ expo: ^46
+ next: ^13
+ react: ^18
+ react-native-web: ~0.18.0
+ webpack: ^4.46.0 || ^5.74.0
+ checksum: 6935eadf2f0515ebc8170fcd657a805645023e48c2d8c4ba182e3e9bc335c1b2a704625f8b773c1da8eb4ead16082abd52f9b76c8f4ee99e8989c7a90a188eb7
+ languageName: node
+ linkType: hard
+
"@expo/osascript@npm:2.0.33":
version: 2.0.33
resolution: "@expo/osascript@npm:2.0.33"
@@ -2517,6 +2575,13 @@ __metadata:
languageName: node
linkType: hard
+"@fastify/busboy@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "@fastify/busboy@npm:2.1.0"
+ checksum: f22c1e5c52dc350ddf9ba8be9f87b48d3ea5af00a37fd0a0d1e3e4b37f94d96763e514c68a350c7f570260fdd2f08b55ee090cdd879f92a03249eb0e3fd19113
+ languageName: node
+ linkType: hard
+
"@firebase/analytics-compat@npm:0.2.6":
version: 0.2.6
resolution: "@firebase/analytics-compat@npm:0.2.6"
@@ -3024,46 +3089,46 @@ __metadata:
languageName: node
linkType: hard
-"@floating-ui/core@npm:^1.3.0, @floating-ui/core@npm:^1.4.2":
- version: 1.5.2
- resolution: "@floating-ui/core@npm:1.5.2"
+"@floating-ui/core@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "@floating-ui/core@npm:1.5.3"
dependencies:
- "@floating-ui/utils": "npm:^0.1.3"
- checksum: a1102f8713f8971771fea11d2e0c0c3dbff421db302ca6b4a0b4b9f0f0b082c2baa9b71c9b0ee4b8708bf9d5b91f5e561e189b85b0336f562df6ed414dcdb296
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 7d9feaca2565a2a71bf03d23cd292c03def63097d7fde7d62909cdb8ddb84664781f3922086bcf10443f3310cb92381a0ecf745b2774edb917fa74fe61015c56
languageName: node
linkType: hard
-"@floating-ui/dom@npm:^1.5.1":
- version: 1.5.3
- resolution: "@floating-ui/dom@npm:1.5.3"
+"@floating-ui/dom@npm:^1.5.4":
+ version: 1.5.4
+ resolution: "@floating-ui/dom@npm:1.5.4"
dependencies:
- "@floating-ui/core": "npm:^1.4.2"
- "@floating-ui/utils": "npm:^0.1.3"
- checksum: d2d5ae7a0949c0ebf7fbf97a21612bf94dbd29cb6c847e00588b8e2a5575ade27c47cb19f5d230fc21a571d99aa0c714b301c9221d33921047408c0ed9d91a30
+ "@floating-ui/core": "npm:^1.5.3"
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 3ba02ba2b4227c1e18df6ccdd029a1c100058db2e76ca1dac60a593ec72b2d4d995fa5c2d1639a5c38adb17e12398fbfe4f6cf5fd45f2ee6170ed0cf64acea06
languageName: node
linkType: hard
"@floating-ui/react-dom@npm:^2.0.1":
- version: 2.0.4
- resolution: "@floating-ui/react-dom@npm:2.0.4"
+ version: 2.0.5
+ resolution: "@floating-ui/react-dom@npm:2.0.5"
dependencies:
- "@floating-ui/dom": "npm:^1.5.1"
+ "@floating-ui/dom": "npm:^1.5.4"
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
- checksum: 4240a718502c797fd2e174cd06dcd7321a6eda9c8966dbaf61864b9e16445e95649a59bfe7c19ee13f68c11f3693724d7970c7e618089a3d3915bd343639cfae
+ checksum: b4fc008c725149b9565949184d844c914a8fa2687636c3c1166a1d52ca58537b3ba9b0a0e2945cf424662c846e60b173df0d325af7e700a31550e5e0b346070a
languageName: node
linkType: hard
"@floating-ui/react-native@npm:^0.10.1":
- version: 0.10.1
- resolution: "@floating-ui/react-native@npm:0.10.1"
+ version: 0.10.2
+ resolution: "@floating-ui/react-native@npm:0.10.2"
dependencies:
- "@floating-ui/core": "npm:^1.3.0"
+ "@floating-ui/core": "npm:^1.5.3"
peerDependencies:
react: ">=16.8.0"
react-native: ">=0.64.0"
- checksum: 1e9d847332569a4d43ebc7137c24180fdda07d15a4b06e92251b8f9716b1a43b58570cb13701a463b7c8926fb047ff378ab95dd5cbc1ef0d84f4ab851a7b7102
+ checksum: 8c1e4b353a2000061ee09e0a4f991723704aaf3b8f9e0313cd763d7ad68e9e6a4da6bd7b4c19973b8a33da83b92a478a4a237dc4756b4db2d9ea84a3b65cd3c2
languageName: node
linkType: hard
@@ -3081,10 +3146,10 @@ __metadata:
languageName: node
linkType: hard
-"@floating-ui/utils@npm:^0.1.3":
- version: 0.1.6
- resolution: "@floating-ui/utils@npm:0.1.6"
- checksum: 450ec4ecc1dd8161b1904d4e1e9d95e653cc06f79af6c3b538b79efb10541d90bcc88646ab3cdffc5b92e00c4804ca727b025d153ad285f42dbbb39aec219ec9
+"@floating-ui/utils@npm:^0.2.0":
+ version: 0.2.1
+ resolution: "@floating-ui/utils@npm:0.2.1"
+ checksum: 33c9ab346e7b05c5a1e6a95bc902aafcfc2c9d513a147e2491468843bd5607531b06d0b9aa56aa491cbf22a6c2495c18ccfc4c0344baec54a689a7bb8e4898d6
languageName: node
linkType: hard
@@ -3318,9 +3383,9 @@ __metadata:
linkType: hard
"@hono/node-server@npm:^1.2.0":
- version: 1.3.4
- resolution: "@hono/node-server@npm:1.3.4"
- checksum: 2be656a37e9c75dc4c54cd90a3be2a9223e490133314ac89d38e36ab856f4f9a72a1711bc2ddb052fbc73292675efa6a28825234d3752b4fb6896d0b964d5c28
+ version: 1.4.0
+ resolution: "@hono/node-server@npm:1.4.0"
+ checksum: 1abca6c3548a0b6032c7e4845f1054ad6d5e05c513dee3bd1916bbe167c865c346176a8657b00af4b34cbb06a1724cf182ab6cdb3f8dad693b757a01b78d31b3
languageName: node
linkType: hard
@@ -3335,22 +3400,22 @@ __metadata:
linkType: hard
"@hookform/resolvers@npm:^3.3.1":
- version: 3.3.3
- resolution: "@hookform/resolvers@npm:3.3.3"
+ version: 3.3.4
+ resolution: "@hookform/resolvers@npm:3.3.4"
peerDependencies:
react-hook-form: ^7.0.0
- checksum: b0ad5cfe40b49573f70471d53c85cdb17b5bf643a7975df5a297fbec26b7b9048972ba1bc7e365f8d417215595477eedd07a6156e43188155dbee0abedad545e
+ checksum: 0845e15f53b515ab5dc8d970d4ee7f47bbdfc4f4391bc166361535482d96b6ae3d1812669107fca05bf8687fa5447e3ed65f2eee3e349759b23b229ca978f917
languageName: node
linkType: hard
"@humanwhocodes/config-array@npm:^0.11.13":
- version: 0.11.13
- resolution: "@humanwhocodes/config-array@npm:0.11.13"
+ version: 0.11.14
+ resolution: "@humanwhocodes/config-array@npm:0.11.14"
dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.1"
- debug: "npm:^4.1.1"
+ "@humanwhocodes/object-schema": "npm:^2.0.2"
+ debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
- checksum: 9f655e1df7efa5a86822cd149ca5cef57240bb8ffd728f0c07cc682cc0a15c6bdce68425fbfd58f9b3e8b16f79b3fd8cb1e96b10c434c9a76f20b2a89f213272
+ checksum: 3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a
languageName: node
linkType: hard
@@ -3361,10 +3426,10 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/object-schema@npm:^2.0.1":
- version: 2.0.1
- resolution: "@humanwhocodes/object-schema@npm:2.0.1"
- checksum: dbddfd0465aecf92ed845ec30d06dba3f7bb2496d544b33b53dac7abc40370c0e46b8787b268d24a366730d5eeb5336ac88967232072a183905ee4abf7df4dab
+"@humanwhocodes/object-schema@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@humanwhocodes/object-schema@npm:2.0.2"
+ checksum: ef915e3e2f34652f3d383b28a9a99cfea476fa991482370889ab14aac8ecd2b38d47cc21932526c6d949da0daf4a4a6bf629d30f41b0caca25e146819cbfa70e
languageName: node
linkType: hard
@@ -3940,7 +4005,7 @@ __metadata:
languageName: node
linkType: hard
-"@mapbox/node-pre-gyp@npm:^1.0.11":
+"@mapbox/node-pre-gyp@npm:^1.0.11, @mapbox/node-pre-gyp@npm:^1.0.5":
version: 1.0.11
resolution: "@mapbox/node-pre-gyp@npm:1.0.11"
dependencies:
@@ -3997,23 +4062,23 @@ __metadata:
linkType: hard
"@mongodb-js/saslprep@npm:^1.1.0":
- version: 1.1.1
- resolution: "@mongodb-js/saslprep@npm:1.1.1"
+ version: 1.1.3
+ resolution: "@mongodb-js/saslprep@npm:1.1.3"
dependencies:
sparse-bitfield: "npm:^3.0.3"
- checksum: 9b82335ca65ac338241bb0412dc92ec98efe54235a2d629d77505e527ffb224c58d730c1f39b4eb8889de2f1890d5b6d1620317eedf1fee50c7817c77236b03d
+ checksum: c23c36db238ead2b9625031ce1669f4f3be77c84568f2182ed2a51ca62580e4fc682b06cdb4ec97d687d290acb25444d8d5b5c378dde56103caf62d5088801cb
languageName: node
linkType: hard
"@motionone/animation@npm:^10.12.0":
- version: 10.16.3
- resolution: "@motionone/animation@npm:10.16.3"
+ version: 10.17.0
+ resolution: "@motionone/animation@npm:10.17.0"
dependencies:
- "@motionone/easing": "npm:^10.16.3"
- "@motionone/types": "npm:^10.16.3"
- "@motionone/utils": "npm:^10.16.3"
+ "@motionone/easing": "npm:^10.17.0"
+ "@motionone/types": "npm:^10.17.0"
+ "@motionone/utils": "npm:^10.17.0"
tslib: "npm:^2.3.1"
- checksum: f00436005ff331deab7e870249de1feb368ed727e0d9499a22ecbb2c598a2b531fced6ed87fc6badff3bda5fb94eb0c929be2562e89b16de879d257792af993b
+ checksum: 85ac8a36f33b7510cec239b12d90eec38a8f191158e2686c95c7ba237b17cac0e14b1533748fb27e10c18b8f4f4ea9798bc0a9286cf854852ab957d290a09ba9
languageName: node
linkType: hard
@@ -4031,42 +4096,42 @@ __metadata:
languageName: node
linkType: hard
-"@motionone/easing@npm:^10.16.3":
- version: 10.16.3
- resolution: "@motionone/easing@npm:10.16.3"
+"@motionone/easing@npm:^10.17.0":
+ version: 10.17.0
+ resolution: "@motionone/easing@npm:10.17.0"
dependencies:
- "@motionone/utils": "npm:^10.16.3"
+ "@motionone/utils": "npm:^10.17.0"
tslib: "npm:^2.3.1"
- checksum: 0d87a83cd58fab086043311c5a6330d2efde209b6757f797cca7b858b19e647066a2a34c8f329653d16ec9e2296f23f781bf8b116cc3f3cbe705b594fbc2144d
+ checksum: 69f0fc4999a209801b128586cbb328937d9db1c091bed26762d30d035ecc5c01b0cbdce610c6550f609c0be78c1ad03c808e6c61f15fc52621f614449ce10a86
languageName: node
linkType: hard
"@motionone/generators@npm:^10.12.0":
- version: 10.16.4
- resolution: "@motionone/generators@npm:10.16.4"
+ version: 10.17.0
+ resolution: "@motionone/generators@npm:10.17.0"
dependencies:
- "@motionone/types": "npm:^10.16.3"
- "@motionone/utils": "npm:^10.16.3"
+ "@motionone/types": "npm:^10.17.0"
+ "@motionone/utils": "npm:^10.17.0"
tslib: "npm:^2.3.1"
- checksum: 3ac88997542e9efe80a8713a6b274398663974d1489c4f53dae8ab1e132a7e64801726f8166b2993462ffae0b8298c1391cd8731c888204003eada2e7cf348d5
+ checksum: 06bd6c16cdb3c9fbb3a3fca05d6941d5e756b6ce151e2e9cc4f49c3b021fb54a5b970b01e3ddae9d77175e58b66cacb00927ee829f545fafd0bbdbdc838933aa
languageName: node
linkType: hard
-"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.16.3":
- version: 10.16.3
- resolution: "@motionone/types@npm:10.16.3"
- checksum: ff38982f5aff2c0abbc3051c843d186d6f954c971e97dd6fced97a4ef50ee04f6e49607541ebb80e14dd143cf63553c388392110e270d04eca23f6b529f7f321
+"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.17.0":
+ version: 10.17.0
+ resolution: "@motionone/types@npm:10.17.0"
+ checksum: 9449991493f6e7be59261e4fc1a3d4a5b842da8962084d742905f964b4d3aad5fd6c37bd95d5ab51f65fda7b0c389a332c5f7c7eccd6be54eb765ee2fc6e7070
languageName: node
linkType: hard
-"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.16.3":
- version: 10.16.3
- resolution: "@motionone/utils@npm:10.16.3"
+"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.17.0":
+ version: 10.17.0
+ resolution: "@motionone/utils@npm:10.17.0"
dependencies:
- "@motionone/types": "npm:^10.16.3"
+ "@motionone/types": "npm:^10.17.0"
hey-listen: "npm:^1.0.8"
tslib: "npm:^2.3.1"
- checksum: 95d91927e801d10dd00b0f866a0bf79a2014439a7de30c81031e667960c82a50426be5b358b033e09ea2f861e59102933dff796d742c83ee0345f26c23f64ced
+ checksum: 030359d37a6edebf29e0477050e638340f3756fc993a75b877e923b31ed4f3092a61f9d2323494f4b561ada1afc5ea774fb34022e7afbe2ec449c215585ab392
languageName: node
linkType: hard
@@ -4177,6 +4242,76 @@ __metadata:
languageName: node
linkType: hard
+"@next/env@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/env@npm:13.5.6"
+ checksum: c81bd6052db366407da701e4e431becbc80ef36a88bec7883b0266cdfeb45a7da959d37c38e1a816006cd2da287e5ff5b928bdb71025e3d4aa59e07dea3edd59
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-arm64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-arm64@npm:13.5.6"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-x64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-x64@npm:13.5.6"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-arm64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-arm64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-ia32-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-ia32-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-x64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-x64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@nodelib/fs.scandir@npm:2.1.5":
version: 2.1.5
resolution: "@nodelib/fs.scandir@npm:2.1.5"
@@ -4290,21 +4425,21 @@ __metadata:
resolution: "@packrat/ui@workspace:packages/ui"
dependencies:
"@shopify/flash-list": "npm:^1.6.1"
- "@tamagui/animations-react-native": "npm:1.79.14"
- "@tamagui/build": "npm:1.79.14"
- "@tamagui/font-inter": "npm:1.79.14"
- "@tamagui/progress": "npm:1.79.14"
- "@tamagui/react-native-media-driver": "npm:1.79.14"
- "@tamagui/shorthands": "npm:1.79.14"
- "@tamagui/switch": "npm:1.79.14"
- "@tamagui/themes": "npm:1.79.14"
- "@tamagui/toast": "npm:1.79.14"
+ "@tamagui/animations-react-native": "npm:^1.84.1"
+ "@tamagui/build": "npm:^1.84.1"
+ "@tamagui/font-inter": "npm:^1.84.1"
+ "@tamagui/progress": "npm:^1.84.1"
+ "@tamagui/react-native-media-driver": "npm:^1.84.1"
+ "@tamagui/shorthands": "npm:^1.84.1"
+ "@tamagui/switch": "npm:^1.84.1"
+ "@tamagui/themes": "npm:^1.84.1"
+ "@tamagui/toast": "npm:^1.84.1"
"@tanstack/react-table": "npm:^8.10.7"
"@tanstack/react-virtual": "npm:3.0.0-beta.54"
esbuild: "npm:^0.19.5"
jotai: "npm:^2.4.3"
react: "npm:18.2.0"
- tamagui: "npm:1.79.14"
+ tamagui: "npm:^1.84.1"
languageName: unknown
linkType: soft
@@ -4475,8 +4610,8 @@ __metadata:
linkType: hard
"@react-aria/combobox@npm:^3.0.0-alpha.1":
- version: 3.8.1
- resolution: "@react-aria/combobox@npm:3.8.1"
+ version: 3.8.2
+ resolution: "@react-aria/combobox@npm:3.8.2"
dependencies:
"@react-aria/i18n": "npm:^3.10.0"
"@react-aria/listbox": "npm:^3.11.3"
@@ -4484,7 +4619,7 @@ __metadata:
"@react-aria/menu": "npm:^3.12.0"
"@react-aria/overlays": "npm:^3.20.0"
"@react-aria/selection": "npm:^3.17.3"
- "@react-aria/textfield": "npm:^3.14.0"
+ "@react-aria/textfield": "npm:^3.14.1"
"@react-aria/utils": "npm:^3.23.0"
"@react-stately/collections": "npm:^3.10.4"
"@react-stately/combobox": "npm:^3.8.1"
@@ -4496,7 +4631,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- checksum: 1ed8012fefe04c948298dfe98594e7d954cf496071f7d4650822eb182f85bf76a0c9df5f0a8915313ef88f5f922e4e0020dfb2af493367748b8c2675ed7fef81
+ checksum: 2b3758d337af9d45cd929be2e38bd7c96e6ec8af377c8f3210d7bba89aec6cf4c8001e3f66261467f54509d586668aabd80b24bde7aa9f074a87ffb7a0ca0cf9
languageName: node
linkType: hard
@@ -4737,9 +4872,9 @@ __metadata:
languageName: node
linkType: hard
-"@react-aria/textfield@npm:^3.14.0":
- version: 3.14.0
- resolution: "@react-aria/textfield@npm:3.14.0"
+"@react-aria/textfield@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "@react-aria/textfield@npm:3.14.1"
dependencies:
"@react-aria/focus": "npm:^3.16.0"
"@react-aria/form": "npm:^3.0.1"
@@ -4752,7 +4887,7 @@ __metadata:
"@swc/helpers": "npm:^0.5.0"
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- checksum: a5f4027019121398619b20792e14b30c5b478de7fbc0f87240d2ac55fe99ebe2be05baa7e413278794ed23d360ad28f26c3aa7c136a6bf3f99911eaa7fff70ed
+ checksum: 131885917122c34bb5a124e3b120fbd175fe1eefdb5020ac786ec4ffdd8f370c4fd2d2a0e69257d6e337c99ab14548c51f43d677a26836c66433374b3d47bae5
languageName: node
linkType: hard
@@ -5859,8 +5994,8 @@ __metadata:
linkType: hard
"@rnmapbox/maps@npm:^10.0.0-beta.79":
- version: 10.1.3
- resolution: "@rnmapbox/maps@npm:10.1.3"
+ version: 10.1.5
+ resolution: "@rnmapbox/maps@npm:10.1.5"
dependencies:
"@turf/along": "npm:6.5.0"
"@turf/distance": "npm:6.5.0"
@@ -5879,7 +6014,17 @@ __metadata:
optional: true
mapbox-gl:
optional: true
- checksum: 9769884336136c41bfb5df02bd31d2c257e43ae56913487bb922ee57ed7315c8c3e46d406a1ba77c8e1d567d8db67406acaf7d704eba29394ed1af7f9d553d11
+ checksum: ba1543f68d2ddb3fb491176d997f33b020025ec64ac5f1705ca3ac4eef9d055895aeca66943982bdd0dc313ab019ca2eba3f83b082b12e17487856c329a3d198
+ languageName: node
+ linkType: hard
+
+"@rollup/pluginutils@npm:^4.0.0":
+ version: 4.2.1
+ resolution: "@rollup/pluginutils@npm:4.2.1"
+ dependencies:
+ estree-walker: "npm:^2.0.1"
+ picomatch: "npm:^2.2.2"
+ checksum: 503a6f0a449e11a2873ac66cfdfb9a3a0b77ffa84c5cad631f5e4bc1063c850710e8d5cd5dab52477c0d66cda2ec719865726dbe753318cd640bab3fff7ca476
languageName: node
linkType: hard
@@ -5959,6 +6104,13 @@ __metadata:
languageName: node
linkType: hard
+"@sinclair/typebox@npm:0.25.24":
+ version: 0.25.24
+ resolution: "@sinclair/typebox@npm:0.25.24"
+ checksum: d415546153478befa3c8386a4723e3061ac065867c7e22fe0374d36091991676d231e5381e66daa0ed21639217c6c80e0d6224a9c89aaac269e58b82b2f4a2f4
+ languageName: node
+ linkType: hard
+
"@sinclair/typebox@npm:^0.27.8":
version: 0.27.8
resolution: "@sinclair/typebox@npm:0.27.8"
@@ -5998,6 +6150,15 @@ __metadata:
languageName: node
linkType: hard
+"@swc/helpers@npm:0.5.2":
+ version: 0.5.2
+ resolution: "@swc/helpers@npm:0.5.2"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 3a3b179b3369acd26c5da89a0e779c756ae5231eb18a5507524c7abf955f488d34d86649f5b8417a0e19879688470d06319f5cfca2273d6d6b2046950e0d79af
+ languageName: node
+ linkType: hard
+
"@swc/helpers@npm:^0.5.0":
version: 0.5.3
resolution: "@swc/helpers@npm:0.5.3"
@@ -6016,171 +6177,170 @@ __metadata:
languageName: node
linkType: hard
-"@tamagui/accordion@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/accordion@npm:1.79.14"
+"@tamagui/accordion@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/accordion@npm:1.84.1"
dependencies:
- "@tamagui/collapsible": "npm:1.79.14"
- "@tamagui/collection": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/collapsible": "npm:1.84.1"
+ "@tamagui/collection": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: ff741ab40ed808ba44014c1021b23a324d25f888631bc746031fc21facde0d72ed54853df81810b98b5cb4805d15a88818d59bab2e4e582a5d2132745d6ddd23
+ checksum: f0a8e120828d7023bff0e1b28e14ed0d24fd44dff49964b1081bf3ebd8ebf7c536eb0d71a54202598e6f0ab614ac350a2309e2313d62337967b46309b1759d69
languageName: node
linkType: hard
-"@tamagui/adapt@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/adapt@npm:1.79.14"
+"@tamagui/adapt@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/adapt@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- checksum: 06100eda7f5198de30dd7cd153fbe9da17830adc777bccde6c95008e7dc428f733899a00a70b0d1e347ebbcb5ce0e5e47a16d87cc9999b371cf624ab8c4d35bb
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ checksum: 161f6b8a3684a4037f95cd006e592a9be65b2e29864801f89e95712d018fe79db6bad4612294b16068f02b349ce0c933890a49f62403e38205e012a4a8404ad3
languageName: node
linkType: hard
-"@tamagui/alert-dialog@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/alert-dialog@npm:1.79.14"
+"@tamagui/alert-dialog@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/alert-dialog@npm:1.84.1"
dependencies:
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/aria-hidden": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/dialog": "npm:1.79.14"
- "@tamagui/dismissable": "npm:1.79.14"
- "@tamagui/focus-scope": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/popper": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/remove-scroll": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/aria-hidden": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/dialog": "npm:1.84.1"
+ "@tamagui/dismissable": "npm:1.84.1"
+ "@tamagui/focus-scope": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/popper": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/remove-scroll": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 50571eb1b003ba677c43d576bdf67269923b047968c6a01af767fcd2f848c2924b56e461cc3c37d040e7fc60958775e47d2b344b6b9c419126ab1f58747ff769
+ checksum: ed8753f0441219f4a268aee3429c8fdf423c131c38021acf22c73536a563168327a7122c335eacd50b5456dd83c395f6cd6710683026bf9075e63bb2047d9c17
languageName: node
linkType: hard
-"@tamagui/animate-presence@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/animate-presence@npm:1.79.14"
+"@tamagui/animate-presence@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/animate-presence@npm:1.84.1"
dependencies:
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/use-force-update": "npm:1.79.14"
- "@tamagui/use-presence": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
- checksum: 048b6f6b4efe620f93813816fad4c972514c7557289c8287e789ce05f49389aec7aaaf5347b6069bfd6898c073b4d0a53c573bddb728a53a799fe8da65ca8078
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/use-force-update": "npm:1.84.1"
+ "@tamagui/use-presence": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
+ checksum: 1c49658bc501fc9723970b8b99f7df2bc36910bbb5aa9b4aef68668275ed869bfbb879416b662e51e212c9cd6edc02655928515eef2ff5a66aaa36e6bfcfaf96
languageName: node
linkType: hard
-"@tamagui/animate@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/animate@npm:1.79.14"
+"@tamagui/animate@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/animate@npm:1.84.1"
dependencies:
- "@tamagui/animate-presence": "npm:1.79.14"
- checksum: 1b556e197816ae476c489e81424eb9c38d44f0bdb40f8415a80022f185a6c4dac049139d29fc0739e51eed0c95ce6fd0c11f71a3ea391ea15263e25b2c1a7012
+ "@tamagui/animate-presence": "npm:1.84.1"
+ checksum: 465cee04654e4725e5e07d16a6dfebd5cf362b532600298ec7fbcb34fed5606dfe17b5ba15c2760b61c8d7fc3e3f676b07493eaa3a13a720d8a98b0f364b21b0
languageName: node
linkType: hard
-"@tamagui/animations-css@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/animations-css@npm:1.79.14"
+"@tamagui/animations-css@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/animations-css@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/cubic-bezier-animator": "npm:1.79.14"
- "@tamagui/use-presence": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/cubic-bezier-animator": "npm:1.84.1"
+ "@tamagui/use-presence": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
react: "npm:^18.2.0"
- checksum: e1bd40f86ea9bea7d782d7c6b89c2188285de564a237ffca298d52d1c38466afde8e87a1c53239afb4e77d0daefc0a0886ccc5b48ae1809cc4214eca5218e2f8
+ checksum: 1f76d70dcaddf15cc2eaf50903875bd724cabbefbdc4d6777ea3c63f1dbed95661413c286af9e38b9bec9730e939e2542f4470a47ac8793514fc9ff6920615e0
languageName: node
linkType: hard
-"@tamagui/animations-moti@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/animations-moti@npm:1.79.14"
+"@tamagui/animations-moti@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/animations-moti@npm:1.84.1"
dependencies:
- "@tamagui/use-presence": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/use-presence": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
moti: "npm:^0.25.3"
- checksum: 99f151420173039e6eba2e86ddaca596ec34bd2c38e420eee0825e344c192b59a03f6027ea1dae5ea7796efb297a8d7094ae0b3f0b69767b2d37517378c465bc
+ checksum: 6b6241063f0b9fa5c54507d8716fb53b51200576e8bbd40d81e970c195988186f1b47d2d8299ec7cfe8b68da40d2d4c24f5459097f94cb04d729a46f428613c5
languageName: node
linkType: hard
-"@tamagui/animations-react-native@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/animations-react-native@npm:1.79.14"
+"@tamagui/animations-react-native@npm:1.84.1, @tamagui/animations-react-native@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/animations-react-native@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/use-presence": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/use-presence": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 7b67d2c13cce8f1988681dc62a54f3c35feaa1ca64c824a411dd887bd1b2c3dc9ea0f7f0633c20b89343e42888c605ddcfba0d8ab943e71f28c5db775baf7e87
+ checksum: 05af9e9046fa3bb6cfbb9919c9267fab5dbf8124cfaa10efa60b572ae2a0751253445ca686a1e018c8d616c2e51187d1fe18b5e4ebcc02950a6d48e626b3e4f7
languageName: node
linkType: hard
-"@tamagui/aria-hidden@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/aria-hidden@npm:1.79.14"
+"@tamagui/aria-hidden@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/aria-hidden@npm:1.84.1"
dependencies:
aria-hidden: "npm:^1.1.3"
peerDependencies:
react: "*"
- checksum: aed56bf399c28e6833abe774e7ef840f1e57009b4b17320a97635bf5275892c13f1823ad44e70ce3908d0853f424518f3fc1b378f36e65efaa7926921d1057fb
+ checksum: 795f946c68e13a152de5f7028c1c4ce824935febed13435b67f8a2662b49e24563923f3349275ec2fa3ac0bdb80fec46d3987d327ecf30705908b65f581a6e95
languageName: node
linkType: hard
-"@tamagui/avatar@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/avatar@npm:1.79.14"
+"@tamagui/avatar@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/avatar@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/image": "npm:1.79.14"
- "@tamagui/shapes": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/image": "npm:1.84.1"
+ "@tamagui/shapes": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 5a9b953b6647f6d1de886131fffd3a015525ae557cd2a9fc4ae90f8d03456a5eec05237214c1b8087f11da026bc6ffcc51fb518184fa35901ab04c73e2d6119b
+ checksum: c990109d3d36afb8ea14b1271c8dbb323b410ce4aa7e527e8a2f77d463ee926063c4467fbb7c582f3940054c5b9b71f6eaabf57930b99a95e09734e29a7c69d5
languageName: node
linkType: hard
-"@tamagui/babel-plugin@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/babel-plugin@npm:1.79.14"
+"@tamagui/babel-plugin@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/babel-plugin@npm:1.84.1"
dependencies:
"@babel/generator": "npm:^7.23.3"
"@babel/helper-plugin-utils": "npm:^7.22.5"
"@babel/template": "npm:^7.22.15"
"@babel/traverse": "npm:^7.23.3"
- "@tamagui/simple-hash": "npm:1.79.14"
- "@tamagui/static": "npm:1.79.14"
- checksum: 1cb9b55fb7c28b001d989ecae6163c14e6c798de2add711057e2b9255c47c76b240b4237c94c382756792e15c4f42b2c51de411c81c5bea69bcb8d3923c8bacd
+ "@tamagui/static": "npm:1.84.1"
+ checksum: 2efc8ac84d507400851bcc7db0f5a8b561c347a7d56afbc960a5ee34c5adc227bfa55c29dc117cb9685f4343d6d049f8a81530b59be4dcc4e118f81cf0b884e6
languageName: node
linkType: hard
-"@tamagui/build@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/build@npm:1.79.14"
+"@tamagui/build@npm:1.84.1, @tamagui/build@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/build@npm:1.84.1"
dependencies:
"@types/fs-extra": "npm:^9.0.13"
chokidar: "npm:^3.5.2"
- esbuild: "npm:~0.19.3"
+ esbuild: "npm:^0.19.11"
execa: "npm:^5.0.0"
fast-glob: "npm:^3.2.11"
fs-extra: "npm:^11.1.0"
@@ -6189,844 +6349,857 @@ __metadata:
typescript: "npm:^5.2.2"
bin:
tamagui-build: tamagui-build.js
- checksum: 88ca869cba1143ea6d8ba5308c23412f30017a22c844b55d8c82cca8c544a2ebbb6debcb88bc5695ce37547cf2f4cd231df298610ae6bb30f87820f80610f289
+ checksum: 7af1ced448d24a6c509e6c4b1962d8febd0f4f550a9dbbd56831ab98756ab3e2ba3474e6cd9a67dad88464fa1ecdb50087fa62094510aca9fd484b3cb7b45ee4
languageName: node
linkType: hard
-"@tamagui/button@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/button@npm:1.79.14"
+"@tamagui/button@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/button@npm:1.84.1"
dependencies:
- "@tamagui/font-size": "npm:1.79.14"
- "@tamagui/get-button-sized": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/font-size": "npm:1.84.1"
+ "@tamagui/get-button-sized": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 53b5e300df4dcbd9c0797846fe2fc92f5504920992784514b0c408c2da5287d62b772f88d142ba079918d8dab2f08be8808d0d7b13b3589f81cad095ce6efc64
+ checksum: cf7e54cf468ee648d5c7ee06625c1c633ab7662918c117ceb5517c98dd03fd3742a921b2d65a4cebccdedb876e04c669b7fb0ce2aedefc3175a743c41f0f0380
languageName: node
linkType: hard
-"@tamagui/card@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/card@npm:1.79.14"
+"@tamagui/card@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/card@npm:1.84.1"
dependencies:
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: bf9d8d2d0fa267cca8e91d97f264e597bbcdf0262943bf0093911598a41444678ea0f944b33fbeab303a47e770accae91d45204c8dc6feadc2dd479802ce1b70
+ checksum: a0641935b7cac255e712c6fff7ed390d41e9a03dd81d9718fdc24ae5794e1d051621383f1fc76158cc059a69fc61fb631d6841a6e1ba689e7e9c3b2ab88e024c
languageName: node
linkType: hard
-"@tamagui/checkbox@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/checkbox@npm:1.79.14"
+"@tamagui/checkbox@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/checkbox@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/font-size": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/label": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-previous": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/font-size": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/label": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-previous": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: d058dc39380ecfad373a0c4b397bda6ee3118075993b006fbaa02aa6e88cc159380a64518799d745c150a1dbbe4444ed50e2b8282a59b442a7e2bd92f02fb19a
+ checksum: 893019d0135b4cd316bdc48bc7cae0f913e033e5d358f8074efda487ff5947423404a2b3cdc1b04df8ef797fe47c25e2c4e57957f7787c5900311458a989ddf9
languageName: node
linkType: hard
-"@tamagui/cli-color@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/cli-color@npm:1.79.14"
- checksum: 48a4243380bd8a5e3c9c82e7d304c1e92287ef39df40b9b8561b6b44943db3dce1f638889b5e12520a75e4971355155f82c1e95afc0a15c533dc9396884e6acf
+"@tamagui/cli-color@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/cli-color@npm:1.84.1"
+ checksum: b84b67b321712e02402edde508501e4270bc2d9e64079480adfb40ec0db11e990ad18303920131290854452eeaa233e012c65990fe861c3eabeae29f1a6e97db
languageName: node
linkType: hard
-"@tamagui/collapsible@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/collapsible@npm:1.79.14"
+"@tamagui/collapsible@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/collapsible@npm:1.84.1"
dependencies:
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 943bdec9f6da1da7258d95cf2d554e010a746fab677fc808c58bba3b359a30179c772018a1a287ed1d851193cd52c1abfd92d978626237d046e393a568efe7ee
+ checksum: ac5134b540fd46b722408acf6bf3b571736bbc613ca0e64f42dc5d87e4b562248c853f29e85c9a71ce2065632b7100c6193900a1e3faa8ee00950065c92950a1
languageName: node
linkType: hard
-"@tamagui/collection@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/collection@npm:1.79.14"
+"@tamagui/collection@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/collection@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: c7cb45bde0e6919c7762489d757bc27bb7e733518b12cba76afcf55c514dcb7393323faab1ee82577092d6aca75e1a73a2b88b4ee55c606cd903e5faf53d6ba6
+ checksum: 487c0faeb35af42852161095c51e1968ccbcfcb1d85344458529ca1d8e33d4aae6adeae7d3829a1beb329e371de073854b8e469236876f7039832e5079339e8f
languageName: node
linkType: hard
-"@tamagui/colors@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/colors@npm:1.79.14"
- checksum: 93ebf96c24cfd20b9269629c648b86d0a25aed832fb4e8ddc6dfedc8350c216fe3f08261749f850dc3c0e25fa7f64ded36716e6ade96a5874e3fb1c473490cb5
+"@tamagui/colors@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/colors@npm:1.84.1"
+ checksum: dfdef6252799a951035eae2aa6d0315fcd009db34261d187d284cccfe1e914351eaee0d624c01c7289afb96308c0012ec7e03bbaf7148b038e04e17b903f877d
languageName: node
linkType: hard
-"@tamagui/compose-refs@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/compose-refs@npm:1.79.14"
+"@tamagui/compose-refs@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/compose-refs@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 58c4738318ec5961759515a53350ebc2c7556faeb4a88a5498d73f684ef0359ad6e890e25519a7231f1425e9c14f4fcd73b0d00d9594dae4bb4816b787bc19e6
+ checksum: 8ddbe7ada41774ea06325d281ce74b54cb297e3db710a0b9bdc86de16a7fcc19f405026847303ee4269a285459146abc88a5bc016e111908a9e9f726da09066d
languageName: node
linkType: hard
-"@tamagui/config-default@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/config-default@npm:1.79.14"
+"@tamagui/config-default@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/config-default@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/shorthands": "npm:1.79.14"
- checksum: af44f43bb91378e91eb9ed309e39d29d3fcc7c40310c6823ed20271f414a4f9a03e0e38c50b976b1d8e1bbeee0af578a4227b7f230879e192a0cea2e049108bf
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/shorthands": "npm:1.84.1"
+ checksum: 63fe11bf91c9295acdb087f63a4073228ae5e7e3a6914d91a038eb0ffc31150fd0a4573e7365493db8d95eaed7e96a4214e858c344003f995e8bc896d70b31ed
languageName: node
linkType: hard
-"@tamagui/config@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/config@npm:1.79.14"
+"@tamagui/config@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/config@npm:1.84.1"
dependencies:
- "@tamagui/animations-css": "npm:1.79.14"
- "@tamagui/animations-moti": "npm:1.79.14"
- "@tamagui/animations-react-native": "npm:1.79.14"
- "@tamagui/colors": "npm:1.79.14"
- "@tamagui/font-inter": "npm:1.79.14"
- "@tamagui/font-silkscreen": "npm:1.79.14"
- "@tamagui/react-native-media-driver": "npm:1.79.14"
- "@tamagui/shorthands": "npm:1.79.14"
- "@tamagui/themes": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
- checksum: dbc309183bd93102bf4b71e8d7dd88e06647035f0042beae3b5a0228f87d39001133e922fbfdda9f01921d5897d196dc3831c609202b59e4765bf49bf9c0c243
+ "@tamagui/animations-css": "npm:1.84.1"
+ "@tamagui/animations-moti": "npm:1.84.1"
+ "@tamagui/animations-react-native": "npm:1.84.1"
+ "@tamagui/colors": "npm:1.84.1"
+ "@tamagui/font-inter": "npm:1.84.1"
+ "@tamagui/font-silkscreen": "npm:1.84.1"
+ "@tamagui/react-native-media-driver": "npm:1.84.1"
+ "@tamagui/shorthands": "npm:1.84.1"
+ "@tamagui/themes": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
+ checksum: 22630174fab50ca25f65267d61030e4df11ca43c79991ef11dd4acf80fee0f9a969e63edbf81435e784d42b05171377ecc25f37b5c530528c28b257c43db8b18
languageName: node
linkType: hard
-"@tamagui/constants@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/constants@npm:1.79.14"
+"@tamagui/constants@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/constants@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: b7ea4c3026920ac5c4d9c7c612059d85fa258cae39c24cfa667f4921f78d34bb1f7990776536d8cb3ab1419abdf70bdc14f76922c7d1e6817bdf70829ef877e7
+ checksum: c9e7c5502f1403b379f22005e0db79b993b8525b98f52c7630bbebbf636375017a658466a0ff7b9522cf49de88802d36399d988be34c30ecb6d957f81d6d4766
languageName: node
linkType: hard
-"@tamagui/core@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/core@npm:1.79.14"
+"@tamagui/core@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/core@npm:1.84.1"
dependencies:
- "@tamagui/react-native-use-pressable": "npm:1.79.14"
- "@tamagui/react-native-use-responder-events": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/react-native-use-pressable": "npm:1.84.1"
+ "@tamagui/react-native-use-responder-events": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: e1016656839bbcda6427e2388bf80b2bc444752473825ed464e5fbac5d33222f85a953976d0300868e35411a1dac4686377aa5aecb7e841045ce3d032b5f44e1
+ checksum: a46140004760a203eb26d4dd128c91aba4b432217ced05328976fefe0eb8d1618c444d8fa48f0a642096159b9f19ce5b5f47864865ff5cfd79f890890106eb8e
languageName: node
linkType: hard
-"@tamagui/create-context@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/create-context@npm:1.79.14"
+"@tamagui/create-context@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/create-context@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: d86ef19ab874d88fa4a04c75fdd3ec65b643329ad258243015bdcd52a53e2f3c2b0f08a47dc9bcd57b03835cd86ba246461343fa0d3856b197e1f6f99c93a1c3
+ checksum: 21fac1cf457581e6cf7ea29d74fe9948b5ec7685f02da2f6c6ab495c61207ff288b37660318c57b38e4aac3b6a53318bf3e989e101742bbf148f90930e317d80
languageName: node
linkType: hard
-"@tamagui/create-theme@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/create-theme@npm:1.79.14"
+"@tamagui/create-theme@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/create-theme@npm:1.84.1"
dependencies:
- "@tamagui/web": "npm:1.79.14"
- checksum: da69c554e06932faa2828bd6becc13be3582250979a10b98be94d9c80248989455940bf47a4eaa215b06a2d46ea4aba15cdc72994543f39623c365873d00cf00
+ "@tamagui/web": "npm:1.84.1"
+ checksum: 340389683cd2342966bce879571365fc3bbcf2d9a5ee7a86f0683d797af7861869d2885da42f9f5860a8c2ab2792f18cbd5057dd11fc850af4f25f5979ee307f
languageName: node
linkType: hard
-"@tamagui/cubic-bezier-animator@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/cubic-bezier-animator@npm:1.79.14"
- checksum: a4e3cb97b704950fb4d70c0747cb11b239186861c3060d4ad24f90ae97c28b1d37a115b12f43db3ec785593ee602e407b7581608c581bf7c5cab35e96eddac3a
+"@tamagui/cubic-bezier-animator@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/cubic-bezier-animator@npm:1.84.1"
+ checksum: bee9c9c99119806231e989d95c9754059b18b95a41ea4ed31a3eacb2b8e60bb7c06162a39349e93523d984fd06e69864bdb0352fee3ea762d8c350410d35d4b1
languageName: node
linkType: hard
-"@tamagui/dialog@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/dialog@npm:1.79.14"
+"@tamagui/dialog@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/dialog@npm:1.84.1"
dependencies:
- "@tamagui/adapt": "npm:1.79.14"
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/aria-hidden": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/dismissable": "npm:1.79.14"
- "@tamagui/focus-scope": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/popper": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/remove-scroll": "npm:1.79.14"
- "@tamagui/sheet": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/adapt": "npm:1.84.1"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/aria-hidden": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/dismissable": "npm:1.84.1"
+ "@tamagui/focus-scope": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/popper": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/remove-scroll": "npm:1.84.1"
+ "@tamagui/sheet": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 48e9bd01e71bc99a1dcd6a26fd32a48273b650ff63a27c963c08cbe5c9d5d9f47b66a21e34a07af629b2d37b305cf995126cac2221eb9213b715f605d0ec98c5
+ checksum: d5d1f0762aa6bcc76e6305417af1b8e3de9f989063006041cb3e78a6a9b5aa8e7daec875e07f14e70110e56950e674240b2365a29a2fe336e2d7cecd387bfe7c
languageName: node
linkType: hard
-"@tamagui/dismissable@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/dismissable@npm:1.79.14"
+"@tamagui/dismissable@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/dismissable@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/use-escape-keydown": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/use-escape-keydown": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 90cd71b5066b55a0d83dc118e88a54c74b398dce530811afb4225c5a9e29d73814ee70e342361c4441de0f5482b24c1bd5d24fd3eabc8f4e2440763345e1700b
+ checksum: 1b74699f70c318d661609160806e547c27716b3f86a04beeb02bc92f9ba2ee461aa9163f6e7105ee3ad9a583a506f51c18542adef95e2f0c730f37ae4f7be64c
languageName: node
linkType: hard
-"@tamagui/fake-react-native@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/fake-react-native@npm:1.79.14"
- checksum: b032a1ef33e740131431f97e76ff43e62a27e1b79824bf81f01b024eb67085fbdb2000f1f4047c11c5f6df1d07b457bff194dcee18c8b1ec2a542a3e95a007a9
+"@tamagui/fake-react-native@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/fake-react-native@npm:1.84.1"
+ checksum: 7dba33673c0556ed228f734b1286868af8a1af9d27ee73a92e63a180b3179c9878a4526f9dbcba2120dc443a3ed73839225f1a216fb817c08477b5d4f2b4fdab
languageName: node
linkType: hard
-"@tamagui/floating@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/floating@npm:1.79.14"
+"@tamagui/floating@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/floating@npm:1.84.1"
dependencies:
"@floating-ui/react-dom": "npm:^2.0.1"
"@floating-ui/react-native": "npm:^0.10.1"
react-dom: "npm:^18.2.0"
peerDependencies:
react: "*"
- checksum: b6aaf9edaccebd5258cbcf20f8b0a2ca450fb246574f549d93bf418a7da9e628bfc7dcb4578ad644cedbd76ea7e4a79fac62fc444b630927c1987d378b8ac4e7
+ checksum: 3667f1ef80324c28d88eb44ffe5b214cf49095c48c2bdacda442793c6a427162217501f5aaebd3445939fd511c9e628a6f716d3d488bb63d38aa87cdffc5280c
languageName: node
linkType: hard
-"@tamagui/focus-scope@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/focus-scope@npm:1.79.14"
+"@tamagui/focus-scope@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/focus-scope@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: b6863a1f1eb64d59b892fb12990c781ec48b419183ba2eba7a0d08f591f8e706f2e962b3c86c1537b2596e6211e5bf2c0a4792e5035d5c2d963e9724882ff304
+ checksum: 85135fca1ca805fb3a856771cc36e7f1b03f5587b857cae11e46a4ee7797d5e6fa37fd6d7de8f9ee93c743eeae7569bc6c8c18dc39fb5876d5b9b8504b5d3971
languageName: node
linkType: hard
-"@tamagui/focusable@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/focusable@npm:1.79.14"
+"@tamagui/focusable@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/focusable@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 49ef621fd09ce24b503b386aa1f6cdf4ebcf1f05a7deb741c85137e7897d65a2585e7ccc4584b047727150c1f7724c4e631ba2a9bb570e542ecc1791b7642e69
+ checksum: 90500c422f0eeee8a0d69a6390d509e5d5581ba5cba1174646aef6d2ee895d37bbf5623ee5b83f8170f2596ed8da066bdc0dd9e1d4ba5493f22af99c69c6242a
languageName: node
linkType: hard
-"@tamagui/font-inter@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/font-inter@npm:1.79.14"
+"@tamagui/font-inter@npm:1.84.1, @tamagui/font-inter@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/font-inter@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- checksum: bebde875f46fc8b25758f9e546674d84f03823e5e386b47d1c57bba6d99e4de863b25d0d3914678a9677a04591cb7a75eb760297ca0d1209f287271dd2c8745c
+ "@tamagui/core": "npm:1.84.1"
+ checksum: cfe408d593375a5cfbaf53f00de3483e070e8239c01c0c84ce8c3b9b0cb9c70c931e422b6ef2023cad63097bfffe1c00f2b1d43cb9813368f7051d62023658bf
languageName: node
linkType: hard
-"@tamagui/font-silkscreen@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/font-silkscreen@npm:1.79.14"
+"@tamagui/font-silkscreen@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/font-silkscreen@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- checksum: 143b0774950d0c663f784c8161965085f897875ace0d7121cd98bd816649f637e213dee19e4960695f0096a58583ad4371b80c6533dd15f1516774425e6e4832
+ "@tamagui/core": "npm:1.84.1"
+ checksum: 6ee67186cff9266e4654831cf2b6a83ecc91c39a0fbc102e239ffdf778eb683b5ba086a373e46b2aa2e3786c2c6568afc7404bc695b13d276b13e59639338f43
languageName: node
linkType: hard
-"@tamagui/font-size@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/font-size@npm:1.79.14"
+"@tamagui/font-size@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/font-size@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 47e1f0819114e65aa60da3c0502880c9bca6465bea0425866ddf0a5c8ca7bd880567bdb78fb3c1ab9667c83fba1dd0a667567908c923657bb10add6765a5280d
+ checksum: f6e91642abec7f159cd8b9ec6737ea531821bbbf66f47f050913a721d5a07e7cf3c939e9350ebe868100d67070fcc02b5468e7fcf0381923e8ed192ebc986573
languageName: node
linkType: hard
-"@tamagui/form@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/form@npm:1.79.14"
+"@tamagui/form@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/form@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/get-button-sized": "npm:1.79.14"
- "@tamagui/get-font-sized": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/get-button-sized": "npm:1.84.1"
+ "@tamagui/get-font-sized": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 150045b0d70cb4a8c8a8e0a591c7c024e8211a7ff542e5215ed051e3ee4674722ec26e89ed40c50cdb1281b72d5f8693e79ae859b45bdd51255c307c730e1a34
+ checksum: bb898e3736145531908e3d2d71865cbc98a935661b16b004731f4b30c53ce6dcedcb40e5db9d01e20cf54b952d3475fd413fcb3e0741988057d8312b1552e0a0
languageName: node
linkType: hard
-"@tamagui/generate-themes@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/generate-themes@npm:1.79.14"
+"@tamagui/generate-themes@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/generate-themes@npm:1.84.1"
dependencies:
- "@tamagui/create-theme": "npm:1.79.14"
- "@tamagui/types": "npm:1.79.14"
+ "@tamagui/create-theme": "npm:1.84.1"
+ "@tamagui/types": "npm:1.84.1"
esbuild-register: "npm:^3.4.2"
fs-extra: "npm:^11.1.0"
- checksum: d9074c480cb162f168be20cb44b948c00593ae7e3d93eaf280416566dc0edfdc63e982b3f1334c4e1f1ff1722cdd274f6fcc2ab8cced1a331752061bb7100a09
+ checksum: 92d7c5b5a9726b2a5d561be135803a6181212916cd3eef7526ee7b5d7b77bec9e5af3c329cdc2438f6d8b890c745de778c1238d29286433d971bdeb5219a71e6
languageName: node
linkType: hard
-"@tamagui/get-button-sized@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/get-button-sized@npm:1.79.14"
+"@tamagui/get-button-sized@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/get-button-sized@npm:1.84.1"
dependencies:
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: cd8a185420907fcb39e205daf52964061bf9293a4a679d386c74ec108ccb26f37827a6e5efe3ffcb17004c285fee906fe50462e24ef4def41778ce20fc0fc33b
+ checksum: 4d009c5d106b28278f0790e715e9e02fd0279b78f3687dc8e624503d59cdec5f8b0efa119a404a73391492cf356080b642173132cb12aa9b00dc96d461c5070d
languageName: node
linkType: hard
-"@tamagui/get-font-sized@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/get-font-sized@npm:1.79.14"
+"@tamagui/get-font-sized@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/get-font-sized@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 7086a7e010022560e455501f842ca3b7b60fa3ef7673584ced64210d9eff3fda21b31b531aa347b35d5f1e4043b46e51469291ed2b36ad27543613a454079ce3
+ checksum: ce0b785142fe29d936f4905643a15a6b281f848fd10dc35d78fb1bbe59d0b324b49ffd203cbaa9f2f963337332e1f76d6eec4168bf1f6bf0cfb2ff38ffad237d
languageName: node
linkType: hard
-"@tamagui/get-token@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/get-token@npm:1.79.14"
+"@tamagui/get-token@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/get-token@npm:1.84.1"
dependencies:
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: d19e23606704574d140dd1941240af5e7edb2c5d29635d5d25f27bcb851f0f6c50f31a33ad872d1035b53d469403e802c99594dcae23887a0ad7b905efe76358
+ checksum: 9cc57cd1cf3ed740f46c74a45e8685a7494276dc744bf8d526a734b10ae011db2485533e3f07deccee8d9ebfaebad062967ffec63ebfa9670165f3536a2dc38c
languageName: node
linkType: hard
-"@tamagui/group@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/group@npm:1.79.14"
+"@tamagui/group@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/group@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
reforest: "npm:^0.13.0"
peerDependencies:
react: "*"
- checksum: 9aa0ef0461dd01b441d3c2408b1c389b95830889ce430647f1cf4c34bff891a30078186135518e4f57e39bd16f3dfc2f39e5a5121d05402a99a83ac4c2419033
+ checksum: a97021af64c71f42482561b312fc13f00700d44349d5dae932706d3d9dd6ba3ac2f761e0ba1627f978fad880a13c0afbf51d13d908a2012a7e704478c00889e3
languageName: node
linkType: hard
-"@tamagui/helpers-icon@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/helpers-icon@npm:1.79.14"
+"@tamagui/helpers-icon@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/helpers-icon@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
react-native-svg: ">=12"
- checksum: 0e69af49473fb41df4a2f92f728085a3ae2e0fec250444532c6de320885454f73746b34661f780a0763ec13c3ab2a30eb4114ee55213ee51507b724fb14eaa4b
+ checksum: edb581a95c0e50a6bd8308c0bdf8a0572bfab72125db22a6bb0324ddaac546448b1797a3b1bbf429648b1f2263fd5abee1feddddaad26c52f27716c328f97cb6
languageName: node
linkType: hard
-"@tamagui/helpers-node@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/helpers-node@npm:1.79.14"
+"@tamagui/helpers-node@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/helpers-node@npm:1.84.1"
dependencies:
- "@tamagui/types": "npm:1.79.14"
- checksum: fb21689af8fc07eac12824a5dbc48b53fa93fe2b02a757dce5762c0513798471d28d8e99ed64f3a52eb9fc95573b088261bdd840749eb51326f8ded9ebc6bab7
+ "@tamagui/types": "npm:1.84.1"
+ checksum: 43b7c918561c9867c647eb76d0512bb6c71f12df00b9d005dc8be747cb36105389c19af6d55a7e42b540453336f98ddcdea6e4c3a2d87bd6da9a728c85bbe3e8
languageName: node
linkType: hard
-"@tamagui/helpers-tamagui@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/helpers-tamagui@npm:1.79.14"
+"@tamagui/helpers-tamagui@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/helpers-tamagui@npm:1.84.1"
dependencies:
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 2037c90f24ad222ba7331b4f5155a5559ebc5705d35348b94ed183a20c43896b73548dc710f492fe37af0eb05e1a9954607003fb03292edfbfb88b8e9b2d364a
+ checksum: 86fdf52f1cce9334db02d5247baf5bdaba6e4dbb8f410b05cd67cc37775ce2801de67f2cf8f4d55cdb3734ddd475adb4e07d7b31fa72c3b4edd6c0e04d970d6b
languageName: node
linkType: hard
-"@tamagui/helpers@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/helpers@npm:1.79.14"
+"@tamagui/helpers@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/helpers@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/simple-hash": "npm:1.79.14"
- checksum: edcc23b8869c22cc24348b4e81ee4f37fa542286601c42324b184c838e264151b81e9ad0024d7278a41744e8296d81071c24c05881f160ac0ffd3b9d408c1e51
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/simple-hash": "npm:1.84.1"
+ checksum: 54d05f6a6c2273576c2476e4bad66aac1df8b4d91ac246f207e0cfddbed741523c64f45b742ef14506c3205b0156fab8e27a25e2ecf3b129b807acf0d0ed09b8
languageName: node
linkType: hard
-"@tamagui/image@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/image@npm:1.79.14"
+"@tamagui/image@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/image@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 6d32c08b3ac44f7ecfa6c8f77adf203a634c5604599a89f3e24005bcb37309d44c60ff3abfd56b85f46730fc4f150eb7ad2f089542c3e322eb31055c7806317d
+ checksum: 54fff6a91f308120d3f24d8e3f897eb46ee525befab28fa9a805fd3c87f29d1624d70cb7c73c6a63a28d7d05f4ac20b2bf3bec5c8f588589e82a785e878f7719
languageName: node
linkType: hard
-"@tamagui/label@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/label@npm:1.79.14"
+"@tamagui/label@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/label@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/get-button-sized": "npm:1.79.14"
- "@tamagui/get-font-sized": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/get-button-sized": "npm:1.84.1"
+ "@tamagui/get-font-sized": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 9619aff89a39212ab4be5001c4106197355bf7cfe754b554eaf58c407b640a547dbb6824b010e2cbc0fff23e8e6816ed6db7a559a97feada1da02603b1727b54
+ checksum: a9aad8c5adef6d7989e3855d97cf00f16279fdeca2cf1f432d716f7f5995e59b1b818094b31b181f9605e686db862269cf1b310faab3a88b57d75ee77759fdfc
languageName: node
linkType: hard
-"@tamagui/linear-gradient@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/linear-gradient@npm:1.79.14"
+"@tamagui/linear-gradient@npm:1.84.1, @tamagui/linear-gradient@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/linear-gradient@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: ad2039535210a1a85fe08037211f3a7e8e4c7b6c15f31ca0e5bfb8bd5050b1b532ce65086c52fdac1e20efbf741b7d9f5b6179b9065d46b761b02d2c0650cea5
+ checksum: e966162ff310efa2adef2755020c3d6eb4160515456269ba39f36739897c6a1794ecb1ba889efa107b24fc4866673af9b524379a0dff906d1b067b102efa1e3d
languageName: node
linkType: hard
-"@tamagui/list-item@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/list-item@npm:1.79.14"
+"@tamagui/list-item@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/list-item@npm:1.84.1"
dependencies:
- "@tamagui/font-size": "npm:1.79.14"
- "@tamagui/get-font-sized": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/font-size": "npm:1.84.1"
+ "@tamagui/get-font-sized": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 5af9e37fa0c6f62493949da2e55af40068190de432d35bf6cd4346453a05b919b5cc398d00cdc28873e6d7d887ac883ae22cde695aad807eac122b6939f32e3b
+ checksum: a8ea8ece780a49b17191dd424eece76a60282998a9c2cff80885acdce9c3aefa7125389d0a68ce1edd670e5785babf08342fcdbbdd55b39092ade0e9baaf56aa
languageName: node
linkType: hard
-"@tamagui/lucide-icons@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/lucide-icons@npm:1.79.14"
+"@tamagui/lucide-icons@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/lucide-icons@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/helpers-icon": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/helpers-icon": "npm:1.84.1"
peerDependencies:
react: "*"
react-native-svg: ">=12"
- checksum: 70b5e6f2dbb2259f571e225bba67a715b57566cfa8e68356541666f6da42a113c6ab61d0bb84a1c86e11b2b15ebb643a08a68e7976772ea85c25d105dc9e3bef
+ checksum: a69e1186d04593b9d06d7f1f84c4f313455f8090a8061ddb8a5ff049145506c4aa184d7a2b055404bf3f7df56ca7ebcfe176ab0af49e3457d23502cf62b4b51e
+ languageName: node
+ linkType: hard
+
+"@tamagui/next-theme@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/next-theme@npm:1.84.1"
+ dependencies:
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
+ peerDependencies:
+ react: "*"
+ checksum: 607d62f7ecd39d9743a2969e2c7be15aaab17ff9c1dbefbe8024fd9da96020ac69adbfb2297afead0c594088ce8177e41a7ac3d069a2b8bee47f075daec90dab
languageName: node
linkType: hard
-"@tamagui/normalize-css-color@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/normalize-css-color@npm:1.79.14"
+"@tamagui/normalize-css-color@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/normalize-css-color@npm:1.84.1"
dependencies:
"@react-native/normalize-color": "npm:^2.1.0"
- checksum: d51564f6f526300d8b4f35343cf05c8c7966843bb695b301bb5c6d4297298cf1dee372309d705db3b28f793220f6ac7cb1a4205716ce4494ed42eaaf17a89770
+ checksum: 9fc502031ec69a28399e99a8d9c55b5d26f8ab44a9e9cd9f5d39ea511af78724ee0c2d1e9cc6683b251385da70bb04aec4c7aa1c1e2ced6cf05eec4050e20ace
languageName: node
linkType: hard
-"@tamagui/polyfill-dev@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/polyfill-dev@npm:1.79.14"
- checksum: 2357e34c5c8d3b705370d4b08300de66322bece13af1e8ea046a1f33122977e527280343f93ccb65c87280cb06fd25eaec21d2614ccc9f906b76ff08679b08fb
+"@tamagui/polyfill-dev@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/polyfill-dev@npm:1.84.1"
+ checksum: 6d8fceebfd2db0274ddc74d2d5c0d162561d4b522ef253a3264ee90cde478412d4b6bf00593027eaecadbe13b990252879852a787fd096e85f1851790b33be4c
languageName: node
linkType: hard
-"@tamagui/popover@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/popover@npm:1.79.14"
+"@tamagui/popover@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/popover@npm:1.84.1"
dependencies:
"@floating-ui/react": "npm:^0.24.7"
- "@tamagui/adapt": "npm:1.79.14"
- "@tamagui/animate": "npm:1.79.14"
- "@tamagui/aria-hidden": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/dismissable": "npm:1.79.14"
- "@tamagui/floating": "npm:1.79.14"
- "@tamagui/focus-scope": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/popper": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/remove-scroll": "npm:1.79.14"
- "@tamagui/scroll-view": "npm:1.79.14"
- "@tamagui/sheet": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/adapt": "npm:1.84.1"
+ "@tamagui/animate": "npm:1.84.1"
+ "@tamagui/aria-hidden": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/dismissable": "npm:1.84.1"
+ "@tamagui/floating": "npm:1.84.1"
+ "@tamagui/focus-scope": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/popper": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/remove-scroll": "npm:1.84.1"
+ "@tamagui/scroll-view": "npm:1.84.1"
+ "@tamagui/sheet": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
react-freeze: "npm:^1.0.3"
peerDependencies:
react: "*"
react-native: "*"
- checksum: f49a7a70a963deaddbaf8864ee0bbb408ca2f1c553930bae925a499a32403a0b80d10c772bd2c486829de75d496ec9c23efbc306f192c81daa8a96798049c0bf
+ checksum: 06b578ddef882538e2247fd07a587e8f180de6be5ffd89e3a700cd8f613bbf7e7ed07994f02d3d81cc4dd55484abe07a05a12a35847d4ffe5cc76bf500827170
languageName: node
linkType: hard
-"@tamagui/popper@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/popper@npm:1.79.14"
+"@tamagui/popper@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/popper@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/floating": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/floating": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: f07e2111e8ecdf9a058fb62a26f1b39d4994365f632f3b79d056532a8ff9d55516f9aaa60c719e4b463d8958d1c2a5ca06fd76dafdd8ebd0f69bc1e5dca4ea8b
+ checksum: 5bd6494ed2456b86d8b83605d1d410e4c0323abcccda56c051e366f3966309d097ee081be59964ff3ed986221cc6f4d2856b085b8793270b5ae5b7a3d653440e
languageName: node
linkType: hard
-"@tamagui/portal@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/portal@npm:1.79.14"
+"@tamagui/portal@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/portal@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: b14f2205697f9848942288b4ff90d1dab00385c7b6e7e46b861b1d8ee51a0802b947f5b6a921c23a4bd9e7a38f84422d69f9f60e20f266f2036282fc7f8b32fd
+ checksum: 84794c63f9c309bd6a6fd5ddb2e5ae2b97832fee6b43449c4d94e3e89a253c109b47ebdf7cb84773ec407120b84c0d34c2809957d9bb5ca331b32a0e0a8afda8
languageName: node
linkType: hard
-"@tamagui/progress@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/progress@npm:1.79.14"
+"@tamagui/progress@npm:1.84.1, @tamagui/progress@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/progress@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 3f92c1e3df4efbc1f43e92e5b68e61b0d517b8bd1dd9492c157625e69cf394bff7fb996d92e52a72a9f89213dd64e343d5b78d89abacfb1a773cf84fc7bd5a8a
+ checksum: da52e0eb375a83014bb6927b148554e7a61ccaf13eb8dc870af3905976fa0f2a632375e2ea67a84470e851469daa5e8195f6e1c2f096d526a48a608a3b4a7704
languageName: node
linkType: hard
-"@tamagui/proxy-worm@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/proxy-worm@npm:1.79.14"
- checksum: 15962b0b6058d7703a6d46a9c1ffe57995c671c08af40c1bc83c1f9499eb3994c3c9a060bf03f21ad650d290436877da0250a5a0f87382a852ae0e79fe17271c
+"@tamagui/proxy-worm@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/proxy-worm@npm:1.84.1"
+ checksum: 9d1796c623893cac75ae9e4ad3a2d7b1bc3f59c55c3aaf6dd4511f8d1b05675b97b754c69070037e06ab4ef68b7a5ee3e9cb8c874c3e81eaff7d9d857b8259ef
languageName: node
linkType: hard
-"@tamagui/radio-group@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/radio-group@npm:1.79.14"
+"@tamagui/radio-group@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/radio-group@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/label": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-previous": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/label": "npm:1.84.1"
+ "@tamagui/roving-focus": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-previous": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 424459b6a3e5aff976f329dfd39c49a06c54624f1614c5118d3c93f347d7c4d17931ba77dbd2a090d7a507c6286a98bf12d54e351b3c64df9443cd8aa542ea07
+ checksum: 4681508078e7dfd1528ab0b297d233feeae74ff35ff1ba22c1d01dad2e4d27fbfb48dd6ab405c09f204d6db87c369cde30be3b26d6034bef5f538ce9a52b1bff
languageName: node
linkType: hard
-"@tamagui/react-native-media-driver@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/react-native-media-driver@npm:1.79.14"
+"@tamagui/react-native-media-driver@npm:1.84.1, @tamagui/react-native-media-driver@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/react-native-media-driver@npm:1.84.1"
dependencies:
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react-native: "*"
- checksum: a411a19af7c36ef9dd3cf6b52bb73c2bc03ad86a1e822cef8af2d9d6e71a866ffef6d637d496c090cdf031ad1a741440b33db1ade0dec8674bf76036af8c2ba0
+ checksum: 98d419e5158eafa91bcf679d9be34d8e0b542c05bdef58b10dbb057c742f9254e02ca0b6d20e5f270d0137f0f300a0bce6ac058785941266fbca82bdd163b885
languageName: node
linkType: hard
-"@tamagui/react-native-use-pressable@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/react-native-use-pressable@npm:1.79.14"
+"@tamagui/react-native-use-pressable@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/react-native-use-pressable@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: f5fb10d18d20fef9a5509a5b09fdf54407b5c814bc278dff5807c91823362ced96ee23f4a70b86753c70ee25368067b40a67d13a0931204cae77dc98a093708e
+ checksum: dca3a8be5087c18900a7145493ea457f03a937c08f57261007b8fb93a9118ef85cc0d1af5080d1145e18caa345c44efb770b1234ac96d2e44c4ff52aff4c3535
languageName: node
linkType: hard
-"@tamagui/react-native-use-responder-events@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/react-native-use-responder-events@npm:1.79.14"
+"@tamagui/react-native-use-responder-events@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/react-native-use-responder-events@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 943a7322ec21b9cb2f54a00d59d6801a58540193f0191886961eb08e39318d7617649b6e17409a0c9f202f23892e1ade6b470e8ee8aceabed0727a595dd0d4f1
+ checksum: 82e0cb7cc885ed53bdace8eb8ec0751700f0105594b55644fe9bb86db35072be5c5850a3fb4e1f8ca05d5c5dfbf6577fb3a7671ccff0a0199f15ad1b82be5b4f
languageName: node
linkType: hard
-"@tamagui/remove-scroll@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/remove-scroll@npm:1.79.14"
+"@tamagui/remove-scroll@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/remove-scroll@npm:1.84.1"
dependencies:
react-remove-scroll: "npm:^2.5.5"
peerDependencies:
react: "*"
- checksum: 18ea88daf002a3fedf2661c124fd01ca451fcd2a31210fb02ff0ad6cf6ef84146e4c5ea4c0317765b341b5575905898bae9b99ebffe43dd1f73136c9eda30a91
+ checksum: 6d894b3d4117403cb1e58fefd13a8042630ed06a16151f80a8a4839c224979ede6129bd2ff11651dd29638eec27c19bf0dfe1ea4c6215f67560401da9bba424f
languageName: node
linkType: hard
-"@tamagui/roving-focus@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/roving-focus@npm:1.79.14"
+"@tamagui/roving-focus@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/roving-focus@npm:1.84.1"
dependencies:
- "@tamagui/collection": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-direction": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
+ "@tamagui/collection": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-direction": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: b189863a7786148eb0bc08920e0418c09e57f47c5c89513ed7a479393c074131d9dc055a48f3b3b839963467a156ac109820f3691d3dc6b40135cf45976ed36d
+ checksum: 8031e40ce3e0b8cb142b3b1443382c64c127b1a38045d8233c5cf1c1348b18d91cab73e42f86efeb11fe72607ab9fda0e45d627bed72f7ab78a49fcf4043eefd
languageName: node
linkType: hard
-"@tamagui/scroll-view@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/scroll-view@npm:1.79.14"
+"@tamagui/scroll-view@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/scroll-view@npm:1.84.1"
dependencies:
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: cad708d1c50ccb6bb5cdcb4de150f469f413af096b2031375a0a64786944fd6b662ced620c2677c03ccca8b77b657753b9446e96429342da5f79bd59272f19e4
+ checksum: 316cc743673220933295be554f1bedcb14602ee1a8fbbae62ba52c91bd5f74706274259c9beb0d004439acee704e5261c0b3d33cd7f35249410b141965565978
languageName: node
linkType: hard
-"@tamagui/select@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/select@npm:1.79.14"
+"@tamagui/select@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/select@npm:1.84.1"
dependencies:
"@floating-ui/react": "npm:^0.24.7"
"@floating-ui/react-dom": "npm:^2.0.1"
"@floating-ui/react-native": "npm:^0.10.1"
- "@tamagui/adapt": "npm:1.79.14"
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/dismissable": "npm:1.79.14"
- "@tamagui/focus-scope": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/list-item": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/remove-scroll": "npm:1.79.14"
- "@tamagui/separator": "npm:1.79.14"
- "@tamagui/sheet": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
- "@tamagui/use-previous": "npm:1.79.14"
+ "@tamagui/adapt": "npm:1.84.1"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/dismissable": "npm:1.84.1"
+ "@tamagui/focus-scope": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/list-item": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/remove-scroll": "npm:1.84.1"
+ "@tamagui/separator": "npm:1.84.1"
+ "@tamagui/sheet": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
+ "@tamagui/use-previous": "npm:1.84.1"
react-dom: "npm:^18.2.0"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 26e232f6401e964089cf094e5dde11908cb7b6b8e3df5ee2cd9a199f7300a745e0e4f4e076420745b4a4ffb607f322d925a6f725f75f3a545e289284590552f3
+ checksum: 2530d9bcdd763d1cc62bdfed869b46f2dfaead2c57628235e0b6fced221d39b628c19122490d91040d96978cdfafd8bf31e3c29f3056b5db2c8700deb467c1cf
languageName: node
linkType: hard
-"@tamagui/separator@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/separator@npm:1.79.14"
+"@tamagui/separator@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/separator@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 7efa037a2119f9778c133e0725f1a9875aba10fdd4aae485bea9016e795d83094c11c9c459a763b65351f3d8d3ab54b5586244a36aaadde1d38a455144bd28e8
+ checksum: acd14a28a57c23f3bbed0c4452a2422853aeabb3d71db134f8259467d643b7ed9dd7bda26cc3af248941bea535d97df619b2cdf9742e0d83b6e9468a8e31738a
languageName: node
linkType: hard
-"@tamagui/shapes@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/shapes@npm:1.79.14"
+"@tamagui/shapes@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/shapes@npm:1.84.1"
dependencies:
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: c79938a9af602f4072c1783621101b5126ed98deb34176d1ea8da7119c3ac3fcbd9351282c30746ef05b45d0d8952b90b139e913daf0f6cadffb62df50aa3fc3
+ checksum: 830fed7a99dc3ddf8172d3cda0b1eec22ec853e78e0adb31d6aab43e4c47bfbabedecceb37dbab68c016c879d4d7076f548337fefa886ddaa2cd0a943bf110a0
languageName: node
linkType: hard
-"@tamagui/sheet@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/sheet@npm:1.79.14"
+"@tamagui/sheet@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/sheet@npm:1.84.1"
dependencies:
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/animations-react-native": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/remove-scroll": "npm:1.79.14"
- "@tamagui/scroll-view": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-constant": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-keyboard-visible": "npm:1.79.14"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/animations-react-native": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/remove-scroll": "npm:1.84.1"
+ "@tamagui/scroll-view": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-constant": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-keyboard-visible": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 040d15f6aa5368783fb0cc46a62b3ec701f368093c4afc0c8983e98d339fb00903785bcea8a0a1e3ff261bb9c2fd6e2253fd0e8e9cbf594481333246432c4bcb
+ checksum: 0db448bc8a0d8e8a422f895e76581b27c9b864545a9d402e3b49ab63ae1b228b50102b724f6149cc06426461e02d59803ed3379a01aa9cd82d667ad2eafee92e
languageName: node
linkType: hard
-"@tamagui/shorthands@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/shorthands@npm:1.79.14"
- checksum: 9882ec69c0b8ad79354a30ca730444698b5c93e3071387cc070ce23c5d02ab00c13a90d0525bd4b8e191cebf0549b7c6c5022bb51f157750b28c01cd54b7353b
+"@tamagui/shorthands@npm:1.84.1, @tamagui/shorthands@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/shorthands@npm:1.84.1"
+ checksum: ede148be26a3eacd2b5465c7d4b8b603f21e2f2ec36bb408f542752be52fb1d10a4f5ff1892d78846f8ad8c5894c375af2ca172f903b1b6b1906ed2e188fb462
languageName: node
linkType: hard
-"@tamagui/simple-hash@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/simple-hash@npm:1.79.14"
- checksum: e3513b787d6c789b4fe3960b9b2c3a8c9b0e6bcd30980678f4838931b850589e5bf4db1726254e51db45af8dc501b549ac4bcd44e07b3eb0d472b9e1fa8cedb7
+"@tamagui/simple-hash@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/simple-hash@npm:1.84.1"
+ checksum: 8347f06d40c1a9b78423f0a8563307d9723d6133fd8cb91f2d03523cdbfc1bc0d057accf543614468638b256bbebf6f73b1d0958d233959b75db0a7367434ec7
languageName: node
linkType: hard
-"@tamagui/slider@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/slider@npm:1.79.14"
+"@tamagui/slider@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/slider@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-direction": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-direction": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: a4a808a9d91e5f3ed4039b6560193cb9e5f21651a0afef6f649c3d7f872547907f2b912af88fe07be41e0591200ba07b2d396b9f5af14abccfbf851295c2545d
+ checksum: 7c2e471e93e4bf721febf4917fd389944835904d5b529d43653f1df5459b346d4fa6796302fa4e88c19fa9198ab3593f66fde3864331e16b858397ff4f637099
languageName: node
linkType: hard
-"@tamagui/stacks@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/stacks@npm:1.79.14"
+"@tamagui/stacks@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/stacks@npm:1.84.1"
dependencies:
- "@tamagui/core": "npm:1.79.14"
+ "@tamagui/core": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 3c377e5f63a6948529f737a67a9fd7dfed65cd5b1bc19746294153ed92677820d6449efb8ca952cfaf1ef433e7462d86ec3f9fc2c16e6b35cc450937cccdbd27
+ checksum: 4ee19c78d0cb1551226f6f713cdc84f71885ba998f02ea22774b97a6831dba0f29a9359b51c31c11b08759638b48f734fae1104d88371e234cccab0c6b571798
languageName: node
linkType: hard
-"@tamagui/static@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/static@npm:1.79.14"
+"@tamagui/static@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/static@npm:1.84.1"
dependencies:
"@babel/core": "npm:^7.23.3"
"@babel/generator": "npm:^7.23.3"
@@ -7036,385 +7209,387 @@ __metadata:
"@babel/runtime": "npm:^7.23.2"
"@babel/traverse": "npm:^7.23.3"
"@babel/types": "npm:^7.23.3"
- "@tamagui/build": "npm:1.79.14"
- "@tamagui/cli-color": "npm:1.79.14"
- "@tamagui/config-default": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/fake-react-native": "npm:1.79.14"
- "@tamagui/generate-themes": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/helpers-node": "npm:1.79.14"
- "@tamagui/proxy-worm": "npm:1.79.14"
- "@tamagui/shorthands": "npm:1.79.14"
- "@tamagui/types": "npm:1.79.14"
+ "@tamagui/build": "npm:1.84.1"
+ "@tamagui/cli-color": "npm:1.84.1"
+ "@tamagui/config-default": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/fake-react-native": "npm:1.84.1"
+ "@tamagui/generate-themes": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/helpers-node": "npm:1.84.1"
+ "@tamagui/proxy-worm": "npm:1.84.1"
+ "@tamagui/shorthands": "npm:1.84.1"
+ "@tamagui/types": "npm:1.84.1"
babel-literal-to-ast: "npm:^2.1.0"
- esbuild: "npm:~0.19.3"
+ browserslist: "npm:^4.22.2"
+ esbuild: "npm:^0.19.11"
esbuild-register: "npm:^3.4.2"
find-cache-dir: "npm:^3.3.2"
find-root: "npm:^1.1.0"
fs-extra: "npm:^11.1.0"
invariant: "npm:^2.2.4"
+ lightningcss: "npm:^1.22.1"
lodash: "npm:^4.17.21"
react-native-web: "npm:^0.19.9"
- react-native-web-internals: "npm:1.79.14"
- react-native-web-lite: "npm:1.79.14"
- checksum: 7899aef9f7544c1b912af7b13a45d2e849c4f3cba343e6038b6515977cd51eaae5fd8ff6b58185a54740020d660ad86e5cffc3859e64a35fcd27cc763b0d145e
+ react-native-web-internals: "npm:1.84.1"
+ react-native-web-lite: "npm:1.84.1"
+ checksum: 738c4787fad5e7724a63fa273978ab1172116a33c6f6aea83320cf477008a434cfb43cd1befd55146d06fcfe87d6b80896c1a3ade67211a4f21e02f6320e0331
languageName: node
linkType: hard
-"@tamagui/switch@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/switch@npm:1.79.14"
+"@tamagui/switch@npm:1.84.1, @tamagui/switch@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/switch@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/label": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-previous": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/label": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-previous": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: bb8e6e4bc5d896ffe3510c4c1da156e1132f39ce460a29c5710dbc125a145d04537ebbdf9bec0b0e942d60f5867d2d44ef12d6105a0cf4670b258f71d9630bec
+ checksum: f78a0a00cc9b5141a31a79eeb9a75119201357e671aec67c90487a1463fd763f66a647b89dd4129bc3056971447c11487a426a63e2cbadec463f9da0d88178d5
languageName: node
linkType: hard
-"@tamagui/tabs@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/tabs@npm:1.79.14"
+"@tamagui/tabs@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/tabs@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/get-button-sized": "npm:1.79.14"
- "@tamagui/group": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/roving-focus": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-direction": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/get-button-sized": "npm:1.84.1"
+ "@tamagui/group": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/roving-focus": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-direction": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
react-dom: "*"
- checksum: f22d43a6ddb9e7c1be5968b42ceb34801a6e8588fbb8059256a3e5ee34d1d0167047e7545ad27ea310d95732d94a3caa49d7fca5a76aef045cd181e0ab6e9501
+ checksum: b55fe30246731530973346b91931678d86306b389356c662358cfab8f3cb36bbb60b5e05ce9c2af019df0bd7d44422534f4942b574ce85358f637b74bcc17c7c
languageName: node
linkType: hard
-"@tamagui/text@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/text@npm:1.79.14"
+"@tamagui/text@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/text@npm:1.84.1"
dependencies:
- "@tamagui/get-font-sized": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/get-font-sized": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 1a75702ce5a63c9a1d52a16e96be588eb74651ca9d30a8d52b386fa93518a27957c8218ea76cd0e4b17799aa4efa0a1d0af5354f890510ebf8b46d2be15505d9
+ checksum: e84dd4d90a528fd9334b9ba2cb607ae33c5d1233a5838e5e30ae12025d6ab56a0d8c1adcaab495f5e8c2a7e1dd9b533744005794169ebdc3e9dd8940630b543e
languageName: node
linkType: hard
-"@tamagui/theme-base@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/theme-base@npm:1.79.14"
- checksum: 1f55ea3278922ed208a3f4c529fda6e1bcbe1928a129dc92777cbaef830748701b2e1805dfc28b76226d1f279e73bef56249a67d4a2067dfb8284d91cde92380
+"@tamagui/theme-base@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/theme-base@npm:1.84.1"
+ checksum: 17533a0a6958a6bf2157c888903e97b17405bc55edc9e1fd151d1cfd1374d64c4787758dd451da71cb73ef4a662adf87b58829e8d5065d8dfdf0e0206ec9ab87
languageName: node
linkType: hard
-"@tamagui/theme-builder@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/theme-builder@npm:1.79.14"
+"@tamagui/theme-builder@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/theme-builder@npm:1.84.1"
dependencies:
- "@tamagui/create-theme": "npm:1.79.14"
+ "@tamagui/create-theme": "npm:1.84.1"
color2k: "npm:^2.0.2"
- checksum: 8c44e5b46e9859c6db78c81f2a3c2207a334744597456513872d41ccb077429deafafd915836316926f3e7d53605282d2c2d3f0547acdac42197a3929a95fd9b
+ checksum: 00c7368bd3d481739a11deca1ede6cd84fab69d0a4561e030bf0fa014b96c699c5decd6f71fab42f0167255e76f1c141f08cb2cc41399a4cd41b6627ba4ecd9f
languageName: node
linkType: hard
-"@tamagui/theme@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/theme@npm:1.79.14"
+"@tamagui/theme@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/theme@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 1e838ec27395195d09544d7a0600083d4c546e2d7151199757adf148299c31660abead89ac6870df39b5eb70f81729609ab86c4a6dbdae67b5643556adee333a
+ checksum: 46a3e71dcb23d95d82f43db6f274788161003fb71857a16b0663f878ab812b03dde4a57d4d3c872e0ed58bf8f3c02eac10de669755c8b057d392e16d3f49bfb5
languageName: node
linkType: hard
-"@tamagui/themes@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/themes@npm:1.79.14"
+"@tamagui/themes@npm:1.84.1, @tamagui/themes@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/themes@npm:1.84.1"
dependencies:
- "@tamagui/colors": "npm:1.79.14"
- "@tamagui/create-theme": "npm:1.79.14"
- "@tamagui/theme-builder": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
- checksum: 144f9430a39e76aa03ad70d8cafe2c2160b117fdf3e7b5a08ae34c4acbb419f7e629b8b8b55fbd13fbc9f0f8c19c7c4aa2d78bd9eedb679cf9612c8571a7052e
+ "@tamagui/colors": "npm:1.84.1"
+ "@tamagui/create-theme": "npm:1.84.1"
+ "@tamagui/theme-builder": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
+ checksum: 146e878546c5db6c74a58ae3ce79c55c51e762a5db65839e4c5f2d799438dee6f90aaa94fcb807200e9321b3004d0df5eb376188622711f4a3e09844c6f1dd32
languageName: node
linkType: hard
-"@tamagui/timer@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/timer@npm:1.79.14"
- checksum: 2471d30d682d5b4c72d7a15561db7f431a2b440bc6ae8b561bac7bcf2bbfd1363255dc1e93880b20e0f3fba65f0ac9d6a379c535265c851a95ee866ec7bdc285
+"@tamagui/timer@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/timer@npm:1.84.1"
+ checksum: 27a2400de055bcba86b2636656d0dd659578e02887333143c7ccdbd6c0d0cc1fef7fada3f92a8cd2220ccfbae2a1666766752abe1eb64461f7e2df2e811c1d68
languageName: node
linkType: hard
-"@tamagui/toast@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/toast@npm:1.79.14"
+"@tamagui/toast@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/toast@npm:1.84.1"
dependencies:
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/dismissable": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/visually-hidden": "npm:1.79.14"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/dismissable": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/visually-hidden": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: a84661ec9d37a725b6a5a3360918d1cda379a1a35b4b51010201879d03613695944193ed7f0b7cd32e7370fd2cc69f2f4a3f1820d74bd2a456870afb4bbadf64
+ checksum: a3b3a7a71cdfd913f4a966d824f770a03328b6ffb115a79a750cbbb9a49c4d49d4e2c48c430820d90153b61672ed04bacadb20b6630b7576d497ea741958dc78
languageName: node
linkType: hard
-"@tamagui/toggle-group@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/toggle-group@npm:1.79.14"
+"@tamagui/toggle-group@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/toggle-group@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/font-size": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/group": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/roving-focus": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-direction": "npm:1.79.14"
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/font-size": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/group": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/roving-focus": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-direction": "npm:1.84.1"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: fd48d4950c9788fe780de004c3d6b0d13e498399981f0658e5e8d2225b8a33dc54e99d9c7e9769ed287ca1ebd2ff6787b4e2cc9b9b6eae539da390ae9f5d3dd4
+ checksum: deaeeca1af25a44dd320f5ff537c5a95c61f3dea049cce0e0d6ab780a2542459c035fbcd4d356e0f09a0afaeb3d72d6d493012bf9294948b81f3df6c2a8d147c
languageName: node
linkType: hard
-"@tamagui/tooltip@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/tooltip@npm:1.79.14"
+"@tamagui/tooltip@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/tooltip@npm:1.84.1"
dependencies:
"@floating-ui/react": "npm:^0.24.7"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/floating": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/popover": "npm:1.79.14"
- "@tamagui/popper": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/floating": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/popover": "npm:1.84.1"
+ "@tamagui/popper": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 6bd87f2ea9a15706682bcce8694d5087a636e77318ad89145d1f65542ebf7d777e9280adb76fd482fcb12ade83e48929a395deeae5aec97973452a25aa991438
+ checksum: ce082205bcc2e3eee89c93ccb5e726c3644cd7b2ebdd7cee54886bbfb5303214a901df46ae43a5f0046fd1d97830f8dc54572ed4be4db70939bfc70704781c45
languageName: node
linkType: hard
-"@tamagui/types@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/types@npm:1.79.14"
- checksum: 72ece3c80d6e49aadb389c13637189c8802b5e6a9b5dbf00c8dd64597d89ebccac4a3404a12fd0f5ed4fb93b985033be9271ff64c42eb26387fe74d58a579950
+"@tamagui/types@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/types@npm:1.84.1"
+ checksum: 2adc87cf386be5c3bfac3d57ec27e1904f96a6378e9d4a1198c3c423f6703f2337d54071cd40f60c52166a38284a7b782cea2c25933296d513d511197b897377
languageName: node
linkType: hard
-"@tamagui/use-callback-ref@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-callback-ref@npm:1.79.14"
- checksum: b6ab8f174e26f15c4877784533b07d69c1652681b22196381df1dfc8b098b4e56846530af09b8c1177fc6b098e1915af994a7ba455d5af41fd2c41e5a12b811d
+"@tamagui/use-callback-ref@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-callback-ref@npm:1.84.1"
+ checksum: 9d80688a478fcf60418a6f6bc5a96168a7fc2fcef645d8597996efd623763afc1578f413ed1909b36b7c917a891d2b1b74e2350d9de942a6957f014a0fcd6044
languageName: node
linkType: hard
-"@tamagui/use-constant@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-constant@npm:1.79.14"
+"@tamagui/use-constant@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-constant@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 758b5d9dafb65781871dd2fad059b08a05e4f96a378b143adc0ded0881d019f8c322806e42d4272e628afcc378fac1473e06224804813f5bac6d2de01e2c6e8a
+ checksum: 756d562733191c7356818da41a1d9a87feff92a7145003ba30dc889ee3a34fd9785d58f898177bcdb927916164520e3fad805818da37e725e9e6bddf2923b6cd
languageName: node
linkType: hard
-"@tamagui/use-controllable-state@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-controllable-state@npm:1.79.14"
+"@tamagui/use-controllable-state@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-controllable-state@npm:1.84.1"
dependencies:
- "@tamagui/use-event": "npm:1.79.14"
+ "@tamagui/use-event": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: e9739369eaab5c519caad73e9a2c4eeb5aba743f12dc5453de812d8774f9161a72939e8e45f4c901f0a52cd8e8c10745f9e311e9a3f33945872118a45d07fd85
+ checksum: 2cf0c33d9d9b61d95e1166fe6942a8d58f2312c3eb4b22ea649b57a8ed72029cb6c82f590c36e40de60703e4ad3e06c1b87f939d3a107edd4e73e10769390eb4
languageName: node
linkType: hard
-"@tamagui/use-debounce@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-debounce@npm:1.79.14"
+"@tamagui/use-debounce@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-debounce@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 6fd58f5f50431cadf9c8d07cd6232fb587ee7a8fc2b0b6a26800de4548ad579bda0c6ac3ace9a2ec58accd95ea9240fd1ada2b1bd0d86b72c85af4fe2a68233f
+ checksum: c1a0aaf1ebf30ac5b2d5037023b12e767d6cda1e755f968f8b3e6e4f124cafb79b27429ed3886263af419ccb446369e7527c80fbf10ba587a2a3eb30873b47d1
languageName: node
linkType: hard
-"@tamagui/use-did-finish-ssr@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-did-finish-ssr@npm:1.79.14"
+"@tamagui/use-did-finish-ssr@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-did-finish-ssr@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 9046f5b690ea516c3cb12b7ba64078574c12b85d7a1a6e64401612ce91c04551cf920918e356ba25ffc3170936440153515466aa49132f1d0a3aea2573829b4e
+ checksum: 8cb3d91d0cdb33807570a8bdc7e581c4d2d8cdb32776d733fa2c04498667e809e7fa55cb8f059a9e0dc6a9cbfa68daccbb3396b9407afc4ef43bd6872421c0ab
languageName: node
linkType: hard
-"@tamagui/use-direction@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-direction@npm:1.79.14"
+"@tamagui/use-direction@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-direction@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 6e5108bc23302c7dc6e17171e96bca37b200ae2e89b657f9c13d59cd81d1ccb6df5b6fbe36b058c27de2267ca6107cb081539ee1d5b2b8f314f91f0f595d2a94
+ checksum: 6c55607d6110f3ca87f01e192a0f8beed984f53b7f24a023a859fa02ea0f9c2467e715905dd72de4f3954ffc6f80c8f2c88b626e84d651011e4fd21b2a5de0b4
languageName: node
linkType: hard
-"@tamagui/use-escape-keydown@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-escape-keydown@npm:1.79.14"
+"@tamagui/use-escape-keydown@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-escape-keydown@npm:1.84.1"
dependencies:
- "@tamagui/use-callback-ref": "npm:1.79.14"
- checksum: 14dc07d88f3b5750e3cc26f8d9914f38b50eccd4bf572c837edda40f8a26d40db58750d07cf2152d69281bf30ff530fe4113958c0ada0f5a8032cc7a6fc7a92b
+ "@tamagui/use-callback-ref": "npm:1.84.1"
+ checksum: f99c9e4c8840aee11ff43da45c341a37e7c0b1bda2279ec7c227bdf5598ad7bd5d076071d879acf94f952b26b5181ef4d2b3017913563ab4cb96e410c1282339
languageName: node
linkType: hard
-"@tamagui/use-event@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-event@npm:1.79.14"
+"@tamagui/use-event@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-event@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 16f6ab85a756132c24df052c22b4f7131ea101673e813c87397253a071863b6c52177169276070d8a87e35f1d8a837f19f55f2cab2a60ae3d8955da6b04d10f2
+ checksum: 37f1f68d51e686ecac8a4d586d1fdce650c5f455f171f2449a86e076552bed3ae804c5a8bc004e88830db0ce5a5a9d7e45255c1a49c7cd23807ef48d526e8ec6
languageName: node
linkType: hard
-"@tamagui/use-force-update@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-force-update@npm:1.79.14"
+"@tamagui/use-force-update@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-force-update@npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 68f570f539d4acef324069035f56555d78dd1d57a36eb65ca61ad75d9560f57b79c5d43dcbf98b145c3b06f7a6194ce86128e7bf77dd5b0087522d31f4fb7f45
+ checksum: 52f2612147b1a7e40f45c92554515060a43a6c58b290827baf51d3a9be45528fe196587de8bea3aa8163ecffd3cd513788083e463893db0604967101e2b75a73
languageName: node
linkType: hard
-"@tamagui/use-keyboard-visible@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-keyboard-visible@npm:1.79.14"
+"@tamagui/use-keyboard-visible@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-keyboard-visible@npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 856e18106e115db464e879d57c1e67521933ab5b264b2ae44c2298a168b7330f2295355ebdf74f8d13d69eec785c4dc78499d9936eb03f968d1cecedfba98056
+ checksum: 26a46001f90f654ab7d389bb9adb78e06260019d8ef03dc59dbc6c7f81d96625b52e18ca52c8260379deb07f88c0c01604910c25d806debe566ec4f1a92604d5
languageName: node
linkType: hard
-"@tamagui/use-presence@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-presence@npm:1.79.14"
+"@tamagui/use-presence@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-presence@npm:1.84.1"
dependencies:
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: f46f1c0744d9f971c5316c49bf05e694b3cba92692d2350b3c245e22fd7302d69b65b24c95fde31ae23f451b5fb51015b7718378243ab208858ac1b5484f0564
+ checksum: ccd498e24b33cbf6fe990699446ec97cd1197e3eefd3316361e50748c6abe5413d73f25ec5480feedf998100847eefe97e9b602eb619cc02c6799e5da5471ba8
languageName: node
linkType: hard
-"@tamagui/use-previous@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-previous@npm:1.79.14"
- checksum: 7a8aa3e0a94827a318d44ce02f4d8b6025ea8910a85bbed532c778ea93342336869e2b4919533840bc4c30200c940b6c906e90d55dc17590c3256350ce41338a
+"@tamagui/use-previous@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-previous@npm:1.84.1"
+ checksum: 4bcfcd81c410a607121fcb2a9ea326cffca8179dcf10d62f7fe921eac2775cd6331f9b16a44968806b051c42bdb7a787b3af65f4ceafedf863333b4002907c99
languageName: node
linkType: hard
-"@tamagui/use-window-dimensions@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/use-window-dimensions@npm:1.79.14"
+"@tamagui/use-window-dimensions@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/use-window-dimensions@npm:1.84.1"
dependencies:
- "@tamagui/constants": "npm:1.79.14"
+ "@tamagui/constants": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 87dc6b00025aaf269122c3f9a59f0e70f2d1dd9bf1ccf094e237305615887f695d7f966a844037ca623802ef258bb2ddd0438dd77903e644178954aaa7d85d93
+ checksum: 6968dfe632e30462415c4314fa66b95659ae2e88cfc42acc4adaa9416d8949e13a4297136cdbb1290cf6e7931ad2003aff1bbfd22b24a4d251a4fc57767f1be6
languageName: node
linkType: hard
-"@tamagui/visually-hidden@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/visually-hidden@npm:1.79.14"
+"@tamagui/visually-hidden@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/visually-hidden@npm:1.84.1"
dependencies:
- "@tamagui/web": "npm:1.79.14"
+ "@tamagui/web": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 62e39df20f9aff0411db2ad097052a2ca73b25884140420648b3242e9dce5775ad3074c3447130070dec395bc243def817cba51d2f59403e6c32b8e497d54024
+ checksum: 1933b142d5b6224cede104c18585d50b4bec9bb685f8c3df0eb7824f5776c6e4e13da8b0d9714d93e48d4a0ab5f1186869e2f338a87849287099134443572125
languageName: node
linkType: hard
-"@tamagui/web@npm:1.79.14":
- version: 1.79.14
- resolution: "@tamagui/web@npm:1.79.14"
+"@tamagui/web@npm:1.84.1":
+ version: 1.84.1
+ resolution: "@tamagui/web@npm:1.84.1"
dependencies:
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/helpers": "npm:1.79.14"
- "@tamagui/normalize-css-color": "npm:1.79.14"
- "@tamagui/timer": "npm:1.79.14"
- "@tamagui/use-did-finish-ssr": "npm:1.79.14"
- "@tamagui/use-event": "npm:1.79.14"
- "@tamagui/use-force-update": "npm:1.79.14"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/helpers": "npm:1.84.1"
+ "@tamagui/normalize-css-color": "npm:1.84.1"
+ "@tamagui/timer": "npm:1.84.1"
+ "@tamagui/use-did-finish-ssr": "npm:1.84.1"
+ "@tamagui/use-event": "npm:1.84.1"
+ "@tamagui/use-force-update": "npm:1.84.1"
peerDependencies:
react: "*"
- checksum: 7836806f625492135842ecfd18cd520ec33b9a35cfd5ba87e5caa57c5fb71bf124327107014d9ee133c7dabd95a248254a52c6b6bc3018df12a21b86a54252c1
+ checksum: 908580cc5c7180e3e16f58c3523a2317381933b395a920539fda5aed6644561cf01fdbbe97c0365ff59369bff754cff1bcc10f549a30c433afa67379e668b37d
languageName: node
linkType: hard
"@tanstack/eslint-plugin-query@npm:^5.14.6":
- version: 5.14.6
- resolution: "@tanstack/eslint-plugin-query@npm:5.14.6"
+ version: 5.17.7
+ resolution: "@tanstack/eslint-plugin-query@npm:5.17.7"
dependencies:
"@typescript-eslint/utils": "npm:^5.62.0"
peerDependencies:
eslint: ^8.0.0
- checksum: 23842991d85e01aedfd4472fc935998cad50c38bf67e99210202665d3d48a2320126c53666db945890989f18a6df051cb2128f5d4f8c5a0e3d403e0e8cd7a3b4
+ checksum: 2773bfabd34637452445fe5c5dcdb9da7aa901f4926e44e999e5a362ea0acec11fd6fb270f63578ae015511809350e8ef1dac723cb1330b1c591ac9ec78fea2e
languageName: node
linkType: hard
"@tanstack/match-sorter-utils@npm:^8.7.0":
- version: 8.8.4
- resolution: "@tanstack/match-sorter-utils@npm:8.8.4"
+ version: 8.11.3
+ resolution: "@tanstack/match-sorter-utils@npm:8.11.3"
dependencies:
remove-accents: "npm:0.4.2"
- checksum: 25a109c72414ce439dba914f0756b52ef29e1d0a008f9c0f3f79af24cdf8a129500c9304a9877f5c9cd2713e394915297cfc07c249b8e1f78bd2f026643de0b8
+ checksum: 9bd1b5ee09a0a4993ce6194702d7a15177774a1ae6d9dc9486c6ffbcdcbbf75431126568b305c497f257709c0d2f924ee8d5b75c5de029f98a2aac59794a5c9b
languageName: node
linkType: hard
@@ -7489,14 +7664,14 @@ __metadata:
linkType: hard
"@tanstack/react-table@npm:^8.10.7":
- version: 8.11.2
- resolution: "@tanstack/react-table@npm:8.11.2"
+ version: 8.11.3
+ resolution: "@tanstack/react-table@npm:8.11.3"
dependencies:
- "@tanstack/table-core": "npm:8.11.2"
+ "@tanstack/table-core": "npm:8.11.3"
peerDependencies:
react: ">=16"
react-dom: ">=16"
- checksum: 617373c502a80ee932fab170074ae0ccacf6fdafd6ba7e0439445e2011e5c5161c331db488a5fd27fec80072f1ae07fc8b01dd6c7cd11f6003e33cbedd9526ca
+ checksum: 0b6377fb5d8c519542990c300d9ceca4c3c2260e71ee18d118d36c25e641576ec3d6126cbd8e67213758cfe2c652fae49ff6f9d097ddbab49d65434ad1933c0f
languageName: node
linkType: hard
@@ -7511,10 +7686,10 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/table-core@npm:8.11.2":
- version: 8.11.2
- resolution: "@tanstack/table-core@npm:8.11.2"
- checksum: a0c53dc339b05be1aa6365eb099f4477ec16736844d07f1fc09c4969f1d8f89a30aff29db4c727af02e473f5e17fbd63811ba6ef63f4c50aead5447fd2838529
+"@tanstack/table-core@npm:8.11.3":
+ version: 8.11.3
+ resolution: "@tanstack/table-core@npm:8.11.3"
+ checksum: a7d9721b380a2388698326b9870f4322058054f7ab4fa404323c18afc55374bc2403339a03df44eeaad4b2d82e7d8e72a46cd2c5c18a02c7ca495a55b87da7bd
languageName: node
linkType: hard
@@ -7534,7 +7709,7 @@ __metadata:
languageName: node
linkType: hard
-"@tootallnate/once@npm:2":
+"@tootallnate/once@npm:2, @tootallnate/once@npm:2.0.0":
version: 2.0.0
resolution: "@tootallnate/once@npm:2.0.0"
checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8
@@ -7577,6 +7752,18 @@ __metadata:
languageName: node
linkType: hard
+"@ts-morph/common@npm:~0.11.0":
+ version: 0.11.1
+ resolution: "@ts-morph/common@npm:0.11.1"
+ dependencies:
+ fast-glob: "npm:^3.2.7"
+ minimatch: "npm:^3.0.4"
+ mkdirp: "npm:^1.0.4"
+ path-browserify: "npm:^1.0.1"
+ checksum: 6a66c50ef2f3b2edd2ea87c2ee2eaf916a41fdd6c94da58dcffe3923c9ceae36eb6a34b22dba4200cc50427b982ada9b4df048dc21509bb99b2725e4dfcf0063
+ languageName: node
+ linkType: hard
+
"@tsconfig/node10@npm:^1.0.7":
version: 1.0.9
resolution: "@tsconfig/node10@npm:1.0.9"
@@ -7773,11 +7960,11 @@ __metadata:
linkType: hard
"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6":
- version: 7.20.4
- resolution: "@types/babel__traverse@npm:7.20.4"
+ version: 7.20.5
+ resolution: "@types/babel__traverse@npm:7.20.5"
dependencies:
"@babel/types": "npm:^7.20.7"
- checksum: 927073e3a2ca4d24b95acf96d9c91d6fd1c44826d440e5f9b486de421857945b679045710ebf886be2af30d13877d86f9fbd15a383f72a2b07da322af1c1a321
+ checksum: f0352d537448e1e37f27e6bb8c962d7893720a92fde9d8601a68a93dbc14e15c088b4c0c8f71021d0966d09fba802ef3de11fdb6766c33993f8cf24f1277c6a9
languageName: node
linkType: hard
@@ -7864,12 +8051,12 @@ __metadata:
linkType: hard
"@types/eslint@npm:*":
- version: 8.56.0
- resolution: "@types/eslint@npm:8.56.0"
+ version: 8.56.2
+ resolution: "@types/eslint@npm:8.56.2"
dependencies:
"@types/estree": "npm:*"
"@types/json-schema": "npm:*"
- checksum: 0405403788b9b8b3dbce59b668cdf5f7dc3b3fe5f82a4bf335cd7c936b95df83d892bd70af69f0d4f463125b45d15084dc5c0eeda9982d80ddbd988aa6758b63
+ checksum: 9e4805e770ea90a561e1f69e5edce28b8f66e92e290705100e853c7c252cf87bef654168d0d47fc60c0effbe4517dd7a8d2fa6d3f04c7f831367d568009fd368
languageName: node
linkType: hard
@@ -8164,29 +8351,36 @@ __metadata:
linkType: hard
"@types/node-forge@npm:^1.3.0":
- version: 1.3.10
- resolution: "@types/node-forge@npm:1.3.10"
+ version: 1.3.11
+ resolution: "@types/node-forge@npm:1.3.11"
dependencies:
"@types/node": "npm:*"
- checksum: 111520ac4db33bba4e46fcb75e9c29234ca78e2ece32fc929e7382798cdb7985e01da7e8f70c32769f42996e8d06f347d34d90308951cf2d004f418135ac7735
+ checksum: 670c9b377c48189186ec415e3c8ed371f141ecc1a79ab71b213b20816adeffecba44dae4f8406cc0d09e6349a4db14eb8c5893f643d8e00fa19fc035cf49dee0
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^20.8.3":
- version: 20.10.5
- resolution: "@types/node@npm:20.10.5"
+ version: 20.10.8
+ resolution: "@types/node@npm:20.10.8"
dependencies:
undici-types: "npm:~5.26.4"
- checksum: 4a378428d2c9f692b19801a5a3d20dc4c0ad5d4a3d103350f8b401af439941a9aa5efeadc8eb9db13c66c620318bc7f336abfc8934f82fd32c4a689d85068c6f
+ checksum: 820efb084997bb62635883c820bc00c4bd01c71d66b8191fe8559256d6612f6665bbf682ed700bc55a99d48ff1e646d987c6f51afb3cffdb772f267727706277
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:14.18.33":
+ version: 14.18.33
+ resolution: "@types/node@npm:14.18.33"
+ checksum: ec6bdc69943adec148b0182c7e47c9b8d0c1789a6f8c45a6bc5f375e609e859c019830ff3d6751580453dda453add5b17784da009f8253bbec34ef92cc1a31a7
languageName: node
linkType: hard
"@types/node@npm:^18.11.18":
- version: 18.19.3
- resolution: "@types/node@npm:18.19.3"
+ version: 18.19.6
+ resolution: "@types/node@npm:18.19.6"
dependencies:
undici-types: "npm:~5.26.4"
- checksum: b95d0c0be342275e27d882bb6ca73c0b757d1672a121cae1fc3249eda4f86a8abeb5745e5c5c1150914bcfda323a3fc51526cd34e2097f8355bf7cbf12fa6bcb
+ checksum: 6168abff930fe7666b81a130032b459b72d5de9d254e2b211027d18d9eab80f653f43b7a8f083429a43e0527174ec70bbcd0010abb935d91f2d518b7554b7cab
languageName: node
linkType: hard
@@ -8257,13 +8451,13 @@ __metadata:
linkType: hard
"@types/react@npm:*, @types/react@npm:^18.2.20":
- version: 18.2.46
- resolution: "@types/react@npm:18.2.46"
+ version: 18.2.47
+ resolution: "@types/react@npm:18.2.47"
dependencies:
"@types/prop-types": "npm:*"
"@types/scheduler": "npm:*"
csstype: "npm:^3.0.2"
- checksum: 10fb28a5b8504106512ce3b154c45d1ac045c31633786773a29f003b3079b434060368bb56f95ef6c39510835ceec4fb8fdc271d6ca2b9cdd979379cf53f126b
+ checksum: 0a98c2ef8303909f78c973ac9731cb671f3a0b96bc5213b538d1a50cbaae6e51b6befd64845a9cb95af8528767315d5bd99a85608eb716c020393c7d33a9b477
languageName: node
linkType: hard
@@ -8416,9 +8610,9 @@ __metadata:
linkType: hard
"@types/validator@npm:^13.11.1":
- version: 13.11.7
- resolution: "@types/validator@npm:13.11.7"
- checksum: 5935d363a9a6099ee6a2100ae3be46d9d1f113dbea16e03b627b48b2f746f01100535febc564d215a7054dd9a632ec0cda10ecd6a75d088e3e38834290fb76f6
+ version: 13.11.8
+ resolution: "@types/validator@npm:13.11.8"
+ checksum: 27cba3b43d79cff40c57703225944efacb9c4954379640a8f1ba29cdae07f36fc1115deed08dada9f6d7ff09f205540d04c435e27999dc1ce78d26fd3d8867a0
languageName: node
linkType: hard
@@ -8483,14 +8677,14 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.4.1":
- version: 6.16.0
- resolution: "@typescript-eslint/eslint-plugin@npm:6.16.0"
+ version: 6.18.1
+ resolution: "@typescript-eslint/eslint-plugin@npm:6.18.1"
dependencies:
"@eslint-community/regexpp": "npm:^4.5.1"
- "@typescript-eslint/scope-manager": "npm:6.16.0"
- "@typescript-eslint/type-utils": "npm:6.16.0"
- "@typescript-eslint/utils": "npm:6.16.0"
- "@typescript-eslint/visitor-keys": "npm:6.16.0"
+ "@typescript-eslint/scope-manager": "npm:6.18.1"
+ "@typescript-eslint/type-utils": "npm:6.18.1"
+ "@typescript-eslint/utils": "npm:6.18.1"
+ "@typescript-eslint/visitor-keys": "npm:6.18.1"
debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4"
@@ -8503,25 +8697,25 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 4bedce948ac3c20492a59813ee5d4f1f2306310857864dfaac2736f6c38e18785002c36844fd64c9fbdf3059fc390b29412be105fd7a118177f1eeeb1eb533f7
+ checksum: 451abba1f784539ba38cbe40af26c461facd848e90cbf0c440a98ca2a770ff74a794bafe1df7240e52a97e7cd72bade97d5de751dffbac269643460ad65e3b19
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^6.1.0":
- version: 6.16.0
- resolution: "@typescript-eslint/parser@npm:6.16.0"
+ version: 6.18.1
+ resolution: "@typescript-eslint/parser@npm:6.18.1"
dependencies:
- "@typescript-eslint/scope-manager": "npm:6.16.0"
- "@typescript-eslint/types": "npm:6.16.0"
- "@typescript-eslint/typescript-estree": "npm:6.16.0"
- "@typescript-eslint/visitor-keys": "npm:6.16.0"
+ "@typescript-eslint/scope-manager": "npm:6.18.1"
+ "@typescript-eslint/types": "npm:6.18.1"
+ "@typescript-eslint/typescript-estree": "npm:6.18.1"
+ "@typescript-eslint/visitor-keys": "npm:6.18.1"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 3d941ce345dc2ce29957e2110957662873d514b094b8939923c3281d858c11cd1f9058db862644afe14f68d087770f39a0a1f9e523a2013ed5d2fdf3421b34d0
+ checksum: b853d39dcf886668f9aa9ea12094e722d35be20855dc7f01c80ee847bf4f7e27aa74693c3a33d4d813705214bda28be1d6c7ca29e590233f894f556203171d29
languageName: node
linkType: hard
@@ -8535,22 +8729,22 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/scope-manager@npm:6.16.0"
+"@typescript-eslint/scope-manager@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/scope-manager@npm:6.18.1"
dependencies:
- "@typescript-eslint/types": "npm:6.16.0"
- "@typescript-eslint/visitor-keys": "npm:6.16.0"
- checksum: 3360aae4b85f5c31d20ad48d771cc09a6f8f6b1811b00d94f06e55b5a09c610ac75631b1c4edecb3bec682d41351b87e7d14d42bee84aa032064d0e13463035b
+ "@typescript-eslint/types": "npm:6.18.1"
+ "@typescript-eslint/visitor-keys": "npm:6.18.1"
+ checksum: ab75663cda67a2c95267f240f2e062a0aafab0df6d625043a134c8e1d61e193c0d3cfa49c802bd554b3fd80f4b7df5ea3f86ef2eb6994ba8b5e0790cc9868c84
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/type-utils@npm:6.16.0"
+"@typescript-eslint/type-utils@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/type-utils@npm:6.18.1"
dependencies:
- "@typescript-eslint/typescript-estree": "npm:6.16.0"
- "@typescript-eslint/utils": "npm:6.16.0"
+ "@typescript-eslint/typescript-estree": "npm:6.18.1"
+ "@typescript-eslint/utils": "npm:6.18.1"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1"
peerDependencies:
@@ -8558,7 +8752,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 5964b87a87252bed278a248eb568902babd7c34defd3af8c3df371926d96aec716f33f1dc14bde170e93f73ed1b0af6e591e647853d0f33f378e2c7b3b73fc5b
+ checksum: f775011c35aef10b11e7cffde698fca8b06b313785cd44422c60a40b6643d85a38cbd9a3cbdef011d963680d65383c40988d983e9dfd01258ae50a2f37f6d293
languageName: node
linkType: hard
@@ -8569,10 +8763,10 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/types@npm:6.16.0"
- checksum: 236ca318c2440c95068e5d4d147e2bfed62447775e18695e21c8ca04a341a74d01c37ed2b417629b7bf2fb91ad4fd5e2a6570215d16fc24dd1507ce6973b4e22
+"@typescript-eslint/types@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/types@npm:6.18.1"
+ checksum: e304620953257a5af3b323697845d3fb41ffbb7944df2f84559675ef8ad71cc33011be30149efd8d34c5dedcbe92c6abee67cb1b95cb3dd56f15b9393b3435a6
languageName: node
linkType: hard
@@ -8594,12 +8788,12 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/typescript-estree@npm:6.16.0"
+"@typescript-eslint/typescript-estree@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/typescript-estree@npm:6.18.1"
dependencies:
- "@typescript-eslint/types": "npm:6.16.0"
- "@typescript-eslint/visitor-keys": "npm:6.16.0"
+ "@typescript-eslint/types": "npm:6.18.1"
+ "@typescript-eslint/visitor-keys": "npm:6.18.1"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@@ -8609,24 +8803,24 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 8e1ef03ecabaf3791b11240a51217836dbb74850e458258db77ac5eab5508cd9c63fb671924993d1e7654718c0c857c3550d51ecba0845fe489d143bb858e1b1
+ checksum: 33307bc87c3270f84f149545da79a15afaafacc5671e42f4aa827947f09c35ed114705f108ffa59d6ab175f8b838aa08cf10f9efe5b7793aca0792f879bbc7ca
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/utils@npm:6.16.0"
+"@typescript-eslint/utils@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/utils@npm:6.18.1"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0"
- "@typescript-eslint/scope-manager": "npm:6.16.0"
- "@typescript-eslint/types": "npm:6.16.0"
- "@typescript-eslint/typescript-estree": "npm:6.16.0"
+ "@typescript-eslint/scope-manager": "npm:6.18.1"
+ "@typescript-eslint/types": "npm:6.18.1"
+ "@typescript-eslint/typescript-estree": "npm:6.18.1"
semver: "npm:^7.5.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
- checksum: 84dd02f7c8e47fae699cc222da5cbea08b28c6e1cc7827860430bc86c2a17ee3f86e198a4356902b95930f85785aa662266ea9c476f69bf80c6a5f648e55f9f4
+ checksum: 967728f062ec7ef434b9d05af6b45ae59e0f8f314e4aa7cefc8e2c30a277cf269b7913f3e9f8d26a86c3faf8b2c9385ba1221cfcd856e9b228421fc6508b41bc
languageName: node
linkType: hard
@@ -8658,13 +8852,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:6.16.0":
- version: 6.16.0
- resolution: "@typescript-eslint/visitor-keys@npm:6.16.0"
+"@typescript-eslint/visitor-keys@npm:6.18.1":
+ version: 6.18.1
+ resolution: "@typescript-eslint/visitor-keys@npm:6.18.1"
dependencies:
- "@typescript-eslint/types": "npm:6.16.0"
+ "@typescript-eslint/types": "npm:6.18.1"
eslint-visitor-keys: "npm:^3.4.1"
- checksum: 19e559f14ea0092585a374b8c5f1aca9b6b271fc23909d9857de9cf71a1e1d3abc0afd237e9c02d7a5fbdfe8e3be7853cf9fedf40a6f16bac3495cb7f4e67982
+ checksum: 2d6c5ffa52e89caec0b4958d7079fb4ca9f17c19b5f5d5b8446b4eef0079fd59cd9959f469cc13c4e7d72ef4c47849e561fe323f3cebafa01bc916d43082e57b
languageName: node
linkType: hard
@@ -8709,6 +8903,217 @@ __metadata:
languageName: node
linkType: hard
+"@vercel/build-utils@npm:7.5.0":
+ version: 7.5.0
+ resolution: "@vercel/build-utils@npm:7.5.0"
+ checksum: a7a3345960f9e17d686c5e0ea0b0d08b77e49173cc2bfaf4069269bb4abb8e5a82e10cd50d5bdf00c9f6cd1e3c1f7b505dc8d0ba43aa23b78e085bee0bee9944
+ languageName: node
+ linkType: hard
+
+"@vercel/error-utils@npm:2.0.2":
+ version: 2.0.2
+ resolution: "@vercel/error-utils@npm:2.0.2"
+ checksum: dedbe691bfbd834dfa0a7726ffeb04c43386c68f7e17f75c75c37f5cf6bb311be063dacf2193d40ecc61ada2c3d69f7deac5a0691cfd29ce4a25a91f55de693f
+ languageName: node
+ linkType: hard
+
+"@vercel/fun@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@vercel/fun@npm:1.1.0"
+ dependencies:
+ "@tootallnate/once": "npm:2.0.0"
+ async-listen: "npm:1.2.0"
+ debug: "npm:4.1.1"
+ execa: "npm:3.2.0"
+ fs-extra: "npm:8.1.0"
+ generic-pool: "npm:3.4.2"
+ micro: "npm:9.3.5-canary.3"
+ ms: "npm:2.1.1"
+ node-fetch: "npm:2.6.7"
+ path-match: "npm:1.2.4"
+ promisepipe: "npm:3.0.0"
+ semver: "npm:7.3.5"
+ stat-mode: "npm:0.3.0"
+ stream-to-promise: "npm:2.2.0"
+ tar: "npm:4.4.18"
+ tree-kill: "npm:1.2.2"
+ uid-promise: "npm:1.0.0"
+ uuid: "npm:3.3.2"
+ xdg-app-paths: "npm:5.1.0"
+ yauzl-promise: "npm:2.1.3"
+ checksum: ed9b80977bef611f3d6688ec1f82a1c2cd1734f0730243067bc58c7b89777e6e67732dd29cedaa7d8c49a40a6680b1451d7cc5156fa4efafdd7adb4511751abc
+ languageName: node
+ linkType: hard
+
+"@vercel/gatsby-plugin-vercel-analytics@npm:1.0.11":
+ version: 1.0.11
+ resolution: "@vercel/gatsby-plugin-vercel-analytics@npm:1.0.11"
+ dependencies:
+ web-vitals: "npm:0.2.4"
+ checksum: 1d57365ebe0c80ff6b7cf50d5c767697628a192b328566710aeae4042b18eb2207650dc663873d1840b0e4777c35d624584339a9b897ab8827a558814b5b70bb
+ languageName: node
+ linkType: hard
+
+"@vercel/gatsby-plugin-vercel-builder@npm:2.0.15":
+ version: 2.0.15
+ resolution: "@vercel/gatsby-plugin-vercel-builder@npm:2.0.15"
+ dependencies:
+ "@sinclair/typebox": "npm:0.25.24"
+ "@vercel/build-utils": "npm:7.5.0"
+ "@vercel/routing-utils": "npm:3.1.0"
+ esbuild: "npm:0.14.47"
+ etag: "npm:1.8.1"
+ fs-extra: "npm:11.1.0"
+ checksum: ec02bfa0076d722a9a26b999723cedafa1b10e3e342ecc8b51b2db01df70e8d7cc2ef6ae347fec0ff7c2ff5254bbd6a59bde9dcb4e001b3959dd98341a15a34c
+ languageName: node
+ linkType: hard
+
+"@vercel/go@npm:3.0.5":
+ version: 3.0.5
+ resolution: "@vercel/go@npm:3.0.5"
+ checksum: acab8f0af74b2558db46c3111d9ea2b9f03e64ce03be54566920301c0135cf49ca28a57825d817a374d42234cabd444e2e704c8083f204fb1170dca14999c5d3
+ languageName: node
+ linkType: hard
+
+"@vercel/hydrogen@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@vercel/hydrogen@npm:1.0.2"
+ dependencies:
+ "@vercel/static-config": "npm:3.0.0"
+ ts-morph: "npm:12.0.0"
+ checksum: a544cab2b206ac3cae3012b5f8393b3f2df69ccc3c7bf0548234884a6cb0a2480cf14bd0dfefd13b8daf36651871e776f888ef13f84c4cb09965bdf8266c710c
+ languageName: node
+ linkType: hard
+
+"@vercel/next@npm:4.0.17":
+ version: 4.0.17
+ resolution: "@vercel/next@npm:4.0.17"
+ dependencies:
+ "@vercel/nft": "npm:0.26.2"
+ checksum: 39cfbef8016fd5d276a433b5dc8ec15db046834bf9fa1746da00c16134a2a0f083c0e2e72df15097656a955386c660cbb6695ddb9e0113b38fcd2efba965df39
+ languageName: node
+ linkType: hard
+
+"@vercel/nft@npm:0.26.2":
+ version: 0.26.2
+ resolution: "@vercel/nft@npm:0.26.2"
+ dependencies:
+ "@mapbox/node-pre-gyp": "npm:^1.0.5"
+ "@rollup/pluginutils": "npm:^4.0.0"
+ acorn: "npm:^8.6.0"
+ acorn-import-attributes: "npm:^1.9.2"
+ async-sema: "npm:^3.1.1"
+ bindings: "npm:^1.4.0"
+ estree-walker: "npm:2.0.2"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ micromatch: "npm:^4.0.2"
+ node-gyp-build: "npm:^4.2.2"
+ resolve-from: "npm:^5.0.0"
+ bin:
+ nft: out/cli.js
+ checksum: 641b0d151184d40b2adcc7fd9e3acf15d0f3209e4fc3f259b1e4ab2366fb37aff600bc7c548f560525b565affaeb852c87fc6d244a86b3f2e9d34c070c014699
+ languageName: node
+ linkType: hard
+
+"@vercel/node@npm:3.0.16":
+ version: 3.0.16
+ resolution: "@vercel/node@npm:3.0.16"
+ dependencies:
+ "@edge-runtime/node-utils": "npm:2.2.1"
+ "@edge-runtime/primitives": "npm:4.0.5"
+ "@edge-runtime/vm": "npm:3.1.7"
+ "@types/node": "npm:14.18.33"
+ "@vercel/build-utils": "npm:7.5.0"
+ "@vercel/error-utils": "npm:2.0.2"
+ "@vercel/nft": "npm:0.26.2"
+ "@vercel/static-config": "npm:3.0.0"
+ async-listen: "npm:3.0.0"
+ edge-runtime: "npm:2.5.7"
+ esbuild: "npm:0.14.47"
+ etag: "npm:1.8.1"
+ node-fetch: "npm:2.6.9"
+ path-to-regexp: "npm:6.2.1"
+ ts-morph: "npm:12.0.0"
+ ts-node: "npm:10.9.1"
+ typescript: "npm:4.9.5"
+ undici: "npm:5.26.5"
+ checksum: 62d8a3f8bb96d121f7a8b337d069a80feb73deb7cd2b595dc83b32a73dfb6b5ac9af93b010343b8bef2b4e7ec286dc25b2b1e6ed1fab43718917dfc564c105a4
+ languageName: node
+ linkType: hard
+
+"@vercel/python@npm:4.1.0":
+ version: 4.1.0
+ resolution: "@vercel/python@npm:4.1.0"
+ checksum: e5f5ce49a331d6d3b917102ccdc9ab4c373e6291c7ac41db3bf4caf72203d9129c88c2a9549e2faa938e0a0ad1cc62ebf16e6247ee39131ee4f3a33dedd34703
+ languageName: node
+ linkType: hard
+
+"@vercel/redwood@npm:2.0.6":
+ version: 2.0.6
+ resolution: "@vercel/redwood@npm:2.0.6"
+ dependencies:
+ "@vercel/nft": "npm:0.26.2"
+ "@vercel/routing-utils": "npm:3.1.0"
+ semver: "npm:6.3.1"
+ checksum: 065bf914393e6a27d6daa5a9fd754009ecddec1de7e5df048e169ae22133e6b0baa3b94ff2c8ea5ea508e9e4477eb308a4971b130de0ad946531e9d632bca557
+ languageName: node
+ linkType: hard
+
+"@vercel/remix-builder@npm:2.0.17":
+ version: 2.0.17
+ resolution: "@vercel/remix-builder@npm:2.0.17"
+ dependencies:
+ "@vercel/nft": "npm:0.26.2"
+ "@vercel/static-config": "npm:3.0.0"
+ ts-morph: "npm:12.0.0"
+ checksum: ed8fb4ba71079f6f65dd78722d10ee61bceed77c643c6fed520b855429577aad163848392ec1830371c60fccfa0c7b846bfa6927b5a644748e7df18744e4db98
+ languageName: node
+ linkType: hard
+
+"@vercel/routing-utils@npm:3.1.0":
+ version: 3.1.0
+ resolution: "@vercel/routing-utils@npm:3.1.0"
+ dependencies:
+ ajv: "npm:^6.0.0"
+ path-to-regexp: "npm:6.1.0"
+ dependenciesMeta:
+ ajv:
+ optional: true
+ checksum: 8029b162d2d816dcd1366b19eb65ee79a571076fff1d7778a620c778b413b45dc515edcf7e2d50ae8eb4930714e0abc41fea21311265fd4e7d139e8b0632ab22
+ languageName: node
+ linkType: hard
+
+"@vercel/ruby@npm:2.0.4":
+ version: 2.0.4
+ resolution: "@vercel/ruby@npm:2.0.4"
+ checksum: c84cde5e32dc3686c3635f346b94e0d6cc95dbdf9f1d19e03caae2b532d92a41609602163384bada37c6a4e319ed08691263950965f346fc1190c9cf564090e8
+ languageName: node
+ linkType: hard
+
+"@vercel/static-build@npm:2.0.17":
+ version: 2.0.17
+ resolution: "@vercel/static-build@npm:2.0.17"
+ dependencies:
+ "@vercel/gatsby-plugin-vercel-analytics": "npm:1.0.11"
+ "@vercel/gatsby-plugin-vercel-builder": "npm:2.0.15"
+ "@vercel/static-config": "npm:3.0.0"
+ ts-morph: "npm:12.0.0"
+ checksum: cfd9ee286bc5ec3241d24e1dc09bd6e7d803c72d17e402efaf7326dd81bf16ef6c945de85d6e823e2fad7ecdd46013396ef50f8fbe1cf24cb7bda12f40a1090c
+ languageName: node
+ linkType: hard
+
+"@vercel/static-config@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@vercel/static-config@npm:3.0.0"
+ dependencies:
+ ajv: "npm:8.6.3"
+ json-schema-to-ts: "npm:1.6.4"
+ ts-morph: "npm:12.0.0"
+ checksum: 69d9b0a4b1edd4dec767c512963a2000563c3923ce4343bf6f12bcfb30c8689338eb6216ab16d52f5ff16d4839fcc53ae6d4898a02582db8359d1ead5abd4cf1
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5":
version: 1.11.6
resolution: "@webassemblyjs/ast@npm:1.11.6"
@@ -8968,6 +9373,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn-import-attributes@npm:^1.9.2":
+ version: 1.9.2
+ resolution: "acorn-import-attributes@npm:1.9.2"
+ peerDependencies:
+ acorn: ^8
+ checksum: fdaef65435e1f05ad18de6d9c328de562a1a4afaadaf9b40df37bdd6b6975409acc14d2fbda249ac092112f11d13bea35e56ba2322c5febb7808b28c45ded1fd
+ languageName: node
+ linkType: hard
+
"acorn-jsx@npm:^5.3.2":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
@@ -8984,7 +9398,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
+"acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
version: 8.11.3
resolution: "acorn@npm:8.11.3"
bin:
@@ -9076,6 +9490,18 @@ __metadata:
languageName: node
linkType: hard
+"ajv@npm:8.6.3":
+ version: 8.6.3
+ resolution: "ajv@npm:8.6.3"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ json-schema-traverse: "npm:^1.0.0"
+ require-from-string: "npm:^2.0.2"
+ uri-js: "npm:^4.2.2"
+ checksum: 344796bb989c57788b0bffb6872b4a0d20b8cf44c70891a7f8484d614978342a8d5f3ac77a5dc4299d93b2c8225bf7bb224e1c78a1359c0489e6be537fdda184
+ languageName: node
+ linkType: hard
+
"ajv@npm:^5.5.2":
version: 5.5.2
resolution: "ajv@npm:5.5.2"
@@ -9088,7 +9514,7 @@ __metadata:
languageName: node
linkType: hard
-"ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5":
+"ajv@npm:^6.0.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5":
version: 6.12.6
resolution: "ajv@npm:6.12.6"
dependencies:
@@ -9135,6 +9561,13 @@ __metadata:
languageName: node
linkType: hard
+"ansi-colors@npm:^4.1.1":
+ version: 4.1.3
+ resolution: "ansi-colors@npm:4.1.3"
+ checksum: 43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2
+ languageName: node
+ linkType: hard
+
"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2":
version: 4.3.2
resolution: "ansi-escapes@npm:4.3.2"
@@ -9240,14 +9673,14 @@ __metadata:
languageName: node
linkType: hard
-"any-promise@npm:^1.0.0":
+"any-promise@npm:^1.0.0, any-promise@npm:^1.1.0, any-promise@npm:~1.3.0":
version: 1.3.0
resolution: "any-promise@npm:1.3.0"
checksum: 6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb
languageName: node
linkType: hard
-"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2":
+"anymatch@npm:^3.0.3, anymatch@npm:~3.1.1, anymatch@npm:~3.1.2":
version: 3.1.3
resolution: "anymatch@npm:3.1.3"
dependencies:
@@ -9257,34 +9690,166 @@ __metadata:
languageName: node
linkType: hard
-"appdirsjs@npm:^1.2.4":
- version: 1.2.7
- resolution: "appdirsjs@npm:1.2.7"
- checksum: 8f6cb9cc18de2b38e2f5efddf764c5f0331aba4168ee28cb7370b98e1dc69316352b9a936acf4d628b4dcc510d77b1645ed4b68ab2231e302f835d35e11348d3
- languageName: node
- linkType: hard
-
-"application-config-path@npm:^0.1.0":
- version: 0.1.1
- resolution: "application-config-path@npm:0.1.1"
- checksum: 380f4c49585511813526632c8366318f52941526dbb284a887e5af328caa76424a056795ab18f03f5009197f2dea0ef01a8a9812d85724f26d2f5cf9bf9bf1f9
- languageName: node
- linkType: hard
-
-"aproba@npm:^1.0.3 || ^2.0.0":
- version: 2.0.0
- resolution: "aproba@npm:2.0.0"
- checksum: c2b9a631298e8d6f3797547e866db642f68493808f5b37cd61da778d5f6ada890d16f668285f7d60bd4fc3b03889bd590ffe62cf81b700e9bb353431238a0a7b
- languageName: node
- linkType: hard
-
-"arch@npm:^2.2.0":
- version: 2.2.0
- resolution: "arch@npm:2.2.0"
- checksum: e35dbc6d362297000ab90930069576ba165fe63cd52383efcce14bd66c1b16a91ce849e1fd239964ed029d5e0bdfc32f68e9c7331b7df6c84ddebebfdbf242f7
- languageName: node
- linkType: hard
-
+"app@npm:*, app@workspace:packages/app":
+ version: 0.0.0-use.local
+ resolution: "app@workspace:packages/app"
+ dependencies:
+ "@babel/core": "npm:^7.21.3"
+ "@babel/preset-typescript": "npm:^7.22.5"
+ "@babel/runtime": "npm:^7.21.0"
+ "@expo/match-media": "npm:^0.4.0"
+ "@expo/vector-icons": "npm:^13.0.0"
+ "@expo/webpack-config": "npm:^19.0.0"
+ "@fortawesome/fontawesome-svg-core": "npm:^6.3.0"
+ "@fortawesome/free-solid-svg-icons": "npm:^6.3.0"
+ "@fortawesome/react-fontawesome": "npm:^0.2.0"
+ "@hookform/resolvers": "npm:^3.3.1"
+ "@packrat/ui": "npm:*"
+ "@packrat/validations": "npm:*"
+ "@react-native-async-storage/async-storage": "npm:^1.21.0"
+ "@react-native-community/geolocation": "npm:^3.0.6"
+ "@react-native-community/netinfo": "npm:^9.4.1"
+ "@react-native-google-signin/google-signin": "npm:^9.0.2"
+ "@react-navigation/native": "npm:^6.1.6"
+ "@react-navigation/native-stack": "npm:^6.9.12"
+ "@reduxjs/toolkit": "npm:^1.9.3"
+ "@rnmapbox/maps": "npm:^10.0.0-beta.79"
+ "@tamagui/animations-react-native": "npm:^1.84.1"
+ "@tamagui/babel-plugin": "npm:^1.84.1"
+ "@tamagui/config": "npm:^1.84.1"
+ "@tamagui/font-inter": "npm:^1.84.1"
+ "@tamagui/linear-gradient": "npm:^1.84.1"
+ "@tamagui/lucide-icons": "npm:^1.84.1"
+ "@tamagui/progress": "npm:^1.84.1"
+ "@tamagui/react-native-media-driver": "npm:^1.84.1"
+ "@tamagui/shorthands": "npm:^1.84.1"
+ "@tamagui/switch": "npm:^1.84.1"
+ "@tamagui/theme-base": "npm:^1.84.1"
+ "@tamagui/themes": "npm:^1.84.1"
+ "@tanstack/eslint-plugin-query": "npm:^5.14.6"
+ "@tanstack/query-async-storage-persister": "npm:^4.36.1"
+ "@tanstack/react-query": "npm:^4.36.1"
+ "@tanstack/react-query-devtools": "npm:^4.36.1"
+ "@tanstack/react-query-persist-client": "npm:^4.36.1"
+ "@tmcw/togeojson": "npm:^5.7.0"
+ "@trpc/client": "npm:^10.38.5"
+ "@trpc/react-query": "npm:^10.38.5"
+ "@trpc/server": "npm:^10.38.5"
+ "@tsconfig/react-native": "npm:^3.0.2"
+ "@types/jest": "npm:^29.5.3"
+ "@types/lodash": "npm:^4.14.202"
+ "@types/node": "npm:^20.8.3"
+ "@types/react": "npm:^18.2.20"
+ "@types/react-native": "npm:^0.72.5"
+ "@types/react-test-renderer": "npm:^18.0.0"
+ "@types/server": "npm:^1.0.5"
+ "@typescript-eslint/eslint-plugin": "npm:^6.4.1"
+ axios: "npm:^1.4.0"
+ babel-plugin-transform-inline-environment-variables: "npm:^0.4.4"
+ burnt: "npm:^0.12.1"
+ date-fns: "npm:^2.29.3"
+ dotenv: "npm:^16.0.3"
+ eslint: "npm:^8.47.0"
+ eslint-config-prettier: "npm:^9.0.0"
+ eslint-config-standard-with-typescript: "npm:^38.0.0"
+ eslint-plugin-import: "npm:^2.28.1"
+ eslint-plugin-n: "npm:^16.0.2"
+ eslint-plugin-prettier: "npm:^5.0.0"
+ eslint-plugin-promise: "npm:^6.1.1"
+ eslint-plugin-react: "npm:^7.33.2"
+ eslint-plugin-react-native: "npm:^4.0.0"
+ expo: "npm:49.0.15"
+ expo-application: "npm:~5.3.0"
+ expo-auth-session: "npm:~5.0.2"
+ expo-checkbox: "npm:~2.4.0"
+ expo-constants: "npm:~14.4.2"
+ expo-crypto: "npm:~12.4.1"
+ expo-document-picker: "npm:~11.5.4"
+ expo-file-system: "npm:~15.4.4"
+ expo-font: "npm:~11.4.0"
+ expo-image-picker: "npm:~14.3.2"
+ expo-linking: "npm:~5.0.2"
+ expo-location: "npm:~16.1.0"
+ expo-random: "npm:~13.2.0"
+ expo-router: "npm:^2.0.9"
+ expo-secure-store: "npm:~12.3.1"
+ expo-splash-screen: "npm:~0.20.5"
+ expo-standard-web-crypto: "npm:^1.7.0"
+ expo-status-bar: "npm:~1.6.0"
+ expo-system-ui: "npm:~2.4.0"
+ expo-web-browser: "npm:~12.3.2"
+ file-saver: "npm:^2.0.5"
+ firebase: "npm:^9.19.1"
+ fuse.js: "npm:^6.6.2"
+ lodash: "npm:^4.17.21"
+ mapbox-gl: "npm:1.13.3"
+ native-base: "npm:^3.4.28"
+ normalize-css-color: "npm:^1.0.2"
+ osmtogeojson: "npm:^3.0.0-beta.5"
+ prettier: "npm:^3.0.2"
+ react: "npm:18.2.0"
+ react-dom: "npm:^18.2.0"
+ react-hook-form: "npm:^7.46.1"
+ react-native: "npm:0.72.6"
+ react-native-dotenv: "npm:^3.4.8"
+ react-native-elements: "npm:^3.4.3"
+ react-native-flash-message: "npm:^0.4.2"
+ react-native-gesture-handler: "npm:~2.12.0"
+ react-native-google-places-autocomplete: "npm:^2.5.1"
+ react-native-paper: "npm:^5.10.6"
+ react-native-paper-dates: "npm:^0.18.12"
+ react-native-safe-area-context: "npm:^4.7.4"
+ react-native-screens: "npm:~3.22.0"
+ react-native-select-dropdown: "npm:^3.3.4"
+ react-native-svg: "npm:13.9.0"
+ react-native-table-component: "https://github.com/slice312/react-native-table-component.git"
+ react-native-vector-icons: "npm:^9.2.0"
+ react-native-web: "npm:~0.19.6"
+ react-native-webview: "npm:13.2.2"
+ react-redux: "npm:^9.0.4"
+ react-responsive: "npm:^9.0.2"
+ redux-persist: "npm:^6.0.0"
+ serve: "npm:^14.2.0"
+ server: "npm:*"
+ solito: "npm:^4.2.0"
+ superjson: "npm:^2.0.0"
+ tamagui: "npm:^1.84.1"
+ togpx: "npm:^0.5.4"
+ typescript: "npm:^5.2.2"
+ uuid: "npm:3.4.0"
+ xmldom: "npm:^0.6.0"
+ zod: "npm:^3.22.2"
+ languageName: unknown
+ linkType: soft
+
+"appdirsjs@npm:^1.2.4":
+ version: 1.2.7
+ resolution: "appdirsjs@npm:1.2.7"
+ checksum: 8f6cb9cc18de2b38e2f5efddf764c5f0331aba4168ee28cb7370b98e1dc69316352b9a936acf4d628b4dcc510d77b1645ed4b68ab2231e302f835d35e11348d3
+ languageName: node
+ linkType: hard
+
+"application-config-path@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "application-config-path@npm:0.1.1"
+ checksum: 380f4c49585511813526632c8366318f52941526dbb284a887e5af328caa76424a056795ab18f03f5009197f2dea0ef01a8a9812d85724f26d2f5cf9bf9bf1f9
+ languageName: node
+ linkType: hard
+
+"aproba@npm:^1.0.3 || ^2.0.0":
+ version: 2.0.0
+ resolution: "aproba@npm:2.0.0"
+ checksum: c2b9a631298e8d6f3797547e866db642f68493808f5b37cd61da778d5f6ada890d16f668285f7d60bd4fc3b03889bd590ffe62cf81b700e9bb353431238a0a7b
+ languageName: node
+ linkType: hard
+
+"arch@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "arch@npm:2.2.0"
+ checksum: e35dbc6d362297000ab90930069576ba165fe63cd52383efcce14bd66c1b16a91ce849e1fd239964ed029d5e0bdfc32f68e9c7331b7df6c84ddebebfdbf242f7
+ languageName: node
+ linkType: hard
+
"are-we-there-yet@npm:^2.0.0":
version: 2.0.0
resolution: "are-we-there-yet@npm:2.0.0"
@@ -9358,13 +9923,6 @@ __metadata:
languageName: node
linkType: hard
-"array-flatten@npm:^2.1.2":
- version: 2.1.2
- resolution: "array-flatten@npm:2.1.2"
- checksum: e8988aac1fbfcdaae343d08c9a06a6fddd2c6141721eeeea45c3cf523bf4431d29a46602929455ed548c7a3e0769928cdc630405427297e7081bd118fdec9262
- languageName: node
- linkType: hard
-
"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7":
version: 3.1.7
resolution: "array-includes@npm:3.1.7"
@@ -9533,6 +10091,27 @@ __metadata:
languageName: node
linkType: hard
+"async-listen@npm:1.2.0":
+ version: 1.2.0
+ resolution: "async-listen@npm:1.2.0"
+ checksum: 259f0406fccf1ecc80a707b0808d7607e0d1c7f5212ae1537b4f597202713e2d6cbd48026ed3bf9bc6bd8f85077c308797ac38831e93eb920e3ce2907efa816c
+ languageName: node
+ linkType: hard
+
+"async-listen@npm:3.0.0":
+ version: 3.0.0
+ resolution: "async-listen@npm:3.0.0"
+ checksum: 3c238e213219ca71bd1239398a852d7c40b9fe212066616d5ab80861c2a014c100acebe48cd57b5ac2d8d66096ee0ea760b25d574f99a0236977921ff7149582
+ languageName: node
+ linkType: hard
+
+"async-listen@npm:3.0.1":
+ version: 3.0.1
+ resolution: "async-listen@npm:3.0.1"
+ checksum: ff519d0bdd819b5d2eee209bd7a573b7f058690696b11aa45128fe4073bd33e2441da0d01134bd464b81def6f423a5de1c28ab35d10ba1a8d81a5374f3515b90
+ languageName: node
+ linkType: hard
+
"async-retry@npm:^1.3.3":
version: 1.3.3
resolution: "async-retry@npm:1.3.3"
@@ -9542,6 +10121,13 @@ __metadata:
languageName: node
linkType: hard
+"async-sema@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "async-sema@npm:3.1.1"
+ checksum: ee0225c2e7b72ae76d66157499f61a881a050824019edc54fa6ec789313076790729557556fbbe237af0083173c66fb2edf1c9cc45c522c5f846b66c0a94ddb3
+ languageName: node
+ linkType: hard
+
"async@npm:^3.2.2":
version: 3.2.5
resolution: "async@npm:3.2.5"
@@ -9613,13 +10199,13 @@ __metadata:
linkType: hard
"axios@npm:^1.4.0":
- version: 1.6.3
- resolution: "axios@npm:1.6.3"
+ version: 1.6.5
+ resolution: "axios@npm:1.6.5"
dependencies:
- follow-redirects: "npm:^1.15.0"
+ follow-redirects: "npm:^1.15.4"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
- checksum: 78e72ec40ee49b85f076758e65d04dd966361cbf82f3789e53c5a1b6814ef57825098f8a997ec1846cf004fb7407655c7b96c496d8133d88ca0f73a98a9c452b
+ checksum: 465489d9bf8f039b9adbc8103b6299d6a5e26de77b27f0e4173d814d39bca8f4b4659d94e09ee40461aedccd8c2452f1e2b3edace1c9f81220060d2974ff9dc7
languageName: node
linkType: hard
@@ -9999,6 +10585,15 @@ __metadata:
languageName: node
linkType: hard
+"bindings@npm:^1.4.0":
+ version: 1.5.0
+ resolution: "bindings@npm:1.5.0"
+ dependencies:
+ file-uri-to-path: "npm:1.0.0"
+ checksum: 593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133
+ languageName: node
+ linkType: hard
+
"bl@npm:^4.1.0":
version: 4.1.0
resolution: "bl@npm:4.1.0"
@@ -10065,14 +10660,12 @@ __metadata:
linkType: hard
"bonjour-service@npm:^1.0.11":
- version: 1.1.1
- resolution: "bonjour-service@npm:1.1.1"
+ version: 1.2.1
+ resolution: "bonjour-service@npm:1.2.1"
dependencies:
- array-flatten: "npm:^2.1.2"
- dns-equal: "npm:^1.0.0"
fast-deep-equal: "npm:^3.1.3"
multicast-dns: "npm:^7.2.5"
- checksum: 60a14328dff846a66ae5cddbba4f2e2845a4b3cf62f64d93b57808e08e5e1a8e8c4454e37e0e289741706b359a343444ba132957bf53be9e8f5eaebdebb06306
+ checksum: 8350d135ab8dd998a829136984d7f74bfc0667b162ab99ac98bae54d72ff7a6003c6fb7911739dfba7c56a113bd6ab06a4d4fe6719b18e66592c345663e7d923
languageName: node
linkType: hard
@@ -10216,6 +10809,13 @@ __metadata:
languageName: node
linkType: hard
+"buffer-crc32@npm:~0.2.3":
+ version: 0.2.13
+ resolution: "buffer-crc32@npm:0.2.13"
+ checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c
+ languageName: node
+ linkType: hard
+
"buffer-equal-constant-time@npm:1.0.1":
version: 1.0.1
resolution: "buffer-equal-constant-time@npm:1.0.1"
@@ -10313,6 +10913,15 @@ __metadata:
languageName: node
linkType: hard
+"busboy@npm:1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: bee10fa10ea58e7e3e7489ffe4bda6eacd540a17de9f9cd21cc37e297b2dd9fe52b2715a5841afaec82900750d810d01d7edb4b2d456427f449b92b417579763
+ languageName: node
+ linkType: hard
+
"bytes@npm:3.0.0":
version: 3.0.0
resolution: "bytes@npm:3.0.0"
@@ -10320,6 +10929,13 @@ __metadata:
languageName: node
linkType: hard
+"bytes@npm:3.1.0":
+ version: 3.1.0
+ resolution: "bytes@npm:3.1.0"
+ checksum: 7c3b21c5d9d44ed455460d5d36a31abc6fa2ce3807964ba60a4b03fd44454c8cf07bb0585af83bfde1c5cc2ea4bbe5897bc3d18cd15e0acf25a3615a35aba2df
+ languageName: node
+ linkType: hard
+
"bytes@npm:3.1.2":
version: 3.1.2
resolution: "bytes@npm:3.1.2"
@@ -10354,8 +10970,8 @@ __metadata:
linkType: hard
"cacache@npm:^18.0.0":
- version: 18.0.1
- resolution: "cacache@npm:18.0.1"
+ version: 18.0.2
+ resolution: "cacache@npm:18.0.2"
dependencies:
"@npmcli/fs": "npm:^3.1.0"
fs-minipass: "npm:^3.0.0"
@@ -10369,7 +10985,7 @@ __metadata:
ssri: "npm:^10.0.0"
tar: "npm:^6.1.11"
unique-filename: "npm:^3.0.0"
- checksum: aecafd368fbfb2fc0cda1f2f831fe5a1d8161d2121317c92ac089bcd985085e8a588e810b4471e69946f91c6d2661849400e963231563c519aa1e3dac2cf6187
+ checksum: 5ca58464f785d4d64ac2019fcad95451c8c89bea25949f63acd8987fcc3493eaef1beccc0fa39e673506d879d3fc1ab420760f8a14f8ddf46ea2d121805a5e96
languageName: node
linkType: hard
@@ -10488,10 +11104,10 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001565":
- version: 1.0.30001572
- resolution: "caniuse-lite@npm:1.0.30001572"
- checksum: cf27b354c0af58d5468cdc0ecea5bff381bc382378016b36b05790929f80e321ee712470a536911dee82e946ad4be246a21326835f1da599c6ee12ec150ae8b7
+"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001565":
+ version: 1.0.30001576
+ resolution: "caniuse-lite@npm:1.0.30001576"
+ checksum: 51632942733593f310e581bd91c9558b8d75fbf67160a39f8036d2976cd7df9183e96d4c9d9e6f18e0205950b940d9c761bcfb7810962d7899f8a1179fde6e3f
languageName: node
linkType: hard
@@ -10606,6 +11222,25 @@ __metadata:
languageName: node
linkType: hard
+"chokidar@npm:3.3.1":
+ version: 3.3.1
+ resolution: "chokidar@npm:3.3.1"
+ dependencies:
+ anymatch: "npm:~3.1.1"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.1.2"
+ glob-parent: "npm:~5.1.0"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.3.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 871c6af03abe2f91f91069a27f68b5e26ed06a9e09b6f350c5dafc37f558cdb5e51383346ca1f5941746ea59d0406e15a7c9de675b84a1f310df609ce8083a78
+ languageName: node
+ linkType: hard
+
"chokidar@npm:3.5.3, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3":
version: 3.5.3
resolution: "chokidar@npm:3.5.3"
@@ -10625,6 +11260,13 @@ __metadata:
languageName: node
linkType: hard
+"chownr@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "chownr@npm:1.1.4"
+ checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d
+ languageName: node
+ linkType: hard
+
"chownr@npm:^2.0.0":
version: 2.0.0
resolution: "chownr@npm:2.0.0"
@@ -10758,6 +11400,13 @@ __metadata:
languageName: node
linkType: hard
+"client-only@npm:0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8
+ languageName: node
+ linkType: hard
+
"clipboardy@npm:3.0.0":
version: 3.0.0
resolution: "clipboardy@npm:3.0.0"
@@ -10859,6 +11508,13 @@ __metadata:
languageName: node
linkType: hard
+"code-block-writer@npm:^10.1.1":
+ version: 10.1.1
+ resolution: "code-block-writer@npm:10.1.1"
+ checksum: 06c720f3216e59654868a63a9db5d89c8cafaf760ad57d8facff2463a2605a196fe0f1ab2fa8a4face5c3afa2cc1513363a712f8f3843fb9c7228a6fa781f62b
+ languageName: node
+ linkType: hard
+
"code-error-fragment@npm:0.0.230":
version: 0.0.230
resolution: "code-error-fragment@npm:0.0.230"
@@ -11254,6 +11910,13 @@ __metadata:
languageName: node
linkType: hard
+"content-type@npm:1.0.4":
+ version: 1.0.4
+ resolution: "content-type@npm:1.0.4"
+ checksum: 5ea85c5293475c0cdf2f84e2c71f0519ced565840fb8cbda35997cb67cc45b879d5b9dbd37760c4041ca7415a3687f8a5f2f87b556b2aaefa49c0f3436a346d4
+ languageName: node
+ linkType: hard
+
"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
version: 1.0.5
resolution: "content-type@npm:1.0.5"
@@ -11261,6 +11924,13 @@ __metadata:
languageName: node
linkType: hard
+"convert-hrtime@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "convert-hrtime@npm:3.0.0"
+ checksum: 72789ac41b2c3d5e2383fc20ac5582cc27a561d9290e9a44837cbd75aed217079b5a6e983912f36a5b6754da1d1aa66c638e09b59e680fe6d1a91330670cf41e
+ languageName: node
+ linkType: hard
+
"convert-source-map@npm:^2.0.0":
version: 2.0.0
resolution: "convert-source-map@npm:2.0.0"
@@ -11513,20 +12183,20 @@ __metadata:
linkType: hard
"css-loader@npm:^6.5.1":
- version: 6.8.1
- resolution: "css-loader@npm:6.8.1"
+ version: 6.9.0
+ resolution: "css-loader@npm:6.9.0"
dependencies:
icss-utils: "npm:^5.1.0"
- postcss: "npm:^8.4.21"
+ postcss: "npm:^8.4.31"
postcss-modules-extract-imports: "npm:^3.0.0"
postcss-modules-local-by-default: "npm:^4.0.3"
- postcss-modules-scope: "npm:^3.0.0"
+ postcss-modules-scope: "npm:^3.1.0"
postcss-modules-values: "npm:^4.0.0"
postcss-value-parser: "npm:^4.2.0"
- semver: "npm:^7.3.8"
+ semver: "npm:^7.5.4"
peerDependencies:
webpack: ^5.0.0
- checksum: f20bb2a181c64d2f49586ab3922cae884519cfc8ae9ba8513065032255ed7bbdb4de75362f99d641d39d36d3732b7932884cd0e6fc71c8b0fb8b99a654f9cd08
+ checksum: 2dbbd922d88fa81d26638889b227dc6d18f82b0919a83e7f3d7ddbd07893be80956f647f8c8a96d5c3f2016771b8ca84854c981616ef77dae99c0fc8b285bbea
languageName: node
linkType: hard
@@ -11777,6 +12447,15 @@ __metadata:
languageName: node
linkType: hard
+"debug@npm:4.1.1":
+ version: 4.1.1
+ resolution: "debug@npm:4.1.1"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 19bd01e5b1e5869eacfb8e1ee9873dc90e1f90edfd9c460e388326b163e662189af291fcb67e3614dcfbeae29c1c7780a9a7b4bcea39b201316abdc058be89be
+ languageName: node
+ linkType: hard
+
"debug@npm:^3.1.0, debug@npm:^3.2.7":
version: 3.2.7
resolution: "debug@npm:3.2.7"
@@ -12095,13 +12774,6 @@ __metadata:
languageName: node
linkType: hard
-"dns-equal@npm:^1.0.0":
- version: 1.0.0
- resolution: "dns-equal@npm:1.0.0"
- checksum: c4f55af6f13536de39ebcfa15f504a5678d4fc2cf37b76fd41e73aa46dbd1fa596c9468c0c929aeb248ec443cb217fde949942c513312acf93c76cf783276617
- languageName: node
- linkType: hard
-
"dns-packet@npm:^5.2.2":
version: 5.6.1
resolution: "dns-packet@npm:5.6.1"
@@ -12344,16 +13016,35 @@ __metadata:
languageName: node
linkType: hard
+"edge-runtime@npm:2.5.7":
+ version: 2.5.7
+ resolution: "edge-runtime@npm:2.5.7"
+ dependencies:
+ "@edge-runtime/format": "npm:2.2.0"
+ "@edge-runtime/ponyfill": "npm:2.4.1"
+ "@edge-runtime/vm": "npm:3.1.7"
+ async-listen: "npm:3.0.1"
+ mri: "npm:1.2.0"
+ picocolors: "npm:1.0.0"
+ pretty-ms: "npm:7.0.1"
+ signal-exit: "npm:4.0.2"
+ time-span: "npm:4.0.0"
+ bin:
+ edge-runtime: dist/cli/index.js
+ checksum: 321e1e76e5a4d12ab0bfbd341329abba33bf7fbd82a1975a04cbb671eaa1d775c8bb59204d34ed0443ac022eed9d1b2a042a2c089d4d5d61a5b8232dc1764cf4
+ languageName: node
+ linkType: hard
+
"edit-json-file@npm:^1.7.0":
- version: 1.7.0
- resolution: "edit-json-file@npm:1.7.0"
+ version: 1.8.0
+ resolution: "edit-json-file@npm:1.8.0"
dependencies:
find-value: "npm:^1.0.12"
iterate-object: "npm:^1.3.4"
r-json: "npm:^1.2.10"
set-value: "npm:^4.1.0"
w-json: "npm:^1.3.10"
- checksum: 35ddfc8ec2df4d25f16f5cd96fca33b0ffd83201d0f1f5bc0e926d6e10cf66b01d057bd7b2fa31edc1cfaa22a0cc84f112b01a571ad50e732d47789eab562fd2
+ checksum: 611e62414a15b1d6e44261d1fd370fa6f080f4a93ff6ee4ec0b103a545984dbb0aa8a68f2c7856cbb63948c2c2df6b2b12d98140d3e040f3ce12cffdc51de7a3
languageName: node
linkType: hard
@@ -12365,9 +13056,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.4.601":
- version: 1.4.616
- resolution: "electron-to-chromium@npm:1.4.616"
- checksum: 7793eda8ebfb66621300339fe830bc2b1658530b9e295a7aa37ef7fc1ca7defab4070cf407977f9112d784004a8e2efdcceb793d7e0a81096a7eb06c844db0ba
+ version: 1.4.628
+ resolution: "electron-to-chromium@npm:1.4.628"
+ checksum: 724865c625f4caca40c3069fe95a32ae49a8e18f5949544ab107ec4533ecc8d3ba2552fbb6418197d7b4c1a50bca7cd1aa637695829f31029a213594d4b7828f
languageName: node
linkType: hard
@@ -12449,6 +13140,15 @@ __metadata:
languageName: node
linkType: hard
+"end-of-stream@npm:~1.1.0":
+ version: 1.1.0
+ resolution: "end-of-stream@npm:1.1.0"
+ dependencies:
+ once: "npm:~1.3.0"
+ checksum: 9fa637e259e50e5e3634e8e14064a183bd0d407733594631362f9df596409739bef5f7064840e6725212a9edc8b4a70a5a3088ac423e8564f9dc183dd098c719
+ languageName: node
+ linkType: hard
+
"enhanced-resolve@npm:^5.15.0":
version: 5.15.0
resolution: "enhanced-resolve@npm:5.15.0"
@@ -12459,6 +13159,16 @@ __metadata:
languageName: node
linkType: hard
+"enquirer@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "enquirer@npm:2.4.1"
+ dependencies:
+ ansi-colors: "npm:^4.1.1"
+ strip-ansi: "npm:^6.0.1"
+ checksum: b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a
+ languageName: node
+ linkType: hard
+
"ent@npm:^2.2.0":
version: 2.2.0
resolution: "ent@npm:2.2.0"
@@ -12666,19 +13376,230 @@ __metadata:
languageName: node
linkType: hard
-"esbuild-register@npm:^3.4.2":
- version: 3.5.0
- resolution: "esbuild-register@npm:3.5.0"
- dependencies:
- debug: "npm:^4.3.4"
- peerDependencies:
- esbuild: ">=0.12 <1"
- checksum: af6874ce9b5fcdb0974c9d9e9f16530a5b9bd80c699b2ba9d7ace33439c1af1be6948535c775d9a6439e2bf23fb31cfd54ac882cfa38308a3f182039f4b98a01
+"esbuild-android-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-android-64@npm:0.14.47"
+ conditions: os=android & cpu=x64
languageName: node
linkType: hard
-"esbuild@npm:^0.19.5, esbuild@npm:~0.19.3":
- version: 0.19.11
+"esbuild-android-arm64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-android-arm64@npm:0.14.47"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-darwin-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-darwin-64@npm:0.14.47"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-darwin-arm64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-darwin-arm64@npm:0.14.47"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-freebsd-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-freebsd-64@npm:0.14.47"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-freebsd-arm64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-freebsd-arm64@npm:0.14.47"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-32@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-32@npm:0.14.47"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-64@npm:0.14.47"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-arm64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-arm64@npm:0.14.47"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-arm@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-arm@npm:0.14.47"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-mips64le@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-mips64le@npm:0.14.47"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-ppc64le@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-ppc64le@npm:0.14.47"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-riscv64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-riscv64@npm:0.14.47"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"esbuild-linux-s390x@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-linux-s390x@npm:0.14.47"
+ conditions: os=linux & cpu=s390x
+ languageName: node
+ linkType: hard
+
+"esbuild-netbsd-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-netbsd-64@npm:0.14.47"
+ conditions: os=netbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-openbsd-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-openbsd-64@npm:0.14.47"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-register@npm:^3.4.2":
+ version: 3.5.0
+ resolution: "esbuild-register@npm:3.5.0"
+ dependencies:
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ esbuild: ">=0.12 <1"
+ checksum: af6874ce9b5fcdb0974c9d9e9f16530a5b9bd80c699b2ba9d7ace33439c1af1be6948535c775d9a6439e2bf23fb31cfd54ac882cfa38308a3f182039f4b98a01
+ languageName: node
+ linkType: hard
+
+"esbuild-sunos-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-sunos-64@npm:0.14.47"
+ conditions: os=sunos & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-windows-32@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-windows-32@npm:0.14.47"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"esbuild-windows-64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-windows-64@npm:0.14.47"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"esbuild-windows-arm64@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild-windows-arm64@npm:0.14.47"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:0.14.47":
+ version: 0.14.47
+ resolution: "esbuild@npm:0.14.47"
+ dependencies:
+ esbuild-android-64: "npm:0.14.47"
+ esbuild-android-arm64: "npm:0.14.47"
+ esbuild-darwin-64: "npm:0.14.47"
+ esbuild-darwin-arm64: "npm:0.14.47"
+ esbuild-freebsd-64: "npm:0.14.47"
+ esbuild-freebsd-arm64: "npm:0.14.47"
+ esbuild-linux-32: "npm:0.14.47"
+ esbuild-linux-64: "npm:0.14.47"
+ esbuild-linux-arm: "npm:0.14.47"
+ esbuild-linux-arm64: "npm:0.14.47"
+ esbuild-linux-mips64le: "npm:0.14.47"
+ esbuild-linux-ppc64le: "npm:0.14.47"
+ esbuild-linux-riscv64: "npm:0.14.47"
+ esbuild-linux-s390x: "npm:0.14.47"
+ esbuild-netbsd-64: "npm:0.14.47"
+ esbuild-openbsd-64: "npm:0.14.47"
+ esbuild-sunos-64: "npm:0.14.47"
+ esbuild-windows-32: "npm:0.14.47"
+ esbuild-windows-64: "npm:0.14.47"
+ esbuild-windows-arm64: "npm:0.14.47"
+ dependenciesMeta:
+ esbuild-android-64:
+ optional: true
+ esbuild-android-arm64:
+ optional: true
+ esbuild-darwin-64:
+ optional: true
+ esbuild-darwin-arm64:
+ optional: true
+ esbuild-freebsd-64:
+ optional: true
+ esbuild-freebsd-arm64:
+ optional: true
+ esbuild-linux-32:
+ optional: true
+ esbuild-linux-64:
+ optional: true
+ esbuild-linux-arm:
+ optional: true
+ esbuild-linux-arm64:
+ optional: true
+ esbuild-linux-mips64le:
+ optional: true
+ esbuild-linux-ppc64le:
+ optional: true
+ esbuild-linux-riscv64:
+ optional: true
+ esbuild-linux-s390x:
+ optional: true
+ esbuild-netbsd-64:
+ optional: true
+ esbuild-openbsd-64:
+ optional: true
+ esbuild-sunos-64:
+ optional: true
+ esbuild-windows-32:
+ optional: true
+ esbuild-windows-64:
+ optional: true
+ esbuild-windows-arm64:
+ optional: true
+ bin:
+ esbuild: bin/esbuild
+ checksum: 8ef12c03564a789f95a316e5ba05a6c47386cbeea628202348bd693fe4d6dd359e0698b3cc42810e872d5ddc9d51dc7d7dd14d02cbed33c52d8225ed41c14166
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:^0.19.11, esbuild@npm:^0.19.5, esbuild@npm:~0.19.10":
+ version: 0.19.11
resolution: "esbuild@npm:0.19.11"
dependencies:
"@esbuild/aix-ppc64": "npm:0.19.11"
@@ -12924,8 +13845,8 @@ __metadata:
linkType: hard
"eslint-plugin-n@npm:^16.0.2":
- version: 16.6.0
- resolution: "eslint-plugin-n@npm:16.6.0"
+ version: 16.6.2
+ resolution: "eslint-plugin-n@npm:16.6.2"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
builtins: "npm:^5.0.1"
@@ -12940,13 +13861,13 @@ __metadata:
semver: "npm:^7.5.3"
peerDependencies:
eslint: ">=7.0.0"
- checksum: 2903714c726b89bf3c107c0ec9fe2bc441d5ac0a8b4dce6d259c57a8777c6629a04a3d8fafd6f542c90d9637a75d53024b887fc0466c4c3ce98dc3d3d11481f5
+ checksum: e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a
languageName: node
linkType: hard
"eslint-plugin-prettier@npm:^5.0.0":
- version: 5.1.2
- resolution: "eslint-plugin-prettier@npm:5.1.2"
+ version: 5.1.3
+ resolution: "eslint-plugin-prettier@npm:5.1.3"
dependencies:
prettier-linter-helpers: "npm:^1.0.0"
synckit: "npm:^0.8.6"
@@ -12960,7 +13881,7 @@ __metadata:
optional: true
eslint-config-prettier:
optional: true
- checksum: 2d99eabbf6fb146fef85c84bd37acede2e26be6d908bf9efd663e6d7cb82cb6d9dfca9aab5f39bdc1c4987d5f88400f1756f5e8ac93db70cd1073ff1e873f2e4
+ checksum: 4f26a30444adc61ed692cdb5a9f7e8d9f5794f0917151051e66755ce032a08c3cc72c8b5d56101412e90f6d77035bd8194ea8731e9c16aacdd5ae345a8dae188
languageName: node
linkType: hard
@@ -13145,6 +14066,13 @@ __metadata:
languageName: node
linkType: hard
+"estree-walker@npm:2.0.2, estree-walker@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "estree-walker@npm:2.0.2"
+ checksum: b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2
+ languageName: node
+ linkType: hard
+
"esutils@npm:^2.0.2":
version: 2.0.3
resolution: "esutils@npm:2.0.3"
@@ -13152,7 +14080,7 @@ __metadata:
languageName: node
linkType: hard
-"etag@npm:~1.8.1":
+"etag@npm:1.8.1, etag@npm:~1.8.1":
version: 1.8.1
resolution: "etag@npm:1.8.1"
checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff
@@ -13180,6 +14108,13 @@ __metadata:
languageName: node
linkType: hard
+"events-intercept@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "events-intercept@npm:2.0.0"
+ checksum: 735482c7e306e9fe3d49ed1a17a5a0226b96f3f1a8fd13ec1e40ba8af3ab9f0aa136c156680081f4633545832a34e1b1961f2a35d2d0e1f3f4698a532a02a816
+ languageName: node
+ linkType: hard
+
"events@npm:^3.2.0":
version: 3.3.0
resolution: "events@npm:3.3.0"
@@ -13194,6 +14129,24 @@ __metadata:
languageName: node
linkType: hard
+"execa@npm:3.2.0":
+ version: 3.2.0
+ resolution: "execa@npm:3.2.0"
+ dependencies:
+ cross-spawn: "npm:^7.0.0"
+ get-stream: "npm:^5.0.0"
+ human-signals: "npm:^1.1.1"
+ is-stream: "npm:^2.0.0"
+ merge-stream: "npm:^2.0.0"
+ npm-run-path: "npm:^4.0.0"
+ onetime: "npm:^5.1.0"
+ p-finally: "npm:^2.0.0"
+ signal-exit: "npm:^3.0.2"
+ strip-final-newline: "npm:^2.0.0"
+ checksum: dec18be505bca5880e89d2da3d08c789900beabe4cf42a2ec4219f4783e135e5176a4c9495b2fcd30d4e2be72253bb35dd2a5d5898e531df037211027a6699ba
+ languageName: node
+ linkType: hard
+
"execa@npm:7.2.0":
version: 7.2.0
resolution: "execa@npm:7.2.0"
@@ -13270,6 +14223,138 @@ __metadata:
languageName: node
linkType: hard
+"expo-app@workspace:apps/expo":
+ version: 0.0.0-use.local
+ resolution: "expo-app@workspace:apps/expo"
+ dependencies:
+ "@babel/core": "npm:^7.21.3"
+ "@babel/preset-typescript": "npm:^7.22.5"
+ "@babel/runtime": "npm:^7.21.0"
+ "@expo/match-media": "npm:^0.4.0"
+ "@expo/vector-icons": "npm:^13.0.0"
+ "@expo/webpack-config": "npm:^19.0.0"
+ "@fortawesome/fontawesome-svg-core": "npm:^6.3.0"
+ "@fortawesome/free-solid-svg-icons": "npm:^6.3.0"
+ "@fortawesome/react-fontawesome": "npm:^0.2.0"
+ "@hookform/resolvers": "npm:^3.3.1"
+ "@packrat/ui": "npm:*"
+ "@packrat/validations": "npm:*"
+ "@react-native-async-storage/async-storage": "npm:^1.21.0"
+ "@react-native-community/geolocation": "npm:^3.0.6"
+ "@react-native-community/netinfo": "npm:^9.4.1"
+ "@react-native-google-signin/google-signin": "npm:^9.0.2"
+ "@react-navigation/native": "npm:^6.1.6"
+ "@react-navigation/native-stack": "npm:^6.9.12"
+ "@reduxjs/toolkit": "npm:^1.9.3"
+ "@rnmapbox/maps": "npm:^10.0.0-beta.79"
+ "@tamagui/animations-react-native": "npm:^1.84.1"
+ "@tamagui/babel-plugin": "npm:^1.84.1"
+ "@tamagui/config": "npm:^1.84.1"
+ "@tamagui/font-inter": "npm:^1.84.1"
+ "@tamagui/linear-gradient": "npm:^1.84.1"
+ "@tamagui/lucide-icons": "npm:^1.84.1"
+ "@tamagui/progress": "npm:^1.84.1"
+ "@tamagui/react-native-media-driver": "npm:^1.84.1"
+ "@tamagui/shorthands": "npm:^1.84.1"
+ "@tamagui/switch": "npm:^1.84.1"
+ "@tamagui/theme-base": "npm:^1.84.1"
+ "@tamagui/themes": "npm:^1.84.1"
+ "@tanstack/eslint-plugin-query": "npm:^5.14.6"
+ "@tanstack/query-async-storage-persister": "npm:^4.36.1"
+ "@tanstack/react-query": "npm:^4.36.1"
+ "@tanstack/react-query-devtools": "npm:^4.36.1"
+ "@tanstack/react-query-persist-client": "npm:^4.36.1"
+ "@tmcw/togeojson": "npm:^5.7.0"
+ "@trpc/client": "npm:^10.38.5"
+ "@trpc/react-query": "npm:^10.38.5"
+ "@trpc/server": "npm:^10.38.5"
+ "@tsconfig/react-native": "npm:^3.0.2"
+ "@types/jest": "npm:^29.5.3"
+ "@types/lodash": "npm:^4.14.202"
+ "@types/node": "npm:^20.8.3"
+ "@types/react": "npm:^18.2.20"
+ "@types/react-native": "npm:^0.72.5"
+ "@types/react-test-renderer": "npm:^18.0.0"
+ "@types/server": "npm:^1.0.5"
+ "@typescript-eslint/eslint-plugin": "npm:^6.4.1"
+ app: "npm:*"
+ axios: "npm:^1.4.0"
+ babel-plugin-transform-inline-environment-variables: "npm:^0.4.4"
+ burnt: "npm:^0.12.1"
+ date-fns: "npm:^2.29.3"
+ dotenv: "npm:^16.0.3"
+ eslint: "npm:^8.47.0"
+ eslint-config-prettier: "npm:^9.0.0"
+ eslint-config-standard-with-typescript: "npm:^38.0.0"
+ eslint-plugin-import: "npm:^2.28.1"
+ eslint-plugin-n: "npm:^16.0.2"
+ eslint-plugin-prettier: "npm:^5.0.0"
+ eslint-plugin-promise: "npm:^6.1.1"
+ eslint-plugin-react: "npm:^7.33.2"
+ eslint-plugin-react-native: "npm:^4.0.0"
+ expo: "npm:49.0.15"
+ expo-application: "npm:~5.3.0"
+ expo-auth-session: "npm:~5.0.2"
+ expo-checkbox: "npm:~2.4.0"
+ expo-constants: "npm:~14.4.2"
+ expo-crypto: "npm:~12.4.1"
+ expo-document-picker: "npm:~11.5.4"
+ expo-file-system: "npm:~15.4.4"
+ expo-font: "npm:~11.4.0"
+ expo-image-picker: "npm:~14.3.2"
+ expo-linking: "npm:~5.0.2"
+ expo-location: "npm:~16.1.0"
+ expo-random: "npm:~13.2.0"
+ expo-router: "npm:^2.0.9"
+ expo-secure-store: "npm:~12.3.1"
+ expo-splash-screen: "npm:~0.20.5"
+ expo-standard-web-crypto: "npm:^1.7.0"
+ expo-status-bar: "npm:~1.6.0"
+ expo-system-ui: "npm:~2.4.0"
+ expo-web-browser: "npm:~12.3.2"
+ file-saver: "npm:^2.0.5"
+ firebase: "npm:^9.19.1"
+ fuse.js: "npm:^6.6.2"
+ lodash: "npm:^4.17.21"
+ mapbox-gl: "npm:1.13.3"
+ native-base: "npm:^3.4.28"
+ normalize-css-color: "npm:^1.0.2"
+ osmtogeojson: "npm:^3.0.0-beta.5"
+ prettier: "npm:^3.0.2"
+ react: "npm:18.2.0"
+ react-dom: "npm:^18.2.0"
+ react-hook-form: "npm:^7.46.1"
+ react-native: "npm:0.72.6"
+ react-native-dotenv: "npm:^3.4.8"
+ react-native-elements: "npm:^3.4.3"
+ react-native-flash-message: "npm:^0.4.2"
+ react-native-gesture-handler: "npm:~2.12.0"
+ react-native-google-places-autocomplete: "npm:^2.5.1"
+ react-native-paper: "npm:^5.10.6"
+ react-native-paper-dates: "npm:^0.18.12"
+ react-native-safe-area-context: "npm:^4.7.4"
+ react-native-screens: "npm:~3.22.0"
+ react-native-select-dropdown: "npm:^3.3.4"
+ react-native-svg: "npm:13.9.0"
+ react-native-table-component: "https://github.com/slice312/react-native-table-component.git"
+ react-native-vector-icons: "npm:^9.2.0"
+ react-native-web: "npm:~0.19.6"
+ react-native-webview: "npm:13.2.2"
+ react-redux: "npm:^9.0.4"
+ react-responsive: "npm:^9.0.2"
+ redux-persist: "npm:^6.0.0"
+ serve: "npm:^14.2.0"
+ server: "npm:*"
+ superjson: "npm:^2.0.0"
+ tamagui: "npm:^1.84.1"
+ togpx: "npm:^0.5.4"
+ typescript: "npm:^5.2.2"
+ uuid: "npm:3.4.0"
+ xmldom: "npm:^0.6.0"
+ zod: "npm:^3.22.2"
+ languageName: unknown
+ linkType: soft
+
"expo-application@npm:~5.3.0":
version: 5.3.1
resolution: "expo-application@npm:5.3.1"
@@ -13806,13 +14891,13 @@ __metadata:
linkType: hard
"fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.2":
- version: 4.3.2
- resolution: "fast-xml-parser@npm:4.3.2"
+ version: 4.3.3
+ resolution: "fast-xml-parser@npm:4.3.3"
dependencies:
strnum: "npm:^1.0.5"
bin:
fxparser: src/cli/cli.js
- checksum: cb3d9ad7d5508e7ec1e6ee4b4753f659c7b7c93c3eb76439cb03072532d07521d53a7e35f243b490dce3fcc16519415bf1f99c6a1004a6de1dccd3d3647c336f
+ checksum: 501de1f38d9d22c98b8f722fe27a3bb6907cf82a4e37639aa5702f725721424123a1a05a3cc19ec5f3c995ba65fadc7891b10d425eb0dc833580d32aff373777
languageName: node
linkType: hard
@@ -13874,6 +14959,15 @@ __metadata:
languageName: node
linkType: hard
+"fd-slicer@npm:~1.1.0":
+ version: 1.1.0
+ resolution: "fd-slicer@npm:1.1.0"
+ dependencies:
+ pend: "npm:~1.2.0"
+ checksum: db3e34fa483b5873b73f248e818f8a8b59a6427fd8b1436cd439c195fdf11e8659419404826059a642b57d18075c856d06d6a50a1413b714f12f833a9341ead3
+ languageName: node
+ linkType: hard
+
"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4":
version: 3.2.0
resolution: "fetch-blob@npm:3.2.0"
@@ -13916,6 +15010,13 @@ __metadata:
languageName: node
linkType: hard
+"file-uri-to-path@npm:1.0.0":
+ version: 1.0.0
+ resolution: "file-uri-to-path@npm:1.0.0"
+ checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144
+ languageName: node
+ linkType: hard
+
"fill-range@npm:^7.0.1":
version: 7.0.1
resolution: "fill-range@npm:7.0.1"
@@ -14138,9 +15239,9 @@ __metadata:
linkType: hard
"flow-parser@npm:0.*":
- version: 0.225.1
- resolution: "flow-parser@npm:0.225.1"
- checksum: 9de425b5f97bf25b632eafce5af5398fe04411d9f6247236801fd1a3709ba28b00c12d123e79fdb183952be135009f2594278cc3b7aea6d0b673397c7f4bfb26
+ version: 0.226.0
+ resolution: "flow-parser@npm:0.226.0"
+ checksum: d92248658fbf963131d98a2b8438b948391d2e6bfe23243ef81a2017adb080257072e21fc69f060189f0bae57b4d6abcbf2b118a76c3ef626c4712917c2e9010
languageName: node
linkType: hard
@@ -14158,13 +15259,13 @@ __metadata:
languageName: node
linkType: hard
-"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0":
- version: 1.15.3
- resolution: "follow-redirects@npm:1.15.3"
+"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.4":
+ version: 1.15.4
+ resolution: "follow-redirects@npm:1.15.4"
peerDependenciesMeta:
debug:
optional: true
- checksum: 60d98693f4976892f8c654b16ef6d1803887a951898857ab0cdc009570b1c06314ad499505b7a040ac5b98144939f8597766e5e6a6859c0945d157b473aa6f5f
+ checksum: 2e8f5f259a6b02dfa8dc199e08431848a7c3beed32eb4c19945966164a52c89f07b86c3afcc32ebe4279cf0a960520e45a63013d6350309c5ec90133c5d9351a
languageName: node
linkType: hard
@@ -14340,6 +15441,28 @@ __metadata:
languageName: node
linkType: hard
+"fs-extra@npm:11.1.0":
+ version: 11.1.0
+ resolution: "fs-extra@npm:11.1.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^6.0.1"
+ universalify: "npm:^2.0.0"
+ checksum: b3f4a411e221f3300cfed7f2c1fa3ea0538cc1688c4276ce38fc404e270526002c5a01a18f64f8dee5e2745f7c2e9ba188cb130240796da67a2a142b133b4b25
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:8.1.0, fs-extra@npm:^8.1.0, fs-extra@npm:~8.1.0":
+ version: 8.1.0
+ resolution: "fs-extra@npm:8.1.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^4.0.0"
+ universalify: "npm:^0.1.0"
+ checksum: 6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de
+ languageName: node
+ linkType: hard
+
"fs-extra@npm:9.0.0":
version: 9.0.0
resolution: "fs-extra@npm:9.0.0"
@@ -14363,17 +15486,6 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:^8.1.0, fs-extra@npm:~8.1.0":
- version: 8.1.0
- resolution: "fs-extra@npm:8.1.0"
- dependencies:
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^4.0.0"
- universalify: "npm:^0.1.0"
- checksum: 6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de
- languageName: node
- linkType: hard
-
"fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0":
version: 9.1.0
resolution: "fs-extra@npm:9.1.0"
@@ -14386,6 +15498,15 @@ __metadata:
languageName: node
linkType: hard
+"fs-minipass@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "fs-minipass@npm:1.2.7"
+ dependencies:
+ minipass: "npm:^2.6.0"
+ checksum: 6a2d39963eaad748164530ffab49606d0f3462c7867748521af3b7039d13689be533636d50a04e8ba6bd327d4d2e899d0907f8830d1161fe2db467d59cc46dc3
+ languageName: node
+ linkType: hard
+
"fs-minipass@npm:^2.0.0":
version: 2.1.0
resolution: "fs-minipass@npm:2.1.0"
@@ -14418,7 +15539,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2":
+"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
dependencies:
@@ -14428,7 +15549,17 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+"fsevents@npm:~2.1.2":
+ version: 2.1.3
+ resolution: "fsevents@npm:2.1.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: b604991f31d9ec772e278831bbe069eed8b6824b09b707eeb5c792ceb79fafa9db377981acf7555deab8f5818a75e5487d37b366f55e31d6ea62ea0e06fc777b
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
dependencies:
@@ -14437,6 +15568,15 @@ __metadata:
languageName: node
linkType: hard
+"fsevents@patch:fsevents@npm%3A~2.1.2#optional!builtin":
+ version: 2.1.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.1.3#optional!builtin::version=2.1.3&hash=31d12a"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
"function-bind@npm:^1.1.1, function-bind@npm:^1.1.2":
version: 1.1.2
resolution: "function-bind@npm:1.1.2"
@@ -14523,6 +15663,13 @@ __metadata:
languageName: node
linkType: hard
+"generic-pool@npm:3.4.2":
+ version: 3.4.2
+ resolution: "generic-pool@npm:3.4.2"
+ checksum: 9ce9a53160a6127569b206bdd27a087d2807eb4bc8407c20e75276919fb01de7714c578ff9a0d79000d48781c20e56e94737109e69e0130f18d80eb51fbd9cec
+ languageName: node
+ linkType: hard
+
"gensync@npm:^1.0.0-beta.2":
version: 1.0.0-beta.2
resolution: "gensync@npm:1.0.0-beta.2"
@@ -14625,6 +15772,15 @@ __metadata:
languageName: node
linkType: hard
+"get-stream@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "get-stream@npm:5.2.0"
+ dependencies:
+ pump: "npm:^3.0.0"
+ checksum: 13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb
+ languageName: node
+ linkType: hard
+
"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1":
version: 6.0.1
resolution: "get-stream@npm:6.0.1"
@@ -14642,7 +15798,7 @@ __metadata:
languageName: node
linkType: hard
-"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.7.0":
+"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2":
version: 4.7.2
resolution: "get-tsconfig@npm:4.7.2"
dependencies:
@@ -14674,7 +15830,7 @@ __metadata:
languageName: node
linkType: hard
-"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.0, glob-parent@npm:~5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
dependencies:
@@ -15200,9 +16356,9 @@ __metadata:
linkType: hard
"hono@npm:^3.9.1":
- version: 3.11.11
- resolution: "hono@npm:3.11.11"
- checksum: bcbb029d4723c39b7ba62eaee44b8c82d4c566dd95510ca4887167c2efafd6f94ab6a1d2f2a8a610e1a74bfcd06dcdd689f27209616e1b89db77484aed49ac2f
+ version: 3.12.1
+ resolution: "hono@npm:3.12.1"
+ checksum: 912b53edcb3919abb5614dfde188e267e93ecf8d2b2ca9859a53224302fce0c788e3c012b425ef5d1f9e7cf0429ea42f8de55868417d06bc9554bd424cf38548
languageName: node
linkType: hard
@@ -15317,6 +16473,19 @@ __metadata:
languageName: node
linkType: hard
+"http-errors@npm:1.7.3, http-errors@npm:~1.7.3":
+ version: 1.7.3
+ resolution: "http-errors@npm:1.7.3"
+ dependencies:
+ depd: "npm:~1.1.2"
+ inherits: "npm:2.0.4"
+ setprototypeof: "npm:1.1.1"
+ statuses: "npm:>= 1.5.0 < 2"
+ toidentifier: "npm:1.0.0"
+ checksum: 157cb95296118e9c37034f04d5c372916db03bcb6b1097caf693fbc9cf85ac881c8cbdf892140acb7ede6cad6a1a3dbf86a8031b2b127dc47bfc0600b3fda8a0
+ languageName: node
+ linkType: hard
+
"http-errors@npm:2.0.0":
version: 2.0.0
resolution: "http-errors@npm:2.0.0"
@@ -15330,6 +16499,16 @@ __metadata:
languageName: node
linkType: hard
+"http-errors@npm:~1.4.0":
+ version: 1.4.0
+ resolution: "http-errors@npm:1.4.0"
+ dependencies:
+ inherits: "npm:2.0.1"
+ statuses: "npm:>= 1.2.1 < 2"
+ checksum: e25e56567f696f38009bdeeebf6ad0b5706113f21ae2241d4f1438ce303182b649187c5a3b68c4c3a07cd4df7192d58d22186a0b491c638bf3a7ea2626448681
+ languageName: node
+ linkType: hard
+
"http-errors@npm:~1.6.2":
version: 1.6.3
resolution: "http-errors@npm:1.6.3"
@@ -15342,19 +16521,6 @@ __metadata:
languageName: node
linkType: hard
-"http-errors@npm:~1.7.3":
- version: 1.7.3
- resolution: "http-errors@npm:1.7.3"
- dependencies:
- depd: "npm:~1.1.2"
- inherits: "npm:2.0.4"
- setprototypeof: "npm:1.1.1"
- statuses: "npm:>= 1.5.0 < 2"
- toidentifier: "npm:1.0.0"
- checksum: 157cb95296118e9c37034f04d5c372916db03bcb6b1097caf693fbc9cf85ac881c8cbdf892140acb7ede6cad6a1a3dbf86a8031b2b127dc47bfc0600b3fda8a0
- languageName: node
- linkType: hard
-
"http-parser-js@npm:>=0.5.1":
version: 0.5.8
resolution: "http-parser-js@npm:0.5.8"
@@ -15477,6 +16643,13 @@ __metadata:
languageName: node
linkType: hard
+"human-signals@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "human-signals@npm:1.1.1"
+ checksum: 6a58224dffcef5588910b1028bda8623c9a7053460a1fe3367e61921a6b5f6b93aba30f323868a958f968d7de3f5f78421f11d4d9f7e9563b1bd2b00ed9a4deb
+ languageName: node
+ linkType: hard
+
"human-signals@npm:^2.1.0":
version: 2.1.0
resolution: "human-signals@npm:2.1.0"
@@ -15586,13 +16759,13 @@ __metadata:
linkType: hard
"image-size@npm:^1.0.2":
- version: 1.1.0
- resolution: "image-size@npm:1.1.0"
+ version: 1.1.1
+ resolution: "image-size@npm:1.1.1"
dependencies:
queue: "npm:6.0.2"
bin:
image-size: bin/image-size.js
- checksum: 7a56fd758bde2a96e1315b3078c7920e0307a241b563393ae27b97239964bce01553ee930d4334ae352e688f75182a8181dbbafaf56a133c2cefeb5cc45b737b
+ checksum: f28966dd3f6d4feccc4028400bb7e8047c28b073ab0aa90c7c53039288139dd416c6bc254a976d4bf61113d4bc84871786804113099701cbfe9ccf377effdb54
languageName: node
linkType: hard
@@ -15673,6 +16846,13 @@ __metadata:
languageName: node
linkType: hard
+"inherits@npm:2.0.1":
+ version: 2.0.1
+ resolution: "inherits@npm:2.0.1"
+ checksum: 37165f42e53627edc18d815654a79e7407e356adf480aab77db3a12c978e597f3af632cf0459472dd5a088bc21ee911020f544c0d3c23b45bcfd1cd92fe9e404
+ languageName: node
+ linkType: hard
+
"inherits@npm:2.0.3":
version: 2.0.3
resolution: "inherits@npm:2.0.3"
@@ -17186,6 +18366,16 @@ __metadata:
languageName: node
linkType: hard
+"json-schema-to-ts@npm:1.6.4":
+ version: 1.6.4
+ resolution: "json-schema-to-ts@npm:1.6.4"
+ dependencies:
+ "@types/json-schema": "npm:^7.0.6"
+ ts-toolbelt: "npm:^6.15.5"
+ checksum: 25aac2f56f1f4e614e965b6d5f20fb1f98a6cf6b3d0a1b93b9a004bac21a11ec3d972a85b37be969c81109d22096f8bca804a942edf6e49d8edb0b8fe6cded77
+ languageName: node
+ linkType: hard
+
"json-schema-traverse@npm:^0.3.0":
version: 0.3.1
resolution: "json-schema-traverse@npm:0.3.1"
@@ -17796,8 +18986,8 @@ __metadata:
linkType: hard
"langsmith@npm:~0.0.48":
- version: 0.0.53
- resolution: "langsmith@npm:0.0.53"
+ version: 0.0.57
+ resolution: "langsmith@npm:0.0.57"
dependencies:
"@types/uuid": "npm:^9.0.1"
commander: "npm:^10.0.1"
@@ -17806,7 +18996,7 @@ __metadata:
uuid: "npm:^9.0.0"
bin:
langsmith: dist/cli/main.cjs
- checksum: 0018b31a54167b57b74d6635f51bd6c38c6d9fecc486697b62eb6ef3b448270242e3093cf8ec79a55f6e74ebd6e6f3d05fe2d0ec9ae853f24f1650753ffdf452
+ checksum: ed4ab96640afd5ad65932d4ff7a55f28a0cf65983db1a4b2be53081071486e5c50b1cae9281e53306578d736577b1b686fc20fe5ffca54f0b27dbc4a52e19c1f
languageName: node
linkType: hard
@@ -17863,6 +19053,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-darwin-arm64@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-darwin-arm64@npm:1.22.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
"lightningcss-darwin-x64@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-darwin-x64@npm:1.19.0"
@@ -17870,6 +19067,20 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-darwin-x64@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-darwin-x64@npm:1.22.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-freebsd-x64@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-freebsd-x64@npm:1.22.1"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm-gnueabihf@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-linux-arm-gnueabihf@npm:1.19.0"
@@ -17877,6 +19088,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm-gnueabihf@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.22.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm64-gnu@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-linux-arm64-gnu@npm:1.19.0"
@@ -17884,6 +19102,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm64-gnu@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.22.1"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm64-musl@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-linux-arm64-musl@npm:1.19.0"
@@ -17891,6 +19116,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm64-musl@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-linux-arm64-musl@npm:1.22.1"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-x64-gnu@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-linux-x64-gnu@npm:1.19.0"
@@ -17898,6 +19130,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-x64-gnu@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-linux-x64-gnu@npm:1.22.1"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-x64-musl@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-linux-x64-musl@npm:1.19.0"
@@ -17905,6 +19144,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-x64-musl@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-linux-x64-musl@npm:1.22.1"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
"lightningcss-win32-x64-msvc@npm:1.19.0":
version: 1.19.0
resolution: "lightningcss-win32-x64-msvc@npm:1.19.0"
@@ -17912,6 +19158,50 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-win32-x64-msvc@npm:1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss-win32-x64-msvc@npm:1.22.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss@npm:^1.22.1":
+ version: 1.22.1
+ resolution: "lightningcss@npm:1.22.1"
+ dependencies:
+ detect-libc: "npm:^1.0.3"
+ lightningcss-darwin-arm64: "npm:1.22.1"
+ lightningcss-darwin-x64: "npm:1.22.1"
+ lightningcss-freebsd-x64: "npm:1.22.1"
+ lightningcss-linux-arm-gnueabihf: "npm:1.22.1"
+ lightningcss-linux-arm64-gnu: "npm:1.22.1"
+ lightningcss-linux-arm64-musl: "npm:1.22.1"
+ lightningcss-linux-x64-gnu: "npm:1.22.1"
+ lightningcss-linux-x64-musl: "npm:1.22.1"
+ lightningcss-win32-x64-msvc: "npm:1.22.1"
+ dependenciesMeta:
+ lightningcss-darwin-arm64:
+ optional: true
+ lightningcss-darwin-x64:
+ optional: true
+ lightningcss-freebsd-x64:
+ optional: true
+ lightningcss-linux-arm-gnueabihf:
+ optional: true
+ lightningcss-linux-arm64-gnu:
+ optional: true
+ lightningcss-linux-arm64-musl:
+ optional: true
+ lightningcss-linux-x64-gnu:
+ optional: true
+ lightningcss-linux-x64-musl:
+ optional: true
+ lightningcss-win32-x64-msvc:
+ optional: true
+ checksum: 8796a73e320c65a974870ad7f0574f6985c6a4d48408312d889739f235ec12ae7a9e0e165dc28fb6aa749237bfe3c5aa86e285032397e818f7afb56021cb172b
+ languageName: node
+ linkType: hard
+
"lightningcss@npm:~1.19.0":
version: 1.19.0
resolution: "lightningcss@npm:1.19.0"
@@ -19017,6 +20307,19 @@ __metadata:
languageName: node
linkType: hard
+"micro@npm:9.3.5-canary.3":
+ version: 9.3.5-canary.3
+ resolution: "micro@npm:9.3.5-canary.3"
+ dependencies:
+ arg: "npm:4.1.0"
+ content-type: "npm:1.0.4"
+ raw-body: "npm:2.4.1"
+ bin:
+ micro: ./bin/micro.js
+ checksum: 1107057ab38c706445eb13ed4ce2ae4f22f213b6e897a704faeadce0f11e53e6871c85f797875c84ca15fe0241599f9771a5fa9cd011c83f8cffff45567f25ce
+ languageName: node
+ linkType: hard
+
"micromatch@npm:4.0.5, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
version: 4.0.5
resolution: "micromatch@npm:4.0.5"
@@ -19141,13 +20444,13 @@ __metadata:
linkType: hard
"mini-css-extract-plugin@npm:^2.5.2":
- version: 2.7.6
- resolution: "mini-css-extract-plugin@npm:2.7.6"
+ version: 2.7.7
+ resolution: "mini-css-extract-plugin@npm:2.7.7"
dependencies:
schema-utils: "npm:^4.0.0"
peerDependencies:
webpack: ^5.0.0
- checksum: 1f718bfdcb7c2bf5e4336f694e5576432149d63f9dacaf94eae38ad046534050471a712a2d1bedf95e1722a2d3b56c3361d7352849e802e4875e716885e952c3
+ checksum: 55e9cb89a648e9d493dd66eb54cbf02783c6623d0e332ddb4c2374891fcd8de051d5f97473e40478eb2e091ea32fc9ac84c3cd583b445df9f444cc6b7483e1b1
languageName: node
linkType: hard
@@ -19270,6 +20573,16 @@ __metadata:
languageName: node
linkType: hard
+"minipass@npm:^2.6.0, minipass@npm:^2.9.0":
+ version: 2.9.0
+ resolution: "minipass@npm:2.9.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.2"
+ yallist: "npm:^3.0.0"
+ checksum: fdd1a77996c184991f8d2ce7c5b3979bec624e2a3225e2e1e140c4038fd65873d7eb90fb29779f8733735a8827b2686f283871a0c74c908f4f7694c56fa8dadf
+ languageName: node
+ linkType: hard
+
"minipass@npm:^3.0.0, minipass@npm:^3.1.1":
version: 3.3.6
resolution: "minipass@npm:3.3.6"
@@ -19293,6 +20606,15 @@ __metadata:
languageName: node
linkType: hard
+"minizlib@npm:^1.3.3":
+ version: 1.3.3
+ resolution: "minizlib@npm:1.3.3"
+ dependencies:
+ minipass: "npm:^2.9.0"
+ checksum: 9c2c47e5687d7f896431a9b5585988ef72f848b56c6a974c9489534e8f619388d500d986ef82e1c13aedd46f3a0e81b6a88110cb1b27de7524cc8dabe8885e17
+ languageName: node
+ linkType: hard
+
"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
version: 2.1.2
resolution: "minizlib@npm:2.1.2"
@@ -19303,7 +20625,7 @@ __metadata:
languageName: node
linkType: hard
-"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.1":
+"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5, mkdirp@npm:~0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
dependencies:
@@ -19494,8 +20816,8 @@ __metadata:
linkType: hard
"mongoose@npm:*":
- version: 8.0.3
- resolution: "mongoose@npm:8.0.3"
+ version: 8.0.4
+ resolution: "mongoose@npm:8.0.4"
dependencies:
bson: "npm:^6.2.0"
kareem: "npm:2.5.1"
@@ -19504,13 +20826,13 @@ __metadata:
mquery: "npm:5.0.0"
ms: "npm:2.1.3"
sift: "npm:16.0.1"
- checksum: d0eb837c675721a8bf4e0536af0f4526a22341bed7143d5543663b3132adfed1ed04ad94277b177285899e6a999bbcce7702d7a34000ec67d1db855c2c31c0aa
+ checksum: 3d0b072da7c89e7d99ca1d63f18e74278a8306380692dcff6fb02efd5ea0ec66e03a685ff6168f7e049fd4a407b24b22faafc5c13c69d09651619e1efdb1deb8
languageName: node
linkType: hard
"mongoose@npm:^7.4.0":
- version: 7.6.7
- resolution: "mongoose@npm:7.6.7"
+ version: 7.6.8
+ resolution: "mongoose@npm:7.6.8"
dependencies:
bson: "npm:^5.5.0"
kareem: "npm:2.5.1"
@@ -19519,7 +20841,7 @@ __metadata:
mquery: "npm:5.0.0"
ms: "npm:2.1.3"
sift: "npm:16.0.1"
- checksum: 11daa294a65d1c3e31fea98319b9aef59f86f72e5d46bcd63746d6035bc49065718ad70503c0ef482fb4037ded769fcaa2066906171d2783509d9b80cd3f8c82
+ checksum: 1bebf95b7c29ee2070cbe27a4dad5075ca481c9c819f0d2119dfec684f05ca4d3d74840c4bf4a7f3d6b2785004e73b2759984ae07c0d15c7e0b787e69cbb8602
languageName: node
linkType: hard
@@ -19563,6 +20885,13 @@ __metadata:
languageName: node
linkType: hard
+"mri@npm:1.2.0":
+ version: 1.2.0
+ resolution: "mri@npm:1.2.0"
+ checksum: 6775a1d2228bb9d191ead4efc220bd6be64f943ad3afd4dcb3b3ac8fc7b87034443f666e38805df38e8d047b29f910c3cc7810da0109af83e42c82c73bd3f6bc
+ languageName: node
+ linkType: hard
+
"ms@npm:2.0.0":
version: 2.0.0
resolution: "ms@npm:2.0.0"
@@ -19570,6 +20899,13 @@ __metadata:
languageName: node
linkType: hard
+"ms@npm:2.1.1":
+ version: 2.1.1
+ resolution: "ms@npm:2.1.1"
+ checksum: 0078a23cd916a9a7435c413caa14c57d4b4f6e2470e0ab554b6964163c8a4436448ac7ae020e883685475da6b6796cc396b670f579cb275db288a21e3e57721e
+ languageName: node
+ linkType: hard
+
"ms@npm:2.1.2":
version: 2.1.2
resolution: "ms@npm:2.1.2"
@@ -19684,7 +21020,7 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.1.23, nanoid@npm:^3.3.7":
+"nanoid@npm:^3.1.23, nanoid@npm:^3.3.6, nanoid@npm:^3.3.7":
version: 3.3.7
resolution: "nanoid@npm:3.3.7"
bin:
@@ -19781,6 +21117,83 @@ __metadata:
languageName: node
linkType: hard
+"next-app@workspace:apps/next":
+ version: 0.0.0-use.local
+ resolution: "next-app@workspace:apps/next"
+ dependencies:
+ "@expo/next-adapter": "npm:5.0.2"
+ "@tamagui/config": "npm:^1.84.1"
+ "@tamagui/next-theme": "npm:^1.84.1"
+ "@types/node": "npm:^20.8.3"
+ app: "npm:*"
+ next: "npm:^13.5.2"
+ raf: "npm:^3.4.1"
+ react: "npm:^18.2.0"
+ react-dom: "npm:^18.2.0"
+ react-native: "npm:0.72.6"
+ react-native-web: "npm:~0.19.6"
+ react-native-web-lite: "npm:^1.84.1"
+ setimmediate: "npm:^1.0.5"
+ tamagui: "npm:^1.84.1"
+ vercel: "npm:latest"
+ languageName: unknown
+ linkType: soft
+
+"next@npm:^13.5.2":
+ version: 13.5.6
+ resolution: "next@npm:13.5.6"
+ dependencies:
+ "@next/env": "npm:13.5.6"
+ "@next/swc-darwin-arm64": "npm:13.5.6"
+ "@next/swc-darwin-x64": "npm:13.5.6"
+ "@next/swc-linux-arm64-gnu": "npm:13.5.6"
+ "@next/swc-linux-arm64-musl": "npm:13.5.6"
+ "@next/swc-linux-x64-gnu": "npm:13.5.6"
+ "@next/swc-linux-x64-musl": "npm:13.5.6"
+ "@next/swc-win32-arm64-msvc": "npm:13.5.6"
+ "@next/swc-win32-ia32-msvc": "npm:13.5.6"
+ "@next/swc-win32-x64-msvc": "npm:13.5.6"
+ "@swc/helpers": "npm:0.5.2"
+ busboy: "npm:1.6.0"
+ caniuse-lite: "npm:^1.0.30001406"
+ postcss: "npm:8.4.31"
+ styled-jsx: "npm:5.1.1"
+ watchpack: "npm:2.4.0"
+ peerDependencies:
+ "@opentelemetry/api": ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ dependenciesMeta:
+ "@next/swc-darwin-arm64":
+ optional: true
+ "@next/swc-darwin-x64":
+ optional: true
+ "@next/swc-linux-arm64-gnu":
+ optional: true
+ "@next/swc-linux-arm64-musl":
+ optional: true
+ "@next/swc-linux-x64-gnu":
+ optional: true
+ "@next/swc-linux-x64-musl":
+ optional: true
+ "@next/swc-win32-arm64-msvc":
+ optional: true
+ "@next/swc-win32-ia32-msvc":
+ optional: true
+ "@next/swc-win32-x64-msvc":
+ optional: true
+ peerDependenciesMeta:
+ "@opentelemetry/api":
+ optional: true
+ sass:
+ optional: true
+ bin:
+ next: dist/bin/next
+ checksum: ec6defc7958b575d93306a2dcb05b7b14e27474e226ec350f412d03832407a5ae7139c21f7c7437b93cca2c8a79d7197c468308d82a903b2a86d579f84ccac9f
+ languageName: node
+ linkType: hard
+
"nice-napi@npm:^1.0.2":
version: 1.0.2
resolution: "nice-napi@npm:1.0.2"
@@ -19880,6 +21293,20 @@ __metadata:
languageName: node
linkType: hard
+"node-fetch@npm:2.6.9":
+ version: 2.6.9
+ resolution: "node-fetch@npm:2.6.9"
+ dependencies:
+ whatwg-url: "npm:^5.0.0"
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 4d04273c97e3829b3fb070b9b2c14c9f6ecff9afd1d3d8043fb39d1d2440b23e2ddbdbab1b2f879bf71fa23275bf5711e777256e5784d1852333965a6cea38ab
+ languageName: node
+ linkType: hard
+
"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
@@ -19924,13 +21351,13 @@ __metadata:
linkType: hard
"node-gyp-build@npm:^4.2.2":
- version: 4.7.1
- resolution: "node-gyp-build@npm:4.7.1"
+ version: 4.8.0
+ resolution: "node-gyp-build@npm:4.8.0"
bin:
node-gyp-build: bin.js
node-gyp-build-optional: optional.js
node-gyp-build-test: build-test.js
- checksum: 3f6780a24dc7f6c47870ee1095a3f88aca9ca9c156dfdc390aee8f320fe94ebf8b91a361edd62aff7bf2eae469e25800378ed97533134d8580a8b9bdae75994c
+ checksum: 80f410ab412df38e84171d3634a5716b6c6f14ecfa4eb971424d289381fb76f8bcbe1b666419ceb2c81060e558fd7c6d70cc0f60832bcca6a1559098925d9657
languageName: node
linkType: hard
@@ -20029,9 +21456,9 @@ __metadata:
linkType: hard
"nodemailer@npm:^6.9.1":
- version: 6.9.7
- resolution: "nodemailer@npm:6.9.7"
- checksum: 32b6e6c3f5e0ab6c5fa796934fee397e8b520f6d782fc41d8bd5aaf72a2e757564b8e7e7f7aa02fcf0ba73a83d364bdb923c2dbb76a32ac87a5c628d1bde03df
+ version: 6.9.8
+ resolution: "nodemailer@npm:6.9.8"
+ checksum: 8c22b671bde4d507b6585758a323111aa2f7c97e0720fb91a645f1dee1da6661cdc4004bc42c63c95c712e7b1f7287518c623f9ac92e590f85b4d3f0f2ff7f65
languageName: node
linkType: hard
@@ -20148,7 +21575,7 @@ __metadata:
languageName: node
linkType: hard
-"npm-run-path@npm:^4.0.1":
+"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1":
version: 4.0.1
resolution: "npm-run-path@npm:4.0.1"
dependencies:
@@ -20443,6 +21870,15 @@ __metadata:
languageName: node
linkType: hard
+"once@npm:~1.3.0":
+ version: 1.3.3
+ resolution: "once@npm:1.3.3"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 8e832de08b1d73b470e01690c211cb4fcefccab1fd1bd19e706d572d74d3e9b7e38a8bfcdabdd364f9f868757d9e8e5812a59817dc473eaf698ff3bfae2219f2
+ languageName: node
+ linkType: hard
+
"onetime@npm:^2.0.0":
version: 2.0.1
resolution: "onetime@npm:2.0.1"
@@ -20501,8 +21937,8 @@ __metadata:
linkType: hard
"openai@npm:^4.19.0":
- version: 4.24.1
- resolution: "openai@npm:4.24.1"
+ version: 4.24.3
+ resolution: "openai@npm:4.24.3"
dependencies:
"@types/node": "npm:^18.11.18"
"@types/node-fetch": "npm:^2.6.4"
@@ -20515,7 +21951,7 @@ __metadata:
web-streams-polyfill: "npm:^3.2.1"
bin:
openai: bin/cli
- checksum: 30769c66e62129bfe0e5caedb760d9885019cf69bea9d8bcd370e88b6c32311c81a4d895e84ada96da035b6710dd880d67b747a630369c4e3c2b2a08bc8484e9
+ checksum: 9ef9b67a4b298486ad27ec767be1b1da9eb5878ed99ed470678ad428a033301f1989ed215f6b7ca076d12175012fcb532f4e9881271629b82e5c1a36d6b26ce5
languageName: node
linkType: hard
@@ -20648,6 +22084,13 @@ __metadata:
languageName: node
linkType: hard
+"os-paths@npm:^4.0.1":
+ version: 4.4.0
+ resolution: "os-paths@npm:4.4.0"
+ checksum: 696597dfc85b0ed565672956c388f76d004a0e963fcf59fca55e8f73c57bc61e7594e200076844007f5a97781f4adfee3d268d389a4be22cc2e299aa241e2746
+ languageName: node
+ linkType: hard
+
"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2":
version: 1.0.2
resolution: "os-tmpdir@npm:1.0.2"
@@ -20723,6 +22166,13 @@ __metadata:
languageName: node
linkType: hard
+"p-finally@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "p-finally@npm:2.0.1"
+ checksum: 6306a2851c3b28f8b603624f395ae84dce76970498fed8aa6aae2d930595053746edf1e4ee0c4b78a97410d84aa4504d63179f5310d555511ecd226f53ed1e8e
+ languageName: node
+ linkType: hard
+
"p-is-promise@npm:^2.0.0":
version: 2.1.0
resolution: "p-is-promise@npm:2.1.0"
@@ -20847,143 +22297,14 @@ __metadata:
check-dependency-version-consistency: "npm:^4.1.0"
cross-env: "npm:^7.0.3"
dotenv-cli: "npm:^7.3.0"
+ enquirer: "npm:^2.4.1"
+ eslint: "npm:^8.47.0"
husky: "npm:^8.0.0"
lint-staged: "npm:^14.0.1"
typescript: "npm:^5.2.2"
languageName: unknown
linkType: soft
-"packrat@workspace:client":
- version: 0.0.0-use.local
- resolution: "packrat@workspace:client"
- dependencies:
- "@babel/core": "npm:^7.21.3"
- "@babel/preset-typescript": "npm:^7.22.5"
- "@babel/runtime": "npm:^7.21.0"
- "@expo/match-media": "npm:^0.4.0"
- "@expo/vector-icons": "npm:^13.0.0"
- "@expo/webpack-config": "npm:^19.0.0"
- "@fortawesome/fontawesome-svg-core": "npm:^6.3.0"
- "@fortawesome/free-solid-svg-icons": "npm:^6.3.0"
- "@fortawesome/react-fontawesome": "npm:^0.2.0"
- "@hookform/resolvers": "npm:^3.3.1"
- "@packrat/ui": "npm:*"
- "@packrat/validations": "npm:*"
- "@react-native-async-storage/async-storage": "npm:^1.21.0"
- "@react-native-community/geolocation": "npm:^3.0.6"
- "@react-native-community/netinfo": "npm:^9.4.1"
- "@react-native-google-signin/google-signin": "npm:^9.0.2"
- "@react-navigation/native": "npm:^6.1.6"
- "@react-navigation/native-stack": "npm:^6.9.12"
- "@reduxjs/toolkit": "npm:^1.9.3"
- "@rnmapbox/maps": "npm:^10.0.0-beta.79"
- "@tamagui/animations-react-native": "npm:1.79.14"
- "@tamagui/babel-plugin": "npm:1.79.14"
- "@tamagui/config": "npm:1.79.14"
- "@tamagui/font-inter": "npm:1.79.14"
- "@tamagui/linear-gradient": "npm:1.79.14"
- "@tamagui/lucide-icons": "npm:1.79.14"
- "@tamagui/progress": "npm:1.79.14"
- "@tamagui/react-native-media-driver": "npm:1.79.14"
- "@tamagui/shorthands": "npm:1.79.14"
- "@tamagui/switch": "npm:1.79.14"
- "@tamagui/theme-base": "npm:1.79.14"
- "@tamagui/themes": "npm:1.79.14"
- "@tanstack/eslint-plugin-query": "npm:^5.14.6"
- "@tanstack/query-async-storage-persister": "npm:^4.36.1"
- "@tanstack/react-query": "npm:^4.36.1"
- "@tanstack/react-query-devtools": "npm:^4.36.1"
- "@tanstack/react-query-persist-client": "npm:^4.36.1"
- "@tmcw/togeojson": "npm:^5.7.0"
- "@trpc/client": "npm:^10.38.5"
- "@trpc/react-query": "npm:^10.38.5"
- "@trpc/server": "npm:^10.38.5"
- "@tsconfig/react-native": "npm:^3.0.2"
- "@types/jest": "npm:^29.5.3"
- "@types/lodash": "npm:^4.14.202"
- "@types/node": "npm:^20.8.3"
- "@types/react": "npm:^18.2.20"
- "@types/react-native": "npm:^0.72.5"
- "@types/react-test-renderer": "npm:^18.0.0"
- "@types/server": "npm:^1.0.5"
- "@typescript-eslint/eslint-plugin": "npm:^6.4.1"
- axios: "npm:^1.4.0"
- babel-plugin-transform-inline-environment-variables: "npm:^0.4.4"
- burnt: "npm:^0.12.1"
- date-fns: "npm:^2.29.3"
- dotenv: "npm:^16.0.3"
- eslint: "npm:^8.47.0"
- eslint-config-prettier: "npm:^9.0.0"
- eslint-config-standard-with-typescript: "npm:^38.0.0"
- eslint-plugin-import: "npm:^2.28.1"
- eslint-plugin-n: "npm:^16.0.2"
- eslint-plugin-prettier: "npm:^5.0.0"
- eslint-plugin-promise: "npm:^6.1.1"
- eslint-plugin-react: "npm:^7.33.2"
- eslint-plugin-react-native: "npm:^4.0.0"
- expo: "npm:49.0.15"
- expo-application: "npm:~5.3.0"
- expo-auth-session: "npm:~5.0.2"
- expo-checkbox: "npm:~2.4.0"
- expo-constants: "npm:~14.4.2"
- expo-crypto: "npm:~12.4.1"
- expo-document-picker: "npm:~11.5.4"
- expo-file-system: "npm:~15.4.4"
- expo-font: "npm:~11.4.0"
- expo-image-picker: "npm:~14.3.2"
- expo-linking: "npm:~5.0.2"
- expo-location: "npm:~16.1.0"
- expo-random: "npm:~13.2.0"
- expo-router: "npm:^2.0.9"
- expo-secure-store: "npm:~12.3.1"
- expo-splash-screen: "npm:~0.20.5"
- expo-standard-web-crypto: "npm:^1.7.0"
- expo-status-bar: "npm:~1.6.0"
- expo-system-ui: "npm:~2.4.0"
- expo-web-browser: "npm:~12.3.2"
- file-saver: "npm:^2.0.5"
- firebase: "npm:^9.19.1"
- fuse.js: "npm:^6.6.2"
- lodash: "npm:^4.17.21"
- mapbox-gl: "npm:1.13.3"
- native-base: "npm:^3.4.28"
- normalize-css-color: "npm:^1.0.2"
- osmtogeojson: "npm:^3.0.0-beta.5"
- prettier: "npm:^3.0.2"
- react: "npm:18.2.0"
- react-dom: "npm:^18.2.0"
- react-hook-form: "npm:^7.46.1"
- react-native: "npm:0.72.6"
- react-native-dotenv: "npm:^3.4.8"
- react-native-elements: "npm:^3.4.3"
- react-native-flash-message: "npm:^0.4.2"
- react-native-gesture-handler: "npm:~2.12.0"
- react-native-google-places-autocomplete: "npm:^2.5.1"
- react-native-paper: "npm:^5.10.6"
- react-native-paper-dates: "npm:^0.18.12"
- react-native-safe-area-context: "npm:^4.7.4"
- react-native-screens: "npm:~3.22.0"
- react-native-select-dropdown: "npm:^3.3.4"
- react-native-svg: "npm:13.9.0"
- react-native-table-component: "https://github.com/slice312/react-native-table-component.git"
- react-native-vector-icons: "npm:^9.2.0"
- react-native-web: "npm:~0.19.6"
- react-native-webview: "npm:13.2.2"
- react-redux: "npm:^9.0.4"
- react-responsive: "npm:^9.0.2"
- redux-persist: "npm:^6.0.0"
- serve: "npm:^14.2.0"
- server: "npm:*"
- superjson: "npm:1.10.0"
- tamagui: "npm:1.79.14"
- togpx: "npm:^0.5.4"
- typescript: "npm:^5.2.2"
- uuid: "npm:3.4.0"
- xmldom: "npm:^0.6.0"
- zod: "npm:^3.22.2"
- languageName: unknown
- linkType: soft
-
"pako@npm:^1.0.3":
version: 1.0.11
resolution: "pako@npm:1.0.11"
@@ -21041,6 +22362,13 @@ __metadata:
languageName: node
linkType: hard
+"parse-ms@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "parse-ms@npm:2.1.0"
+ checksum: 517eab80cdb9df6ae22a8fad944bfb4289482699bcde5211a1c127091dfea33c3dcb217246b188865fc32e998bcee815bfa4a863f41e3b2d0bcc69f34ef1a543
+ languageName: node
+ linkType: hard
+
"parse-png@npm:^2.1.0":
version: 2.1.0
resolution: "parse-png@npm:2.1.0"
@@ -21126,7 +22454,7 @@ __metadata:
languageName: node
linkType: hard
-"path-browserify@npm:^1.0.0":
+"path-browserify@npm:^1.0.0, path-browserify@npm:^1.0.1":
version: 1.0.1
resolution: "path-browserify@npm:1.0.1"
checksum: 7e7368a5207e7c6b9051ef045711d0dc3c2b6203e96057e408e6e74d09f383061010d2be95cb8593fe6258a767c3e9fc6b2bfc7ce8d48ae8c3d9f6994cca9ad8
@@ -21182,6 +22510,16 @@ __metadata:
languageName: node
linkType: hard
+"path-match@npm:1.2.4":
+ version: 1.2.4
+ resolution: "path-match@npm:1.2.4"
+ dependencies:
+ http-errors: "npm:~1.4.0"
+ path-to-regexp: "npm:^1.0.0"
+ checksum: 81ab1cc452b8bd852240ef750fbf506f08a7fb380bc11eabc278e25dcbf4ced58d2b610ad340b54e1dd4bf48c4913783db29a400eebfbc212747a46d8b532451
+ languageName: node
+ linkType: hard
+
"path-parse@npm:^1.0.5, path-parse@npm:^1.0.7":
version: 1.0.7
resolution: "path-parse@npm:1.0.7"
@@ -21220,6 +22558,29 @@ __metadata:
languageName: node
linkType: hard
+"path-to-regexp@npm:6.1.0":
+ version: 6.1.0
+ resolution: "path-to-regexp@npm:6.1.0"
+ checksum: f7cd50aaa89cf939d0a0ee2e5a5e1c13d127c89c0e730a6bdf191ae4df72eaf74a0c104a67ed61c5f4ebcdf344b12b95bb617a6b88fec5ade8be0c2d564f2195
+ languageName: node
+ linkType: hard
+
+"path-to-regexp@npm:6.2.1":
+ version: 6.2.1
+ resolution: "path-to-regexp@npm:6.2.1"
+ checksum: 1e266be712d1a08086ee77beab12a1804842ec635dfed44f9ee1ba960a0e01cec8063fb8c92561115cdc0ce73158cdc7766e353ffa039340b4a85b370084c4d4
+ languageName: node
+ linkType: hard
+
+"path-to-regexp@npm:^1.0.0":
+ version: 1.8.0
+ resolution: "path-to-regexp@npm:1.8.0"
+ dependencies:
+ isarray: "npm:0.0.1"
+ checksum: 45a01690f72919163cf89714e31a285937b14ad54c53734c826363fcf7beba9d9d0f2de802b4986b1264374562d6a3398a2e5289753a764e3a256494f1e52add
+ languageName: node
+ linkType: hard
+
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -21256,6 +22617,13 @@ __metadata:
languageName: node
linkType: hard
+"pend@npm:~1.2.0":
+ version: 1.2.0
+ resolution: "pend@npm:1.2.0"
+ checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d
+ languageName: node
+ linkType: hard
+
"performance-now@npm:^2.1.0":
version: 2.1.0
resolution: "performance-now@npm:2.1.0"
@@ -21270,14 +22638,14 @@ __metadata:
languageName: node
linkType: hard
-"picocolors@npm:^1.0.0":
+"picocolors@npm:1.0.0, picocolors@npm:^1.0.0":
version: 1.0.0
resolution: "picocolors@npm:1.0.0"
checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
languageName: node
linkType: hard
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
+"picomatch@npm:^2.0.4, picomatch@npm:^2.0.7, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc
@@ -21571,7 +22939,7 @@ __metadata:
languageName: node
linkType: hard
-"postcss-modules-scope@npm:^3.0.0":
+"postcss-modules-scope@npm:^3.1.0":
version: 3.1.0
resolution: "postcss-modules-scope@npm:3.1.0"
dependencies:
@@ -21767,14 +23135,25 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:^8.3.5, postcss@npm:^8.4.21, postcss@npm:~8.4.21":
- version: 8.4.32
- resolution: "postcss@npm:8.4.32"
+"postcss@npm:8.4.31":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: "npm:^3.3.6"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 1a6653e72105907377f9d4f2cd341d8d90e3fde823a5ddea1e2237aaa56933ea07853f0f2758c28892a1d70c53bbaca200eb8b80f8ed55f13093003dbec5afa0
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8.3.5, postcss@npm:^8.4.31, postcss@npm:~8.4.21":
+ version: 8.4.33
+ resolution: "postcss@npm:8.4.33"
dependencies:
nanoid: "npm:^3.3.7"
picocolors: "npm:^1.0.0"
source-map-js: "npm:^1.0.2"
- checksum: 28084864122f29148e1f632261c408444f5ead0e0b9ea9bd9729d0468818ebe73fe5dc0075acd50c1365dbe639b46a79cba27d355ec857723a24bc9af0f18525
+ checksum: e22a4594c255f26117f38419fb494d7ecab0f596cd409f7aadc8a6173abf180ed7ea970cd13fd366ab12b5840be901d2a09b25197700c2ebcb5a8077326bf519
languageName: node
linkType: hard
@@ -21864,6 +23243,15 @@ __metadata:
languageName: node
linkType: hard
+"pretty-ms@npm:7.0.1":
+ version: 7.0.1
+ resolution: "pretty-ms@npm:7.0.1"
+ dependencies:
+ parse-ms: "npm:^2.1.0"
+ checksum: a39aac23cc7dae7a94c70518ab8b6c6db0894a7b84c81ee7abc8778c5ec8bae2d1e71ba991ff641732b38433724bfbdbb37bd3a00418637f797c072e06fe8b4c
+ languageName: node
+ linkType: hard
+
"proc-log@npm:^3.0.0":
version: 3.0.0
resolution: "proc-log@npm:3.0.0"
@@ -21927,6 +23315,13 @@ __metadata:
languageName: node
linkType: hard
+"promisepipe@npm:3.0.0":
+ version: 3.0.0
+ resolution: "promisepipe@npm:3.0.0"
+ checksum: 83d9b479259f95663733d4b1584546f7a66b79bc852cb4aef753013d713e16220c6a239aa2ff5340590bb076c9f0422e3e19c95897de3a215dbd23d413c4df42
+ languageName: node
+ linkType: hard
+
"prompts@npm:^2.0.1, prompts@npm:^2.3.2, prompts@npm:^2.4.0":
version: 2.4.2
resolution: "prompts@npm:2.4.2"
@@ -22229,9 +23624,20 @@ __metadata:
linkType: hard
"r-json@npm:^1.2.10":
- version: 1.2.10
- resolution: "r-json@npm:1.2.10"
- checksum: 8ecf97b5a5d53b96f5962aa485411c7e9e406f400e1ebeaf6549c5f88f4cc219b6863423c144c8d27fbf23d5ecb32d9b88795469a08d6f3e9b9ba6c249f3d070
+ version: 1.3.0
+ resolution: "r-json@npm:1.3.0"
+ dependencies:
+ w-json: "npm:1.3.10"
+ checksum: ebe24b41e9f855af9f61747d7f3a511a78bc11c1841eaf3cbf98b385e91a0a982a3f724e2bf24d737642efc9b510585b5c54d25c098cc6850bdad15a22b36636
+ languageName: node
+ linkType: hard
+
+"raf@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "raf@npm:3.4.1"
+ dependencies:
+ performance-now: "npm:^2.1.0"
+ checksum: 4c4b4c826b09d2aec6ca809f1a3c3c12136e7ec8d13fbb91f495dd2c99cd43345240e003da3bfd16036a432e635049fc6d9f69f9187f5f22ea88bb146ec75881
languageName: node
linkType: hard
@@ -22265,6 +23671,18 @@ __metadata:
languageName: node
linkType: hard
+"raw-body@npm:2.4.1":
+ version: 2.4.1
+ resolution: "raw-body@npm:2.4.1"
+ dependencies:
+ bytes: "npm:3.1.0"
+ http-errors: "npm:1.7.3"
+ iconv-lite: "npm:0.4.24"
+ unpipe: "npm:1.0.0"
+ checksum: 3775f08015bdd33e22589117fe168fc3a386ddc56e0798a9d47e75aeb4abce86cff9dfe1f3393fbe7dd036d9cfc755cb10e3645a980824e6a69eec0bef1377e3
+ languageName: node
+ linkType: hard
+
"raw-body@npm:2.5.1":
version: 2.5.1
resolution: "raw-body@npm:2.5.1"
@@ -22367,11 +23785,11 @@ __metadata:
linkType: hard
"react-hook-form@npm:^7.46.1":
- version: 7.49.2
- resolution: "react-hook-form@npm:7.49.2"
+ version: 7.49.3
+ resolution: "react-hook-form@npm:7.49.3"
peerDependencies:
react: ^16.8.0 || ^17 || ^18
- checksum: 7895d65b8458c42d46eb338803bb0fd1aab42fc69ecf80b47846eace9493a10cac5b05c9b744a5f9f1f7969a3e2703fc2118cdab97e49a7798a72d09f106383f
+ checksum: ccd35d73f26b56c2933312c5d445552aab8c20a02ab07360808f039c9daf37a046a0afa2c2c56fac0a16b1963ae3e4ebce37136d14388002d00d6c5483e3fdb7
languageName: node
linkType: hard
@@ -22493,8 +23911,8 @@ __metadata:
linkType: hard
"react-native-paper@npm:^5.10.6":
- version: 5.11.5
- resolution: "react-native-paper@npm:5.11.5"
+ version: 5.12.0
+ resolution: "react-native-paper@npm:5.12.0"
dependencies:
"@callstack/react-theme-provider": "npm:^3.0.9"
color: "npm:^3.1.2"
@@ -22504,7 +23922,7 @@ __metadata:
react-native: "*"
react-native-safe-area-context: "*"
react-native-vector-icons: "*"
- checksum: 7142aaef1ab94d67f5de7a1912fad016c4ac906684d52c92d742568782fd68beacfee0acf55979cd1be23b509487250358c5559341178c22fc256b7b5d6bb15f
+ checksum: 3d0de397c23ba274bb90f3a57c3c7a0f91b4b5e3ceeb0d4076a24b4d9d0c29678422616ba1b15a7c2676d8fd3f77d487dfdb04e6575e8c35f94c8d91a41171a1
languageName: node
linkType: hard
@@ -22592,33 +24010,33 @@ __metadata:
languageName: node
linkType: hard
-"react-native-web-internals@npm:1.79.14":
- version: 1.79.14
- resolution: "react-native-web-internals@npm:1.79.14"
+"react-native-web-internals@npm:1.84.1":
+ version: 1.84.1
+ resolution: "react-native-web-internals@npm:1.84.1"
dependencies:
- "@tamagui/normalize-css-color": "npm:1.79.14"
- "@tamagui/react-native-use-pressable": "npm:1.79.14"
- "@tamagui/react-native-use-responder-events": "npm:1.79.14"
- "@tamagui/simple-hash": "npm:1.79.14"
+ "@tamagui/normalize-css-color": "npm:1.84.1"
+ "@tamagui/react-native-use-pressable": "npm:1.84.1"
+ "@tamagui/react-native-use-responder-events": "npm:1.84.1"
+ "@tamagui/simple-hash": "npm:1.84.1"
styleq: "npm:^0.1.3"
peerDependencies:
react: "*"
- checksum: 6c504a545ced9f932a4ffbecd978e7f2f8a69cc66efc90072cd16a31e987ad764ac761e97dc2c092b4f1dcbde2bc06d78cdcd93591a179e919ac4de5ba3a885d
+ checksum: 2a608073c03b1a7e047d5af824e8ef252d16f37786b0728004baa58c27d8e7594a37c33fdf26ad4951f08e06471b3c9c151e02ffcba537e8821decd8de1009f4
languageName: node
linkType: hard
-"react-native-web-lite@npm:1.79.14":
- version: 1.79.14
- resolution: "react-native-web-lite@npm:1.79.14"
+"react-native-web-lite@npm:1.84.1, react-native-web-lite@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "react-native-web-lite@npm:1.84.1"
dependencies:
- "@tamagui/normalize-css-color": "npm:1.79.14"
+ "@tamagui/normalize-css-color": "npm:1.84.1"
invariant: "npm:^2.2.4"
- react-native-web-internals: "npm:1.79.14"
+ react-native-web-internals: "npm:1.84.1"
styleq: "npm:^0.1.3"
peerDependencies:
react: "*"
react-dom: "*"
- checksum: f549e6cdd9d0134b0d6571503727026a10073014fd76addeed3b2e4948f46ba9bae23561fa243342110ca15c58c954cb7e41bb677698affdc9002e708c09ff08
+ checksum: b8d9fd7d94102cd1827a8442d2c802f16c7fabd81e62835d1656f8212aaa2b865d2b5bf260ba3683885b4e1d0d1ad8f998244b6d46938079d1c27d738219736d
languageName: node
linkType: hard
@@ -22868,6 +24286,15 @@ __metadata:
languageName: node
linkType: hard
+"readdirp@npm:~3.3.0":
+ version: 3.3.0
+ resolution: "readdirp@npm:3.3.0"
+ dependencies:
+ picomatch: "npm:^2.0.7"
+ checksum: ac33180233ed33a84b770a91f405679721fd9d753ce4a63f6dd2fe0e2c3a86605aeba12496439958e6e5ed79eca254f90bdec888bd3a31691b8097b4cfebd865
+ languageName: node
+ linkType: hard
+
"readdirp@npm:~3.6.0":
version: 3.6.0
resolution: "readdirp@npm:3.6.0"
@@ -23556,7 +24983,7 @@ __metadata:
languageName: node
linkType: hard
-"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0":
+"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: 32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451
@@ -23571,13 +24998,13 @@ __metadata:
linkType: hard
"safe-regex-test@npm:^1.0.0":
- version: 1.0.0
- resolution: "safe-regex-test@npm:1.0.0"
+ version: 1.0.1
+ resolution: "safe-regex-test@npm:1.0.1"
dependencies:
- call-bind: "npm:^1.0.2"
- get-intrinsic: "npm:^1.1.3"
+ call-bind: "npm:^1.0.5"
+ get-intrinsic: "npm:^1.2.2"
is-regex: "npm:^1.1.4"
- checksum: c7248dfa07891aa634c8b9c55da696e246f8589ca50e7fd14b22b154a106e83209ddf061baf2fa45ebfbd485b094dc7297325acfc50724de6afe7138451b42a9
+ checksum: f9e2af64e4a8385c00239797513103bc8b3ade4b0bb71f4c6ecd8de2d92d31c891ec6fd0e6e6d1f1c597d606f5e200acf615d6c9b6baa5e422ed9fe17ddacc35
languageName: node
linkType: hard
@@ -23674,6 +25101,15 @@ __metadata:
languageName: node
linkType: hard
+"semver@npm:6.3.1, semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e
+ languageName: node
+ linkType: hard
+
"semver@npm:7.3.2":
version: 7.3.2
resolution: "semver@npm:7.3.2"
@@ -23683,6 +25119,17 @@ __metadata:
languageName: node
linkType: hard
+"semver@npm:7.3.5":
+ version: 7.3.5
+ resolution: "semver@npm:7.3.5"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ bin:
+ semver: bin/semver.js
+ checksum: 22854378594943f2988ee853c02a7471dd02eba7bf75e286b98538114590a148dd59b22775edf42fcfb354438f304b8f32a53c136d228e99068ac52c60259324
+ languageName: node
+ linkType: hard
+
"semver@npm:7.5.3":
version: 7.5.3
resolution: "semver@npm:7.5.3"
@@ -23703,16 +25150,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
- version: 6.3.1
- resolution: "semver@npm:6.3.1"
- bin:
- semver: bin/semver.js
- checksum: 1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e
- languageName: node
- linkType: hard
-
-"semver@npm:^7.0.0, semver@npm:^7.1.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.1, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4":
+"semver@npm:^7.0.0, semver@npm:^7.1.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.1, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
@@ -23781,11 +25219,11 @@ __metadata:
linkType: hard
"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1":
- version: 6.0.1
- resolution: "serialize-javascript@npm:6.0.1"
+ version: 6.0.2
+ resolution: "serialize-javascript@npm:6.0.2"
dependencies:
randombytes: "npm:^2.1.0"
- checksum: f756b1ff34b655b2183c64dd6683d28d4d9b9a80284b264cac9fd421c73890491eafd6c5c2bbe93f1f21bf78b572037c5a18d24b044c317ee1c9dc44d22db94c
+ checksum: 445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58
languageName: node
linkType: hard
@@ -23927,6 +25365,7 @@ __metadata:
swagger-ui-express: "npm:^4.6.3"
trpc-panel: "npm:^1.3.4"
ts-node: "npm:^10.9.1"
+ tsx: "npm:^4.7.0"
typescript: "npm:^5.2.2"
uuid: "npm:^9.0.0"
validator: "npm:^13.9.0"
@@ -24145,6 +25584,13 @@ __metadata:
languageName: node
linkType: hard
+"signal-exit@npm:4.0.2":
+ version: 4.0.2
+ resolution: "signal-exit@npm:4.0.2"
+ checksum: 99d49eab7f24aeed79e44999500d5ff4b9fbb560b0e1f8d47096c54d625b995aeaec3032cce44527adf2de0c303731a8356e234a348d6801214a8a3385a1ff8e
+ languageName: node
+ linkType: hard
+
"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
version: 3.0.7
resolution: "signal-exit@npm:3.0.7"
@@ -24297,6 +25743,15 @@ __metadata:
languageName: node
linkType: hard
+"solito@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "solito@npm:4.2.0"
+ dependencies:
+ typescript: "npm:^5.0.4"
+ checksum: 6d5de27a7c47e366b8c655a51ca67a0903a4370f93815b4f2189addf29b96623bdc717fe2c616954e3386c54d1195ac5ba53a6aa3f59e2e4f81cad0cb6446c66
+ languageName: node
+ linkType: hard
+
"sonner@npm:^0.3.5":
version: 0.3.5
resolution: "sonner@npm:0.3.5"
@@ -24545,6 +26000,13 @@ __metadata:
languageName: node
linkType: hard
+"stat-mode@npm:0.3.0":
+ version: 0.3.0
+ resolution: "stat-mode@npm:0.3.0"
+ checksum: 3bd30088ab37c2948ad811792776cab3daaee7ae3e24ae2282ecbdbd9521097d00bd748f0f50918c118d7148ea2e5763f9c51ff450db7686313cb8ec5778dd00
+ languageName: node
+ linkType: hard
+
"statuses@npm:2.0.1":
version: 2.0.1
resolution: "statuses@npm:2.0.1"
@@ -24552,7 +26014,7 @@ __metadata:
languageName: node
linkType: hard
-"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0":
+"statuses@npm:>= 1.2.1 < 2, statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0":
version: 1.5.0
resolution: "statuses@npm:1.5.0"
checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c
@@ -24576,9 +26038,36 @@ __metadata:
linkType: hard
"stream-shift@npm:^1.0.0":
- version: 1.0.1
- resolution: "stream-shift@npm:1.0.1"
- checksum: 59b82b44b29ec3699b5519a49b3cedcc6db58c72fb40c04e005525dfdcab1c75c4e0c180b923c380f204bed78211b9bad8faecc7b93dece4d004c3f6ec75737b
+ version: 1.0.2
+ resolution: "stream-shift@npm:1.0.2"
+ checksum: d1f57e3dd6f5f5b193a52a477187e8014555dd10e10c9ca38beb9ebbb58a423c453b5707ec96c88e83a9781f657bcaae8459d110aa8639b4480843a71fd2f2e6
+ languageName: node
+ linkType: hard
+
+"stream-to-array@npm:~2.3.0":
+ version: 2.3.0
+ resolution: "stream-to-array@npm:2.3.0"
+ dependencies:
+ any-promise: "npm:^1.1.0"
+ checksum: 7feaf63b38399b850615e6ffcaa951e96e4c8f46745dbce4b553a94c5dc43966933813747014935a3ff97793e7f30a65270bde19f82b2932871a1879229a77cf
+ languageName: node
+ linkType: hard
+
+"stream-to-promise@npm:2.2.0":
+ version: 2.2.0
+ resolution: "stream-to-promise@npm:2.2.0"
+ dependencies:
+ any-promise: "npm:~1.3.0"
+ end-of-stream: "npm:~1.1.0"
+ stream-to-array: "npm:~2.3.0"
+ checksum: e4d3253c68dae65c51c5aa1bd657a072267869fd61b57068e74cee7a8e45d67fe154b56918cf546b38cb5be1fa042e632b7267abc9676bb75bba55952d2d57d1
+ languageName: node
+ linkType: hard
+
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 612c2b2a7dbcc859f74597112f80a42cbe4d448d03da790d5b7b39673c1197dd3789e91cd67210353e58857395d32c1e955a9041c4e6d5bae723436b3ed9ed14
languageName: node
linkType: hard
@@ -24847,11 +26336,11 @@ __metadata:
linkType: hard
"style-loader@npm:^3.3.1":
- version: 3.3.3
- resolution: "style-loader@npm:3.3.3"
+ version: 3.3.4
+ resolution: "style-loader@npm:3.3.4"
peerDependencies:
webpack: ^5.0.0
- checksum: 6c13d5075b5a5d69602215a242ef157460766e6e8a2e48276eb5da5b9852716910b48b3f120d492bbc7cd825dfa940b35fc84e1a9ab2a8792fd8d568b6b3e87a
+ checksum: 2dd2a77d4fc689e1f73836ed7653830cb4e628af0b2979dcf6f31524c72bf44fca4bac8aebe62df95a5f9be19bea18f952a2cfcaaeff32c524c4402226d9c58f
languageName: node
linkType: hard
@@ -24865,6 +26354,22 @@ __metadata:
languageName: node
linkType: hard
+"styled-jsx@npm:5.1.1":
+ version: 5.1.1
+ resolution: "styled-jsx@npm:5.1.1"
+ dependencies:
+ client-only: "npm:0.0.1"
+ peerDependencies:
+ react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ checksum: 4f6a5d0010770fdeea1183d919d528fd46c484e23c0535ef3e1dd49488116f639c594f3bd4440e3bc8a8686c9f8d53c5761599870ff039ede11a5c3bfe08a4be
+ languageName: node
+ linkType: hard
+
"stylehacks@npm:^5.1.1":
version: 5.1.1
resolution: "stylehacks@npm:5.1.1"
@@ -24932,15 +26437,6 @@ __metadata:
languageName: node
linkType: hard
-"superjson@npm:1.10.0":
- version: 1.10.0
- resolution: "superjson@npm:1.10.0"
- dependencies:
- copy-anything: "npm:^3.0.2"
- checksum: 12988184b954287eb6ee519ad9d0e776c4495c948fe7a957736a41c0aaa67fc66613ea5820416753480ae8110c02b04d34356bf55ab7f4324e67edc698a2bc47
- languageName: node
- linkType: hard
-
"superjson@npm:^1.10.0":
version: 1.13.3
resolution: "superjson@npm:1.13.3"
@@ -25046,9 +26542,9 @@ __metadata:
linkType: hard
"swagger-ui-dist@npm:>=4.11.0":
- version: 5.10.5
- resolution: "swagger-ui-dist@npm:5.10.5"
- checksum: ae97cd7c17a540d28307db0517e1199bb594751252670df5dc4d2f89c7f0206aaee4d10469cf3dbe35ee38f91e5ef31f307c5f961f979481726132d9a5e31576
+ version: 5.11.0
+ resolution: "swagger-ui-dist@npm:5.11.0"
+ checksum: 292b4bccf1f2a8c7f9a0048167c88d6a5acfb8eb9bd2bf289631e00bc94f94d31fc8e88f12d0e78175a0c465885df09afcc079d3dd34d4ba5732419ddccec6a3
languageName: node
linkType: hard
@@ -25116,65 +26612,65 @@ __metadata:
languageName: node
linkType: hard
-"tamagui@npm:1.79.14":
- version: 1.79.14
- resolution: "tamagui@npm:1.79.14"
- dependencies:
- "@tamagui/accordion": "npm:1.79.14"
- "@tamagui/adapt": "npm:1.79.14"
- "@tamagui/alert-dialog": "npm:1.79.14"
- "@tamagui/animate-presence": "npm:1.79.14"
- "@tamagui/avatar": "npm:1.79.14"
- "@tamagui/button": "npm:1.79.14"
- "@tamagui/card": "npm:1.79.14"
- "@tamagui/checkbox": "npm:1.79.14"
- "@tamagui/compose-refs": "npm:1.79.14"
- "@tamagui/constants": "npm:1.79.14"
- "@tamagui/core": "npm:1.79.14"
- "@tamagui/create-context": "npm:1.79.14"
- "@tamagui/dialog": "npm:1.79.14"
- "@tamagui/fake-react-native": "npm:1.79.14"
- "@tamagui/focusable": "npm:1.79.14"
- "@tamagui/font-size": "npm:1.79.14"
- "@tamagui/form": "npm:1.79.14"
- "@tamagui/get-button-sized": "npm:1.79.14"
- "@tamagui/get-font-sized": "npm:1.79.14"
- "@tamagui/get-token": "npm:1.79.14"
- "@tamagui/group": "npm:1.79.14"
- "@tamagui/helpers-tamagui": "npm:1.79.14"
- "@tamagui/image": "npm:1.79.14"
- "@tamagui/label": "npm:1.79.14"
- "@tamagui/linear-gradient": "npm:1.79.14"
- "@tamagui/list-item": "npm:1.79.14"
- "@tamagui/polyfill-dev": "npm:1.79.14"
- "@tamagui/popover": "npm:1.79.14"
- "@tamagui/popper": "npm:1.79.14"
- "@tamagui/portal": "npm:1.79.14"
- "@tamagui/progress": "npm:1.79.14"
- "@tamagui/radio-group": "npm:1.79.14"
- "@tamagui/scroll-view": "npm:1.79.14"
- "@tamagui/select": "npm:1.79.14"
- "@tamagui/separator": "npm:1.79.14"
- "@tamagui/shapes": "npm:1.79.14"
- "@tamagui/sheet": "npm:1.79.14"
- "@tamagui/slider": "npm:1.79.14"
- "@tamagui/stacks": "npm:1.79.14"
- "@tamagui/switch": "npm:1.79.14"
- "@tamagui/tabs": "npm:1.79.14"
- "@tamagui/text": "npm:1.79.14"
- "@tamagui/theme": "npm:1.79.14"
- "@tamagui/toggle-group": "npm:1.79.14"
- "@tamagui/tooltip": "npm:1.79.14"
- "@tamagui/use-controllable-state": "npm:1.79.14"
- "@tamagui/use-debounce": "npm:1.79.14"
- "@tamagui/use-force-update": "npm:1.79.14"
- "@tamagui/use-window-dimensions": "npm:1.79.14"
- "@tamagui/visually-hidden": "npm:1.79.14"
+"tamagui@npm:^1.84.1":
+ version: 1.84.1
+ resolution: "tamagui@npm:1.84.1"
+ dependencies:
+ "@tamagui/accordion": "npm:1.84.1"
+ "@tamagui/adapt": "npm:1.84.1"
+ "@tamagui/alert-dialog": "npm:1.84.1"
+ "@tamagui/animate-presence": "npm:1.84.1"
+ "@tamagui/avatar": "npm:1.84.1"
+ "@tamagui/button": "npm:1.84.1"
+ "@tamagui/card": "npm:1.84.1"
+ "@tamagui/checkbox": "npm:1.84.1"
+ "@tamagui/compose-refs": "npm:1.84.1"
+ "@tamagui/constants": "npm:1.84.1"
+ "@tamagui/core": "npm:1.84.1"
+ "@tamagui/create-context": "npm:1.84.1"
+ "@tamagui/dialog": "npm:1.84.1"
+ "@tamagui/fake-react-native": "npm:1.84.1"
+ "@tamagui/focusable": "npm:1.84.1"
+ "@tamagui/font-size": "npm:1.84.1"
+ "@tamagui/form": "npm:1.84.1"
+ "@tamagui/get-button-sized": "npm:1.84.1"
+ "@tamagui/get-font-sized": "npm:1.84.1"
+ "@tamagui/get-token": "npm:1.84.1"
+ "@tamagui/group": "npm:1.84.1"
+ "@tamagui/helpers-tamagui": "npm:1.84.1"
+ "@tamagui/image": "npm:1.84.1"
+ "@tamagui/label": "npm:1.84.1"
+ "@tamagui/linear-gradient": "npm:1.84.1"
+ "@tamagui/list-item": "npm:1.84.1"
+ "@tamagui/polyfill-dev": "npm:1.84.1"
+ "@tamagui/popover": "npm:1.84.1"
+ "@tamagui/popper": "npm:1.84.1"
+ "@tamagui/portal": "npm:1.84.1"
+ "@tamagui/progress": "npm:1.84.1"
+ "@tamagui/radio-group": "npm:1.84.1"
+ "@tamagui/scroll-view": "npm:1.84.1"
+ "@tamagui/select": "npm:1.84.1"
+ "@tamagui/separator": "npm:1.84.1"
+ "@tamagui/shapes": "npm:1.84.1"
+ "@tamagui/sheet": "npm:1.84.1"
+ "@tamagui/slider": "npm:1.84.1"
+ "@tamagui/stacks": "npm:1.84.1"
+ "@tamagui/switch": "npm:1.84.1"
+ "@tamagui/tabs": "npm:1.84.1"
+ "@tamagui/text": "npm:1.84.1"
+ "@tamagui/theme": "npm:1.84.1"
+ "@tamagui/toggle-group": "npm:1.84.1"
+ "@tamagui/tooltip": "npm:1.84.1"
+ "@tamagui/use-controllable-state": "npm:1.84.1"
+ "@tamagui/use-debounce": "npm:1.84.1"
+ "@tamagui/use-force-update": "npm:1.84.1"
+ "@tamagui/use-window-dimensions": "npm:1.84.1"
+ "@tamagui/visually-hidden": "npm:1.84.1"
peerDependencies:
react: "*"
react-native: "*"
react-native-web: "*"
- checksum: 2c2a725da08c33e1960b3f0c9719d5631b8f6522b5845d5317e40d911e8525ad6449c8736bb26e2ca4a30e071787f838d8ba67ff0ffaed30aa234ab499ca2786
+ checksum: 9655d6b2c74dd8c8181cc6930d64c91b3e5b0ac4da7400df52385d384bae51ee520cfc877c2fc353b25333d65b633ef06e38bc43ce3bc6bdcb36b2fdf736d15d
languageName: node
linkType: hard
@@ -25185,6 +26681,21 @@ __metadata:
languageName: node
linkType: hard
+"tar@npm:4.4.18":
+ version: 4.4.18
+ resolution: "tar@npm:4.4.18"
+ dependencies:
+ chownr: "npm:^1.1.4"
+ fs-minipass: "npm:^1.2.7"
+ minipass: "npm:^2.9.0"
+ minizlib: "npm:^1.3.3"
+ mkdirp: "npm:^0.5.5"
+ safe-buffer: "npm:^5.2.1"
+ yallist: "npm:^3.1.1"
+ checksum: f8edb04d23c4ef36d40f16d3ad3c27a9ac9f680df25748f1be8369fc0684bfe7dbf1a47408593fca1464b2f21e9d82bd4011d4bbd2db1c1315492a504244c910
+ languageName: node
+ linkType: hard
+
"tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.2.0
resolution: "tar@npm:6.2.0"
@@ -25386,6 +26897,15 @@ __metadata:
languageName: node
linkType: hard
+"time-span@npm:4.0.0":
+ version: 4.0.0
+ resolution: "time-span@npm:4.0.0"
+ dependencies:
+ convert-hrtime: "npm:^3.0.0"
+ checksum: 8bcecbda97142e804ba03acf52117cc771c2933277b299bdf2e8a949960fda3e70d8159b3ba5f49495d662c4b8cc15e30dbb1a703b1a735eecce11682b98e8f9
+ languageName: node
+ linkType: hard
+
"tiny-inflate@npm:^1.0.2":
version: 1.0.3
resolution: "tiny-inflate@npm:1.0.3"
@@ -25537,7 +27057,7 @@ __metadata:
languageName: node
linkType: hard
-"tree-kill@npm:^1.2.2":
+"tree-kill@npm:1.2.2, tree-kill@npm:^1.2.2":
version: 1.2.2
resolution: "tree-kill@npm:1.2.2"
bin:
@@ -25577,6 +27097,54 @@ __metadata:
languageName: node
linkType: hard
+"ts-morph@npm:12.0.0":
+ version: 12.0.0
+ resolution: "ts-morph@npm:12.0.0"
+ dependencies:
+ "@ts-morph/common": "npm:~0.11.0"
+ code-block-writer: "npm:^10.1.1"
+ checksum: 6b08cc4a301f09e0cce92fae7949fadcd4b1e03555a315ae3ec7a65f72abd4ee38f4f80c91f89eeb0eb0fd254f0022851304e7727e55bbf733dce319fffdfbdc
+ languageName: node
+ linkType: hard
+
+"ts-node@npm:10.9.1":
+ version: 10.9.1
+ resolution: "ts-node@npm:10.9.1"
+ dependencies:
+ "@cspotcode/source-map-support": "npm:^0.8.0"
+ "@tsconfig/node10": "npm:^1.0.7"
+ "@tsconfig/node12": "npm:^1.0.7"
+ "@tsconfig/node14": "npm:^1.0.0"
+ "@tsconfig/node16": "npm:^1.0.2"
+ acorn: "npm:^8.4.1"
+ acorn-walk: "npm:^8.1.1"
+ arg: "npm:^4.1.0"
+ create-require: "npm:^1.1.0"
+ diff: "npm:^4.0.1"
+ make-error: "npm:^1.1.1"
+ v8-compile-cache-lib: "npm:^3.0.1"
+ yn: "npm:3.1.1"
+ peerDependencies:
+ "@swc/core": ">=1.2.50"
+ "@swc/wasm": ">=1.2.50"
+ "@types/node": "*"
+ typescript: ">=2.7"
+ peerDependenciesMeta:
+ "@swc/core":
+ optional: true
+ "@swc/wasm":
+ optional: true
+ bin:
+ ts-node: dist/bin.js
+ ts-node-cwd: dist/bin-cwd.js
+ ts-node-esm: dist/bin-esm.js
+ ts-node-script: dist/bin-script.js
+ ts-node-transpile-only: dist/bin-transpile.js
+ ts-script: dist/bin-script-deprecated.js
+ checksum: bee56d4dc96ccbafc99dfab7b73fbabc62abab2562af53cdea91c874a301b9d11e42bc33c0a032a6ed6d813dbdc9295ec73dde7b73ea4ebde02b0e22006f7e04
+ languageName: node
+ linkType: hard
+
"ts-node@npm:^10.9.1":
version: 10.9.2
resolution: "ts-node@npm:10.9.2"
@@ -25622,6 +27190,13 @@ __metadata:
languageName: node
linkType: hard
+"ts-toolbelt@npm:^6.15.5":
+ version: 6.15.5
+ resolution: "ts-toolbelt@npm:6.15.5"
+ checksum: 1816b11f6a4ca7b11da1e81613dda217535718862c9c7c1d9e5dbeb12abc765b6803dbc0c90ee8a5c1b782bc369e2851913005042921028d16e6ae8bf054b2da
+ languageName: node
+ linkType: hard
+
"tsconfig-paths@npm:^3.15.0":
version: 3.15.0
resolution: "tsconfig-paths@npm:3.15.0"
@@ -25687,6 +27262,22 @@ __metadata:
languageName: node
linkType: hard
+"tsx@npm:^4.7.0":
+ version: 4.7.0
+ resolution: "tsx@npm:4.7.0"
+ dependencies:
+ esbuild: "npm:~0.19.10"
+ fsevents: "npm:~2.3.3"
+ get-tsconfig: "npm:^4.7.2"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ bin:
+ tsx: dist/cli.mjs
+ checksum: 3e6ee0a0a8adb7b1cb58875f50b143b41df0132ade3a7cdda16a166ac473eee446197762ba6afb235ace4c6adae7e55f61a420ee55b17438717eea1e55e611c0
+ languageName: node
+ linkType: hard
+
"tunnel-agent@npm:^0.6.0":
version: 0.6.0
resolution: "tunnel-agent@npm:0.6.0"
@@ -25855,7 +27446,17 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:^5.2.2":
+"typescript@npm:4.9.5":
+ version: 4.9.5
+ resolution: "typescript@npm:4.9.5"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 458f7220ab11e0fc191514cc41be1707645ec9a8c2d609448a448e18c522cef9646f58728f6811185a4c35613dacdf6c98cf8965c88b3541d0288c47291e4300
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5.0.4, typescript@npm:^5.2.2":
version: 5.3.3
resolution: "typescript@npm:5.3.3"
bin:
@@ -25865,7 +27466,17 @@ __metadata:
languageName: node
linkType: hard
-"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin":
+"typescript@patch:typescript@npm%3A4.9.5#optional!builtin":
+ version: 4.9.5
+ resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 5659316360b5cc2d6f5931b346401fa534107b68b60179cf14970e27978f0936c1d5c46f4b5b8175f8cba0430f522b3ce355b4b724c0ea36ce6c0347fab25afd
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@npm%3A^5.0.4#optional!builtin, typescript@patch:typescript@npm%3A^5.2.2#optional!builtin":
version: 5.3.3
resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"
bin:
@@ -25910,6 +27521,13 @@ __metadata:
languageName: node
linkType: hard
+"uid-promise@npm:1.0.0":
+ version: 1.0.0
+ resolution: "uid-promise@npm:1.0.0"
+ checksum: 15804620b23feb5bf88b0f8a081bff8ef39c8430e3d27c840e7bfad00885c29f51837cdb39d31259c27405aed3643f7f5994aca1fa5ffaf49ea57ad0cfc1321d
+ languageName: node
+ linkType: hard
+
"uid-safe@npm:2.1.5":
version: 2.1.5
resolution: "uid-safe@npm:2.1.5"
@@ -25975,6 +27593,15 @@ __metadata:
languageName: node
linkType: hard
+"undici@npm:5.26.5":
+ version: 5.26.5
+ resolution: "undici@npm:5.26.5"
+ dependencies:
+ "@fastify/busboy": "npm:^2.0.0"
+ checksum: b6fdd5afe34f97c7aeaaddc13ec48c066e6b4d72e64bb755cbcb72c80223131af09763c6650efaf203f391c31a72ffb87bfbc5249bd43b0449ba38a472bc9728
+ languageName: node
+ linkType: hard
+
"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
version: 2.0.0
resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0"
@@ -26244,6 +27871,15 @@ __metadata:
languageName: node
linkType: hard
+"uuid@npm:3.3.2":
+ version: 3.3.2
+ resolution: "uuid@npm:3.3.2"
+ bin:
+ uuid: ./bin/uuid
+ checksum: 3834a826020a23fca314116c2becddc7f5d756b0280d630b58a65e700afeefd89d78ae97ddbdea5dcad497666cda6e9b0390ba74508e650d43d83a32d1e7cd19
+ languageName: node
+ linkType: hard
+
"uuid@npm:3.4.0, uuid@npm:^3.3.2, uuid@npm:^3.4.0":
version: 3.4.0
resolution: "uuid@npm:3.4.0"
@@ -26328,6 +27964,29 @@ __metadata:
languageName: node
linkType: hard
+"vercel@npm:latest":
+ version: 33.1.0
+ resolution: "vercel@npm:33.1.0"
+ dependencies:
+ "@vercel/build-utils": "npm:7.5.0"
+ "@vercel/fun": "npm:1.1.0"
+ "@vercel/go": "npm:3.0.5"
+ "@vercel/hydrogen": "npm:1.0.2"
+ "@vercel/next": "npm:4.0.17"
+ "@vercel/node": "npm:3.0.16"
+ "@vercel/python": "npm:4.1.0"
+ "@vercel/redwood": "npm:2.0.6"
+ "@vercel/remix-builder": "npm:2.0.17"
+ "@vercel/ruby": "npm:2.0.4"
+ "@vercel/static-build": "npm:2.0.17"
+ chokidar: "npm:3.3.1"
+ bin:
+ vc: dist/index.js
+ vercel: dist/index.js
+ checksum: 61fcc606f8f88f2572d6e0e99cee623cc03995efe58480a1cf2696a6e2aec6da1c3a88dbf7bfecd5b0e09dbe4e7377d0f938e0226a9d345e8f424b49d48d9568
+ languageName: node
+ linkType: hard
+
"verror@npm:1.10.0":
version: 1.10.0
resolution: "verror@npm:1.10.0"
@@ -26357,7 +28016,7 @@ __metadata:
languageName: node
linkType: hard
-"w-json@npm:^1.3.10":
+"w-json@npm:1.3.10, w-json@npm:^1.3.10":
version: 1.3.10
resolution: "w-json@npm:1.3.10"
checksum: bf3dfa4e8e2429fcf2b0456ba396245a0be719ff4fb04eec971536c3586cae7489c5ca5801848ecfbc2a454f37829a132f428acf9d457cebe43d5c70348e7a7b
@@ -26380,7 +28039,7 @@ __metadata:
languageName: node
linkType: hard
-"watchpack@npm:^2.4.0":
+"watchpack@npm:2.4.0, watchpack@npm:^2.4.0":
version: 2.4.0
resolution: "watchpack@npm:2.4.0"
dependencies:
@@ -26416,9 +28075,16 @@ __metadata:
linkType: hard
"web-streams-polyfill@npm:^3.0.3, web-streams-polyfill@npm:^3.2.1":
- version: 3.2.1
- resolution: "web-streams-polyfill@npm:3.2.1"
- checksum: 08fcf97b7883c1511dd3da794f50e9bde75a660884783baaddb2163643c21a94086f394dc4bd20dff0f55c98d98d60c4bea05a5809ef5005bdf835b63ada8900
+ version: 3.3.2
+ resolution: "web-streams-polyfill@npm:3.3.2"
+ checksum: 0466050f40c3487a96dedb07c60581b07c334daedd1955a7380b9405b77934a5bf9e178411133abca5365f3533543e1876fa5a5b7082382b866d1e5d07385466
+ languageName: node
+ linkType: hard
+
+"web-vitals@npm:0.2.4":
+ version: 0.2.4
+ resolution: "web-vitals@npm:0.2.4"
+ checksum: e0f1873ea321d484f4ea904a07bb3c1481a2bb049a26c65c22fabdbf648c73f48c49ecc580875a5e2942d244821c09b93371d5e18872815f2cbdc2370cba532f
languageName: node
linkType: hard
@@ -26880,6 +28546,24 @@ __metadata:
languageName: node
linkType: hard
+"xdg-app-paths@npm:5.1.0":
+ version: 5.1.0
+ resolution: "xdg-app-paths@npm:5.1.0"
+ dependencies:
+ xdg-portable: "npm:^7.0.0"
+ checksum: f3efab6aece827e745e98bfad79a0c7bbe99730902b644f3dd392e27eeb279c227fd215f278f8f9bc5d1b5b3816d4326dc733e1734b996c8b93f0d9ab0309f8d
+ languageName: node
+ linkType: hard
+
+"xdg-portable@npm:^7.0.0":
+ version: 7.3.0
+ resolution: "xdg-portable@npm:7.3.0"
+ dependencies:
+ os-paths: "npm:^4.0.1"
+ checksum: 30a9cdae2e664598d1c1e0af849fb35c09db26b10337b7cfcc765435766e1ac82076db6b1120fea9b7ddb52c3d5f49ee76282560f4137d5fca1f5022129a3420
+ languageName: node
+ linkType: hard
+
"xml2js@npm:0.6.0":
version: 0.6.0
resolution: "xml2js@npm:0.6.0"
@@ -26960,7 +28644,7 @@ __metadata:
languageName: node
linkType: hard
-"yallist@npm:^3.0.2":
+"yallist@npm:^3.0.0, yallist@npm:^3.0.2, yallist@npm:^3.1.1":
version: 3.1.1
resolution: "yallist@npm:3.1.1"
checksum: 9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb
@@ -27124,6 +28808,35 @@ __metadata:
languageName: node
linkType: hard
+"yauzl-clone@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "yauzl-clone@npm:1.0.4"
+ dependencies:
+ events-intercept: "npm:^2.0.0"
+ checksum: 53f3197d7a7116ec8754f7a6bf37844afdd03fa0432c6c30b327cf479b26670a1ae9ae1b65e8efcf894a5cb15fb4f331804a9cff83a625adf8f40f3859671f85
+ languageName: node
+ linkType: hard
+
+"yauzl-promise@npm:2.1.3":
+ version: 2.1.3
+ resolution: "yauzl-promise@npm:2.1.3"
+ dependencies:
+ yauzl: "npm:^2.9.1"
+ yauzl-clone: "npm:^1.0.4"
+ checksum: 072981907885f62c9f6524824ffdd2f7a2355da2aee247e23d9dc42399798face87e4ba7da1f8da7b4832e2cfd3e69c1672728116737bdd648394102b96c2586
+ languageName: node
+ linkType: hard
+
+"yauzl@npm:^2.9.1":
+ version: 2.10.0
+ resolution: "yauzl@npm:2.10.0"
+ dependencies:
+ buffer-crc32: "npm:~0.2.3"
+ fd-slicer: "npm:~1.1.0"
+ checksum: 1e4c311050dc0cf2ee3dbe8854fe0a6cde50e420b3e561a8d97042526b4cf7a0718d6c8d89e9e526a152f4a9cec55bcea9c3617264115f48bd6704cf12a04445
+ languageName: node
+ linkType: hard
+
"yn@npm:3.1.1":
version: 3.1.1
resolution: "yn@npm:3.1.1"