diff --git a/app.json b/app.json
index 283a53a..ab45a76 100644
--- a/app.json
+++ b/app.json
@@ -6,10 +6,10 @@
}
},
"android": {
- "package": "com.fss"
+ "package": "fss.bundle.co2"
},
"ios": {
- "bundleIdentifier": "com.fss"
+ "bundleIdentifier": "fss.bundle.co2"
}
}
}
diff --git a/apps/expo/app.config.ts b/apps/expo/app.config.ts
index 8b638ae..e15cdf8 100644
--- a/apps/expo/app.config.ts
+++ b/apps/expo/app.config.ts
@@ -2,7 +2,7 @@ import type { ConfigContext, ExpoConfig } from "expo/config";
export default ({ config }: ConfigContext): ExpoConfig => ({
...config,
- name: "expo",
+ name: "Fresh Seasonal Sustainable",
slug: "expo",
scheme: "expo",
version: "0.1.0",
@@ -19,11 +19,11 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
},
assetBundlePatterns: ["**/*"],
ios: {
- bundleIdentifier: "your.bundle.identifier",
+ bundleIdentifier: "fss.bundle.co2",
supportsTablet: true,
},
android: {
- package: "your.bundle.identifier",
+ package: "fss.bundle.co2",
adaptiveIcon: {
foregroundImage: "./assets/fss.png",
backgroundColor: "#ffffff",
@@ -43,8 +43,8 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
[
"expo-camera",
{
- cameraPermission: `Allow ${process.env.CUSTOMER_FACCING_PRODUCT_NAME} to access your camera`,
- microphonePermission: `Allow ${process.env.CUSTOMER_FACCING_PRODUCT_NAME} to access your microphone`,
+ cameraPermission: `Allow ${process.env.CUSTOMER_FACING_PRODUCT_NAME} to access your camera`,
+ microphonePermission: `Allow ${process.env.CUSTOMER_FACING_PRODUCT_NAME} to access your microphone`,
recordAudioAndroid: true,
},
],
diff --git a/apps/expo/eas.json b/apps/expo/eas.json
index 607de32..cdaa7e9 100644
--- a/apps/expo/eas.json
+++ b/apps/expo/eas.json
@@ -10,9 +10,15 @@
}
},
"development": {
+ "extends": "base",
+ "developmentClient": true
+ },
+ "development-simulator": {
"extends": "base",
"developmentClient": true,
- "distribution": "internal"
+ "ios": {
+ "simulator": true
+ }
},
"preview": {
"extends": "base",
diff --git a/apps/expo/src/app/(tabs)/_layout.tsx b/apps/expo/src/app/(tabs)/_layout.tsx
index 535b5b3..c856382 100644
--- a/apps/expo/src/app/(tabs)/_layout.tsx
+++ b/apps/expo/src/app/(tabs)/_layout.tsx
@@ -1,6 +1,7 @@
import React from "react";
+import { Dimensions, StyleSheet } from "react-native";
import { Tabs } from "expo-router";
-import { BarChart3, House, Info } from "lucide-react-native";
+import { House, Info } from "lucide-react-native";
import Header from "~/components/Header";
@@ -8,6 +9,11 @@ const primary = "#4caf50";
const secondary = "#ffffff";
const tertiary = "#008134";
+const { width, height } = Dimensions.get("window");
+
+const tabBarHeight = height > 700 ? 64 : 56;
+const tabBarFontSize = width > 350 ? 12 : 10;
+
export default function TabLayout() {
return (
,
})}
>
@@ -51,15 +61,6 @@ export default function TabLayout() {
),
}}
/>
- (
-
- ),
- }}
- />
);
}
diff --git a/apps/expo/src/app/(tabs)/summary.tsx b/apps/expo/src/app/(tabs)/summary.tsx
deleted file mode 100644
index a94d19d..0000000
--- a/apps/expo/src/app/(tabs)/summary.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Text, View } from "react-native";
-
-export const Summary = () => {
- return (
-
-
- Summary
-
-
- );
-};
-
-export default Summary;
diff --git a/apps/expo/src/components/Header.tsx b/apps/expo/src/components/Header.tsx
index c3ed2e7..98cfdc2 100644
--- a/apps/expo/src/components/Header.tsx
+++ b/apps/expo/src/components/Header.tsx
@@ -3,7 +3,7 @@ import { Image, Text, View } from "react-native";
import FssLogoCircle from "../../assets/fssCircle.png";
-const Header = () => {
+export const Header = () => {
return (
diff --git a/apps/expo/src/components/HomePage.tsx b/apps/expo/src/components/HomePage.tsx
index 1e9100a..cbf3e57 100644
--- a/apps/expo/src/components/HomePage.tsx
+++ b/apps/expo/src/components/HomePage.tsx
@@ -4,15 +4,16 @@ import { Button, Text, TouchableOpacity, View } from "react-native";
import { CameraView, useCameraPermissions } from "expo-camera";
import EcoScoreIcon from "~/components/icons/EcoScoreIcon";
+import Loading from "~/components/Loading";
import { api } from "~/utils/api";
-export function HomePage() {
+export const HomePage = () => {
const [facing, setFacing] = useState("back");
const [permission, requestPermission] = useCameraPermissions();
const [scannedData, setScannedData] = useState(null);
const [scanned, setScanned] = useState(false);
- const { isError, data, error, refetch } =
+ const { isError, isLoading, data, error, isFetched, refetch } =
api.getEstimate.getEstimate.useQuery(
{ barCodeUniqueId: scannedData ?? "" },
{
@@ -31,9 +32,7 @@ export function HomePage() {
setFacing((current) => (current === "back" ? "front" : "back"));
}
- const productName =
- data?.WorldFoodFactsProductInfo?.product.product_name ??
- "Sorry, we couldn't find that product";
+ const productName = data?.WorldFoodFactsProductInfo?.product.product_name;
const productGrade =
data?.WorldFoodFactsProductInfo?.product.ecoscore_data?.grade;
const productTotalCO2: string | number =
@@ -51,8 +50,31 @@ export function HomePage() {
);
}
+ if (isLoading) {
+ return ;
+ }
+
+ if (scanned && isFetched && !productName) {
+ return (
+
+ Sorry! We couldn't find that product.
+
+
+
+ );
+ }
+
if (!permission) {
- return ;
+ return (
+
+ Sorry! We need camera permissions to scan products.
+
+ );
}
if (!permission.granted) {
@@ -68,13 +90,13 @@ export function HomePage() {
return (
<>
- {data && scanned ? (
+ {isFetched && scanned ? (
{productName}
{productGrade ? (
) : (
- "Sorry we can't seem to find that item "
+ "Sorry! We can't find the grade for that product."
)}
The EcoScore for this product is an {productGrade?.toUpperCase()}{" "}
@@ -89,7 +111,9 @@ export function HomePage() {
That's equivalent to driving a car for 5 miles...
Seasonality
- Sorry, we can't tell if this product is in season for you
+
+ Sorry, we can't tell if this product is in season for you.
+
);
-}
+};
export default HomePage;
diff --git a/apps/expo/src/components/Loading.tsx b/apps/expo/src/components/Loading.tsx
new file mode 100644
index 0000000..6b5f459
--- /dev/null
+++ b/apps/expo/src/components/Loading.tsx
@@ -0,0 +1,14 @@
+import React from "react";
+import { Text, View } from "react-native";
+import { Loader2 } from "lucide-react-native";
+
+export const Loading = () => {
+ return (
+
+ Loading...
+
+
+ );
+};
+
+export default Loading;
diff --git a/apps/expo/src/utils/api.tsx b/apps/expo/src/utils/api.tsx
index 0ff34c7..69735fb 100644
--- a/apps/expo/src/utils/api.tsx
+++ b/apps/expo/src/utils/api.tsx
@@ -30,10 +30,7 @@ const getBaseUrl = () => {
const localhost = debuggerHost?.split(":")[0];
if (!localhost) {
- // return "https://turbo.t3.gg";
- throw new Error(
- "Failed to get localhost. Please point to your production server.",
- );
+ return "https://fssmono.onrender.com";
}
return `http://${localhost}:3000`;
};
diff --git a/apps/nextjs/src/app/api/trpc/[trpc]/getEstimate/index.ts b/apps/nextjs/src/app/api/trpc/[trpc]/getEstimate/index.ts
new file mode 100644
index 0000000..806f33c
--- /dev/null
+++ b/apps/nextjs/src/app/api/trpc/[trpc]/getEstimate/index.ts
@@ -0,0 +1,28 @@
+import { initTRPC } from "@trpc/server";
+import { z } from "zod";
+
+const t = initTRPC.create();
+
+export const appRouter = t.router({
+ getEstimate: t.procedure
+ .input(
+ z.object({
+ barCodeUniqueId: z.string(),
+ }),
+ )
+ .query(async ({ input }) => {
+ // Fetch data from the first API
+ const productRes = await fetch(
+ `${process.env.WORLD_OPEN_FOOD_FACTS_BASE_URL}/api/v0/product/${input.barCodeUniqueId}.json`,
+ ).then((res) => res.json());
+
+ // Fetch data from the second API
+ const data2 = await fetch(
+ `https://api2.example.com/data?param=${productRes.productName}`,
+ ).then((res) => res.json());
+
+ return { productRes, data2 };
+ }),
+});
+
+export type AppRouter = typeof appRouter;
diff --git a/eas.json b/eas.json
index 0d1dced..8601321 100644
--- a/eas.json
+++ b/eas.json
@@ -7,10 +7,20 @@
"developmentClient": true,
"distribution": "internal"
},
+ "development-simulator": {
+ "developmentClient": true,
+ "ios": {
+ "simulator": true
+ }
+ },
"preview": {
"distribution": "internal"
},
- "production": {}
+ "production": {
+ "env": {
+ "CUSTOMER_FACING_PRODUCT_NAME": "Fresh Seasonal Sustainable"
+ }
+ }
},
"submit": {
"production": {}
diff --git a/package.json b/package.json
index b7da174..9b30f1f 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"packageManager": "pnpm@9.1.0",
"scripts": {
"build": "turbo build",
+ "build:backend": "turbo run build --ignore apps/expo",
"clean": "git clean -xdf node_modules",
"clean:workspaces": "turbo clean",
"db:push": "pnpm -F db push",
diff --git a/packages/db/package.json b/packages/db/package.json
index db18094..11829c0 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -30,8 +30,8 @@
"with-env": "dotenv -e ../../.env --"
},
"dependencies": {
- "@vercel/postgres": "^0.8.0",
"@t3-oss/env-core": "^0.10.1",
+ "@vercel/postgres": "^0.8.0",
"drizzle-orm": "^0.30.10",
"drizzle-zod": "^0.5.1",
"zod": "^3.23.8"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f824592..dd0be23 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -411,76 +411,6 @@ importers:
specifier: ^5.4.5
version: 5.4.5
- packages/ui:
- dependencies:
- '@hookform/resolvers':
- specifier: ^3.3.4
- version: 3.3.4(react-hook-form@7.51.4(react@18.3.1))
- '@radix-ui/react-dropdown-menu':
- specifier: ^2.0.6
- version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-icons':
- specifier: ^1.3.0
- version: 1.3.0(react@18.3.1)
- '@radix-ui/react-label':
- specifier: ^2.0.2
- version: 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-slot':
- specifier: ^1.0.2
- version: 1.0.2(@types/react@18.3.2)(react@18.3.1)
- class-variance-authority:
- specifier: ^0.7.0
- version: 0.7.0
- next-themes:
- specifier: ^0.3.0
- version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react-hook-form:
- specifier: ^7.51.4
- version: 7.51.4(react@18.3.1)
- sonner:
- specifier: ^1.4.41
- version: 1.4.41(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- tailwind-merge:
- specifier: ^2.3.0
- version: 2.3.0
- tailwindcss-animate:
- specifier: ^1.0.7
- version: 1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.9)(typescript@5.4.5)))
- devDependencies:
- '@acme/eslint-config':
- specifier: workspace:*
- version: link:../../tooling/eslint
- '@acme/prettier-config':
- specifier: workspace:*
- version: link:../../tooling/prettier
- '@acme/tailwind-config':
- specifier: workspace:*
- version: link:../../tooling/tailwind
- '@acme/tsconfig':
- specifier: workspace:*
- version: link:../../tooling/typescript
- '@types/react':
- specifier: ^18.3.2
- version: 18.3.2
- eslint:
- specifier: ^9.2.0
- version: 9.2.0
- prettier:
- specifier: ^3.2.5
- version: 3.2.5
- react:
- specifier: 18.3.1
- version: 18.3.1
- tailwindcss:
- specifier: ^3.4.3
- version: 3.4.3(ts-node@10.9.2(@types/node@20.12.9)(typescript@5.4.5))
- typescript:
- specifier: ^5.4.5
- version: 5.4.5
- zod:
- specifier: ^3.23.8
- version: 3.23.8
-
packages/validators:
dependencies:
zod:
@@ -1967,21 +1897,6 @@ packages:
resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
engines: {node: '>=14'}
- '@floating-ui/core@1.6.0':
- resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
-
- '@floating-ui/dom@1.6.3':
- resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==}
-
- '@floating-ui/react-dom@2.0.8':
- resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
- '@floating-ui/utils@0.2.1':
- resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
-
'@gar/promisify@1.1.3':
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
@@ -1996,11 +1911,6 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- '@hookform/resolvers@3.3.4':
- resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==}
- peerDependencies:
- react-hook-form: ^7.0.0
-
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -2278,291 +2188,16 @@ packages:
resolution: {integrity: sha512-t2XdOfrVgcF7AW791FtdPS27NyNqcE1SpoXgk3HpziousvUMsJi4Q6NL3JyOBpsMOrvk94749o8yyonvX5quPw==}
engines: {node: '>=16'}
- '@radix-ui/primitive@1.0.1':
- resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==}
-
- '@radix-ui/react-arrow@1.0.3':
- resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-collection@1.0.3':
- resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@radix-ui/react-compose-refs@1.0.0':
resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==}
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0
- '@radix-ui/react-compose-refs@1.0.1':
- resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-context@1.0.1':
- resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-direction@1.0.1':
- resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dismissable-layer@1.0.5':
- resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-dropdown-menu@2.0.6':
- resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-focus-guards@1.0.1':
- resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-focus-scope@1.0.4':
- resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-icons@1.3.0':
- resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
- peerDependencies:
- react: ^16.x || ^17.x || ^18.x
-
- '@radix-ui/react-id@1.0.1':
- resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-label@2.0.2':
- resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-menu@2.0.6':
- resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-popper@1.1.3':
- resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-portal@1.0.4':
- resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-presence@1.0.1':
- resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-primitive@1.0.3':
- resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-roving-focus@1.0.4':
- resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@radix-ui/react-slot@1.0.1':
resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==}
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0
- '@radix-ui/react-slot@1.0.2':
- resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-callback-ref@1.0.1':
- resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-controllable-state@1.0.1':
- resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-escape-keydown@1.0.3':
- resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-layout-effect@1.0.1':
- resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-rect@1.0.1':
- resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-size@1.0.1':
- resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/rect@1.0.1':
- resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==}
-
'@react-native-community/cli-clean@13.6.6':
resolution: {integrity: sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ==}
@@ -3414,10 +3049,6 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- aria-hidden@1.2.4:
- resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
- engines: {node: '>=10'}
-
aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
@@ -3742,9 +3373,6 @@ packages:
citty@0.1.6:
resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
- class-variance-authority@0.7.0:
- resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
-
clean-stack@2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
@@ -3795,10 +3423,6 @@ packages:
resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
engines: {node: '>=0.8'}
- clsx@2.0.0:
- resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
- engines: {node: '>=6'}
-
cluster-key-slot@1.1.2:
resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
engines: {node: '>=0.10.0'}
@@ -4180,9 +3804,6 @@ packages:
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
engines: {node: '>=8'}
- detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
-
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
@@ -4943,10 +4564,6 @@ packages:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
- get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
-
get-port-please@3.1.2:
resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
@@ -6221,12 +5838,6 @@ packages:
nodemailer:
optional: true
- next-themes@0.3.0:
- resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==}
- peerDependencies:
- react: ^16.8 || ^17 || ^18
- react-dom: ^16.8 || ^17 || ^18
-
next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
@@ -6926,12 +6537,6 @@ packages:
peerDependencies:
react: '>=17.0.0'
- react-hook-form@7.51.4:
- resolution: {integrity: sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==}
- engines: {node: '>=12.22.0'}
- peerDependencies:
- react: ^16.8.0 || ^17 || ^18
-
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -7030,41 +6635,11 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
- react-remove-scroll-bar@2.3.6:
- resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-remove-scroll@2.5.5:
- resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
react-shallow-renderer@16.15.0:
resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==}
peerDependencies:
react: ^16.0.0 || ^17.0.0 || ^18.0.0
- react-style-singleton@2.2.1:
- resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -7443,12 +7018,6 @@ packages:
resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
- sonner@1.4.41:
- resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
-
source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@@ -7685,9 +7254,6 @@ packages:
resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
engines: {node: '>=18'}
- tailwind-merge@2.3.0:
- resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==}
-
tailwindcss-animate@1.0.7:
resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
peerDependencies:
@@ -8097,31 +7663,11 @@ packages:
urlpattern-polyfill@8.0.2:
resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==}
- use-callback-ref@1.3.2:
- resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
use-latest-callback@0.1.9:
resolution: {integrity: sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==}
peerDependencies:
react: '>=16.8'
- use-sidecar@1.1.2:
- resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
utf-8-validate@6.0.3:
resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==}
engines: {node: '>=6.14.2'}
@@ -9939,23 +9485,6 @@ snapshots:
'@fastify/busboy@2.1.1': {}
- '@floating-ui/core@1.6.0':
- dependencies:
- '@floating-ui/utils': 0.2.1
-
- '@floating-ui/dom@1.6.3':
- dependencies:
- '@floating-ui/core': 1.6.0
- '@floating-ui/utils': 0.2.1
-
- '@floating-ui/react-dom@2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@floating-ui/dom': 1.6.3
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
- '@floating-ui/utils@0.2.1': {}
-
'@gar/promisify@1.1.3': {}
'@graphql-typed-document-node/core@3.2.0(graphql@15.8.0)':
@@ -9968,10 +9497,6 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
- '@hookform/resolvers@3.3.4(react-hook-form@7.51.4(react@18.3.1))':
- dependencies:
- react-hook-form: 7.51.4(react@18.3.1)
-
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -10233,289 +9758,17 @@ snapshots:
'@planetscale/database@1.18.0':
optional: true
- '@radix-ui/primitive@1.0.1':
- dependencies:
- '@babel/runtime': 7.24.5
-
- '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
'@radix-ui/react-compose-refs@1.0.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.5
react: 18.3.1
- '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-context@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-direction@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-icons@1.3.0(react@18.3.1)':
- dependencies:
- react: 18.3.1
-
- '@radix-ui/react-id@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@floating-ui/react-dom': 2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/rect': 1.0.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
- '@types/react-dom': 18.3.0
-
'@radix-ui/react-slot@1.0.1(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.5
'@radix-ui/react-compose-refs': 1.0.0(react@18.3.1)
react: 18.3.1
- '@radix-ui/react-slot@1.0.2(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/rect': 1.0.1
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/react-use-size@1.0.1(@types/react@18.3.2)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.24.5
- '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.2
-
- '@radix-ui/rect@1.0.1':
- dependencies:
- '@babel/runtime': 7.24.5
-
'@react-native-community/cli-clean@13.6.6':
dependencies:
'@react-native-community/cli-tools': 13.6.6
@@ -11634,10 +10887,6 @@ snapshots:
argparse@2.0.1: {}
- aria-hidden@1.2.4:
- dependencies:
- tslib: 2.6.2
-
aria-query@5.3.0:
dependencies:
dequal: 2.0.3
@@ -12066,10 +11315,6 @@ snapshots:
dependencies:
consola: 3.2.3
- class-variance-authority@0.7.0:
- dependencies:
- clsx: 2.0.0
-
clean-stack@2.2.0: {}
cli-color@2.0.4:
@@ -12122,8 +11367,6 @@ snapshots:
clone@2.1.2: {}
- clsx@2.0.0: {}
-
cluster-key-slot@1.1.2: {}
color-convert@1.9.3:
@@ -12460,8 +11703,6 @@ snapshots:
detect-libc@2.0.3: {}
- detect-node-es@1.1.0: {}
-
didyoumean@1.2.2: {}
diff@4.0.2: {}
@@ -13462,8 +12703,6 @@ snapshots:
has-symbols: 1.0.3
hasown: 2.0.2
- get-nonce@1.0.1: {}
-
get-port-please@3.1.2: {}
get-port@3.2.0: {}
@@ -14877,11 +14116,6 @@ snapshots:
next: 14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
- next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
next-tick@1.1.0: {}
next@14.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
@@ -15637,10 +14871,6 @@ snapshots:
dependencies:
react: 18.3.1
- react-hook-form@7.51.4(react@18.3.1):
- dependencies:
- react: 18.3.1
-
react-is@16.13.1: {}
react-is@17.0.2: {}
@@ -15797,40 +15027,12 @@ snapshots:
react-refresh@0.14.2: {}
- react-remove-scroll-bar@2.3.6(@types/react@18.3.2)(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-style-singleton: 2.2.1(@types/react@18.3.2)(react@18.3.1)
- tslib: 2.6.2
- optionalDependencies:
- '@types/react': 18.3.2
-
- react-remove-scroll@2.5.5(@types/react@18.3.2)(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.2)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.2)(react@18.3.1)
- tslib: 2.6.2
- use-callback-ref: 1.3.2(@types/react@18.3.2)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.2)(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.2
-
react-shallow-renderer@16.15.0(react@18.3.1):
dependencies:
object-assign: 4.1.1
react: 18.3.1
react-is: 18.2.0
- react-style-singleton@2.2.1(@types/react@18.3.2)(react@18.3.1):
- dependencies:
- get-nonce: 1.0.1
- invariant: 2.2.4
- react: 18.3.1
- tslib: 2.6.2
- optionalDependencies:
- '@types/react': 18.3.2
-
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -16266,11 +15468,6 @@ snapshots:
ip-address: 9.0.5
smart-buffer: 4.2.0
- sonner@1.4.41(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
source-map-js@1.2.0: {}
source-map-support@0.5.21:
@@ -16499,10 +15696,6 @@ snapshots:
system-architecture@0.1.0: {}
- tailwind-merge@2.3.0:
- dependencies:
- '@babel/runtime': 7.24.5
-
tailwindcss-animate@1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.9)(typescript@5.4.5))):
dependencies:
tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.12.9)(typescript@5.4.5))
@@ -16929,25 +16122,10 @@ snapshots:
urlpattern-polyfill@8.0.2: {}
- use-callback-ref@1.3.2(@types/react@18.3.2)(react@18.3.1):
- dependencies:
- react: 18.3.1
- tslib: 2.6.2
- optionalDependencies:
- '@types/react': 18.3.2
-
use-latest-callback@0.1.9(react@18.3.1):
dependencies:
react: 18.3.1
- use-sidecar@1.1.2(@types/react@18.3.2)(react@18.3.1):
- dependencies:
- detect-node-es: 1.1.0
- react: 18.3.1
- tslib: 2.6.2
- optionalDependencies:
- '@types/react': 18.3.2
-
utf-8-validate@6.0.3:
dependencies:
node-gyp-build: 4.8.0
diff --git a/tooling/typescript/internal-package.json b/tooling/typescript/internal-package.json
index 1ac41ef..b24ca00 100644
--- a/tooling/typescript/internal-package.json
+++ b/tooling/typescript/internal-package.json
@@ -2,10 +2,9 @@
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "./base.json",
"compilerOptions": {
- /** Emit types for internal packages to speed up editor performance. */
"declaration": true,
"declarationMap": true,
"noEmit": false,
- "emitDeclarationOnly": true
+ "emitDeclarationOnly": false
}
}
diff --git a/turbo.json b/turbo.json
index 6f2cbbb..5f20678 100644
--- a/turbo.json
+++ b/turbo.json
@@ -17,6 +17,16 @@
".vercel/output/**"
]
},
+ "build:backend": {
+ "dependsOn": ["^build:backend"],
+ "outputs": [
+ ".next/**",
+ "!.next/cache/**",
+ "next-env.d.ts",
+ ".output/**",
+ ".vercel/output/**"
+ ]
+ },
"dev": {
"persistent": true,
"cache": false