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..89cc3de --- /dev/null +++ b/app/creator/reader/page.tsx @@ -0,0 +1,186 @@ +"use client" + +import { 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'; + +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)[]>([]); + + // 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/globals.css b/app/globals.css index 7a19fbc..da3eaa3 100644 --- a/app/globals.css +++ b/app/globals.css @@ -123,6 +123,172 @@ } +.hero_img { + background-color: #010313D9; + background-image: url("/images/89f1cacd4041e59eb162ffcb0f8080dc179fe415.png"); + background-repeat: no-repeat; + background-size: cover; + background-position: center center; + background-blend-mode: multiply; + height: 170px; + width: 1045px; + border-radius: 10px; + padding: 8px; + display: flex; + justify-content: space-between; + align-items: center; + padding-left: 40px; + padding-right: 40px; +} + +.hero_text { + display: flex; + flex-direction: column; + gap: 10px; + color: #ffffff; + width: 476px; + text-align: left; +} + +.hero_text h3 { + font-size: 20px; + font-weight: 700; + line-height: 30px; + font-family: sans-serif; + margin: 0; +} + +.hero_text p { + font-size: 14px; + font-weight: 400; + line-height: 21px; + font-family: Arial, Helvetica, sans-serif; +} + +.hero_img { + background-color: #010313D9; + background-image: url("/images/89f1cacd4041e59eb162ffcb0f8080dc179fe415.png"); + background-repeat: no-repeat; + background-size: cover; + background-position: center center; + background-blend-mode: multiply; + height: 170px; + width: 100%; + border-radius: 10px; + padding: 8px; + display: flex; + justify-content: space-between; + align-items: center; + padding-left: 40px; + padding-right: 40px; +} + +.hero_text { + display: flex; + flex-direction: column; + gap: 10px; + color: #ffffff; + width: 476px; + text-align: left; +} + +.hero_text h3 { + font-size: 20px; + font-weight: 700; + line-height: 30px; + font-family: sans-serif; + margin: 0; +} + +.hero_text p { + font-size: 14px; + font-weight: 400; + line-height: 21px; + font-family: Arial, Helvetica, sans-serif; + margin: 0; +} + +.hero_text button { + background-color: #ffffff; + color: #010313; + border: none; + border-radius: 5px; + width: 146.04px; + padding: 5px 10px; + cursor: pointer; + font-size: 14px; + font-weight: bold; + text-align: center; +} + +.hero_cards { + display: flex; + gap: 20px; +} + +.card_1 { + background-image: url("/images/37934e37222a44601017b84963a414627d8e095f.png"); + background-size: cover; + background-position: center center; + width: 91px; + height: 130px; + border-radius: 2px; +} + +.card_2 { + background-image: url("/images/230f1945d640ae4c0325f23dcb3365b59ae08277.png"); + background-size: cover; + background-position: center center; + width: 91px; + height: 130px; + border-radius: 2px; +} + +.card_3 { + background-image: url("/images/baca21cebac9b0ae0463e371575f760ea5e79016.png"); + background-size: cover; + background-position: center center; + width: 91px; + height: 130px; + border-radius: 2px; +} + +.recent_container { + display: flex; + flex-direction: column; + width: 100%; + height: 237px; + margin-top: 30px; +} + +.recent_title { + display: flex; + width: 100%; + justify-content: space-between; + align-items: center; +} + +.recent_icon { + cursor: pointer; + border: 1px solid #868585; + padding: 5px; + border-radius: 5px; + font-size: 30px; +} + +.recent_card { + width: 100%; + height: 150px; + background-color: #ffffff; + border-radius: 10px; +} +.card_img { + width: 145px; + height: 110px; + border-radius: 5px; +} + + /* custom css */ .no-scrollbar::-webkit-scrollbar { diff --git a/app/marketplace/advertizers/page.tsx b/app/marketplace/advertizers/page.tsx new file mode 100644 index 0000000..31d331a --- /dev/null +++ b/app/marketplace/advertizers/page.tsx @@ -0,0 +1,87 @@ +"use client"; +import Image from "next/image"; +import React, { useState } from "react"; + +const categories = [ + "All advertising", + "Commissioned", + "Discount Ads", + "Brands Ads", + "Ebooks", + "Author ads", + "Artist Ads", + "Last Month ads", + "Upcoming ads", +]; + +const images = [ + "/images/Airbnb_1.png", + "/images/Airbnb_2.png", + "/images/Airbnb_3.png", + "/images/Amazon_AWS.png", + "/images/Amazon_echo.png", + "/images/Element.png", + "/images/Huawei.png", + "/images/Netflix.png", + "/images/Qonto.png", + "/images/Samsung.png", +]; + +const Page: React.FC = () => { + const [selectedCategory, setSelectedCategory] = useState( + categories[0] + ); + const handleCategoryClick = (category: string) => { + setSelectedCategory(category); + }; + return ( +
+
+ advertizers +
+
+
+ {categories.map((category) => ( + + ))} +
+
+
+ {images.map((image, index) => ( +
+ advertizers + +
+ ))} +
+
+ ); +}; + +export default Page; 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/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..83ab977 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,12 @@ importers: '@radix-ui/react-avatar': specifier: ^1.1.7 version: 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-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-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) @@ -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: @@ -516,6 +662,27 @@ 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: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@radix-ui/react-use-previous@1.1.1': resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: @@ -809,6 +976,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 +1156,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 +1391,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 +1878,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 +2152,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 +2270,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 +2431,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 +2487,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 +2513,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 +2567,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 +2701,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 @@ -2340,6 +2721,22 @@ 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) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/rect@1.1.1': {} + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.2)(react@19.1.0)': dependencies: react: 19.1.0 @@ -2601,6 +2998,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 +3206,8 @@ snapshots: detect-libc@2.0.4: {} + detect-node-es@1.1.0: {} + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -3199,6 +3602,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 +4070,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 +4436,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