diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..cb6b8fbe4e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "svg.preview.background": "white" +} diff --git a/package-lock.json b/package-lock.json index fb577a7ad6..7d05d1a981 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,9 @@ "version": "0.1.0", "dependencies": { "@geist-ui/core": "^2.3.8", + "@geist-ui/react": "^2.2.5", "@hookform/resolvers": "^3.8.0", + "@phosphor-icons/react": "^2.1.7", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-aspect-ratio": "^1.1.0", @@ -39,10 +41,12 @@ "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", "class-variance-authority": "^0.7.0", + "classnames": "^2.5.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "embla-carousel-react": "^8.1.6", + "framer-motion": "^11.3.6", "geist": "^1.3.0", "input-otp": "^1.2.4", "lucide": "^0.400.0", @@ -195,6 +199,18 @@ "react-dom": ">=16.9.0" } }, + "node_modules/@geist-ui/react": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@geist-ui/react/-/react-2.2.5.tgz", + "integrity": "sha512-yPBAweYVh5HXXJ6W5ont/z6UObbfsjesg0/KTfcJzc64/zjGgp+wv2zLIdReGOTAj2R4XWoNSirNGGbQnwFe6w==", + "dependencies": { + "@babel/runtime": "^7.16.7" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/@hookform/resolvers": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.8.0.tgz", @@ -503,6 +519,18 @@ "node": ">= 8" } }, + "node_modules/@phosphor-icons/react": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.1.7.tgz", + "integrity": "sha512-g2e2eVAn1XG2a+LI09QU3IORLhnFNAFkNbo2iwbX6NOKSLOwvEMmTa7CgOzEbgNWR47z8i8kwjdvYZ5fkGx1mQ==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">= 16.8", + "react-dom": ">= 16.8" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2465,6 +2493,11 @@ "node": ">=6" } }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -3877,6 +3910,30 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/framer-motion": { + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.3.6.tgz", + "integrity": "sha512-olpX48qfoSIDjhw0RbolhOGBQmdMAXHHpSI0PFdTj5LeXChcf5F4ApShs0mQ6FPEPOj7dnEvSyB07UgRK5G9Jw==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", diff --git a/package.json b/package.json index 0afc4109ec..9a76328b7a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ }, "dependencies": { "@geist-ui/core": "^2.3.8", + "@geist-ui/react": "^2.2.5", "@hookform/resolvers": "^3.8.0", + "@phosphor-icons/react": "^2.1.7", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-aspect-ratio": "^1.1.0", @@ -41,10 +43,12 @@ "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", "class-variance-authority": "^0.7.0", + "classnames": "^2.5.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "embla-carousel-react": "^8.1.6", + "framer-motion": "^11.3.6", "geist": "^1.3.0", "input-otp": "^1.2.4", "lucide": "^0.400.0", diff --git a/src/app/Geist-Black.woff b/public/Geist-Black.woff similarity index 100% rename from src/app/Geist-Black.woff rename to public/Geist-Black.woff diff --git a/src/app/Geist-Bold.woff b/public/Geist-Bold.woff similarity index 100% rename from src/app/Geist-Bold.woff rename to public/Geist-Bold.woff diff --git a/src/app/Geist-Light.woff b/public/Geist-Light.woff similarity index 100% rename from src/app/Geist-Light.woff rename to public/Geist-Light.woff diff --git a/src/app/Geist-Medium.woff2 b/public/Geist-Medium.woff2 similarity index 100% rename from src/app/Geist-Medium.woff2 rename to public/Geist-Medium.woff2 diff --git a/src/app/GeistMono-Black.woff2 b/public/GeistMono-Black.woff2 similarity index 100% rename from src/app/GeistMono-Black.woff2 rename to public/GeistMono-Black.woff2 diff --git a/src/app/GeistMono-Light.woff b/public/GeistMono-Light.woff similarity index 100% rename from src/app/GeistMono-Light.woff rename to public/GeistMono-Light.woff diff --git a/public/dark.svg b/public/dark.svg new file mode 100644 index 0000000000..bbf8d1b8ed --- /dev/null +++ b/public/dark.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/public/light.svg b/public/light.svg new file mode 100644 index 0000000000..46f955a4fa --- /dev/null +++ b/public/light.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000000..d08744aecd --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000000..7d41ede888 --- /dev/null +++ b/public/styles.css @@ -0,0 +1,119 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --menu-border-color: #ffffff; + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 72.22% 50.59%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 5% 64.9%; + --radius: 0.5rem; + --scrollbar-color: #000000; + --fill-logo-svg: #000000; + } + .dark { + --menu-border-color: #202020; + ----arrow-bg: #202020; + --chat: #1a1a1a; + --background: 0, 0%, 0%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0, 0%, 0%; + --popover-blur: 0, 0%, 0%, 0.6; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --radius: 0.5rem; + --blur: 45px; + --scrollbar-color: #eaeaea; + --fill-logo-svg: #ffffff; + } + .dark_black { + --chat: #1a1a1a; + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --radius: 0.5rem; + --cmdk-list-height: 600px; + --cmdk-list-width: 600px; + --scrollbar-color: #eaeaea; + --fill-logo-svg: #000000; + } + + .custom_command_scroll { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-color) transparent; + scrollbar-gutter: stable; + } + .navigation-menu_arrow__sM_lS { + width: 32px; + height: 32px; + transform: rotate(180deg); + } + [cmdk-list] { + min-height: 300px; + height: var(--cmdk-list-height); + max-height: 500px; + transition: height 100ms ease; + } + [cmdk-root] { + max-width: 640px; + } + .fill_logo_svg { + fill: var(--fill-logo-svg); + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/src/app/5-1.png b/src/app/5-1.png deleted file mode 100644 index 9fb7ea03a3..0000000000 Binary files a/src/app/5-1.png and /dev/null differ diff --git a/src/app/Carolyn-Arends-Allow-For-Space-In-The-Music.jpg b/src/app/Carolyn-Arends-Allow-For-Space-In-The-Music.jpg deleted file mode 100644 index 6ce8147e72..0000000000 Binary files a/src/app/Carolyn-Arends-Allow-For-Space-In-The-Music.jpg and /dev/null differ diff --git a/src/app/CommandMenu.tsx b/src/app/CommandMenu.tsx deleted file mode 100644 index 981dff0be9..0000000000 --- a/src/app/CommandMenu.tsx +++ /dev/null @@ -1,41 +0,0 @@ -"use client"; -import * as React from "react"; -import { - Command, - CommandDialog, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, - CommandSeparator, - CommandShortcut, -} from "@/components/ui/command"; -export function CommandMenu() { - const [open, setOpen] = React.useState(false); - - React.useEffect(() => { - const down = (e: KeyboardEvent) => { - if (e.key === "k" && (e.metaKey || e.ctrlKey)) { - e.preventDefault(); - setOpen((open) => !open); - } - }; - document.addEventListener("keydown", down); - return () => document.removeEventListener("keydown", down); - }, []); - - return ( - - - - No results found. - - Calendar - Search Emoji - Calculator - - - - ); -} diff --git a/src/app/averie-woodard-th3rQu0K3aM-unsplash.jpg b/src/app/averie-woodard-th3rQu0K3aM-unsplash.jpg deleted file mode 100644 index bb5b6e8df1..0000000000 Binary files a/src/app/averie-woodard-th3rQu0K3aM-unsplash.jpg and /dev/null differ diff --git a/src/app/brooke-lark-GTMGG-xvxdU-unsplash.jpg b/src/app/brooke-lark-GTMGG-xvxdU-unsplash.jpg deleted file mode 100644 index cbc34917ba..0000000000 Binary files a/src/app/brooke-lark-GTMGG-xvxdU-unsplash.jpg and /dev/null differ diff --git a/src/app/brooke-lark-HjWzkqW1dgI-unsplash.jpg b/src/app/brooke-lark-HjWzkqW1dgI-unsplash.jpg deleted file mode 100644 index 8a4066004b..0000000000 Binary files a/src/app/brooke-lark-HjWzkqW1dgI-unsplash.jpg and /dev/null differ diff --git a/src/app/brooke-lark-R18ecx07b3c-unsplash.jpg b/src/app/brooke-lark-R18ecx07b3c-unsplash.jpg deleted file mode 100644 index 47308a07c7..0000000000 Binary files a/src/app/brooke-lark-R18ecx07b3c-unsplash.jpg and /dev/null differ diff --git a/src/app/brooke-lark-V4MBq8kue3U-unsplash.jpg b/src/app/brooke-lark-V4MBq8kue3U-unsplash.jpg deleted file mode 100644 index 9664250583..0000000000 Binary files a/src/app/brooke-lark-V4MBq8kue3U-unsplash.jpg and /dev/null differ diff --git a/src/app/chat/components/ui/accordion.tsx b/src/app/chat/components/ui/accordion.tsx deleted file mode 100644 index 8dcf9b6fa5..0000000000 --- a/src/app/chat/components/ui/accordion.tsx +++ /dev/null @@ -1,57 +0,0 @@ -"use client" - -import * as React from "react" -import * as AccordionPrimitive from "@radix-ui/react-accordion" -import { ChevronDownIcon } from "@radix-ui/react-icons" - -import { cn } from "@/lib/utils" - -const Accordion = AccordionPrimitive.Root - -const AccordionItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AccordionItem.displayName = "AccordionItem" - -const AccordionTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - svg]:rotate-180", - className - )} - {...props} - > - {children} - - - -)) -AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName - -const AccordionContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - -
{children}
-
-)) -AccordionContent.displayName = AccordionPrimitive.Content.displayName - -export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/src/app/chat/components/ui/alert-dialog.tsx b/src/app/chat/components/ui/alert-dialog.tsx deleted file mode 100644 index 57760f2ee4..0000000000 --- a/src/app/chat/components/ui/alert-dialog.tsx +++ /dev/null @@ -1,141 +0,0 @@ -"use client" - -import * as React from "react" -import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" - -import { cn } from "@/lib/utils" -import { buttonVariants } from "@/components/ui/button" - -const AlertDialog = AlertDialogPrimitive.Root - -const AlertDialogTrigger = AlertDialogPrimitive.Trigger - -const AlertDialogPortal = AlertDialogPrimitive.Portal - -const AlertDialogOverlay = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName - -const AlertDialogContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - - -)) -AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName - -const AlertDialogHeader = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-) -AlertDialogHeader.displayName = "AlertDialogHeader" - -const AlertDialogFooter = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-) -AlertDialogFooter.displayName = "AlertDialogFooter" - -const AlertDialogTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName - -const AlertDialogDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AlertDialogDescription.displayName = - AlertDialogPrimitive.Description.displayName - -const AlertDialogAction = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName - -const AlertDialogCancel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName - -export { - AlertDialog, - AlertDialogPortal, - AlertDialogOverlay, - AlertDialogTrigger, - AlertDialogContent, - AlertDialogHeader, - AlertDialogFooter, - AlertDialogTitle, - AlertDialogDescription, - AlertDialogAction, - AlertDialogCancel, -} diff --git a/src/app/chat/components/ui/alert.tsx b/src/app/chat/components/ui/alert.tsx deleted file mode 100644 index 5afd41d142..0000000000 --- a/src/app/chat/components/ui/alert.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import * as React from "react" -import { cva, type VariantProps } from "class-variance-authority" - -import { cn } from "@/lib/utils" - -const alertVariants = cva( - "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7", - { - variants: { - variant: { - default: "bg-background text-foreground", - destructive: - "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", - }, - }, - defaultVariants: { - variant: "default", - }, - } -) - -const Alert = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes & VariantProps ->(({ className, variant, ...props }, ref) => ( -
-)) -Alert.displayName = "Alert" - -const AlertTitle = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)) -AlertTitle.displayName = "AlertTitle" - -const AlertDescription = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)) -AlertDescription.displayName = "AlertDescription" - -export { Alert, AlertTitle, AlertDescription } diff --git a/src/app/chat/components/ui/aspect-ratio.tsx b/src/app/chat/components/ui/aspect-ratio.tsx deleted file mode 100644 index d6a5226f5e..0000000000 --- a/src/app/chat/components/ui/aspect-ratio.tsx +++ /dev/null @@ -1,7 +0,0 @@ -"use client" - -import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio" - -const AspectRatio = AspectRatioPrimitive.Root - -export { AspectRatio } diff --git a/src/app/chat/components/ui/avatar.tsx b/src/app/chat/components/ui/avatar.tsx deleted file mode 100644 index 51e507ba9d..0000000000 --- a/src/app/chat/components/ui/avatar.tsx +++ /dev/null @@ -1,50 +0,0 @@ -"use client" - -import * as React from "react" -import * as AvatarPrimitive from "@radix-ui/react-avatar" - -import { cn } from "@/lib/utils" - -const Avatar = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -Avatar.displayName = AvatarPrimitive.Root.displayName - -const AvatarImage = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AvatarImage.displayName = AvatarPrimitive.Image.displayName - -const AvatarFallback = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName - -export { Avatar, AvatarImage, AvatarFallback } diff --git a/src/app/chat/components/ui/badge.tsx b/src/app/chat/components/ui/badge.tsx deleted file mode 100644 index e87d62bf1a..0000000000 --- a/src/app/chat/components/ui/badge.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import * as React from "react" -import { cva, type VariantProps } from "class-variance-authority" - -import { cn } from "@/lib/utils" - -const badgeVariants = cva( - "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", - { - variants: { - variant: { - default: - "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", - secondary: - "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", - destructive: - "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", - outline: "text-foreground", - }, - }, - defaultVariants: { - variant: "default", - }, - } -) - -export interface BadgeProps - extends React.HTMLAttributes, - VariantProps {} - -function Badge({ className, variant, ...props }: BadgeProps) { - return ( -
- ) -} - -export { Badge, badgeVariants } diff --git a/src/app/chat/components/ui/breadcrumb.tsx b/src/app/chat/components/ui/breadcrumb.tsx deleted file mode 100644 index 26560efcc4..0000000000 --- a/src/app/chat/components/ui/breadcrumb.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import * as React from "react" -import { ChevronRightIcon, DotsHorizontalIcon } from "@radix-ui/react-icons" -import { Slot } from "@radix-ui/react-slot" - -import { cn } from "@/lib/utils" - -const Breadcrumb = React.forwardRef< - HTMLElement, - React.ComponentPropsWithoutRef<"nav"> & { - separator?: React.ReactNode - } ->(({ ...props }, ref) =>