diff --git a/app/creator/(home)/page.tsx b/app/creator/(home)/page.tsx index 2a183f6..e0856a0 100644 --- a/app/creator/(home)/page.tsx +++ b/app/creator/(home)/page.tsx @@ -1,7 +1,17 @@ -export default function CreatorPage() { - return ( -
-

Creator

-
- ) -} \ No newline at end of file +import { Home_Banner } from "@/components/Home_Banner"; +import Recent_Creation from "@/components/Recent_Creation"; + + +const CreatorPage: React.FC = () => { + return ( +
+ + +
+ ); +}; + + + + +export default CreatorPage; diff --git a/app/creator/reader/page.tsx b/app/creator/reader/page.tsx new file mode 100644 index 0000000..7aa332f --- /dev/null +++ b/app/creator/reader/page.tsx @@ -0,0 +1,232 @@ +"use client" + +import { ArrowLeft2, Setting2 } from 'iconsax-react'; +import Image from 'next/image'; +import React, { useState, useEffect, useRef } from 'react'; +import Link from 'next/link'; +import HoverCards from '@/components/cards/HoverCards'; +import { Button } from '@/components/ui/button'; + + +interface Page { + id: number; + content: React.ReactNode; + videoSrc: string; +} + +export default function Reader() { + const [currentPageIndex, setCurrentPageIndex] = useState(0); + const [transitioning, setTransitioning] = useState(false); + const videoRefs = useRef<(HTMLVideoElement | null)[]>([]); + + // Add wheel event handler + const handleWheel = (event: WheelEvent) => { + if (transitioning) return; + + // Scroll down + if (event.deltaY > 0) { + handleNextPage(); + } + // Scroll up + else if (event.deltaY < 0) { + handlePreviousPage(); + } + }; + + // Add previous page handler + const handlePreviousPage = () => { + if (transitioning) return; + + setTransitioning(true); + + if (currentPageIndex > 0) { + setCurrentPageIndex(prev => prev - 1); + } else { + setCurrentPageIndex(pages.length - 1); + } + + setTimeout(() => { + setTransitioning(false); + }, 1000); + }; + + // Add useEffect for wheel event listener + useEffect(() => { + window.addEventListener('wheel', handleWheel); + return () => { + window.removeEventListener('wheel', handleWheel); + }; + }, [currentPageIndex, transitioning]); // Add dependencies + + // Content structured to match your design + const pages: Page[] = [ + { + id: 1, + videoSrc: "/videos/background1.mp4", + content: ( + <> +

BRUTAL

+
+

Through the rain, flickering neon lights spell out of and illuminate an entrance to nightclub.

+

A stunning light show cascades across a dance floor crowded by partiers and adorned by dozens of video monitors.

+

WADE HARPER, an anxious businessman dressed in a black suit, follows two burly bouncers up a flight of stairs toward the at the back of the warehouse.

+
+ + ) + }, + { + id: 2, + videoSrc: "/videos/background2.mp4", + content: ( + <> +

BRUTAL

+
+

"Wade Harper! What is up, old friend! It's been too long, man!" exclaims HANDSOME TWIN #1.

+

HANDSOME TWIN #2, more anxious and pushy, quickly interjects, "So do you have it for us?"

+

Wade reaches into his breast pocket.

+

"Yes, I do."

+

Wade considers the in his hand and fiddles with the device. The twins smile widely with delight.

+
+ + ) + }, + { + id: 3, + videoSrc: "/videos/background3.mp4", + content: ( + <> +

BRUTAL

+
+

Man, yes! Didn't I tell you not to question this man! I knew he was going to come through for us!" Handsome Twin #1 gloats.

+

Handsome Twin #2 sighs in satisfaction. " " he says, his tense demeanor turning to relief.

+

Wade hands the device to Handsome Twin #2.

+

"You will find all of the credentials you need on the drive. The shipment will arrive at the tomorrow night," Wade explains.

+
+ + ) + } + ]; + + // Add this function to validate video sources + const isValidVideoSrc = (src: string): boolean => { + return Boolean(src && src.length > 0); + }; + + useEffect(() => { + // Start playing the current video when the page changes + if (videoRefs.current[currentPageIndex]) { + videoRefs.current.forEach((video, index) => { + if (index === currentPageIndex && video) { + video.currentTime = 0; + video.play().catch(err => console.error("Error playing video:", err)); + } else if (video) { + video.pause(); + } + }); + } + }, [currentPageIndex]); + + const handleNextPage = () => { + if (transitioning) return; + + setTransitioning(true); + + if (currentPageIndex < pages.length - 1) { + setCurrentPageIndex(prev => prev + 1); + } else { + setCurrentPageIndex(0); + } + + setTimeout(() => { + setTransitioning(false); + }, 1000); + }; + + return ( +
+ {/* NavBar */} +
+ {/* Logo */} + + +
+ + + + Wodey + Wodey +
+ + {/* Brutal Logo - Center */} +
+ Wodey +
+ + {/* Settings */} + +
+ + {/* Video Sections */} +
+ {pages.map((page, index) => ( +
+ {/* Background Video */} + + + {/* Dark Overlay */} +
+ + {/* Content */} +
+
+ {page.content} +
+
+
+ ))} +
+ + {/* Navigation Button - Down Arrow */} + +
+ ); +} diff --git a/app/creator/studio/layout.tsx b/app/creator/studio/layout.tsx index ccdf5fa..98d130d 100644 --- a/app/creator/studio/layout.tsx +++ b/app/creator/studio/layout.tsx @@ -51,10 +51,12 @@ function layout({ children }: Props) { + + + ))} + + +
+ {images.map((image, index) => ( +
+ advertizers + +
+ ))} +
+ + ); +}; + +export default Page; diff --git a/app/creator/marketplace/artists/_components/Artist_Content.tsx b/app/marketplace/artists/_components/Artist_Content.tsx similarity index 98% rename from app/creator/marketplace/artists/_components/Artist_Content.tsx rename to app/marketplace/artists/_components/Artist_Content.tsx index 1dfabe9..29cdc24 100644 --- a/app/creator/marketplace/artists/_components/Artist_Content.tsx +++ b/app/marketplace/artists/_components/Artist_Content.tsx @@ -1,9 +1,8 @@ import { Input } from '@/components/ui/input'; -import { Search, Heart } from 'lucide-react'; +import { Heart } from 'lucide-react'; import Image from 'next/image'; import { Checkbox } from '@/components/ui/checkbox'; import { Button } from '@/components/ui/button'; -import SearchBar from './SearchBar'; const mockItems = [ { diff --git a/app/creator/marketplace/artists/_components/Quick_Actions.tsx b/app/marketplace/artists/_components/Quick_Actions.tsx similarity index 100% rename from app/creator/marketplace/artists/_components/Quick_Actions.tsx rename to app/marketplace/artists/_components/Quick_Actions.tsx diff --git a/app/creator/marketplace/artists/_components/SearchBar.tsx b/app/marketplace/artists/_components/SearchBar.tsx similarity index 100% rename from app/creator/marketplace/artists/_components/SearchBar.tsx rename to app/marketplace/artists/_components/SearchBar.tsx diff --git a/app/creator/marketplace/artists/page.tsx b/app/marketplace/artists/page.tsx similarity index 100% rename from app/creator/marketplace/artists/page.tsx rename to app/marketplace/artists/page.tsx diff --git a/app/creator/marketplace/layout.tsx b/app/marketplace/layout.tsx similarity index 100% rename from app/creator/marketplace/layout.tsx rename to app/marketplace/layout.tsx diff --git a/components/Home_Banner.tsx b/components/Home_Banner.tsx new file mode 100644 index 0000000..ed7c7a3 --- /dev/null +++ b/components/Home_Banner.tsx @@ -0,0 +1,21 @@ +import React from "react"; + +export const Home_Banner: React.FC = () => { + return ( +
+
+

Bring Your Story to Life

+

+ Start creating your own ebook today — share your voice, inspire + readers, and publish to the world in just a few clicks. +

+ +
+
+
+
+
+
+
+ ); +}; diff --git a/components/Recent_Card.tsx b/components/Recent_Card.tsx new file mode 100644 index 0000000..97e58d9 --- /dev/null +++ b/components/Recent_Card.tsx @@ -0,0 +1,31 @@ +import Image from "next/image"; +import React from "react"; + +interface RecentCardProps { + image: string; + title: string; + tag: string; + description: string; +} + +const Recent_Card: React.FC = ({ image, title, tag, description }) => { + return ( +
+
+ image +
+

{title}

+

+ {tag} {description} +

+
+ ); +}; + +export default Recent_Card; diff --git a/components/Recent_Creation.tsx b/components/Recent_Creation.tsx new file mode 100644 index 0000000..0fe942c --- /dev/null +++ b/components/Recent_Creation.tsx @@ -0,0 +1,67 @@ +import Image from "next/image"; +import React from "react"; +import { FaSlidersH } from "react-icons/fa"; +import Recent_Card from "./Recent_Card"; +import { + ContextMenu, + ContextMenuContent, + ContextMenuItem, + ContextMenuTrigger, +} from "@/components/ui/context-menu" +import Link from "next/link"; + + + +const Recent_Creation: React.FC = () => { + return ( +
+
+

Recent creations

+ +
+
+ + + + + + View as Reader + Continue editing + + + + + + + +
+
+ ); +}; + +export default Recent_Creation; diff --git a/components/cards/HoverCards.tsx b/components/cards/HoverCards.tsx new file mode 100644 index 0000000..8e96747 --- /dev/null +++ b/components/cards/HoverCards.tsx @@ -0,0 +1,61 @@ +'use client' + +import React from 'react' +import Image from 'next/image' +import Link from 'next/link' +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from "@/components/ui/hover-card" + +export interface HoverCardsProps { + triggerText: string + videourl: string + description: string + linkText?: string + link?: string +} + +export default function HoverCards({ + triggerText, + videourl, + description, + link = '#', + linkText = 'Purchase & Read More' +}: HoverCardsProps) { + return ( + + +

{triggerText}

+
+ +
+
+ + +
+ +
+

+ {description} +

+ + + + {linkText} + + +
+
+
+
+ ) +} \ No newline at end of file diff --git a/components/common/SideBar.tsx b/components/common/SideBar.tsx index b176495..fd7431d 100644 --- a/components/common/SideBar.tsx +++ b/components/common/SideBar.tsx @@ -1,3 +1,4 @@ +'use client' import React from 'react'; import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"; import { @@ -21,8 +22,6 @@ import { Skeleton } from '@/components/ui/skeleton'; import { Input } from '@/components/ui/input'; import Image from "next/image"; - - const CategoryHeading = ({ title }: { title: string }) => (
{title} @@ -30,6 +29,8 @@ const CategoryHeading = ({ title }: { title: string }) => ( ); const Sidebar = () => { + + return (
@@ -115,8 +116,11 @@ const Sidebar = () => {
+ } label="Stock Photo" isGhost={false} buttonWidth={65} /> - } label="Stock Video" isGhost={false} buttonWidth={65} /> + + + } label="Stock Video" isGhost={false} buttonWidth={65} /> } label="Shapes" isGhost={false} buttonWidth={65} /> } label="Gif" isGhost={false} buttonWidth={65} /> } label="Sticker" isGhost={false} buttonWidth={65} /> diff --git a/components/ui/context-menu.tsx b/components/ui/context-menu.tsx new file mode 100644 index 0000000..e29ad05 --- /dev/null +++ b/components/ui/context-menu.tsx @@ -0,0 +1,252 @@ +"use client" + +import * as React from "react" +import * as ContextMenuPrimitive from "@radix-ui/react-context-menu" +import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react" + +import { cn } from "@/lib/utils" + +function ContextMenu({ + ...props +}: React.ComponentProps) { + return +} + +function ContextMenuTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuGroup({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuPortal({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuSub({ + ...props +}: React.ComponentProps) { + return +} + +function ContextMenuRadioGroup({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuSubTrigger({ + className, + inset, + children, + ...props +}: React.ComponentProps & { + inset?: boolean +}) { + return ( + + {children} + + + ) +} + +function ContextMenuSubContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function ContextMenuItem({ + className, + inset, + variant = "default", + ...props +}: React.ComponentProps & { + inset?: boolean + variant?: "default" | "destructive" +}) { + return ( + + ) +} + +function ContextMenuCheckboxItem({ + className, + children, + checked, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function ContextMenuRadioItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function ContextMenuLabel({ + className, + inset, + ...props +}: React.ComponentProps & { + inset?: boolean +}) { + return ( + + ) +} + +function ContextMenuSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function ContextMenuShortcut({ + className, + ...props +}: React.ComponentProps<"span">) { + return ( + + ) +} + +export { + ContextMenu, + ContextMenuTrigger, + ContextMenuContent, + ContextMenuItem, + ContextMenuCheckboxItem, + ContextMenuRadioItem, + ContextMenuLabel, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuGroup, + ContextMenuPortal, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuRadioGroup, +} diff --git a/components/ui/hover-card.tsx b/components/ui/hover-card.tsx new file mode 100644 index 0000000..e754186 --- /dev/null +++ b/components/ui/hover-card.tsx @@ -0,0 +1,44 @@ +"use client" + +import * as React from "react" +import * as HoverCardPrimitive from "@radix-ui/react-hover-card" + +import { cn } from "@/lib/utils" + +function HoverCard({ + ...props +}: React.ComponentProps) { + return +} + +function HoverCardTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function HoverCardContent({ + className, + align = "center", + sideOffset = 4, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { HoverCard, HoverCardTrigger, HoverCardContent } diff --git a/package.json b/package.json index 372180c..b06ecc8 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ }, "dependencies": { "@radix-ui/react-avatar": "^1.1.7", + "@radix-ui/react-context-menu": "^2.2.12", + "@radix-ui/react-hover-card": "^1.1.11", "@radix-ui/react-checkbox": "^1.2.3", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.9", @@ -20,6 +22,7 @@ "next": "15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0", + "react-icons": "^5.5.0", "tailwind-merge": "^3.2.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2dbf547..8fae87f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,12 @@ importers: '@radix-ui/react-checkbox': specifier: ^1.2.3 version: 1.2.3(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context-menu': + specifier: ^2.2.12 + version: 2.2.12(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-hover-card': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.0 version: 1.2.0(@types/react@19.1.2)(react@19.1.0) @@ -41,6 +47,9 @@ importers: react-dom: specifier: ^19.0.0 version: 19.1.0(react@19.1.0) + react-icons: + specifier: ^5.5.0 + version: 5.5.0(react@19.1.0) tailwind-merge: specifier: ^3.2.0 version: 3.2.0 @@ -129,6 +138,21 @@ packages: resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -335,6 +359,19 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + '@radix-ui/react-arrow@1.1.4': + resolution: {integrity: sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-avatar@1.1.7': resolution: {integrity: sha512-V7ODUt4mUoJTe3VUxZw6nfURxaPALVqmDQh501YmaQsk3D8AZQrOPRnfKn4H7JGDLBc0KqLhT94H79nV88ppNg==} peerDependencies: @@ -383,6 +420,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-context-menu@2.2.12': + resolution: {integrity: sha512-5UFKuTMX8F2/KjHvyqu9IYT8bEtDSCJwwIx1PghBo4jh9S6jJVsceq9xIjqsOVcxsynGwV5eaqPE3n/Cu+DrSA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: @@ -401,6 +451,54 @@ packages: '@types/react': optional: true + '@radix-ui/react-dismissable-layer@1.1.7': + resolution: {integrity: sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.4': + resolution: {integrity: sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-hover-card@1.1.11': + resolution: {integrity: sha512-q9h9grUpGZKR3MNhtVCLVnPGmx1YnzBgGR+O40mhSNGsUnkR+LChVH8c7FB0mkS+oudhd8KAkZGTJPJCjdAPIg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-id@1.1.1': resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: @@ -410,6 +508,45 @@ packages: '@types/react': optional: true + '@radix-ui/react-menu@2.1.12': + resolution: {integrity: sha512-+qYq6LfbiGo97Zz9fioX83HCiIYYFNs8zAsVCMQrIakoNYylIzWuoD/anAD3UzvvR6cnswmfRFJFq/zYYq/k7Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.4': + resolution: {integrity: sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.6': + resolution: {integrity: sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-presence@1.1.4': resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: @@ -498,6 +635,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-is-hydrated@0.1.0': resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: @@ -525,6 +671,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: @@ -534,6 +689,9 @@ packages: '@types/react': optional: true + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -809,6 +967,10 @@ 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.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -985,6 +1147,9 @@ packages: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -1217,6 +1382,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -1700,9 +1869,44 @@ packages: peerDependencies: react: ^19.1.0 + react-icons@5.5.0: + resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} + peerDependencies: + react: '*' + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react@19.1.0: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} @@ -1939,6 +2143,26 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-sync-external-store@1.5.0: resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: @@ -2037,6 +2261,23 @@ snapshots: '@eslint/core': 0.13.0 levn: 0.4.1 + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@floating-ui/utils@0.2.9': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -2181,6 +2422,15 @@ snapshots: '@radix-ui/primitive@1.1.2': {} + '@radix-ui/react-arrow@1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + '@radix-ui/react-avatar@1.1.7(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) @@ -2228,6 +2478,20 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/react-context-menu@2.2.12(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-menu': 2.1.12(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + '@radix-ui/react-context@1.1.2(@types/react@19.1.2)(react@19.1.0)': dependencies: react: 19.1.0 @@ -2240,6 +2504,53 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/react-dismissable-layer@1.1.7(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-focus-scope@1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-hover-card@1.1.11(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + '@radix-ui/react-id@1.1.1(@types/react@19.1.2)(react@19.1.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) @@ -2247,6 +2558,60 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/react-menu@2.1.12(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.7(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-popper@1.2.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-portal@1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) @@ -2327,6 +2692,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.2)(react@19.1.0)': dependencies: react: 19.1.0 @@ -2346,6 +2718,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.2)(react@19.1.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) @@ -2353,6 +2732,8 @@ snapshots: optionalDependencies: '@types/react': 19.1.2 + '@radix-ui/rect@1.1.1': {} + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.11.0': {} @@ -2601,6 +2982,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -2805,6 +3190,8 @@ snapshots: detect-libc@2.0.4: {} + detect-node-es@1.1.0: {} + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -3199,6 +3586,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -3665,8 +4054,39 @@ snapshots: react: 19.1.0 scheduler: 0.26.0 + react-icons@5.5.0(react@19.1.0): + dependencies: + react: 19.1.0 + react-is@16.13.1: {} + react-remove-scroll-bar@2.3.8(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + + react-remove-scroll@2.6.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + + react-style-singleton@2.2.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + get-nonce: 1.0.1 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + react@19.1.0: {} reflect.getprototypeof@1.0.10: @@ -4000,6 +4420,21 @@ snapshots: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + + use-sidecar@1.1.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + use-sync-external-store@1.5.0(react@19.1.0): dependencies: react: 19.1.0 diff --git a/public/images/230f1945d640ae4c0325f23dcb3365b59ae08277.png b/public/images/230f1945d640ae4c0325f23dcb3365b59ae08277.png new file mode 100644 index 0000000..82aec81 Binary files /dev/null and b/public/images/230f1945d640ae4c0325f23dcb3365b59ae08277.png differ diff --git a/public/images/292c2c8f2ea3276c44dc6ade84e687b9cae3d267.png b/public/images/292c2c8f2ea3276c44dc6ade84e687b9cae3d267.png new file mode 100644 index 0000000..af6e5ff Binary files /dev/null and b/public/images/292c2c8f2ea3276c44dc6ade84e687b9cae3d267.png differ diff --git a/public/images/37934e37222a44601017b84963a414627d8e095f.png b/public/images/37934e37222a44601017b84963a414627d8e095f.png new file mode 100644 index 0000000..8b58521 Binary files /dev/null and b/public/images/37934e37222a44601017b84963a414627d8e095f.png differ diff --git a/public/images/89f1cacd4041e59eb162ffcb0f8080dc179fe415.png b/public/images/89f1cacd4041e59eb162ffcb0f8080dc179fe415.png new file mode 100644 index 0000000..338032f Binary files /dev/null and b/public/images/89f1cacd4041e59eb162ffcb0f8080dc179fe415.png differ diff --git a/public/images/96c1b745b59fe1512c73f653d7b5e7be3ee54e58.png b/public/images/96c1b745b59fe1512c73f653d7b5e7be3ee54e58.png new file mode 100644 index 0000000..d017c56 Binary files /dev/null and b/public/images/96c1b745b59fe1512c73f653d7b5e7be3ee54e58.png differ diff --git a/public/images/Airbnb_1.png b/public/images/Airbnb_1.png new file mode 100644 index 0000000..f5e9714 Binary files /dev/null and b/public/images/Airbnb_1.png differ diff --git a/public/images/Airbnb_2.png b/public/images/Airbnb_2.png new file mode 100644 index 0000000..6bafb96 Binary files /dev/null and b/public/images/Airbnb_2.png differ diff --git a/public/images/Airbnb_3.png b/public/images/Airbnb_3.png new file mode 100644 index 0000000..5399f7e Binary files /dev/null and b/public/images/Airbnb_3.png differ diff --git a/public/images/Amazon_AWS.png b/public/images/Amazon_AWS.png new file mode 100644 index 0000000..c231e63 Binary files /dev/null and b/public/images/Amazon_AWS.png differ diff --git a/public/images/Amazon_echo.png b/public/images/Amazon_echo.png new file mode 100644 index 0000000..76a6a92 Binary files /dev/null and b/public/images/Amazon_echo.png differ diff --git a/public/images/Banner.png b/public/images/Banner.png new file mode 100644 index 0000000..6e6ec38 Binary files /dev/null and b/public/images/Banner.png differ diff --git a/public/images/Element.png b/public/images/Element.png new file mode 100644 index 0000000..4732ad4 Binary files /dev/null and b/public/images/Element.png differ diff --git a/public/images/Huawei.png b/public/images/Huawei.png new file mode 100644 index 0000000..1f098eb Binary files /dev/null and b/public/images/Huawei.png differ diff --git a/public/images/Netflix.png b/public/images/Netflix.png new file mode 100644 index 0000000..874905b Binary files /dev/null and b/public/images/Netflix.png differ diff --git a/public/images/Qonto.png b/public/images/Qonto.png new file mode 100644 index 0000000..3a2360e Binary files /dev/null and b/public/images/Qonto.png differ diff --git a/public/images/Samsung.png b/public/images/Samsung.png new file mode 100644 index 0000000..e9785cd Binary files /dev/null and b/public/images/Samsung.png differ diff --git a/public/images/aa31529b95af9b43380b88b11692b0a6f7999878.png b/public/images/aa31529b95af9b43380b88b11692b0a6f7999878.png new file mode 100644 index 0000000..f316d79 Binary files /dev/null and b/public/images/aa31529b95af9b43380b88b11692b0a6f7999878.png differ diff --git a/public/images/baca21cebac9b0ae0463e371575f760ea5e79016.png b/public/images/baca21cebac9b0ae0463e371575f760ea5e79016.png new file mode 100644 index 0000000..43330d8 Binary files /dev/null and b/public/images/baca21cebac9b0ae0463e371575f760ea5e79016.png differ diff --git a/public/images/brutal.png b/public/images/brutal.png new file mode 100644 index 0000000..b33bfd7 Binary files /dev/null and b/public/images/brutal.png differ diff --git a/public/images/card1.png b/public/images/card1.png new file mode 100644 index 0000000..ff69fc7 Binary files /dev/null and b/public/images/card1.png differ diff --git a/public/images/d3cf3b09c1fd3dc0d6a997a7a479337fdf8caa69.png b/public/images/d3cf3b09c1fd3dc0d6a997a7a479337fdf8caa69.png new file mode 100644 index 0000000..89a5020 Binary files /dev/null and b/public/images/d3cf3b09c1fd3dc0d6a997a7a479337fdf8caa69.png differ diff --git a/public/images/d5d8f9fe19a7aed7bf6545a64634eeb37a6b895a.png b/public/images/d5d8f9fe19a7aed7bf6545a64634eeb37a6b895a.png new file mode 100644 index 0000000..43c4890 Binary files /dev/null and b/public/images/d5d8f9fe19a7aed7bf6545a64634eeb37a6b895a.png differ diff --git a/public/images/fallback-background.png b/public/images/fallback-background.png new file mode 100644 index 0000000..dc4a910 Binary files /dev/null and b/public/images/fallback-background.png differ diff --git a/public/images/logo2.png b/public/images/logo2.png new file mode 100644 index 0000000..cbb31fe Binary files /dev/null and b/public/images/logo2.png differ diff --git a/public/videos/background1.mp4 b/public/videos/background1.mp4 new file mode 100644 index 0000000..9ae6b53 Binary files /dev/null and b/public/videos/background1.mp4 differ diff --git a/public/videos/background2.mp4 b/public/videos/background2.mp4 new file mode 100644 index 0000000..6bfd901 Binary files /dev/null and b/public/videos/background2.mp4 differ diff --git a/public/videos/background3.mp4 b/public/videos/background3.mp4 new file mode 100644 index 0000000..bd5187e Binary files /dev/null and b/public/videos/background3.mp4 differ diff --git a/public/videos/man.mp4 b/public/videos/man.mp4 new file mode 100644 index 0000000..0a7fbc9 Binary files /dev/null and b/public/videos/man.mp4 differ diff --git a/public/videos/trend.mp4 b/public/videos/trend.mp4 new file mode 100644 index 0000000..63611df Binary files /dev/null and b/public/videos/trend.mp4 differ diff --git a/public/videos/usb.mp4 b/public/videos/usb.mp4 new file mode 100644 index 0000000..84d1fbe Binary files /dev/null and b/public/videos/usb.mp4 differ