diff --git a/app/api/airports/route.ts b/app/api/airports/route.ts
index e65961e..c912071 100644
--- a/app/api/airports/route.ts
+++ b/app/api/airports/route.ts
@@ -21,7 +21,29 @@ export async function GET(request: NextApiRequest, response: NextApiResponse) {
let connectionString;
if (flightDb) {
const t1 = Date.now()
- console.log('FlightDb is enabled');
+ console.log('FlightDb Feature is Enabled');
+ try {
+ const redis = new Redis(process.env.REDIS_URL || '');
+ const airportsRedisJson = await redis.get('allAirports');
+ const allAirports = JSON.parse(airportsRedisJson!);
+ const t2 = Date.now()
+ console.log("Redis speed is: " + (t2 - t1) + "ms")
+ const speed = (t2 - t1)
+
+ ldclient.track("Airport DB Latency", context, null, speed)
+
+ await ldclient.flush()
+ return Response.json({ allAirports })
+ } catch (error) {
+ ldclient.track("Airport DB Errors", context)
+ await ldclient.flush()
+ console.log("error")
+ return Response.json({ message: 'Pool went kaboom' })
+ }
+
+ } else {
+ const t1 = Date.now()
+ console.log('FlightDb is disabled');
connectionString = process.env.DATABASE_URL
try {
if (!connectionString) {
@@ -30,9 +52,8 @@ export async function GET(request: NextApiRequest, response: NextApiResponse) {
const client = postgres(connectionString)
const db = drizzle(client);
const allAirports = await db.select().from(airports)
- console.log(allAirports)
const t2 = Date.now()
- console.log("PostgreSQL speed is: " + (t2 - t1)+ "ms")
+ console.log("PostgreSQL speed is: " + (t2 - t1) + "ms")
const speed = (t2 - t1)
ldclient.track("Airport DB Latency", context, null, speed)
await ldclient.flush()
@@ -44,25 +65,6 @@ export async function GET(request: NextApiRequest, response: NextApiResponse) {
console.log("error")
return Response.json({ message: 'Pool went kaboom' })
}
- } else {
- const t1 = Date.now()
- console.log('FlightDb is disabled');
- try {
- const redis = new Redis(process.env.REDIS_URL || '');
- const airportsRedisJson = await redis.get('allAirports');
- const allAirports = JSON.parse(airportsRedisJson!);
- const t2 = Date.now()
- console.log("Redis speed is: " + (t2 - t1)+ "ms")
- const speed = (t2 - t1)
- console.log(speed)
- ldclient.track("Airport DB Latency", context, null, speed)
- await ldclient.flush()
- return Response.json({ allAirports })
- } catch (error) {
- ldclient.track("Airport DB Errors", context)
- await ldclient.flush()
- return Response.json({ message: 'Pool went kaboom' })
- }
}
}
diff --git a/app/layout.tsx b/app/layout.tsx
index d835fa5..38b9d39 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -5,6 +5,8 @@ import dynamic from "next/dynamic";
import { Suspense } from "react";
import { TripsProvider } from "@/utils/contexts/TripContext";
import LoginContext, { LoginProvider } from "@/utils/contexts/login";
+import { v4 as uuidv4 } from "uuid";
+
const inter = Inter({ subsets: ["latin"] });
@@ -15,6 +17,7 @@ const AsyncLDProvider = dynamic(() => import("@/components/ldprovider"), {
export const metadata: Metadata = {
title: "LaunchAirways",
description: "LaunchAirways Sample App",
+ viewport: "width=device-width, initial-scale=1",
};
export default function RootLayout({
@@ -22,6 +25,7 @@ export default function RootLayout({
}: Readonly<{
children: React.ReactNode;
}>) {
+
return (
diff --git a/components/ldprovider.tsx b/components/ldprovider.tsx
index 8fa8034..7bb9c78 100644
--- a/components/ldprovider.tsx
+++ b/components/ldprovider.tsx
@@ -18,8 +18,15 @@ export default function AsyncLDProvider({
asyncWithLDProvider({
clientSideID: process.env.NEXT_PUBLIC_LD_CLIENT_KEY || '',
reactOptions: {
+
useCamelCaseFlagKeys: false
},
+ options: {
+ application: {
+ id: "launch-airways",
+ version: "74a420c9dfe4981d221551e1305ba152a2342fec"
+ }
+ },
context: {
kind: "multi",
user: {
diff --git a/components/ui/airwayscomponents/airlineHero.tsx b/components/ui/airwayscomponents/airlineHero.tsx
index 1daed5b..548752c 100644
--- a/components/ui/airwayscomponents/airlineHero.tsx
+++ b/components/ui/airwayscomponents/airlineHero.tsx
@@ -3,6 +3,7 @@ import { Button } from "@/components/ui/button";
import { motion } from "framer-motion";
import LaunchSignUp from "./launchSignup";
import LoginContext from "@/utils/contexts/login";
+import { useFlags } from "launchdarkly-react-client-sdk";
const AirlineHero = ({
showSearch,
@@ -13,6 +14,8 @@ const AirlineHero = ({
}) => {
const { isLoggedIn, enrolledInLaunchClub } = useContext(LoginContext);
+ const { launchClubText} = useFlags();
+
return (
@@ -43,17 +46,16 @@ const AirlineHero = ({
initial={{ x: 300 }}
animate={{ x: 0 }}
transition={{ type: "spring", stiffness: 50 }}
- className="flex flex-col p-10 gap-y-8 z-30 w-full h-auto sm:h-[300px] sm:w-[500px]
+ className="flex flex-col p-10 gap-y-8 z-30 w-full sm:w-[500px]
bg-gradient-releases shadow-2xl mb-[5rem] lg:my-32 lg:absolute lg:right-10 rounded-lg text-white"
>
-
Are you ready to Launch?!
-
- Join Launch Club for exclusive access to flights, rewards, and much more. See
- details within!
+ {/*
Are you ready to Launch?!
*/}
+
+ {launchClubText}
-
+
diff --git a/components/ui/airwayscomponents/commandMenu.tsx b/components/ui/airwayscomponents/commandMenu.tsx
new file mode 100644
index 0000000..f446744
--- /dev/null
+++ b/components/ui/airwayscomponents/commandMenu.tsx
@@ -0,0 +1,55 @@
+"use client"
+
+import * as React from "react"
+import {
+ CalendarIcon,
+ EnvelopeClosedIcon,
+ FaceIcon,
+ GearIcon,
+ PersonIcon,
+ RocketIcon,
+} from "@radix-ui/react-icons"
+
+import {
+ CommandDialog,
+ CommandEmpty,
+ CommandGroup,
+ CommandInput,
+ CommandItem,
+ CommandList,
+ CommandSeparator,
+ CommandShortcut,
+} from "@/components/ui/command"
+
+export function CommandDialogDemo() {
+ const [open, setOpen] = React.useState(false)
+
+ React.useEffect(() => {
+ const down = (e: KeyboardEvent) => {
+ if (e.key === "j" && (e.metaKey || e.ctrlKey)) {
+ e.preventDefault()
+ setOpen((open) => !open)
+ }
+ }
+
+ document.addEventListener("keydown", down)
+ return () => document.removeEventListener("keydown", down)
+ }, [])
+
+ return (
+ <>
+
+
+
+ No results found.
+
+
+ {console.log("test")}} className="mr-2 h-4 w-4" />
+ Create Chaos
+
+
+
+
+ >
+ )
+}
diff --git a/components/ui/airwayscomponents/launchSignup.tsx b/components/ui/airwayscomponents/launchSignup.tsx
index 5074524..60b39da 100644
--- a/components/ui/airwayscomponents/launchSignup.tsx
+++ b/components/ui/airwayscomponents/launchSignup.tsx
@@ -46,6 +46,8 @@ export default function LaunchSignUp() {
const context = await client?.getContext();
context.user.launchclub = "standard";
client.identify(context);
+ client?.track("registration-completed", context)
+ client?.flush()
};
const perks = [
@@ -127,6 +129,9 @@ export default function LaunchSignUp() {
Introducing our the new Launch Airways loyalty program. Join now for exclusive
member perks that increase the more you fly!
+
{perks.map((perks, index) => (
,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+
+
+))
+Checkbox.displayName = CheckboxPrimitive.Root.displayName
+
+export { Checkbox }
diff --git a/components/ui/form.tsx b/components/ui/form.tsx
new file mode 100644
index 0000000..4603f8b
--- /dev/null
+++ b/components/ui/form.tsx
@@ -0,0 +1,176 @@
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { Slot } from "@radix-ui/react-slot"
+import {
+ Controller,
+ ControllerProps,
+ FieldPath,
+ FieldValues,
+ FormProvider,
+ useFormContext,
+} from "react-hook-form"
+
+import { cn } from "@/lib/utils"
+import { Label } from "@/components/ui/label"
+
+const Form = FormProvider
+
+type FormFieldContextValue<
+ TFieldValues extends FieldValues = FieldValues,
+ TName extends FieldPath = FieldPath
+> = {
+ name: TName
+}
+
+const FormFieldContext = React.createContext(
+ {} as FormFieldContextValue
+)
+
+const FormField = <
+ TFieldValues extends FieldValues = FieldValues,
+ TName extends FieldPath = FieldPath
+>({
+ ...props
+}: ControllerProps) => {
+ return (
+
+
+
+ )
+}
+
+const useFormField = () => {
+ const fieldContext = React.useContext(FormFieldContext)
+ const itemContext = React.useContext(FormItemContext)
+ const { getFieldState, formState } = useFormContext()
+
+ const fieldState = getFieldState(fieldContext.name, formState)
+
+ if (!fieldContext) {
+ throw new Error("useFormField should be used within ")
+ }
+
+ const { id } = itemContext
+
+ return {
+ id,
+ name: fieldContext.name,
+ formItemId: `${id}-form-item`,
+ formDescriptionId: `${id}-form-item-description`,
+ formMessageId: `${id}-form-item-message`,
+ ...fieldState,
+ }
+}
+
+type FormItemContextValue = {
+ id: string
+}
+
+const FormItemContext = React.createContext(
+ {} as FormItemContextValue
+)
+
+const FormItem = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => {
+ const id = React.useId()
+
+ return (
+
+
+
+ )
+})
+FormItem.displayName = "FormItem"
+
+const FormLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => {
+ const { error, formItemId } = useFormField()
+
+ return (
+
+ )
+})
+FormLabel.displayName = "FormLabel"
+
+const FormControl = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ ...props }, ref) => {
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField()
+
+ return (
+
+ )
+})
+FormControl.displayName = "FormControl"
+
+const FormDescription = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => {
+ const { formDescriptionId } = useFormField()
+
+ return (
+
+ )
+})
+FormDescription.displayName = "FormDescription"
+
+const FormMessage = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, children, ...props }, ref) => {
+ const { error, formMessageId } = useFormField()
+ const body = error ? String(error?.message) : children
+
+ if (!body) {
+ return null
+ }
+
+ return (
+
+ {body}
+
+ )
+})
+FormMessage.displayName = "FormMessage"
+
+export {
+ useFormField,
+ Form,
+ FormItem,
+ FormLabel,
+ FormControl,
+ FormDescription,
+ FormMessage,
+ FormField,
+}
diff --git a/components/ui/label.tsx b/components/ui/label.tsx
new file mode 100644
index 0000000..5341821
--- /dev/null
+++ b/components/ui/label.tsx
@@ -0,0 +1,26 @@
+"use client"
+
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const labelVariants = cva(
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
+)
+
+const Label = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, ...props }, ref) => (
+
+))
+Label.displayName = LabelPrimitive.Root.displayName
+
+export { Label }
diff --git a/package-lock.json b/package-lock.json
index 3525d79..688a7d0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,12 +12,14 @@
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-dropdown-menu": "^2.0.6",
+ "@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-popover": "^1.0.7",
"@radix-ui/react-select": "^2.0.0",
"@radix-ui/react-slot": "^1.0.2",
"@radix-ui/react-toast": "^1.1.5",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
+ "cmdk": "^1.0.0",
"cookies-next": "^4.1.1",
"date-fns": "^3.5.0",
"drizzle-orm": "^0.30.2",
@@ -1461,6 +1463,14 @@
}
}
},
+ "node_modules/@radix-ui/react-icons": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
+ "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x"
+ }
+ },
"node_modules/@radix-ui/react-id": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz",
@@ -2314,6 +2324,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/cmdk": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz",
+ "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==",
+ "dependencies": {
+ "@radix-ui/react-dialog": "1.0.5",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
diff --git a/package.json b/package.json
index 455a5fb..6d2ec0c 100644
--- a/package.json
+++ b/package.json
@@ -10,10 +10,14 @@
"generate": "drizzle-kit generate:pg"
},
"dependencies": {
+ "@hookform/resolvers": "^3.3.4",
"@launchdarkly/node-server-sdk": "^9.2.1",
"@radix-ui/react-avatar": "^1.0.4",
+ "@radix-ui/react-checkbox": "^1.0.4",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-dropdown-menu": "^2.0.6",
+ "@radix-ui/react-icons": "^1.3.0",
+ "@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-popover": "^1.0.7",
"@radix-ui/react-select": "^2.0.0",
"@radix-ui/react-slot": "^1.0.2",
@@ -37,10 +41,12 @@
"react-day-picker": "^8.10.0",
"react-device-detect": "^2.2.3",
"react-dom": "^18",
+ "react-hook-form": "^7.51.1",
"react-spinners": "^0.13.8",
"tailwind-merge": "^2.2.1",
"tailwindcss-animate": "^1.0.7",
- "uuid": "^9.0.1"
+ "uuid": "^9.0.1",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@types/lodash": "^4.17.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1cf0ea4..b752ce5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,18 +5,30 @@ settings:
excludeLinksFromLockfile: false
dependencies:
+ '@hookform/resolvers':
+ specifier: ^3.3.4
+ version: 3.3.4(react-hook-form@7.51.1)
'@launchdarkly/node-server-sdk':
specifier: ^9.2.1
version: 9.2.1
'@radix-ui/react-avatar':
specifier: ^1.0.4
version: 1.0.4(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-checkbox':
+ specifier: ^1.0.4
+ version: 1.0.4(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-dialog':
specifier: ^1.0.5
version: 1.0.5(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-dropdown-menu':
specifier: ^2.0.6
version: 2.0.6(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-icons':
+ specifier: ^1.3.0
+ version: 1.3.0(react@18.2.0)
+ '@radix-ui/react-label':
+ specifier: ^2.0.2
+ version: 2.0.2(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-popover':
specifier: ^1.0.7
version: 1.0.7(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
@@ -86,6 +98,9 @@ dependencies:
react-dom:
specifier: ^18
version: 18.2.0(react@18.2.0)
+ react-hook-form:
+ specifier: ^7.51.1
+ version: 7.51.1(react@18.2.0)
react-spinners:
specifier: ^0.13.8
version: 0.13.8(react-dom@18.2.0)(react@18.2.0)
@@ -98,6 +113,9 @@ dependencies:
uuid:
specifier: ^9.0.1
version: 9.0.1
+ zod:
+ specifier: ^3.22.4
+ version: 3.22.4
devDependencies:
'@types/lodash':
@@ -597,6 +615,14 @@ packages:
resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
dev: false
+ /@hookform/resolvers@3.3.4(react-hook-form@7.51.1):
+ resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==}
+ peerDependencies:
+ react-hook-form: ^7.0.0
+ dependencies:
+ react-hook-form: 7.51.1(react@18.2.0)
+ dev: false
+
/@ioredis/commands@1.2.0:
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
dev: false
@@ -824,6 +850,34 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
+ /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==}
+ 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
+ dependencies:
+ '@babel/runtime': 7.24.0
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.64)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.64)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.64)(react@18.2.0)
+ '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.64)(react@18.2.0)
+ '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.64)(react@18.2.0)
+ '@types/react': 18.2.64
+ '@types/react-dom': 18.2.21
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
/@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
peerDependencies:
@@ -1013,6 +1067,14 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
+ /@radix-ui/react-icons@1.3.0(react@18.2.0):
+ resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
+ peerDependencies:
+ react: ^16.x || ^17.x || ^18.x
+ dependencies:
+ react: 18.2.0
+ dev: false
+
/@radix-ui/react-id@1.0.1(@types/react@18.2.64)(react@18.2.0):
resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
peerDependencies:
@@ -1028,6 +1090,27 @@ packages:
react: 18.2.0
dev: false
+ /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0):
+ 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
+ dependencies:
+ '@babel/runtime': 7.24.0
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.64
+ '@types/react-dom': 18.2.21
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
/@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.21)(@types/react@18.2.64)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==}
peerDependencies:
@@ -2787,6 +2870,15 @@ packages:
scheduler: 0.23.0
dev: false
+ /react-hook-form@7.51.1(react@18.2.0):
+ resolution: {integrity: sha512-ifnBjl+kW0ksINHd+8C/Gp6a4eZOdWyvRv0UBaByShwU8JbVx5hTcTWEcd5VdybvmPTATkVVXk9npXArHmo56w==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+ dependencies:
+ react: 18.2.0
+ dev: false
+
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
dev: false
@@ -3233,4 +3325,3 @@ packages:
/zod@3.22.4:
resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
- dev: true
diff --git a/public/Bedrock.png b/public/Bedrock.png
deleted file mode 100644
index bff66bb..0000000
Binary files a/public/Bedrock.png and /dev/null differ
diff --git a/public/Business.png b/public/Business.png
deleted file mode 100644
index 737399b..0000000
Binary files a/public/Business.png and /dev/null differ
diff --git a/public/CC.png b/public/CC.png
deleted file mode 100644
index 2fce0e8..0000000
Binary files a/public/CC.png and /dev/null differ
diff --git a/public/Card-1-New.png b/public/Card-1-New.png
deleted file mode 100644
index 31ac11e..0000000
Binary files a/public/Card-1-New.png and /dev/null differ
diff --git a/public/Card-2-New.png b/public/Card-2-New.png
deleted file mode 100644
index 1be6c7d..0000000
Binary files a/public/Card-2-New.png and /dev/null differ
diff --git a/public/Card-3-New.png b/public/Card-3-New.png
deleted file mode 100644
index 1d6cab8..0000000
Binary files a/public/Card-3-New.png and /dev/null differ
diff --git a/public/Card-4-New.png b/public/Card-4-New.png
deleted file mode 100644
index b0fd57e..0000000
Binary files a/public/Card-4-New.png and /dev/null differ
diff --git a/public/Cards.png b/public/Cards.png
deleted file mode 100644
index a39bcc1..0000000
Binary files a/public/Cards.png and /dev/null differ
diff --git a/public/Checking.png b/public/Checking.png
deleted file mode 100644
index 1a60425..0000000
Binary files a/public/Checking.png and /dev/null differ
diff --git a/public/Credit.png b/public/Credit.png
deleted file mode 100644
index 2d43945..0000000
Binary files a/public/Credit.png and /dev/null differ
diff --git a/public/ToggleBank.png b/public/ToggleBank.png
deleted file mode 100644
index b78b630..0000000
Binary files a/public/ToggleBank.png and /dev/null differ
diff --git a/public/ToggleBankBlue.png b/public/ToggleBankBlue.png
deleted file mode 100644
index 9b67026..0000000
Binary files a/public/ToggleBankBlue.png and /dev/null differ
diff --git a/public/ToggleBankHeader.png b/public/ToggleBankHeader.png
deleted file mode 100644
index 3ab608d..0000000
Binary files a/public/ToggleBankHeader.png and /dev/null differ
diff --git a/public/computer.png b/public/computer.png
deleted file mode 100644
index e14fb8e..0000000
Binary files a/public/computer.png and /dev/null differ
diff --git a/public/computers.png b/public/computers.png
deleted file mode 100644
index e69bdc7..0000000
Binary files a/public/computers.png and /dev/null differ
diff --git a/public/credit.jpg b/public/credit.jpg
deleted file mode 100644
index b59cd7c..0000000
Binary files a/public/credit.jpg and /dev/null differ
diff --git a/public/electronics.png b/public/electronics.png
deleted file mode 100644
index 9466283..0000000
Binary files a/public/electronics.png and /dev/null differ
diff --git a/public/marketinfo1.png b/public/marketinfo1.png
deleted file mode 100644
index 9b2f3dd..0000000
Binary files a/public/marketinfo1.png and /dev/null differ
diff --git a/public/marketinfo2.png b/public/marketinfo2.png
deleted file mode 100644
index dd2ff79..0000000
Binary files a/public/marketinfo2.png and /dev/null differ
diff --git a/public/marketinfo3.png b/public/marketinfo3.png
deleted file mode 100644
index 5376ceb..0000000
Binary files a/public/marketinfo3.png and /dev/null differ
diff --git a/public/marketplace.png b/public/marketplace.png
deleted file mode 100644
index 84b0c39..0000000
Binary files a/public/marketplace.png and /dev/null differ
diff --git a/public/marketplace.svg b/public/marketplace.svg
deleted file mode 100644
index 7f177c5..0000000
--- a/public/marketplace.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/public/toys.png b/public/toys.png
deleted file mode 100644
index 41d6e97..0000000
Binary files a/public/toys.png and /dev/null differ
diff --git a/public/vr.png b/public/vr.png
deleted file mode 100644
index 3943283..0000000
Binary files a/public/vr.png and /dev/null differ