{
  "about-1": {
    "components": {
      "@/registry/view/about-1/components/about": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useRef } from \"react\"\r\nimport { gsap } from \"gsap\"\r\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\"\r\nimport Container from \"@/components/Container\"\r\n\r\ngsap.registerPlugin(ScrollTrigger)\r\n\r\nconst About = () => {\r\n  const sectionRef = useRef(null)\r\n  useEffect(() => {\r\n    const elements = sectionRef.current.querySelectorAll(\".animate-element\")\r\n    const timelineElements =\r\n      sectionRef.current.querySelectorAll(\".animate-timeline\")\r\n    elements.forEach((element) => {\r\n      gsap.fromTo(\r\n        element,\r\n        {\r\n          opacity: 0,\r\n          y: 20,\r\n        },\r\n        {\r\n          opacity: 1,\r\n          y: 0,\r\n          duration: 1,\r\n          scrollTrigger: {\r\n            trigger: element,\r\n            start: \"top 80%\",\r\n            end: \"top 60%\",\r\n            scrub: true,\r\n            once: true,\r\n          },\r\n        }\r\n      )\r\n    })\r\n    timelineElements.forEach((element) => {\r\n      gsap.fromTo(\r\n        element,\r\n        {\r\n          opacity: 0,\r\n          x: -50,\r\n        },\r\n        {\r\n          opacity: 1,\r\n          x: 0,\r\n          duration: 1,\r\n          scrollTrigger: {\r\n            trigger: element,\r\n            start: \"top 90%\",\r\n            end: \"top 70%\",\r\n            scrub: true,\r\n            once: true,\r\n          },\r\n        }\r\n      )\r\n    })\r\n  }, [])\r\n\r\n  return (\r\n    <section ref={sectionRef}>\r\n      <Container>\r\n        <div className=\"grid gap-10 lg:grid-cols-[1fr_500px]\">\r\n          <div className=\"grid gap-4\">\r\n            <div className=\"space-y-4 animate-element\">\r\n              <h2 className=\"font-bold tracking-tighter text-3xl sm:text-4xl md:text-5xl\">\r\n                About Our Company\r\n              </h2>\r\n              <p className=\"max-w-[600px] text-muted-foreground md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed\">\r\n                At Art Lighting Inc. we are a team of passionate innovators\r\n                dedicated to pushing the boundaries of what&apos;s possible.\r\n                Since our founding in 2010, we&apos;ve been on a mission to\r\n                create cutting-edge products and services that transform the way\r\n                people live and work.\r\n              </p>\r\n            </div>\r\n            <div className=\"grid md:grid-cols-2 gap-4\">\r\n              <div className=\"bg-gray-100 dark:bg-neutral-900 rounded-lg p-6 animate-element\">\r\n                <h3 className=\"text-lg font-semibold text-primary\">\r\n                  Our Mission\r\n                </h3>\r\n                <p className=\"text-muted-foreground mt-2\">\r\n                  To revolutionize the tech industry and empower people with\r\n                  innovative solutions.\r\n                </p>\r\n              </div>\r\n              <div className=\"bg-gray-100 dark:bg-neutral-900 rounded-lg p-6 animate-element\">\r\n                <h3 className=\"text-lg font-semibold text-primary\">\r\n                  Our Values\r\n                </h3>\r\n                <p className=\"text-muted-foreground mt-2\">\r\n                  Integrity, Collaboration, Creativity, and Continuous\r\n                  Improvement.\r\n                </p>\r\n              </div>\r\n              <div className=\"bg-gray-100 dark:bg-neutral-900 rounded-lg p-6 animate-element\">\r\n                <h3 className=\"text-lg font-semibold text-primary\">Our Team</h3>\r\n                <p className=\"text-muted-foreground mt-2\">\r\n                  A diverse group of talented individuals who are passionate\r\n                  about making a difference.\r\n                </p>\r\n              </div>\r\n              <div className=\"bg-gray-100 dark:bg-neutral-900 rounded-lg p-6 animate-element\">\r\n                <h3 className=\"text-lg font-semibold text-primary\">\r\n                  Our Commitment\r\n                </h3>\r\n                <p className=\"text-muted-foreground mt-2\">\r\n                  To deliver exceptional products and services that exceed our\r\n                  customers&apos; expectations.\r\n                </p>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"relative animate-element\">\r\n            <div className=\"after:absolute after:inset-y-0 after:w-px after:bg-gray-500/20 relative pl-6 after:left-0 grid gap-10\">\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2010 - Founding of Art Lighting Inc.\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2010 - Launch of First Product\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2012 - Expansion into New Markets\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2013 - Breakthrough Innovation\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2014 - Local Expansion and Acquisition\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2015 - Sustainability Initiatives\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2016 - Art Lighting Inc. Goes Public\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2016 - Art Lighting Working with Military{\" \"}\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2020 - Pandemic Response and Resilience\r\n                </div>\r\n              </div>\r\n              <div className=\"grid grid-cols-[auto_1fr] gap-1 text-sm relative animate-timeline\">\r\n                <div className=\"mt-[3px] aspect-square w-3 bg-primary rounded-full z-10 \" />\r\n                <div className=\"font-medium mt-[-1px]\">\r\n                  2023 - Our Factory completed\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </Container>\r\n    </section>\r\n  )\r\n}\r\n\r\nexport default About\r\n",
        "language": "jsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/about-1/page": {
      "content": "import About_1 from \"./components/about\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"py-10 md:py-16 lg:py-20\">\r\n      <About_1 />\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "banner-1": {
    "components": {
      "@/registry/view/banner-1/components/banner": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { X } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { useState } from \"react\"\r\n\r\ninterface Banner1Props {\r\n  title: string\r\n  description: string\r\n  linkText: string\r\n  linkUrl: string\r\n  defaultVisible?: boolean\r\n}\r\n\r\nexport const Banner = ({\r\n  title = \"Version 2.0 is now available!\",\r\n  description = \"Check out all the\",\r\n  linkText = \"new features\",\r\n  linkUrl = \"#\",\r\n  defaultVisible = true,\r\n}: Banner1Props) => {\r\n  const [isVisible, setIsVisible] = useState(defaultVisible)\r\n\r\n  const handleClose = () => {\r\n    setIsVisible(false)\r\n  }\r\n\r\n  if (!isVisible) return null\r\n\r\n  return (\r\n    <section className=\"w-full border-b px-4 py-3 shadow-sm\">\r\n      <div className=\"flex items-center justify-between gap-2\">\r\n        <div className=\"flex-1 text-center\">\r\n          <span className=\"text-sm\">\r\n            <span className=\"font-medium\">{title}</span>{\" \"}\r\n            <span className=\"text-muted-foreground\">\r\n              {description}{\" \"}\r\n              <Link\r\n                href={linkUrl}\r\n                className=\"underline underline-offset-4 hover:text-foreground\"\r\n                target=\"_blank\"\r\n              >\r\n                {linkText}\r\n              </Link>\r\n              .\r\n            </span>\r\n          </span>\r\n        </div>\r\n        <Button\r\n          variant=\"ghost\"\r\n          size=\"icon\"\r\n          className=\"-mr-2 h-8 w-8 flex-none\"\r\n          onClick={handleClose}\r\n        >\r\n          <X className=\"h-4 w-4\" />\r\n        </Button>\r\n      </div>\r\n    </section>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/banner-1/page": {
      "content": "import React from \"react\"\r\n\r\nimport { Banner } from \"./components/banner\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div>\r\n      <Banner />\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "banner-2": {
    "components": {
      "@/registry/view/banner-2/components/banner": {
        "content": "\"use client\";\r\n\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Clock, X } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\n\r\nexport default function Banner() {\r\n    const [isBannerVisible, setIsBannerVisible] = useState(true);\r\n    const handleClose = () => {\r\n        setIsBannerVisible(false);\r\n    };\r\n    if (!isBannerVisible) return null;\r\n    return (\r\n        <div className=\"bg-gradient-to-r from-amber-200 via-amber-400 to-amber-500 text-amber-100 shadow-lg relative overflow-hidden\">\r\n            <div className=\"absolute inset-0 opacity-10\"></div>\r\n            <div className=\"container px-4 lg:px-6\">\r\n                <div className=\"flex flex-col sm:flex-row justify-between items-center py-6 px-4 sm:px-6 relative z-10\">\r\n                    <div className=\"flex items-center space-x-3 mb-4 sm:mb-0\">\r\n                        <h2 className=\"text-xl sm:text-2xl md:text-3xl font-bold\">\r\n                            Chandelier decor!\r\n                        </h2>\r\n                    </div>\r\n                    <div className=\"flex flex-col items-center sm:items-end space-y-2\">\r\n                        <p className=\"font-bold flex items-center flex-wrap justify-center sm:justify-end\">\r\n                            <span className=\"mr-2 inline-block animate-bounce text-lg sm:text-xl md:text-2xl lg:text-3xl text-amber-100\">\r\n                                Up to 20% OFF\r\n                            </span>\r\n                            <span className=\"text-base sm:text-lg md:text-xl font-semibold px-2 py-1 rounded-md\">\r\n                                All Chandelier Products\r\n                            </span>\r\n                        </p>\r\n                        <div className=\"flex items-center space-x-2 text-sm sm:text-base bg-primary-foreground/20 px-3 py-1 rounded-full\">\r\n                            <Clock className=\"w-4 h-4 sm:w-5 sm:h-5 text-primary-foreground\" />\r\n                            <span>Limited Time Offer | Online & In-Store</span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <Button\r\n                onClick={handleClose}\r\n                variant=\"ghost\"\r\n                size=\"icon\"\r\n                className=\"absolute z-50 cursor-pointer right-2 top-2 sm:right-4 text-primary-foreground hover:text-black transition-colors duration-300\"\r\n                aria-label=\"Close banner\"\r\n            >\r\n                <X className=\"w-5 h-5 sm:w-6 sm:h-6\" />\r\n            </Button>\r\n        </div>\r\n    );\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/banner-2/page": {
      "content": "import Banner from \"./components/banner\"\r\n\r\nexport default function page() {\r\n    return (\r\n        <div><Banner /></div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "bento-grid-1": {
    "components": {
      "@/registry/view/bento-grid-1/components/bento-grid": {
        "content": "import Image from \"next/image\"\r\n\r\nexport default function BentoGrid() {\r\n    return (\r\n        <section className=\"w-full py-12 md:py-16\">\r\n            <div className=\"container px-4 md:px-6 max-w-3xl\">\r\n                <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 h-[800px] md:h-[600px]\">\r\n                    <div className=\"relative md:row-span-2 rounded-2xl overflow-hidden group cursor-pointer transform transition-all duration-500 hover:scale-[1.02] hover:shadow-2xl hover:shadow-black/20\">\r\n                        <Image\r\n                            src=\"/blocks/case-studies-1/image-1.jpg\"\r\n                            alt=\"Modern component library development\"\r\n                            fill\r\n                            className=\"object-cover transition-all duration-700 group-hover:scale-110 group-hover:rotate-1\"\r\n                        />\r\n                        <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-black/20 to-transparent transition-all duration-500 group-hover:from-black/70 group-hover:via-black/30\" />\r\n                        <div className=\"absolute inset-0 bg-black/0 transition-all duration-500 group-hover:bg-black/10\" />\r\n                        <div className=\"absolute bottom-6 left-6 transform transition-all duration-500 group-hover:translate-y-[-8px] group-hover:translate-x-2\">\r\n                            <h3 className=\"text-2xl font-bold text-white transition-all duration-300 group-hover:text-3xl group-hover:drop-shadow-lg\">\r\n                                shadcn/ui\r\n                            </h3>\r\n                            <p className=\"text-sm text-white/80 mt-1 opacity-0 transform translate-y-2 transition-all duration-500 group-hover:opacity-100 group-hover:translate-y-0\">\r\n                                Building a Modern Component Library\r\n                            </p>\r\n                            <div className=\"w-0 h-0.5 bg-white transition-all duration-500 group-hover:w-16 mt-2\"></div>\r\n                        </div>\r\n                        <div className=\"absolute top-4 right-4 opacity-0 transform translate-x-4 transition-all duration-500 group-hover:opacity-100 group-hover:translate-x-0\">\r\n                            <div className=\"px-3 py-1 rounded-full bg-white/20 backdrop-blur-sm text-white text-xs font-medium\">\r\n                                Read more\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative md:col-span-2 rounded-2xl overflow-hidden group cursor-pointer transform transition-all duration-500 hover:scale-[1.02] hover:shadow-2xl hover:shadow-black/20 animation-delay-100\">\r\n                        <Image\r\n                            src=\"/blocks/case-studies-1/image-2.jpg\"\r\n                            alt=\"Utility-first CSS framework\"\r\n                            fill\r\n                            className=\"object-cover transition-all duration-700 group-hover:scale-110 group-hover:rotate-[-0.5deg]\"\r\n                        />\r\n                        <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-black/20 to-transparent transition-all duration-500 group-hover:from-black/70 group-hover:via-black/30\" />\r\n                        <div className=\"absolute inset-0 bg-black/0 transition-all duration-500 group-hover:bg-black/10\" />\r\n                        <div className=\"absolute bottom-6 left-6 transform transition-all duration-500 group-hover:translate-y-[-8px] group-hover:translate-x-2\">\r\n                            <h3 className=\"text-2xl font-bold text-white transition-all duration-300 group-hover:text-3xl group-hover:drop-shadow-lg\">\r\n                                Tailwind CSS\r\n                            </h3>\r\n                            <p className=\"text-sm text-white/80 mt-1 opacity-0 transform translate-y-2 transition-all duration-500 group-hover:opacity-100 group-hover:translate-y-0\">\r\n                                The Utility-First Revolution\r\n                            </p>\r\n                            <div className=\"w-0 h-0.5 bg-white transition-all duration-500 group-hover:w-20 mt-2\"></div>\r\n                        </div>\r\n                        <div className=\"absolute top-4 right-4 opacity-0 transform translate-x-4 transition-all duration-500 group-hover:opacity-100 group-hover:translate-x-0\">\r\n                            <div className=\"px-3 py-1 rounded-full bg-white/20 backdrop-blur-sm text-white text-xs font-medium\">\r\n                                Read more\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative rounded-2xl overflow-hidden group cursor-pointer transform transition-all duration-500 hover:scale-[1.02] hover:shadow-2xl hover:shadow-black/20 animation-delay-200\">\r\n                        <Image\r\n                            src=\"/blocks/case-studies-1/image-3.jpg\"\r\n                            alt=\"Modern web framework architecture\"\r\n                            fill\r\n                            className=\"object-cover transition-all duration-700 group-hover:scale-110 group-hover:rotate-1\"\r\n                        />\r\n                        <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-black/20 to-transparent transition-all duration-500 group-hover:from-black/70 group-hover:via-black/30\" />\r\n                        <div className=\"absolute inset-0 bg-black/0 transition-all duration-500 group-hover:bg-black/10\" />\r\n                        <div className=\"absolute bottom-6 left-6 transform transition-all duration-500 group-hover:translate-y-[-8px] group-hover:translate-x-2\">\r\n                            <h3 className=\"text-xl font-bold text-white transition-all duration-300 group-hover:text-2xl group-hover:drop-shadow-lg\">\r\n                                Astro\r\n                            </h3>\r\n                            <p className=\"text-sm text-white/80 mt-1 opacity-0 transform translate-y-2 transition-all duration-500 group-hover:opacity-100 group-hover:translate-y-0\">\r\n                                The All-in-One Web Framework\r\n                            </p>\r\n                            <div className=\"w-0 h-0.5 bg-white transition-all duration-500 group-hover:w-24 mt-2\"></div>\r\n                        </div>\r\n                        <div className=\"absolute top-4 right-4 opacity-0 transform translate-x-4 transition-all duration-500 group-hover:opacity-100 group-hover:translate-x-0\">\r\n                            <div className=\"px-3 py-1 rounded-full bg-white/20 backdrop-blur-sm text-white text-xs font-medium\">\r\n                                Read more\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative rounded-2xl overflow-hidden group cursor-pointer transform transition-all duration-500 hover:scale-[1.02] hover:shadow-2xl hover:shadow-black/20 animation-delay-300\">\r\n                        <Image\r\n                            src=\"/blocks/case-studies-1/image-4.jpg\"\r\n                            alt=\"React framework for production\"\r\n                            fill\r\n                            className=\"object-cover transition-all duration-700 group-hover:scale-110 group-hover:rotate-[-1deg]\"\r\n                        />\r\n                        <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-black/20 to-transparent transition-all duration-500 group-hover:from-black/70 group-hover:via-black/30\" />\r\n                        <div className=\"absolute inset-0 bg-black/0 transition-all duration-500 group-hover:bg-black/10\" />\r\n                        <div className=\"absolute bottom-6 left-6 transform transition-all duration-500 group-hover:translate-y-[-8px] group-hover:translate-x-2\">\r\n                            <h3 className=\"text-xl font-bold text-white transition-all duration-300 group-hover:text-2xl group-hover:drop-shadow-lg\">\r\n                                Next.js\r\n                            </h3>\r\n                            <p className=\"text-sm text-white/80 mt-1 opacity-0 transform translate-y-2 transition-all duration-500 group-hover:opacity-100 group-hover:translate-y-0\">\r\n                                The React Framework\r\n                            </p>\r\n                            <div className=\"w-0 h-0.5 bg-white transition-all duration-500 group-hover:w-20 mt-2\"></div>\r\n                        </div>\r\n                        <div className=\"absolute top-4 right-4 opacity-0 transform translate-x-4 transition-all duration-500 group-hover:opacity-100 group-hover:translate-x-0\">\r\n                            <div className=\"px-3 py-1 rounded-full bg-white/20 backdrop-blur-sm text-white text-xs font-medium\">\r\n                                Read more\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/bento-grid-1/page": {
      "content": "import BentoGrid from \"./components/bento-grid\";\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div>\r\n            <BentoGrid />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "carousel-1": {
    "components": {
      "@/registry/view/carousel-1/components/Carousel-Container": {
        "content": "import Link from \"next/link\"\r\n\r\nimport { CarouselBigDataForBlock } from \"../constant/index\"\r\nimport { Card, Carousel } from \"./carousel\"\r\n\r\nconst CarouselContainer = () => {\r\n  const projectCards = CarouselBigDataForBlock.map((project, index) => (\r\n    <Link href={project.link} key={project.id} className=\"not-prose\">\r\n      <Card project={project} index={index} />\r\n    </Link>\r\n  ))\r\n  return <Carousel items={projectCards} />\r\n}\r\n\r\nexport default CarouselContainer\r\n",
        "language": "tsx"
      },
      "@/registry/view/carousel-1/components/carousel": {
        "content": "\"use client\"\r\n\r\nimport { useOutsideClick } from \"@/hooks/out-side-click\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { IconArrowNarrowLeft, IconArrowNarrowRight } from \"@tabler/icons-react\"\r\nimport { motion } from \"framer-motion\"\r\nimport Image, { ImageProps } from \"next/image\"\r\nimport {\r\n  createContext,\r\n  Fragment,\r\n  JSX,\r\n  useEffect,\r\n  useRef,\r\n  useState,\r\n} from \"react\"\r\n\r\ninterface CarouselProps {\r\n  items: JSX.Element[]\r\n  initialScroll?: number\r\n  cardGap?: number\r\n  scrollOffset?: number\r\n  initialActiveIndex?: number\r\n}\r\n\r\ninterface Project {\r\n  id: number\r\n  title: string\r\n  description: string\r\n  image: string\r\n  link: string\r\n}\r\n\r\nconst CarouselContext = createContext<{\r\n  onCardClick: (index: number) => void\r\n  currentIndex: number\r\n}>({\r\n  onCardClick: () => { },\r\n  currentIndex: 0,\r\n})\r\n\r\nexport const Carousel = ({\r\n  items,\r\n  initialScroll = 0,\r\n  cardGap = 16,\r\n  scrollOffset: initialScrollOffset,\r\n  initialActiveIndex = 1,\r\n}: CarouselProps) => {\r\n  const [scrollOffset, setScrollOffset] = useState(950)\r\n  useEffect(() => {\r\n    const WidthWindow = window.innerWidth\r\n    if (WidthWindow < 789) {\r\n      setScrollOffset(260)\r\n    } else {\r\n      setScrollOffset(950)\r\n    }\r\n  }, [])\r\n  const carouselRef = useRef<HTMLDivElement>(null)\r\n  const [canScrollLeft, setCanScrollLeft] = useState(false)\r\n  const [canScrollRight, setCanScrollRight] = useState(true)\r\n  const [currentIndex, setCurrentIndex] = useState(initialActiveIndex)\r\n  const checkScrollAbility = () => {\r\n    if (carouselRef.current) {\r\n      const { scrollLeft, scrollWidth, clientWidth } = carouselRef.current\r\n      setCanScrollLeft(scrollLeft > 0)\r\n      setCanScrollRight(scrollLeft < scrollWidth - clientWidth)\r\n    }\r\n  }\r\n  useEffect(() => {\r\n    if (carouselRef.current && initialActiveIndex !== undefined) {\r\n      const itemWidth = carouselRef.current.offsetWidth - 500\r\n      const scrollTo = itemWidth * initialActiveIndex\r\n      carouselRef.current.scrollTo({\r\n        left: scrollTo,\r\n        behavior: \"smooth\",\r\n      })\r\n    }\r\n  }, [initialActiveIndex])\r\n\r\n  const scroll = (direction: \"left\" | \"right\") => {\r\n    if (carouselRef.current) {\r\n      carouselRef.current.scrollBy({\r\n        left: direction === \"left\" ? -scrollOffset : scrollOffset,\r\n        behavior: \"smooth\",\r\n      })\r\n    }\r\n  }\r\n  const handleCarouselClick = (index: number) => {\r\n    setCurrentIndex(index)\r\n  }\r\n\r\n  return (\r\n    <CarouselContext.Provider\r\n      value={{ onCardClick: handleCarouselClick, currentIndex }}\r\n    >\r\n      <div className=\"relative w-full py-0 !my-12 \">\r\n        <div className=\"flex justify-end space-x-2\">\r\n          <button\r\n            className=\"relative z-40 h-12 w-12 rounded-full bg-gray-100 dark:bg-neutral-800 hover:bg-gray-300 hover:dark:bg-gray-700 flex items-center justify-center disabled:opacity-50\"\r\n            onClick={() => scroll(\"left\")}\r\n            disabled={!canScrollLeft}\r\n          >\r\n            <IconArrowNarrowLeft className=\"h-7 w-7\" />\r\n          </button>\r\n          <button\r\n            className=\"relative z-40 h-12 w-12 rounded-full bg-gray-100 dark:bg-neutral-800 hover:bg-gray-300 hover:dark:bg-gray-700 flex items-center justify-center disabled:opacity-50\"\r\n            onClick={() => scroll(\"right\")}\r\n            disabled={!canScrollRight}\r\n          >\r\n            <IconArrowNarrowRight className=\"h-7 w-7\" />\r\n          </button>\r\n        </div>\r\n        <div\r\n          className=\"flex w-full overflow-x-scroll py-6 scroll-smooth [scrollbar-width:none]\"\r\n          ref={carouselRef}\r\n          onScroll={checkScrollAbility}\r\n        >\r\n          <div\r\n            className=\"flex flex-row justify-end gap-4\"\r\n            style={{ gap: `${cardGap}px` }}\r\n          >\r\n            {items.map((item, index) => (\r\n              <motion.div\r\n                key={index}\r\n                className=\"rounded-3xl\"\r\n                initial={{ opacity: 0, y: 20 }}\r\n                animate={{\r\n                  opacity: 1,\r\n                  y: 0,\r\n                  transition: { duration: 0.5, delay: 0.3 * index },\r\n                }}\r\n              >\r\n                {item}\r\n              </motion.div>\r\n            ))}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </CarouselContext.Provider>\r\n  )\r\n}\r\n\r\nexport const Card = ({\r\n  project,\r\n  index,\r\n  layout = false,\r\n}: {\r\n  project: Project\r\n  index: number\r\n  layout?: boolean\r\n}) => {\r\n  const [isOpen, setIsOpen] = useState(false)\r\n  const containerRef = useRef<HTMLDivElement>(null)\r\n  const cardRef = useRef<HTMLDivElement>(null)\r\n  useOutsideClick(containerRef, () => setIsOpen(false))\r\n  const handleCardClick = () => {\r\n    setIsOpen(true)\r\n    if (cardRef.current) {\r\n      cardRef.current.scrollIntoView({\r\n        behavior: \"smooth\",\r\n        block: \"nearest\",\r\n        inline: \"center\",\r\n      })\r\n    }\r\n  }\r\n  return (\r\n    <Fragment>\r\n      <motion.div\r\n        ref={cardRef}\r\n        layoutId={layout ? `card-${project.id}` : undefined}\r\n        onClick={handleCardClick}\r\n        className=\"rounded-3xl cursor-pointer bg-gray-100 dark:bg-neutral-900 h-72 md:h-[33rem] w-[35vh] sm:w-[50vh] md:w-[90vh] lg:w-[110vh] xl:w-[150vh] overflow-hidden flex flex-col items-start justify-start relative z-10\"\r\n      >\r\n        <div className=\"absolute h-full top-0 inset-x-0 bg-gradient-to-b from-black/50 via-transparent to-transparent z-30 pointer-events-none\" />\r\n        <div className=\"relative z-40 p-8\">\r\n          <motion.p\r\n            layoutId={layout ? `title-${project.id}` : undefined}\r\n            className=\"text-white text-xl md:text-3xl font-semibold max-w-xs text-left font-sans mt-2\"\r\n          >\r\n            {project.title}\r\n          </motion.p>\r\n          <motion.p\r\n            layoutId={layout ? `description-${project.id}` : undefined}\r\n            className=\"text-white text-sm md:text-base font-medium font-sans text-left mt-2\"\r\n          >\r\n            {project.description}\r\n          </motion.p>\r\n        </div>\r\n        <BlurImage\r\n          src={project.image}\r\n          alt={project.title}\r\n          fill\r\n          className=\"object-cover absolute z-10 inset-0\"\r\n        />\r\n      </motion.div>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport const BlurImage = ({\r\n  height,\r\n  width,\r\n  src,\r\n  className,\r\n  alt,\r\n  ...rest\r\n}: ImageProps) => {\r\n  const [isLoading, setLoading] = useState(true)\r\n  return (\r\n    <Image\r\n      className={cn(\r\n        \"transition duration-300\",\r\n        isLoading ? \"blur-sm\" : \"blur-0\",\r\n        className\r\n      )}\r\n      onLoad={() => setLoading(false)}\r\n      src={src}\r\n      width={width}\r\n      height={height}\r\n      loading=\"lazy\"\r\n      decoding=\"async\"\r\n      blurDataURL={typeof src === \"string\" ? src : undefined}\r\n      alt={alt ? alt : \"Background of a beautiful view\"}\r\n      {...rest}\r\n    />\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/carousel-1/constant/index": {
        "content": "export const CarouselBigDataForBlock = [\r\n  {\r\n    id: 1,\r\n    title: \"E-commerce web app\",\r\n    description: \"An E-commerce web app for lighting store\",\r\n    image: \"/blocks/carousel-big/block-1.png\",\r\n    link: \"https://eg-artlighting.vercel.app\",\r\n  },\r\n  {\r\n    id: 2,\r\n    title: \"E-commerce web app\",\r\n    description: \"An E-commerce web app for lighting store\",\r\n    image: \"/blocks/carousel-big/block-2.png\",\r\n    link: \"https://casescobra-cuxh.vercel.app/\",\r\n  },\r\n  {\r\n    id: 3,\r\n    title: \"E-commerce web app\",\r\n    description: \"An E-commerce web app for lighting store\",\r\n    image: \"/blocks/carousel-big/block-3.png\",\r\n    link: \"https://modern-website-gold.vercel.app/\",\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/carousel-1/page": {
      "content": "import CarouselContainer from \"./components/Carousel-Container\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"px-4 lg:px-6\">\r\n      <CarouselContainer />\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "carousel-2": {
    "components": {
      "@/registry/view/carousel-2/components/carousel-container": {
        "content": "import { CarouselsData } from \"../constant\"\r\nimport { Card, Carousel } from \"./carousel\"\r\n\r\nconst CarouselContainer = () => {\r\n  const cards = CarouselsData.map((card, index) => (\r\n    <Card key={card.src} card={card} index={index} />\r\n  ))\r\n  return <Carousel items={cards} />\r\n}\r\n\r\nexport default CarouselContainer\r\n",
        "language": "tsx"
      },
      "@/registry/view/carousel-2/components/carousel": {
        "content": "\"use client\"\r\n\r\nimport { useOutsideClick } from \"@/hooks/out-side-click\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { IconArrowNarrowLeft, IconArrowNarrowRight } from \"@tabler/icons-react\"\r\nimport { motion } from \"framer-motion\"\r\nimport Image, { ImageProps } from \"next/image\"\r\nimport {\r\n  createContext,\r\n  Fragment,\r\n  JSX,\r\n  useEffect,\r\n  useRef,\r\n  useState,\r\n} from \"react\"\r\n\r\ninterface CarouselProps {\r\n  items: JSX.Element[]\r\n  initialScroll?: number\r\n  cardGap?: number\r\n  scrollOffset?: number\r\n}\r\n\r\ninterface Card {\r\n  src: string\r\n  title: string\r\n  category: string\r\n}\r\nconst CarouselContext = createContext<{\r\n  onCardClick: (index: number) => void\r\n  currentIndex: number\r\n}>({\r\n  onCardClick: () => { },\r\n  currentIndex: 0,\r\n})\r\nexport const Carousel = ({\r\n  items,\r\n  initialScroll = 0,\r\n  cardGap = 16,\r\n  scrollOffset = 300,\r\n}: CarouselProps) => {\r\n  const carouselRef = useRef<HTMLDivElement>(null)\r\n  const [canScrollLeft, setCanScrollLeft] = useState(false)\r\n  const [canScrollRight, setCanScrollRight] = useState(true)\r\n  const [currentIndex, setCurrentIndex] = useState(0)\r\n  const checkScrollAbility = () => {\r\n    if (carouselRef.current) {\r\n      const { scrollLeft, scrollWidth, clientWidth } = carouselRef.current\r\n      setCanScrollLeft(scrollLeft > 0)\r\n      setCanScrollRight(scrollLeft < scrollWidth - clientWidth)\r\n    }\r\n  }\r\n  useEffect(() => {\r\n    if (carouselRef.current) {\r\n      carouselRef.current.scrollLeft = initialScroll\r\n      checkScrollAbility()\r\n    }\r\n  }, [initialScroll])\r\n  const scroll = (direction: \"left\" | \"right\") => {\r\n    if (carouselRef.current) {\r\n      carouselRef.current.scrollBy({\r\n        left: direction === \"left\" ? -scrollOffset : scrollOffset,\r\n        behavior: \"smooth\",\r\n      })\r\n    }\r\n  }\r\n  const handleCarsouelClick = (index: number) => {\r\n    setCurrentIndex(index)\r\n  }\r\n  return (\r\n    <CarouselContext.Provider\r\n      value={{ onCardClick: handleCarsouelClick, currentIndex }}\r\n    >\r\n      <div className=\"relative w-full py-0 !my-12 \">\r\n        <div className=\"flex justify-end space-x-2\">\r\n          <button\r\n            className=\"relative z-40 h-12 w-12 rounded-full bg-gray-100 dark:bg-neutral-800 hover:bg-gray-300 hover:dark:bg-gray-700 flex items-center justify-center disabled:opacity-50\"\r\n            onClick={() => scroll(\"left\")}\r\n            disabled={!canScrollLeft}\r\n          >\r\n            <IconArrowNarrowLeft className=\"h-7 w-7 \" />\r\n          </button>\r\n          <button\r\n            className=\"relative z-40 h-12 w-12 rounded-full bg-gray-100 dark:bg-neutral-800 hover:bg-gray-300 hover:dark:bg-gray-700 flex items-center justify-center disabled:opacity-50\"\r\n            onClick={() => scroll(\"right\")}\r\n            disabled={!canScrollRight}\r\n          >\r\n            <IconArrowNarrowRight className=\"h-7 w-7\" />\r\n          </button>\r\n        </div>\r\n        <div\r\n          className=\"flex w-full overflow-x-scroll py-6 scroll-smooth  [scrollbar-width:none]\"\r\n          ref={carouselRef}\r\n          onScroll={checkScrollAbility}\r\n        >\r\n          <div\r\n            className=\"flex flex-row justify-end\"\r\n            style={{ gap: `${cardGap}px` }}\r\n          >\r\n            {items.map((item, index) => (\r\n              <motion.div\r\n                key={index}\r\n                initial={{ opacity: 0, y: 20 }}\r\n                animate={{\r\n                  opacity: 1,\r\n                  y: 0,\r\n                  transition: { duration: 0.5, delay: 0.3 * index },\r\n                }}\r\n              >\r\n                {item}\r\n              </motion.div>\r\n            ))}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </CarouselContext.Provider>\r\n  )\r\n}\r\nexport const Card = ({\r\n  card,\r\n  index,\r\n  layout = false,\r\n}: {\r\n  card: Card\r\n  index: number\r\n  layout?: boolean\r\n}) => {\r\n  const [isOpen, setIsOpen] = useState(false)\r\n  const containerRef = useRef<HTMLDivElement>(null)\r\n  const cardRef = useRef<HTMLDivElement>(null)\r\n  useOutsideClick(containerRef, () => setIsOpen(false))\r\n  const handleCardClick = () => {\r\n    setIsOpen(true)\r\n    if (cardRef.current) {\r\n      cardRef.current.scrollIntoView({\r\n        behavior: \"smooth\",\r\n        block: \"nearest\",\r\n        inline: \"center\",\r\n      })\r\n    }\r\n  }\r\n  return (\r\n    <Fragment>\r\n      <motion.div\r\n        ref={cardRef}\r\n        layoutId={layout ? `card-${card.title}` : undefined}\r\n        onClick={handleCardClick}\r\n        className=\"rounded-3xl cursor-pointer bg-gray-100 dark:bg-neutral-800 hover:bg-gray-300 hover:dark:bg-gray-700 dark:bg-neutral-900 h-[18rem] md:h-[37rem] w-56 md:w-96 overflow-hidden flex flex-col items-start justify-start relative z-10zz\"\r\n      >\r\n        <div className=\"absolute h-full top-0 inset-x-0 bg-gradient-to-b from-black/50 via-transparent to-transparent z-30 pointer-events-none\" />\r\n        <div className=\"relative z-40 p-4 md:p-8\">\r\n          <motion.p\r\n            layoutId={layout ? `category-${card.category}` : undefined}\r\n            className=\"text-white/60 text-sm md:text-base font-medium font-sans text-left\"\r\n          >\r\n            {card.category}\r\n          </motion.p>\r\n          <motion.p\r\n            layoutId={layout ? `title-${card.title}` : undefined}\r\n            className=\"text-white text-lg md:text-xl lg:text-3xl font-semibold max-w-xs text-left\"\r\n          >\r\n            {card.title}\r\n          </motion.p>\r\n        </div>\r\n        <BlurImage\r\n          src={card.src}\r\n          alt={card.title}\r\n          fill\r\n          className=\"object-cover absolute z-10 inset-0\"\r\n        />\r\n      </motion.div>\r\n    </Fragment>\r\n  )\r\n}\r\nexport const BlurImage = ({\r\n  height,\r\n  width,\r\n  src,\r\n  className,\r\n  alt,\r\n  ...rest\r\n}: ImageProps) => {\r\n  const [isLoading, setLoading] = useState(true)\r\n  return (\r\n    <Image\r\n      className={cn(\r\n        \"transition duration-300\",\r\n        isLoading ? \"blur-sm\" : \"blur-0\",\r\n        className\r\n      )}\r\n      onLoad={() => setLoading(false)}\r\n      src={src}\r\n      width={width}\r\n      height={height}\r\n      loading=\"lazy\"\r\n      decoding=\"async\"\r\n      blurDataURL={typeof src === \"string\" ? src : undefined}\r\n      alt={alt ? alt : \"Background of a beautiful view\"}\r\n      {...rest}\r\n    />\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/carousel-2/constant/index": {
        "content": "export const CarouselsData = [\r\n  {\r\n    category: \"Artificial Intelligence\",\r\n    title: \"You can do more with AI.\",\r\n    src: \"/blocks/carousel/design-process-2.jpg\",\r\n  },\r\n  {\r\n    category: \"Productivity\",\r\n    title: \"Enhance your productivity.\",\r\n    src: \"/blocks/carousel/design-process.jpg\",\r\n  },\r\n  {\r\n    category: \"Product\",\r\n    title: \"Launching the new Apple Vision Pro.\",\r\n    src: \"/blocks/case-studies-1/image-1.jpg\",\r\n  },\r\n  {\r\n    category: \"Product\",\r\n    title: \"Launching the new Apple Vision Pro.\",\r\n    src: \"/blocks/case-studies-1/image-2.jpg\",\r\n  },\r\n  {\r\n    category: \"Product\",\r\n    title: \"Launching the new Apple Vision Pro.\",\r\n    src: \"/blocks/case-studies-1/image-3.jpg\",\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/carousel-2/page": {
      "content": "import Container from \"@/components/Container\"\r\n\r\nimport CarouselContainer from \"./components/carousel-container\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"px-4 lg:px-6\">\r\n      <CarouselContainer />\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "case-studies-1": {
    "components": {
      "@/registry/view/case-studies-1/components/case-studies": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { motion } from \"framer-motion\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\nimport Image from \"next/image\"\r\nimport { useEffect, useRef, useState } from \"react\"\r\n\r\ninterface CaseStudy {\r\n  id: string\r\n  title: string\r\n  description: string\r\n  image: string\r\n}\r\n\r\ninterface CaseStudiesCarouselProps {\r\n  title: string\r\n  description: string\r\n  caseStudies: CaseStudy[]\r\n}\r\n\r\nexport default function CaseStudiesCarousel({\r\n  title = \"Case Studies\",\r\n  description = \"Discover how leading companies and developers are leveraging modern web technologies to build exceptional digital experiences. These case studies showcase real-world applications and success stories.\",\r\n  caseStudies = [\r\n    {\r\n      id: \"shadcn\",\r\n      title: \"shadcn/ui: Building a Modern Component Library\",\r\n      description:\r\n        \"Explore how shadcn/ui revolutionized React component development\",\r\n      image: \"/blocks/case-studies-1/image-1.jpg\",\r\n    },\r\n    {\r\n      id: \"tailwind\",\r\n      title: \"Tailwind CSS: The Utility-First Revolution\",\r\n      description:\r\n        \"Discover how Tailwind CSS transformed the way developers style applications\",\r\n      image: \"/blocks/case-studies-1/image-2.jpg\",\r\n    },\r\n    {\r\n      id: \"astro\",\r\n      title: \"Astro: The All-in-One Web Framework\",\r\n      description:\r\n        \"Learn how Astro's innovative 'Islands Architecture' and zero-JS approach\",\r\n      image: \"/blocks/case-studies-1/image-3.jpg\",\r\n    },\r\n    {\r\n      id: \"react\",\r\n      title: \"React: Pioneering Component-Based UI\",\r\n      description:\r\n        \"See how React continues to shape modern web development with its component model\",\r\n      image: \"/blocks/case-studies-1/image-4.jpg\",\r\n    },\r\n    {\r\n      id: \"nextjs\",\r\n      title: \"Next.js: The React Framework\",\r\n      description:\r\n        \"Explore how Next.js has become the go-to framework for React applications\",\r\n      image: \"/blocks/case-studies-1/image-5.jpg\",\r\n    },\r\n  ],\r\n}: CaseStudiesCarouselProps) {\r\n  const carouselRef = useRef<HTMLDivElement>(null)\r\n  const [activeIndex, setActiveIndex] = useState(0)\r\n  const [canScrollLeft, setCanScrollLeft] = useState(false)\r\n  const [canScrollRight, setCanScrollRight] = useState(true)\r\n\r\n  const checkScrollAbility = () => {\r\n    if (carouselRef.current) {\r\n      const { scrollLeft, scrollWidth, clientWidth } = carouselRef.current\r\n      setCanScrollLeft(scrollLeft > 0)\r\n      setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 10)\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    checkScrollAbility()\r\n    window.addEventListener(\"resize\", checkScrollAbility)\r\n    return () => window.removeEventListener(\"resize\", checkScrollAbility)\r\n  }, [])\r\n\r\n  const scroll = (direction: \"left\" | \"right\") => {\r\n    if (carouselRef.current) {\r\n      const cardWidth =\r\n        carouselRef.current.querySelector(\"div[data-card]\")?.clientWidth || 300\r\n      const scrollAmount = direction === \"left\" ? -cardWidth : cardWidth\r\n\r\n      carouselRef.current.scrollBy({\r\n        left: scrollAmount,\r\n        behavior: \"smooth\",\r\n      })\r\n      if (direction === \"left\" && activeIndex > 0) {\r\n        setActiveIndex(activeIndex - 1)\r\n      } else if (\r\n        direction === \"right\" &&\r\n        activeIndex < caseStudies.length - 1\r\n      ) {\r\n        setActiveIndex(activeIndex + 1)\r\n      }\r\n    }\r\n  }\r\n\r\n  const scrollToIndex = (index: number) => {\r\n    if (carouselRef.current) {\r\n      const cards = carouselRef.current.querySelectorAll(\"div[data-card]\")\r\n      if (cards[index]) {\r\n        cards[index].scrollIntoView({\r\n          behavior: \"smooth\",\r\n          block: \"nearest\",\r\n          inline: \"start\",\r\n        })\r\n        setActiveIndex(index)\r\n      }\r\n    }\r\n  }\r\n\r\n  return (\r\n    <div className=\"w-full py-8 md:py-16 px-4 md:px-6 bg-white dark:bg-black transition-colors duration-200\">\r\n      <div className=\"max-w-7xl mx-auto\">\r\n        <div className=\"flex flex-col md:flex-row md:items-end justify-between mb-8 md:mb-12\">\r\n          <div className=\"max-w-3xl mb-6 md:mb-0\">\r\n            <h2 className=\"text-3xl md:text-4xl font-bold text-gray-900 dark:text-white mb-4\">\r\n              {title}\r\n            </h2>\r\n            <p className=\"text-gray-600 dark:text-gray-300 text-base md:text-lg\">\r\n              {description}\r\n            </p>\r\n          </div>\r\n          <div className=\"flex space-x-2 self-end\">\r\n            <button\r\n              className=\"h-10 w-10 md:h-12 md:w-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center disabled:opacity-50 transition-colors hover:bg-gray-200 dark:hover:bg-gray-700\"\r\n              onClick={() => scroll(\"left\")}\r\n              disabled={!canScrollLeft}\r\n              aria-label=\"Previous slide\"\r\n            >\r\n              <ArrowLeft className=\"h-5 w-5 md:h-6 md:w-6 text-gray-700 dark:text-gray-300\" />\r\n            </button>\r\n            <button\r\n              className=\"h-10 w-10 md:h-12 md:w-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center disabled:opacity-50 transition-colors hover:bg-gray-200 dark:hover:bg-gray-700\"\r\n              onClick={() => scroll(\"right\")}\r\n              disabled={!canScrollRight}\r\n              aria-label=\"Next slide\"\r\n            >\r\n              <ArrowRight className=\"h-5 w-5 md:h-6 md:w-6 text-gray-700 dark:text-gray-300\" />\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className=\"relative w-full overflow-hidden\" aria-live=\"polite\">\r\n          <div\r\n            ref={carouselRef}\r\n            className=\"flex w-full overflow-x-auto hide-scrollbar snap-x snap-mandatory gap-4 md:gap-6 pb-8\"\r\n            onScroll={() => {\r\n              checkScrollAbility()\r\n              if (carouselRef.current) {\r\n                const scrollLeft = carouselRef.current.scrollLeft\r\n                const cardWidth =\r\n                  carouselRef.current.querySelector(\"div[data-card]\")\r\n                    ?.clientWidth || 300\r\n                const newIndex = Math.round(scrollLeft / cardWidth)\r\n                if (\r\n                  newIndex !== activeIndex &&\r\n                  newIndex >= 0 &&\r\n                  newIndex < caseStudies.length\r\n                ) {\r\n                  setActiveIndex(newIndex)\r\n                }\r\n              }\r\n            }}\r\n          >\r\n            {caseStudies.map((study, index) => (\r\n              <motion.div\r\n                key={study.id}\r\n                data-card\r\n                className=\"min-w-[240px] md:min-w-[300px] lg:min-w-[360px] flex-shrink-0 snap-start rounded-xl overflow-hidden relative group\"\r\n                initial={{ opacity: 0, y: 20 }}\r\n                animate={{\r\n                  opacity: 1,\r\n                  y: 0,\r\n                  transition: { duration: 0.5, delay: index * 0.1 },\r\n                }}\r\n              >\r\n                <div className=\"relative aspect-[3/4] md:aspect-[4/5] w-full overflow-hidden\">\r\n                  <Image\r\n                    src={study.image}\r\n                    alt={study.title}\r\n                    fill\r\n                    className=\"object-cover transition-transform duration-500 group-hover:scale-105\"\r\n                    sizes=\"(max-width: 640px) 240px, (max-width: 1024px) 300px, 360px\"\r\n                  />\r\n                  <div className=\"absolute inset-0 bg-gradient-to-t from-black/80 via-black/40 to-transparent\" />\r\n                  <div className=\"absolute bottom-0 left-0 right-0 p-4 md:p-6 flex flex-col\">\r\n                    <h3 className=\"text-lg md:text-xl lg:text-2xl font-bold text-white mb-2\">\r\n                      {study.title}\r\n                    </h3>\r\n                    <p className=\"text-sm md:text-base text-gray-200 mb-4 line-clamp-2\">\r\n                      {study.description}\r\n                    </p>\r\n                    <button className=\"flex items-center text-white text-sm md:text-base font-medium group/btn\">\r\n                      Read more\r\n                      <ArrowRight className=\"ml-2 h-4 w-4 transition-transform group-hover/btn:translate-x-1\" />\r\n                    </button>\r\n                  </div>\r\n                </div>\r\n              </motion.div>\r\n            ))}\r\n          </div>\r\n          <div className=\"flex justify-center mt-4 space-x-2\">\r\n            {caseStudies.map((_, index) => (\r\n              <button\r\n                key={index}\r\n                onClick={() => scrollToIndex(index)}\r\n                className={cn(\r\n                  \"w-2 h-2 rounded-full transition-all duration-300\",\r\n                  activeIndex === index\r\n                    ? \"bg-gray-800 dark:bg-white w-4\"\r\n                    : \"bg-gray-300 dark:bg-gray-600\"\r\n                )}\r\n                aria-label={`Go to slide ${index + 1}`}\r\n                aria-current={activeIndex === index ? \"true\" : \"false\"}\r\n              />\r\n            ))}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/case-studies-1/page": {
      "content": "import CaseStudies from \"./components/case-studies\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <main className=\"min-h-screen\">\r\n      <CaseStudies />\r\n    </main>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "case-studies-2": {
    "components": {
      "@/registry/view/case-studies-2/components/case-studies": {
        "content": "\"use client\"\r\n\r\nimport { useOutsideClick } from \"@/hooks/out-side-click\"\r\nimport { AnimatePresence, motion } from \"framer-motion\"\r\nimport { ArrowLeft, ArrowRight, ExternalLink, X } from \"lucide-react\"\r\nimport Image from \"next/image\"\r\nimport type React from \"react\"\r\nimport { createContext, useContext, useEffect, useRef, useState } from \"react\"\r\n\r\ninterface CaseStudy {\r\n  id: string\r\n  title: string\r\n  description: string\r\n  image: string\r\n  category: string\r\n  fullDescription?: string\r\n  link?: string\r\n  technologies?: string[]\r\n  company?: string\r\n  content?: React.ReactNode\r\n}\r\n\r\ninterface CaseStudiesCarouselProps {\r\n  title: string\r\n  description: string\r\n  caseStudies: CaseStudy[]\r\n}\r\n\r\nconst CarouselContext = createContext<{\r\n  onCardClose: (index: number) => void\r\n  currentIndex: number\r\n}>({\r\n  onCardClose: () => {},\r\n  currentIndex: 0,\r\n})\r\n\r\nexport default function CaseStudiesCarousel({\r\n  title = \"Case Studies\",\r\n  description = \"Discover how leading companies and developers are leveraging modern web technologies to build exceptional digital experiences. These case studies showcase real-world applications and success stories.\",\r\n  caseStudies = [\r\n    {\r\n      id: \"shadcn\",\r\n      title: \"shadcn/ui: Building a Modern Component Library\",\r\n      description:\r\n        \"Explore how shadcn/ui revolutionized React component development\",\r\n      category: \"Component Library\",\r\n      fullDescription:\r\n        \"shadcn/ui has transformed how developers build React applications by providing a collection of reusable components that are both beautiful and accessible. Unlike traditional component libraries, shadcn/ui offers a unique approach where you copy and own the code, allowing for maximum customization while maintaining a consistent design language. This case study explores how this innovative approach has changed the component library landscape.\",\r\n      technologies: [\"React\", \"Radix UI\", \"Tailwind CSS\", \"TypeScript\"],\r\n      company: \"shadcn\",\r\n      link: \"https://ui.shadcn.com\",\r\n      image: \"/blocks/case-studies-1/image-1.jpg\",\r\n    },\r\n    {\r\n      id: \"tailwind\",\r\n      title: \"Tailwind CSS: The Utility-First Revolution\",\r\n      description:\r\n        \"Discover how Tailwind CSS transformed the way developers style applications\",\r\n      category: \"CSS Framework\",\r\n      fullDescription:\r\n        \"Tailwind CSS introduced a utility-first approach to styling that has dramatically changed how developers build interfaces. By providing low-level utility classes, Tailwind enables rapid UI development without leaving your HTML, resulting in more consistent designs and faster development cycles. This case study examines how Tailwind CSS has grown from a controversial idea to one of the most popular styling solutions in modern web development.\",\r\n      technologies: [\"CSS\", \"PostCSS\", \"JavaScript\", \"HTML\"],\r\n      company: \"Tailwind Labs\",\r\n      link: \"https://tailwindcss.com\",\r\n      image: \"/blocks/case-studies-1/image-2.jpg\",\r\n    },\r\n    {\r\n      id: \"astro\",\r\n      title: \"Astro: The All-in-One Web Framework\",\r\n      description:\r\n        \"Learn how Astro's innovative 'Islands Architecture' and zero-JS approach\",\r\n      category: \"Web Framework\",\r\n      fullDescription:\r\n        \"Astro has pioneered the 'Islands Architecture' approach, allowing developers to build faster websites by shipping less JavaScript to the client. By default, Astro renders your entire site to static HTML, then selectively hydrates only the interactive components when needed. This case study explores how Astro's innovative approach has enabled developers to build high-performance websites without sacrificing developer experience.\",\r\n      technologies: [\"JavaScript\", \"TypeScript\", \"HTML\", \"CSS\"],\r\n      company: \"Astro\",\r\n      link: \"https://astro.build\",\r\n      image: \"/blocks/case-studies-1/image-3.jpg\",\r\n    },\r\n    {\r\n      id: \"react\",\r\n      title: \"React: Pioneering Component-Based UI\",\r\n      description:\r\n        \"See how React continues to shape modern web development with its component model\",\r\n      category: \"JavaScript Library\",\r\n      fullDescription:\r\n        \"React introduced a component-based architecture that has fundamentally changed how developers build user interfaces. By breaking UIs into reusable, composable components and introducing a virtual DOM for efficient updates, React established patterns that have influenced virtually every modern frontend framework. This case study examines React's journey from a controversial library to the foundation of modern web development.\",\r\n      technologies: [\"JavaScript\", \"JSX\", \"Virtual DOM\", \"Hooks\"],\r\n      company: \"Meta (formerly Facebook)\",\r\n      link: \"https://react.dev\",\r\n      image: \"/blocks/case-studies-1/image-4.jpg\",\r\n    },\r\n    {\r\n      id: \"nextjs\",\r\n      title: \"Next.js: The React Framework\",\r\n      description:\r\n        \"Explore how Next.js has become the go-to framework for React applications\",\r\n      category: \"React Framework\",\r\n      fullDescription:\r\n        \"Next.js has established itself as the leading React framework by providing an elegant solution to common challenges in web development. With features like server-side rendering, static site generation, and automatic code splitting, Next.js enables developers to build high-performance React applications with minimal configuration. This case study explores how Next.js has evolved to address the needs of modern web applications.\",\r\n      technologies: [\"React\", \"JavaScript\", \"TypeScript\", \"Server Components\"],\r\n      company: \"Vercel\",\r\n      link: \"https://nextjs.org\",\r\n      image: \"/blocks/case-studies-1/image-5.jpg\",\r\n    },\r\n  ],\r\n}: CaseStudiesCarouselProps) {\r\n  const carouselRef = useRef<HTMLDivElement>(null)\r\n  const [activeIndex, setActiveIndex] = useState(0)\r\n  const [canScrollLeft, setCanScrollLeft] = useState(false)\r\n  const [canScrollRight, setCanScrollRight] = useState(true)\r\n\r\n  const checkScrollAbility = () => {\r\n    if (carouselRef.current) {\r\n      const { scrollLeft, scrollWidth, clientWidth } = carouselRef.current\r\n      setCanScrollLeft(scrollLeft > 0)\r\n      setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 10) \r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    checkScrollAbility()\r\n    window.addEventListener(\"resize\", checkScrollAbility)\r\n    return () => window.removeEventListener(\"resize\", checkScrollAbility)\r\n  }, [])\r\n\r\n  const scroll = (direction: \"left\" | \"right\") => {\r\n    if (carouselRef.current) {\r\n      const scrollAmount = direction === \"left\" ? -300 : 300\r\n\r\n      carouselRef.current.scrollBy({\r\n        left: scrollAmount,\r\n        behavior: \"smooth\",\r\n      })\r\n    }\r\n  }\r\n\r\n  const handleCardClose = (index: number) => {\r\n    if (carouselRef.current) {\r\n      const cardWidth = window.innerWidth < 768 ? 224 : 320\r\n      const gap = window.innerWidth < 768 ? 16 : 24\r\n      const scrollPosition = index * (cardWidth + gap)\r\n\r\n      carouselRef.current.scrollTo({\r\n        left: scrollPosition,\r\n        behavior: \"smooth\",\r\n      })\r\n      setActiveIndex(index)\r\n    }\r\n  }\r\n\r\n  return (\r\n    <CarouselContext.Provider\r\n      value={{ onCardClose: handleCardClose, currentIndex: activeIndex }}\r\n    >\r\n      <div className=\"w-full py-8 md:py-16 px-4 md:px-6 bg-white dark:bg-black transition-colors duration-200\">\r\n        <div className=\"max-w-7xl mx-auto\">\r\n          <div className=\"flex flex-col md:flex-row md:items-end justify-between mb-8 md:mb-12\">\r\n            <div className=\"max-w-3xl mb-6 md:mb-0\">\r\n              <h2 className=\"text-3xl md:text-4xl font-bold text-gray-900 dark:text-white mb-4\">\r\n                {title}\r\n              </h2>\r\n              <p className=\"text-gray-600 dark:text-gray-300 text-base md:text-lg\">\r\n                {description}\r\n              </p>\r\n            </div>\r\n            <div className=\"flex space-x-2 self-end\">\r\n              <button\r\n                className=\"h-10 w-10 md:h-12 md:w-12 rounded-full bg-gray-100 dark:bg-gray-950 flex items-center justify-center disabled:opacity-50 transition-colors hover:bg-gray-200 dark:hover:bg-gray-700\"\r\n                onClick={() => scroll(\"left\")}\r\n                disabled={!canScrollLeft}\r\n                aria-label=\"Previous slide\"\r\n              >\r\n                <ArrowLeft className=\"h-5 w-5 md:h-6 md:w-6 text-gray-700 dark:text-gray-300\" />\r\n              </button>\r\n              <button\r\n                className=\"h-10 w-10 md:h-12 md:w-12 rounded-full bg-gray-100 dark:bg-gray-950 flex items-center justify-center disabled:opacity-50 transition-colors hover:bg-gray-200 dark:hover:bg-gray-700\"\r\n                onClick={() => scroll(\"right\")}\r\n                disabled={!canScrollRight}\r\n                aria-label=\"Next slide\"\r\n              >\r\n                <ArrowRight className=\"h-5 w-5 md:h-6 md:w-6 text-gray-700 dark:text-gray-300\" />\r\n              </button>\r\n            </div>\r\n          </div>\r\n          <div className=\"relative w-full overflow-hidden\" aria-live=\"polite\">\r\n            <div\r\n              ref={carouselRef}\r\n              className=\"flex w-full overflow-x-auto hide-scrollbar gap-4 md:gap-8 pb-8\"\r\n              onScroll={checkScrollAbility}\r\n            >\r\n              {caseStudies.map((study, index) => (\r\n                <CaseStudyCard\r\n                  key={study.id}\r\n                  card={study}\r\n                  index={index}\r\n                  layout={true}\r\n                />\r\n              ))}\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </CarouselContext.Provider>\r\n  )\r\n}\r\n\r\nfunction CaseStudyCard({\r\n  card,\r\n  index,\r\n  layout = false,\r\n}: {\r\n  card: CaseStudy\r\n  index: number\r\n  layout?: boolean\r\n}) {\r\n  const [open, setOpen] = useState(false)\r\n  const containerRef = useRef<HTMLDivElement>(null)\r\n  const { onCardClose } = useContext(CarouselContext)\r\n\r\n  useEffect(() => {\r\n    function onKeyDown(event: KeyboardEvent) {\r\n      if (event.key === \"Escape\") {\r\n        handleClose()\r\n      }\r\n    }\r\n\r\n    if (open) {\r\n      document.body.style.overflow = \"hidden\"\r\n    } else {\r\n      document.body.style.overflow = \"auto\"\r\n    }\r\n\r\n    window.addEventListener(\"keydown\", onKeyDown)\r\n    return () => window.removeEventListener(\"keydown\", onKeyDown)\r\n  }, [open])\r\n\r\n  useOutsideClick(containerRef, () => handleClose())\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true)\r\n  }\r\n\r\n  const handleClose = () => {\r\n    setOpen(false)\r\n    onCardClose(index)\r\n  }\r\n\r\n  const cardContent = card.content || (\r\n    <div className=\"space-y-6\">\r\n      <p className=\"text-gray-700 dark:text-gray-300 text-base md:text-lg\">\r\n        {card.fullDescription || card.description}\r\n      </p>\r\n      {card.technologies && card.technologies.length > 0 && (\r\n        <div>\r\n          <h3 className=\"text-lg font-semibold mb-3 text-gray-900 dark:text-white\">\r\n            Technologies\r\n          </h3>\r\n          <div className=\"flex flex-wrap gap-2\">\r\n            {card.technologies.map((tech) => (\r\n              <span\r\n                key={tech}\r\n                className=\"px-3 py-1 bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-200 rounded-full text-sm\"\r\n              >\r\n                {tech}\r\n              </span>\r\n            ))}\r\n          </div>\r\n        </div>\r\n      )}\r\n      {card.image && (\r\n        <div className=\"relative\">\r\n          <Image\r\n            src={card.image}\r\n            alt={card.title}\r\n            fill\r\n            className=\"object-cover w-full h-[100px]\"\r\n          />\r\n        </div>\r\n      )}\r\n      {card.company && (\r\n        <div>\r\n          <h3 className=\"text-lg font-semibold mb-2 text-gray-900 dark:text-white\">\r\n            Company\r\n          </h3>\r\n          <p className=\"text-gray-700 dark:text-gray-300\">{card.company}</p>\r\n        </div>\r\n      )}\r\n      {card.link && (\r\n        <div className=\"pt-4\">\r\n          <a\r\n            href={card.link}\r\n            target=\"_blank\"\r\n            rel=\"noopener noreferrer\"\r\n            className=\"inline-flex items-center px-4 py-2 bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-900 rounded-lg hover:bg-gray-800 dark:hover:bg-white transition-colors\"\r\n          >\r\n            Visit Website\r\n            <ExternalLink className=\"ml-2 h-4 w-4\" />\r\n          </a>\r\n        </div>\r\n      )}\r\n    </div>\r\n  )\r\n\r\n  return (\r\n    <>\r\n      <AnimatePresence>\r\n        {open && (\r\n          <div className=\"fixed inset-0 z-50 h-screen overflow-y-auto hide-scrollbar\">\r\n            <motion.div\r\n              initial={{ opacity: 0 }}\r\n              animate={{ opacity: 1 }}\r\n              exit={{ opacity: 0 }}\r\n              className=\"fixed inset-0 h-full w-full bg-black/50 backdrop-blur-lg\"\r\n            />\r\n            <motion.div\r\n              initial={{ opacity: 0 }}\r\n              animate={{ opacity: 1 }}\r\n              exit={{ opacity: 0 }}\r\n              ref={containerRef}\r\n              layoutId={layout ? `card-${card.id}` : undefined}\r\n              className=\"relative z-[60] mx-auto my-10 h-fit max-w-5xl rounded-3xl bg-white p-4 font-sans md:p-10 dark:bg-neutral-900\"\r\n            >\r\n              <button\r\n                className=\"sticky top-4 right-0 ml-auto flex h-8 w-8 items-center justify-center rounded-full bg-black dark:bg-white\"\r\n                onClick={handleClose}\r\n              >\r\n                <X className=\"h-6 w-6 text-neutral-100 dark:text-neutral-900\" />\r\n              </button>\r\n              <motion.p\r\n                layoutId={layout ? `category-${card.id}` : undefined}\r\n                className=\"text-base font-medium text-black dark:text-white\"\r\n              >\r\n                {card.category}\r\n              </motion.p>\r\n              <motion.p\r\n                layoutId={layout ? `title-${card.id}` : undefined}\r\n                className=\"mt-4 text-2xl font-semibold text-neutral-700 md:text-5xl dark:text-white\"\r\n              >\r\n                {card.title}\r\n              </motion.p>\r\n              <div className=\"py-10\">{cardContent}</div>\r\n            </motion.div>\r\n          </div>\r\n        )}\r\n      </AnimatePresence>\r\n      <motion.button\r\n        layoutId={layout ? `card-${card.id}` : undefined}\r\n        onClick={handleOpen}\r\n        className=\"relative h-[360px] md:h-[440px] lg:h-[500px] z-10 flex flex-col items-start justify-start overflow-hidden rounded-xl bg-gray-100 dark:bg-neutral-900 flex-shrink-0\"\r\n      >\r\n        <div className=\"pointer-events-none absolute inset-x-0 top-0 z-30 h-full bg-gradient-to-b from-black/50 via-transparent to-transparent\" />\r\n        <div className=\"relative z-40 p-8\">\r\n          <motion.p\r\n            layoutId={layout ? `category-${card.id}` : undefined}\r\n            className=\"text-left font-sans text-sm font-medium text-white md:text-base\"\r\n          >\r\n            {card.category}\r\n          </motion.p>\r\n          <motion.p\r\n            layoutId={layout ? `title-${card.id}` : undefined}\r\n            className=\"mt-2 max-w-xs text-left font-sans text-xl font-semibold [text-wrap:balance] text-white md:text-3xl\"\r\n          >\r\n            {card.title}\r\n          </motion.p>\r\n        </div>\r\n        <Image\r\n          src={card.image}\r\n          alt={card.title}\r\n          fill\r\n          className=\"absolute inset-0 z-10 object-cover transition-transform duration-500 hover:scale-105\"\r\n          sizes=\"(max-width: 640px) 240px, (max-width: 1024px) 300px, 360px\"\r\n        />\r\n      </motion.button>\r\n    </>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/case-studies-2/page": {
      "content": "import CaseStudies from \"./components/case-studies\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <main className=\"min-h-screen\">\r\n      <CaseStudies />\r\n    </main>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "contact-1": {
    "components": {
      "@/registry/view/contact-1/components/contact": {
        "content": "import { cn } from '@/lib/utils';\r\nimport { Button } from '@/components/ui/button';\r\nimport { Checkbox } from '@/components/ui/checkbox';\r\nimport { Input } from '@/components/ui/input';\r\nimport { Label } from '@/components/ui/label';\r\nimport { Textarea } from '@/components/ui/textarea';\r\nimport {\r\n    MapPin,\r\n    MessageCircle,\r\n    Phone,\r\n    Send,\r\n    Shield,\r\n    Users\r\n} from 'lucide-react';\r\nimport Link from 'next/link';\r\nimport React, { useState } from 'react';\r\nimport { IoLogoTwitter } from \"react-icons/io\";\r\nimport { FaLinkedin } from \"react-icons/fa\";\r\nimport { FaFacebook } from \"react-icons/fa\";\r\nimport { AiFillInstagram } from \"react-icons/ai\";\r\n\r\n// Form data interface\r\ninterface FormData {\r\n    firstName: string;\r\n    lastName: string;\r\n    company: string;\r\n    email: string;\r\n    phone: string;\r\n    message: string;\r\n    agreeToPrivacy: boolean;\r\n}\r\n\r\n// Form errors interface\r\ninterface FormErrors {\r\n    [key: string]: string;\r\n}\r\n\r\n// Validation functions\r\nconst validateEmail = (email: string): boolean => {\r\n    return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n};\r\n\r\nconst validatePhone = (phone: string): boolean => {\r\n    const phoneRegex = /^[\\+]?[1-9][\\d]{0,15}$/;\r\n    return phoneRegex.test(phone.replace(/[\\s\\-\\(\\)]/g, ''));\r\n};\r\n\r\nconst validateRequired = (value: string, minLength: number = 2): boolean => {\r\n    return value.trim().length >= minLength;\r\n};\r\n\r\nconst ContactForm: React.FC = () => {\r\n    const [formData, setFormData] = useState<FormData>({\r\n        firstName: '',\r\n        lastName: '',\r\n        company: '',\r\n        email: '',\r\n        phone: '',\r\n        message: '',\r\n        agreeToPrivacy: false,\r\n    });\r\n\r\n    const [errors, setErrors] = useState<FormErrors>({});\r\n    const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n    // Handle input changes\r\n    const handleInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n        const { name, value, type } = e.target;\r\n        const checked = type === 'checkbox' ? (e.target as HTMLInputElement).checked : false;\r\n\r\n        setFormData(prev => ({\r\n            ...prev,\r\n            [name]: type === 'checkbox' ? checked : value,\r\n        }));\r\n\r\n        // Clear error when user starts typing\r\n        if (errors[name]) {\r\n            setErrors(prev => ({\r\n                ...prev,\r\n                [name]: '',\r\n            }));\r\n        }\r\n    };\r\n\r\n    // Validate entire form\r\n    const validateForm = (): boolean => {\r\n        const newErrors: FormErrors = {};\r\n\r\n        // First name validation\r\n        if (!validateRequired(formData.firstName)) {\r\n            newErrors.firstName = 'First name is required (at least 2 characters)';\r\n        }\r\n\r\n        // Last name validation\r\n        if (!validateRequired(formData.lastName)) {\r\n            newErrors.lastName = 'Last name is required (at least 2 characters)';\r\n        }\r\n\r\n        // Email validation\r\n        if (!formData.email.trim()) {\r\n            newErrors.email = 'Email is required';\r\n        } else if (!validateEmail(formData.email)) {\r\n            newErrors.email = 'Please enter a valid email address';\r\n        }\r\n\r\n        // Phone validation\r\n        if (!formData.phone.trim()) {\r\n            newErrors.phone = 'Phone number is required';\r\n        } else if (!validatePhone(formData.phone)) {\r\n            newErrors.phone = 'Please enter a valid phone number';\r\n        }\r\n\r\n        // Message validation\r\n        if (!validateRequired(formData.message, 10)) {\r\n            newErrors.message = 'Message is required (at least 10 characters)';\r\n        } else if (formData.message.length > 500) {\r\n            newErrors.message = 'The message must not exceed 500 characters';\r\n        }\r\n\r\n        // Privacy policy validation\r\n        if (!formData.agreeToPrivacy) {\r\n            newErrors.agreeToPrivacy = 'You must agree to the privacy policy';\r\n        }\r\n\r\n        setErrors(newErrors);\r\n        return Object.keys(newErrors).length === 0;\r\n    };\r\n\r\n    // Handle form submission\r\n    const handleSubmit = async () => {\r\n        if (!validateForm()) {\r\n            return;\r\n        }\r\n\r\n        setIsSubmitting(true);\r\n\r\n        try {\r\n            // Simulate API call\r\n            await new Promise(resolve => setTimeout(resolve, 2000));\r\n\r\n            alert('Message sent successfully! We will contact you shortly');\r\n\r\n            // Reset form\r\n            setFormData({\r\n                firstName: '',\r\n                lastName: '',\r\n                company: '',\r\n                email: '',\r\n                phone: '',\r\n                message: '',\r\n                agreeToPrivacy: false,\r\n            });\r\n        } catch (error) {\r\n            alert('An error occurred while sending the message. Please try again');\r\n        } finally {\r\n            setIsSubmitting(false);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div className=\"min-h-screen bg-background flex items-center justify-center p-4\">\r\n            <div className=\"max-w-6xl w-full bg-card text-card-foreground rounded-3xl overflow-hidden\">\r\n                <div className=\"grid grid-cols-1 lg:grid-cols-4 min-h-[500px]\">\r\n                    <div className=\"lg:col-span-2 bg-gradient-to-br from-blue-700 via-blue-400 to-blue-200 p-8 lg:p-12 text-white relative overflow-hidden\">\r\n                        <div className=\"absolute inset-0 bg-gradient-to-br from-blue-400/30 to-purple-600/20\" />\r\n                        <div className=\"absolute -top-20 -right-20 w-40 h-40 bg-white/10 rounded-full blur-xl animate-pulse\" />\r\n                        <div className=\"absolute -bottom-10 -left-10 w-32 h-32 bg-white/5 rounded-full blur-lg\" />\r\n                        <div className=\"absolute top-1/2 right-0 w-24 h-24 bg-white/5 rounded-full blur-md\" />\r\n                        <div className=\"relative z-10 h-full flex flex-col justify-between\">\r\n                            <div>\r\n                                <h2 className=\"text-3xl lg:text-4xl font-bold mb-8 leading-tight\">\r\n                                    Contact Us\r\n                                </h2>\r\n                                <div className=\"space-y-6\">\r\n                                    <div className=\"flex items-start space-x-4 group\">\r\n                                        <div>\r\n                                            <h3 className=\"font-semibold text-lg mb-1\">Visit Us</h3>\r\n                                            <p className=\"text-white/80 text-sm leading-relaxed\">\r\n                                                Come visit us at our main headquarters\r\n                                                <br />\r\n                                                Cairo, Egypt - New Administrative Capital\r\n                                            </p>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div className=\"flex items-start space-x-4 group\">\r\n                                        <div>\r\n                                            <h3 className=\"font-semibold text-lg mb-1\">Email Us</h3>\r\n                                            <p className=\"text-white/80 text-sm mb-1\">\r\n                                                Our technical team is ready to help you\r\n                                            </p>\r\n                                            <a\r\n                                                href=\"mailto:hello@alpha.dev\"\r\n                                                className=\"text-white/90 text-sm hover:text-white transition-colors border-b border-white/30 hover:border-white\"\r\n                                            >\r\n                                                hello@alpha.dev\r\n                                            </a>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div className=\"flex items-start space-x-4 group\">\r\n                                        <div>\r\n                                            <h3 className=\"font-semibold text-lg mb-1\">Call Us</h3>\r\n                                            <p className=\"text-white/80 text-sm mb-1\">\r\n                                                Sunday-Thursday from 9 AM to 6 PM (Cairo time)\r\n                                            </p>\r\n                                            <Link\r\n                                                href=\"tel:+20101234567\"\r\n                                                className=\"text-white/90 text-sm hover:text-white transition-colors border-b border-white/30 hover:border-white\"\r\n                                            >\r\n                                                (+20) 10 123-456-78\r\n                                            </Link>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div>\r\n                                        <h3 className=\"font-semibold text-lg mb-4\">Follow Us</h3>\r\n                                        <div className=\"flex space-x-4\">\r\n                                            {[\r\n                                                { Icon: FaFacebook, href: '#', label: 'Facebook' },\r\n                                                { Icon: FaLinkedin, href: '#', label: 'LinkedIn' },\r\n                                                { Icon: AiFillInstagram, href: '#', label: 'Instagram' },\r\n                                                { Icon: IoLogoTwitter, href: '#', label: 'Twitter' },\r\n                                            ].map(({ Icon, href, label }) => (\r\n                                                <Link\r\n                                                    key={label}\r\n                                                    href={href}\r\n                                                    aria-label={label}\r\n                                                    className=\"w-10 h-10 hover:bg-white/10 rounded-full flex items-center justify-center transition-all\"\r\n                                                >\r\n                                                    <Icon className=\"w-5 h-5 text-white \" />\r\n                                                </Link>\r\n                                            ))}\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"lg:col-span-2 p-8 lg:p-12 bg-card\">\r\n                        <div className=\"space-y-6 max-w-md mx-auto lg:mx-0\">\r\n                            <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\r\n                                <div>\r\n                                    <Label htmlFor=\"firstName\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                        First Name *\r\n                                    </Label>\r\n                                    <Input\r\n                                        type=\"text\"\r\n                                        id=\"firstName\"\r\n                                        name=\"firstName\"\r\n                                        placeholder=\"Ahmed\"\r\n                                        value={formData.firstName}\r\n                                        onChange={handleInputChange}\r\n                                        className={cn(\r\n                                            \"w-full px-4 py-3 border-2 rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 hover:bg-muted/50\",\r\n                                            errors.firstName ? 'border-destructive' : 'border-border'\r\n                                        )}\r\n                                    />\r\n                                    {errors.firstName && (\r\n                                        <p className=\"mt-1 text-xs text-destructive\">\r\n                                            {errors.firstName}\r\n                                        </p>\r\n                                    )}\r\n                                </div>\r\n                                <div>\r\n                                    <Label htmlFor=\"lastName\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                        Last Name *\r\n                                    </Label>\r\n                                    <Input\r\n                                        type=\"text\"\r\n                                        id=\"lastName\"\r\n                                        name=\"lastName\"\r\n                                        placeholder=\"Mohamed\"\r\n                                        value={formData.lastName}\r\n                                        onChange={handleInputChange}\r\n                                        className={cn(\r\n                                            \"w-full px-4 py-3 border-2 rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 hover:bg-muted/50\",\r\n                                            errors.lastName ? 'border-destructive' : 'border-border'\r\n                                        )}\r\n                                    />\r\n                                    {errors.lastName && (\r\n                                        <p className=\"mt-1 text-xs text-destructive\">\r\n                                            {errors.lastName}\r\n                                        </p>\r\n                                    )}\r\n                                </div>\r\n                            </div>\r\n                            <div>\r\n                                <Label htmlFor=\"company\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                    Company Name\r\n                                </Label>\r\n                                <Input\r\n                                    type=\"text\"\r\n                                    id=\"company\"\r\n                                    name=\"company\"\r\n                                    placeholder=\"Advanced Tech Company\"\r\n                                    value={formData.company}\r\n                                    onChange={handleInputChange}\r\n                                    className=\"w-full px-4 py-3 border-2 border-border rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 hover:bg-muted/50\"\r\n                                />\r\n                            </div>\r\n                            <div>\r\n                                <Label htmlFor=\"email\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                    Email Address *\r\n                                </Label>\r\n                                <Input\r\n                                    type=\"email\"\r\n                                    id=\"email\"\r\n                                    name=\"email\"\r\n                                    placeholder=\"ahmed@company.com\"\r\n                                    value={formData.email}\r\n                                    onChange={handleInputChange}\r\n                                    className={cn(\r\n                                        \"w-full px-4 py-3 border-2 rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 hover:bg-muted/50\",\r\n                                        errors.email ? 'border-destructive' : 'border-border'\r\n                                    )}\r\n                                />\r\n                                {errors.email && (\r\n                                    <p className=\"mt-1 text-xs text-destructive\">\r\n                                        {errors.email}\r\n                                    </p>\r\n                                )}\r\n                            </div>\r\n                            <div>\r\n                                <Label htmlFor=\"phone\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                    Phone Number *\r\n                                </Label>\r\n                                <div className=\"relative\">\r\n                                    <Input\r\n                                        type=\"tel\"\r\n                                        id=\"phone\"\r\n                                        name=\"phone\"\r\n                                        placeholder=\"+20 10 1234 5678\"\r\n                                        value={formData.phone}\r\n                                        onChange={handleInputChange}\r\n                                        className={cn(\r\n                                            \"w-full px-4 py-3 border-2 rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 hover:bg-muted/50 pl-10\", // Added pl-10 for icon padding\r\n                                            errors.phone ? 'border-destructive' : 'border-border'\r\n                                        )}\r\n                                    />\r\n                                    <Phone className=\"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-muted-foreground\" />\r\n                                </div>\r\n                                {errors.phone && (\r\n                                    <p className=\"mt-1 text-xs text-destructive\">\r\n                                        {errors.phone}\r\n                                    </p>\r\n                                )}\r\n                                <p className=\"mt-1 text-xs text-muted-foreground\">\r\n                                    Example: +20 10 1234 5678, +966 50 123 4567, +971 50 123 4567\r\n                                </p>\r\n                            </div>\r\n                            <div>\r\n                                <Label htmlFor=\"message\" className=\"block text-sm font-semibold text-muted-foreground mb-2\">\r\n                                    Project Details *\r\n                                </Label>\r\n                                <Textarea\r\n                                    id=\"message\"\r\n                                    name=\"message\"\r\n                                    rows={4}\r\n                                    placeholder=\"Tell us about your project and how we can help you achieve your business goals...\"\r\n                                    value={formData.message}\r\n                                    onChange={handleInputChange}\r\n                                    className={cn(\r\n                                        \"w-full px-4 py-3 border-2 rounded-xl text-foreground placeholder-muted-foreground focus:ring-2 focus:ring-ring focus:border-ring transition-all duration-300 resize-none hover:bg-muted/50\",\r\n                                        errors.message ? 'border-destructive' : 'border-border'\r\n                                    )}\r\n                                />\r\n                                <div className=\"flex justify-between items-center mt-1\">\r\n                                    {errors.message ? (\r\n                                        <p className=\"text-xs text-destructive\">\r\n                                            {errors.message}\r\n                                        </p>\r\n                                    ) : (\r\n                                        <p className=\"text-xs text-muted-foreground\">\r\n                                            Minimum 10 characters\r\n                                        </p>\r\n                                    )}\r\n                                    <p className={cn(\"text-xs\", formData.message.length > 450 ? 'text-destructive' : 'text-muted-foreground')}>\r\n                                        {formData.message.length}/500\r\n                                    </p>\r\n                                </div>\r\n                            </div>\r\n                            <div className=\"p-4 rounded-xl border border-border/50 hover:border-border transition-colors\">\r\n                                <div className=\"flex items-start space-x-3\">\r\n                                    <Checkbox\r\n                                        id=\"agreeToPrivacy\"\r\n                                        name=\"agreeToPrivacy\"\r\n                                        checked={formData.agreeToPrivacy}\r\n                                        onCheckedChange={(checked) =>\r\n                                            setFormData(prev => ({ ...prev, agreeToPrivacy: !!checked }))\r\n                                        }\r\n                                        className=\"mt-1\"\r\n                                    />\r\n                                    <div className=\"flex-1\">\r\n                                        <label htmlFor=\"agreeToPrivacy\" className=\"text-sm text-foreground leading-relaxed cursor-pointer \">\r\n                                            I agree to receive updates about innovative solutions and services. I understand and accept the{' '}\r\n                                            <Link href=\"#\" className=\"text-blue-500 hover:text-blue-400 underline font-medium transition-colors\">\r\n                                                Privacy Policy\r\n                                            </Link>{' '}\r\n                                            and the{' '}\r\n                                            <Link href=\"#\" className=\"text-blue-500 hover:text-blue-400 underline font-medium transition-colors\">\r\n                                                Terms of Service\r\n                                            </Link>\r\n                                        </label>\r\n                                        {errors.agreeToPrivacy && (\r\n                                            <p className=\"mt-2 text-xs text-destructive\">\r\n                                                {errors.agreeToPrivacy}\r\n                                            </p>\r\n                                        )}\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                            <Button\r\n                                type=\"button\"\r\n                                onClick={handleSubmit}\r\n                                disabled={!formData.agreeToPrivacy || isSubmitting}\r\n                                className={cn(\r\n                                    \"w-full font-semibold py-4 px-6 rounded-xl transition-all duration-300 transform hover:scale-[1.02] relative overflow-hidden\",\r\n                                    formData.agreeToPrivacy && !isSubmitting\r\n                                        ? 'bg-primary text-primary-foreground hover:bg-primary/90'\r\n                                        : 'bg-muted text-muted-foreground cursor-not-allowed',\r\n                                    'shadow-lg'\r\n                                )}\r\n                            >\r\n                                <span className=\"relative z-10 flex items-center justify-center gap-2\">\r\n                                    {isSubmitting ? (\r\n                                        <>\r\n                                            <div className=\"w-4 h-4 border-2 border-foreground border-t-transparent rounded-full animate-spin\"></div>\r\n                                            Submitting...\r\n                                        </>\r\n                                    ) : formData.agreeToPrivacy ? (\r\n                                        <>\r\n                                            <Send className=\"w-4 h-4\" />\r\n                                            Send Message\r\n                                        </>\r\n                                    ) : (\r\n                                        'Please agree to the privacy policy'\r\n                                    )}\r\n                                </span>\r\n                            </Button>\r\n                            <div className=\"text-center space-y-2\">\r\n                                <div className=\"flex items-center justify-center gap-4 text-xs text-muted-foreground\">\r\n                                    <div className=\"flex items-center gap-1\">\r\n                                        <Shield className=\"w-3 h-3\" />\r\n                                        SSL Encrypted and GDPR Compliant\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"flex items-center justify-center gap-1 text-xs text-muted-foreground\">\r\n                                    <Users className=\"w-3 h-3\" />\r\n                                    Trusted by over 500 companies in the MENA region\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default ContactForm;",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {
      "@/registry/view/contact-1/lib/utils.ts": {
        "content": "import z from \"zod\";\r\n\r\nexport const authFormConfirmingOrderSchema = z.object({\r\n    fullName: z.string().min(3, {\r\n        message: \"Full Name Must be At Least 3 Characters\",\r\n    }),\r\n    phoneNumber: z.string().min(11, {\r\n        message: \"Please enter a valid number that contains 11 numbers\",\r\n    }),\r\n    address: z.string().max(150, {\r\n        message: \"Address Must be clear\",\r\n    }),\r\n    state: z.string().min(2, {\r\n        message: \"State Must be at least 2 characters like: Nasr City\",\r\n    }),\r\n    city: z.string().min(2, {\r\n        message: \"City must be at least 2 characters \",\r\n    }),\r\n    zipCode: z\r\n        .string()\r\n        .min(2)\r\n        .max(10, {\r\n            message: \"Zip Code Must be clear like cairo zip code: 4461232\",\r\n        })\r\n        .optional(),\r\n    country: z.string().min(2, {\r\n        message: \"country must be at least 2 characters like : EG\",\r\n    }),\r\n});\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/contact-1/page": {
      "content": "import Contact from \"./components/contact\";\r\n\r\nexport default function Page() {\r\n    return (\r\n        <main className=\"min-h-screen\">\r\n            <Contact />\r\n        </main>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "contact-2": {
    "components": {
      "@/registry/view/contact-2/components/contact": {
        "content": "import { Clock, Globe, Mail, MapPin, Navigation, Phone, Send } from 'lucide-react';\r\nimport React from 'react';\r\n\r\ninterface FormData {\r\n    fullName: string;\r\n    jobPosition: string;\r\n    email: string;\r\n    phoneNumber: string;\r\n}\r\n\r\nconst Contact: React.FC = () => {\r\n    const [formData, setFormData] = React.useState<FormData>({\r\n        fullName: '',\r\n        jobPosition: '',\r\n        email: '',\r\n        phoneNumber: ''\r\n    });\r\n\r\n    const [isSubmitting, setIsSubmitting] = React.useState<boolean>(false);\r\n\r\n    const handleInputChange = (field: keyof FormData, value: string): void => {\r\n        setFormData(prev => ({\r\n            ...prev,\r\n            [field]: value\r\n        }));\r\n    };\r\n\r\n    const handleSubmit = async (): Promise<void> => {\r\n        setIsSubmitting(true);\r\n\r\n        // Simulate API call\r\n        await new Promise(resolve => setTimeout(resolve, 1500));\r\n\r\n        console.log('Demo request submitted:', formData);\r\n        alert('Demo request submitted successfully!');\r\n\r\n        // Reset form\r\n        setFormData({\r\n            fullName: '',\r\n            jobPosition: '',\r\n            email: '',\r\n            phoneNumber: ''\r\n        });\r\n        setIsSubmitting(false);\r\n    };\r\n\r\n    const handleGetDirections = (): void => {\r\n        // Open Google Maps with the location\r\n        window.open('https://maps.google.com/?q=Alpha+Tower,+New+Administrative+Capital,+Cairo,+Egypt', '_blank');\r\n    };\r\n\r\n    return (\r\n        <div className=\"min-h-screen transition-colors duration-300\">\r\n            <div className=\"max-w-7xl mx-auto p-4 lg:p-8\">\r\n                <div className=\"rounded-2xl overflow-hidden\">\r\n                    <div className=\"py-8\">\r\n                        <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-8\">\r\n                            <div className=\"lg:col-span-1 space-y-2\">\r\n                                <h1 className=\"text-3xl lg:text-4xl font-bold transition-colors duration-300 text-gray-900 dark:text-white\">\r\n                                    Get In Touch\r\n                                </h1>\r\n                                <p className=\"leading-relaxed max-w-md transition-colors duration-300 text-gray-600 dark:text-gray-300\">\r\n                                    We'd love to hear from you! Whether you have questions, need\r\n                                    support, or want to learn more about our services, our team is here\r\n                                    to help.\r\n                                </p>\r\n                            </div>\r\n                            <div className=\"lg:col-span-2 grid grid-cols-1 md:grid-cols-2 gap-6\">\r\n                                <div className=\"space-y-4\">\r\n                                    <div className=\"flex items-center space-x-3\">\r\n                                        <div className=\"w-12 h-12 rounded-lg flex items-center justify-center transition-colors duration-300 bg-emerald-100 text-emerald-600 dark:bg-emerald-900/50 dark:text-emerald-400\">\r\n                                            <MapPin className=\"w-6 h-6\" />\r\n                                        </div>\r\n                                        <div>\r\n                                            <h4 className=\"font-semibold transition-colors duration-300 text-gray-900 dark:text-white\">\r\n                                                Our Address\r\n                                            </h4>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div className=\"pl-15 space-y-1\">\r\n                                        <p className=\"text-sm font-medium transition-colors duration-300 text-gray-700 dark:text-gray-300\">\r\n                                            Alpha Tower\r\n                                        </p>\r\n                                        <p className=\"text-sm transition-colors duration-300 text-gray-600 dark:text-gray-400\">\r\n                                            New Administrative Capital\r\n                                        </p>\r\n                                        <p className=\"text-sm transition-colors duration-300 text-gray-600 dark:text-gray-400\">\r\n                                            Cairo, Egypt\r\n                                        </p>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"space-y-4\">\r\n                                    <div className=\"flex items-center space-x-3\">\r\n                                        <div className=\"w-12 h-12 rounded-lg flex items-center justify-center transition-colors duration-300 bg-blue-100 text-blue-600 dark:bg-blue-900/50 dark:text-blue-400\">\r\n                                            <Phone className=\"w-6 h-6\" />\r\n                                        </div>\r\n                                        <div>\r\n                                            <h4 className=\"font-semibold transition-colors duration-300 text-gray-900 dark:text-white\">\r\n                                                Contact Info\r\n                                            </h4>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div className=\"pl-15 space-y-2\">\r\n                                        <div className=\"flex items-center space-x-2\">\r\n                                            <Phone className=\"w-4 h-4 transition-colors duration-300 text-gray-500 dark:text-gray-400\" />\r\n                                            <p className=\"text-sm transition-colors duration-300 text-gray-700 dark:text-gray-300\">\r\n                                                +20 101 234 567\r\n                                            </p>\r\n                                        </div>\r\n                                        <div className=\"flex items-center space-x-2\">\r\n                                            <Mail className=\"w-4 h-4 transition-colors duration-300 text-gray-500 dark:text-gray-400\" />\r\n                                            <p className=\"text-sm transition-colors duration-300 text-gray-700 dark:text-gray-300\">\r\n                                                hello@alpha.dev\r\n                                            </p>\r\n                                        </div>\r\n                                        <div className=\"flex items-center space-x-2\">\r\n                                            <Clock className=\"w-4 h-4 transition-colors duration-300 text-gray-500 dark:text-gray-400\" />\r\n                                            <p className=\"text-sm transition-colors duration-300 text-gray-700 dark:text-gray-300\">\r\n                                                Sun-Thu: 9AM - 6PM\r\n                                            </p>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div className='py-3'>\r\n                            <button\r\n                                onClick={handleGetDirections}\r\n                                className=\"w-full sm:w-auto bg-emerald-600 hover:bg-emerald-700 text-white px-6 py-3 rounded-lg font-medium transition-all duration-200 flex items-center justify-center space-x-2 shadow-md hover:shadow-lg\"\r\n                            >\r\n                                <Navigation className=\"w-5 h-5\" />\r\n                                <span>Get Directions</span>\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative\">\r\n                        <div className=\"h-64 sm:h-80 lg:h-96\">\r\n                            <iframe\r\n                                src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d220084.9685181676!2d31.13279144497514!3d30.044487839570403!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x14583fa60b21beeb%3A0x79dfb296e8423bba!2sNew%20Administrative%20Capital%2C%20Cairo%20Governorate%2C%20Egypt!5e0!3m2!1sen!2sus!4v1703784234567!5m2!1sen!2sus\"\r\n                                width=\"100%\"\r\n                                height=\"100%\"\r\n                                style={{ border: 0 }}\r\n                                allowFullScreen={true}\r\n                                loading=\"lazy\"\r\n                                referrerPolicy=\"no-referrer-when-downgrade\"\r\n                                title=\"Alpha Tower Location\"\r\n                                className=\"w-full h-full\"\r\n                            />\r\n                        </div>\r\n                        <div className=\"absolute inset-0 bg-gray-900/20 pointer-events-none dark:bg-gray-900/30\" />\r\n                    </div>\r\n                    <div className=\"py-8\">\r\n                        <div className=\"max-w-5xl mx-auto flex justify-center flex-col\">\r\n                            <div className=\"grid grid-cols-1 md:grid-cols-2 gap-6\">\r\n                                <h2 className=\"flex items-center text-2xl lg:text-3xl font-bold mb-6 transition-colors duration-300 text-gray-900 dark:text-white text-nowrap w-full\">\r\n                                    Request a Demo\r\n                                </h2>\r\n                                <div className='flex items-end flex-col gap-6'>\r\n                                    <div className='grid grid-cols-2 gap-4 w-full'>\r\n                                        <div className=\"space-y-2\">\r\n                                            <label\r\n                                                htmlFor=\"fullName\"\r\n                                                className=\"block text-sm font-medium transition-colors duration-300 text-gray-700 dark:text-gray-300\"\r\n                                            >\r\n                                                Full Name*\r\n                                            </label>\r\n                                            <input\r\n                                                type=\"text\"\r\n                                                id=\"fullName\"\r\n                                                value={formData.fullName}\r\n                                                onChange={(e) => handleInputChange('fullName', e.target.value)}\r\n                                                placeholder=\"Enter your name\"\r\n                                                className=\"w-full px-4 py-3 rounded-lg transition-all duration-200 focus:ring-2 focus:ring-emerald-500 focus:border-transparent border bg-white border-gray-300 text-gray-900 placeholder-gray-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400\"\r\n                                                required\r\n                                            />\r\n                                        </div>\r\n                                        <div className=\"space-y-2\">\r\n                                            <label\r\n                                                htmlFor=\"jobPosition\"\r\n                                                className=\"block text-sm font-medium transition-colors duration-300 text-gray-700 dark:text-gray-300\"\r\n                                            >\r\n                                                Job Position*\r\n                                            </label>\r\n                                            <input\r\n                                                type=\"text\"\r\n                                                id=\"jobPosition\"\r\n                                                value={formData.jobPosition}\r\n                                                onChange={(e) => handleInputChange('jobPosition', e.target.value)}\r\n                                                placeholder=\"Enter your job position\"\r\n                                                className=\"w-full px-4 py-3 rounded-lg transition-all duration-200 focus:ring-2 focus:ring-emerald-500 focus:border-transparent border bg-white border-gray-300 text-gray-900 placeholder-gray-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400\"\r\n                                                required\r\n                                            />\r\n                                        </div>\r\n                                        <div className=\"space-y-2\">\r\n                                            <label\r\n                                                htmlFor=\"email\"\r\n                                                className=\"block text-sm font-medium transition-colors duration-300 text-gray-700 dark:text-gray-300\"\r\n                                            >\r\n                                                Email Address*\r\n                                            </label>\r\n                                            <input\r\n                                                type=\"email\"\r\n                                                id=\"email\"\r\n                                                value={formData.email}\r\n                                                onChange={(e) => handleInputChange('email', e.target.value)}\r\n                                                placeholder=\"Enter your email\"\r\n                                                className=\"w-full px-4 py-3 rounded-lg transition-all duration-200 focus:ring-2 focus:ring-emerald-500 focus:border-transparent border bg-white border-gray-300 text-gray-900 placeholder-gray-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400\"\r\n                                                required\r\n                                            />\r\n                                        </div>\r\n                                        <div className=\"space-y-2\">\r\n                                            <label\r\n                                                htmlFor=\"phoneNumber\"\r\n                                                className=\"block text-sm font-medium transition-colors duration-300 text-gray-700 dark:text-gray-300\"\r\n                                            >\r\n                                                Phone Number*\r\n                                            </label>\r\n                                            <input\r\n                                                type=\"tel\"\r\n                                                id=\"phoneNumber\"\r\n                                                value={formData.phoneNumber}\r\n                                                onChange={(e) => handleInputChange('phoneNumber', e.target.value)}\r\n                                                placeholder=\"Enter your phone number\"\r\n                                                className=\"w-full px-4 py-3 rounded-lg transition-all duration-200 focus:ring-2 focus:ring-emerald-500 focus:border-transparent border bg-white border-gray-300 text-gray-900 placeholder-gray-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400\"\r\n                                                required\r\n                                            />\r\n                                        </div>\r\n                                    </div>\r\n                                    <div className='w-full'>\r\n                                        <button\r\n                                            onClick={handleSubmit}\r\n                                            disabled={isSubmitting || !formData.fullName || !formData.jobPosition || !formData.email || !formData.phoneNumber}\r\n                                            className=\"w-full bg-emerald-600 hover:bg-emerald-700 disabled:bg-emerald-400 text-white px-8 py-3 rounded-lg font-semibold transition-all duration-200 flex items-center justify-center space-x-2 shadow-md hover:shadow-lg disabled:cursor-not-allowed\"\r\n                                        >\r\n                                            {isSubmitting ? (\r\n                                                <>\r\n                                                    <div className=\"w-5 h-5 border-2 border-white border-t-transparent rounded-full animate-spin\"></div>\r\n                                                    <span>Submitting...</span>\r\n                                                </>\r\n                                            ) : (\r\n                                                <>\r\n                                                    <Send className=\"w-5 h-5\" />\r\n                                                    <span>Request Demo</span>\r\n                                                </>\r\n                                            )}\r\n                                        </button>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                            <div className=\"mt-8 pt-6 border-t border-gray-200 dark:border-gray-700\">\r\n                                <div className=\"flex flex-col sm:flex-row items-center justify-center space-y-2 sm:space-y-0 sm:space-x-6 text-sm text-gray-500 dark:text-gray-400\">\r\n                                    <div className=\"flex items-center space-x-2\">\r\n                                        <Globe className=\"w-4 h-4\" />\r\n                                        <span>Available in Arabic & English</span>\r\n                                    </div>\r\n                                    <div className=\"flex items-center space-x-2\">\r\n                                        <span>•</span>\r\n                                        <span>Response within 24 hours</span>\r\n                                    </div>\r\n                                    <div className=\"flex items-center space-x-2\">\r\n                                        <span>•</span>\r\n                                        <span>Free consultation</span>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default Contact;",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/contact-2/page": {
      "content": "import Contact from \"./components/contact\";\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div>\r\n            <Contact />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "dashboard-1": {
    "components": {
      "@/registry/view/dashboard-1/components/dashboard": {
        "content": "\"use client\"\r\n\r\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from \"@/components/ui/dropdown-menu\"\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\r\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport {\r\n    Bell,\r\n    DollarSign,\r\n    Filter,\r\n    MoreHorizontal,\r\n    Package,\r\n    Search,\r\n    ShoppingCart,\r\n    TrendingDown,\r\n    TrendingUp,\r\n    Users,\r\n} from \"lucide-react\"\r\nimport { useMemo, useState } from \"react\"\r\nimport { useResponsiveOrientation } from \"../hooks/use-responsive-orientation\"\r\nimport { formatDate, formatPrice } from \"../lib/utils\"\r\nimport { Sidebar } from \"./sidebar\"\r\n\r\ntype OrderStatus = \"awaiting_shipment\" | \"processing\" | \"fulfilled\" | \"cancelled\"\r\n\r\ninterface Order {\r\n    id: number\r\n    customerName: string\r\n    customerEmail: string\r\n    customerAvatar: string\r\n    productName: string\r\n    productImage: string\r\n    productPrice: number\r\n    quantity: number\r\n    shippingPrice: number\r\n    discountRate: number\r\n    totalPrice: number\r\n    status: OrderStatus\r\n    createdAt: string\r\n}\r\n\r\nconst mockOrders: Order[] = [\r\n    {\r\n        id: 1001,\r\n        customerName: \"Ahmed Hassan\",\r\n        customerEmail: \"ahmed.hassan@email.com\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"iPhone 15 Pro Max\",\r\n        productImage: \"https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=100&h=100&fit=crop\",\r\n        productPrice: 1199,\r\n        quantity: 1,\r\n        shippingPrice: 25,\r\n        discountRate: 0.1,\r\n        totalPrice: 1104.1,\r\n        status: \"fulfilled\",\r\n        createdAt: \"2024-01-15T10:30:00Z\",\r\n    },\r\n    {\r\n        id: 1002,\r\n        customerName: \"Fatima Al-Zahra\",\r\n        customerEmail: \"fatima.zahra@email.com\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"MacBook Air M3\",\r\n        productImage: \"https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=100&h=100&fit=crop\",\r\n        productPrice: 1299,\r\n        quantity: 1,\r\n        shippingPrice: 0,\r\n        discountRate: 0,\r\n        totalPrice: 1299,\r\n        status: \"processing\",\r\n        createdAt: \"2024-01-14T14:20:00Z\",\r\n    },\r\n    {\r\n        id: 1003,\r\n        customerName: \"Omar Khaled\",\r\n        customerEmail: \"omar.khaled@email.com\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"AirPods Pro 2\",\r\n        productImage: \"https://images.unsplash.com/photo-1606220945770-b5b6c2c55bf1?w=100&h=100&fit=crop\",\r\n        productPrice: 249,\r\n        quantity: 2,\r\n        shippingPrice: 15,\r\n        discountRate: 0.05,\r\n        totalPrice: 487.1,\r\n        status: \"awaiting_shipment\",\r\n        createdAt: \"2024-01-14T09:15:00Z\",\r\n    },\r\n    {\r\n        id: 1004,\r\n        customerName: \"Layla Mohammed\",\r\n        customerEmail: \"layla.mohammed@email.com\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1544244015-0df4b3ffc6b0?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"iPad Pro 12.9\",\r\n        productImage: \"https://images.unsplash.com/photo-1544244015-0df4b3ffc6b0?w=100&h=100&fit=crop\",\r\n        productPrice: 1099,\r\n        quantity: 1,\r\n        shippingPrice: 20,\r\n        discountRate: 0.15,\r\n        totalPrice: 954.15,\r\n        status: \"cancelled\",\r\n        createdAt: \"2024-01-13T16:45:00Z\",\r\n    },\r\n    {\r\n        id: 1005,\r\n        customerName: \"Youssef Ali\",\r\n        customerEmail: \"youssef.ali@email.com\",\r\n        customerAvatar: \"\",\r\n        productName: \"Apple Watch Series 9\",\r\n        productImage: \"https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=100&h=100&fit=crop\",\r\n        productPrice: 399,\r\n        quantity: 1,\r\n        shippingPrice: 10,\r\n        discountRate: 0,\r\n        totalPrice: 409,\r\n        status: \"fulfilled\",\r\n        createdAt: \"2024-01-13T11:30:00Z\",\r\n    },\r\n    {\r\n        id: 1006,\r\n        customerName: \"Nour Abdel Rahman\",\r\n        customerEmail: \"nour.abdel@email.com\",\r\n        customerAvatar: \"\",\r\n        productName: \"Magic Keyboard\",\r\n        productImage: \"https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=100&h=100&fit=crop\",\r\n        productPrice: 299,\r\n        quantity: 1,\r\n        shippingPrice: 12,\r\n        discountRate: 0.08,\r\n        totalPrice: 286.08,\r\n        status: \"processing\",\r\n        createdAt: \"2024-01-12T13:20:00Z\",\r\n    },\r\n]\r\n\r\nconst getStatusBadgeClassName = (status: OrderStatus) => {\r\n    switch (status) {\r\n        case \"cancelled\":\r\n            return \"bg-red-500 text-white hover:bg-red-600\"\r\n        case \"processing\":\r\n            return \"bg-yellow-500 text-white hover:bg-yellow-600\"\r\n        case \"fulfilled\":\r\n            return \"bg-green-500 text-white hover:bg-green-600\"\r\n        case \"awaiting_shipment\":\r\n            return \"bg-blue-500 text-white hover:bg-blue-600\"\r\n        default:\r\n            return \"bg-gray-500 text-white hover:bg-gray-600\"\r\n    }\r\n}\r\n\r\nconst LABEL_MAP: Record<OrderStatus, string> = {\r\n    awaiting_shipment: \"Awaiting Shipment\",\r\n    processing: \"Processing\",\r\n    cancelled: \"Cancelled\",\r\n    fulfilled: \"Fulfilled\",\r\n}\r\n\r\nfunction DashboardHeader() {\r\n    return (\r\n        <header className=\"border-b\">\r\n            <div className=\"flex h-16 items-center px-4 lg:px-6\">\r\n                <div className=\"flex items-center gap-4\">\r\n                    <div className=\"flex items-center gap-2\">\r\n                        <Package className=\"h-6 w-6 text-blue-600\" />\r\n                        <h1 className=\"text-xl font-semibold\">E-commerce Admin</h1>\r\n                    </div>\r\n                </div>\r\n                <div className=\"ml-auto flex items-center gap-4\">\r\n                    <Button variant=\"ghost\" size=\"icon\">\r\n                        <Search className=\"h-4 w-4\" />\r\n                    </Button>\r\n                    <Button variant=\"ghost\" size=\"icon\">\r\n                        <Bell className=\"h-4 w-4\" />\r\n                    </Button>\r\n                    <Avatar className=\"h-8 w-8\">\r\n                        <AvatarImage src=\"\" />\r\n                        <AvatarFallback>AD</AvatarFallback>\r\n                    </Avatar>\r\n                </div>\r\n            </div>\r\n        </header>\r\n    )\r\n}\r\n\r\nfunction DashboardSummary({ orders }: { orders: Order[] }) {\r\n    const stats = useMemo(() => {\r\n        const totalSales = orders\r\n            .filter((order) => order.status !== \"cancelled\")\r\n            .reduce((sum, order) => sum + order.totalPrice, 0)\r\n\r\n        const totalOrders = orders.length\r\n        const totalCustomers = new Set(orders.map((order) => order.customerEmail)).size\r\n        const avgOrderValue = totalSales / Math.max(totalOrders, 1)\r\n\r\n        return {\r\n            totalSales,\r\n            totalOrders,\r\n            totalCustomers,\r\n            avgOrderValue,\r\n        }\r\n    }, [orders])\r\n\r\n    return (\r\n        <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Total Revenue</CardTitle>\r\n                    <DollarSign className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">{formatPrice(stats.totalSales)}</div>\r\n                    <p className=\"text-xs text-muted-foreground\">\r\n                        <TrendingUp className=\"inline h-3 w-3 mr-1\" />\r\n                        +12.5% from last month\r\n                    </p>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Total Orders</CardTitle>\r\n                    <ShoppingCart className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">{stats.totalOrders}</div>\r\n                    <p className=\"text-xs text-muted-foreground\">\r\n                        <TrendingUp className=\"inline h-3 w-3 mr-1\" />\r\n                        +8.2% from last month\r\n                    </p>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Customers</CardTitle>\r\n                    <Users className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">{stats.totalCustomers}</div>\r\n                    <p className=\"text-xs text-muted-foreground\">\r\n                        <TrendingUp className=\"inline h-3 w-3 mr-1\" />\r\n                        +5.1% from last month\r\n                    </p>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Avg. Order Value</CardTitle>\r\n                    <Package className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">{formatPrice(stats.avgOrderValue)}</div>\r\n                    <p className=\"text-xs text-muted-foreground\">\r\n                        <TrendingDown className=\"inline h-3 w-3 mr-1\" />\r\n                        -2.1% from last month\r\n                    </p>\r\n                </CardContent>\r\n            </Card>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default function Dashboard() {\r\n    const [filter, setFilter] = useState<string>(\"all\")\r\n    const orientation = useResponsiveOrientation()\r\n    const filteredOrders = useMemo(() => {\r\n        if (filter === \"all\") return mockOrders\r\n        return mockOrders.filter((order) => order.status === filter)\r\n    }, [filter])\r\n\r\n    const calculateDiscountedPrice = (price: number, discount: number) => {\r\n        return price * (1 - discount)\r\n    }\r\n\r\n    const calculateTotal = (order: Order) => {\r\n        const discountedPrice = calculateDiscountedPrice(order.productPrice, order.discountRate)\r\n        return discountedPrice * order.quantity + order.shippingPrice\r\n    }\r\n\r\n    return (\r\n        <>\r\n            <Sidebar />\r\n            <div className=\"min-h-screen\">\r\n                <DashboardHeader />\r\n                <div className=\"flex flex-col gap-6 p-4 lg:p-6\">\r\n                    <div>\r\n                        <h2 className=\"text-3xl font-bold tracking-tight\">Dashboard</h2>\r\n                        <p className=\"text-muted-foreground\">Welcome back! Here's what's happening with your store today.</p>\r\n                    </div>\r\n                    <DashboardSummary orders={mockOrders} />\r\n                    <div className=\"space-y-4\">\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <h3 className=\"text-lg font-medium\">Recent Orders</h3>\r\n                            <Button variant=\"outline\" size=\"sm\">\r\n                                <Filter className=\"mr-2 h-4 w-4\" />\r\n                                Export\r\n                            </Button>\r\n                        </div>\r\n                        <Tabs orientation={orientation} value={filter} onValueChange={setFilter} className=\"w-full\">\r\n                            <TabsList\r\n                                className={cn(\r\n                                    orientation === \"horizontal\"\r\n                                        ? \"inline-flex h-10 items-center justify-center p-1 text-muted-foreground max-w-fit\"\r\n                                        : \"flex flex-col h-auto w-full max-w-xs space-y-1 p-2\",\r\n                                )}\r\n                            >\r\n                                <TabsTrigger className={cn(\r\n                                    \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                    orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                )} value=\"all\">All Orders</TabsTrigger>\r\n                                <TabsTrigger className={cn(\r\n                                    \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                    orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                )} value=\"awaiting_shipment\">Awaiting</TabsTrigger>\r\n                                <TabsTrigger className={cn(\r\n                                    \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                    orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                )} value=\"processing\">Processing</TabsTrigger>\r\n                                <TabsTrigger className={cn(\r\n                                    \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                    orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                )} value=\"fulfilled\">Fulfilled</TabsTrigger>\r\n                                <TabsTrigger className={cn(\r\n                                    \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                    orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                )} value=\"cancelled\">Cancelled</TabsTrigger>\r\n                            </TabsList>\r\n                        </Tabs>\r\n                        <Card>\r\n                            <CardHeader>\r\n                                <CardTitle>Orders</CardTitle>\r\n                                <CardDescription>Manage your orders and view their status.</CardDescription>\r\n                            </CardHeader>\r\n                            <CardContent>\r\n                                <div className=\"overflow-x-auto\">\r\n                                    <Table>\r\n                                        <TableHeader>\r\n                                            <TableRow>\r\n                                                <TableHead className=\"w-[100px]\">Order</TableHead>\r\n                                                <TableHead>Customer</TableHead>\r\n                                                <TableHead>Product</TableHead>\r\n                                                <TableHead>Price</TableHead>\r\n                                                <TableHead>Discount</TableHead>\r\n                                                <TableHead>Qty</TableHead>\r\n                                                <TableHead>Shipping</TableHead>\r\n                                                <TableHead>Total</TableHead>\r\n                                                <TableHead>Date</TableHead>\r\n                                                <TableHead>Status</TableHead>\r\n                                                <TableHead className=\"w-[50px]\"></TableHead>\r\n                                            </TableRow>\r\n                                        </TableHeader>\r\n                                        <TableBody>\r\n                                            {filteredOrders.map((order) => (\r\n                                                <TableRow key={order.id}>\r\n                                                    <TableCell className=\"font-medium\">#{order.id}</TableCell>\r\n                                                    <TableCell>\r\n                                                        <div className=\"flex items-center gap-2\">\r\n                                                            <Avatar className=\"h-8 w-8\">\r\n                                                                <AvatarImage src={order.customerAvatar} />\r\n                                                                <AvatarFallback>\r\n                                                                    {order.customerName\r\n                                                                        .split(\" \")\r\n                                                                        .map((n) => n[0])\r\n                                                                        .join(\"\")}\r\n                                                                </AvatarFallback>\r\n                                                            </Avatar>\r\n                                                            <div>\r\n                                                                <div className=\"font-medium\">{order.customerName}</div>\r\n                                                                <div className=\"text-sm text-muted-foreground\">{order.customerEmail}</div>\r\n                                                            </div>\r\n                                                        </div>\r\n                                                    </TableCell>\r\n                                                    <TableCell>\r\n                                                        <div className=\"flex items-center gap-2\">\r\n                                                            <img\r\n                                                                src={order.productImage}\r\n                                                                alt={order.productName}\r\n                                                                className=\"h-10 w-10 rounded object-cover\"\r\n                                                            />\r\n                                                            <div className=\"font-medium text-nowrap\">{order.productName}</div>\r\n                                                        </div>\r\n                                                    </TableCell>\r\n                                                    <TableCell>\r\n                                                        {order.discountRate > 0 ? (\r\n                                                            <div className=\"space-y-1\">\r\n                                                                <div className=\"line-through text-sm text-muted-foreground\">\r\n                                                                    {formatPrice(order.productPrice)}\r\n                                                                </div>\r\n                                                                <div className=\"font-medium\">\r\n                                                                    {formatPrice(calculateDiscountedPrice(order.productPrice, order.discountRate))}\r\n                                                                </div>\r\n                                                            </div>\r\n                                                        ) : (\r\n                                                            <div className=\"font-medium\">{formatPrice(order.productPrice)}</div>\r\n                                                        )}\r\n                                                    </TableCell>\r\n                                                    <TableCell className=\"text-nowrap\">\r\n                                                        {order.discountRate > 0 ? (\r\n                                                            <Badge variant=\"secondary\">{Math.round(order.discountRate * 100)}% OFF</Badge>\r\n                                                        ) : (\r\n                                                            <span className=\"text-muted-foreground\">No discount</span>\r\n                                                        )}\r\n                                                    </TableCell>\r\n                                                    <TableCell>{order.quantity}</TableCell>\r\n                                                    <TableCell>{order.shippingPrice > 0 ? formatPrice(order.shippingPrice) : \"Free\"}</TableCell>\r\n                                                    <TableCell className=\"font-medium\">{formatPrice(calculateTotal(order))}</TableCell>\r\n                                                    <TableCell className=\"text-nowrap\">{formatDate(order.createdAt)}</TableCell>\r\n                                                    <TableCell className=\"text-nowrap\">\r\n                                                        <Badge className={getStatusBadgeClassName(order.status)}>{LABEL_MAP[order.status]}</Badge>\r\n                                                    </TableCell>\r\n                                                    <TableCell>\r\n                                                        <DropdownMenu>\r\n                                                            <DropdownMenuTrigger asChild>\r\n                                                                <Button variant=\"ghost\" size=\"icon\">\r\n                                                                    <MoreHorizontal className=\"h-4 w-4\" />\r\n                                                                    <span className=\"sr-only\">Actions</span>\r\n                                                                </Button>\r\n                                                            </DropdownMenuTrigger>\r\n                                                            <DropdownMenuContent align=\"end\">\r\n                                                                <DropdownMenuItem>View Order</DropdownMenuItem>\r\n                                                                <DropdownMenuItem>Edit Order</DropdownMenuItem>\r\n                                                                <DropdownMenuItem>Customer Details</DropdownMenuItem>\r\n                                                                <DropdownMenuItem className=\"text-red-600\">Cancel Order</DropdownMenuItem>\r\n                                                            </DropdownMenuContent>\r\n                                                        </DropdownMenu>\r\n                                                    </TableCell>\r\n                                                </TableRow>\r\n                                            ))}\r\n                                        </TableBody>\r\n                                    </Table>\r\n                                </div>\r\n                            </CardContent>\r\n                        </Card>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-1/components/sidebar": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\r\nimport Link from \"next/link\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { motion } from \"framer-motion\"\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\r\nimport { usePathname } from \"next/navigation\"\r\nimport { useState } from \"react\"\r\nimport { DASHBOARDS } from \"../constant/index\"\r\n\r\ntype OrderStatus = \"pending\" | \"processing\" | \"shipped\" | \"delivered\" | \"cancelled\"\r\n\r\ninterface SidebarProps {\r\n    className?: string\r\n}\r\n\r\nexport function Sidebar({ className }: SidebarProps) {\r\n    const [isOpen, setIsOpen] = useState(false)\r\n    const [activeFilter, setActiveFilter] = useState<OrderStatus | \"all\">(\"all\")\r\n    const pathname = usePathname()\r\n\r\n\r\n    const toggleSidebar = () => {\r\n        setIsOpen(!isOpen)\r\n    }\r\n\r\n    const sidebarVariants = {\r\n        open: {\r\n            width: 280,\r\n            opacity: 1,\r\n            display: \"block\",\r\n            transition: {\r\n                duration: 0.4,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n        closed: {\r\n            width: 0,\r\n            opacity: 0,\r\n            display: \"none\",\r\n            transition: {\r\n                duration: 0.4,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n    }\r\n\r\n    const contentVariants = {\r\n        open: {\r\n            opacity: 1,\r\n            x: 0,\r\n            transition: {\r\n                duration: 0.4,\r\n                delay: 0.1,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n        closed: {\r\n            opacity: 0,\r\n            x: -20,\r\n            transition: {\r\n                duration: 0.3,\r\n            },\r\n        },\r\n    }\r\n\r\n    return (\r\n        <>\r\n            <motion.aside\r\n                initial={false}\r\n                animate={isOpen ? \"open\" : \"closed\"}\r\n                variants={sidebarVariants}\r\n                className={cn(\r\n                    \"fixed left-0 top-0 z-40 h-screen w-[280px]\",\r\n                    \"bg-white/10 backdrop-blur-md border-r border-white/20 shadow-xl\",\r\n                    \"dark:bg-black/20 dark:border-white/10 dark:shadow-black/30\",\r\n                    className,\r\n                )}\r\n            >\r\n                <motion.div variants={contentVariants} className=\"flex h-full flex-col w-[280px]\">\r\n                    <div className=\"flex items-center justify-between p-6 border-b border-border/30\">\r\n                        <div className=\"flex items-center gap-3\">\r\n                            <div className=\"w-9 h-9 bg-gradient-to-br from-primary to-primary/80 rounded-xl flex items-center justify-center shadow-lg shadow-primary/20\">\r\n                                <span className=\"text-primary-foreground font-semibold text-sm\">A</span>\r\n                            </div>\r\n                            <div>\r\n                                <h2 className=\"text-lg font-semibold text-foreground tracking-tight\">Admin Panel</h2>\r\n                                <p className=\"text-xs text-muted-foreground/80\">Ecommerce Dashboard</p>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <nav className=\"flex-1 overflow-hidden\">\r\n                        <div className=\"p-4\">\r\n                            <div className=\"mb-6\">\r\n                                <p className=\"text-xs font-medium text-muted-foreground/70 uppercase tracking-wider mb-3 px-3\">\r\n                                    Main Menu\r\n                                </p>\r\n                            </div>\r\n                            <ScrollArea className=\"h-[calc(100vh-280px)]\" onWheel={(e) => e.stopPropagation()}>\r\n                                <div className=\"space-y-1 pr-4\">\r\n                                    {DASHBOARDS.map((item) => {\r\n                                        const isActive = pathname === item.url || pathname.startsWith(item.url + \"/\")\r\n                                        return (\r\n                                            <Link\r\n                                                key={item.name}\r\n                                                href={item.url}\r\n                                                className={cn(\r\n                                                    \"flex items-center gap-3 px-3 py-3 rounded-xl transition-all duration-200 group relative\",\r\n                                                    \"hover:bg-accent/50 hover:shadow-sm\",\r\n                                                    {\r\n                                                        \"bg-primary/10 text-primary shadow-sm border border-primary/20\": isActive,\r\n                                                        \"text-foreground/80 hover:text-foreground\": !isActive,\r\n                                                    },\r\n                                                )}\r\n                                            >\r\n                                                {isActive && (\r\n                                                    <div className=\"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-6 bg-primary rounded-r-full\" />\r\n                                                )}\r\n                                                <div\r\n                                                    className={cn(\"flex items-center justify-center w-5 h-5 transition-all duration-200\", {\r\n                                                        \"text-primary\": isActive,\r\n                                                        \"text-muted-foreground group-hover:text-foreground\": !isActive,\r\n                                                    })}\r\n                                                >\r\n                                                    {item.icon}\r\n                                                </div>\r\n                                                <span className=\"font-medium text-sm tracking-tight\">{item.name}</span>\r\n                                                {item.badge && (\r\n                                                    <span className=\"ml-auto bg-destructive/10 text-destructive text-xs px-2 py-1 rounded-full font-medium border border-destructive/20\">\r\n                                                        {item.badge}\r\n                                                    </span>\r\n                                                )}\r\n                                            </Link>\r\n                                        )\r\n                                    })}\r\n                                </div>\r\n                            </ScrollArea>\r\n                        </div>\r\n                    </nav>\r\n                    <div className=\"p-4 border-t border-border/30 shadow-md\">\r\n                        <div className=\"bg-accent/30 rounded-xl p-4 border border-border/20 shadow-inner\">\r\n                            <div className=\"flex items-center gap-3\">\r\n                                <div className=\"w-11 h-11 bg-gradient-to-br from-primary to-primary/80 rounded-full flex items-center justify-center shadow-lg shadow-primary/20\">\r\n                                    <span className=\"text-primary-foreground font-semibold text-sm\">JD</span>\r\n                                </div>\r\n                                <div className=\"flex-1 min-w-0\">\r\n                                    <p className=\"text-sm font-medium text-foreground truncate tracking-tight\">John Doe</p>\r\n                                    <p className=\"text-xs text-muted-foreground/80 truncate\">john@example.com</p>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </motion.div>\r\n            </motion.aside>\r\n            <Button\r\n                onClick={toggleSidebar}\r\n                size=\"sm\"\r\n                className={cn(\r\n                    \"fixed top-4 z-50 rounded-r-xl bg-background/95 hover:bg-accent border border-border/50 text-foreground transition-all duration-300 shadow-lg shadow-black/5 backdrop-blur-sm\",\r\n                    \"dark:bg-background/90 dark:hover:bg-accent/80 dark:shadow-black/20\",\r\n                    {\r\n                        \"left-[280px]\": isOpen,\r\n                        \"left-0\": !isOpen,\r\n                    },\r\n                )}\r\n                aria-label={isOpen ? \"Close sidebar\" : \"Open sidebar\"}\r\n            >\r\n                {isOpen ? <ChevronLeft className=\"w-4 h-4\" /> : <ChevronRight className=\"w-4 h-4\" />}\r\n            </Button>\r\n            {isOpen && (\r\n                <motion.div\r\n                    initial={{ opacity: 0 }}\r\n                    animate={{ opacity: 1 }}\r\n                    exit={{ opacity: 0 }}\r\n                    className=\"fixed inset-0 z-30 bg-background/20 backdrop-blur-sm lg:hidden\"\r\n                    onClick={toggleSidebar}\r\n                />\r\n            )}\r\n        </>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/dashboard-1/constant/index": {
        "content": "import { BarChart3, Bell, CreditCard, Home, Package, Settings, ShoppingCart, Star, Truck, Users } from \"lucide-react\"\r\nimport type React from \"react\"\r\n\r\nexport interface DashboardItem {\r\n    name: string\r\n    icon: React.ReactNode\r\n    url: string\r\n    badge?: string | number\r\n}\r\n\r\nexport const DASHBOARDS: DashboardItem[] = [\r\n    {\r\n        name: \"Dashboard\",\r\n        icon: <Home className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard\",\r\n    },\r\n    {\r\n        name: \"Orders\",\r\n        icon: <ShoppingCart className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/orders\",\r\n        badge: \"12\",\r\n    },\r\n    {\r\n        name: \"Products\",\r\n        icon: <Package className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/products\",\r\n    },\r\n    {\r\n        name: \"Customers\",\r\n        icon: <Users className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/customers\",\r\n    },\r\n    {\r\n        name: \"Analytics\",\r\n        icon: <BarChart3 className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/analytics\",\r\n    },\r\n    {\r\n        name: \"Payments\",\r\n        icon: <CreditCard className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/payments\",\r\n    },\r\n    {\r\n        name: \"Shipping\",\r\n        icon: <Truck className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/shipping\",\r\n    },\r\n    {\r\n        name: \"Reviews\",\r\n        icon: <Star className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/reviews\",\r\n        badge: \"3\",\r\n    },\r\n    {\r\n        name: \"Notifications\",\r\n        icon: <Bell className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/notifications\",\r\n        badge: \"5\",\r\n    },\r\n    {\r\n        name: \"Settings\",\r\n        icon: <Settings className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/settings\",\r\n    },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {
      "@/registry/view/dashboard-1/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n\r\nexport const formatDate = (dateString: string) => {\r\n  return new Date(dateString).toLocaleDateString(\"en-US\", {\r\n    year: \"numeric\",\r\n    month: \"short\",\r\n    day: \"numeric\",\r\n  })\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {
      "@/registry/view/dashboard-1/hooks/use-responsive-orientation": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useState } from \"react\"\r\n\r\nexport function useResponsiveOrientation() {\r\n    const [orientation, setOrientation] = useState<\"horizontal\" | \"vertical\">(\"horizontal\")\r\n\r\n    useEffect(() => {\r\n        const checkScreenSize = () => {\r\n            // Use 768px as breakpoint (md in Tailwind)\r\n            if (window.innerWidth < 768) {\r\n                setOrientation(\"vertical\")\r\n            } else {\r\n                setOrientation(\"horizontal\")\r\n            }\r\n        }\r\n\r\n        // Check on mount\r\n        checkScreenSize()\r\n\r\n        // Add event listener for resize\r\n        window.addEventListener(\"resize\", checkScreenSize)\r\n\r\n        // Cleanup\r\n        return () => window.removeEventListener(\"resize\", checkScreenSize)\r\n    }, [])\r\n\r\n    return orientation\r\n}\r\n",
        "language": "tsx"
      }
    },
    "types": {},
    "styles": {},
    "layout": {
      "@/registry/view/dashboard-1/layout": {
        "content": "\"use client\"\r\n\r\nimport type { ReactNode } from \"react\"\r\nimport { Sidebar } from \"./components/sidebar\"\r\n\r\ninterface LayoutProps {\r\n    children: ReactNode\r\n}\r\n\r\nexport default function Layout({ children }: LayoutProps) {\r\n    return (\r\n        <div className=\"relative min-h-screen \">\r\n            <Sidebar />\r\n            <main className=\"transition-all duration-300\">{children}</main>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "@/registry/view/dashboard-1/page": {
      "content": "import Dashboard from \"./components/dashboard\"\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div className=\"min-h-screen bg-background\">\r\n            <Dashboard />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "dashboard-2": {
    "components": {
      "@/registry/view/dashboard-2/components/dashboard-header": {
        "content": "import { SidebarTrigger } from \"@/components/ui/sidebar\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nexport function DashboardHeader() {\r\n  return (\r\n    <header className=\"group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 flex h-12 shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear px-4 lg:px-6\">\r\n      <div className=\"flex w-full items-center gap-1\">\r\n        <SidebarTrigger className=\"-ml-1\" />\r\n        <Separator\r\n          orientation=\"vertical\"\r\n          className=\"mx-2 data-[orientation=vertical]:h-4\"\r\n        />\r\n        <h1 className=\"text-base font-medium\">Dashboard</h1>\r\n      </div>\r\n    </header>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-2/components/dashboard-sidebar": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  Sidebar,\r\n  SidebarContent,\r\n  SidebarFooter,\r\n  SidebarHeader,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\nimport { AlertTriangle, BarChart3, Home, Package, ShoppingCart, Users } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { usePathname } from \"next/navigation\"\r\nimport type React from \"react\"\r\nimport { NavMain } from \"./nav-main\"\r\nimport { NavUser } from \"./nav-user\"\r\n\r\nconst data = {\r\n  documents: [\r\n    { title: \"Overview\", href: \"/dashboard\", icon: Home },\r\n    { title: \"Orders\", href: \"/dashboard/orders\", icon: ShoppingCart },\r\n    {\r\n      title: \"Sold Out Products\",\r\n      href: \"/dashboard/sold-out\",\r\n      icon: AlertTriangle,\r\n    },\r\n    { title: \"Products\", href: \"/dashboard/products\", icon: Package },\r\n    { title: \"Customers\", href: \"/dashboard/customers\", icon: Users },\r\n    { title: \"Analytics\", href: \"/dashboard/analytics\", icon: BarChart3 },\r\n  ],\r\n  user: {\r\n    name: \"shadcn\",\r\n    email: \"m@example.com\",\r\n    avatar: \"/avatars/shadcn.jpg\",\r\n  },\r\n}\r\n\r\nexport default function DashboardSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {\r\n  const pathname = usePathname()\r\n  return (\r\n    <Sidebar collapsible=\"offcanvas\" {...props}>\r\n      <SidebarHeader>\r\n        <SidebarMenu>\r\n          <SidebarMenuItem>\r\n            <SidebarMenuButton asChild className=\"data-[slot=sidebar-menu-button]:!p-1.5\">\r\n              <Link href=\"#\">\r\n                <span className=\"text-base font-semibold\">Acme Inc.</span>\r\n              </Link>\r\n            </SidebarMenuButton>\r\n          </SidebarMenuItem>\r\n        </SidebarMenu>\r\n      </SidebarHeader>\r\n      <SidebarContent>\r\n        <NavMain items={data.documents} />\r\n      </SidebarContent>\r\n      <SidebarFooter>\r\n        <NavUser user={data.user} />\r\n      </SidebarFooter>\r\n    </Sidebar>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-2/components/nav-main": {
        "content": "import type { LucideIcon } from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupContent,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\n\r\nexport function NavMain({\r\n  items,\r\n}: {\r\n  items: {\r\n    title: string\r\n    href: string \r\n    icon?: LucideIcon\r\n  }[]\r\n}) {\r\n  return (\r\n    <SidebarGroup>\r\n      <SidebarGroupContent className=\"flex flex-col gap-1 md:gap-2\">\r\n        <SidebarMenu>\r\n          {items.map((item) => (\r\n            <SidebarMenuItem key={item.title}>\r\n              <SidebarMenuButton tooltip={item.title}>\r\n                {item.icon && <item.icon className=\"size-4 md:size-5\" />}\r\n                <span className=\"text-sm md:text-base\">{item.title}</span>\r\n              </SidebarMenuButton>\r\n            </SidebarMenuItem>\r\n          ))}\r\n        </SidebarMenu>\r\n      </SidebarGroupContent>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-2/components/nav-user": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  BellIcon,\r\n  CreditCardIcon,\r\n  LogOutIcon,\r\n  MoreVerticalIcon,\r\n  UserCircleIcon,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n  useSidebar,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  Avatar,\r\n  AvatarFallback,\r\n  AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuContent,\r\n  DropdownMenuGroup,\r\n  DropdownMenuItem,\r\n  DropdownMenuLabel,\r\n  DropdownMenuSeparator,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nexport function NavUser({\r\n  user,\r\n}: {\r\n  user: {\r\n    name: string\r\n    email: string\r\n    avatar: string\r\n  }\r\n}) {\r\n  const { isMobile } = useSidebar()\r\n\r\n  return (\r\n    <SidebarMenu>\r\n      <SidebarMenuItem>\r\n        <DropdownMenu>\r\n          <DropdownMenuTrigger asChild>\r\n            <SidebarMenuButton\r\n              size=\"lg\"\r\n              className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\r\n            >\r\n              <Avatar className=\"h-8 w-8 rounded-lg grayscale\">\r\n                <AvatarImage src={user.avatar} alt={user.name} />\r\n                <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n              </Avatar>\r\n              <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                <span className=\"truncate font-medium\">{user.name}</span>\r\n                <span className=\"truncate text-xs text-muted-foreground\">\r\n                  {user.email}\r\n                </span>\r\n              </div>\r\n              <MoreVerticalIcon className=\"ml-auto size-4\" />\r\n            </SidebarMenuButton>\r\n          </DropdownMenuTrigger>\r\n          <DropdownMenuContent\r\n            className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\r\n            side={isMobile ? \"bottom\" : \"right\"}\r\n            align=\"end\"\r\n            sideOffset={4}\r\n          >\r\n            <DropdownMenuLabel className=\"p-0 font-normal\">\r\n              <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\r\n                <Avatar className=\"h-8 w-8 rounded-lg\">\r\n                  <AvatarImage src={user.avatar} alt={user.name} />\r\n                  <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n                </Avatar>\r\n                <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                  <span className=\"truncate font-medium\">{user.name}</span>\r\n                  <span className=\"truncate text-xs text-muted-foreground\">\r\n                    {user.email}\r\n                  </span>\r\n                </div>\r\n              </div>\r\n            </DropdownMenuLabel>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuGroup>\r\n              <DropdownMenuItem>\r\n                <UserCircleIcon />\r\n                Account\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <CreditCardIcon />\r\n                Billing\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <BellIcon />\r\n                Notifications\r\n              </DropdownMenuItem>\r\n            </DropdownMenuGroup>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuItem>\r\n              <LogOutIcon />\r\n              Log out\r\n            </DropdownMenuItem>\r\n          </DropdownMenuContent>\r\n        </DropdownMenu>\r\n      </SidebarMenuItem>\r\n    </SidebarMenu>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-2/components/section-cards": {
        "content": "import { TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\r\n\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport {\r\n  Card,\r\n  CardDescription,\r\n  CardFooter,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\n\r\nimport { formatPrice } from \"../lib/utils\"\r\n\r\nexport function SectionCards() {\r\n  return (\r\n    <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4\">\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n        <CardHeader className=\"relative px-3 py-3 md:px-4 md:py-4\">\r\n          <CardDescription>Total Revenue</CardDescription>\r\n          <CardTitle className=\"text-xl md:text-2xl lg:text-3xl font-semibold tabular-nums text-green-600\">\r\n            {formatPrice(85637)}\r\n          </CardTitle>\r\n          <div className=\"absolute right-3 top-3 md:right-4 md:top-4\">\r\n            <Badge\r\n              variant=\"outline\"\r\n              className=\"flex flex-row gap-1 rounded-lg text-xs text-green-600\"\r\n            >\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +12.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-xs sm:text-sm px-3 py-2 md:px-4 md:py-3\">\r\n          <div className=\"line-clamp-1 flex gap-1 md:gap-2 font-medium\">\r\n            Trending up this month{\" \"}\r\n            <TrendingUpIcon className=\"size-3 md:size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground text-xs md:text-sm\">\r\n            Visitors for the last 6 months\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n        <CardHeader className=\"relative px-3 py-3 md:px-4 md:py-4\">\r\n          <CardDescription>New Customers</CardDescription>\r\n          <CardTitle className=\"text-xl md:text-2xl lg:text-3xl font-semibold tabular-nums\">\r\n            1,234\r\n          </CardTitle>\r\n          <div className=\"absolute right-3 top-3 md:right-4 md:top-4\">\r\n            <Badge\r\n              variant=\"outline\"\r\n              className=\"flex gap-1 rounded-lg text-xs text-destructive\"\r\n            >\r\n              <TrendingDownIcon className=\"size-3\" />\r\n              -20%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-xs sm:text-sm px-3 py-2 md:px-4 md:py-3\">\r\n          <div className=\"line-clamp-1 flex gap-1 md:gap-2 font-medium\">\r\n            Down 20% this period{\" \"}\r\n            <TrendingDownIcon className=\"size-3 md:size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground text-xs md:text-sm\">\r\n            Acquisition needs attention\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n        <CardHeader className=\"relative px-3 py-3 md:px-4 md:py-4\">\r\n          <CardDescription>Active Accounts</CardDescription>\r\n          <CardTitle className=\"text-xl md:text-2xl lg:text-3xl font-semibold tabular-nums\">\r\n            45,678\r\n          </CardTitle>\r\n          <div className=\"absolute right-3 top-3 md:right-4 md:top-4\">\r\n            <Badge\r\n              variant=\"outline\"\r\n              className=\"flex gap-1 rounded-lg text-xs text-green-600\"\r\n            >\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +12.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-xs sm:text-sm px-3 py-2 md:px-4 md:py-3\">\r\n          <div className=\"line-clamp-1 flex gap-1 md:gap-2 font-medium\">\r\n            Strong user retention{\" \"}\r\n            <TrendingUpIcon className=\"size-3 md:size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground text-xs md:text-sm\">\r\n            Engagement exceed targets\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n        <CardHeader className=\"relative px-3 py-3 md:px-4 md:py-4\">\r\n          <CardDescription>Growth Rate</CardDescription>\r\n          <CardTitle className=\"text-xl md:text-2xl lg:text-3xl font-semibold tabular-nums\">\r\n            4.5%\r\n          </CardTitle>\r\n          <div className=\"absolute right-3 top-3 md:right-4 md:top-4\">\r\n            <Badge\r\n              variant=\"outline\"\r\n              className=\"flex gap-1 rounded-lg text-xs text-green-600\"\r\n            >\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +4.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-xs sm:text-sm px-3 py-2 md:px-4 md:py-3\">\r\n          <div className=\"line-clamp-1 flex gap-1 md:gap-2 font-medium\">\r\n            Steady performance <TrendingUpIcon className=\"size-3 md:size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground text-xs md:text-sm\">\r\n            Meets growth projections\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {
      "@/registry/view/dashboard-2/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/dashboard-2/page": {
      "content": "\"use client\"\r\n\r\nimport {\r\n  Avatar,\r\n  AvatarFallback,\r\n  AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  Card,\r\n  CardContent,\r\n  CardDescription,\r\n  CardFooter,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport {\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableHead,\r\n  TableHeader,\r\n  TableRow,\r\n} from \"@/components/ui/table\"\r\nimport { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\"\r\nimport { ArrowUpRight } from \"lucide-react\"\r\nimport dynamic from \"next/dynamic\"\r\nimport Link from \"next/link\"\r\nimport { formatPrice } from \"../dashboard-3/lib/utils\"\r\nimport { DashboardHeader } from \"./components/dashboard-header\"\r\nimport DashboardSidebar from \"./components/dashboard-sidebar\"\r\nimport { SectionCards } from \"./components/section-cards\"\r\n\r\nconst ReactECharts = dynamic(() => import(\"echarts-for-react\"), { ssr: false })\r\nconst salesData = [\r\n  { name: \"Jan\", sales: 4000 },\r\n  { name: \"Feb\", sales: 3000 },\r\n  { name: \"Mar\", sales: 5000 },\r\n  { name: \"April\", sales: 2780 },\r\n  { name: \"May\", sales: 1890 },\r\n  { name: \"June\", sales: 6390 },\r\n  { name: \"July\", sales: 3490 },\r\n  { name: \"Aug\", sales: 9688 },\r\n  { name: \"Seb\", sales: 2500 },\r\n  { name: \"Oct\", sales: 7538 },\r\n  { name: \"Nov\", sales: 1598 },\r\n  { name: \"Dec\", sales: 7412 },\r\n]\r\nconst salesChartOptions = {\r\n  tooltip: {\r\n    trigger: \"axis\",\r\n    backgroundColor: \"#fff\",\r\n    borderColor: \"#e5e7eb\",\r\n    borderWidth: 1,\r\n    textStyle: { color: \"#111827\", fontSize: 12 },\r\n  },\r\n  grid: { left: \"3%\", right: \"4%\", bottom: \"3%\", containLabel: true },\r\n  xAxis: {\r\n    type: \"category\",\r\n    data: salesData.map((d) => d.name),\r\n    axisTick: { show: false },\r\n    axisLine: { lineStyle: { color: \"#d1d5db\" } },\r\n    axisLabel: {\r\n      fontSize: 12,\r\n      interval: (index: number, value: string) => {\r\n        return window.innerWidth > 640 ? true : index % 2 === 0\r\n      },\r\n    },\r\n  },\r\n  yAxis: {\r\n    type: \"value\",\r\n    axisLine: { show: false },\r\n    splitLine: { lineStyle: { color: \"#e5e7eb\", type: \"dashed\" } },\r\n    axisLabel: { fontSize: 12 },\r\n  },\r\n  series: [\r\n    {\r\n      data: salesData.map((d) => d.sales),\r\n      type: \"bar\",\r\n      itemStyle: {\r\n        borderRadius: [4, 4, 0, 0],\r\n        color: \"#6366f1\",\r\n      },\r\n      barWidth: \"40%\",\r\n    },\r\n  ],\r\n  media: [\r\n    {\r\n      query: { maxWidth: 640 },\r\n      option: {\r\n        grid: { left: \"8%\", right: \"8%\" },\r\n        xAxis: { axisLabel: { fontSize: 10, rotate: 45 } },\r\n        yAxis: { axisLabel: { fontSize: 10 } },\r\n      },\r\n    },\r\n  ],\r\n}\r\n\r\nconst recentOrders = [\r\n  {\r\n    id: \"ORD-7352\",\r\n    date: \"2025-04-24\",\r\n    customer: \"Emma Johnson\",\r\n    amount: 235.89,\r\n    status: \"Delivered\",\r\n  },\r\n  {\r\n    id: \"ORD-7351\",\r\n    date: \"2025-04-23\",\r\n    customer: \"Michael Chen\",\r\n    amount: 125.99,\r\n    status: \"Processing\",\r\n  },\r\n  {\r\n    id: \"ORD-7350\",\r\n    date: \"2025-04-23\",\r\n    customer: \"Sophia Martinez\",\r\n    amount: 432.2,\r\n    status: \"Shipped\",\r\n  },\r\n  {\r\n    id: \"ORD-7349\",\r\n    date: \"2025-04-22\",\r\n    customer: \"James Wilson\",\r\n    amount: 76.45,\r\n    status: \"Delivered\",\r\n  },\r\n  {\r\n    id: \"ORD-7348\",\r\n    date: \"2025-04-21\",\r\n    customer: \"Olivia Brown\",\r\n    amount: 189.5,\r\n    status: \"Processing\",\r\n  },\r\n  {\r\n    id: \"ORD-7347\",\r\n    date: \"2025-04-20\",\r\n    customer: \"William Davis\",\r\n    amount: 312.75,\r\n    status: \"Delivered\",\r\n  },\r\n  {\r\n    id: \"ORD-7346\",\r\n    date: \"2025-04-19\",\r\n    customer: \"Ava Garcia\",\r\n    amount: 94.2,\r\n    status: \"Shipped\",\r\n  },\r\n]\r\n\r\nexport default function DashboardPage() {\r\n  return (\r\n    <SidebarProvider>\r\n      {/* Here you can choose of custom sidebar behavior (inset, sidebar, floating)  default use: sidebar */}\r\n      <DashboardSidebar variant=\"inset\" />\r\n      <SidebarInset>\r\n        <DashboardHeader />\r\n        <div className=\"flex flex-1 flex-col px-4 lg:px-6\">\r\n          <div className=\"flex flex-1 flex-col gap-2\">\r\n            <div className=\"flex flex-col gap-3 py-3 md:gap-6 md:py-6\">\r\n              <SectionCards />\r\n              <div className=\"grid gap-4 md:gap-6 grid-cols-1\">\r\n                <Card className=\"col-span-1 lg:col-span-8\">\r\n                  <CardHeader className=\"px-4 md:px-6 py-3 md:py-4\">\r\n                    <CardTitle className=\"text-base md:text-lg\">\r\n                      Sales Overview\r\n                    </CardTitle>\r\n                    <CardDescription className=\"text-xs md:text-sm\">\r\n                      Yearly sales performance for the last 12 months\r\n                    </CardDescription>\r\n                  </CardHeader>\r\n                  <CardContent className=\"pl-0 md:pl-2 pt-0 pb-4\">\r\n                    <div className=\"h-[250px] md:h-[300px] lg:h-[400px] max-w-full\">\r\n                      <ReactECharts\r\n                        option={salesChartOptions}\r\n                        style={{ width: \"100%\", height: \"100%\" }}\r\n                      />\r\n                    </div>\r\n                  </CardContent>\r\n                </Card>\r\n              </div>\r\n              <Card>\r\n                <CardHeader className=\"px-3 md:px-6 py-2 md:py-4\">\r\n                  <CardTitle className=\"text-base md:text-lg\">\r\n                    Recent Orders\r\n                  </CardTitle>\r\n                  <CardDescription className=\"text-xs md:text-sm\">\r\n                    Detailed view of the last 7 days order history\r\n                  </CardDescription>\r\n                </CardHeader>\r\n                <CardContent className=\"p-0\">\r\n                  <div className=\"overflow-auto max-w-full custom-scrollbar\">\r\n                    <Table className=\"w-full min-w-[500px]\">\r\n                      <TableHeader>\r\n                        <TableRow>\r\n                          <TableHead className=\"text-xs md:text-sm font-medium p-2 md:p-4\">\r\n                            Order ID\r\n                          </TableHead>\r\n                          <TableHead className=\"text-xs md:text-sm font-medium p-2 md:p-4\">\r\n                            Date\r\n                          </TableHead>\r\n                          <TableHead className=\"text-xs md:text-sm font-medium p-2 md:p-4\">\r\n                            Customer\r\n                          </TableHead>\r\n                          <TableHead className=\"text-xs md:text-sm font-medium p-2 md:p-4\">\r\n                            Status\r\n                          </TableHead>\r\n                          <TableHead className=\"text-xs md:text-sm font-medium text-right p-2 md:p-4\">\r\n                            Amount\r\n                          </TableHead>\r\n                        </TableRow>\r\n                      </TableHeader>\r\n                      <TableBody>\r\n                        {recentOrders.map((order) => (\r\n                          <TableRow key={order.id}>\r\n                            <TableCell className=\"text-xs md:text-sm font-medium text-foreground p-2 md:p-4 text-nowrap\">\r\n                              {order.id}\r\n                            </TableCell>\r\n                            <TableCell className=\"text-xs md:text-sm text-muted-foreground p-2 md:p-4 text-nowrap\">\r\n                              {order.date}\r\n                            </TableCell>\r\n                            <TableCell className=\"text-xs md:text-sm p-2 md:p-4\">\r\n                              <div className=\"flex items-center gap-1 md:gap-2\">\r\n                                <Avatar className=\"h-6 w-6 md:h-8 md:w-8\">\r\n                                  <AvatarImage\r\n                                    src={`https://api.dicebear.com/6.x/initials/svg?seed=${order.customer}`}\r\n                                    alt={order.customer}\r\n                                  />\r\n                                  <AvatarFallback>\r\n                                    {order.customer.charAt(0)}\r\n                                  </AvatarFallback>\r\n                                </Avatar>\r\n                                <span className=\"text-foreground text-nowrap line-clamp-1\">\r\n                                  {order.customer}\r\n                                </span>\r\n                              </div>\r\n                            </TableCell>\r\n                            <TableCell>\r\n                              <Badge\r\n                                variant={\r\n                                  order.status === \"Delivered\"\r\n                                    ? \"default\"\r\n                                    : order.status === \"Processing\"\r\n                                      ? \"secondary\"\r\n                                      : \"outline\"\r\n                                }\r\n                                className={\r\n                                  order.status === \"Delivered\"\r\n                                    ? \"bg-green-100 text-green-800 hover:bg-green-100\"\r\n                                    : order.status === \"Processing\"\r\n                                      ? \"bg-amber-100 text-amber-800 hover:bg-amber-100\"\r\n                                      : \"bg-blue-100 text-blue-800 hover:bg-blue-100\"\r\n                                }\r\n                              >\r\n                                {order.status}\r\n                              </Badge>\r\n                            </TableCell>\r\n                            <TableCell className=\"text-xs md:text-sm text-right text-foreground p-2 md:p-4\">\r\n                              {formatPrice(order.amount)}\r\n                            </TableCell>\r\n                          </TableRow>\r\n                        ))}\r\n                      </TableBody>\r\n                    </Table>\r\n                  </div>\r\n                </CardContent>\r\n                <CardFooter className=\"flex justify-end px-3 md:px-6 py-2 md:py-4\">\r\n                  <Button\r\n                    asChild\r\n                    variant=\"outline\"\r\n                    className=\"h-8 md:h-10 text-xs md:text-sm\"\r\n                  >\r\n                    <Link href=\"/dashboard/orders\">\r\n                      View All Orders\r\n                      <ArrowUpRight className=\"ml-1 md:ml-2 h-3 w-3 md:h-4 md:w-4\" />\r\n                    </Link>\r\n                  </Button>\r\n                </CardFooter>\r\n              </Card>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </SidebarInset>\r\n    </SidebarProvider>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "dashboard-3": {
    "components": {
      "@/registry/view/dashboard-3/components/app-sidebar": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  Sidebar,\r\n  SidebarContent,\r\n  SidebarFooter,\r\n  SidebarHeader,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  ArrowUpCircleIcon,\r\n  BarChartIcon,\r\n  CameraIcon,\r\n  ClipboardListIcon,\r\n  DatabaseIcon,\r\n  FileCodeIcon,\r\n  FileIcon,\r\n  FileTextIcon,\r\n  FolderIcon,\r\n  HelpCircleIcon,\r\n  LayoutDashboardIcon,\r\n  ListIcon,\r\n  Package2,\r\n  SearchIcon,\r\n  SettingsIcon,\r\n  UsersIcon,\r\n} from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport * as React from \"react\"\r\nimport { NavMain } from \"../../dashboard-2/components/nav-main\"\r\nimport { NavUser } from \"../../dashboard-2/components/nav-user\"\r\nimport { NavDocuments } from \"./nav-documents\"\r\nimport { NavSecondary } from \"./nav-secondary\"\r\n\r\nconst data = {\r\n  user: {\r\n    name: \"john\",\r\n    email: \"john@example.com\",\r\n    avatar: \"/avatars/shadcn.jpg\",\r\n  },\r\n  navMain: [\r\n    {\r\n      title: \"Dashboard\",\r\n      url: \"#\",\r\n      icon: LayoutDashboardIcon,\r\n    },\r\n    {\r\n      title: \"Orders\",\r\n      url: \"#\",\r\n      icon: Package2,\r\n    },\r\n    {\r\n      title: \"Lifecycle\",\r\n      url: \"#\",\r\n      icon: ListIcon,\r\n    },\r\n    {\r\n      title: \"Analytics\",\r\n      url: \"#\",\r\n      icon: BarChartIcon,\r\n    },\r\n    {\r\n      title: \"Projects\",\r\n      url: \"#\",\r\n      icon: FolderIcon,\r\n    },\r\n    {\r\n      title: \"Team\",\r\n      url: \"#\",\r\n      icon: UsersIcon,\r\n    },\r\n  ],\r\n  navClouds: [\r\n    {\r\n      title: \"Capture\",\r\n      icon: CameraIcon,\r\n      isActive: true,\r\n      url: \"#\",\r\n      items: [\r\n        {\r\n          title: \"Active Proposals\",\r\n          url: \"#\",\r\n        },\r\n        {\r\n          title: \"Archived\",\r\n          url: \"#\",\r\n        },\r\n      ],\r\n    },\r\n    {\r\n      title: \"Proposal\",\r\n      icon: FileTextIcon,\r\n      url: \"#\",\r\n      items: [\r\n        {\r\n          title: \"Active Proposals\",\r\n          url: \"#\",\r\n        },\r\n        {\r\n          title: \"Archived\",\r\n          url: \"#\",\r\n        },\r\n      ],\r\n    },\r\n    {\r\n      title: \"Prompts\",\r\n      icon: FileCodeIcon,\r\n      url: \"#\",\r\n      items: [\r\n        {\r\n          title: \"Active Proposals\",\r\n          url: \"#\",\r\n        },\r\n        {\r\n          title: \"Archived\",\r\n          url: \"#\",\r\n        },\r\n      ],\r\n    },\r\n  ],\r\n  navSecondary: [\r\n    {\r\n      title: \"Settings\",\r\n      url: \"#\",\r\n      icon: SettingsIcon,\r\n    },\r\n    {\r\n      title: \"Get Help\",\r\n      url: \"#\",\r\n      icon: HelpCircleIcon,\r\n    },\r\n    {\r\n      title: \"Search\",\r\n      url: \"#\",\r\n      icon: SearchIcon,\r\n    },\r\n  ],\r\n  documents: [\r\n    {\r\n      name: \"Data Library\",\r\n      url: \"#\",\r\n      icon: DatabaseIcon,\r\n    },\r\n    {\r\n      name: \"Reports\",\r\n      url: \"#\",\r\n      icon: ClipboardListIcon,\r\n    },\r\n    {\r\n      name: \"Word Assistant\",\r\n      url: \"#\",\r\n      icon: FileIcon,\r\n    },\r\n  ],\r\n}\r\n\r\nexport function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {\r\n  return (\r\n    <Sidebar collapsible=\"offcanvas\" {...props}>\r\n      <SidebarHeader>\r\n        <SidebarMenu>\r\n          <SidebarMenuItem>\r\n            <SidebarMenuButton\r\n              asChild\r\n              className=\"data-[slot=sidebar-menu-button]:!p-1.5\"\r\n            >\r\n              <Link href=\"#\">\r\n                <ArrowUpCircleIcon className=\"h-5 w-5\" />\r\n                <span className=\"text-base font-semibold\">Acme Inc.</span>\r\n              </Link>\r\n            </SidebarMenuButton>\r\n          </SidebarMenuItem>\r\n        </SidebarMenu>\r\n      </SidebarHeader>\r\n      <SidebarContent className=\"hide-scrollbar\">\r\n        <NavMain items={data.navMain} />\r\n        <NavDocuments items={data.documents} />\r\n        <NavSecondary items={data.navSecondary} className=\"mt-auto\" />\r\n      </SidebarContent>\r\n      <SidebarFooter>\r\n        <NavUser user={data.user} />\r\n      </SidebarFooter>\r\n    </Sidebar>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/chart-area-interactive": {
        "content": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\r\n\r\nimport { useIsMobile } from \"@/hooks/use-mobile\"\r\nimport {\r\n  Card,\r\n  CardContent,\r\n  CardDescription,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport {\r\n  ChartConfig,\r\n  ChartContainer,\r\n  ChartTooltip,\r\n  ChartTooltipContent,\r\n} from \"@/components/ui/chart\"\r\nimport {\r\n  Select,\r\n  SelectContent,\r\n  SelectItem,\r\n  SelectTrigger,\r\n  SelectValue,\r\n} from \"@/components/ui/select\"\r\nimport { ToggleGroup, ToggleGroupItem } from \"@/components/ui/toggle-group\"\r\n\r\nexport const description = \"An interactive area chart\"\r\n\r\nconst chartData = [\r\n  { date: \"2024-04-01\", desktop: 222, mobile: 150 },\r\n  { date: \"2024-04-02\", desktop: 97, mobile: 180 },\r\n  { date: \"2024-04-03\", desktop: 167, mobile: 120 },\r\n  { date: \"2024-04-04\", desktop: 242, mobile: 260 },\r\n  { date: \"2024-04-05\", desktop: 373, mobile: 290 },\r\n  { date: \"2024-04-06\", desktop: 301, mobile: 340 },\r\n  { date: \"2024-04-07\", desktop: 245, mobile: 180 },\r\n  { date: \"2024-04-08\", desktop: 409, mobile: 320 },\r\n  { date: \"2024-04-09\", desktop: 59, mobile: 110 },\r\n  { date: \"2024-04-10\", desktop: 261, mobile: 190 },\r\n  { date: \"2024-04-11\", desktop: 327, mobile: 350 },\r\n  { date: \"2024-04-12\", desktop: 292, mobile: 210 },\r\n  { date: \"2024-04-13\", desktop: 342, mobile: 380 },\r\n  { date: \"2024-04-14\", desktop: 137, mobile: 220 },\r\n  { date: \"2024-04-15\", desktop: 120, mobile: 170 },\r\n  { date: \"2024-04-16\", desktop: 138, mobile: 190 },\r\n  { date: \"2024-04-17\", desktop: 446, mobile: 360 },\r\n  { date: \"2024-04-18\", desktop: 364, mobile: 410 },\r\n  { date: \"2024-04-19\", desktop: 243, mobile: 180 },\r\n  { date: \"2024-04-20\", desktop: 89, mobile: 150 },\r\n  { date: \"2024-04-21\", desktop: 137, mobile: 200 },\r\n  { date: \"2024-04-22\", desktop: 224, mobile: 170 },\r\n  { date: \"2024-04-23\", desktop: 138, mobile: 230 },\r\n  { date: \"2024-04-24\", desktop: 387, mobile: 290 },\r\n  { date: \"2024-04-25\", desktop: 215, mobile: 250 },\r\n  { date: \"2024-04-26\", desktop: 75, mobile: 130 },\r\n  { date: \"2024-04-27\", desktop: 383, mobile: 420 },\r\n  { date: \"2024-04-28\", desktop: 122, mobile: 180 },\r\n  { date: \"2024-04-29\", desktop: 315, mobile: 240 },\r\n  { date: \"2024-04-30\", desktop: 454, mobile: 380 },\r\n  { date: \"2024-05-01\", desktop: 165, mobile: 220 },\r\n  { date: \"2024-05-02\", desktop: 293, mobile: 310 },\r\n  { date: \"2024-05-03\", desktop: 247, mobile: 190 },\r\n  { date: \"2024-05-04\", desktop: 385, mobile: 420 },\r\n  { date: \"2024-05-05\", desktop: 481, mobile: 390 },\r\n  { date: \"2024-05-06\", desktop: 498, mobile: 520 },\r\n  { date: \"2024-05-07\", desktop: 388, mobile: 300 },\r\n  { date: \"2024-05-08\", desktop: 149, mobile: 210 },\r\n  { date: \"2024-05-09\", desktop: 227, mobile: 180 },\r\n  { date: \"2024-05-10\", desktop: 293, mobile: 330 },\r\n  { date: \"2024-05-11\", desktop: 335, mobile: 270 },\r\n  { date: \"2024-05-12\", desktop: 197, mobile: 240 },\r\n  { date: \"2024-05-13\", desktop: 197, mobile: 160 },\r\n  { date: \"2024-05-14\", desktop: 448, mobile: 490 },\r\n  { date: \"2024-05-15\", desktop: 473, mobile: 380 },\r\n  { date: \"2024-05-16\", desktop: 338, mobile: 400 },\r\n  { date: \"2024-05-17\", desktop: 499, mobile: 420 },\r\n  { date: \"2024-05-18\", desktop: 315, mobile: 350 },\r\n  { date: \"2024-05-19\", desktop: 235, mobile: 180 },\r\n  { date: \"2024-05-20\", desktop: 177, mobile: 230 },\r\n  { date: \"2024-05-21\", desktop: 82, mobile: 140 },\r\n  { date: \"2024-05-22\", desktop: 81, mobile: 120 },\r\n  { date: \"2024-05-23\", desktop: 252, mobile: 290 },\r\n  { date: \"2024-05-24\", desktop: 294, mobile: 220 },\r\n  { date: \"2024-05-25\", desktop: 201, mobile: 250 },\r\n  { date: \"2024-05-26\", desktop: 213, mobile: 170 },\r\n  { date: \"2024-05-27\", desktop: 420, mobile: 460 },\r\n  { date: \"2024-05-28\", desktop: 233, mobile: 190 },\r\n  { date: \"2024-05-29\", desktop: 78, mobile: 130 },\r\n  { date: \"2024-05-30\", desktop: 340, mobile: 280 },\r\n  { date: \"2024-05-31\", desktop: 178, mobile: 230 },\r\n  { date: \"2024-06-01\", desktop: 178, mobile: 200 },\r\n  { date: \"2024-06-02\", desktop: 470, mobile: 410 },\r\n  { date: \"2024-06-03\", desktop: 103, mobile: 160 },\r\n  { date: \"2024-06-04\", desktop: 439, mobile: 380 },\r\n  { date: \"2024-06-05\", desktop: 88, mobile: 140 },\r\n  { date: \"2024-06-06\", desktop: 294, mobile: 250 },\r\n  { date: \"2024-06-07\", desktop: 323, mobile: 370 },\r\n  { date: \"2024-06-08\", desktop: 385, mobile: 320 },\r\n  { date: \"2024-06-09\", desktop: 438, mobile: 480 },\r\n  { date: \"2024-06-10\", desktop: 155, mobile: 200 },\r\n  { date: \"2024-06-11\", desktop: 92, mobile: 150 },\r\n  { date: \"2024-06-12\", desktop: 492, mobile: 420 },\r\n  { date: \"2024-06-13\", desktop: 81, mobile: 130 },\r\n  { date: \"2024-06-14\", desktop: 426, mobile: 380 },\r\n  { date: \"2024-06-15\", desktop: 307, mobile: 350 },\r\n  { date: \"2024-06-16\", desktop: 371, mobile: 310 },\r\n  { date: \"2024-06-17\", desktop: 475, mobile: 520 },\r\n  { date: \"2024-06-18\", desktop: 107, mobile: 170 },\r\n  { date: \"2024-06-19\", desktop: 341, mobile: 290 },\r\n  { date: \"2024-06-20\", desktop: 408, mobile: 450 },\r\n  { date: \"2024-06-21\", desktop: 169, mobile: 210 },\r\n  { date: \"2024-06-22\", desktop: 317, mobile: 270 },\r\n  { date: \"2024-06-23\", desktop: 480, mobile: 530 },\r\n  { date: \"2024-06-24\", desktop: 132, mobile: 180 },\r\n  { date: \"2024-06-25\", desktop: 141, mobile: 190 },\r\n  { date: \"2024-06-26\", desktop: 434, mobile: 380 },\r\n  { date: \"2024-06-27\", desktop: 448, mobile: 490 },\r\n  { date: \"2024-06-28\", desktop: 149, mobile: 200 },\r\n  { date: \"2024-06-29\", desktop: 103, mobile: 160 },\r\n  { date: \"2024-06-30\", desktop: 446, mobile: 400 },\r\n]\r\n\r\nconst chartConfig = {\r\n  visitors: {\r\n    label: \"Visitors\",\r\n  },\r\n  desktop: {\r\n    label: \"Desktop\",\r\n    color: \"hsl(var(--chart-1))\",\r\n  },\r\n  mobile: {\r\n    label: \"Mobile\",\r\n    color: \"hsl(var(--chart-2))\",\r\n  },\r\n} satisfies ChartConfig\r\n\r\nexport function ChartAreaInteractive() {\r\n  const isMobile = useIsMobile()\r\n  const [timeRange, setTimeRange] = React.useState(\"30d\")\r\n\r\n  React.useEffect(() => {\r\n    if (isMobile) {\r\n      setTimeRange(\"7d\")\r\n    }\r\n  }, [isMobile])\r\n\r\n  const filteredData = chartData.filter((item) => {\r\n    const date = new Date(item.date)\r\n    const referenceDate = new Date(\"2024-06-30\")\r\n    let daysToSubtract = 90\r\n    if (timeRange === \"30d\") {\r\n      daysToSubtract = 30\r\n    } else if (timeRange === \"7d\") {\r\n      daysToSubtract = 7\r\n    }\r\n    const startDate = new Date(referenceDate)\r\n    startDate.setDate(startDate.getDate() - daysToSubtract)\r\n    return date >= startDate\r\n  })\r\n\r\n  return (\r\n    <Card className=\"@container/card\">\r\n      <CardHeader className=\"relative\">\r\n        <CardTitle>Total Visitors</CardTitle>\r\n        <CardDescription>\r\n          <span className=\"@[540px]/card:block hidden\">\r\n            Total for the last 3 months\r\n          </span>\r\n          <span className=\"@[540px]/card:hidden\">Last 3 months</span>\r\n        </CardDescription>\r\n        <div className=\"absolute right-4 top-4\">\r\n          <ToggleGroup\r\n            type=\"single\"\r\n            value={timeRange}\r\n            onValueChange={setTimeRange}\r\n            variant=\"outline\"\r\n            className=\"@[767px]/card:flex hidden\"\r\n          >\r\n            <ToggleGroupItem value=\"90d\" className=\"h-8 px-2.5\">\r\n              Last 3 months\r\n            </ToggleGroupItem>\r\n            <ToggleGroupItem value=\"30d\" className=\"h-8 px-2.5\">\r\n              Last 30 days\r\n            </ToggleGroupItem>\r\n            <ToggleGroupItem value=\"7d\" className=\"h-8 px-2.5\">\r\n              Last 7 days\r\n            </ToggleGroupItem>\r\n          </ToggleGroup>\r\n          <Select value={timeRange} onValueChange={setTimeRange}>\r\n            <SelectTrigger\r\n              className=\"@[767px]/card:hidden flex w-40\"\r\n              aria-label=\"Select a value\"\r\n            >\r\n              <SelectValue placeholder=\"Last 3 months\" />\r\n            </SelectTrigger>\r\n            <SelectContent className=\"rounded-xl\">\r\n              <SelectItem value=\"90d\" className=\"rounded-lg\">\r\n                Last 3 months\r\n              </SelectItem>\r\n              <SelectItem value=\"30d\" className=\"rounded-lg\">\r\n                Last 30 days\r\n              </SelectItem>\r\n              <SelectItem value=\"7d\" className=\"rounded-lg\">\r\n                Last 7 days\r\n              </SelectItem>\r\n            </SelectContent>\r\n          </Select>\r\n        </div>\r\n      </CardHeader>\r\n      <CardContent className=\"px-2 pt-4 sm:px-6 sm:pt-6\">\r\n        <ChartContainer\r\n          config={chartConfig}\r\n          className=\"aspect-auto h-[250px] w-full\"\r\n        >\r\n          <AreaChart data={filteredData}>\r\n            <defs>\r\n              <linearGradient id=\"fillDesktop\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                <stop\r\n                  offset=\"5%\"\r\n                  stopColor=\"var(--color-desktop)\"\r\n                  stopOpacity={1.0}\r\n                />\r\n                <stop\r\n                  offset=\"95%\"\r\n                  stopColor=\"var(--color-desktop)\"\r\n                  stopOpacity={0.1}\r\n                />\r\n              </linearGradient>\r\n              <linearGradient id=\"fillMobile\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                <stop\r\n                  offset=\"5%\"\r\n                  stopColor=\"var(--color-mobile)\"\r\n                  stopOpacity={0.8}\r\n                />\r\n                <stop\r\n                  offset=\"95%\"\r\n                  stopColor=\"var(--color-mobile)\"\r\n                  stopOpacity={0.1}\r\n                />\r\n              </linearGradient>\r\n            </defs>\r\n            <CartesianGrid vertical={false} />\r\n            <XAxis\r\n              dataKey=\"date\"\r\n              tickLine={false}\r\n              axisLine={false}\r\n              tickMargin={8}\r\n              minTickGap={32}\r\n              tickFormatter={(value) => {\r\n                const date = new Date(value)\r\n                return date.toLocaleDateString(\"en-US\", {\r\n                  month: \"short\",\r\n                  day: \"numeric\",\r\n                })\r\n              }}\r\n            />\r\n            <ChartTooltip\r\n              cursor={false}\r\n              content={\r\n                <ChartTooltipContent\r\n                  labelFormatter={(value) => {\r\n                    return new Date(value).toLocaleDateString(\"en-US\", {\r\n                      month: \"short\",\r\n                      day: \"numeric\",\r\n                    })\r\n                  }}\r\n                  indicator=\"dot\"\r\n                />\r\n              }\r\n            />\r\n            <Area\r\n              dataKey=\"mobile\"\r\n              type=\"natural\"\r\n              fill=\"url(#fillMobile)\"\r\n              stroke=\"var(--color-mobile)\"\r\n              stackId=\"a\"\r\n            />\r\n            <Area\r\n              dataKey=\"desktop\"\r\n              type=\"natural\"\r\n              fill=\"url(#fillDesktop)\"\r\n              stroke=\"var(--color-desktop)\"\r\n              stackId=\"a\"\r\n            />\r\n          </AreaChart>\r\n        </ChartContainer>\r\n      </CardContent>\r\n    </Card>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/data-table": {
        "content": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport {\r\n  closestCenter,\r\n  DndContext,\r\n  KeyboardSensor,\r\n  MouseSensor,\r\n  TouchSensor,\r\n  useSensor,\r\n  useSensors,\r\n  type DragEndEvent,\r\n  type UniqueIdentifier,\r\n} from \"@dnd-kit/core\"\r\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\r\nimport {\r\n  arrayMove,\r\n  SortableContext,\r\n  useSortable,\r\n  verticalListSortingStrategy,\r\n} from \"@dnd-kit/sortable\"\r\nimport { CSS } from \"@dnd-kit/utilities\"\r\nimport {\r\n  ColumnDef,\r\n  ColumnFiltersState,\r\n  flexRender,\r\n  getCoreRowModel,\r\n  getFacetedRowModel,\r\n  getFacetedUniqueValues,\r\n  getFilteredRowModel,\r\n  getPaginationRowModel,\r\n  getSortedRowModel,\r\n  Row,\r\n  SortingState,\r\n  useReactTable,\r\n  VisibilityState,\r\n} from \"@tanstack/react-table\"\r\nimport {\r\n  CheckCircle2Icon,\r\n  ChevronDownIcon,\r\n  ChevronLeftIcon,\r\n  ChevronRightIcon,\r\n  ChevronsLeftIcon,\r\n  ChevronsRightIcon,\r\n  ColumnsIcon,\r\n  GripVerticalIcon,\r\n  LoaderIcon,\r\n  MoreVerticalIcon,\r\n  PlusIcon,\r\n  TrendingUpIcon,\r\n} from \"lucide-react\"\r\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\r\nimport { toast } from \"sonner\"\r\nimport { z } from \"zod\"\r\n\r\nimport { useIsMobile } from \"@/hooks/use-mobile\"\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\r\nimport {\r\n  Sheet,\r\n  SheetClose,\r\n  SheetContent,\r\n  SheetDescription,\r\n  SheetFooter,\r\n  SheetHeader,\r\n  SheetTitle,\r\n  SheetTrigger,\r\n} from \"@/components/ui/sheet\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  ChartConfig,\r\n  ChartContainer,\r\n  ChartTooltip,\r\n  ChartTooltipContent,\r\n} from \"@/components/ui/chart\"\r\nimport { Checkbox } from \"@/components/ui/checkbox\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuCheckboxItem,\r\n  DropdownMenuContent,\r\n  DropdownMenuItem,\r\n  DropdownMenuSeparator,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport {\r\n  Select,\r\n  SelectContent,\r\n  SelectItem,\r\n  SelectTrigger,\r\n  SelectValue,\r\n} from \"@/components/ui/select\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\nimport {\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableHead,\r\n  TableHeader,\r\n  TableRow,\r\n} from \"@/components/ui/table\"\r\n\r\nexport const schema = z.object({\r\n  id: z.number(),\r\n  header: z.string(),\r\n  type: z.string(),\r\n  status: z.string(),\r\n  target: z.string(),\r\n  limit: z.string(),\r\n  reviewer: z.string(),\r\n})\r\n\r\nfunction DragHandle({ id }: { id: number }) {\r\n  const { attributes, listeners } = useSortable({\r\n    id,\r\n  })\r\n\r\n  return (\r\n    <Button\r\n      {...attributes}\r\n      {...listeners}\r\n      variant=\"ghost\"\r\n      size=\"icon\"\r\n      className=\"size-7 text-muted-foreground hover:bg-transparent\"\r\n    >\r\n      <GripVerticalIcon className=\"size-3 text-muted-foreground\" />\r\n      <span className=\"sr-only\">Drag to reorder</span>\r\n    </Button>\r\n  )\r\n}\r\n\r\nconst columns: ColumnDef<z.infer<typeof schema>>[] = [\r\n  {\r\n    id: \"drag\",\r\n    header: () => null,\r\n    cell: ({ row }) => <DragHandle id={row.original.id} />,\r\n  },\r\n  {\r\n    id: \"select\",\r\n    header: ({ table }) => (\r\n      <div className=\"flex items-center justify-center\">\r\n        <Checkbox\r\n          checked={\r\n            table.getIsAllPageRowsSelected() ||\r\n            (table.getIsSomePageRowsSelected() && \"indeterminate\")\r\n          }\r\n          onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\r\n          aria-label=\"Select all\"\r\n        />\r\n      </div>\r\n    ),\r\n    cell: ({ row }) => (\r\n      <div className=\"flex items-center justify-center\">\r\n        <Checkbox\r\n          checked={row.getIsSelected()}\r\n          onCheckedChange={(value) => row.toggleSelected(!!value)}\r\n          aria-label=\"Select row\"\r\n        />\r\n      </div>\r\n    ),\r\n    enableSorting: false,\r\n    enableHiding: false,\r\n  },\r\n  {\r\n    accessorKey: \"header\",\r\n    header: \"Header\",\r\n    cell: ({ row }) => {\r\n      return <TableCellViewer item={row.original} />\r\n    },\r\n    enableHiding: false,\r\n  },\r\n  {\r\n    accessorKey: \"type\",\r\n    header: \"Section Type\",\r\n    cell: ({ row }) => (\r\n      <div className=\"w-32\">\r\n        <Badge variant=\"outline\" className=\"px-1.5 text-muted-foreground\">\r\n          {row.original.type}\r\n        </Badge>\r\n      </div>\r\n    ),\r\n  },\r\n  {\r\n    accessorKey: \"status\",\r\n    header: \"Status\",\r\n    cell: ({ row }) => (\r\n      <Badge\r\n        variant=\"outline\"\r\n        className=\"flex gap-1 px-1.5 text-muted-foreground [&_svg]:size-3\"\r\n      >\r\n        {row.original.status === \"Done\" ? (\r\n          <CheckCircle2Icon className=\"text-green-500 dark:text-green-400\" />\r\n        ) : (\r\n          <LoaderIcon />\r\n        )}\r\n        {row.original.status}\r\n      </Badge>\r\n    ),\r\n  },\r\n  {\r\n    accessorKey: \"target\",\r\n    header: () => <div className=\"w-full text-right\">Target</div>,\r\n    cell: ({ row }) => (\r\n      <form\r\n        onSubmit={(e) => {\r\n          e.preventDefault()\r\n          toast.promise(new Promise((resolve) => setTimeout(resolve, 1000)), {\r\n            loading: `Saving ${row.original.header}`,\r\n            success: \"Done\",\r\n            error: \"Error\",\r\n          })\r\n        }}\r\n      >\r\n        <Label htmlFor={`${row.original.id}-target`} className=\"sr-only\">\r\n          Target\r\n        </Label>\r\n        <Input\r\n          className=\"h-8 w-16 border-transparent bg-transparent text-right shadow-none hover:bg-input/30 focus-visible:border focus-visible:bg-background\"\r\n          defaultValue={row.original.target}\r\n          id={`${row.original.id}-target`}\r\n        />\r\n      </form>\r\n    ),\r\n  },\r\n  {\r\n    accessorKey: \"limit\",\r\n    header: () => <div className=\"w-full text-right\">Limit</div>,\r\n    cell: ({ row }) => (\r\n      <form\r\n        onSubmit={(e) => {\r\n          e.preventDefault()\r\n          toast.promise(new Promise((resolve) => setTimeout(resolve, 1000)), {\r\n            loading: `Saving ${row.original.header}`,\r\n            success: \"Done\",\r\n            error: \"Error\",\r\n          })\r\n        }}\r\n      >\r\n        <Label htmlFor={`${row.original.id}-limit`} className=\"sr-only\">\r\n          Limit\r\n        </Label>\r\n        <Input\r\n          className=\"h-8 w-16 border-transparent bg-transparent text-right shadow-none hover:bg-input/30 focus-visible:border focus-visible:bg-background\"\r\n          defaultValue={row.original.limit}\r\n          id={`${row.original.id}-limit`}\r\n        />\r\n      </form>\r\n    ),\r\n  },\r\n  {\r\n    accessorKey: \"reviewer\",\r\n    header: \"Reviewer\",\r\n    cell: ({ row }) => {\r\n      const isAssigned = row.original.reviewer !== \"Assign reviewer\"\r\n\r\n      if (isAssigned) {\r\n        return row.original.reviewer\r\n      }\r\n\r\n      return (\r\n        <>\r\n          <Label htmlFor={`${row.original.id}-reviewer`} className=\"sr-only\">\r\n            Reviewer\r\n          </Label>\r\n          <Select>\r\n            <SelectTrigger\r\n              className=\"h-8 w-40\"\r\n              id={`${row.original.id}-reviewer`}\r\n            >\r\n              <SelectValue placeholder=\"Assign reviewer\" />\r\n            </SelectTrigger>\r\n            <SelectContent align=\"end\">\r\n              <SelectItem value=\"Eddie Lake\">Eddie Lake</SelectItem>\r\n              <SelectItem value=\"Jamik Tashpulatov\">\r\n                Jamik Tashpulatov\r\n              </SelectItem>\r\n            </SelectContent>\r\n          </Select>\r\n        </>\r\n      )\r\n    },\r\n  },\r\n  {\r\n    id: \"actions\",\r\n    cell: () => (\r\n      <DropdownMenu>\r\n        <DropdownMenuTrigger asChild>\r\n          <Button\r\n            variant=\"ghost\"\r\n            className=\"flex size-8 text-muted-foreground data-[state=open]:bg-muted\"\r\n            size=\"icon\"\r\n          >\r\n            <MoreVerticalIcon />\r\n            <span className=\"sr-only\">Open menu</span>\r\n          </Button>\r\n        </DropdownMenuTrigger>\r\n        <DropdownMenuContent align=\"end\" className=\"w-32\">\r\n          <DropdownMenuItem>Edit</DropdownMenuItem>\r\n          <DropdownMenuItem>Make a copy</DropdownMenuItem>\r\n          <DropdownMenuItem>Favorite</DropdownMenuItem>\r\n          <DropdownMenuSeparator />\r\n          <DropdownMenuItem>Delete</DropdownMenuItem>\r\n        </DropdownMenuContent>\r\n      </DropdownMenu>\r\n    ),\r\n  },\r\n]\r\n\r\nfunction DraggableRow({ row }: { row: Row<z.infer<typeof schema>> }) {\r\n  const { transform, transition, setNodeRef, isDragging } = useSortable({\r\n    id: row.original.id,\r\n  })\r\n\r\n  return (\r\n    <TableRow\r\n      data-state={row.getIsSelected() && \"selected\"}\r\n      data-dragging={isDragging}\r\n      ref={setNodeRef}\r\n      className=\"relative z-0 data-[dragging=true]:z-10 data-[dragging=true]:opacity-80\"\r\n      style={{\r\n        transform: CSS.Transform.toString(transform),\r\n        transition: transition,\r\n      }}\r\n    >\r\n      {row.getVisibleCells().map((cell) => (\r\n        <TableCell key={cell.id}>\r\n          {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n        </TableCell>\r\n      ))}\r\n    </TableRow>\r\n  )\r\n}\r\n\r\nexport function DataTable({\r\n  data: initialData,\r\n}: {\r\n  data: z.infer<typeof schema>[]\r\n}) {\r\n  const [data, setData] = React.useState(() => initialData)\r\n  const [rowSelection, setRowSelection] = React.useState({})\r\n  const [columnVisibility, setColumnVisibility] =\r\n    React.useState<VisibilityState>({})\r\n  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\r\n    []\r\n  )\r\n  const [sorting, setSorting] = React.useState<SortingState>([])\r\n  const [pagination, setPagination] = React.useState({\r\n    pageIndex: 0,\r\n    pageSize: 10,\r\n  })\r\n  const sortableId = React.useId()\r\n  const sensors = useSensors(\r\n    useSensor(MouseSensor, {}),\r\n    useSensor(TouchSensor, {}),\r\n    useSensor(KeyboardSensor, {})\r\n  )\r\n\r\n  const dataIds = React.useMemo<UniqueIdentifier[]>(\r\n    () => data?.map(({ id }) => id) || [],\r\n    [data]\r\n  )\r\n\r\n  const table = useReactTable({\r\n    data,\r\n    columns,\r\n    state: {\r\n      sorting,\r\n      columnVisibility,\r\n      rowSelection,\r\n      columnFilters,\r\n      pagination,\r\n    },\r\n    getRowId: (row) => row.id.toString(),\r\n    enableRowSelection: true,\r\n    onRowSelectionChange: setRowSelection,\r\n    onSortingChange: setSorting,\r\n    onColumnFiltersChange: setColumnFilters,\r\n    onColumnVisibilityChange: setColumnVisibility,\r\n    onPaginationChange: setPagination,\r\n    getCoreRowModel: getCoreRowModel(),\r\n    getFilteredRowModel: getFilteredRowModel(),\r\n    getPaginationRowModel: getPaginationRowModel(),\r\n    getSortedRowModel: getSortedRowModel(),\r\n    getFacetedRowModel: getFacetedRowModel(),\r\n    getFacetedUniqueValues: getFacetedUniqueValues(),\r\n  })\r\n\r\n  function handleDragEnd(event: DragEndEvent) {\r\n    const { active, over } = event\r\n    if (active && over && active.id !== over.id) {\r\n      setData((data) => {\r\n        const oldIndex = dataIds.indexOf(active.id)\r\n        const newIndex = dataIds.indexOf(over.id)\r\n        return arrayMove(data, oldIndex, newIndex)\r\n      })\r\n    }\r\n  }\r\n\r\n  return (\r\n    <Tabs\r\n      defaultValue=\"outline\"\r\n      className=\"flex w-full flex-col justify-start gap-6\"\r\n    >\r\n      <div className=\"flex items-center justify-between\">\r\n        <Label htmlFor=\"view-selector\" className=\"sr-only\">\r\n          View\r\n        </Label>\r\n        <Select defaultValue=\"outline\">\r\n          <SelectTrigger\r\n            className=\"@4xl/main:hidden flex w-fit\"\r\n            id=\"view-selector\"\r\n          >\r\n            <SelectValue placeholder=\"Select a view\" />\r\n          </SelectTrigger>\r\n          <SelectContent>\r\n            <SelectItem value=\"outline\">Outline</SelectItem>\r\n            <SelectItem value=\"past-performance\">Past Performance</SelectItem>\r\n            <SelectItem value=\"key-personnel\">Key Personnel</SelectItem>\r\n            <SelectItem value=\"focus-documents\">Focus Documents</SelectItem>\r\n          </SelectContent>\r\n        </Select>\r\n        <TabsList className=\"@4xl/main:flex hidden\">\r\n          <TabsTrigger value=\"outline\">Outline</TabsTrigger>\r\n          <TabsTrigger value=\"past-performance\" className=\"gap-1\">\r\n            Past Performance{\" \"}\r\n            <Badge\r\n              variant=\"secondary\"\r\n              className=\"flex h-5 w-5 items-center justify-center rounded-full bg-muted-foreground/30\"\r\n            >\r\n              3\r\n            </Badge>\r\n          </TabsTrigger>\r\n          <TabsTrigger value=\"key-personnel\" className=\"gap-1\">\r\n            Key Personnel{\" \"}\r\n            <Badge\r\n              variant=\"secondary\"\r\n              className=\"flex h-5 w-5 items-center justify-center rounded-full bg-muted-foreground/30\"\r\n            >\r\n              2\r\n            </Badge>\r\n          </TabsTrigger>\r\n          <TabsTrigger value=\"focus-documents\">Focus Documents</TabsTrigger>\r\n        </TabsList>\r\n        <div className=\"flex items-center gap-2\">\r\n          <DropdownMenu>\r\n            <DropdownMenuTrigger asChild>\r\n              <Button variant=\"outline\" size=\"sm\">\r\n                <ColumnsIcon />\r\n                <span className=\"hidden lg:inline\">Customize Columns</span>\r\n                <span className=\"lg:hidden\">Columns</span>\r\n                <ChevronDownIcon />\r\n              </Button>\r\n            </DropdownMenuTrigger>\r\n            <DropdownMenuContent align=\"end\" className=\"w-56\">\r\n              {table\r\n                .getAllColumns()\r\n                .filter(\r\n                  (column) =>\r\n                    typeof column.accessorFn !== \"undefined\" &&\r\n                    column.getCanHide()\r\n                )\r\n                .map((column) => {\r\n                  return (\r\n                    <DropdownMenuCheckboxItem\r\n                      key={column.id}\r\n                      className=\"capitalize\"\r\n                      checked={column.getIsVisible()}\r\n                      onCheckedChange={(value) =>\r\n                        column.toggleVisibility(!!value)\r\n                      }\r\n                    >\r\n                      {column.id}\r\n                    </DropdownMenuCheckboxItem>\r\n                  )\r\n                })}\r\n            </DropdownMenuContent>\r\n          </DropdownMenu>\r\n          <Button variant=\"outline\" size=\"sm\">\r\n            <PlusIcon />\r\n            <span className=\"hidden lg:inline\">Add Section</span>\r\n          </Button>\r\n        </div>\r\n      </div>\r\n      <TabsContent\r\n        value=\"outline\"\r\n        className=\"relative flex flex-col gap-4 overflow-auto px-4 lg:px-6\"\r\n      >\r\n        <div className=\"overflow-hidden rounded-lg border\">\r\n          <DndContext\r\n            collisionDetection={closestCenter}\r\n            modifiers={[restrictToVerticalAxis]}\r\n            onDragEnd={handleDragEnd}\r\n            sensors={sensors}\r\n            id={sortableId}\r\n          >\r\n            <div className=\"overflow-auto custom-scrollbar\">\r\n              <div className=\"flex items-center\">\r\n                <Table>\r\n                  <TableHeader className=\"sticky top-0 z-10 bg-muted\">\r\n                    {table.getHeaderGroups().map((headerGroup) => (\r\n                      <TableRow key={headerGroup.id}>\r\n                        {headerGroup.headers.map((header) => {\r\n                          return (\r\n                            <TableHead key={header.id} colSpan={header.colSpan}>\r\n                              {header.isPlaceholder\r\n                                ? null\r\n                                : flexRender(\r\n                                    header.column.columnDef.header,\r\n                                    header.getContext()\r\n                                  )}\r\n                            </TableHead>\r\n                          )\r\n                        })}\r\n                      </TableRow>\r\n                    ))}\r\n                  </TableHeader>\r\n                  <TableBody className=\"**:data-[slot=table-cell]:first:w-8\">\r\n                    {table.getRowModel().rows?.length ? (\r\n                      <SortableContext\r\n                        items={dataIds}\r\n                        strategy={verticalListSortingStrategy}\r\n                      >\r\n                        {table.getRowModel().rows.map((row) => (\r\n                          <DraggableRow key={row.id} row={row} />\r\n                        ))}\r\n                      </SortableContext>\r\n                    ) : (\r\n                      <TableRow>\r\n                        <TableCell\r\n                          colSpan={columns.length}\r\n                          className=\"h-24 text-center\"\r\n                        >\r\n                          No results.\r\n                        </TableCell>\r\n                      </TableRow>\r\n                    )}\r\n                  </TableBody>\r\n                </Table>\r\n              </div>\r\n            </div>\r\n          </DndContext>\r\n        </div>\r\n        <div className=\"flex items-center justify-between px-4\">\r\n          <div className=\"hidden flex-1 text-sm text-muted-foreground lg:flex\">\r\n            {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\r\n            {table.getFilteredRowModel().rows.length} row(s) selected.\r\n          </div>\r\n          <div className=\"flex w-full items-center gap-8 lg:w-fit\">\r\n            <div className=\"hidden items-center gap-2 lg:flex\">\r\n              <Label htmlFor=\"rows-per-page\" className=\"text-sm font-medium\">\r\n                Rows per page\r\n              </Label>\r\n              <Select\r\n                value={`${table.getState().pagination.pageSize}`}\r\n                onValueChange={(value) => {\r\n                  table.setPageSize(Number(value))\r\n                }}\r\n              >\r\n                <SelectTrigger className=\"w-20\" id=\"rows-per-page\">\r\n                  <SelectValue\r\n                    placeholder={table.getState().pagination.pageSize}\r\n                  />\r\n                </SelectTrigger>\r\n                <SelectContent side=\"top\">\r\n                  {[10, 20, 30, 40, 50].map((pageSize) => (\r\n                    <SelectItem key={pageSize} value={`${pageSize}`}>\r\n                      {pageSize}\r\n                    </SelectItem>\r\n                  ))}\r\n                </SelectContent>\r\n              </Select>\r\n            </div>\r\n            <div className=\"flex w-fit items-center justify-center text-sm font-medium\">\r\n              Page {table.getState().pagination.pageIndex + 1} of{\" \"}\r\n              {table.getPageCount()}\r\n            </div>\r\n            <div className=\"ml-auto flex items-center gap-2 lg:ml-0\">\r\n              <Button\r\n                variant=\"outline\"\r\n                className=\"hidden h-8 w-8 p-0 lg:flex\"\r\n                onClick={() => table.setPageIndex(0)}\r\n                disabled={!table.getCanPreviousPage()}\r\n              >\r\n                <span className=\"sr-only\">Go to first page</span>\r\n                <ChevronsLeftIcon />\r\n              </Button>\r\n              <Button\r\n                variant=\"outline\"\r\n                className=\"size-8\"\r\n                size=\"icon\"\r\n                onClick={() => table.previousPage()}\r\n                disabled={!table.getCanPreviousPage()}\r\n              >\r\n                <span className=\"sr-only\">Go to previous page</span>\r\n                <ChevronLeftIcon />\r\n              </Button>\r\n              <Button\r\n                variant=\"outline\"\r\n                className=\"size-8\"\r\n                size=\"icon\"\r\n                onClick={() => table.nextPage()}\r\n                disabled={!table.getCanNextPage()}\r\n              >\r\n                <span className=\"sr-only\">Go to next page</span>\r\n                <ChevronRightIcon />\r\n              </Button>\r\n              <Button\r\n                variant=\"outline\"\r\n                className=\"hidden size-8 lg:flex\"\r\n                size=\"icon\"\r\n                onClick={() => table.setPageIndex(table.getPageCount() - 1)}\r\n                disabled={!table.getCanNextPage()}\r\n              >\r\n                <span className=\"sr-only\">Go to last page</span>\r\n                <ChevronsRightIcon />\r\n              </Button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </TabsContent>\r\n      <TabsContent\r\n        value=\"past-performance\"\r\n        className=\"flex flex-col px-4 lg:px-6\"\r\n      >\r\n        <div className=\"aspect-video w-full flex-1 rounded-lg border border-dashed\"></div>\r\n      </TabsContent>\r\n      <TabsContent value=\"key-personnel\" className=\"flex flex-col px-4 lg:px-6\">\r\n        <div className=\"aspect-video w-full flex-1 rounded-lg border border-dashed\"></div>\r\n      </TabsContent>\r\n      <TabsContent\r\n        value=\"focus-documents\"\r\n        className=\"flex flex-col px-4 lg:px-6\"\r\n      >\r\n        <div className=\"aspect-video w-full flex-1 rounded-lg border border-dashed\"></div>\r\n      </TabsContent>\r\n    </Tabs>\r\n  )\r\n}\r\n\r\nconst chartData = [\r\n  { month: \"January\", desktop: 186, mobile: 80 },\r\n  { month: \"February\", desktop: 305, mobile: 200 },\r\n  { month: \"March\", desktop: 237, mobile: 120 },\r\n  { month: \"April\", desktop: 73, mobile: 190 },\r\n  { month: \"May\", desktop: 209, mobile: 130 },\r\n  { month: \"June\", desktop: 214, mobile: 140 },\r\n]\r\n\r\nconst chartConfig = {\r\n  desktop: {\r\n    label: \"Desktop\",\r\n    color: \"var(--primary)\",\r\n  },\r\n  mobile: {\r\n    label: \"Mobile\",\r\n    color: \"var(--primary)\",\r\n  },\r\n} satisfies ChartConfig\r\n\r\nfunction TableCellViewer({ item }: { item: z.infer<typeof schema> }) {\r\n  const isMobile = useIsMobile()\r\n\r\n  return (\r\n    <Sheet>\r\n      <SheetTrigger asChild>\r\n        <Button variant=\"link\" className=\"w-fit px-0 text-left text-foreground\">\r\n          {item.header}\r\n        </Button>\r\n      </SheetTrigger>\r\n      <SheetContent side=\"right\" className=\"flex flex-col\">\r\n        <SheetHeader className=\"gap-1\">\r\n          <SheetTitle>{item.header}</SheetTitle>\r\n          <SheetDescription>\r\n            Showing total visitors for the last 6 months\r\n          </SheetDescription>\r\n        </SheetHeader>\r\n        <div className=\"flex flex-1 flex-col gap-4 overflow-y-auto py-4 text-sm\">\r\n          {!isMobile && (\r\n            <>\r\n              <ChartContainer config={chartConfig}>\r\n                <AreaChart\r\n                  accessibilityLayer\r\n                  data={chartData}\r\n                  margin={{\r\n                    left: 0,\r\n                    right: 10,\r\n                  }}\r\n                >\r\n                  <CartesianGrid vertical={false} />\r\n                  <XAxis\r\n                    dataKey=\"month\"\r\n                    tickLine={false}\r\n                    axisLine={false}\r\n                    tickMargin={8}\r\n                    tickFormatter={(value) => value.slice(0, 3)}\r\n                    hide\r\n                  />\r\n                  <ChartTooltip\r\n                    cursor={false}\r\n                    content={<ChartTooltipContent indicator=\"dot\" />}\r\n                  />\r\n                  <Area\r\n                    dataKey=\"mobile\"\r\n                    type=\"natural\"\r\n                    fill=\"var(--color-mobile)\"\r\n                    fillOpacity={0.6}\r\n                    stroke=\"var(--color-mobile)\"\r\n                    stackId=\"a\"\r\n                  />\r\n                  <Area\r\n                    dataKey=\"desktop\"\r\n                    type=\"natural\"\r\n                    fill=\"var(--color-desktop)\"\r\n                    fillOpacity={0.4}\r\n                    stroke=\"var(--color-desktop)\"\r\n                    stackId=\"a\"\r\n                  />\r\n                </AreaChart>\r\n              </ChartContainer>\r\n              <Separator />\r\n              <div className=\"grid gap-2\">\r\n                <div className=\"flex gap-2 font-medium leading-none\">\r\n                  Trending up by 5.2% this month{\" \"}\r\n                  <TrendingUpIcon className=\"size-4\" />\r\n                </div>\r\n                <div className=\"text-muted-foreground\">\r\n                  Showing total visitors for the last 6 months. This is just\r\n                  some random text to test the layout. It spans multiple lines\r\n                  and should wrap around.\r\n                </div>\r\n              </div>\r\n              <Separator />\r\n            </>\r\n          )}\r\n          <form className=\"flex flex-col gap-4\">\r\n            <div className=\"flex flex-col gap-3\">\r\n              <Label htmlFor=\"header\">Header</Label>\r\n              <Input id=\"header\" defaultValue={item.header} />\r\n            </div>\r\n            <div className=\"grid grid-cols-2 gap-4\">\r\n              <div className=\"flex flex-col gap-3\">\r\n                <Label htmlFor=\"type\">Type</Label>\r\n                <Select defaultValue={item.type}>\r\n                  <SelectTrigger id=\"type\" className=\"w-full\">\r\n                    <SelectValue placeholder=\"Select a type\" />\r\n                  </SelectTrigger>\r\n                  <SelectContent>\r\n                    <SelectItem value=\"Table of Contents\">\r\n                      Table of Contents\r\n                    </SelectItem>\r\n                    <SelectItem value=\"Executive Summary\">\r\n                      Executive Summary\r\n                    </SelectItem>\r\n                    <SelectItem value=\"Technical Approach\">\r\n                      Technical Approach\r\n                    </SelectItem>\r\n                    <SelectItem value=\"Design\">Design</SelectItem>\r\n                    <SelectItem value=\"Capabilities\">Capabilities</SelectItem>\r\n                    <SelectItem value=\"Focus Documents\">\r\n                      Focus Documents\r\n                    </SelectItem>\r\n                    <SelectItem value=\"Narrative\">Narrative</SelectItem>\r\n                    <SelectItem value=\"Cover Page\">Cover Page</SelectItem>\r\n                  </SelectContent>\r\n                </Select>\r\n              </div>\r\n              <div className=\"flex flex-col gap-3\">\r\n                <Label htmlFor=\"status\">Status</Label>\r\n                <Select defaultValue={item.status}>\r\n                  <SelectTrigger id=\"status\" className=\"w-full\">\r\n                    <SelectValue placeholder=\"Select a status\" />\r\n                  </SelectTrigger>\r\n                  <SelectContent>\r\n                    <SelectItem className=\"flex gap-2\" value=\"Done\">\r\n                      Done\r\n                    </SelectItem>\r\n                    <SelectItem value=\"In Progress\">In Progress</SelectItem>\r\n                    <SelectItem value=\"Not Started\">Not Started</SelectItem>\r\n                  </SelectContent>\r\n                </Select>\r\n              </div>\r\n            </div>\r\n            <div className=\"grid grid-cols-2 gap-4\">\r\n              <div className=\"flex flex-col gap-3\">\r\n                <Label htmlFor=\"target\">Target</Label>\r\n                <Input id=\"target\" defaultValue={item.target} />\r\n              </div>\r\n              <div className=\"flex flex-col gap-3\">\r\n                <Label htmlFor=\"limit\">Limit</Label>\r\n                <Input id=\"limit\" defaultValue={item.limit} />\r\n              </div>\r\n            </div>\r\n            <div className=\"flex flex-col gap-3\">\r\n              <Label htmlFor=\"reviewer\">Reviewer</Label>\r\n              <Select defaultValue={item.reviewer}>\r\n                <SelectTrigger id=\"reviewer\" className=\"w-full\">\r\n                  <SelectValue placeholder=\"Select a reviewer\" />\r\n                </SelectTrigger>\r\n                <SelectContent>\r\n                  <SelectItem value=\"Eddie Lake\">Eddie Lake</SelectItem>\r\n                  <SelectItem value=\"Jamik Tashpulatov\">\r\n                    Jamik Tashpulatov\r\n                  </SelectItem>\r\n                  <SelectItem value=\"Emily Whalen\">Emily Whalen</SelectItem>\r\n                </SelectContent>\r\n              </Select>\r\n            </div>\r\n          </form>\r\n        </div>\r\n        <SheetFooter className=\"mt-auto flex gap-2 sm:flex-col sm:space-x-0\">\r\n          <Button className=\"w-full\">Submit</Button>\r\n          <SheetClose asChild>\r\n            <Button variant=\"outline\" className=\"w-full\">\r\n              Done\r\n            </Button>\r\n          </SheetClose>\r\n        </SheetFooter>\r\n      </SheetContent>\r\n    </Sheet>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/nav-documents": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  FolderIcon,\r\n  MoreHorizontalIcon,\r\n  ShareIcon,\r\n  type LucideIcon,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupLabel,\r\n  SidebarMenu,\r\n  SidebarMenuAction,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n  useSidebar,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuContent,\r\n  DropdownMenuItem,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\nimport Link from \"next/link\"\r\n\r\nexport function NavDocuments({\r\n  items,\r\n}: {\r\n  items: {\r\n    name: string\r\n    url: string\r\n    icon: LucideIcon\r\n  }[]\r\n}) {\r\n  const { isMobile } = useSidebar()\r\n\r\n  return (\r\n    <SidebarGroup className=\"group-data-[collapsible=icon]:hidden\">\r\n      <SidebarGroupLabel>Documents</SidebarGroupLabel>\r\n      <SidebarMenu>\r\n        {items.map((item) => (\r\n          <SidebarMenuItem key={item.name}>\r\n            <SidebarMenuButton asChild>\r\n              <Link\r\n                href={item.url}>\r\n                <item.icon />\r\n                <span>{item.name}</span>\r\n              </Link>\r\n            </SidebarMenuButton>\r\n            <DropdownMenu>\r\n              <DropdownMenuTrigger asChild>\r\n                <SidebarMenuAction\r\n                  showOnHover\r\n                  className=\"rounded-sm data-[state=open]:bg-accent\"\r\n                >\r\n                  <MoreHorizontalIcon />\r\n                  <span className=\"sr-only\">More</span>\r\n                </SidebarMenuAction>\r\n              </DropdownMenuTrigger>\r\n              <DropdownMenuContent\r\n                className=\"w-24 rounded-lg\"\r\n                side={isMobile ? \"bottom\" : \"right\"}\r\n                align={isMobile ? \"end\" : \"start\"}\r\n              >\r\n                <DropdownMenuItem>\r\n                  <FolderIcon />\r\n                  <span>Open</span>\r\n                </DropdownMenuItem>\r\n                <DropdownMenuItem>\r\n                  <ShareIcon />\r\n                  <span>Share</span>\r\n                </DropdownMenuItem>\r\n              </DropdownMenuContent>\r\n            </DropdownMenu>\r\n          </SidebarMenuItem>\r\n        ))}\r\n        <SidebarMenuItem>\r\n          <SidebarMenuButton className=\"text-sidebar-foreground/70\">\r\n            <MoreHorizontalIcon className=\"text-sidebar-foreground/70\" />\r\n            <span>More</span>\r\n          </SidebarMenuButton>\r\n        </SidebarMenuItem>\r\n      </SidebarMenu>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/nav-main": {
        "content": "\"use client\"\r\n\r\nimport { MailIcon, PlusCircleIcon, type LucideIcon } from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupContent,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport function NavMain({\r\n  items,\r\n}: {\r\n  items: {\r\n    title: string\r\n    url: string\r\n    icon?: LucideIcon\r\n  }[]\r\n}) {\r\n  return (\r\n    <SidebarGroup>\r\n      <SidebarGroupContent className=\"flex flex-col gap-2\">\r\n        <SidebarMenu>\r\n          <SidebarMenuItem className=\"flex items-center gap-2\">\r\n            <SidebarMenuButton\r\n              tooltip=\"Quick Create\"\r\n              className=\"min-w-8 bg-primary text-primary-foreground duration-200 ease-linear hover:bg-primary/90 hover:text-primary-foreground active:bg-primary/90 active:text-primary-foreground\"\r\n            >\r\n              <PlusCircleIcon />\r\n              <span>Quick Create</span>\r\n            </SidebarMenuButton>\r\n            <Button\r\n              size=\"icon\"\r\n              className=\"h-9 w-9 shrink-0 group-data-[collapsible=icon]:opacity-0\"\r\n              variant=\"outline\"\r\n            >\r\n              <MailIcon />\r\n              <span className=\"sr-only\">Inbox</span>\r\n            </Button>\r\n          </SidebarMenuItem>\r\n        </SidebarMenu>\r\n        <SidebarMenu>\r\n          {items.map((item) => (\r\n            <SidebarMenuItem key={item.title}>\r\n              <SidebarMenuButton tooltip={item.title}>\r\n                {item.icon && <item.icon />}\r\n                <span>{item.title}</span>\r\n              </SidebarMenuButton>\r\n            </SidebarMenuItem>\r\n          ))}\r\n        </SidebarMenu>\r\n      </SidebarGroupContent>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/nav-secondary": {
        "content": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { LucideIcon } from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupContent,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\n\r\nexport function NavSecondary({\r\n  items,\r\n  ...props\r\n}: {\r\n  items: {\r\n    title: string\r\n    url: string\r\n    icon: LucideIcon\r\n  }[]\r\n} & React.ComponentPropsWithoutRef<typeof SidebarGroup>) {\r\n  return (\r\n    <SidebarGroup {...props}>\r\n      <SidebarGroupContent>\r\n        <SidebarMenu>\r\n          {items.map((item) => (\r\n            <SidebarMenuItem key={item.title}>\r\n              <SidebarMenuButton asChild>\r\n                <a href={item.url}>\r\n                  <item.icon />\r\n                  <span>{item.title}</span>\r\n                </a>\r\n              </SidebarMenuButton>\r\n            </SidebarMenuItem>\r\n          ))}\r\n        </SidebarMenu>\r\n      </SidebarGroupContent>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/nav-user": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  BellIcon,\r\n  CreditCardIcon,\r\n  LogOutIcon,\r\n  MoreVerticalIcon,\r\n  UserCircleIcon,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n  useSidebar,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  Avatar,\r\n  AvatarFallback,\r\n  AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuContent,\r\n  DropdownMenuGroup,\r\n  DropdownMenuItem,\r\n  DropdownMenuLabel,\r\n  DropdownMenuSeparator,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nexport function NavUser({\r\n  user,\r\n}: {\r\n  user: {\r\n    name: string\r\n    email: string\r\n    avatar: string\r\n  }\r\n}) {\r\n  const { isMobile } = useSidebar()\r\n\r\n  return (\r\n    <SidebarMenu>\r\n      <SidebarMenuItem>\r\n        <DropdownMenu>\r\n          <DropdownMenuTrigger asChild>\r\n            <SidebarMenuButton\r\n              size=\"lg\"\r\n              className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\r\n            >\r\n              <Avatar className=\"h-8 w-8 rounded-lg grayscale\">\r\n                <AvatarImage src={user.avatar} alt={user.name} />\r\n                <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n              </Avatar>\r\n              <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                <span className=\"truncate font-medium\">{user.name}</span>\r\n                <span className=\"truncate text-xs text-muted-foreground\">\r\n                  {user.email}\r\n                </span>\r\n              </div>\r\n              <MoreVerticalIcon className=\"ml-auto size-4\" />\r\n            </SidebarMenuButton>\r\n          </DropdownMenuTrigger>\r\n          <DropdownMenuContent\r\n            className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\r\n            side={isMobile ? \"bottom\" : \"right\"}\r\n            align=\"end\"\r\n            sideOffset={4}\r\n          >\r\n            <DropdownMenuLabel className=\"p-0 font-normal\">\r\n              <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\r\n                <Avatar className=\"h-8 w-8 rounded-lg\">\r\n                  <AvatarImage src={user.avatar} alt={user.name} />\r\n                  <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n                </Avatar>\r\n                <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                  <span className=\"truncate font-medium\">{user.name}</span>\r\n                  <span className=\"truncate text-xs text-muted-foreground\">\r\n                    {user.email}\r\n                  </span>\r\n                </div>\r\n              </div>\r\n            </DropdownMenuLabel>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuGroup>\r\n              <DropdownMenuItem>\r\n                <UserCircleIcon />\r\n                Account\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <CreditCardIcon />\r\n                Billing\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <BellIcon />\r\n                Notifications\r\n              </DropdownMenuItem>\r\n            </DropdownMenuGroup>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuItem>\r\n              <LogOutIcon />\r\n              Log out\r\n            </DropdownMenuItem>\r\n          </DropdownMenuContent>\r\n        </DropdownMenu>\r\n      </SidebarMenuItem>\r\n    </SidebarMenu>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/section-cards": {
        "content": "import { TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\r\n\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport {\r\n  Card,\r\n  CardDescription,\r\n  CardFooter,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\n\r\nimport { formatPrice } from \"../lib/utils\"\r\n\r\nexport function SectionCards() {\r\n  return (\r\n    <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4\">\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n        <CardHeader className=\"relative\">\r\n          <CardDescription>Total Revenue</CardDescription>\r\n          <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">\r\n            {formatPrice(1250)}\r\n          </CardTitle>\r\n          <div className=\"absolute right-4 top-4\">\r\n            <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +12.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n          <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n            Trending up this month <TrendingUpIcon className=\"size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground\">\r\n            Visitors for the last 6 months\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n        <CardHeader className=\"relative\">\r\n          <CardDescription>New Customers</CardDescription>\r\n          <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">\r\n            1,234\r\n          </CardTitle>\r\n          <div className=\"absolute right-4 top-4\">\r\n            <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n              <TrendingDownIcon className=\"size-3\" />\r\n              -20%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n          <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n            Down 20% this period <TrendingDownIcon className=\"size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground\">\r\n            Acquisition needs attention\r\n          </div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n        <CardHeader className=\"relative\">\r\n          <CardDescription>Active Accounts</CardDescription>\r\n          <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">\r\n            45,678\r\n          </CardTitle>\r\n          <div className=\"absolute right-4 top-4\">\r\n            <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +12.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n          <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n            Strong user retention <TrendingUpIcon className=\"size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground\">Engagement exceed targets</div>\r\n        </CardFooter>\r\n      </Card>\r\n      <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n        <CardHeader className=\"relative\">\r\n          <CardDescription>Growth Rate</CardDescription>\r\n          <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">\r\n            4.5%\r\n          </CardTitle>\r\n          <div className=\"absolute right-4 top-4\">\r\n            <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n              <TrendingUpIcon className=\"size-3\" />\r\n              +4.5%\r\n            </Badge>\r\n          </div>\r\n        </CardHeader>\r\n        <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n          <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n            Steady performance <TrendingUpIcon className=\"size-4\" />\r\n          </div>\r\n          <div className=\"text-muted-foreground\">Meets growth projections</div>\r\n        </CardFooter>\r\n      </Card>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/dashboard-3/components/site-header": {
        "content": "import { SidebarTrigger } from \"@/components/ui/sidebar\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nexport function SiteHeader() {\r\n  return (\r\n    <header className=\"group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 flex h-12 shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear px-4 lg:px-6\">\r\n      <div className=\"flex w-full items-center gap-1\">\r\n        <SidebarTrigger className=\"-ml-1\" />\r\n        <Separator\r\n          orientation=\"vertical\"\r\n          className=\"mx-2 data-[orientation=vertical]:h-4\"\r\n        />\r\n        <h1 className=\"text-base font-medium\">Documents</h1>\r\n      </div>\r\n    </header>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/dashboard-3/constant/data.json": {
        "content": "[\r\n  {\r\n    \"id\": 1,\r\n    \"header\": \"Cover page\",\r\n    \"type\": \"Cover page\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"18\",\r\n    \"limit\": \"5\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 2,\r\n    \"header\": \"Table of contents\",\r\n    \"type\": \"Table of contents\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"29\",\r\n    \"limit\": \"24\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 3,\r\n    \"header\": \"Executive summary\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"10\",\r\n    \"limit\": \"13\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 4,\r\n    \"header\": \"Technical approach\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"27\",\r\n    \"limit\": \"23\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 5,\r\n    \"header\": \"Design\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"2\",\r\n    \"limit\": \"16\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 6,\r\n    \"header\": \"Capabilities\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"20\",\r\n    \"limit\": \"8\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 7,\r\n    \"header\": \"Integration with existing systems\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"19\",\r\n    \"limit\": \"21\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 8,\r\n    \"header\": \"Innovation and Advantages\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"25\",\r\n    \"limit\": \"26\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 9,\r\n    \"header\": \"Overview of EMR's Innovative Solutions\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"7\",\r\n    \"limit\": \"23\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 10,\r\n    \"header\": \"Advanced Algorithms and Machine Learning\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"30\",\r\n    \"limit\": \"28\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 11,\r\n    \"header\": \"Adaptive Communication Protocols\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"9\",\r\n    \"limit\": \"31\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 12,\r\n    \"header\": \"Advantages Over Current Technologies\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"12\",\r\n    \"limit\": \"0\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 13,\r\n    \"header\": \"Past Performance\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"22\",\r\n    \"limit\": \"33\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 14,\r\n    \"header\": \"Customer Feedback and Satisfaction Levels\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"15\",\r\n    \"limit\": \"34\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 15,\r\n    \"header\": \"Implementation Challenges and Solutions\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"3\",\r\n    \"limit\": \"35\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 16,\r\n    \"header\": \"Security Measures and Data Protection Policies\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"6\",\r\n    \"limit\": \"36\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 17,\r\n    \"header\": \"Scalability and Future Proofing\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"4\",\r\n    \"limit\": \"37\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 18,\r\n    \"header\": \"Cost-Benefit Analysis\",\r\n    \"type\": \"Plain language\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"14\",\r\n    \"limit\": \"38\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 19,\r\n    \"header\": \"User Training and Onboarding Experience\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"17\",\r\n    \"limit\": \"39\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 20,\r\n    \"header\": \"Future Development Roadmap\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"11\",\r\n    \"limit\": \"40\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 21,\r\n    \"header\": \"System Architecture Overview\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"24\",\r\n    \"limit\": \"18\",\r\n    \"reviewer\": \"Maya Johnson\"\r\n  },\r\n  {\r\n    \"id\": 22,\r\n    \"header\": \"Risk Management Plan\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"15\",\r\n    \"limit\": \"22\",\r\n    \"reviewer\": \"Carlos Rodriguez\"\r\n  },\r\n  {\r\n    \"id\": 23,\r\n    \"header\": \"Compliance Documentation\",\r\n    \"type\": \"Legal\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"31\",\r\n    \"limit\": \"27\",\r\n    \"reviewer\": \"Sarah Chen\"\r\n  },\r\n  {\r\n    \"id\": 24,\r\n    \"header\": \"API Documentation\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"8\",\r\n    \"limit\": \"12\",\r\n    \"reviewer\": \"Raj Patel\"\r\n  },\r\n  {\r\n    \"id\": 25,\r\n    \"header\": \"User Interface Mockups\",\r\n    \"type\": \"Visual\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"19\",\r\n    \"limit\": \"25\",\r\n    \"reviewer\": \"Leila Ahmadi\"\r\n  },\r\n  {\r\n    \"id\": 26,\r\n    \"header\": \"Database Schema\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"22\",\r\n    \"limit\": \"20\",\r\n    \"reviewer\": \"Thomas Wilson\"\r\n  },\r\n  {\r\n    \"id\": 27,\r\n    \"header\": \"Testing Methodology\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"17\",\r\n    \"limit\": \"14\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 28,\r\n    \"header\": \"Deployment Strategy\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"26\",\r\n    \"limit\": \"30\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 29,\r\n    \"header\": \"Budget Breakdown\",\r\n    \"type\": \"Financial\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"13\",\r\n    \"limit\": \"16\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 30,\r\n    \"header\": \"Market Analysis\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"29\",\r\n    \"limit\": \"32\",\r\n    \"reviewer\": \"Sophia Martinez\"\r\n  },\r\n  {\r\n    \"id\": 31,\r\n    \"header\": \"Competitor Comparison\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"21\",\r\n    \"limit\": \"19\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 32,\r\n    \"header\": \"Maintenance Plan\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"16\",\r\n    \"limit\": \"23\",\r\n    \"reviewer\": \"Alex Thompson\"\r\n  },\r\n  {\r\n    \"id\": 33,\r\n    \"header\": \"User Personas\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"27\",\r\n    \"limit\": \"24\",\r\n    \"reviewer\": \"Nina Patel\"\r\n  },\r\n  {\r\n    \"id\": 34,\r\n    \"header\": \"Accessibility Compliance\",\r\n    \"type\": \"Legal\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"18\",\r\n    \"limit\": \"21\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 35,\r\n    \"header\": \"Performance Metrics\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"23\",\r\n    \"limit\": \"26\",\r\n    \"reviewer\": \"David Kim\"\r\n  },\r\n  {\r\n    \"id\": 36,\r\n    \"header\": \"Disaster Recovery Plan\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"14\",\r\n    \"limit\": \"17\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 37,\r\n    \"header\": \"Third-party Integrations\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"25\",\r\n    \"limit\": \"28\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 38,\r\n    \"header\": \"User Feedback Summary\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"20\",\r\n    \"limit\": \"15\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 39,\r\n    \"header\": \"Localization Strategy\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"12\",\r\n    \"limit\": \"19\",\r\n    \"reviewer\": \"Maria Garcia\"\r\n  },\r\n  {\r\n    \"id\": 40,\r\n    \"header\": \"Mobile Compatibility\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"28\",\r\n    \"limit\": \"31\",\r\n    \"reviewer\": \"James Wilson\"\r\n  },\r\n  {\r\n    \"id\": 41,\r\n    \"header\": \"Data Migration Plan\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"19\",\r\n    \"limit\": \"22\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 42,\r\n    \"header\": \"Quality Assurance Protocols\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"30\",\r\n    \"limit\": \"33\",\r\n    \"reviewer\": \"Priya Singh\"\r\n  },\r\n  {\r\n    \"id\": 43,\r\n    \"header\": \"Stakeholder Analysis\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"11\",\r\n    \"limit\": \"14\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 44,\r\n    \"header\": \"Environmental Impact Assessment\",\r\n    \"type\": \"Research\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"24\",\r\n    \"limit\": \"27\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 45,\r\n    \"header\": \"Intellectual Property Rights\",\r\n    \"type\": \"Legal\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"17\",\r\n    \"limit\": \"20\",\r\n    \"reviewer\": \"Sarah Johnson\"\r\n  },\r\n  {\r\n    \"id\": 46,\r\n    \"header\": \"Customer Support Framework\",\r\n    \"type\": \"Narrative\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"22\",\r\n    \"limit\": \"25\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 47,\r\n    \"header\": \"Version Control Strategy\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"15\",\r\n    \"limit\": \"18\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 48,\r\n    \"header\": \"Continuous Integration Pipeline\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"26\",\r\n    \"limit\": \"29\",\r\n    \"reviewer\": \"Michael Chen\"\r\n  },\r\n  {\r\n    \"id\": 49,\r\n    \"header\": \"Regulatory Compliance\",\r\n    \"type\": \"Legal\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"13\",\r\n    \"limit\": \"16\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 50,\r\n    \"header\": \"User Authentication System\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"28\",\r\n    \"limit\": \"31\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 51,\r\n    \"header\": \"Data Analytics Framework\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"21\",\r\n    \"limit\": \"24\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 52,\r\n    \"header\": \"Cloud Infrastructure\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"16\",\r\n    \"limit\": \"19\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 53,\r\n    \"header\": \"Network Security Measures\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"29\",\r\n    \"limit\": \"32\",\r\n    \"reviewer\": \"Lisa Wong\"\r\n  },\r\n  {\r\n    \"id\": 54,\r\n    \"header\": \"Project Timeline\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"14\",\r\n    \"limit\": \"17\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 55,\r\n    \"header\": \"Resource Allocation\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"27\",\r\n    \"limit\": \"30\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 56,\r\n    \"header\": \"Team Structure and Roles\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"20\",\r\n    \"limit\": \"23\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 57,\r\n    \"header\": \"Communication Protocols\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"15\",\r\n    \"limit\": \"18\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 58,\r\n    \"header\": \"Success Metrics\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"30\",\r\n    \"limit\": \"33\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 59,\r\n    \"header\": \"Internationalization Support\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"23\",\r\n    \"limit\": \"26\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 60,\r\n    \"header\": \"Backup and Recovery Procedures\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"18\",\r\n    \"limit\": \"21\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 61,\r\n    \"header\": \"Monitoring and Alerting System\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"25\",\r\n    \"limit\": \"28\",\r\n    \"reviewer\": \"Daniel Park\"\r\n  },\r\n  {\r\n    \"id\": 62,\r\n    \"header\": \"Code Review Guidelines\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"12\",\r\n    \"limit\": \"15\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 63,\r\n    \"header\": \"Documentation Standards\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"27\",\r\n    \"limit\": \"30\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 64,\r\n    \"header\": \"Release Management Process\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"22\",\r\n    \"limit\": \"25\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  },\r\n  {\r\n    \"id\": 65,\r\n    \"header\": \"Feature Prioritization Matrix\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"19\",\r\n    \"limit\": \"22\",\r\n    \"reviewer\": \"Emma Davis\"\r\n  },\r\n  {\r\n    \"id\": 66,\r\n    \"header\": \"Technical Debt Assessment\",\r\n    \"type\": \"Technical content\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"24\",\r\n    \"limit\": \"27\",\r\n    \"reviewer\": \"Eddie Lake\"\r\n  },\r\n  {\r\n    \"id\": 67,\r\n    \"header\": \"Capacity Planning\",\r\n    \"type\": \"Planning\",\r\n    \"status\": \"In Process\",\r\n    \"target\": \"21\",\r\n    \"limit\": \"24\",\r\n    \"reviewer\": \"Jamik Tashpulatov\"\r\n  },\r\n  {\r\n    \"id\": 68,\r\n    \"header\": \"Service Level Agreements\",\r\n    \"type\": \"Legal\",\r\n    \"status\": \"Done\",\r\n    \"target\": \"26\",\r\n    \"limit\": \"29\",\r\n    \"reviewer\": \"Assign reviewer\"\r\n  }\r\n]\r\n",
        "language": "json"
      }
    },
    "lib": {
      "@/registry/view/dashboard-3/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/dashboard-3/page": {
      "content": "import { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\"\r\nimport { AppSidebar } from \"./components/app-sidebar\"\r\nimport { ChartAreaInteractive } from \"./components/chart-area-interactive\"\r\nimport { DataTable } from \"./components/data-table\"\r\nimport { SectionCards } from \"./components/section-cards\"\r\nimport { SiteHeader } from \"./components/site-header\"\r\nimport data from \"./constant/data.json\"\r\n\r\nexport default function DashboardPage() {\r\n  return (\r\n    <SidebarProvider>\r\n      <AppSidebar variant=\"inset\" />\r\n      <SidebarInset>\r\n        <SiteHeader />\r\n        <div className=\"flex flex-1 flex-col px-4 lg:px-6\">\r\n          <div className=\"flex flex-1 flex-col gap-2\">\r\n            <div className=\"flex flex-col gap-4 py-4 md:gap-6 md:py-6\">\r\n              <SectionCards />\r\n              <div>\r\n                <ChartAreaInteractive />\r\n              </div>\r\n              <DataTable data={data} />\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </SidebarInset>\r\n    </SidebarProvider>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "expanded-gallery-1": {
    "components": {
      "@/registry/view/expanded-gallery-1/components/expanded-gallery": {
        "content": "\"use client\"\r\n\r\nimport { useIsMobile } from \"@/hooks/use-mobile\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { AnimatePresence, motion } from \"framer-motion\"\r\nimport { useTheme } from \"next-themes\"\r\nimport Image from \"next/image\"\r\nimport type React from \"react\"\r\n\r\ninterface ExpandableGalleryProps {\r\n  id: string\r\n  imgUrl: string\r\n  title: string\r\n  index: number\r\n  active: string\r\n  handleActive: (id: string) => void\r\n  description?: string\r\n}\r\n\r\nconst ExpandableGallery: React.FC<ExpandableGalleryProps> = ({\r\n  id,\r\n  imgUrl,\r\n  title,\r\n  index,\r\n  active,\r\n  handleActive,\r\n  description = \"\",\r\n}) => {\r\n  const isMobile = useIsMobile()\r\n  const { resolvedTheme } = useTheme()\r\n  const isDarkTheme = resolvedTheme === \"dark\"\r\n  const isActive = active === id\r\n\r\n  const itemVariants = {\r\n    initial: {\r\n      opacity: 0,\r\n      y: 20,\r\n    },\r\n    animate: {\r\n      opacity: 1,\r\n      y: 0,\r\n      transition: {\r\n        duration: 0.7,\r\n        ease: [0.16, 1, 0.3, 1],\r\n        delay: isMobile ? index * 0.08 : index * 0.12,\r\n      },\r\n    },\r\n  }\r\n\r\n  return (\r\n    <motion.div\r\n      initial=\"initial\"\r\n      animate=\"animate\"\r\n      variants={itemVariants}\r\n      className={cn(\r\n        \"relative flex items-center justify-center min-w-[120px] xs:min-w-[150px]\",\r\n        \"transition-all duration-500 ease-out cursor-pointer overflow-hidden\",\r\n        \"h-[280px] xs:h-[320px] sm:h-[420px] md:h-[520px] lg:h-[580px]\",\r\n        isActive\r\n          ? \"flex-[10] sm:flex-[8] md:flex-[6] lg:flex-[3.5]\"\r\n          : \"flex-[1.2] sm:flex-[1.3] md:flex-[1.4] lg:flex-[0.2]\",\r\n        \"rounded-xl md:rounded-2xl\",\r\n        \"shadow-[0_2px_10px_rgba(0,0,0,0.06)] dark:shadow-[0_2px_10px_rgba(0,0,0,0.08)]\",\r\n        \"hover:shadow-[0_4px_20px_rgba(0,0,0,0.08)] dark:hover:shadow-[0_4px_20px_rgba(0,0,0,0.12)]\",\r\n        \"border border-slate-100 dark:border-zinc-800\",\r\n      )}\r\n      onClick={() => handleActive(id)}\r\n      layout\r\n    >\r\n      <motion.div\r\n        className=\"absolute inset-0 z-10\"\r\n        initial={false}\r\n        animate={{\r\n          background: isActive\r\n            ? isDarkTheme\r\n              ? \"linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 35%, rgba(0,0,0,0) 65%)\"\r\n              : \"linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 35%, rgba(0,0,0,0) 65%)\"\r\n            : isDarkTheme\r\n              ? \"linear-gradient(to top, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.08) 50%, rgba(0,0,0,0) 100%)\"\r\n              : \"linear-gradient(to top, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.05) 50%, rgba(0,0,0,0) 100%)\",\r\n        }}\r\n        transition={{ duration: 0.6, ease: [0.16, 1, 0.3, 1] }}\r\n      />\r\n      <motion.div className=\"absolute inset-0\" transition={{ duration: 0.7, ease: [0.16, 1, 0.3, 1] }}>\r\n        <Image\r\n          fill\r\n          src={imgUrl}\r\n          alt={title}\r\n          className={cn(\"object-cover\")}\r\n          sizes=\"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw\"\r\n          priority={index < 2}\r\n        />\r\n      </motion.div>\r\n      <AnimatePresence>\r\n        {!isActive ? (\r\n          <motion.div\r\n            key={`title-${id}`}\r\n            initial={{ opacity: 0 }}\r\n            animate={{ opacity: 1 }}\r\n            exit={{ opacity: 0 }}\r\n            transition={{ duration: 0.4 }}\r\n            className={cn(\r\n              \"absolute z-20\",\r\n              \"bottom-5 left-5 text-[16px] xs:text-[17px] sm:text-[18px]\",\r\n              \"lg:text-[20px] lg:bottom-20 lg:rotate-[-90deg] lg:origin-[0,0]\",\r\n              \"font-medium tracking-tight text-white\",\r\n              \"drop-shadow-sm\",\r\n            )}\r\n          >\r\n            {title}\r\n          </motion.div>\r\n        ) : (\r\n          <motion.div\r\n            key={`content-${id}`}\r\n            initial={{ opacity: 0, y: 20 }}\r\n            animate={{ opacity: 1, y: 0 }}\r\n            exit={{ opacity: 0, y: 10 }}\r\n            transition={{ duration: 0.5, ease: [0.16, 1, 0.3, 1] }}\r\n            className={cn(\r\n              \"absolute bottom-0 w-full z-20\",\r\n              \"p-5 xs:p-6 sm:p-6\",\r\n              \"flex justify-start flex-col\",\r\n              isDarkTheme\r\n                ? \"backdrop-blur-[8px] bg-black/30 dark:bg-black/40\"\r\n                : \"backdrop-blur-[8px] bg-black/25 dark:bg-black/30\",\r\n              \"rounded-b-xl md:rounded-b-2xl\",\r\n            )}\r\n          >\r\n            <h2\r\n              className={cn(\r\n                \"font-medium text-[20px] xs:text-[22px] sm:text-[24px] md:text-[28px]\",\r\n                \"text-white mb-2 tracking-tight leading-tight\",\r\n              )}\r\n            >\r\n              {title}\r\n            </h2>\r\n            {description && (\r\n              <p\r\n                className={cn(\r\n                  \"text-white/90 text-sm sm:text-base\",\r\n                  \"max-w-md font-light leading-relaxed\",\r\n                  \"line-clamp-3 sm:line-clamp-none\",\r\n                )}\r\n              >\r\n                {description}\r\n              </p>\r\n            )}\r\n          </motion.div>\r\n        )}\r\n      </AnimatePresence>\r\n    </motion.div>\r\n  )\r\n}\r\n\r\nexport default ExpandableGallery\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/expanded-gallery-1/constant/index.ts": {
        "content": "export const galleryItems = [\r\n  {\r\n    id: \"shadcn\",\r\n    imgUrl: \"/blocks/case-studies-1/image-1.jpg\",\r\n    title: \"Modern Component Library\",\r\n    description:\r\n      \"Explore how shadcn/ui revolutionized React component development\",\r\n  },\r\n  {\r\n    id: \"tailwind\",\r\n    imgUrl: \"/blocks/case-studies-1/image-2.jpg\",\r\n    title: \"The Utility-First Revolution\",\r\n    description:\r\n      \"A traditional spread of delicious dishes prepared for the evening meal during Ramadan.\",\r\n  },\r\n  {\r\n    id: \"astro\",\r\n    imgUrl: \"/blocks/case-studies-1/image-3.jpg\",\r\n    title: \"The All-in-One Web Framework\",\r\n    description:\r\n      \"Learn how Astro's innovative 'Islands Architecture' and zero-JS approach\",\r\n  },\r\n  {\r\n    id: \"react\",\r\n    imgUrl: \"/blocks/case-studies-1/image-4.jpg\",\r\n    title: \"Pioneering Component-Based UI\",\r\n    description:\r\n      \"See how React continues to shape modern web development with its component model\",\r\n  },\r\n  {\r\n    id: \"nextjs\",\r\n    imgUrl: \"/blocks/case-studies-1/image-5.jpg\",\r\n    title: \"The React Framework\",\r\n    description:\r\n      \"Explore how Next.js has become the go-to framework for React applications\",\r\n  },\r\n]\r\n",
        "language": "typescript"
      }
    },
    "lib": {
      "@/registry/view/expanded-gallery-1/lib/motion.ts": {
        "content": "export const fadeIn = (delay = 0, duration = 0.5) => ({\r\n  hidden: {\r\n    opacity: 0,\r\n  },\r\n  show: {\r\n    opacity: 1,\r\n    transition: {\r\n      delay,\r\n      duration,\r\n      ease: \"easeOut\",\r\n    },\r\n  },\r\n})\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/expanded-gallery-1/page": {
      "content": "\"use client\"\r\n\r\nimport Container from \"@/components/Container\"\r\nimport { useIsMobile } from \"@/hooks/use-mobile\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { motion } from \"framer-motion\"\r\nimport { useState } from \"react\"\r\nimport ExpandableGallery from \"./components/expanded-gallery\"\r\nimport { galleryItems } from \"./constant\"\r\n\r\nexport default function GalleryPage() {\r\n  const [active, setActive] = useState(\"shadcn\")\r\n  const isMobile = useIsMobile()\r\n\r\n  const containerVariants = {\r\n    initial: { opacity: 0 },\r\n    animate: {\r\n      opacity: 1,\r\n      transition: {\r\n        duration: 0.8,\r\n        ease: [0.16, 1, 0.3, 1],\r\n        staggerChildren: 0.08,\r\n      },\r\n    },\r\n  }\r\n\r\n  return (\r\n    <div className={cn(\"min-h-screen py-8 sm:py-12 md:py-16\", \"bg-[#f5f5f7] dark:bg-zinc-900\")}>\r\n      <Container className=\"max-w-[1200px] px-4 sm:px-6 md:px-8\">\r\n        <motion.div\r\n          initial=\"initial\"\r\n          animate=\"animate\"\r\n          variants={containerVariants}\r\n          className={cn(\r\n            \"transition-all duration-700 ease-out\",\r\n            isMobile\r\n              ? \"grid grid-cols-1 sm:grid-cols-2 gap-4 sm:gap-5\"\r\n              : \"flex flex-row items-center justify-center gap-3 sm:gap-4 md:gap-5\",\r\n          )}\r\n        >\r\n          {galleryItems.map((item, index) => (\r\n            <ExpandableGallery key={item.id} {...item} index={index} active={active} handleActive={setActive} />\r\n          ))}\r\n        </motion.div>\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "faq-1": {
    "components": {
      "@/registry/view/faq-1/components/faqs": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport {\r\n    BarChart3,\r\n    BookOpen,\r\n    ChevronDown,\r\n    Code,\r\n    CreditCard,\r\n    DollarSign,\r\n    HelpCircle,\r\n    Mail,\r\n    MessageCircle,\r\n} from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\n\r\ninterface FAQ {\r\n    id: string\r\n    question: string\r\n    answer: string\r\n    icon: React.ReactNode\r\n    category: string\r\n}\r\n\r\ninterface FAQBlockProps {\r\n    title?: string\r\n    subtitle?: string\r\n    linkText?: string\r\n    linkHref?: string\r\n    categories?: string[]\r\n    faqs?: FAQ[]\r\n    className?: string\r\n}\r\n\r\nconst defaultFAQs: FAQ[] = [\r\n    {\r\n        id: \"1\",\r\n        question: \"Is there a free trial available?\",\r\n        answer:\r\n            \"Yes, you can try us for free for 30 days. If you want, we'll provide you with a free 30-minute onboarding call to get you up and running. Book a call here.\",\r\n        icon: <HelpCircle className=\"w-5 h-5\" />,\r\n        category: \"General\",\r\n    },\r\n    {\r\n        id: \"2\",\r\n        question: \"Can I change my plan later?\",\r\n        answer:\r\n            \"Of course! Our pricing scales with your company. Chat to our friendly team to find a solution that works for you.\",\r\n        icon: <CreditCard className=\"w-5 h-5\" />,\r\n        category: \"Pricing\",\r\n    },\r\n    {\r\n        id: \"3\",\r\n        question: \"What is your cancellation policy?\",\r\n        answer:\r\n            \"We understand that things change. You can cancel your plan at any time and we'll refund you the difference already paid.\",\r\n        icon: <BarChart3 className=\"w-5 h-5\" />,\r\n        category: \"General\",\r\n    },\r\n    {\r\n        id: \"4\",\r\n        question: \"Can other info be added to an invoice?\",\r\n        answer:\r\n            \"Yes, you can easily add additional information to your invoices such as your VAT number, company address, and purchase order numbers.\",\r\n        icon: <Code className=\"w-5 h-5\" />,\r\n        category: \"API\",\r\n    },\r\n    {\r\n        id: \"5\",\r\n        question: \"How does billing work?\",\r\n        answer:\r\n            \"Plans are per workspace, not per account. You can upgrade one workspace, and still have any number of free workspaces.\",\r\n        icon: <DollarSign className=\"w-5 h-5\" />,\r\n        category: \"Pricing\",\r\n    },\r\n    {\r\n        id: \"6\",\r\n        question: \"How do I change my account email?\",\r\n        answer:\r\n            \"You can change the email address associated with your account by going to your account settings and updating your profile information.\",\r\n        icon: <Mail className=\"w-5 h-5\" />,\r\n        category: \"General\",\r\n    },\r\n    {\r\n        id: \"7\",\r\n        question: \"How does support work?\",\r\n        answer:\r\n            \"We provide email and chat support to all users. Premium users also get access to phone support and priority assistance.\",\r\n        icon: <MessageCircle className=\"w-5 h-5\" />,\r\n        category: \"General\",\r\n    },\r\n    {\r\n        id: \"8\",\r\n        question: \"Do you provide tutorials?\",\r\n        answer:\r\n            \"Yes! We have a comprehensive knowledge base with step-by-step tutorials, video guides, and best practices to help you get the most out of our platform.\",\r\n        icon: <BookOpen className=\"w-5 h-5\" />,\r\n        category: \"General\",\r\n    },\r\n]\r\n\r\nexport default function FAQ({\r\n    title = \"Frequently asked questions\",\r\n    subtitle = \"These are the most commonly asked questions about Untitled UI. Can't find what you're looking for?\",\r\n    linkText = \"Chat to our friendly team!\",\r\n    linkHref = \"#\",\r\n    categories = [\"General\", \"Pricing\", \"Dashboard\", \"API\"],\r\n    faqs = defaultFAQs,\r\n    className,\r\n}: FAQBlockProps) {\r\n    const [activeCategory, setActiveCategory] = useState(categories[0])\r\n    const [openItems, setOpenItems] = useState<string[]>([\"1\"]) // First item open by default\r\n\r\n    const filteredFAQs = faqs.filter((faq) => faq.category === activeCategory)\r\n\r\n    const toggleItem = (id: string) => {\r\n        setOpenItems((prev) => (prev.includes(id) ? prev.filter((item) => item !== id) : [...prev, id]))\r\n    }\r\n\r\n    return (\r\n        <div className={cn(\"w-full max-w-4xl mx-auto px-4 py-16\", className)}>\r\n            <div className=\"text-center mb-12\">\r\n                <h2 className=\"text-3xl md:text-4xl font-bold text-foreground mb-4 transition-colors duration-200\">{title}</h2>\r\n                <p className=\"text-lg text-muted-foreground max-w-2xl mx-auto transition-colors duration-200\">\r\n                    {subtitle}{\" \"}\r\n                    <Link\r\n                        href={linkHref}\r\n                        className=\"text-primary hover:text-primary/80 font-medium underline decoration-primary/30 hover:decoration-primary/60 transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background rounded-sm\"\r\n                    >\r\n                        {linkText}\r\n                    </Link>\r\n                </p>\r\n            </div>\r\n            <div className=\"flex flex-wrap justify-center gap-2 mb-12\">\r\n                {categories.map((category) => (\r\n                    <Button\r\n                        key={category}\r\n                        variant={activeCategory === category ? \"default\" : \"outline\"}\r\n                        onClick={() => setActiveCategory(category)}\r\n                        className={cn(\r\n                            \"rounded-full px-6 py-2 text-sm font-medium transition-all duration-200\",\r\n                            activeCategory === category\r\n                                ? \"bg-foreground text-background hover:bg-foreground/90 shadow-md\"\r\n                                : \"bg-background text-foreground border-border hover:bg-accent hover:text-accent-foreground shadow-sm hover:shadow-md\",\r\n                        )}\r\n                        aria-pressed={activeCategory === category}\r\n                        role=\"tab\"\r\n                        aria-selected={activeCategory === category}\r\n                    >\r\n                        {category}\r\n                    </Button>\r\n                ))}\r\n            </div>\r\n            <div className=\"space-y-4\" role=\"tabpanel\" aria-labelledby={`category-${activeCategory}`}>\r\n                {filteredFAQs.map((faq, index) => (\r\n                    <Collapsible key={faq.id} open={openItems.includes(faq.id)} onOpenChange={() => toggleItem(faq.id)}>\r\n                        <div className=\"border border-border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-all duration-200 bg-card\">\r\n                            <CollapsibleTrigger\r\n                                className=\"w-full p-6 text-left hover:bg-accent/50 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background group\"\r\n                                aria-expanded={openItems.includes(faq.id)}\r\n                                aria-controls={`faq-content-${faq.id}`}\r\n                                id={`faq-trigger-${faq.id}`}\r\n                            >\r\n                                <div className=\"flex items-center justify-between\">\r\n                                    <div className=\"flex items-center gap-4\">\r\n                                        <div className=\"text-muted-foreground flex-shrink-0 transition-colors duration-200 group-hover:text-foreground\">\r\n                                            {faq.icon}\r\n                                        </div>\r\n                                        <h3 className=\"text-lg font-semibold text-foreground transition-colors duration-200 text-left\">\r\n                                            {faq.question}\r\n                                        </h3>\r\n                                    </div>\r\n                                    <ChevronDown\r\n                                        className={cn(\r\n                                            \"w-5 h-5 text-muted-foreground transition-all duration-200 transform group-hover:text-foreground\",\r\n                                            {\r\n                                                \"rotate-180\": openItems.includes(faq.id),\r\n                                            },\r\n                                        )}\r\n                                        aria-hidden=\"true\"\r\n                                    />\r\n                                </div>\r\n                            </CollapsibleTrigger>\r\n                            <CollapsibleContent>\r\n                                <div\r\n                                    className=\"px-6 pb-6 pt-0 border-t border-border/50 bg-accent/20\"\r\n                                    id={`faq-content-${faq.id}`}\r\n                                    aria-labelledby={`faq-trigger-${faq.id}`}\r\n                                >\r\n                                    <div className=\"ml-9 pt-4 text-muted-foreground leading-relaxed transition-colors duration-200\">\r\n                                        {faq.answer}\r\n                                    </div>\r\n                                </div>\r\n                            </CollapsibleContent>\r\n                        </div>\r\n                    </Collapsible>\r\n                ))}\r\n            </div>\r\n            {filteredFAQs.length === 0 && (\r\n                <div className=\"text-center py-12\">\r\n                    <div className=\"text-muted-foreground mb-4\">\r\n                        <HelpCircle className=\"w-12 h-12 mx-auto\" />\r\n                    </div>\r\n                    <h3 className=\"text-lg font-medium text-foreground mb-2\">No FAQs found</h3>\r\n                    <p className=\"text-muted-foreground\">\r\n                        There are no frequently asked questions in the {activeCategory} category yet.\r\n                    </p>\r\n                </div>\r\n            )}\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/faq-1/page": {
      "content": "import FAQ from \"./components/faqs\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div className=\"min-h-screen py-8\">\r\n            <FAQ />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "features-showcase-1": {
    "components": {
      "@/registry/view/features-showcase-1/components/feature-showcase": {
        "content": "import { ArrowRight, Box, LayoutGrid, Library } from \"lucide-react\"\r\n\r\nexport default function FeatureShowcase() {\r\n  return (\r\n    <div className=\"py-16 px-4 md:px-8\">\r\n      <div className=\"max-w-7xl mx-auto\">\r\n        <div className=\"mb-8\">\r\n          <p className=\"text-pink-500 mb-2\">Key highlights</p>\r\n          <h2 className=\"text-5xl font-bold\">Why Alpha only?</h2>\r\n        </div>\r\n        <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\r\n          <div className=\"border border-zinc-800 p-8 rounded-md\">\r\n            <div className=\"text-pink-500 mb-4\">\r\n              <LayoutGrid size={24} />\r\n            </div>\r\n            <h3 className=\"text-xl font-semibold mb-3\">Pixel Perfect Layout</h3>\r\n            <p className=\"text-zinc-400 mb-8\">\r\n              All the sections are perfectly designed with pixel perfect grids\r\n              and layouts. Everything you see is responsive for all devices.\r\n            </p>\r\n            <div className=\"flex items-center text-zinc-400 hover:text-pink-500 transition-colors cursor-pointer group\">\r\n              <span className=\"mr-2\">Learn more</span>\r\n              <ArrowRight\r\n                size={16}\r\n                className=\"group-hover:translate-x-1 transition-transform\"\r\n              />\r\n            </div>\r\n          </div>\r\n          <div className=\"border border-zinc-800 p-8 rounded-md\">\r\n            <div className=\"text-pink-500 mb-4\">\r\n              <Box size={24} />\r\n            </div>\r\n            <h3 className=\"text-xl font-semibold mb-3\">Editable Components</h3>\r\n            <p className=\"text-zinc-400 mb-8\">\r\n              With the help of Framer variables, everything is under you\r\n              control. Just click the component and start changing everything\r\n              but not anything.\r\n            </p>\r\n            <div className=\"flex items-center text-pink-500 hover:text-pink-400 transition-colors cursor-pointer group\">\r\n              <span className=\"mr-2\">Learn more</span>\r\n              <ArrowRight\r\n                size={16}\r\n                className=\"group-hover:translate-x-1 transition-transform\"\r\n              />\r\n            </div>\r\n          </div>\r\n          <div className=\"border border-zinc-800 p-8 rounded-md\">\r\n            <div className=\"text-pink-500 mb-4\">\r\n              <Library size={24} />\r\n            </div>\r\n            <h3 className=\"text-xl font-semibold mb-3\">Scalable Library</h3>\r\n            <p className=\"text-zinc-400 mb-8\">\r\n              Since each component is custom made, you can easily scale you\r\n              library with new components, icons, colors, etc.\r\n            </p>\r\n            <div className=\"flex items-center text-zinc-400 hover:text-pink-500 transition-colors cursor-pointer group\">\r\n              <span className=\"mr-2\">Learn more</span>\r\n              <ArrowRight\r\n                size={16}\r\n                className=\"group-hover:translate-x-1 transition-transform\"\r\n              />\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/features-showcase-1/page": {
      "content": "import FeatureShowcase from \"./components/feature-showcase\"\r\n\r\nexport default function Page() {\r\n  return (\r\n    <div className=\"h-screen  py-10 md:py-16 lg:py-20\">\r\n      <FeatureShowcase />\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "features-showcase-2": {
    "components": {
      "@/registry/view/features-showcase-2/components/features-showcase": {
        "content": "import type React from \"react\"\r\nimport { Ban, CreditCard, Shield, Smartphone } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\ninterface FeatureCardProps {\r\n    icon: React.ReactNode\r\n    title: string\r\n    description: string\r\n    variant: \"amber\" | \"cyan\" | \"emerald\" | \"blue\"\r\n    className?: string\r\n}\r\n\r\nfunction FeatureCard({ icon, title, description, variant, className }: FeatureCardProps) {\r\n    const variantStyles = {\r\n        amber: \"bg-amber-50 dark:bg-amber-950/20 border-amber-200 dark:border-amber-800/30\",\r\n        cyan: \"bg-cyan-50 dark:bg-cyan-950/20 border-cyan-200 dark:border-cyan-800/30\",\r\n        emerald: \"bg-emerald-50 dark:bg-emerald-950/20 border-emerald-200 dark:border-emerald-800/30\",\r\n        blue: \"bg-blue-50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800/30\",\r\n    }\r\n\r\n    const iconStyles = {\r\n        amber: \"text-amber-600 dark:text-amber-400\",\r\n        cyan: \"text-cyan-600 dark:text-cyan-400\",\r\n        emerald: \"text-emerald-600 dark:text-emerald-400\",\r\n        blue: \"text-blue-600 dark:text-blue-400\",\r\n    }\r\n\r\n    return (\r\n        <div\r\n            className={cn(\r\n                \"p-6 rounded-lg border transition-all duration-200 hover:shadow-md hover:scale-[1.02]\",\r\n                variantStyles[variant],\r\n                className,\r\n            )}\r\n        >\r\n            <div className=\"mb-4\">\r\n                <div className={cn(\"h-8 w-8 transition-colors duration-200\", iconStyles[variant])}>{icon}</div>\r\n            </div>\r\n            <h3 className=\"font-bold text-lg mb-2 text-foreground transition-colors duration-200\">{title}</h3>\r\n            <p className=\"text-muted-foreground text-sm leading-relaxed transition-colors duration-200\">{description}</p>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default function FinancialFeatures() {\r\n    const features = [\r\n        {\r\n            icon: <CreditCard className=\"h-8 w-8\" />,\r\n            title: \"Modern Cards\",\r\n            description: \"Up-to-date payment methods for convenience and efficiency.\",\r\n            variant: \"amber\" as const,\r\n        },\r\n        {\r\n            icon: <Ban className=\"h-8 w-8\" />,\r\n            title: \"No Extra Fees\",\r\n            description: \"Transparent pricing with no hidden charges.\",\r\n            variant: \"cyan\" as const,\r\n        },\r\n        {\r\n            icon: <Shield className=\"h-8 w-8\" />,\r\n            title: \"Super Secure\",\r\n            description: \"Advanced security measures to protect your transactions.\",\r\n            variant: \"amber\" as const,\r\n        },\r\n        {\r\n            icon: <Smartphone className=\"h-8 w-8\" />,\r\n            title: \"Contactless Payments\",\r\n            description: \"Convenient and hygienic transactions with tap-and-go technology.\",\r\n            variant: \"emerald\" as const,\r\n        },\r\n    ]\r\n\r\n    return (\r\n        <section className=\"py-16 px-4 bg-background transition-colors duration-200\">\r\n            <div className=\"container mx-auto max-w-6xl\">\r\n                <div className=\"text-center mb-12\">\r\n                    <h2 className=\"text-3xl font-bold mb-3 text-foreground transition-colors duration-200\">\r\n                        Custom-built for financial exchanges\r\n                    </h2>\r\n                    <p className=\"text-muted-foreground max-w-3xl mx-auto leading-relaxed transition-colors duration-200\">\r\n                        Our platform offers secure and efficient transaction capabilities, tailored to meet diverse payment needs\r\n                        with robust features.\r\n                    </p>\r\n                </div>\r\n                <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6\">\r\n                    {features.map((feature, index) => (\r\n                        <FeatureCard\r\n                            key={index}\r\n                            icon={feature.icon}\r\n                            title={feature.title}\r\n                            description={feature.description}\r\n                            variant={feature.variant}\r\n                        />\r\n                    ))}\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/features-showcase-2/page": {
      "content": "import FinancialFeatures from \"./components/features-showcase\"\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div>\r\n            <FinancialFeatures />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "features-showcase-3": {
    "components": {
      "@/registry/view/features-showcase-3/components/features-showcase": {
        "content": "import { HeartPulse, Stethoscope, ShieldCheck, Activity } from \"lucide-react\"\r\n\r\nexport default function FeaturesShowcase() {\r\n    const features = [\r\n        {\r\n            icon: ShieldCheck,\r\n            title: \"Secure & Compliant by Default\",\r\n            description:\r\n                \"Built with end-to-end encryption and fully compliant with HIPAA standards to safeguard patient data and ensure trust.\",\r\n        },\r\n        {\r\n            icon: HeartPulse,\r\n            title: \"Realtime Vital Signs Display\",\r\n            description:\r\n                \"Designed for critical care environments — instantly render and update patient vitals with zero lag and clinical-grade precision.\",\r\n        },\r\n        {\r\n            icon: Stethoscope,\r\n            title: \"Ergonomic for Medical Workflows\",\r\n            description:\r\n                \"Crafted for doctors, nurses, and specialists. Clear layouts and intuitive spacing reduce cognitive load in high-pressure scenarios.\",\r\n        },\r\n        {\r\n            icon: Activity,\r\n            title: \"Live Health Metrics & Analytics\",\r\n            description:\r\n                \"Visualize trends, charts, and diagnostic data in real-time. Engineered for clarity and speed in data-driven medical decisions.\",\r\n        },\r\n    ]\r\n\r\n    return (\r\n        <section className=\"w-full py-20 bg-gradient-to-b from-neutral-50 to-neutral-100 dark:from-neutral-900 dark:to-neutral-950\">\r\n            <div className=\"container px-4 mx-auto max-w-6xl\">\r\n                <div className=\"mb-16 text-center\">\r\n                    <h2 className=\"text-3xl md:text-4xl font-medium text-neutral-900 dark:text-neutral-50 mb-4\">\r\n                        Healthcare-Optimized Components\r\n                    </h2>\r\n                    <p className=\"text-neutral-600 dark:text-neutral-300 text-lg max-w-2xl mx-auto\">\r\n                        Designed specifically for medical interfaces with a focus on clarity, performance, and compliance.\r\n                    </p>\r\n                </div>\r\n                <div className=\"grid grid-cols-1 md:grid-cols-2 gap-8\">\r\n                    {features.map((feature, index) => (\r\n                        <div\r\n                            key={index}\r\n                            className=\"bg-white dark:bg-neutral-800 rounded-2xl p-8 shadow-[0_2px_10px_rgba(0,0,0,0.03)] dark:shadow-[0_2px_10px_rgba(0,0,0,0.2)] border border-neutral-100 dark:border-neutral-700 transition-all duration-200 hover:shadow-[0_10px_30px_rgba(0,0,0,0.04)] dark:hover:shadow-[0_10px_30px_rgba(0,0,0,0.2)]\"\r\n                        >\r\n                            <div className=\"h-12 w-12 rounded-full bg-neutral-100 dark:bg-neutral-700 flex items-center justify-center mb-6\">\r\n                                <feature.icon className=\"h-6 w-6 text-neutral-700 dark:text-neutral-200\" />\r\n                            </div>\r\n                            <h3 className=\"text-xl font-medium text-neutral-900 dark:text-neutral-50 mb-3\">{feature.title}</h3>\r\n                            <p className=\"text-neutral-600 dark:text-neutral-300 leading-relaxed\">{feature.description}</p>\r\n                        </div>\r\n                    ))}\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/features-showcase-3/page": {
      "content": "import FeaturesShowcase from \"./components/features-showcase\"\r\n\r\nexport default function page() {\r\n    return (\r\n        <main className=\"min-h-screen\">\r\n            <FeaturesShowcase />\r\n        </main>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "features-showcase-4": {
    "components": {
      "@/registry/view/features-showcase-4/components/features-showcase": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { motion } from \"framer-motion\"\r\nimport { BarChart3, ChevronRight, Globe, LineChart, Settings, Shield } from \"lucide-react\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\n\r\ninterface Feature {\r\n    icon: React.ReactNode\r\n    title: string\r\n    description: string\r\n    color: {\r\n        light: string\r\n        dark: string\r\n    }\r\n    iconColor: {\r\n        light: string\r\n        dark: string\r\n    }\r\n    hoverColor: {\r\n        light: string\r\n        dark: string\r\n    }\r\n}\r\n\r\nexport default function FeaturesShowcase3() {\r\n    const [hoveredFeature, setHoveredFeature] = useState<number | null>(null)\r\n\r\n    const features: Feature[] = [\r\n        {\r\n            icon: <LineChart className=\"h-6 w-6\" />,\r\n            title: \"Performance Analytics\",\r\n            description: \"Advanced metrics and insights to optimize your business operations and track growth.\",\r\n            color: {\r\n                light: \"bg-gradient-to-br from-blue-50 to-blue-100\",\r\n                dark: \"bg-gradient-to-br from-blue-950/40 to-blue-900/30\",\r\n            },\r\n            iconColor: {\r\n                light: \"text-blue-600\",\r\n                dark: \"text-blue-400\",\r\n            },\r\n            hoverColor: {\r\n                light: \"from-blue-100 to-blue-200\",\r\n                dark: \"from-blue-900/50 to-blue-800/40\",\r\n            },\r\n        },\r\n        {\r\n            icon: <Shield className=\"h-6 w-6\" />,\r\n            title: \"Enterprise Security\",\r\n            description: \"Military-grade encryption and compliance protocols to protect your sensitive data.\",\r\n            color: {\r\n                light: \"bg-gradient-to-br from-purple-50 to-purple-100\",\r\n                dark: \"bg-gradient-to-br from-purple-950/40 to-purple-900/30\",\r\n            },\r\n            iconColor: {\r\n                light: \"text-purple-600\",\r\n                dark: \"text-purple-400\",\r\n            },\r\n            hoverColor: {\r\n                light: \"from-purple-100 to-purple-200\",\r\n                dark: \"from-purple-900/50 to-purple-800/40\",\r\n            },\r\n        },\r\n        {\r\n            icon: <Settings className=\"h-6 w-6\" />,\r\n            title: \"Seamless Integration\",\r\n            description: \"Connect with your existing tech stack through our extensive API and integration ecosystem.\",\r\n            color: {\r\n                light: \"bg-gradient-to-br from-amber-50 to-amber-100\",\r\n                dark: \"bg-gradient-to-br from-amber-950/40 to-amber-900/30\",\r\n            },\r\n            iconColor: {\r\n                light: \"text-amber-600\",\r\n                dark: \"text-amber-400\",\r\n            },\r\n            hoverColor: {\r\n                light: \"from-amber-100 to-amber-200\",\r\n                dark: \"from-amber-900/50 to-amber-800/40\",\r\n            },\r\n        },\r\n        {\r\n            icon: <BarChart3 className=\"h-6 w-6\" />,\r\n            title: \"Advanced Reporting\",\r\n            description: \"Customizable dashboards and reports that deliver actionable business intelligence.\",\r\n            color: {\r\n                light: \"bg-gradient-to-br from-emerald-50 to-emerald-100\",\r\n                dark: \"bg-gradient-to-br from-emerald-950/40 to-emerald-900/30\",\r\n            },\r\n            iconColor: {\r\n                light: \"text-emerald-600\",\r\n                dark: \"text-emerald-400\",\r\n            },\r\n            hoverColor: {\r\n                light: \"from-emerald-100 to-emerald-200\",\r\n                dark: \"from-emerald-900/50 to-emerald-800/40\",\r\n            },\r\n        },\r\n        {\r\n            icon: <Globe className=\"h-6 w-6\" />,\r\n            title: \"Global Infrastructure\",\r\n            description: \"Distributed architecture ensuring reliability, scalability, and low-latency worldwide.\",\r\n            color: {\r\n                light: \"bg-gradient-to-br from-rose-50 to-rose-100\",\r\n                dark: \"bg-gradient-to-br from-rose-950/40 to-rose-900/30\",\r\n            },\r\n            iconColor: {\r\n                light: \"text-rose-600\",\r\n                dark: \"text-rose-400\",\r\n            },\r\n            hoverColor: {\r\n                light: \"from-rose-100 to-rose-200\",\r\n                dark: \"from-rose-900/50 to-rose-800/40\",\r\n            },\r\n        },\r\n    ]\r\n\r\n    return (\r\n        <section className=\"py-24 px-6 md:px-12 bg-background transition-colors duration-300\">\r\n            <div className=\"max-w-7xl mx-auto\">\r\n                <div className=\"text-center mb-16\">\r\n                    <h2 className=\"text-3xl md:text-4xl font-semibold tracking-tight text-foreground mb-4 transition-colors duration-300\">\r\n                        Enterprise-Grade Solutions\r\n                    </h2>\r\n                    <p className=\"text-lg text-muted-foreground max-w-2xl mx-auto transition-colors duration-300\">\r\n                        Robust features designed to optimize operations, enhance security, and accelerate your organization's\r\n                        digital transformation.\r\n                    </p>\r\n                </div>\r\n                <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\r\n                    {features.map((feature, index) => (\r\n                        <motion.div\r\n                            key={index}\r\n                            className={cn(\r\n                                \"relative rounded-2xl p-8 overflow-hidden transition-all duration-300 ease-out border\",\r\n                                \"dark:border-gray-800 border-gray-200 shadow-sm hover:shadow-md\",\r\n                                feature.color.light,\r\n                                \"dark:\" + feature.color.dark,\r\n                            )}\r\n                            onMouseEnter={() => setHoveredFeature(index)}\r\n                            onMouseLeave={() => setHoveredFeature(null)}\r\n                            initial={{ opacity: 0, y: 20 }}\r\n                            whileInView={{ opacity: 1, y: 0 }}\r\n                            viewport={{ once: true, amount: 0.2 }}\r\n                            transition={{ duration: 0.5, delay: index * 0.1 }}\r\n                            role=\"article\"\r\n                            aria-labelledby={`feature-title-${index}`}\r\n                        >\r\n                            <motion.div\r\n                                className={cn(\r\n                                    \"absolute inset-0 z-0 transition-opacity duration-300\",\r\n                                    hoveredFeature === index ? `bg-gradient-to-br ${feature.hoverColor.light}` : \"\",\r\n                                    hoveredFeature === index ? `dark:bg-gradient-to-br dark:${feature.hoverColor.dark}` : \"\",\r\n                                )}\r\n                                initial={{ opacity: 0 }}\r\n                                animate={{ opacity: hoveredFeature === index ? 1 : 0 }}\r\n                                aria-hidden=\"true\"\r\n                            />\r\n                            <div className=\"relative z-10\">\r\n                                <div\r\n                                    className={cn(\r\n                                        feature.iconColor.light,\r\n                                        \"dark:\" + feature.iconColor.dark,\r\n                                        \"mb-5 transition-colors duration-300\",\r\n                                    )}\r\n                                >\r\n                                    {feature.icon}\r\n                                </div>\r\n                                <h3\r\n                                    id={`feature-title-${index}`}\r\n                                    className=\"text-xl font-semibold text-foreground mb-3 transition-colors duration-300\"\r\n                                >\r\n                                    {feature.title}\r\n                                </h3>\r\n                                <p className=\"text-muted-foreground mb-6 text-sm leading-relaxed transition-colors duration-300\">\r\n                                    {feature.description}\r\n                                </p>\r\n                                <motion.div\r\n                                    className=\"flex items-center text-sm font-medium cursor-pointer group\"\r\n                                    whileHover={{ x: 5 }}\r\n                                    transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\r\n                                    tabIndex={0}\r\n                                    role=\"button\"\r\n                                    aria-label={`Learn more about ${feature.title}`}\r\n                                    onKeyDown={(e) => {\r\n                                        if (e.key === \"Enter\" || e.key === \" \") {\r\n                                            e.preventDefault()\r\n                                        }\r\n                                    }}\r\n                                >\r\n                                    <span\r\n                                        className={cn(\r\n                                            feature.iconColor.light,\r\n                                            \"dark:\" + feature.iconColor.dark,\r\n                                            \"transition-colors duration-300\",\r\n                                        )}\r\n                                    >\r\n                                        Learn more\r\n                                    </span>\r\n                                    <ChevronRight\r\n                                        className={cn(\r\n                                            \"h-4 w-4 ml-1 transition-transform group-hover:translate-x-1\",\r\n                                            feature.iconColor.light,\r\n                                            \"dark:\" + feature.iconColor.dark,\r\n                                            \"transition-colors duration-300\",\r\n                                        )}\r\n                                        aria-hidden=\"true\"\r\n                                    />\r\n                                </motion.div>\r\n                            </div>\r\n                        </motion.div>\r\n                    ))}\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/features-showcase-4/page": {
      "content": "import FeaturesShowcase from \"./components/features-showcase\"\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div>\r\n            <FeaturesShowcase />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "login-1": {
    "components": {
      "@/registry/view/login-1/components/login-form": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  Card,\r\n  CardContent,\r\n  CardDescription,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport Link from \"next/link\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\nimport { FcGoogle } from \"react-icons/fc\"\r\nimport { FiEye, FiEyeOff } from \"react-icons/fi\"\r\n\r\nexport function LoginForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"div\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n\r\n  const togglePasswordVisibility = () => {\r\n    setShowPassword(!showPassword)\r\n  }\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <Card>\r\n        <CardHeader>\r\n          <CardTitle className=\"text-2xl\">Login</CardTitle>\r\n          <CardDescription>\r\n            Enter your email below to login to your account\r\n          </CardDescription>\r\n        </CardHeader>\r\n        <CardContent>\r\n          <form>\r\n            <div className=\"flex flex-col gap-6\">\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"email\">Email</Label>\r\n                <Input\r\n                  id=\"email\"\r\n                  type=\"email\"\r\n                  placeholder=\"m@example.com\"\r\n                  required\r\n                />\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <div className=\"flex items-center\">\r\n                  <Label htmlFor=\"password\">Password</Label>\r\n                  <a\r\n                    href=\"#\"\r\n                    className=\"ml-auto inline-block text-sm underline-offset-4 hover:underline\"\r\n                  >\r\n                    Forgot your password?\r\n                  </a>\r\n                </div>\r\n                <div className=\"relative\">\r\n                  <Input\r\n                    id=\"password\"\r\n                    type={showPassword ? \"text\" : \"password\"}\r\n                    required\r\n                  />\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"ghost\"\r\n                    size=\"sm\"\r\n                    className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                    onClick={togglePasswordVisibility}\r\n                    aria-label={\r\n                      showPassword ? \"Hide password\" : \"Show password\"\r\n                    }\r\n                  >\r\n                    {showPassword ? (\r\n                      <FiEyeOff className=\"h-4 w-4 text-gray-500\" />\r\n                    ) : (\r\n                      <FiEye className=\"h-4 w-4 text-gray-500\" />\r\n                    )}\r\n                    <span className=\"sr-only\">\r\n                      {showPassword ? \"Hide password\" : \"Show password\"}\r\n                    </span>\r\n                  </Button>\r\n                </div>\r\n              </div>\r\n              <Button type=\"submit\" className=\"w-full\">\r\n                Login\r\n              </Button>\r\n              <Button variant=\"outline\" className=\"w-full\">\r\n                <FcGoogle className=\"inline-block text-lg \" />\r\n                Login with Google\r\n              </Button>\r\n            </div>\r\n            <div className=\"mt-4 text-center text-sm\">\r\n              Don&apos;t have an account?{\" \"}\r\n              <Link\r\n                href=\"/view/signup-1\"\r\n                className=\"underline underline-offset-4\"\r\n              >\r\n                Sign up\r\n              </Link>\r\n            </div>\r\n          </form>\r\n        </CardContent>\r\n      </Card>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/login-1/page": {
      "content": "import Container from \"@/components/Container\"\r\nimport { LoginForm } from \"./components/login-form\"\r\n\r\nexport default function LogInPage() {\r\n  return (\r\n    <div className=\"flex min-h-svh w-full items-center justify-center p-6 md:p-10\">\r\n      <Container className=\"w-full max-w-sm\">\r\n        <LoginForm />\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "login-2": {
    "components": {
      "@/registry/view/login-2/components/login-form": {
        "content": "import { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent } from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { ArrowLeft, Eye, EyeOff } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { useState } from \"react\"\r\n\r\nexport function LoginForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentProps<\"div\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6 py-12\", className)} {...props}>\r\n      <Link\r\n        href=\"/\"\r\n        className=\"absolute top-4 left-4 text-foreground hover:text-primary transition-colors\"\r\n      >\r\n        <span className=\"flex items-center\">\r\n          <ArrowLeft className=\"mr-2 w-5 h-5\" />\r\n          Back to Home\r\n        </span>\r\n      </Link>\r\n      <Card className=\"overflow-hidden\">\r\n        <CardContent className=\"grid p-0 md:grid-cols-2\">\r\n          <form className=\"p-6 md:p-8\">\r\n            <div className=\"flex flex-col gap-6\">\r\n              <div className=\"flex flex-col items-center text-center\">\r\n                <h1 className=\"text-2xl font-bold\">Welcome back</h1>\r\n                <p className=\"text-balance text-muted-foreground\">\r\n                  Login to your Acme Inc account\r\n                </p>\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"email\">Email</Label>\r\n                <Input\r\n                  id=\"email\"\r\n                  type=\"email\"\r\n                  placeholder=\"m@example.com\"\r\n                  required\r\n                />\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <div className=\"flex items-center\">\r\n                  <Label htmlFor=\"password\">Password</Label>\r\n                  <Link\r\n                    href=\"#\"\r\n                    className=\"ml-auto text-sm underline-offset-2 hover:underline\"\r\n                  >\r\n                    Forgot your password?\r\n                  </Link>\r\n                </div>\r\n                <div className=\"relative\">\r\n                  <Input\r\n                    id=\"password\"\r\n                    type={showPassword ? \"text\" : \"password\"}\r\n                    required\r\n                  />\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"ghost\"\r\n                    size=\"sm\"\r\n                    className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                    onClick={togglePasswordVisibility}\r\n                    aria-label={\r\n                      showPassword ? \"Hide password\" : \"Show password\"\r\n                    }\r\n                  >\r\n                    {showPassword ? (\r\n                      <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                    ) : (\r\n                      <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                    )}\r\n                    <span className=\"sr-only\">\r\n                      {showPassword ? \"Hide password\" : \"Show password\"}\r\n                    </span>\r\n                  </Button>\r\n                </div>\r\n              </div>\r\n              <Button type=\"submit\" className=\"w-full\">\r\n                Login\r\n              </Button>\r\n              <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n                <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n                  Or continue with\r\n                </span>\r\n              </div>\r\n              <div className=\"grid grid-cols-3 gap-4\">\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                    <path\r\n                      d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Login with Apple</span>\r\n                </Button>\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                    <path\r\n                      d=\"M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Login with Google</span>\r\n                </Button>\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg\r\n                    xmlns=\"http://www.w3.org/2000/svg\"\r\n                    viewBox=\"0 0 24 24\"\r\n                    width={30}\r\n                    height={30}\r\n                  >\r\n                    <path\r\n                      d=\"M6.915 4.03c-1.968 0-3.683 1.28-4.871 3.113C.704 9.208 0 11.883 0 14.449c0 .706.07 1.369.21 1.973a6.624 6.624 0 0 0 .265.86 5.297 5.297 0 0 0 .371.761c.696 1.159 1.818 1.927 3.593 1.927 1.497 0 2.633-.671 3.965-2.444.76-1.012 1.144-1.626 2.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152 3.595c.724 1.21 1.665 2.556 2.47 3.314 1.046.987 1.992 1.22 3.06 1.22 1.075 0 1.876-.355 2.455-.843a3.743 3.743 0 0 0 .81-.973c.542-.939.861-2.127.861-3.745 0-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047 0-2.088.467-3.053 1.308-.652.57-1.257 1.29-1.82 2.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16 2.053c1.147 0 2.188.758 2.992 1.999 1.132 1.748 1.647 4.195 1.647 6.4 0 1.548-.368 2.9-1.839 2.9-.58 0-1.027-.23-1.664-1.004-.496-.601-1.343-1.878-2.832-4.358l-.617-1.028a44.908 44.908 0 0 0-1.255-1.98c.07-.109.141-.224.211-.327 1.12-1.667 2.118-2.602 3.358-2.602zm-10.201.553c1.265 0 2.058.791 2.675 1.446.307.327.737.871 1.234 1.579l-1.02 1.566c-.757 1.163-1.882 3.017-2.837 4.338-1.191 1.649-1.81 1.817-2.486 1.817-.524 0-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046 0-2.221.63-4.535 1.66-6.088.454-.687.964-1.226 1.533-1.533a2.264 2.264 0 0 1 1.088-.285z\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Login with Meta</span>\r\n                </Button>\r\n              </div>\r\n              <div className=\"text-center text-sm\">\r\n                Don&apos;t have an account?{\" \"}\r\n                <Link href=\"#\" className=\"underline underline-offset-4\">\r\n                  Sign up\r\n                </Link>\r\n              </div>\r\n            </div>\r\n          </form>\r\n          <div className=\"flex-1 hidden md:block relative\">\r\n            <img\r\n              src=\"/blocks/case-studies-1/image-1.jpg\"\r\n              alt=\"Art Lighting Showcase\"\r\n              className=\"absolute inset-0 h-full w-full object-cover\"\r\n            />\r\n            <div className=\"absolute inset-0 bg-background/60 backdrop-blur-sm flex flex-col justify-end p-8 text-foreground\">\r\n              <h2 className=\"text-3xl font-bold mb-2\">Join Alpha</h2>\r\n              <p className=\"text-sm\">\r\n                Create your account and Get your first custom MVP\r\n              </p>\r\n            </div>\r\n          </div>\r\n        </CardContent>\r\n      </Card>\r\n      <div className=\"text-balance text-center text-xs text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 hover:[&_a]:text-primary\">\r\n        By clicking continue, you agree to our{\" \"}\r\n        <Link href=\"#\">Terms of Service</Link> and{\" \"}\r\n        <Link href=\"#\">Privacy Policy</Link>.\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/login-2/page": {
      "content": "import Container from \"@/components/Container\"\r\nimport { LoginForm } from \"./components/login-form\"\r\n\r\nexport default function LogInPage() {\r\n  return (\r\n    <div className=\"flex min-h-svh flex-col items-center justify-center p-6 md:p-10 bg-gradient-to-br from-primary/20 via-background to-secondary/20\">\r\n      <Container className=\"w-full max-w-sm md:max-w-3xl\">\r\n        <LoginForm />\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "login-3": {
    "components": {
      "@/registry/view/login-3/components/login-form": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Eye, EyeOff } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { useState } from \"react\"\r\n\r\nexport function LoginForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"form\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n\r\n  return (\r\n    <form className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <div className=\"flex flex-col items-center gap-2 text-center\">\r\n        <h1 className=\"text-2xl font-bold\">Login to your account</h1>\r\n        <p className=\"text-balance text-sm text-muted-foreground\">\r\n          Enter your email below to login to your account\r\n        </p>\r\n      </div>\r\n      <div className=\"grid gap-6\">\r\n        <div className=\"grid gap-2\">\r\n          <Label htmlFor=\"email\">Email</Label>\r\n          <Input id=\"email\" type=\"email\" placeholder=\"m@example.com\" required />\r\n        </div>\r\n        <div className=\"grid gap-2\">\r\n          <div className=\"flex items-center\">\r\n            <Label htmlFor=\"password\">Password</Label>\r\n            <Link\r\n              href=\"#\"\r\n              className=\"ml-auto text-sm underline-offset-2 hover:underline\"\r\n            >\r\n              Forgot your password?\r\n            </Link>\r\n          </div>\r\n          <div className=\"relative\">\r\n            <Input\r\n              id=\"password\"\r\n              type={showPassword ? \"text\" : \"password\"}\r\n              required\r\n            />\r\n            <Button\r\n              type=\"button\"\r\n              variant=\"ghost\"\r\n              size=\"sm\"\r\n              className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n              onClick={togglePasswordVisibility}\r\n              aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n            >\r\n              {showPassword ? (\r\n                <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n              ) : (\r\n                <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n              )}\r\n              <span className=\"sr-only\">\r\n                {showPassword ? \"Hide password\" : \"Show password\"}\r\n              </span>\r\n            </Button>\r\n          </div>\r\n        </div>\r\n        <Button type=\"submit\" className=\"w-full\">\r\n          Login\r\n        </Button>\r\n        <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n          <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n            Or continue with\r\n          </span>\r\n        </div>\r\n        <Button variant=\"outline\" className=\"w-full\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\r\n              fill=\"currentColor\"\r\n            />\r\n          </svg>\r\n          Login with GitHub\r\n        </Button>\r\n      </div>\r\n      <div className=\"text-center text-sm\">\r\n        Don&apos;t have an account?{\" \"}\r\n        <a href=\"#\" className=\"underline underline-offset-4\">\r\n          Sign up\r\n        </a>\r\n      </div>\r\n    </form>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/login-3/page": {
      "content": "import { GalleryVerticalEnd } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { LoginForm } from \"./components/login-form\"\r\n\r\nexport default function LoginPage() {\r\n  return (\r\n    <div className=\"grid min-h-svh lg:grid-cols-2\">\r\n      <div className=\"flex flex-col gap-4 p-6 md:p-10\">\r\n        <div className=\"flex justify-center gap-2 md:justify-start\">\r\n          <Link href=\"#\" className=\"flex items-center gap-2 font-medium\">\r\n            <div className=\"flex h-6 w-6 items-center justify-center rounded-md bg-primary text-primary-foreground\">\r\n              <GalleryVerticalEnd className=\"size-4\" />\r\n            </div>\r\n            UniqueBrand.\r\n          </Link>\r\n        </div>\r\n        <div className=\"flex flex-1 items-center justify-center\">\r\n          <div className=\"w-full max-w-xs\">\r\n            <LoginForm />\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"relative hidden bg-muted lg:block\">\r\n        <img\r\n          src=\"/blocks/case-studies-1/image-1.jpg\"\r\n          alt=\"Image\"\r\n          className=\"absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale\"\r\n        />\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "login-4": {
    "components": {
      "@/registry/view/login-4/components/login-form": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Eye, EyeOff, GalleryVerticalEnd } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { useState } from \"react\"\r\n\r\nexport function LoginForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"div\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <form>\r\n        <div className=\"flex flex-col gap-6\">\r\n          <div className=\"flex flex-col items-center gap-2\">\r\n            <a\r\n              href=\"#\"\r\n              className=\"flex flex-col items-center gap-2 font-medium\"\r\n            >\r\n              <div className=\"flex h-8 w-8 items-center justify-center rounded-md\">\r\n                <GalleryVerticalEnd className=\"size-6\" />\r\n              </div>\r\n              <span className=\"sr-only\">Acme Inc.</span>\r\n            </a>\r\n            <h1 className=\"text-xl font-bold\">Welcome to Acme Inc.</h1>\r\n            <div className=\"text-center text-sm\">\r\n              Don&apos;t have an account?{\" \"}\r\n              <a href=\"#\" className=\"underline underline-offset-4\">\r\n                Sign up\r\n              </a>\r\n            </div>\r\n          </div>\r\n          <div className=\"flex flex-col gap-6\">\r\n            <div className=\"grid gap-2\">\r\n              <Label htmlFor=\"email\">Email</Label>\r\n              <Input\r\n                id=\"email\"\r\n                type=\"email\"\r\n                placeholder=\"m@example.com\"\r\n                required\r\n              />\r\n            </div>\r\n            <div className=\"grid gap-2\">\r\n              <div className=\"flex items-center\">\r\n                <Label htmlFor=\"password\">Password</Label>\r\n                <Link\r\n                  href=\"#\"\r\n                  className=\"ml-auto text-sm underline-offset-2 hover:underline\"\r\n                >\r\n                  Forgot your password?\r\n                </Link>\r\n              </div>\r\n              <div className=\"relative\">\r\n                <Input\r\n                  id=\"password\"\r\n                  type={showPassword ? \"text\" : \"password\"}\r\n                  required\r\n                />\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"ghost\"\r\n                  size=\"sm\"\r\n                  className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                  onClick={togglePasswordVisibility}\r\n                  aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n                >\r\n                  {showPassword ? (\r\n                    <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                  ) : (\r\n                    <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                  )}\r\n                  <span className=\"sr-only\">\r\n                    {showPassword ? \"Hide password\" : \"Show password\"}\r\n                  </span>\r\n                </Button>\r\n              </div>\r\n            </div>\r\n            <Button type=\"submit\" className=\"w-full\">\r\n              Login\r\n            </Button>\r\n          </div>\r\n          <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n            <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n              Or\r\n            </span>\r\n          </div>\r\n          <div className=\"grid gap-4 sm:grid-cols-2\">\r\n            <Button variant=\"outline\" className=\"w-full\">\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                <path\r\n                  d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"\r\n                  fill=\"currentColor\"\r\n                />\r\n              </svg>\r\n              Continue with Apple\r\n            </Button>\r\n            <Button variant=\"outline\" className=\"w-full\">\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                <path\r\n                  d=\"M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z\"\r\n                  fill=\"currentColor\"\r\n                />\r\n              </svg>\r\n              Continue with Google\r\n            </Button>\r\n          </div>\r\n        </div>\r\n      </form>\r\n      <div className=\"text-balance text-center text-xs text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 hover:[&_a]:text-primary  \">\r\n        By clicking continue, you agree to our <a href=\"#\">Terms of Service</a>{\" \"}\r\n        and <a href=\"#\">Privacy Policy</a>.\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/login-4/page": {
      "content": "import { LoginForm } from \"./components/login-form\"\r\n\r\nexport default function LoginPage() {\r\n  return (\r\n    <div className=\"flex min-h-svh flex-col items-center justify-center gap-6 bg-background p-6 md:p-10\">\r\n      <div className=\"w-full max-w-sm\">\r\n        <LoginForm />\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "mail-1": {
    "components": {
      "@/registry/view/mail-1/components/account-switcher": {
        "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n  Select,\n  SelectContent,\n  SelectItem,\n  SelectTrigger,\n  SelectValue,\n} from \"@/components/ui/select\"\n\ninterface AccountSwitcherProps {\n  isCollapsed: boolean\n  accounts: {\n    label: string\n    email: string\n    icon: React.ReactNode\n  }[]\n}\n\nexport function AccountSwitcher({\n  isCollapsed,\n  accounts,\n}: AccountSwitcherProps) {\n  const [selectedAccount, setSelectedAccount] = React.useState<string>(\n    accounts[0].email\n  )\n\n  return (\n    <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\n      <SelectTrigger\n        className={cn(\n          \"flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\",\n          isCollapsed &&\n            \"flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden\"\n        )}\n        aria-label=\"Select account\"\n      >\n        <SelectValue placeholder=\"Select an account\">\n          {accounts.find((account) => account.email === selectedAccount)?.icon}\n          <span className={cn(\"ml-2\", isCollapsed && \"hidden\")}>\n            {\n              accounts.find((account) => account.email === selectedAccount)\n                ?.label\n            }\n          </span>\n        </SelectValue>\n      </SelectTrigger>\n      <SelectContent>\n        {accounts.map((account) => (\n          <SelectItem key={account.email} value={account.email}>\n            <div className=\"flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0 [&_svg]:text-foreground\">\n              {account.icon}\n              {account.email}\n            </div>\n          </SelectItem>\n        ))}\n      </SelectContent>\n    </Select>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/mail-1/components/mail-display": {
        "content": "import {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { Switch } from \"@/components/ui/switch\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport {\n  Tooltip,\n  TooltipContent,\n  TooltipProvider,\n  TooltipTrigger,\n} from \"@/components/ui/tooltip\"\nimport { addDays, addHours, format, nextSaturday } from \"date-fns\"\nimport DOMPurify from 'dompurify'\nimport {\n  Archive,\n  ArchiveX,\n  Clock,\n  Forward,\n  MoreVertical,\n  Reply,\n  ReplyAll,\n  Trash2,\n} from \"lucide-react\"\nimport { Mail } from \"../data\"\n\ninterface MailDisplayProps {\n  mail: Mail | null\n}\n\nexport function MailDisplay({ mail }: MailDisplayProps) {\n  const today = new Date()\n\n  const sanitizeAndRenderHTML = (htmlContent: string) => {\n    const cleanHTML = DOMPurify.sanitize(htmlContent, {\n      ALLOWED_TAGS: ['p', 'br', 'strong', 'em', 'u', 'a', 'ul', 'ol', 'li', 'blockquote', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div'],\n      ALLOWED_ATTR: ['href', 'target', 'class', 'style'],\n      ALLOWED_URI_REGEXP: /^(?:(?:https?|mailto):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i\n    })\n\n    return { __html: cleanHTML }\n  }\n\n  const renderEmailContent = (content: string) => {\n    if (/<[a-z][\\s\\S]*>/i.test(content)) {\n      return (\n        <div\n          className=\"prose prose-sm max-w-none dark:prose-invert\"\n          dangerouslySetInnerHTML={sanitizeAndRenderHTML(content)}\n          // style={{\n          //   userSelect: 'text',\n          //   cursor: 'text',\n          //   WebkitUserSelect: 'text',\n          //   MozUserSelect: 'text',\n          //   msUserSelect: 'text'\n          // }}\n        />\n      )\n    }\n    return (\n      <div\n        className=\"whitespace-pre-wrap font-sans text-sm leading-relaxed\"\n        style={{\n          userSelect: 'text',\n          cursor: 'text',\n          WebkitUserSelect: 'text',\n          MozUserSelect: 'text',\n          msUserSelect: 'text'\n        }}\n      >\n        {content}\n      </div>\n    )\n  }\n\n  return (\n    <div className=\"flex h-full flex-col\">\n      <div className=\"flex items-center p-2\">\n        <div className=\"flex items-center gap-2\">\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <Archive className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Archive</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Archive</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <ArchiveX className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Move to junk</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Move to junk</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <Trash2 className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Move to trash</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Move to trash</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n          <Separator orientation=\"vertical\" className=\"mx-1 h-6\" />\n          <TooltipProvider>\n            <Tooltip>\n              <Popover>\n                <PopoverTrigger asChild>\n                  <TooltipTrigger asChild>\n                    <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                      <Clock className=\"h-4 w-4\" />\n                      <span className=\"sr-only\">Snooze</span>\n                    </Button>\n                  </TooltipTrigger>\n                </PopoverTrigger>\n                <PopoverContent className=\"flex w-[535px] p-0\">\n                  <div className=\"flex flex-col gap-2 border-r px-2 py-4\">\n                    <div className=\"px-4 text-sm font-medium\">Snooze until</div>\n                    <div className=\"grid min-w-[250px] gap-1\">\n                      <Button\n                        variant=\"ghost\"\n                        className=\"justify-start font-normal\"\n                      >\n                        Later today{\" \"}\n                        <span className=\"ml-auto text-muted-foreground\">\n                          {format(addHours(today, 4), \"E, h:m b\")}\n                        </span>\n                      </Button>\n                      <Button\n                        variant=\"ghost\"\n                        className=\"justify-start font-normal\"\n                      >\n                        Tomorrow\n                        <span className=\"ml-auto text-muted-foreground\">\n                          {format(addDays(today, 1), \"E, h:m b\")}\n                        </span>\n                      </Button>\n                      <Button\n                        variant=\"ghost\"\n                        className=\"justify-start font-normal\"\n                      >\n                        This weekend\n                        <span className=\"ml-auto text-muted-foreground\">\n                          {format(nextSaturday(today), \"E, h:m b\")}\n                        </span>\n                      </Button>\n                      <Button\n                        variant=\"ghost\"\n                        className=\"justify-start font-normal\"\n                      >\n                        Next week\n                        <span className=\"ml-auto text-muted-foreground\">\n                          {format(addDays(today, 7), \"E, h:m b\")}\n                        </span>\n                      </Button>\n                    </div>\n                  </div>\n                  <div className=\"p-2\">\n                    <Calendar />\n                  </div>\n                </PopoverContent>\n              </Popover>\n              <TooltipContent>Snooze</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n        </div>\n        <div className=\"ml-auto flex items-center gap-2\">\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <Reply className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Reply</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Reply</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <ReplyAll className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Reply all</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Reply all</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n          <TooltipProvider>\n            <Tooltip>\n              <TooltipTrigger asChild>\n                <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n                  <Forward className=\"h-4 w-4\" />\n                  <span className=\"sr-only\">Forward</span>\n                </Button>\n              </TooltipTrigger>\n              <TooltipContent>Forward</TooltipContent>\n            </Tooltip>\n          </TooltipProvider>\n        </div>\n        <Separator orientation=\"vertical\" className=\"mx-2 h-6\" />\n        <DropdownMenu>\n          <DropdownMenuTrigger asChild>\n            <Button variant=\"ghost\" size=\"icon\" disabled={!mail}>\n              <MoreVertical className=\"h-4 w-4\" />\n              <span className=\"sr-only\">More</span>\n            </Button>\n          </DropdownMenuTrigger>\n          <DropdownMenuContent align=\"end\">\n            <DropdownMenuItem>Mark as unread</DropdownMenuItem>\n            <DropdownMenuItem>Star thread</DropdownMenuItem>\n            <DropdownMenuItem>Add label</DropdownMenuItem>\n            <DropdownMenuItem>Mute thread</DropdownMenuItem>\n          </DropdownMenuContent>\n        </DropdownMenu>\n      </div>\n      <Separator />\n      {mail ? (\n        <div className=\"flex flex-1 flex-col\">\n          <div className=\"flex items-start p-4\">\n            <div className=\"flex items-start gap-4 text-sm\">\n              <Avatar>\n                <AvatarImage alt={mail.name} />\n                <AvatarFallback>\n                  {mail.name\n                    .split(\" \")\n                    .map((chunk) => chunk[0])\n                    .join(\"\")}\n                </AvatarFallback>\n              </Avatar>\n              <div className=\"grid gap-1\">\n                <div className=\"font-semibold\">{mail.name}</div>\n                <div className=\"line-clamp-1 text-xs\">{mail.subject}</div>\n                <div className=\"line-clamp-1 text-xs\">\n                  <span className=\"font-medium\">Reply-To:</span> {mail.email}\n                </div>\n              </div>\n            </div>\n            {mail.date && (\n              <div className=\"ml-auto text-xs text-muted-foreground\">\n                {format(new Date(mail.date), \"PPpp\")}\n              </div>\n            )}\n          </div>\n          <Separator />\n          <ScrollArea className=\"h-[18rem]\">\n            <div className=\"p-4\">\n              {renderEmailContent(mail.text)}\n            </div>\n          </ScrollArea>\n          <Separator className=\"mt-auto\" />\n          <div className=\"p-4\">\n            <form>\n              <div className=\"grid gap-4\">\n                <Textarea\n                  className=\"p-4\"\n                  placeholder={`Reply ${mail.name}...`}\n                />\n                <div className=\"flex items-center\">\n                  <Label\n                    htmlFor=\"mute\"\n                    className=\"flex items-center gap-2 text-xs font-normal\"\n                  >\n                    <Switch size=\"sm\" id=\"mute\" aria-label=\"Mute thread\" /> Mute this\n                    thread\n                  </Label>\n                  <Button\n                    onClick={(e) => e.preventDefault()}\n                    size=\"sm\"\n                    className=\"ml-auto\"\n                  >\n                    Send\n                  </Button>\n                </div>\n              </div>\n            </form>\n          </div>\n        </div>\n      ) : (\n        <div className=\"p-8 text-center text-muted-foreground\">\n          No message selected\n        </div>\n      )}\n    </div>\n  )\n}",
        "language": "tsx"
      },
      "@/registry/view/mail-1/components/mail-list": {
        "content": "import { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from \"@/components/ui/drawer\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { formatDistanceToNow } from \"date-fns\"\nimport React, { ComponentProps } from \"react\"\nimport { Mail } from \"../data\"\nimport { useMail } from \"../use-mail\"\nimport { MailDisplay } from \"./mail-display\"\ninterface MailListProps {\n  items: Mail[]\n}\n\nexport function MailList({ items }: MailListProps) {\n  const [mail, setMail] = useMail()\n  const [open, setOpen] = React.useState(false)\n  const selectedItem = items.find((item) => item.id === mail.selected)\n\n  return (\n    <ScrollArea className=\"h-screen\">\n      <div className=\"flex flex-col gap-2 p-4 pt-0\">\n        {items.map((item) => (\n          <button\n            key={item.id}\n            type=\"button\"\n            className={cn(\n              \"flex flex-col items-start gap-2 rounded-lg border p-3 text-left text-sm transition-all hover:bg-accent cursor-pointer w-full\",\n              mail.selected === item.id && \"bg-muted\"\n            )}\n            onClick={() => {\n              setMail({\n                ...mail,\n                selected: item.id,\n              })\n              setOpen(true)\n            }}\n          >\n            <div className=\"flex w-full flex-col gap-1\">\n              <div className=\"flex items-center\">\n                <div className=\"flex items-center gap-2\">\n                  <div className=\"font-semibold\">{item.name}</div>\n                  {!item.read && (\n                    <span className=\"flex h-2 w-2 rounded-full bg-blue-600\" />\n                  )}\n                </div>\n                <div\n                  className={cn(\n                    \"ml-auto text-xs\",\n                    mail.selected === item.id\n                      ? \"text-foreground\"\n                      : \"text-muted-foreground\"\n                  )}\n                >\n                  {formatDistanceToNow(new Date(item.date), {\n                    addSuffix: true,\n                  })}\n                </div>\n              </div>\n              <div className=\"text-xs font-medium\">{item.subject}</div>\n            </div>\n            <div className=\"line-clamp-2 text-xs text-muted-foreground\">\n              {item.text.substring(0, 300)}\n            </div>\n            {item.labels.length ? (\n              <div className=\"flex items-center gap-2\">\n                {item.labels.map((label) => (\n                  <Badge key={label} variant={getBadgeVariantFromLabel(label)}>\n                    {label}\n                  </Badge>\n                ))}\n              </div>\n            ) : null}\n          </button>\n        ))}\n      </div>\n      <Drawer open={open} onOpenChange={setOpen}>\n        <DrawerContent className=\"h-[90%]\">\n          <DrawerHeader className=\"sr-only\">\n            <DrawerTitle>Email Details</DrawerTitle>\n            <DrawerDescription>View email details</DrawerDescription>\n          </DrawerHeader>\n          <div className=\"flex-1 overflow-hidden\">\n            {selectedItem && <MailDisplay mail={selectedItem} />}\n          </div>\n        </DrawerContent>\n      </Drawer>\n    </ScrollArea>\n  )\n}\n\nfunction getBadgeVariantFromLabel(\n  label: string\n): ComponentProps<typeof Badge>[\"variant\"] {\n  if ([\"work\"].includes(label.toLowerCase())) {\n    return \"default\"\n  }\n\n  if ([\"personal\"].includes(label.toLowerCase())) {\n    return \"outline\"\n  }\n\n  return \"secondary\"\n}\n",
        "language": "tsx"
      },
      "@/registry/view/mail-1/components/mail": {
        "content": "\"use client\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"@/components/ui/resizable\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { TooltipProvider } from \"@/components/ui/tooltip\"\nimport { cn } from \"@/lib/utils\"\nimport {\n  AlertCircle,\n  Archive,\n  ArchiveX,\n  File,\n  Inbox,\n  MessagesSquare,\n  Moon,\n  Search,\n  Send,\n  ShoppingCart,\n  Sun,\n  Trash2,\n  Users2,\n} from \"lucide-react\"\nimport * as React from \"react\"\nimport type { Mail } from \"../data\"\nimport { AccountSwitcher } from \"./account-switcher\"\nimport { MailList } from \"./mail-list\"\nimport { Nav } from \"./nav\"\n\ninterface MailProps {\n  accounts: {\n    label: string\n    email: string\n    icon: React.ReactNode\n  }[]\n  mails: Mail[]\n  defaultLayout: number[] | undefined\n  defaultCollapsed?: boolean\n  navCollapsedSize: number\n}\n\nexport function MailComponent({\n  accounts,\n  mails,\n  defaultLayout = [20, 80],\n  defaultCollapsed = false,\n  navCollapsedSize,\n}: MailProps) {\n  const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)\n  const [isDark, setIsDark] = React.useState(false)\n\n  React.useEffect(() => {\n    const theme =\n      localStorage.getItem(\"theme\") || (window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\")\n    setIsDark(theme === \"dark\")\n  }, [])\n\n  const toggleDarkMode = () => {\n    const newIsDark = !isDark\n    setIsDark(newIsDark)\n    if (newIsDark) {\n      document.documentElement.classList.add(\"dark\")\n      localStorage.setItem(\"theme\", \"dark\")\n    } else {\n      document.documentElement.classList.remove(\"dark\")\n      localStorage.setItem(\"theme\", \"light\")\n    }\n  }\n\n  return (\n    <TooltipProvider delayDuration={0}>\n      <ResizablePanelGroup\n        direction=\"horizontal\"\n        onLayout={(sizes: number[]) => {\n          document.cookie = `react-resizable-panels:layout:mail=${JSON.stringify(sizes)}`\n        }}\n        className=\"h-full max-h-[800px] items-stretch\"\n      >\n        <ResizablePanel\n          defaultSize={defaultLayout[0]}\n          collapsedSize={navCollapsedSize}\n          collapsible={true}\n          minSize={15}\n          maxSize={20}\n          onCollapse={() => {\n            setIsCollapsed(true)\n            document.cookie = `react-resizable-panels:collapsed=${JSON.stringify(true)}`\n          }}\n          onResize={() => {\n            setIsCollapsed(false)\n            document.cookie = `react-resizable-panels:collapsed=${JSON.stringify(false)}`\n          }}\n          className={cn(\n            \"bg-sidebar transition-all duration-300 ease-in-out flex flex-col\",\n            isCollapsed && \"min-w-[50px]\",\n          )}\n        >\n          <div\n            className={cn(\n              \"flex h-[60px] items-center justify-between border-b border-sidebar-border px-4\",\n              isCollapsed ? \"justify-center px-2\" : \"\",\n            )}\n          >\n            <div className={cn(\"flex-1\", isCollapsed && \"hidden\")}>\n              <AccountSwitcher isCollapsed={isCollapsed} accounts={accounts} />\n            </div>\n            {isCollapsed && <AccountSwitcher isCollapsed={isCollapsed} accounts={accounts} />}\n          </div>\n          <Separator className=\"bg-sidebar-border\" />\n          <Nav\n            isCollapsed={isCollapsed}\n            links={[\n              {\n                title: \"Inbox\",\n                label: \"128\",\n                icon: Inbox,\n                variant: \"default\",\n              },\n              {\n                title: \"Drafts\",\n                label: \"9\",\n                icon: File,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Sent\",\n                label: \"\",\n                icon: Send,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Junk\",\n                label: \"23\",\n                icon: ArchiveX,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Trash\",\n                label: \"\",\n                icon: Trash2,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Archive\",\n                label: \"\",\n                icon: Archive,\n                variant: \"ghost\",\n              },\n            ]}\n          />\n          <Separator className=\"bg-sidebar-border\" />\n          <Nav\n            isCollapsed={isCollapsed}\n            links={[\n              {\n                title: \"Social\",\n                label: \"972\",\n                icon: Users2,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Updates\",\n                label: \"342\",\n                icon: AlertCircle,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Forums\",\n                label: \"128\",\n                icon: MessagesSquare,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Shopping\",\n                label: \"8\",\n                icon: ShoppingCart,\n                variant: \"ghost\",\n              },\n              {\n                title: \"Promotions\",\n                label: \"21\",\n                icon: Archive,\n                variant: \"ghost\",\n              },\n            ]}\n          />\n          <div className=\"mt-auto border-t border-sidebar-border p-3\">\n            <Button\n              variant=\"ghost\"\n              size=\"sm\"\n              onClick={toggleDarkMode}\n              className=\"w-full justify-start gap-2 text-sidebar-foreground hover:bg-sidebar-accent transition-colors\"\n              aria-label={isDark ? \"Switch to light mode\" : \"Switch to dark mode\"}\n            >\n              {isDark ? (\n                <>\n                  <Sun className=\"h-4 w-4\" />\n                  <span className={cn(\"text-sm\", isCollapsed && \"hidden\")}>Light</span>\n                </>\n              ) : (\n                <>\n                  <Moon className=\"h-4 w-4\" />\n                  <span className={cn(\"text-sm\", isCollapsed && \"hidden\")}>Dark</span>\n                </>\n              )}\n            </Button>\n          </div>\n        </ResizablePanel>\n        <ResizableHandle withHandle />\n        <ResizablePanel defaultSize={defaultLayout[1]} minSize={30} className=\"flex flex-col\">\n          <Tabs defaultValue=\"all\" className=\"flex h-full flex-col\">\n            <div className=\"flex flex-col gap-4 border-b border-border px-4 py-4 sm:flex-row sm:items-center sm:justify-between sm:px-6 sm:py-5\">\n              <div className=\"bg-card/50 backdrop-blur-sm\">\n                <form>\n                  <div className=\"relative\">\n                    <Search className=\"absolute left-3 top-3 h-4 w-4 text-muted-foreground\" />\n                    <Input\n                      placeholder=\"Search messages...\"\n                      className=\"border-border bg-background pl-10 text-sm placeholder:text-muted-foreground focus:ring-1 transition-all\"\n                      aria-label=\"Search messages\"\n                    />\n                  </div>\n                </form>\n              </div>\n              <TabsList className=\"bg-muted w-full sm:w-auto\">\n                <TabsTrigger value=\"all\" className=\"text-sm font-medium transition-colors\">\n                  All mail\n                </TabsTrigger>\n                <TabsTrigger value=\"unread\" className=\"text-sm font-medium transition-colors\">\n                  Unread\n                </TabsTrigger>\n              </TabsList>\n            </div>\n            <TabsContent value=\"all\" className=\"m-0 flex-1 overflow-hidden\">\n              <MailList items={mails} />\n            </TabsContent>\n            <TabsContent value=\"unread\" className=\"m-0 flex-1 overflow-hidden\">\n              <MailList items={mails.filter((item) => !item.read)} />\n            </TabsContent>\n          </Tabs>\n        </ResizablePanel>\n      </ResizablePanelGroup>\n    </TooltipProvider>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/mail-1/components/nav": {
        "content": "\"use client\"\n\nimport { buttonVariants } from \"@/components/ui/button\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/ui/tooltip\"\nimport { cn } from \"@/lib/utils\"\nimport type { LucideIcon } from \"lucide-react\"\nimport Link from \"next/link\"\n\ninterface NavProps {\n  isCollapsed: boolean\n  links: {\n    title: string\n    label?: string\n    icon: LucideIcon\n    variant: \"default\" | \"ghost\"\n  }[]\n}\n\nexport function Nav({ links, isCollapsed }: NavProps) {\n  return (\n    <div\n      data-collapsed={isCollapsed}\n      className=\"group flex flex-col gap-4 py-3 data-[collapsed=true]:py-2 flex-1 overflow-y-auto\"\n    >\n      <TooltipProvider>\n        <nav className=\"grid gap-1 px-3 group-[[data-collapsed=true]]:justify-center group-[[data-collapsed=true]]:px-2\">\n          {links.map((link, index) =>\n            isCollapsed ? (\n              <Tooltip key={index} delayDuration={0}>\n                <TooltipTrigger asChild>\n                  <Link\n                    href=\"#\"\n                    className={cn(\n                      buttonVariants({ variant: link.variant, size: \"icon\" }),\n                      \"h-9 w-9 transition-all duration-200 hover:shadow-sm\",\n                      link.variant === \"default\" &&\n                      \"bg-sidebar-primary text-sidebar-primary-foreground hover:bg-sidebar-primary/90\",\n                    )}\n                    aria-label={link.title}\n                  >\n                    <link.icon className=\"h-4 w-4\" />\n                    <span className=\"sr-only\">{link.title}</span>\n                  </Link>\n                </TooltipTrigger>\n                <TooltipContent side=\"right\" className=\"flex items-center gap-4 animate-scale-in\">\n                  {link.title}\n                  {link.label && <span className=\"ml-auto text-muted-foreground text-xs\">{link.label}</span>}\n                </TooltipContent>\n              </Tooltip>\n            ) : (\n              <Link\n                key={index}\n                href=\"#\"\n                className={cn(\n                  buttonVariants({ variant: link.variant, size: \"sm\" }),\n                  \"justify-start transition-all duration-200 text-sm font-medium hover:shadow-sm\",\n                  link.variant === \"default\" &&\n                  \"bg-sidebar-primary text-sidebar-primary-foreground hover:bg-sidebar-primary/90\",\n                  link.variant === \"ghost\" && \"hover:bg-sidebar-accent text-sidebar-foreground\",\n                )}\n                aria-label={link.title}\n              >\n                <link.icon className=\"mr-2 h-4 w-4\" />\n                {link.title}\n                {link.label && (\n                  <span\n                    className={cn(\n                      \"ml-auto text-xs\",\n                      link.variant === \"default\" && \"text-sidebar-primary-foreground/80\",\n                    )}\n                  >\n                    {link.label}\n                  </span>\n                )}\n              </Link>\n            ),\n          )}\n        </nav>\n      </TooltipProvider>\n    </div>\n  )\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/mail-1/page": {
      "content": "import { MailComponent } from \"./components/mail\";\nimport { accounts, mails } from \"./data\";\nimport Image from \"next/image\";\n\nexport default function Page() {\n  return (\n    <>\n      <section className=\"border-border/50 -mx-4 overflow-hidden rounded-lg md:hidden px-2\">\n        <Image\n          src=\"/block-mokeup/dashboard-3-light.png\"\n          width={1200}\n          height={875}\n          alt=\"Dashboard\"\n          className=\"block dark:hidden\"\n          priority\n        />\n        <Image\n          src=\"/block-mokeup/dashboard-3-dark.png\"\n          width={1200}\n          height={875}\n          alt=\"Dashboard\"\n          className=\"hidden dark:block\"\n          priority\n        />\n      </section>\n      <main className=\"h-screen w-full md:block hidden\">\n        <MailComponent\n          accounts={accounts}\n          mails={mails}\n          defaultLayout={[20, 80]}\n          defaultCollapsed={false}\n          navCollapsedSize={4}\n        />\n      </main>\n    </>\n  )\n}\n",
      "language": "tsx"
    }
  },
  "navbar-1": {
    "components": {
      "@/registry/view/navbar-1/components/navbar": {
        "content": "import Link from \"next/link\"\r\nimport { Menu } from \"lucide-react\"\r\n\r\nimport {\r\n  NavigationMenu,\r\n  NavigationMenuContent,\r\n  NavigationMenuItem,\r\n  NavigationMenuLink,\r\n  NavigationMenuList,\r\n  NavigationMenuTrigger,\r\n} from \"@/components/ui/navigation-menu\"\r\nimport {\r\n  Accordion,\r\n  AccordionContent,\r\n  AccordionItem,\r\n  AccordionTrigger,\r\n} from \"@/components/ui/accordion\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  Sheet,\r\n  SheetContent,\r\n  SheetHeader,\r\n  SheetTitle,\r\n  SheetTrigger,\r\n} from \"@/components/ui/sheet\"\r\n\r\nimport {\r\n  defaultAuth,\r\n  defaultLogo,\r\n  defaultMenu,\r\n  defaultMobileExtraLinks,\r\n  MenuItem,\r\n} from \"../constant\"\r\n\r\ninterface NavbarProps {\r\n  logo?: {\r\n    url: string\r\n    alt: string\r\n    title: string\r\n  }\r\n  menu?: MenuItem[]\r\n  mobileExtraLinks?: {\r\n    name: string\r\n    url: string\r\n  }[]\r\n  auth?: {\r\n    login: {\r\n      text: string\r\n      url: string\r\n    }\r\n    signup: {\r\n      text: string\r\n      url: string\r\n    }\r\n  }\r\n}\r\n\r\nconst Navbar = ({\r\n  logo = defaultLogo,\r\n  menu = defaultMenu,\r\n  mobileExtraLinks = defaultMobileExtraLinks,\r\n  auth = defaultAuth,\r\n}: NavbarProps) => {\r\n  return (\r\n    <section className=\"py-4 border-b\">\r\n      <div className=\"container\">\r\n        {/* Desktop Navigation */}\r\n        <nav className=\"hidden justify-between lg:flex\">\r\n          <div className=\"flex items-center gap-6\">\r\n            <Link href={logo.url} className=\"flex items-center gap-2\">\r\n              <span className=\"text-lg font-semibold\">{logo.title}</span>\r\n            </Link>\r\n            <NavigationMenu>\r\n              <NavigationMenuList>\r\n                {menu.map((item) => renderMenuItem(item))}\r\n              </NavigationMenuList>\r\n            </NavigationMenu>\r\n          </div>\r\n          <div className=\"flex gap-2\">\r\n            <Button variant=\"outline\">{auth.login.text}</Button>\r\n            <Button>{auth.signup.text}</Button>\r\n          </div>\r\n        </nav>\r\n\r\n        {/* Mobile Navigation */}\r\n        <div className=\"block lg:hidden\">\r\n          <div className=\"flex items-center justify-between\">\r\n            <Link href={logo.url} className=\"flex items-center gap-2\">\r\n              <span className=\"text-lg font-semibold\">{logo.title}</span>\r\n            </Link>\r\n            <Sheet>\r\n              <SheetTrigger asChild>\r\n                <Button variant=\"outline\" size=\"icon\">\r\n                  <Menu className=\"h-5 w-5\" />\r\n                </Button>\r\n              </SheetTrigger>\r\n              <SheetContent className=\"overflow-y-auto\">\r\n                <SheetHeader>\r\n                  <SheetTitle>\r\n                    <Link href={logo.url} className=\"flex items-center gap-2\">\r\n                      <span className=\"text-lg font-semibold\">\r\n                        {logo.title}\r\n                      </span>\r\n                    </Link>\r\n                  </SheetTitle>\r\n                </SheetHeader>\r\n                <div className=\"my-6 flex flex-col gap-6\">\r\n                  <Accordion type=\"single\" collapsible className=\"w-full\">\r\n                    {menu.map((item) => renderMobileMenuItem(item))}\r\n                  </Accordion>\r\n                  <div className=\"border-t py-4\">\r\n                    <div className=\"grid grid-cols-2 gap-2\">\r\n                      {mobileExtraLinks.map((link, idx) => (\r\n                        <Link\r\n                          key={idx}\r\n                          className=\"inline-flex items-center justify-center rounded-md px-4 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-accent-foreground\"\r\n                          href={link.url}\r\n                        >\r\n                          {link.name}\r\n                        </Link>\r\n                      ))}\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"flex flex-col gap-3\">\r\n                    <Button variant=\"outline\">{auth.login.text}</Button>\r\n                    <Button>{auth.signup.text}</Button>\r\n                  </div>\r\n                </div>\r\n              </SheetContent>\r\n            </Sheet>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </section>\r\n  )\r\n}\r\n\r\nconst renderMenuItem = (item: MenuItem) => {\r\n  if (item.items) {\r\n    return (\r\n      <NavigationMenuItem key={item.title}>\r\n        <NavigationMenuTrigger>{item.title}</NavigationMenuTrigger>\r\n        <NavigationMenuContent>\r\n          <ul className=\"w-80 p-3\">\r\n            {item.items.map((subItem) => (\r\n              <li key={subItem.title}>\r\n                <NavigationMenuLink asChild>\r\n                  <Link\r\n                    className=\"flex items-center gap-4 rounded-md p-3 transition-colors hover:bg-muted hover:text-accent-foreground\"\r\n                    href={subItem.url}\r\n                  >\r\n                    {subItem.icon}\r\n                    <div>\r\n                      <div className=\"text-sm font-semibold\">\r\n                        {subItem.title}\r\n                      </div>\r\n                      {subItem.description && (\r\n                        <p className=\"text-sm text-muted-foreground\">\r\n                          {subItem.description}\r\n                        </p>\r\n                      )}\r\n                    </div>\r\n                  </Link>\r\n                </NavigationMenuLink>\r\n              </li>\r\n            ))}\r\n          </ul>\r\n        </NavigationMenuContent>\r\n      </NavigationMenuItem>\r\n    )\r\n  }\r\n\r\n  return (\r\n    <NavigationMenuItem key={item.title}>\r\n      <NavigationMenuLink asChild>\r\n        <Link\r\n          className=\"group inline-flex items-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-accent-foreground\"\r\n          href={item.url}\r\n        >\r\n          {item.title}\r\n        </Link>\r\n      </NavigationMenuLink>\r\n    </NavigationMenuItem>\r\n  )\r\n}\r\n\r\nconst renderMobileMenuItem = (item: MenuItem) => {\r\n  if (item.items) {\r\n    return (\r\n      <AccordionItem key={item.title} value={item.title} className=\"border-b-0\">\r\n        <AccordionTrigger className=\"py-2 font-semibold\">\r\n          {item.title}\r\n        </AccordionTrigger>\r\n        <AccordionContent className=\"mt-2 flex flex-col gap-2\">\r\n          {item.items.map((subItem) => (\r\n            <Link\r\n              key={subItem.title}\r\n              className=\"flex items-center gap-4 rounded-md p-3 transition-colors hover:bg-muted hover:text-accent-foreground\"\r\n              href={subItem.url}\r\n            >\r\n              {subItem.icon}\r\n              <div>\r\n                <div className=\"text-sm font-semibold\">{subItem.title}</div>\r\n                {subItem.description && (\r\n                  <p className=\"text-sm text-muted-foreground\">\r\n                    {subItem.description}\r\n                  </p>\r\n                )}\r\n              </div>\r\n            </Link>\r\n          ))}\r\n        </AccordionContent>\r\n      </AccordionItem>\r\n    )\r\n  }\r\n\r\n  return (\r\n    <div key={item.title} className=\"py-2\">\r\n      <Link className=\"font-semibold\" href={item.url}>\r\n        {item.title}\r\n      </Link>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default Navbar\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/navbar-1/constant/index": {
        "content": "import { Book, Sunset, Trees, Zap } from \"lucide-react\"\r\n\r\nexport interface MenuItem {\r\n  title: string\r\n  url: string\r\n  description?: string\r\n  icon?: React.ReactNode\r\n  items?: MenuItem[]\r\n}\r\n\r\nexport const defaultLogo = {\r\n  url: \"https://uniquebrand.com\",\r\n  alt: \"UniqueBrand Logo\",\r\n  title: \"UniqueBrand\",\r\n}\r\n\r\nexport const defaultMenu: MenuItem[] = [\r\n  { title: \"Dashboard\", url: \"/\" },\r\n  {\r\n    title: \"Services\",\r\n    url: \"#\",\r\n    items: [\r\n      {\r\n        title: \"Web Development\",\r\n        description: \"Responsive and modern websites\",\r\n        icon: <Zap className=\"h-5 w-5 shrink-0\" />,\r\n        url: \"/services/web-development\",\r\n      },\r\n      {\r\n        title: \"Mobile Apps\",\r\n        description: \"Innovative mobile solutions\",\r\n        icon: <Sunset className=\"h-5 w-5 shrink-0\" />,\r\n        url: \"/services/mobile-apps\",\r\n      },\r\n      {\r\n        title: \"UI/UX Design\",\r\n        description: \"User-centered design experiences\",\r\n        icon: <Book className=\"h-5 w-5 shrink-0\" />,\r\n        url: \"/services/library-ux-design\",\r\n      },\r\n      {\r\n        title: \"Consulting\",\r\n        description: \"Expert advice to grow your business\",\r\n        icon: <Trees className=\"h-5 w-5 shrink-0\" />,\r\n        url: \"/services/consulting\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    title: \"About Us\",\r\n    url: \"/about\",\r\n  },\r\n  {\r\n    title: \"Contact\",\r\n    url: \"/contact\",\r\n  },\r\n  {\r\n    title: \"Blog\",\r\n    url: \"/blog\",\r\n  },\r\n]\r\n\r\nexport const defaultMobileExtraLinks = [\r\n  { name: \"Privacy Policy\", url: \"/privacy\" },\r\n  { name: \"Terms of Use\", url: \"/terms\" },\r\n  { name: \"Support\", url: \"/support\" },\r\n  { name: \"Careers\", url: \"/careers\" },\r\n]\r\n\r\nexport const defaultAuth = {\r\n  login: { text: \"Sign In\", url: \"/login\" },\r\n  signup: { text: \"Register\", url: \"/register\" },\r\n}\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/navbar-1/page": {
      "content": "import Navbar from \"./components/navbar\"\r\n\r\nconst page = () => {\r\n  return <Navbar />\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "new-collection-1": {
    "components": {
      "@/registry/view/new-collection-1/components/new-collection": {
        "content": "\"use client\"\r\n\r\nimport React, { useEffect, useRef } from \"react\"\r\nimport Link from \"next/link\"\r\nimport { gsap } from \"gsap\"\r\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\"\r\n\r\nimport Container from \"@/components/Container\"\r\n\r\ngsap.registerPlugin(ScrollTrigger)\r\nconst NewCollection = () => {\r\n  const sectionRef = useRef(null)\r\n  useEffect(() => {\r\n    const boxes = sectionRef.current.querySelectorAll(\".animate-box\")\r\n    boxes.forEach((box) => {\r\n      const button = box.querySelector(\".animate-button\")\r\n      const image = box.querySelector(\".animate-image\")\r\n      const text = box.querySelector(\".animate-text\")\r\n      const tl = gsap.timeline({\r\n        scrollTrigger: {\r\n          trigger: box,\r\n          start: \"top 80%\",\r\n          end: \"top 60%\",\r\n        },\r\n      })\r\n      tl.fromTo(\r\n        button,\r\n        {\r\n          opacity: 0,\r\n          scale: 0.5,\r\n        },\r\n        {\r\n          opacity: 1,\r\n          scale: 1,\r\n          duration: 0.5,\r\n          ease: \"power1.inOut\",\r\n        }\r\n      )\r\n        .fromTo(\r\n          image,\r\n          {\r\n            opacity: 0,\r\n            y: 20,\r\n          },\r\n          {\r\n            opacity: 1,\r\n            y: 0,\r\n            duration: 1,\r\n          },\r\n          \"-=0.2\"\r\n        )\r\n        .fromTo(\r\n          text,\r\n          {\r\n            opacity: 0,\r\n            y: 20,\r\n          },\r\n          {\r\n            opacity: 1,\r\n            y: 0,\r\n            duration: 1,\r\n          },\r\n          \"-=0.5\"\r\n        )\r\n    })\r\n  }, [])\r\n  return (\r\n    <section ref={sectionRef} className=\"py-12 md:py-24 lg:py-32 \">\r\n      <Container>\r\n        <div className=\"flex md:flex-row flex-col  items-start\">\r\n          <div className=\"w-full flex justify-between flex-col md:mb-0 mb-20 space-y-3\">\r\n            <Link className=\"animate-box\" href=\"Collection/spot\">\r\n              <div className=\"relative\">\r\n                <img\r\n                  alt=\"Line Up/Down LED Suspended Lamp\"\r\n                  className=\"object-cover w-full h-54 md:h-[500px] rounded-lg animate-image\"\r\n                  src=\"/blocks/new-collection/new-collection-3.jpg\"\r\n                />\r\n                <div\r\n                  className={`py-2 px-4 select-none bg-[linear-gradient(90deg,_transparent_0%,_#ffb96914_90%)] inline-flex w-fit items-center whitespace-nowrap rounded-full border text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent text-secondary dark:text-secondary-foreground absolute top-0 right-0 mt-4 mr-4 shadow-lg backdrop-blur-[6px] overflow-hidden  `}\r\n                >\r\n                  <p className=\"overflow-hidden\">NEW</p>\r\n                </div>\r\n              </div>\r\n              <div className=\"my-4 animate-text\">\r\n                <h2 className=\"text-sm sm:text-lg md:text-xl lg:text-2xl xl:text-3xl text-muted-foreground font-bold uppercase\">\r\n                  Halo — LED Ring Suspended Lamp\r\n                </h2>\r\n                <p className=\"block mt-2 text-sm sm:text-base md:text-lg hover:underline font-medium\">\r\n                  Discover more\r\n                </p>\r\n              </div>\r\n            </Link>\r\n            <Link className=\"animate-box\" href=\"Collection/hallo\">\r\n              <div className=\"relative\">\r\n                <img\r\n                  alt=\"Line Up/Down LED Suspended Lamp\"\r\n                  className=\"object-cover w-full h-55 md:h-[500px] rounded-lg animate-image\"\r\n                  src=\"/blocks/new-collection/new-collection-2.jpg\"\r\n                />\r\n                <div\r\n                  className={`py-2 px-4 select-none backdrop-blur-sm inline-flex text-[#fff] dark:text-secondary-foreground w-fit items-center whitespace-nowrap rounded-full border text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent text-secondary absolute top-0 right-0 mt-4 mr-4 shadow-lg overflow-hidden`}\r\n                >\r\n                  <p className=\"overflow-hidden\">NEW</p>\r\n                </div>\r\n              </div>\r\n              <div className=\"mt-4 animate-text absolute\">\r\n                <h2 className=\"text-muted-foreground text-sm sm:text-lg md:text-xl lg:text-2xl xl:text-3xl  font-bold uppercase\">\r\n                  Halo — LED Ring Suspended Lamp\r\n                </h2>\r\n                <p className=\"block mt-2 text-sm sm:text-base md:text-lg hover:underline  font-medium\">\r\n                  Discover more\r\n                </p>\r\n              </div>\r\n            </Link>\r\n          </div>\r\n          <Link\r\n            className=\"w-full animate-box  md:mt-0 md:ml-10\"\r\n            href=\"Collection/track\"\r\n          >\r\n            <div className=\"relative\">\r\n              <img\r\n                alt=\"Line Up/Down LED Suspended Lamp\"\r\n                className=\"object-cover w-full h-auto md:h-[500px] lg:h-[750px] rounded-lg animate-image\"\r\n                src=\"/blocks/new-collection/new-collection-1.jpg\"\r\n              />\r\n              <div\r\n                className={`py-2 px-4 select-none  bg-[linear-gradient(90deg,_transparent_0%,_#ffb96914_90%)] inline-flex text-[#FFF] dark:text-secondary-foreground w-fit items-center whitespace-nowrap rounded-full border text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent text-secondary absolute top-0 right-0 mt-4 mr-4 shadow-lg backdrop-blur-[6px] overflow-hidden  `}\r\n              >\r\n                <p className=\"overflow-hidden\">NEW</p>\r\n              </div>\r\n            </div>\r\n            <div className=\"mt-4 animate-text\">\r\n              <h2 className=\"text-sm sm:text-lg md:text-xl text-muted-foreground lg:text-2xl xl:text-3xl  font-bold uppercase\">\r\n                Line — Up/Down LED Suspended Lamp\r\n              </h2>\r\n              <p className=\"block mt-2 text-sm sm:text-base md:text-lg hover:underline  font-medium\">\r\n                Discover more\r\n              </p>\r\n            </div>\r\n          </Link>\r\n        </div>\r\n      </Container>\r\n    </section>\r\n  )\r\n}\r\n\r\nexport default NewCollection\r\n",
        "language": "jsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/new-collection-1/page": {
      "content": "import Container from \"@/components/Container\"\r\n\r\nimport NewCollection from \"./components/new-collection\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <Container>\r\n      <NewCollection />\r\n    </Container>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "orders-page-1": {
    "components": {
      "@/registry/view/orders-page-1/components/orders-page": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\n\r\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from \"@/components/ui/dropdown-menu\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\r\nimport { TableCell, TableRow } from \"@/components/ui/table\"\r\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { CardDescription } from \"@/components/ui/card\"\r\nimport { Table, TableBody, TableHead, TableHeader } from \"@/components/ui/table\"\r\nimport {\r\n    ArrowDown,\r\n    ArrowUp,\r\n    Bell,\r\n    Calendar,\r\n    Download,\r\n    Eye,\r\n    Filter,\r\n    MoreHorizontal,\r\n    Package,\r\n    Printer,\r\n    RefreshCw,\r\n    Search,\r\n    Settings,\r\n    Truck,\r\n    X,\r\n} from \"lucide-react\"\r\nimport { useCallback, useMemo, useState } from \"react\"\r\nimport { useResponsiveOrientation } from \"../hooks/use-responsive-orientation\"\r\nimport { formatDate, formatPrice } from \"../lib/utils\"\r\nimport { Sidebar } from \"./sidebar\"\r\n\r\ntype OrderStatus = \"awaiting_shipment\" | \"processing\" | \"fulfilled\" | \"cancelled\"\r\ntype SortField = \"id\" | \"customerName\" | \"totalPrice\" | \"createdAt\" | \"status\"\r\ntype SortDirection = \"asc\" | \"desc\"\r\n\r\ninterface Order {\r\n    id: number\r\n    customerName: string\r\n    customerEmail: string\r\n    customerAvatar?: string\r\n    customerPhone: string\r\n    productName: string\r\n    productImage?: string\r\n    productPrice: number\r\n    quantity: number\r\n    shippingPrice: number\r\n    discountRate: number\r\n    totalPrice: number\r\n    status: OrderStatus\r\n    createdAt: string\r\n    shippingAddress: string\r\n    trackingNumber?: string\r\n    paymentMethod: string\r\n    notes?: string\r\n}\r\n\r\nconst mockOrders: Order[] = [\r\n    {\r\n        id: 1001,\r\n        customerName: \"Ahmed Hassan\",\r\n        customerEmail: \"ahmed.hassan@email.com\",\r\n        customerPhone: \"+20 123 456 7890\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"iPhone 15 Pro Max\",\r\n        productImage: \"https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=100&h=100&fit=crop\",\r\n        productPrice: 1199,\r\n        quantity: 1,\r\n        shippingPrice: 25,\r\n        discountRate: 0.1,\r\n        totalPrice: 1104.1,\r\n        status: \"fulfilled\",\r\n        createdAt: \"2024-01-15T10:30:00Z\",\r\n        shippingAddress: \"123 Tahrir Square, Cairo, Egypt\",\r\n        trackingNumber: \"TRK001234567\",\r\n        paymentMethod: \"Credit Card\",\r\n        notes: \"Gift wrapping requested\",\r\n    },\r\n    {\r\n        id: 1002,\r\n        customerName: \"Fatima Al-Zahra\",\r\n        customerEmail: \"fatima.zahra@email.com\",\r\n        customerPhone: \"+20 987 654 3210\",\r\n        productName: \"MacBook Air M3\",\r\n        productImage: \"https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=100&h=100&fit=crop\",\r\n        productPrice: 1299,\r\n        quantity: 1,\r\n        shippingPrice: 0,\r\n        discountRate: 0,\r\n        totalPrice: 1299,\r\n        status: \"processing\",\r\n        createdAt: \"2024-01-14T14:20:00Z\",\r\n        shippingAddress: \"456 Zamalek District, Cairo, Egypt\",\r\n        paymentMethod: \"PayPal\",\r\n    },\r\n    {\r\n        id: 1003,\r\n        customerName: \"Omar Khaled\",\r\n        customerEmail: \"omar.khaled@email.com\",\r\n        customerPhone: \"+20 555 123 4567\",\r\n        customerAvatar: \"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face\",\r\n        productName: \"AirPods Pro 2\",\r\n        productImage: \"https://images.unsplash.com/photo-1606220945770-b5b6c2c55bf1?w=100&h=100&fit=crop\",\r\n        productPrice: 249,\r\n        quantity: 2,\r\n        shippingPrice: 15,\r\n        discountRate: 0.05,\r\n        totalPrice: 487.1,\r\n        status: \"awaiting_shipment\",\r\n        createdAt: \"2024-01-14T09:15:00Z\",\r\n        shippingAddress: \"789 Nasr City, Cairo, Egypt\",\r\n        paymentMethod: \"Cash on Delivery\",\r\n    },\r\n    {\r\n        id: 1004,\r\n        customerName: \"Layla Mohammed\",\r\n        customerEmail: \"layla.mohammed@email.com\",\r\n        customerPhone: \"+20 111 222 3333\",\r\n        productName: \"iPad Pro 12.9\",\r\n        productImage: \"https://images.unsplash.com/photo-1544244015-0df4b3ffc6b0?w=100&h=100&fit=crop\",\r\n        productPrice: 1099,\r\n        quantity: 1,\r\n        shippingPrice: 20,\r\n        discountRate: 0.15,\r\n        totalPrice: 954.15,\r\n        status: \"cancelled\",\r\n        createdAt: \"2024-01-13T16:45:00Z\",\r\n        shippingAddress: \"321 Heliopolis, Cairo, Egypt\",\r\n        paymentMethod: \"Credit Card\",\r\n        notes: \"Customer requested cancellation\",\r\n    },\r\n    {\r\n        id: 1005,\r\n        customerName: \"Youssef Ali\",\r\n        customerEmail: \"youssef.ali@email.com\",\r\n        customerPhone: \"+20 444 555 6666\",\r\n        productName: \"Apple Watch Series 9\",\r\n        productImage: \"https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=100&h=100&fit=crop\",\r\n        productPrice: 399,\r\n        quantity: 1,\r\n        shippingPrice: 10,\r\n        discountRate: 0,\r\n        totalPrice: 409,\r\n        status: \"fulfilled\",\r\n        createdAt: \"2024-01-13T11:30:00Z\",\r\n        shippingAddress: \"654 Maadi, Cairo, Egypt\",\r\n        trackingNumber: \"TRK009876543\",\r\n        paymentMethod: \"Bank Transfer\",\r\n    },\r\n    {\r\n        id: 1006,\r\n        customerName: \"Nour Abdel Rahman\",\r\n        customerEmail: \"nour.abdel@email.com\",\r\n        customerPhone: \"+20 444 555 6666\",\r\n        productName: \"Magic Keyboard\",\r\n        productImage: \"https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=100&h=100&fit=crop\",\r\n        productPrice: 399,\r\n        quantity: 1,\r\n        shippingPrice: 10,\r\n        discountRate: 0,\r\n        totalPrice: 409,\r\n        status: \"fulfilled\",\r\n        createdAt: \"2024-01-13T11:30:00Z\",\r\n        shippingAddress: \"654 Maadi, Cairo, Egypt\",\r\n        trackingNumber: \"TRK009876543\",\r\n        paymentMethod: \"Bank Transfer\",\r\n    },\r\n]\r\n\r\nconst ORDER_STATUS_DETAILS: Record<\r\n    OrderStatus,\r\n    { label: string; badgeClass: string; icon?: React.ElementType; colorClass?: string }\r\n> = {\r\n    awaiting_shipment: {\r\n        label: \"Awaiting Shipment\",\r\n        badgeClass: \"bg-blue-500 text-white hover:bg-blue-600\",\r\n        icon: Truck,\r\n        colorClass: \"text-blue-600\",\r\n    },\r\n    processing: {\r\n        label: \"Processing\",\r\n        badgeClass: \"bg-yellow-500 text-white hover:bg-yellow-600\",\r\n        icon: RefreshCw,\r\n        colorClass: \"text-yellow-600\",\r\n    },\r\n    fulfilled: {\r\n        label: \"Fulfilled\",\r\n        badgeClass: \"bg-green-500 text-white hover:bg-green-600\",\r\n        icon: Package,\r\n        colorClass: \"text-green-600\",\r\n    },\r\n    cancelled: {\r\n        label: \"Cancelled\",\r\n        badgeClass: \"bg-red-500 text-white hover:bg-red-600\",\r\n        icon: X,\r\n        colorClass: \"text-red-600\",\r\n    },\r\n}\r\n\r\nconst DATE_RANGE_OPTIONS = [\r\n    { value: \"all\", label: \"All Time\" },\r\n    { value: \"today\", label: \"Today\" },\r\n    { value: \"week\", label: \"This Week\" },\r\n    { value: \"month\", label: \"This Month\" },\r\n    { value: \"quarter\", label: \"This Quarter\" },\r\n]\r\n\r\nconst adminUser = {\r\n    name: \"Admin User\",\r\n    avatarUrl: \"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face\",\r\n    initials: \"AU\",\r\n}\r\n\r\ninterface OrdersHeaderProps {\r\n    searchQuery: string\r\n    setSearchQuery: (query: string) => void\r\n    dateRange: string\r\n    setDateRange: (range: string) => void\r\n    onRefresh: () => void\r\n    onExport: () => void\r\n}\r\n\r\nfunction OrdersHeader({\r\n    searchQuery,\r\n    setSearchQuery,\r\n    dateRange,\r\n    setDateRange,\r\n    onRefresh,\r\n    onExport,\r\n}: OrdersHeaderProps) {\r\n    return (\r\n        <header className=\"sticky top-0 z-30 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60\">\r\n            <div className=\"flex flex-col gap-4 p-4 sm:flex-row sm:items-center sm:justify-between lg:px-6\">\r\n                <div className=\"flex items-center gap-2\">\r\n                    <Package className=\"h-5 w-5 sm:h-6 sm:w-6 text-primary\" />\r\n                    <h1 className=\"text-lg sm:text-xl font-semibold tracking-tight\">Ecommerce Orders</h1>\r\n                </div>\r\n                <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-2\">\r\n                    <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center\">\r\n                        <div className=\"relative\">\r\n                            <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n                            <Input\r\n                                type=\"search\"\r\n                                placeholder=\"Search orders...\"\r\n                                value={searchQuery}\r\n                                onChange={(e) => setSearchQuery(e.target.value)}\r\n                                className=\"pl-8 w-full sm:w-48 md:w-64 lg:w-80\"\r\n                            />\r\n                        </div>\r\n                        <Select value={dateRange} onValueChange={setDateRange}>\r\n                            <SelectTrigger className=\"w-full sm:w-auto md:w-40\">\r\n                                <Calendar className=\"h-4 w-4 mr-2\" />\r\n                                <span className=\"sm:hidden md:inline\">\r\n                                    <SelectValue />\r\n                                </span>\r\n                                <span className=\"hidden sm:inline md:hidden\">Date</span>\r\n                            </SelectTrigger>\r\n                            <SelectContent>\r\n                                {DATE_RANGE_OPTIONS.map((option) => (\r\n                                    <SelectItem key={option.value} value={option.value}>\r\n                                        {option.label}\r\n                                    </SelectItem>\r\n                                ))}\r\n                            </SelectContent>\r\n                        </Select>\r\n                    </div>\r\n                    <div className=\"flex items-center gap-2\">\r\n                        <Button onClick={onRefresh} variant=\"ghost\" size=\"icon\" aria-label=\"Refresh orders\">\r\n                            <RefreshCw className=\"h-4 w-4\" />\r\n                        </Button>\r\n                        <Button onClick={onExport} variant=\"outline\" size=\"sm\" className=\"hidden sm:flex\">\r\n                            <Download className=\"mr-2 h-4 w-4\" />\r\n                            <span className=\"hidden md:inline\">Export</span>\r\n                            <span className=\"md:hidden\">CSV</span>\r\n                        </Button>\r\n                        <Button onClick={onExport} variant=\"ghost\" size=\"icon\" className=\"sm:hidden\" aria-label=\"Export\">\r\n                            <Download className=\"h-4 w-4\" />\r\n                        </Button>\r\n                        <DropdownMenu>\r\n                            <DropdownMenuTrigger asChild>\r\n                                <Button variant=\"ghost\" size=\"icon\" className=\"relative\" aria-label=\"Notifications\">\r\n                                    <Bell className=\"h-4 w-4\" />\r\n                                </Button>\r\n                            </DropdownMenuTrigger>\r\n                            <DropdownMenuContent align=\"end\" className=\"w-80\">\r\n                                <DropdownMenuItem>No new notifications</DropdownMenuItem>\r\n                            </DropdownMenuContent>\r\n                        </DropdownMenu>\r\n                        <DropdownMenu>\r\n                            <DropdownMenuTrigger asChild>\r\n                                <Button variant=\"ghost\" size=\"icon\" aria-label=\"User account\">\r\n                                    <Avatar className=\"h-7 w-7 sm:h-8 sm:w-8\">\r\n                                        <AvatarImage src={adminUser.avatarUrl || \"/placeholder.svg\"} alt={adminUser.name} />\r\n                                        <AvatarFallback>{adminUser.initials}</AvatarFallback>\r\n                                    </Avatar>\r\n                                </Button>\r\n                            </DropdownMenuTrigger>\r\n                            <DropdownMenuContent align=\"end\">\r\n                                <DropdownMenuItem>My Profile</DropdownMenuItem>\r\n                                <DropdownMenuItem>Settings</DropdownMenuItem>\r\n                                <DropdownMenuItem>Logout</DropdownMenuItem>\r\n                            </DropdownMenuContent>\r\n                        </DropdownMenu>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </header>\r\n    )\r\n}\r\ninterface OrdersStatsProps {\r\n    orders: Order[]\r\n}\r\n\r\nfunction OrdersStats({ orders }: OrdersStatsProps) {\r\n    const stats = useMemo(() => {\r\n        const initialCounts: Record<OrderStatus, number> = {\r\n            awaiting_shipment: 0,\r\n            processing: 0,\r\n            fulfilled: 0,\r\n            cancelled: 0,\r\n        }\r\n        const statusCounts = orders.reduce((acc, order) => {\r\n            acc[order.status]++\r\n            return acc\r\n        }, initialCounts)\r\n\r\n        const totalRevenue = orders\r\n            .filter((order) => order.status !== \"cancelled\")\r\n            .reduce((sum, order) => sum + order.totalPrice, 0)\r\n\r\n        return {\r\n            totalOrders: orders.length,\r\n            ...statusCounts,\r\n            totalRevenue,\r\n        }\r\n    }, [orders])\r\n\r\n    const statCards = [\r\n        { title: \"Total Orders\", value: stats.totalOrders, icon: Package, description: \"All orders in system\" },\r\n        {\r\n            title: ORDER_STATUS_DETAILS.fulfilled.label,\r\n            value: stats.fulfilled,\r\n            iconElement: <div className=\"h-4 w-4 rounded-full bg-green-500\" />,\r\n            valueClass: ORDER_STATUS_DETAILS.fulfilled.colorClass,\r\n            description: \"Completed orders\",\r\n        },\r\n        {\r\n            title: ORDER_STATUS_DETAILS.processing.label,\r\n            value: stats.processing,\r\n            iconElement: <div className=\"h-4 w-4 rounded-full bg-yellow-500\" />,\r\n            valueClass: ORDER_STATUS_DETAILS.processing.colorClass,\r\n            description: \"Being processed\",\r\n        },\r\n        {\r\n            title: ORDER_STATUS_DETAILS.awaiting_shipment.label,\r\n            value: stats.awaiting_shipment,\r\n            icon: ORDER_STATUS_DETAILS.awaiting_shipment.icon,\r\n            valueClass: ORDER_STATUS_DETAILS.awaiting_shipment.colorClass,\r\n            description: \"Ready to ship\",\r\n        },\r\n        {\r\n            title: ORDER_STATUS_DETAILS.cancelled.label,\r\n            value: stats.cancelled,\r\n            icon: ORDER_STATUS_DETAILS.cancelled.icon,\r\n            valueClass: ORDER_STATUS_DETAILS.cancelled.colorClass,\r\n            description: \"Cancelled orders\",\r\n        },\r\n    ]\r\n\r\n    return (\r\n        <div className=\"grid gap-4 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5\">\r\n            {statCards.map((card) => {\r\n                const IconComponent = card.icon\r\n                return (\r\n                    <Card key={card.title}>\r\n                        <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                            <CardTitle className=\"text-sm font-medium\">{card.title}</CardTitle>\r\n                            {IconComponent ? (\r\n                                <IconComponent className={`h-4 w-4 text-muted-foreground ${card.valueClass || \"\"}`} />\r\n                            ) : (\r\n                                card.iconElement\r\n                            )}\r\n                        </CardHeader>\r\n                        <CardContent>\r\n                            <div className={`text-2xl font-bold ${card.valueClass || \"\"}`}>{card.value}</div>\r\n                            <p className=\"text-xs text-muted-foreground\">{card.description}</p>\r\n                        </CardContent>\r\n                    </Card>\r\n                )\r\n            })}\r\n        </div>\r\n    )\r\n}\r\n\r\ninterface OrderActionsProps {\r\n    order: Order\r\n}\r\n\r\nfunction OrderActions({ order }: OrderActionsProps) {\r\n    const handleViewOrder = useCallback(() => console.log(\"View order:\", order.id), [order.id])\r\n    const handleEditOrder = useCallback(() => console.log(\"Edit order:\", order.id), [order.id])\r\n    const handlePrintInvoice = useCallback(() => console.log(\"Print invoice:\", order.id), [order.id])\r\n    const handleTrackShipment = useCallback(\r\n        () => console.log(\"Track shipment:\", order.trackingNumber),\r\n        [order.trackingNumber],\r\n    )\r\n    const handleCancelOrder = useCallback(() => console.log(\"Cancel order:\", order.id), [order.id])\r\n\r\n    return (\r\n        <DropdownMenu>\r\n            <DropdownMenuTrigger asChild>\r\n                <Button variant=\"ghost\" size=\"icon\" aria-label={`Actions for order ${order.id}`}>\r\n                    <MoreHorizontal className=\"h-4 w-4\" />\r\n                    <span className=\"sr-only\">Order actions</span>\r\n                </Button>\r\n            </DropdownMenuTrigger>\r\n            <DropdownMenuContent align=\"end\" className=\"w-48\">\r\n                <DropdownMenuItem onClick={handleViewOrder}>\r\n                    <Eye className=\"mr-2 h-4 w-4\" /> View Details\r\n                </DropdownMenuItem>\r\n                <DropdownMenuItem onClick={handleEditOrder}>\r\n                    <Settings className=\"mr-2 h-4 w-4\" /> Edit Order\r\n                </DropdownMenuItem>\r\n                <DropdownMenuItem onClick={handlePrintInvoice}>\r\n                    <Printer className=\"mr-2 h-4 w-4\" /> Print Invoice\r\n                </DropdownMenuItem>\r\n                {order.trackingNumber && (\r\n                    <DropdownMenuItem onClick={handleTrackShipment}>\r\n                        <Truck className=\"mr-2 h-4 w-4\" /> Track Shipment\r\n                    </DropdownMenuItem>\r\n                )}\r\n                {order.status !== \"cancelled\" && order.status !== \"fulfilled\" && (\r\n                    <DropdownMenuItem onClick={handleCancelOrder} className=\"text-red-600 hover:!text-red-600 focus:text-red-600\">\r\n                        <X className=\"mr-2 h-4 w-4\" /> Cancel Order\r\n                    </DropdownMenuItem>\r\n                )}\r\n            </DropdownMenuContent>\r\n        </DropdownMenu>\r\n    )\r\n}\r\n\r\ninterface OrderRowProps {\r\n    order: Order\r\n}\r\n\r\nfunction OrderRow({ order }: OrderRowProps) {\r\n    const customerInitials = useMemo(\r\n        () =>\r\n            order.customerName\r\n                .split(\" \")\r\n                .map((n) => n[0])\r\n                .join(\"\")\r\n                .toUpperCase(),\r\n        [order.customerName],\r\n    )\r\n\r\n    const handleImageError = useCallback((event: React.SyntheticEvent<HTMLImageElement, Event>) => {\r\n        event.currentTarget.src = \"https://images.unsplash.com/photo-1560472354-b33ff0c44a43?w=100&h=100&fit=crop\"\r\n    }, [])\r\n\r\n    const handleAvatarError = useCallback((event: React.SyntheticEvent<HTMLImageElement, Event>) => {\r\n        ; (event.target as HTMLImageElement).style.display = \"none\"\r\n    }, [])\r\n\r\n    return (\r\n        <TableRow className=\"hover:bg-muted/50\">\r\n            <TableCell className=\"font-medium text-nowrap\">#{order.id}</TableCell>\r\n            <TableCell className=\"min-w-[200px]\">\r\n                <div className=\"flex items-center gap-3\">\r\n                    <Avatar className=\"h-9 w-9\">\r\n                        <AvatarImage\r\n                            src={order.customerAvatar || \"/placeholder.svg\"}\r\n                            alt={`${order.customerName}'s avatar`}\r\n                            onError={handleAvatarError}\r\n                        />\r\n                        <AvatarFallback>{customerInitials}</AvatarFallback>\r\n                    </Avatar>\r\n                    <div>\r\n                        <div className=\"font-medium truncate\" title={order.customerName}>\r\n                            {order.customerName}\r\n                        </div>\r\n                        <div className=\"text-sm text-muted-foreground truncate\" title={order.customerEmail}>\r\n                            {order.customerEmail}\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </TableCell>\r\n            <TableCell className=\"min-w-[180px]\">\r\n                <div className=\"flex items-center gap-3\">\r\n                    <img\r\n                        src={order.productImage || \"https://images.unsplash.com/photo-1560472354-b33ff0c44a43?w=100&h=100&fit=crop\"}\r\n                        alt={order.productName}\r\n                        className=\"h-10 w-10 rounded-md object-cover\"\r\n                        onError={handleImageError}\r\n                        loading=\"lazy\"\r\n                    />\r\n                    <span className=\"font-medium text-nowrap truncate\" title={order.productName}>\r\n                        {order.productName}\r\n                    </span>\r\n                </div>\r\n            </TableCell>\r\n            <TableCell className=\"text-right text-nowrap\">\r\n                {order.discountRate > 0 ? (\r\n                    <>\r\n                        <div className=\"line-through text-xs text-muted-foreground\">{formatPrice(order.productPrice)}</div>\r\n                        <div className=\"font-medium\">{formatPrice(order.productPrice * (1 - order.discountRate))}</div>\r\n                    </>\r\n                ) : (\r\n                    <div className=\"font-medium\">{formatPrice(order.productPrice)}</div>\r\n                )}\r\n            </TableCell>\r\n            <TableCell className=\"text-center text-nowrap\">\r\n                {order.discountRate > 0 ? (\r\n                    <Badge variant=\"secondary\">{Math.round(order.discountRate * 100)}% OFF</Badge>\r\n                ) : (\r\n                    <span className=\"text-muted-foreground\">-</span>\r\n                )}\r\n            </TableCell>\r\n            <TableCell className=\"text-center\">{order.quantity}</TableCell>\r\n            <TableCell className=\"text-right text-nowrap\">\r\n                {order.shippingPrice > 0 ? formatPrice(order.shippingPrice) : <Badge variant=\"outline\">Free</Badge>}\r\n            </TableCell>\r\n            <TableCell className=\"text-right font-semibold text-base text-nowrap\">{formatPrice(order.totalPrice)}</TableCell>\r\n            <TableCell className=\"text-nowrap\">{formatDate(order.createdAt)}</TableCell>\r\n            <TableCell className=\"text-nowrap\">\r\n                <Badge className={ORDER_STATUS_DETAILS[order.status].badgeClass}>\r\n                    {ORDER_STATUS_DETAILS[order.status].label}\r\n                </Badge>\r\n            </TableCell>\r\n            <TableCell className=\"text-nowrap\">{order.paymentMethod}</TableCell>\r\n            <TableCell className=\"text-center text-nowrap\">\r\n                {order.trackingNumber ? (\r\n                    <Badge variant=\"outline\" className=\"font-mono text-xs\">\r\n                        {order.trackingNumber}\r\n                    </Badge>\r\n                ) : (\r\n                    <span className=\"text-muted-foreground\">-</span>\r\n                )}\r\n            </TableCell>\r\n            <TableCell className=\"text-center\">\r\n                <OrderActions order={order} />\r\n            </TableCell>\r\n        </TableRow>\r\n    )\r\n}\r\n\r\nexport default function OrdersPage() {\r\n    const [activeFilter, setActiveFilter] = useState<OrderStatus | \"all\">(\"all\")\r\n    const [searchQuery, setSearchQuery] = useState(\"\")\r\n    const [dateRange, setDateRange] = useState(\"all\")\r\n    const [sortField, setSortField] = useState<SortField>(\"createdAt\")\r\n    const [sortDirection, setSortDirection] = useState<SortDirection>(\"desc\")\r\n    const orientation = useResponsiveOrientation()\r\n    const [orders, setOrders] = useState<Order[]>(mockOrders)\r\n\r\n    const orderCountsByStatus = useMemo(() => {\r\n        const counts: Record<OrderStatus | \"all\", number> = {\r\n            all: orders.length,\r\n            awaiting_shipment: 0,\r\n            processing: 0,\r\n            fulfilled: 0,\r\n            cancelled: 0,\r\n        }\r\n        orders.forEach((order) => {\r\n            if (counts[order.status] !== undefined) {\r\n                counts[order.status]++\r\n            }\r\n        })\r\n        return counts\r\n    }, [orders])\r\n\r\n    const filteredAndSortedOrders = useMemo(() => {\r\n        let processedOrders = [...orders]\r\n\r\n        if (activeFilter !== \"all\") {\r\n            processedOrders = processedOrders.filter((order) => order.status === activeFilter)\r\n        }\r\n\r\n        if (dateRange !== \"all\") {\r\n            const now = new Date()\r\n            let startDateFilter: Date | null = null\r\n\r\n            switch (dateRange) {\r\n                case \"today\":\r\n                    startDateFilter = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0)\r\n                    break\r\n                case \"week\":\r\n                    const firstDayOfWeek = new Date(now)\r\n                    firstDayOfWeek.setDate(now.getDate() - now.getDay())\r\n                    firstDayOfWeek.setHours(0, 0, 0, 0)\r\n                    startDateFilter = firstDayOfWeek\r\n                    break\r\n                case \"month\":\r\n                    startDateFilter = new Date(now.getFullYear(), now.getMonth(), 1)\r\n                    break\r\n                case \"quarter\":\r\n                    const currentQuarter = Math.floor(now.getMonth() / 3)\r\n                    startDateFilter = new Date(now.getFullYear(), currentQuarter * 3, 1)\r\n                    break\r\n            }\r\n            if (startDateFilter) {\r\n                processedOrders = processedOrders.filter((order) => new Date(order.createdAt) >= startDateFilter!)\r\n            }\r\n        }\r\n\r\n        if (searchQuery) {\r\n            const query = searchQuery.toLowerCase().trim()\r\n            processedOrders = processedOrders.filter(\r\n                (order) =>\r\n                    order.id.toString().includes(query) ||\r\n                    order.customerName.toLowerCase().includes(query) ||\r\n                    order.customerEmail.toLowerCase().includes(query) ||\r\n                    order.productName.toLowerCase().includes(query) ||\r\n                    (order.trackingNumber && order.trackingNumber.toLowerCase().includes(query)),\r\n            )\r\n        }\r\n\r\n        processedOrders.sort((a, b) => {\r\n            const valA = a[sortField]\r\n            const valB = b[sortField]\r\n\r\n            let comparison = 0\r\n\r\n            if (typeof valA === \"number\" && typeof valB === \"number\") {\r\n                comparison = valA - valB\r\n            } else if (sortField === \"createdAt\") {\r\n                comparison = new Date(valA as string).getTime() - new Date(valB as string).getTime()\r\n            } else if (typeof valA === \"string\" && typeof valB === \"string\") {\r\n                comparison = valA.toLowerCase().localeCompare(valB.toLowerCase())\r\n            } else {\r\n                if (valA > valB) comparison = 1\r\n                else if (valA < valB) comparison = -1\r\n            }\r\n\r\n            return sortDirection === \"asc\" ? comparison : -comparison\r\n        })\r\n\r\n        return processedOrders\r\n    }, [orders, activeFilter, searchQuery, dateRange, sortField, sortDirection])\r\n\r\n    const handleRefresh = useCallback(() => {\r\n        console.log(\"Refreshing orders...\")\r\n        setOrders([...mockOrders])\r\n        setSearchQuery(\"\")\r\n        setActiveFilter(\"all\")\r\n        setDateRange(\"all\")\r\n        setSortField(\"createdAt\")\r\n        setSortDirection(\"desc\")\r\n    }, [])\r\n\r\n    const handleExport = useCallback(() => {\r\n        console.log(\"Exporting orders...\", filteredAndSortedOrders)\r\n        if (filteredAndSortedOrders.length > 0) {\r\n            const headers = Object.keys(filteredAndSortedOrders[0]).join(\",\")\r\n            const rows = filteredAndSortedOrders\r\n                .map((order) =>\r\n                    Object.values(order)\r\n                        .map((val) => (typeof val === \"string\" ? `\"${val.replace(/\"/g, '\"\"')}\"` : val))\r\n                        .join(\",\"),\r\n                )\r\n                .join(\"\\n\")\r\n            const csvContent = `data:text/csv;charset=utf-8,${headers}\\n${rows}`\r\n            const encodedUri = encodeURI(csvContent)\r\n            const link = document.createElement(\"a\")\r\n            link.setAttribute(\"href\", encodedUri)\r\n            link.setAttribute(\"download\", `orders_export_${new Date().toISOString().split(\"T\")[0]}.csv`)\r\n            document.body.appendChild(link)\r\n            link.click()\r\n            document.body.removeChild(link)\r\n        } else {\r\n            console.warn(\"No data to export.\")\r\n        }\r\n    }, [filteredAndSortedOrders])\r\n\r\n    const handleSort = useCallback(\r\n        (field: SortField) => {\r\n            if (sortField === field) {\r\n                setSortDirection((prev) => (prev === \"asc\" ? \"desc\" : \"asc\"))\r\n            } else {\r\n                setSortField(field)\r\n                setSortDirection(\"desc\")\r\n            }\r\n        },\r\n        [sortField],\r\n    )\r\n\r\n    const SortIndicator = useCallback(\r\n        ({ field }: { field: SortField }) => {\r\n            if (sortField !== field) return null\r\n            const Icon = sortDirection === \"asc\" ? ArrowUp : ArrowDown\r\n            return <Icon className=\"ml-1 h-3 w-3 text-muted-foreground\" />\r\n        },\r\n        [sortField, sortDirection],\r\n    )\r\n\r\n    const tableHeaders: Array<{\r\n        key: SortField | string\r\n        label: string\r\n        sortable?: boolean\r\n        className?: string\r\n        cellClassName?: string\r\n    }> = [\r\n            { key: \"id\", label: \"Order ID\", sortable: true, className: \"w-[100px]\" },\r\n            { key: \"customerName\", label: \"Customer\", sortable: true },\r\n            { key: \"productName\", label: \"Product\" },\r\n            { key: \"productPrice\", label: \"Unit Price\", sortable: true, className: \"text-right\" },\r\n            { key: \"discountRate\", label: \"Discount\", className: \"text-center\" },\r\n            { key: \"quantity\", label: \"Qty\", className: \"text-center\" },\r\n            { key: \"shippingPrice\", label: \"Shipping\", className: \"text-right\" },\r\n            { key: \"totalPrice\", label: \"Total\", sortable: true, className: \"text-right font-semibold\" },\r\n            { key: \"createdAt\", label: \"Date\", sortable: true },\r\n            { key: \"status\", label: \"Status\", sortable: true },\r\n            { key: \"paymentMethod\", label: \"Payment\" },\r\n            { key: \"trackingNumber\", label: \"Tracking\", className: \"text-center\" },\r\n            { key: \"actions\", label: \"Actions\", className: \"text-center w-[50px]\" },\r\n        ]\r\n\r\n    return (\r\n        <>\r\n            <Sidebar />\r\n            <div className=\"min-h-screen\">\r\n                <OrdersHeader\r\n                    searchQuery={searchQuery}\r\n                    setSearchQuery={setSearchQuery}\r\n                    dateRange={dateRange}\r\n                    setDateRange={setDateRange}\r\n                    onRefresh={handleRefresh}\r\n                    onExport={handleExport}\r\n                />\r\n                <main className=\"flex flex-col gap-6 p-4 sm:p-6 lg:p-8\">\r\n                    <div className=\"flex flex-col gap-6\">\r\n                        <div>\r\n                            <h2 className=\"text-2xl lg:text-3xl font-bold tracking-tight\">Orders</h2>\r\n                            <p className=\"text-muted-foreground\">Manage, track, and process all customer orders efficiently.</p>\r\n                        </div>\r\n                        <OrdersStats orders={orders} />\r\n                        <div className=\"w-full\">\r\n                            <Tabs\r\n                                orientation={orientation}\r\n                                value={activeFilter}\r\n                                onValueChange={(value) => setActiveFilter(value as OrderStatus | \"all\")}\r\n                                className=\"w-full mb-5\"\r\n                            >\r\n                                <TabsList\r\n                                    className={cn(\r\n                                        orientation === \"horizontal\"\r\n                                            ? \"inline-flex h-10 items-center justify-center p-1 text-muted-foreground max-w-fit\"\r\n                                            : \"flex flex-col h-auto w-full max-w-xs space-y-1 p-2\",\r\n                                    )}\r\n                                >\r\n                                    <TabsTrigger\r\n                                        value=\"all\"\r\n                                        className={cn(\r\n                                            \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                            orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                        )}\r\n                                    >\r\n                                        <span>All Orders</span>\r\n                                        {orientation === \"vertical\" && (\r\n                                            <Badge variant=\"secondary\" className=\"ml-2 text-xs\">\r\n                                                {orderCountsByStatus.all}\r\n                                            </Badge>\r\n                                        )}\r\n                                    </TabsTrigger>\r\n                                    <TabsTrigger\r\n                                        value=\"awaiting_shipment\"\r\n                                        className={cn(\r\n                                            \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                            orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                        )}\r\n                                    >\r\n                                        <span>{orientation === \"horizontal\" ? \"Awaiting\" : \"Awaiting Shipment\"}</span>\r\n                                        {orientation === \"vertical\" && (\r\n                                            <Badge variant=\"secondary\" className=\"ml-2 text-xs\">\r\n                                                {orderCountsByStatus.awaiting_shipment}\r\n                                            </Badge>\r\n                                        )}\r\n                                    </TabsTrigger>\r\n                                    <TabsTrigger\r\n                                        value=\"processing\"\r\n                                        className={cn(\r\n                                            \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                            orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                        )}\r\n                                    >\r\n                                        <span>Processing</span>\r\n                                        {orientation === \"vertical\" && (\r\n                                            <Badge variant=\"secondary\" className=\"ml-2 text-xs\">\r\n                                                {orderCountsByStatus.processing}\r\n                                            </Badge>\r\n                                        )}\r\n                                    </TabsTrigger>\r\n                                    <TabsTrigger\r\n                                        value=\"fulfilled\"\r\n                                        className={cn(\r\n                                            \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                            orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                        )}\r\n                                    >\r\n                                        <span>Fulfilled</span>\r\n                                        {orientation === \"vertical\" && (\r\n                                            <Badge variant=\"secondary\" className=\"ml-2 text-xs\">\r\n                                                {orderCountsByStatus.fulfilled}\r\n                                            </Badge>\r\n                                        )}\r\n                                    </TabsTrigger>\r\n                                    <TabsTrigger\r\n                                        value=\"cancelled\"\r\n                                        className={cn(\r\n                                            \"inline-flex items-center justify-center whitespace-nowrap\",\r\n                                            orientation === \"vertical\" && \"justify-between w-full py-3 px-4\",\r\n                                        )}\r\n                                    >\r\n                                        <span>Cancelled</span>\r\n                                        {orientation === \"vertical\" && (\r\n                                            <Badge variant=\"secondary\" className=\"ml-2 text-xs\">\r\n                                                {orderCountsByStatus.cancelled}\r\n                                            </Badge>\r\n                                        )}\r\n                                    </TabsTrigger>\r\n                                </TabsList>\r\n                            </Tabs>\r\n                            <Card>\r\n                                <CardHeader className=\"px-7\">\r\n                                    <div className=\"flex items-center justify-between\">\r\n                                        <div>\r\n                                            <CardTitle>Orders Overview</CardTitle>\r\n                                            <CardDescription>\r\n                                                Detailed list of all customer orders and their statuses.\r\n                                            </CardDescription>\r\n                                        </div>\r\n                                        <Button variant=\"outline\" size=\"sm\" onClick={() => console.log(\"Advanced Filters Clicked\")}>\r\n                                            <Filter className=\"mr-2 h-4 w-4\" />\r\n                                            Advanced Filters\r\n                                        </Button>\r\n                                    </div>\r\n                                </CardHeader>\r\n                                <CardContent>\r\n                                    <div className=\"overflow-x-auto\">\r\n                                        <Table>\r\n                                            <TableHeader>\r\n                                                <TableRow>\r\n                                                    {tableHeaders.map(th => (\r\n                                                        <TableHead\r\n                                                            key={th.key}\r\n                                                            className={`${th.className || ''} ${th.sortable ? 'cursor-pointer hover:bg-muted' : ''} text-nowrap`}\r\n                                                            onClick={th.sortable ? () => handleSort(th.key as SortField) : undefined}\r\n                                                            aria-sort={th.sortable && sortField === th.key ? (sortDirection === 'asc' ? 'ascending' : 'descending') : 'none'}\r\n                                                        >\r\n                                                            <div className=\"flex items-center\">\r\n                                                                {th.label}\r\n                                                                {th.sortable && <SortIndicator field={th.key as SortField} />}\r\n                                                            </div>\r\n                                                        </TableHead>\r\n                                                    ))}\r\n                                                </TableRow>\r\n                                            </TableHeader>\r\n                                            <TableBody>\r\n                                                {filteredAndSortedOrders.length > 0 ? (\r\n                                                    filteredAndSortedOrders.map((order) => (\r\n                                                        <OrderRow key={order.id} order={order} />\r\n                                                    ))\r\n                                                ) : (\r\n                                                    <TableRow>\r\n                                                        <TableCell colSpan={tableHeaders.length} className=\"h-24 text-center\">\r\n                                                            <div className=\"flex flex-col items-center justify-center space-y-2 py-8\">\r\n                                                                <Package className=\"h-12 w-12 text-muted-foreground\" />\r\n                                                                <h3 className=\"text-lg font-medium\">No orders found.</h3>\r\n                                                                <p className=\"text-muted-foreground text-sm\">\r\n                                                                    {searchQuery ? \"Try adjusting your search or filter criteria.\" : \"No orders match the current filters.\"}\r\n                                                                </p>\r\n                                                                {(searchQuery || activeFilter !== 'all' || dateRange !== 'all') &&\r\n                                                                    <Button variant=\"outline\" size=\"sm\" onClick={handleRefresh} className=\"mt-2\">\r\n                                                                        Clear Filters & Search\r\n                                                                    </Button>\r\n                                                                }\r\n                                                            </div>\r\n                                                        </TableCell>\r\n                                                    </TableRow>\r\n                                                )}\r\n                                            </TableBody>\r\n                                        </Table>\r\n                                    </div>\r\n                                </CardContent>\r\n                            </Card>\r\n                        </div>\r\n                    </div>\r\n                </main>\r\n            </div>\r\n        </>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-1/components/sidebar": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { motion } from \"framer-motion\"\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { usePathname } from \"next/navigation\"\r\nimport { useState } from \"react\"\r\nimport { DASHBOARDS } from \"../constant/index\"\r\n\r\ninterface SidebarProps {\r\n    className?: string\r\n}\r\n\r\nexport function Sidebar({ className }: SidebarProps) {\r\n    const [isOpen, setIsOpen] = useState(false)\r\n    const pathname = usePathname()\r\n\r\n    const toggleSidebar = () => {\r\n        setIsOpen(!isOpen)\r\n    }\r\n\r\n    const sidebarVariants = {\r\n        open: {\r\n            width: 280,\r\n            opacity: 1,\r\n            display: \"block\",\r\n            transition: {\r\n                duration: 0.4,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n        closed: {\r\n            width: 0,\r\n            opacity: 0,\r\n            display: \"none\",\r\n            transition: {\r\n                duration: 0.4,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n    }\r\n\r\n    const contentVariants = {\r\n        open: {\r\n            opacity: 1,\r\n            x: 0,\r\n            transition: {\r\n                duration: 0.4,\r\n                delay: 0.1,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n        closed: {\r\n            opacity: 0,\r\n            x: -20,\r\n            transition: {\r\n                duration: 0.3,\r\n            },\r\n        },\r\n    }\r\n\r\n    return (\r\n        <>\r\n            <motion.aside\r\n                initial={false}\r\n                animate={isOpen ? \"open\" : \"closed\"}\r\n                variants={sidebarVariants}\r\n                className={cn(\r\n                    \"fixed left-0 top-0 z-40 h-screen w-[280px]\",\r\n                    \"bg-white/10 backdrop-blur-md border-r border-white/20 shadow-xl\",\r\n                    \"dark:bg-black/20 dark:border-white/10 dark:shadow-black/30\",\r\n                    className\r\n                )}\r\n            >\r\n                <motion.div variants={contentVariants} className=\"flex h-full flex-col w-[280px]\">\r\n                    <div className=\"flex items-center justify-between p-6 border-b border-border/30\">\r\n                        <div className=\"flex items-center gap-3\">\r\n                            <div className=\"w-9 h-9 bg-gradient-to-br from-primary to-primary/80 rounded-xl flex items-center justify-center shadow-lg shadow-primary/20\">\r\n                                <span className=\"text-primary-foreground font-semibold text-sm\">A</span>\r\n                            </div>\r\n                            <div>\r\n                                <h2 className=\"text-lg font-semibold text-foreground tracking-tight\">Admin Panel</h2>\r\n                                <p className=\"text-xs text-muted-foreground/80\">Ecommerce Dashboard</p>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <nav className=\"flex-1 overflow-hidden\">\r\n                        <div className=\"p-4\">\r\n                            <div className=\"mb-6\">\r\n                                <p className=\"text-xs font-medium text-muted-foreground/70 uppercase tracking-wider mb-3 px-3\">\r\n                                    Main Menu\r\n                                </p>\r\n                            </div>\r\n                            <ScrollArea className=\"h-[calc(100vh-280px)]\" onWheel={(e) => e.stopPropagation()}>\r\n                                <div className=\"space-y-1 pr-4\">\r\n                                    {DASHBOARDS.map((item) => {\r\n                                        const isActive = pathname === item.url || pathname.startsWith(item.url + \"/\")\r\n                                        return (\r\n                                            <Link\r\n                                                key={item.name}\r\n                                                href={item.url}\r\n                                                className={cn(\r\n                                                    \"flex items-center gap-3 px-3 py-3 rounded-xl transition-all duration-200 group relative\",\r\n                                                    \"hover:bg-accent/50 hover:shadow-sm\",\r\n                                                    {\r\n                                                        \"bg-primary/10 text-primary shadow-sm border border-primary/20\": isActive,\r\n                                                        \"text-foreground/80 hover:text-foreground\": !isActive,\r\n                                                    },\r\n                                                )}\r\n                                            >\r\n                                                {isActive && (\r\n                                                    <div className=\"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-6 bg-primary rounded-r-full\" />\r\n                                                )}\r\n                                                <div\r\n                                                    className={cn(\"flex items-center justify-center w-5 h-5 transition-all duration-200\", {\r\n                                                        \"text-primary\": isActive,\r\n                                                        \"text-muted-foreground group-hover:text-foreground\": !isActive,\r\n                                                    })}\r\n                                                >\r\n                                                    {item.icon}\r\n                                                </div>\r\n                                                <span className=\"font-medium text-sm tracking-tight\">{item.name}</span>\r\n                                                {item.badge && (\r\n                                                    <span className=\"ml-auto bg-destructive/10 text-destructive text-xs px-2 py-1 rounded-full font-medium border border-destructive/20\">\r\n                                                        {item.badge}\r\n                                                    </span>\r\n                                                )}\r\n                                            </Link>\r\n                                        )\r\n                                    })}\r\n                                </div>\r\n                            </ScrollArea>\r\n                        </div>\r\n                    </nav>\r\n                    <div className=\"p-4 border-t border-border/30 shadow-md\">\r\n                        <div className=\"bg-accent/30 rounded-xl p-4 border border-border/20 shadow-inner\">\r\n                            <div className=\"flex items-center gap-3\">\r\n                                <div className=\"w-11 h-11 bg-gradient-to-br from-primary to-primary/80 rounded-full flex items-center justify-center shadow-lg shadow-primary/20\">\r\n                                    <span className=\"text-primary-foreground font-semibold text-sm\">JD</span>\r\n                                </div>\r\n                                <div className=\"flex-1 min-w-0\">\r\n                                    <p className=\"text-sm font-medium text-foreground truncate tracking-tight\">John Doe</p>\r\n                                    <p className=\"text-xs text-muted-foreground/80 truncate\">john@example.com</p>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </motion.div>\r\n            </motion.aside>\r\n            <Button\r\n                onClick={toggleSidebar}\r\n                size=\"sm\"\r\n                className={cn(\r\n                    \"fixed top-4 z-50 rounded-r-xl bg-background/95 hover:bg-accent border border-border/50 text-foreground transition-all duration-300 shadow-lg shadow-black/5 backdrop-blur-sm\",\r\n                    \"dark:bg-background/90 dark:hover:bg-accent/80 dark:shadow-black/20\",\r\n                    {\r\n                        \"left-[280px]\": isOpen,\r\n                        \"left-0\": !isOpen,\r\n                    },\r\n                )}\r\n                aria-label={isOpen ? \"Close sidebar\" : \"Open sidebar\"}\r\n            >\r\n                {isOpen ? <ChevronLeft className=\"w-4 h-4\" /> : <ChevronRight className=\"w-4 h-4\" />}\r\n            </Button>\r\n            {isOpen && (\r\n                <motion.div\r\n                    initial={{ opacity: 0 }}\r\n                    animate={{ opacity: 1 }}\r\n                    exit={{ opacity: 0 }}\r\n                    className=\"fixed inset-0 z-30 bg-background/20 backdrop-blur-sm lg:hidden\"\r\n                    onClick={toggleSidebar}\r\n                />\r\n            )}\r\n        </>\r\n    )\r\n}",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/orders-page-1/constant/index": {
        "content": "import { BarChart3, Bell, CreditCard, Home, Package, Settings, ShoppingCart, Star, Truck, Users } from \"lucide-react\"\r\nimport type React from \"react\"\r\n\r\nexport interface DashboardItem {\r\n    name: string\r\n    icon: React.ReactNode\r\n    url: string\r\n    badge?: string | number\r\n}\r\n\r\nexport const DASHBOARDS: DashboardItem[] = [\r\n    {\r\n        name: \"Dashboard\",\r\n        icon: <Home className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard\",\r\n    },\r\n    {\r\n        name: \"Orders\",\r\n        icon: <ShoppingCart className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/orders\",\r\n        badge: \"12\",\r\n    },\r\n    {\r\n        name: \"Products\",\r\n        icon: <Package className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/products\",\r\n    },\r\n    {\r\n        name: \"Customers\",\r\n        icon: <Users className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/customers\",\r\n    },\r\n    {\r\n        name: \"Analytics\",\r\n        icon: <BarChart3 className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/analytics\",\r\n    },\r\n    {\r\n        name: \"Payments\",\r\n        icon: <CreditCard className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/payments\",\r\n    },\r\n    {\r\n        name: \"Shipping\",\r\n        icon: <Truck className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/shipping\",\r\n    },\r\n    {\r\n        name: \"Reviews\",\r\n        icon: <Star className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/reviews\",\r\n        badge: \"3\",\r\n    },\r\n    {\r\n        name: \"Notifications\",\r\n        icon: <Bell className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/notifications\",\r\n        badge: \"5\",\r\n    },\r\n    {\r\n        name: \"Settings\",\r\n        icon: <Settings className=\"h-5 w-5\" />,\r\n        url: \"/admin/dashboard/settings\",\r\n    },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {
      "@/registry/view/orders-page-1/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n\r\nexport const formatDate = (dateString: string): string => {\r\n    if (!dateString) return 'N/A';\r\n    try {\r\n        return new Date(dateString).toLocaleDateString('en-US', {\r\n            year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'\r\n        });\r\n    } catch (e) {\r\n        return 'Invalid Date';\r\n    }\r\n};",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {
      "@/registry/view/orders-page-1/hooks/use-responsive-orientation": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useState } from \"react\"\r\n\r\nexport function useResponsiveOrientation() {\r\n    const [orientation, setOrientation] = useState<\"horizontal\" | \"vertical\">(\"horizontal\")\r\n\r\n    useEffect(() => {\r\n        const checkScreenSize = () => {\r\n            // Use 768px as breakpoint (md in Tailwind)\r\n            if (window.innerWidth < 768) {\r\n                setOrientation(\"vertical\")\r\n            } else {\r\n                setOrientation(\"horizontal\")\r\n            }\r\n        }\r\n\r\n        // Check on mount\r\n        checkScreenSize()\r\n\r\n        // Add event listener for resize\r\n        window.addEventListener(\"resize\", checkScreenSize)\r\n\r\n        // Cleanup\r\n        return () => window.removeEventListener(\"resize\", checkScreenSize)\r\n    }, [])\r\n\r\n    return orientation\r\n}\r\n",
        "language": "tsx"
      }
    },
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/orders-page-1/page": {
      "content": "import OrdersPage from \"./components/orders-page\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div className=\"min-h-screen bg-background\">\r\n            <OrdersPage />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "orders-page-2": {
    "components": {
      "@/registry/view/orders-page-2/components/orders-header": {
        "content": "import { SidebarTrigger } from \"@/components/ui/sidebar\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nexport function OrdersHeader() {\r\n    return (\r\n        <header className=\"group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 flex h-12 shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear px-4 lg:px-6\">\r\n            <div className=\"flex w-full items-center gap-1\">\r\n                <SidebarTrigger className=\"-ml-1\" />\r\n                <Separator\r\n                    orientation=\"vertical\"\r\n                    className=\"mx-2 data-[orientation=vertical]:h-4\"\r\n                />\r\n                <h1 className=\"text-base font-medium\">Orders</h1>\r\n            </div>\r\n        </header>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {
      "@/registry/view/orders-page-2/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/orders-page-2/page": {
      "content": "\"use client\"\r\n\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport {\r\n    DropdownMenu,\r\n    DropdownMenuContent,\r\n    DropdownMenuItem,\r\n    DropdownMenuSeparator,\r\n    DropdownMenuTrigger\r\n} from \"@/components/ui/dropdown-menu\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\r\nimport { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\"\r\nimport { ArrowUpDown, Download, Eye, Filter, MoreHorizontal, Search, Trash2 } from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport { useState } from \"react\"\r\nimport DashboardSidebar from \"../dashboard-2/components/dashboard-sidebar\"\r\nimport { OrdersHeader } from \"./components/orders-header\"\r\nimport { formatPrice } from \"./lib/utils\"\r\n\r\nconst orders = [\r\n    {\r\n        id: \"ORD-7352\",\r\n        date: \"2025-04-24\",\r\n        customer: \"Emma Johnson\",\r\n        email: \"emma.j@example.com\",\r\n        amount: 235.89,\r\n        status: \"Delivered\",\r\n        items: 3,\r\n    },\r\n    {\r\n        id: \"ORD-7351\",\r\n        date: \"2025-04-23\",\r\n        customer: \"Michael Chen\",\r\n        email: \"michael.c@example.com\",\r\n        amount: 125.99,\r\n        status: \"Processing\",\r\n        items: 2,\r\n    },\r\n    {\r\n        id: \"ORD-7350\",\r\n        date: \"2025-04-23\",\r\n        customer: \"Sophia Martinez\",\r\n        email: \"sophia.m@example.com\",\r\n        amount: 432.20,\r\n        status: \"Shipped\",\r\n        items: 5,\r\n    },\r\n    {\r\n        id: \"ORD-7349\",\r\n        date: \"2025-04-22\",\r\n        customer: \"James Wilson\",\r\n        email: \"james.w@example.com\",\r\n        amount: 76.45,\r\n        status: \"Delivered\",\r\n        items: 1,\r\n    },\r\n    {\r\n        id: \"ORD-7348\",\r\n        date: \"2025-04-21\",\r\n        customer: \"Olivia Brown\",\r\n        email: \"olivia.b@example.com\",\r\n        amount: 189.50,\r\n        status: \"Processing\",\r\n        items: 3,\r\n    },\r\n    {\r\n        id: \"ORD-7347\",\r\n        date: \"2025-04-20\",\r\n        customer: \"William Davis\",\r\n        email: \"william.d@example.com\",\r\n        amount: 312.75,\r\n        status: \"Delivered\",\r\n        items: 4,\r\n    },\r\n    {\r\n        id: \"ORD-7346\",\r\n        date: \"2025-04-19\",\r\n        customer: \"Ava Garcia\",\r\n        email: \"ava.g@example.com\",\r\n        amount: 94.20,\r\n        status: \"Shipped\",\r\n        items: 2,\r\n    },\r\n    {\r\n        id: \"ORD-7345\",\r\n        date: \"2025-04-18\",\r\n        customer: \"Noah Rodriguez\",\r\n        email: \"noah.r@example.com\",\r\n        amount: 156.30,\r\n        status: \"Delivered\",\r\n        items: 3,\r\n    },\r\n    {\r\n        id: \"ORD-7344\",\r\n        date: \"2025-04-17\",\r\n        customer: \"Isabella Lopez\",\r\n        email: \"isabella.l@example.com\",\r\n        amount: 210.45,\r\n        status: \"Processing\",\r\n        items: 2,\r\n    },\r\n    {\r\n        id: \"ORD-7343\",\r\n        date: \"2025-04-16\",\r\n        customer: \"Liam Gonzalez\",\r\n        email: \"liam.g@example.com\",\r\n        amount: 178.90,\r\n        status: \"Shipped\",\r\n        items: 3,\r\n    },\r\n]\r\n\r\nexport default function Page() {\r\n    const [searchTerm, setSearchTerm] = useState(\"\")\r\n    const [statusFilter, setStatusFilter] = useState(\"all\")\r\n    const [dateFilter, setDateFilter] = useState(\"all\")\r\n\r\n    const filteredOrders = orders.filter((order) => {\r\n        const matchesSearch =\r\n            order.id.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n            order.customer.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n            order.email.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n        const matchesStatus = statusFilter === \"all\" || order.status.toLowerCase() === statusFilter.toLowerCase()\r\n        let matchesDate = true\r\n        if (dateFilter === \"today\") {\r\n            matchesDate = order.date === \"2025-04-24\"\r\n        } else if (dateFilter === \"yesterday\") {\r\n            matchesDate = order.date === \"2025-04-23\"\r\n        } else if (dateFilter === \"week\") {\r\n\r\n            matchesDate = true\r\n        }\r\n\r\n        return matchesSearch && matchesStatus && matchesDate\r\n    })\r\n\r\n    return (\r\n        <SidebarProvider>\r\n            <DashboardSidebar variant=\"inset\" />\r\n            <SidebarInset>\r\n                <OrdersHeader />\r\n                <div className=\"flex flex-1 flex-col px-4 lg:px-6\">\r\n                    <div className=\"flex flex-1 flex-col gap-2\">\r\n                        <div className=\"flex flex-col gap-3 py-3 md:gap-6 md:py-6\">\r\n                            <div className=\"flex flex-col gap-4\">\r\n                                <div>\r\n                                    <h1 className=\"text-2xl md:text-3xl font-bold tracking-tight text-foreground\">Orders Management</h1>\r\n                                    <p className=\"mt-1 text-muted-foreground\">View and manage all customer orders</p>\r\n                                </div>\r\n                            </div>\r\n                            <Card className=\"overflow-hidden border-border shadow-sm\">\r\n                                <CardContent className=\"p-6\">\r\n                                    <div className=\"flex flex-col gap-6 md:flex-row md:items-center\">\r\n                                        <div className=\"flex-1 md:max-w-md\">\r\n                                            <div className=\"relative\">\r\n                                                <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\r\n                                                <Input\r\n                                                    type=\"search\"\r\n                                                    placeholder=\"Search by order ID, customer name or email...\"\r\n                                                    className=\"pl-10 bg-background\"\r\n                                                    value={searchTerm}\r\n                                                    onChange={(e) => setSearchTerm(e.target.value)}\r\n                                                />\r\n                                            </div>\r\n                                        </div>\r\n                                        <div className=\"flex flex-wrap items-center gap-3\">\r\n                                            <Select value={statusFilter} onValueChange={setStatusFilter}>\r\n                                                <SelectTrigger className=\"w-[180px] bg-background\">\r\n                                                    <SelectValue placeholder=\"Filter by status\" />\r\n                                                </SelectTrigger>\r\n                                                <SelectContent>\r\n                                                    <SelectItem value=\"all\">All Statuses</SelectItem>\r\n                                                    <SelectItem value=\"processing\">Processing</SelectItem>\r\n                                                    <SelectItem value=\"shipped\">Shipped</SelectItem>\r\n                                                    <SelectItem value=\"delivered\">Delivered</SelectItem>\r\n                                                </SelectContent>\r\n                                            </Select>\r\n                                            <Select value={dateFilter} onValueChange={setDateFilter}>\r\n                                                <SelectTrigger className=\"w-[180px] bg-background\">\r\n                                                    <SelectValue placeholder=\"Filter by date\" />\r\n                                                </SelectTrigger>\r\n                                                <SelectContent>\r\n                                                    <SelectItem value=\"all\">All Dates</SelectItem>\r\n                                                    <SelectItem value=\"today\">Today</SelectItem>\r\n                                                    <SelectItem value=\"yesterday\">Yesterday</SelectItem>\r\n                                                    <SelectItem value=\"week\">This Week</SelectItem>\r\n                                                </SelectContent>\r\n                                            </Select>\r\n                                            <Button variant=\"outline\" size=\"icon\" className=\"h-10 w-10 rounded-full\">\r\n                                                <Filter className=\"h-4 w-4\" />\r\n                                                <span className=\"sr-only\">More filters</span>\r\n                                            </Button>\r\n                                        </div>\r\n                                    </div>\r\n                                </CardContent>\r\n                            </Card>\r\n                            <Card className=\"overflow-hidden border-border shadow-sm\">\r\n                                <CardHeader className=\"bg-muted/40 px-6 py-5 border-b border-border\">\r\n                                    <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-2\">\r\n                                        <div>\r\n                                            <CardTitle className=\"text-xl font-semibold\">All Orders</CardTitle>\r\n                                            <CardDescription className=\"mt-1\">\r\n                                                Showing {filteredOrders.length} of {orders.length} total orders\r\n                                            </CardDescription>\r\n                                        </div>\r\n                                        <div className=\"flex items-center gap-2\">\r\n                                            <Button variant=\"outline\" size=\"sm\">\r\n                                                <Filter className=\"mr-2 h-3.5 w-3.5\" />\r\n                                                Filter\r\n                                            </Button>\r\n                                            <Button variant=\"outline\" size=\"sm\">\r\n                                                <Download className=\"mr-2 h-3.5 w-3.5\" />\r\n                                                Export\r\n                                            </Button>\r\n                                        </div>\r\n                                    </div>\r\n                                </CardHeader>\r\n                                <CardContent className=\"p-0\">\r\n                                    <div className=\"overflow-x-auto\">\r\n                                        <Table>\r\n                                            <TableHeader className=\"bg-muted/30\">\r\n                                                <TableRow className=\"hover:bg-muted/20\">\r\n                                                    <TableHead className=\"w-[100px] font-medium\">\r\n                                                        <Button variant=\"ghost\" className=\"hover:bg-transparent font-medium\">\r\n                                                            Order ID\r\n                                                            <ArrowUpDown className=\"ml-2 h-3.5 w-3.5 text-muted-foreground\" />\r\n                                                        </Button>\r\n                                                    </TableHead>\r\n                                                    <TableHead className=\"font-medium\">\r\n                                                        <Button variant=\"ghost\" className=\" hover:bg-transparent font-medium\">\r\n                                                            Date\r\n                                                            <ArrowUpDown className=\"ml-2 h-3.5 w-3.5 text-muted-foreground\" />\r\n                                                        </Button>\r\n                                                    </TableHead>\r\n                                                    <TableHead className=\"font-medium\">Customer</TableHead>\r\n                                                    <TableHead className=\"font-medium\">Items</TableHead>\r\n                                                    <TableHead className=\"font-medium\">\r\n                                                        <Button variant=\"ghost\" className=\" hover:bg-transparent font-medium\">\r\n                                                            Status\r\n                                                            <ArrowUpDown className=\"ml-2 h-3.5 w-3.5 text-muted-foreground\" />\r\n                                                        </Button>\r\n                                                    </TableHead>\r\n                                                    <TableHead className=\"text-right font-medium\">\r\n                                                        <Button variant=\"ghost\" className=\" hover:bg-transparent font-medium\">\r\n                                                            Amount\r\n                                                            <ArrowUpDown className=\"ml-2 h-3.5 w-3.5 text-muted-foreground\" />\r\n                                                        </Button>\r\n                                                    </TableHead>\r\n                                                    <TableHead className=\"w-[50px]\"></TableHead>\r\n                                                </TableRow>\r\n                                            </TableHeader>\r\n                                            <TableBody>\r\n                                                {filteredOrders.length === 0 ? (\r\n                                                    <TableRow>\r\n                                                        <TableCell colSpan={7} className=\"h-24 text-center\">\r\n                                                            <div className=\"flex flex-col items-center justify-center text-muted-foreground\">\r\n                                                                <Search className=\"h-8 w-8 mb-2 opacity-50\" />\r\n                                                                <p>No orders found matching your criteria.</p>\r\n                                                                <Button\r\n                                                                    variant=\"link\"\r\n                                                                    onClick={() => {\r\n                                                                        setSearchTerm(\"\")\r\n                                                                        setStatusFilter(\"all\")\r\n                                                                        setDateFilter(\"all\")\r\n                                                                    }}\r\n                                                                >\r\n                                                                    Clear all filters\r\n                                                                </Button>\r\n                                                            </div>\r\n                                                        </TableCell>\r\n                                                    </TableRow>\r\n                                                ) : (\r\n                                                    filteredOrders.map((order) => (\r\n                                                        <TableRow key={order.id} className=\"hover:bg-muted/20\">\r\n                                                            <TableCell className=\"font-medium py-2 px-6\">{order.id}</TableCell>\r\n                                                            <TableCell className=\"py-2 px-6 text-nowrap\">{order.date}</TableCell>\r\n                                                            <TableCell className=\"py-2 px-6\">\r\n                                                                <div>\r\n                                                                    <div className=\"font-medium\">{order.customer}</div>\r\n                                                                    <div className=\"text-sm text-muted-foreground\">{order.email}</div>\r\n                                                                </div>\r\n                                                            </TableCell>\r\n                                                            <TableCell className=\"py-2 px-6\">\r\n                                                                <Badge variant=\"outline\" className=\"bg-background text-nowrap\">\r\n                                                                    {order.items} items\r\n                                                                </Badge>\r\n                                                            </TableCell>\r\n                                                            <TableCell className=\"py-2 px-6\">\r\n                                                                <Badge\r\n                                                                    variant={\r\n                                                                        order.status === \"Delivered\"\r\n                                                                            ? \"default\"\r\n                                                                            : order.status === \"Processing\"\r\n                                                                                ? \"secondary\"\r\n                                                                                : \"outline\"\r\n                                                                    }\r\n                                                                    className={\r\n                                                                        order.status === \"Delivered\"\r\n                                                                            ? \"bg-green-100 text-green-800 hover:bg-green-100\"\r\n                                                                            : order.status === \"Processing\"\r\n                                                                                ? \"bg-amber-100 text-amber-800 hover:bg-amber-100\"\r\n                                                                                : \"bg-blue-100 text-blue-800 hover:bg-blue-100\"\r\n                                                                    }\r\n                                                                >\r\n                                                                    {order.status}\r\n                                                                </Badge>\r\n                                                            </TableCell>\r\n                                                            <TableCell className=\"text-right font-medium py-2 px-6\">{formatPrice(order?.amount)}</TableCell>\r\n                                                            <TableCell className=\"py-2 px-6\">\r\n                                                                <DropdownMenu>\r\n                                                                    <DropdownMenuTrigger asChild>\r\n                                                                        <Button variant=\"ghost\" size=\"icon\" className=\"h-8 w-8 rounded-full\">\r\n                                                                            <MoreHorizontal className=\"h-4 w-4\" />\r\n                                                                            <span className=\"sr-only\">Open menu</span>\r\n                                                                        </Button>\r\n                                                                    </DropdownMenuTrigger>\r\n                                                                    <DropdownMenuContent align=\"end\" className=\"w-[180px]\">\r\n                                                                        <DropdownMenuItem asChild>\r\n                                                                            <Link href={`/dashboard/orders/${order.id}`} className=\"flex items-center\">\r\n                                                                                <Eye className=\"mr-2 h-4 w-4\" />\r\n                                                                                View details\r\n                                                                            </Link>\r\n                                                                        </DropdownMenuItem>\r\n                                                                        <DropdownMenuItem className=\"flex items-center\">\r\n                                                                            <Download className=\"mr-2 h-4 w-4\" />\r\n                                                                            Download invoice\r\n                                                                        </DropdownMenuItem>\r\n                                                                        <DropdownMenuSeparator />\r\n                                                                        <DropdownMenuItem className=\"text-destructive flex items-center\">\r\n                                                                            <Trash2 className=\"mr-2 h-4 w-4\" />\r\n                                                                            Delete order\r\n                                                                        </DropdownMenuItem>\r\n                                                                    </DropdownMenuContent>\r\n                                                                </DropdownMenu>\r\n                                                            </TableCell>\r\n                                                        </TableRow>\r\n                                                    ))\r\n                                                )}\r\n                                            </TableBody>\r\n                                        </Table>\r\n                                    </div>\r\n                                </CardContent>\r\n                            </Card>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </SidebarInset>\r\n        </SidebarProvider>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "orders-page-3": {
    "components": {
      "@/registry/view/orders-page-3/components/header": {
        "content": "import { SidebarTrigger } from \"@/components/ui/sidebar\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nexport function Header() {\r\n    return (\r\n        <header className=\"group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 flex h-12 shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear px-4 lg:px-6\">\r\n            <div className=\"flex w-full items-center gap-1\">\r\n                <SidebarTrigger className=\"-ml-1\" />\r\n                <Separator\r\n                    orientation=\"vertical\"\r\n                    className=\"mx-2 data-[orientation=vertical]:h-4\"\r\n                />\r\n                <h1 className=\"text-base font-medium\">Orders</h1>\r\n            </div>\r\n        </header>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/nav-documents": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  FolderIcon,\r\n  MoreHorizontalIcon,\r\n  ShareIcon,\r\n  type LucideIcon,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupLabel,\r\n  SidebarMenu,\r\n  SidebarMenuAction,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n  useSidebar,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuContent,\r\n  DropdownMenuItem,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\nimport Link from \"next/link\"\r\n\r\nexport function NavDocuments({\r\n  items,\r\n}: {\r\n  items: {\r\n    name: string\r\n    url: string\r\n    icon: LucideIcon\r\n  }[]\r\n}) {\r\n  const { isMobile } = useSidebar()\r\n\r\n  return (\r\n    <SidebarGroup className=\"group-data-[collapsible=icon]:hidden\">\r\n      <SidebarGroupLabel>Documents</SidebarGroupLabel>\r\n      <SidebarMenu>\r\n        {items.map((item) => (\r\n          <SidebarMenuItem key={item.name}>\r\n            <SidebarMenuButton asChild>\r\n              <Link\r\n                href={item.url}>\r\n                <item.icon />\r\n                <span>{item.name}</span>\r\n              </Link>\r\n            </SidebarMenuButton>\r\n            <DropdownMenu>\r\n              <DropdownMenuTrigger asChild>\r\n                <SidebarMenuAction\r\n                  showOnHover\r\n                  className=\"rounded-sm data-[state=open]:bg-accent\"\r\n                >\r\n                  <MoreHorizontalIcon />\r\n                  <span className=\"sr-only\">More</span>\r\n                </SidebarMenuAction>\r\n              </DropdownMenuTrigger>\r\n              <DropdownMenuContent\r\n                className=\"w-24 rounded-lg\"\r\n                side={isMobile ? \"bottom\" : \"right\"}\r\n                align={isMobile ? \"end\" : \"start\"}\r\n              >\r\n                <DropdownMenuItem>\r\n                  <FolderIcon />\r\n                  <span>Open</span>\r\n                </DropdownMenuItem>\r\n                <DropdownMenuItem>\r\n                  <ShareIcon />\r\n                  <span>Share</span>\r\n                </DropdownMenuItem>\r\n              </DropdownMenuContent>\r\n            </DropdownMenu>\r\n          </SidebarMenuItem>\r\n        ))}\r\n        <SidebarMenuItem>\r\n          <SidebarMenuButton className=\"text-sidebar-foreground/70\">\r\n            <MoreHorizontalIcon className=\"text-sidebar-foreground/70\" />\r\n            <span>More</span>\r\n          </SidebarMenuButton>\r\n        </SidebarMenuItem>\r\n      </SidebarMenu>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/nav-secondary": {
        "content": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { LucideIcon } from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarGroup,\r\n  SidebarGroupContent,\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\n\r\nexport function NavSecondary({\r\n  items,\r\n  ...props\r\n}: {\r\n  items: {\r\n    title: string\r\n    url: string\r\n    icon: LucideIcon\r\n  }[]\r\n} & React.ComponentPropsWithoutRef<typeof SidebarGroup>) {\r\n  return (\r\n    <SidebarGroup {...props}>\r\n      <SidebarGroupContent>\r\n        <SidebarMenu>\r\n          {items.map((item) => (\r\n            <SidebarMenuItem key={item.title}>\r\n              <SidebarMenuButton asChild>\r\n                <a href={item.url}>\r\n                  <item.icon />\r\n                  <span>{item.title}</span>\r\n                </a>\r\n              </SidebarMenuButton>\r\n            </SidebarMenuItem>\r\n          ))}\r\n        </SidebarMenu>\r\n      </SidebarGroupContent>\r\n    </SidebarGroup>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/nav-user": {
        "content": "\"use client\"\r\n\r\nimport {\r\n  BellIcon,\r\n  CreditCardIcon,\r\n  LogOutIcon,\r\n  MoreVerticalIcon,\r\n  UserCircleIcon,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n  SidebarMenu,\r\n  SidebarMenuButton,\r\n  SidebarMenuItem,\r\n  useSidebar,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n  Avatar,\r\n  AvatarFallback,\r\n  AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\nimport {\r\n  DropdownMenu,\r\n  DropdownMenuContent,\r\n  DropdownMenuGroup,\r\n  DropdownMenuItem,\r\n  DropdownMenuLabel,\r\n  DropdownMenuSeparator,\r\n  DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nexport function NavUser({\r\n  user,\r\n}: {\r\n  user: {\r\n    name: string\r\n    email: string\r\n    avatar: string\r\n  }\r\n}) {\r\n  const { isMobile } = useSidebar()\r\n\r\n  return (\r\n    <SidebarMenu>\r\n      <SidebarMenuItem>\r\n        <DropdownMenu>\r\n          <DropdownMenuTrigger asChild>\r\n            <SidebarMenuButton\r\n              size=\"lg\"\r\n              className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\r\n            >\r\n              <Avatar className=\"h-8 w-8 rounded-lg grayscale\">\r\n                <AvatarImage src={user.avatar} alt={user.name} />\r\n                <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n              </Avatar>\r\n              <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                <span className=\"truncate font-medium\">{user.name}</span>\r\n                <span className=\"truncate text-xs text-muted-foreground\">\r\n                  {user.email}\r\n                </span>\r\n              </div>\r\n              <MoreVerticalIcon className=\"ml-auto size-4\" />\r\n            </SidebarMenuButton>\r\n          </DropdownMenuTrigger>\r\n          <DropdownMenuContent\r\n            className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\r\n            side={isMobile ? \"bottom\" : \"right\"}\r\n            align=\"end\"\r\n            sideOffset={4}\r\n          >\r\n            <DropdownMenuLabel className=\"p-0 font-normal\">\r\n              <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\r\n                <Avatar className=\"h-8 w-8 rounded-lg\">\r\n                  <AvatarImage src={user.avatar} alt={user.name} />\r\n                  <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\r\n                </Avatar>\r\n                <div className=\"grid flex-1 text-left text-sm leading-tight\">\r\n                  <span className=\"truncate font-medium\">{user.name}</span>\r\n                  <span className=\"truncate text-xs text-muted-foreground\">\r\n                    {user.email}\r\n                  </span>\r\n                </div>\r\n              </div>\r\n            </DropdownMenuLabel>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuGroup>\r\n              <DropdownMenuItem>\r\n                <UserCircleIcon />\r\n                Account\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <CreditCardIcon />\r\n                Billing\r\n              </DropdownMenuItem>\r\n              <DropdownMenuItem>\r\n                <BellIcon />\r\n                Notifications\r\n              </DropdownMenuItem>\r\n            </DropdownMenuGroup>\r\n            <DropdownMenuSeparator />\r\n            <DropdownMenuItem>\r\n              <LogOutIcon />\r\n              Log out\r\n            </DropdownMenuItem>\r\n          </DropdownMenuContent>\r\n        </DropdownMenu>\r\n      </SidebarMenuItem>\r\n    </SidebarMenu>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/orders-cards": {
        "content": "import { Badge } from \"@/components/ui/badge\"\r\nimport { Card, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\r\nimport { formatPrice } from \"../../orders-page-2/lib/utils\"\r\n\r\nexport function OrdersCards() {\r\n    return (\r\n        <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-4\">\r\n            <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n                <CardHeader className=\"relative\">\r\n                    <CardDescription>Total Orders</CardDescription>\r\n                    <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">2,543</CardTitle>\r\n                    <div className=\"absolute right-4 top-4\">\r\n                        <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n                            <TrendingUpIcon className=\"size-3\" />\r\n                            +15.3%\r\n                        </Badge>\r\n                    </div>\r\n                </CardHeader>\r\n                <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n                    <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n                        Increased from last month <TrendingUpIcon className=\"size-4\" />\r\n                    </div>\r\n                    <div className=\"text-muted-foreground\">245 more orders than previous period</div>\r\n                </CardFooter>\r\n            </Card>\r\n            <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm \">\r\n                <CardHeader className=\"relative\">\r\n                    <CardDescription>Average Order Value</CardDescription>\r\n                    <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">\r\n                        {formatPrice(89.5)}\r\n                    </CardTitle>\r\n                    <div className=\"absolute right-4 top-4\">\r\n                        <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n                            <TrendingUpIcon className=\"size-3\" />\r\n                            +5.2%\r\n                        </Badge>\r\n                    </div>\r\n                </CardHeader>\r\n                <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n                    <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n                        Slight increase <TrendingUpIcon className=\"size-4\" />\r\n                    </div>\r\n                    <div className=\"text-muted-foreground\">{formatPrice(4.5)} higher than last month</div>\r\n                </CardFooter>\r\n            </Card>\r\n            <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n                <CardHeader className=\"relative\">\r\n                    <CardDescription>Pending Orders</CardDescription>\r\n                    <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">78</CardTitle>\r\n                    <div className=\"absolute right-4 top-4\">\r\n                        <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n                            <TrendingDownIcon className=\"size-3\" />\r\n                            -8.3%\r\n                        </Badge>\r\n                    </div>\r\n                </CardHeader>\r\n                <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n                    <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n                        Improved processing time <TrendingDownIcon className=\"size-4\" />\r\n                    </div>\r\n                    <div className=\"text-muted-foreground\">Faster fulfillment than previous month</div>\r\n                </CardFooter>\r\n            </Card>\r\n            <Card className=\"bg-gradient-to-t from-primary/5 to-card dark:from-primary/10 shadow-sm\">\r\n                <CardHeader className=\"relative\">\r\n                    <CardDescription>Conversion Rate</CardDescription>\r\n                    <CardTitle className=\"@[250px]/card:text-3xl text-2xl font-semibold tabular-nums\">3.8%</CardTitle>\r\n                    <div className=\"absolute right-4 top-4\">\r\n                        <Badge variant=\"outline\" className=\"flex gap-1 rounded-lg text-xs\">\r\n                            <TrendingUpIcon className=\"size-3\" />\r\n                            +0.5%\r\n                        </Badge>\r\n                    </div>\r\n                </CardHeader>\r\n                <CardFooter className=\"flex-col items-start gap-1 text-sm\">\r\n                    <div className=\"line-clamp-1 flex gap-2 font-medium\">\r\n                        Steady improvement <TrendingUpIcon className=\"size-4\" />\r\n                    </div>\r\n                    <div className=\"text-muted-foreground\">Cart abandonment rate decreased</div>\r\n                </CardFooter>\r\n            </Card>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/orders-chart": {
        "content": "\"use client\"\r\n\r\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from \"@/components/ui/chart\"\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\r\nimport { ToggleGroup, ToggleGroupItem } from \"@/components/ui/toggle-group\"\r\nimport { useIsMobile } from \"@/hooks/use-mobile\"\r\nimport * as React from \"react\"\r\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\r\n\r\nconst chartData = [\r\n    { date: \"2024-04-01\", completed: 42, pending: 15, shipped: 25, processing: 18, cancelled: 5 },\r\n    { date: \"2024-04-02\", completed: 37, pending: 18, shipped: 22, processing: 15, cancelled: 3 },\r\n    { date: \"2024-04-03\", completed: 45, pending: 12, shipped: 28, processing: 20, cancelled: 4 },\r\n    { date: \"2024-04-04\", completed: 52, pending: 26, shipped: 30, processing: 22, cancelled: 6 },\r\n    { date: \"2024-04-05\", completed: 63, pending: 29, shipped: 35, processing: 25, cancelled: 8 },\r\n    { date: \"2024-04-06\", completed: 71, pending: 34, shipped: 40, processing: 30, cancelled: 7 },\r\n    { date: \"2024-04-07\", completed: 55, pending: 18, shipped: 32, processing: 24, cancelled: 5 },\r\n    { date: \"2024-04-08\", completed: 69, pending: 32, shipped: 38, processing: 28, cancelled: 9 },\r\n    { date: \"2024-04-09\", completed: 39, pending: 11, shipped: 25, processing: 18, cancelled: 4 },\r\n    { date: \"2024-04-10\", completed: 51, pending: 19, shipped: 30, processing: 22, cancelled: 6 },\r\n    { date: \"2024-04-11\", completed: 67, pending: 35, shipped: 36, processing: 27, cancelled: 8 },\r\n    { date: \"2024-04-12\", completed: 52, pending: 21, shipped: 31, processing: 23, cancelled: 5 },\r\n    { date: \"2024-04-13\", completed: 72, pending: 38, shipped: 40, processing: 30, cancelled: 9 },\r\n    { date: \"2024-04-14\", completed: 47, pending: 22, shipped: 28, processing: 21, cancelled: 6 },\r\n    { date: \"2024-04-15\", completed: 40, pending: 17, shipped: 25, processing: 19, cancelled: 4 },\r\n    { date: \"2024-04-16\", completed: 48, pending: 19, shipped: 29, processing: 22, cancelled: 5 },\r\n    { date: \"2024-04-17\", completed: 76, pending: 36, shipped: 42, processing: 32, cancelled: 10 },\r\n    { date: \"2024-04-18\", completed: 74, pending: 41, shipped: 40, processing: 30, cancelled: 9 },\r\n    { date: \"2024-04-19\", completed: 53, pending: 18, shipped: 32, processing: 24, cancelled: 6 },\r\n    { date: \"2024-04-20\", completed: 39, pending: 15, shipped: 24, processing: 18, cancelled: 4 },\r\n    { date: \"2024-04-21\", completed: 47, pending: 20, shipped: 28, processing: 21, cancelled: 5 },\r\n    { date: \"2024-04-22\", completed: 54, pending: 17, shipped: 32, processing: 24, cancelled: 6 },\r\n    { date: \"2024-04-23\", completed: 48, pending: 23, shipped: 29, processing: 22, cancelled: 5 },\r\n    { date: \"2024-04-24\", completed: 67, pending: 29, shipped: 38, processing: 28, cancelled: 8 },\r\n    { date: \"2024-04-25\", completed: 55, pending: 25, shipped: 33, processing: 25, cancelled: 7 },\r\n    { date: \"2024-04-26\", completed: 35, pending: 13, shipped: 22, processing: 16, cancelled: 4 },\r\n    { date: \"2024-04-27\", completed: 83, pending: 42, shipped: 45, processing: 34, cancelled: 10 },\r\n    { date: \"2024-04-28\", completed: 42, pending: 18, shipped: 26, processing: 19, cancelled: 5 },\r\n    { date: \"2024-04-29\", completed: 65, pending: 24, shipped: 37, processing: 28, cancelled: 8 },\r\n    { date: \"2024-04-30\", completed: 84, pending: 38, shipped: 46, processing: 35, cancelled: 11 },\r\n    { date: \"2024-05-01\", completed: 55, pending: 22, shipped: 33, processing: 25, cancelled: 6 },\r\n    { date: \"2024-05-02\", completed: 63, pending: 31, shipped: 36, processing: 27, cancelled: 8 },\r\n    { date: \"2024-05-03\", completed: 57, pending: 19, shipped: 34, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-04\", completed: 85, pending: 42, shipped: 47, processing: 35, cancelled: 10 },\r\n    { date: \"2024-05-05\", completed: 91, pending: 39, shipped: 50, processing: 38, cancelled: 12 },\r\n    { date: \"2024-05-06\", completed: 98, pending: 52, shipped: 54, processing: 40, cancelled: 13 },\r\n    { date: \"2024-05-07\", completed: 78, pending: 30, shipped: 43, processing: 32, cancelled: 10 },\r\n    { date: \"2024-05-08\", completed: 49, pending: 21, shipped: 30, processing: 22, cancelled: 6 },\r\n    { date: \"2024-05-09\", completed: 57, pending: 18, shipped: 34, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-10\", completed: 63, pending: 33, shipped: 36, processing: 27, cancelled: 8 },\r\n    { date: \"2024-05-11\", completed: 75, pending: 27, shipped: 42, processing: 31, cancelled: 9 },\r\n    { date: \"2024-05-12\", completed: 57, pending: 24, shipped: 34, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-13\", completed: 57, pending: 16, shipped: 34, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-14\", completed: 88, pending: 49, shipped: 48, processing: 36, cancelled: 11 },\r\n    { date: \"2024-05-15\", completed: 93, pending: 38, shipped: 51, processing: 38, cancelled: 12 },\r\n    { date: \"2024-05-16\", completed: 78, pending: 40, shipped: 43, processing: 32, cancelled: 10 },\r\n    { date: \"2024-05-17\", completed: 99, pending: 42, shipped: 54, processing: 41, cancelled: 13 },\r\n    { date: \"2024-05-18\", completed: 75, pending: 35, shipped: 42, processing: 31, cancelled: 9 },\r\n    { date: \"2024-05-19\", completed: 55, pending: 18, shipped: 33, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-20\", completed: 57, pending: 23, shipped: 34, processing: 25, cancelled: 7 },\r\n    { date: \"2024-05-21\", completed: 32, pending: 14, shipped: 20, processing: 15, cancelled: 4 },\r\n    { date: \"2024-05-22\", completed: 31, pending: 12, shipped: 19, processing: 14, cancelled: 4 },\r\n    { date: \"2024-05-23\", completed: 62, pending: 29, shipped: 35, processing: 26, cancelled: 8 },\r\n    { date: \"2024-05-24\", completed: 64, pending: 22, shipped: 36, processing: 27, cancelled: 8 },\r\n    { date: \"2024-05-25\", completed: 61, pending: 25, shipped: 35, processing: 26, cancelled: 8 },\r\n    { date: \"2024-05-26\", completed: 53, pending: 17, shipped: 32, processing: 24, cancelled: 7 },\r\n    { date: \"2024-05-27\", completed: 90, pending: 46, shipped: 49, processing: 37, cancelled: 11 },\r\n    { date: \"2024-05-28\", completed: 53, pending: 19, shipped: 32, processing: 24, cancelled: 7 },\r\n    { date: \"2024-05-29\", completed: 38, pending: 13, shipped: 23, processing: 17, cancelled: 5 },\r\n    { date: \"2024-05-30\", completed: 70, pending: 28, shipped: 39, processing: 29, cancelled: 9 },\r\n    { date: \"2024-05-31\", completed: 58, pending: 23, shipped: 34, processing: 26, cancelled: 7 },\r\n    { date: \"2024-06-01\", completed: 58, pending: 20, shipped: 34, processing: 26, cancelled: 7 },\r\n    { date: \"2024-06-02\", completed: 90, pending: 41, shipped: 49, processing: 37, cancelled: 11 },\r\n    { date: \"2024-06-03\", completed: 43, pending: 16, shipped: 26, processing: 20, cancelled: 5 },\r\n    { date: \"2024-06-04\", completed: 89, pending: 38, shipped: 49, processing: 37, cancelled: 11 },\r\n    { date: \"2024-06-05\", completed: 38, pending: 14, shipped: 23, processing: 17, cancelled: 5 },\r\n    { date: \"2024-06-06\", completed: 64, pending: 25, shipped: 36, processing: 27, cancelled: 8 },\r\n    { date: \"2024-06-07\", completed: 73, pending: 37, shipped: 40, processing: 30, cancelled: 9 },\r\n    { date: \"2024-06-08\", completed: 85, pending: 32, shipped: 47, processing: 35, cancelled: 11 },\r\n    { date: \"2024-06-09\", completed: 98, pending: 48, shipped: 54, processing: 40, cancelled: 12 },\r\n    { date: \"2024-06-10\", completed: 55, pending: 20, shipped: 33, processing: 25, cancelled: 7 },\r\n    { date: \"2024-06-11\", completed: 42, pending: 15, shipped: 26, processing: 19, cancelled: 5 },\r\n    { date: \"2024-06-12\", completed: 92, pending: 42, shipped: 50, processing: 38, cancelled: 12 },\r\n    { date: \"2024-06-13\", completed: 41, pending: 13, shipped: 25, processing: 19, cancelled: 5 },\r\n    { date: \"2024-06-14\", completed: 86, pending: 38, shipped: 47, processing: 35, cancelled: 11 },\r\n    { date: \"2024-06-15\", completed: 67, pending: 35, shipped: 38, processing: 28, cancelled: 8 },\r\n    { date: \"2024-06-16\", completed: 71, pending: 31, shipped: 40, processing: 30, cancelled: 9 },\r\n    { date: \"2024-06-17\", completed: 95, pending: 52, shipped: 52, processing: 39, cancelled: 12 },\r\n    { date: \"2024-06-18\", completed: 47, pending: 17, shipped: 29, processing: 21, cancelled: 6 },\r\n    { date: \"2024-06-19\", completed: 71, pending: 29, shipped: 40, processing: 30, cancelled: 9 },\r\n    { date: \"2024-06-20\", completed: 88, pending: 45, shipped: 48, processing: 36, cancelled: 11 },\r\n    { date: \"2024-06-21\", completed: 59, pending: 21, shipped: 35, processing: 26, cancelled: 7 },\r\n    { date: \"2024-06-22\", completed: 67, pending: 27, shipped: 38, processing: 28, cancelled: 8 },\r\n    { date: \"2024-06-23\", completed: 100, pending: 53, shipped: 55, processing: 41, cancelled: 13 },\r\n    { date: \"2024-06-24\", completed: 52, pending: 18, shipped: 31, processing: 23, cancelled: 6 },\r\n    { date: \"2024-06-25\", completed: 51, pending: 19, shipped: 31, processing: 23, cancelled: 6 },\r\n    { date: \"2024-06-26\", completed: 84, pending: 38, shipped: 46, processing: 35, cancelled: 10 },\r\n    { date: \"2024-06-27\", completed: 88, pending: 49, shipped: 48, processing: 36, cancelled: 11 },\r\n    { date: \"2024-06-28\", completed: 49, pending: 20, shipped: 30, processing: 22, cancelled: 6 },\r\n    { date: \"2024-06-29\", completed: 43, pending: 16, shipped: 26, processing: 20, cancelled: 5 },\r\n    { date: \"2024-06-30\", completed: 86, pending: 40, shipped: 47, processing: 35, cancelled: 11 },\r\n]\r\n\r\nconst chartConfig = {\r\n    orders: {\r\n        label: \"Orders\",\r\n    },\r\n    completed: {\r\n        label: \"Completed\",\r\n        color: \"hsl(var(--chart-1))\",\r\n    },\r\n    shipped: {\r\n        label: \"Shipped\",\r\n        color: \"hsl(var(--chart-3))\",\r\n    },\r\n    processing: {\r\n        label: \"Processing\",\r\n        color: \"hsl(var(--chart-4))\",\r\n    },\r\n    pending: {\r\n        label: \"Pending\",\r\n        color: \"hsl(var(--chart-2))\",\r\n    },\r\n    cancelled: {\r\n        label: \"Cancelled\",\r\n        color: \"hsl(var(--chart-5))\",\r\n    },\r\n} satisfies ChartConfig\r\n\r\nexport function OrdersChart() {\r\n    const isMobile = useIsMobile()\r\n    const [timeRange, setTimeRange] = React.useState(\"30d\")\r\n\r\n    React.useEffect(() => {\r\n        if (isMobile) {\r\n            setTimeRange(\"7d\")\r\n        }\r\n    }, [isMobile])\r\n\r\n    const filteredData = chartData.filter((item) => {\r\n        const date = new Date(item.date)\r\n        const referenceDate = new Date(\"2024-06-30\")\r\n        let daysToSubtract = 90\r\n        if (timeRange === \"30d\") {\r\n            daysToSubtract = 30\r\n        } else if (timeRange === \"7d\") {\r\n            daysToSubtract = 7\r\n        }\r\n        const startDate = new Date(referenceDate)\r\n        startDate.setDate(startDate.getDate() - daysToSubtract)\r\n        return date >= startDate\r\n    })\r\n\r\n    return (\r\n        <Card className=\"@container/card\">\r\n            <CardHeader className=\"relative\">\r\n                <CardTitle>Order Trends</CardTitle>\r\n                <CardDescription>\r\n                    <span className=\"@[540px]/card:block hidden\">Order status breakdown over time</span>\r\n                    <span className=\"@[540px]/card:hidden\">Order status over time</span>\r\n                </CardDescription>\r\n                <div className=\"absolute right-4 top-4\">\r\n                    <ToggleGroup\r\n                        type=\"single\"\r\n                        value={timeRange}\r\n                        onValueChange={setTimeRange}\r\n                        variant=\"outline\"\r\n                        className=\"@[767px]/card:flex hidden\"\r\n                    >\r\n                        <ToggleGroupItem value=\"90d\" className=\"h-8 px-2.5\">\r\n                            Last 3 months\r\n                        </ToggleGroupItem>\r\n                        <ToggleGroupItem value=\"30d\" className=\"h-8 px-2.5\">\r\n                            Last 30 days\r\n                        </ToggleGroupItem>\r\n                        <ToggleGroupItem value=\"7d\" className=\"h-8 px-2.5\">\r\n                            Last 7 days\r\n                        </ToggleGroupItem>\r\n                    </ToggleGroup>\r\n                    <Select value={timeRange} onValueChange={setTimeRange}>\r\n                        <SelectTrigger className=\"@[767px]/card:hidden flex w-40\" aria-label=\"Select a time range\">\r\n                            <SelectValue placeholder=\"Last 3 months\" />\r\n                        </SelectTrigger>\r\n                        <SelectContent className=\"rounded-xl\">\r\n                            <SelectItem value=\"90d\" className=\"rounded-lg\">\r\n                                Last 3 months\r\n                            </SelectItem>\r\n                            <SelectItem value=\"30d\" className=\"rounded-lg\">\r\n                                Last 30 days\r\n                            </SelectItem>\r\n                            <SelectItem value=\"7d\" className=\"rounded-lg\">\r\n                                Last 7 days\r\n                            </SelectItem>\r\n                        </SelectContent>\r\n                    </Select>\r\n                </div>\r\n            </CardHeader>\r\n            <CardContent className=\"px-2 pt-4 sm:px-6 sm:pt-6\">\r\n                <ChartContainer config={chartConfig} className=\"aspect-auto h-[300px] w-full\">\r\n                    <AreaChart data={filteredData}>\r\n                        <defs>\r\n                            <linearGradient id=\"fillCompleted\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                                <stop offset=\"5%\" stopColor=\"var(--color-completed)\" stopOpacity={1.0} />\r\n                                <stop offset=\"95%\" stopColor=\"var(--color-completed)\" stopOpacity={0.1} />\r\n                            </linearGradient>\r\n                            <linearGradient id=\"fillShipped\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                                <stop offset=\"5%\" stopColor=\"var(--color-shipped)\" stopOpacity={0.9} />\r\n                                <stop offset=\"95%\" stopColor=\"var(--color-shipped)\" stopOpacity={0.1} />\r\n                            </linearGradient>\r\n                            <linearGradient id=\"fillProcessing\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                                <stop offset=\"5%\" stopColor=\"var(--color-processing)\" stopOpacity={0.9} />\r\n                                <stop offset=\"95%\" stopColor=\"var(--color-processing)\" stopOpacity={0.1} />\r\n                            </linearGradient>\r\n                            <linearGradient id=\"fillPending\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                                <stop offset=\"5%\" stopColor=\"var(--color-pending)\" stopOpacity={0.8} />\r\n                                <stop offset=\"95%\" stopColor=\"var(--color-pending)\" stopOpacity={0.1} />\r\n                            </linearGradient>\r\n                            <linearGradient id=\"fillCancelled\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n                                <stop offset=\"5%\" stopColor=\"var(--color-cancelled)\" stopOpacity={0.7} />\r\n                                <stop offset=\"95%\" stopColor=\"var(--color-cancelled)\" stopOpacity={0.1} />\r\n                            </linearGradient>\r\n                        </defs>\r\n                        <CartesianGrid vertical={false} />\r\n                        <XAxis\r\n                            dataKey=\"date\"\r\n                            tickLine={false}\r\n                            axisLine={false}\r\n                            tickMargin={8}\r\n                            minTickGap={32}\r\n                            tickFormatter={(value) => {\r\n                                const date = new Date(value)\r\n                                return date.toLocaleDateString(\"en-US\", {\r\n                                    month: \"short\",\r\n                                    day: \"numeric\",\r\n                                })\r\n                            }}\r\n                        />\r\n                        <ChartTooltip\r\n                            cursor={false}\r\n                            content={\r\n                                <ChartTooltipContent\r\n                                    labelFormatter={(value) => {\r\n                                        return new Date(value).toLocaleDateString(\"en-US\", {\r\n                                            month: \"short\",\r\n                                            day: \"numeric\",\r\n                                        })\r\n                                    }}\r\n                                    indicator=\"dot\"\r\n                                />\r\n                            }\r\n                        />\r\n                        <Area\r\n                            dataKey=\"cancelled\"\r\n                            type=\"natural\"\r\n                            fill=\"url(#fillCancelled)\"\r\n                            stroke=\"var(--color-cancelled)\"\r\n                            stackId=\"a\"\r\n                        />\r\n                        <Area dataKey=\"pending\" type=\"natural\" fill=\"url(#fillPending)\" stroke=\"var(--color-pending)\" stackId=\"a\" />\r\n                        <Area\r\n                            dataKey=\"processing\"\r\n                            type=\"natural\"\r\n                            fill=\"url(#fillProcessing)\"\r\n                            stroke=\"var(--color-processing)\"\r\n                            stackId=\"a\"\r\n                        />\r\n                        <Area dataKey=\"shipped\" type=\"natural\" fill=\"url(#fillShipped)\" stroke=\"var(--color-shipped)\" stackId=\"a\" />\r\n                        <Area\r\n                            dataKey=\"completed\"\r\n                            type=\"natural\"\r\n                            fill=\"url(#fillCompleted)\"\r\n                            stroke=\"var(--color-completed)\"\r\n                            stackId=\"a\"\r\n                        />\r\n                    </AreaChart>\r\n                </ChartContainer>\r\n            </CardContent>\r\n        </Card>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/orders-stats": {
        "content": "\"use client\"\r\n\r\nimport { ArrowDownIcon, ArrowUpIcon, DollarSignIcon, PackageIcon, ShoppingCartIcon, TruckIcon } from \"lucide-react\"\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\r\n\r\nexport function OrdersStats() {\r\n    return (\r\n        <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Total Orders</CardTitle>\r\n                    <ShoppingCartIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">1,284</div>\r\n                    <div className=\"flex items-center text-xs text-muted-foreground\">\r\n                        <ArrowUpIcon className=\"mr-1 h-3 w-3 text-green-500\" />\r\n                        <span className=\"text-green-500\">12%</span>\r\n                        <span className=\"ml-1\">from last month</span>\r\n                    </div>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Pending Orders</CardTitle>\r\n                    <PackageIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">145</div>\r\n                    <div className=\"flex items-center text-xs text-muted-foreground\">\r\n                        <ArrowUpIcon className=\"mr-1 h-3 w-3 text-amber-500\" />\r\n                        <span className=\"text-amber-500\">8%</span>\r\n                        <span className=\"ml-1\">from last month</span>\r\n                    </div>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Shipped Orders</CardTitle>\r\n                    <TruckIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">842</div>\r\n                    <div className=\"flex items-center text-xs text-muted-foreground\">\r\n                        <ArrowUpIcon className=\"mr-1 h-3 w-3 text-green-500\" />\r\n                        <span className=\"text-green-500\">16%</span>\r\n                        <span className=\"ml-1\">from last month</span>\r\n                    </div>\r\n                </CardContent>\r\n            </Card>\r\n            <Card>\r\n                <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\r\n                    <CardTitle className=\"text-sm font-medium\">Revenue</CardTitle>\r\n                    <DollarSignIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                </CardHeader>\r\n                <CardContent>\r\n                    <div className=\"text-2xl font-bold\">$48,294</div>\r\n                    <div className=\"flex items-center text-xs text-muted-foreground\">\r\n                        <ArrowDownIcon className=\"mr-1 h-3 w-3 text-red-500\" />\r\n                        <span className=\"text-red-500\">3%</span>\r\n                        <span className=\"ml-1\">from last month</span>\r\n                    </div>\r\n                </CardContent>\r\n            </Card>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/orders-table": {
        "content": "\"use client\"\r\n\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Checkbox } from \"@/components/ui/checkbox\"\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/custom-tabs\"\r\nimport {\r\n    Dialog,\r\n    DialogContent,\r\n    DialogDescription,\r\n    DialogFooter,\r\n    DialogHeader,\r\n    DialogTitle,\r\n} from \"@/components/ui/dialog\"\r\nimport {\r\n    DropdownMenu,\r\n    DropdownMenuCheckboxItem,\r\n    DropdownMenuContent,\r\n    DropdownMenuItem,\r\n    DropdownMenuSeparator,\r\n    DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\nimport {\r\n    Sheet,\r\n    SheetClose,\r\n    SheetContent,\r\n    SheetDescription,\r\n    SheetFooter,\r\n    SheetHeader,\r\n    SheetTitle,\r\n} from \"@/components/ui/sheet\"\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\r\nimport {\r\n    closestCenter,\r\n    DndContext,\r\n    type DragEndEvent,\r\n    KeyboardSensor,\r\n    MouseSensor,\r\n    TouchSensor,\r\n    type UniqueIdentifier,\r\n    useSensor,\r\n    useSensors,\r\n} from \"@dnd-kit/core\"\r\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\r\nimport { arrayMove, SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\"\r\nimport { CSS } from \"@dnd-kit/utilities\"\r\nimport {\r\n    type ColumnDef,\r\n    type ColumnFiltersState,\r\n    flexRender,\r\n    getCoreRowModel,\r\n    getFacetedRowModel,\r\n    getFacetedUniqueValues,\r\n    getFilteredRowModel,\r\n    getPaginationRowModel,\r\n    getSortedRowModel,\r\n    type Row,\r\n    type SortingState,\r\n    useReactTable,\r\n    type VisibilityState,\r\n} from \"@tanstack/react-table\"\r\nimport {\r\n    CheckCircle2Icon,\r\n    ChevronDownIcon,\r\n    ChevronLeftIcon,\r\n    ChevronRightIcon,\r\n    ChevronsLeftIcon,\r\n    ChevronsRightIcon,\r\n    ClockIcon,\r\n    ColumnsIcon,\r\n    CreditCardIcon,\r\n    FilterIcon,\r\n    GripVerticalIcon,\r\n    HomeIcon,\r\n    MailIcon,\r\n    MapPinIcon,\r\n    MoreVerticalIcon,\r\n    PackageIcon,\r\n    PhoneIcon,\r\n    PlusIcon,\r\n    SearchIcon,\r\n    TruckIcon,\r\n    UserIcon,\r\n    XCircleIcon,\r\n} from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { toast } from \"sonner\"\r\nimport { z } from \"zod\"\r\nimport { formatPrice } from \"../../orders-page-2/lib/utils\"\r\n\r\nexport const orderItemSchema = z.object({\r\n    id: z.number(),\r\n    name: z.string(),\r\n    price: z.number(),\r\n    quantity: z.number(),\r\n    total: z.number(),\r\n})\r\n\r\nexport const orderAddressSchema = z.object({\r\n    street: z.string(),\r\n    city: z.string(),\r\n    state: z.string(),\r\n    zipCode: z.string(),\r\n    country: z.string(),\r\n})\r\n\r\nexport const orderCustomerSchema = z.object({\r\n    name: z.string(),\r\n    email: z.string(),\r\n    phone: z.string().optional(),\r\n})\r\n\r\nexport const orderSchema = z.object({\r\n    id: z.number(),\r\n    orderNumber: z.string(),\r\n    customer: z.string(),\r\n    customerDetails: orderCustomerSchema.optional(),\r\n    date: z.string(),\r\n    status: z.string(),\r\n    total: z.number(),\r\n    items: z.number(),\r\n    orderItems: z.array(orderItemSchema).optional(),\r\n    paymentMethod: z.string(),\r\n    shippingAddress: orderAddressSchema.optional(),\r\n    billingAddress: orderAddressSchema.optional(),\r\n    notes: z.string().optional(),\r\n})\r\n\r\nfunction DragHandle({ id }: { id: number }) {\r\n    const { attributes, listeners } = useSortable({\r\n        id,\r\n    })\r\n\r\n    return (\r\n        <Button\r\n            {...attributes}\r\n            {...listeners}\r\n            variant=\"ghost\"\r\n            size=\"icon\"\r\n            className=\"size-7 text-muted-foreground hover:bg-transparent\"\r\n        >\r\n            <GripVerticalIcon className=\"size-3 text-muted-foreground\" />\r\n            <span className=\"sr-only\">Drag to reorder</span>\r\n        </Button>\r\n    )\r\n}\r\n\r\nconst getStatusIcon = (status: string) => {\r\n    switch (status) {\r\n        case \"Completed\":\r\n            return <CheckCircle2Icon className=\"text-green-500 dark:text-green-400\" />\r\n        case \"Processing\":\r\n            return <ClockIcon className=\"text-amber-500 dark:text-amber-400\" />\r\n        case \"Shipped\":\r\n            return <TruckIcon className=\"text-blue-500 dark:text-blue-400\" />\r\n        case \"Cancelled\":\r\n            return <XCircleIcon className=\"text-red-500 dark:text-red-400\" />\r\n        default:\r\n            return <PackageIcon />\r\n    }\r\n}\r\n\r\nconst getStatusColor = (status: string) => {\r\n    switch (status) {\r\n        case \"Completed\":\r\n            return \"text-green-500 dark:text-green-400\"\r\n        case \"Processing\":\r\n            return \"text-amber-500 dark:text-amber-400 \"\r\n        case \"Shipped\":\r\n            return \"text-blue-500 dark:text-blue-400\"\r\n        case \"Cancelled\":\r\n            return \"text-red-500 dark:text-red-400\"\r\n        default:\r\n            return \"text-muted-foreground\"\r\n    }\r\n}\r\n\r\nfunction OrderDetails({ order, onClose }: { order: z.infer<typeof orderSchema>; onClose: () => void }) {\r\n    return (\r\n        <SheetContent className=\"sm:max-w-xl\">\r\n            <SheetHeader>\r\n                <SheetTitle>Order #{order.orderNumber}</SheetTitle>\r\n                <SheetDescription>\r\n                    Placed on {new Date(order.date).toLocaleDateString()} • {order.status}\r\n                </SheetDescription>\r\n            </SheetHeader>\r\n\r\n            <Tabs defaultValue=\"details\" className=\"mt-6\">\r\n                <TabsList className=\"grid w-full grid-cols-3\">\r\n                    <TabsTrigger value=\"details\">Details</TabsTrigger>\r\n                    <TabsTrigger value=\"items\">Items</TabsTrigger>\r\n                    <TabsTrigger value=\"customer\">Customer</TabsTrigger>\r\n                </TabsList>\r\n\r\n                <TabsContent value=\"details\" className=\"space-y-4 pt-4\">\r\n                    <div className=\"grid gap-4\">\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <div className=\"font-medium\">Status</div>\r\n                            <Badge variant=\"outline\" className={`flex gap-1 px-1.5 ${getStatusColor(order.status)} [&_svg]:size-3`}>\r\n                                {getStatusIcon(order.status)}\r\n                                {order.status}\r\n                            </Badge>\r\n                        </div>\r\n                        <Separator />\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <div className=\"font-medium\">Order Date</div>\r\n                            <div>{new Date(order.date).toLocaleDateString()}</div>\r\n                        </div>\r\n                        <Separator />\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <div className=\"font-medium\">Payment Method</div>\r\n                            <div className=\"flex items-center gap-2\">\r\n                                <CreditCardIcon className=\"h-4 w-4\" />\r\n                                {order.paymentMethod}\r\n                            </div>\r\n                        </div>\r\n                        <Separator />\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <div className=\"font-medium\">Total Amount</div>\r\n                            <div className=\"font-semibold\">{formatPrice(order.total)}</div>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {order.shippingAddress && (\r\n                        <div className=\"mt-6 rounded-lg border p-4\">\r\n                            <h4 className=\"mb-2 flex items-center gap-2 font-medium\">\r\n                                <MapPinIcon className=\"h-4 w-4\" /> Shipping Address\r\n                            </h4>\r\n                            <div className=\"text-sm text-muted-foreground\">\r\n                                <p>{order.shippingAddress.street}</p>\r\n                                <p>\r\n                                    {order.shippingAddress.city}, {order.shippingAddress.state} {order.shippingAddress.zipCode}\r\n                                </p>\r\n                                <p>{order.shippingAddress.country}</p>\r\n                            </div>\r\n                        </div>\r\n                    )}\r\n\r\n                    {order.notes && (\r\n                        <div className=\"mt-4 rounded-lg border p-4\">\r\n                            <h4 className=\"mb-2 font-medium\">Order Notes</h4>\r\n                            <p className=\"text-sm text-muted-foreground\">{order.notes}</p>\r\n                        </div>\r\n                    )}\r\n                </TabsContent>\r\n\r\n                <TabsContent value=\"items\" className=\"pt-4\">\r\n                    {order.orderItems && order.orderItems.length > 0 ? (\r\n                        <div className=\"rounded-md border\">\r\n                            <Table>\r\n                                <TableHeader>\r\n                                    <TableRow>\r\n                                        <TableHead>Item</TableHead>\r\n                                        <TableHead className=\"text-right\">Qty</TableHead>\r\n                                        <TableHead className=\"text-right\">Price</TableHead>\r\n                                        <TableHead className=\"text-right\">Total</TableHead>\r\n                                    </TableRow>\r\n                                </TableHeader>\r\n                                <TableBody>\r\n                                    {order.orderItems.map((item) => (\r\n                                        <TableRow key={item.id}>\r\n                                            <TableCell>{item.name}</TableCell>\r\n                                            <TableCell className=\"text-right\">{item.quantity}</TableCell>\r\n                                            <TableCell className=\"text-right\">{formatPrice(item.price)}</TableCell>\r\n                                            <TableCell className=\"text-right\">{formatPrice(item.total)}</TableCell>\r\n                                        </TableRow>\r\n                                    ))}\r\n                                </TableBody>\r\n                            </Table>\r\n                        </div>\r\n                    ) : (\r\n                        <div className=\"flex h-[200px] items-center justify-center rounded-md border border-dashed\">\r\n                            <p className=\"text-sm text-muted-foreground\">No items available</p>\r\n                        </div>\r\n                    )}\r\n\r\n                    <div className=\"mt-4 space-y-2 text-right\">\r\n                        <div className=\"flex justify-between text-sm\">\r\n                            <span>Subtotal:</span>\r\n                            <span>{formatPrice(order.total * 0.9)}</span>\r\n                        </div>\r\n                        <div className=\"flex justify-between text-sm\">\r\n                            <span>Tax:</span>\r\n                            <span>{formatPrice(order.total * 0.1)}</span>\r\n                        </div>\r\n                        <Separator />\r\n                        <div className=\"flex justify-between font-medium\">\r\n                            <span>Total:</span>\r\n                            <span>{formatPrice(order.total)}</span>\r\n                        </div>\r\n                    </div>\r\n                </TabsContent>\r\n\r\n                <TabsContent value=\"customer\" className=\"space-y-4 pt-4\">\r\n                    {order.customerDetails ? (\r\n                        <div className=\"space-y-4\">\r\n                            <div className=\"flex items-center gap-4\">\r\n                                <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-muted\">\r\n                                    <UserIcon className=\"h-6 w-6 text-muted-foreground\" />\r\n                                </div>\r\n                                <div>\r\n                                    <h4 className=\"font-medium\">{order.customerDetails.name}</h4>\r\n                                    <p className=\"text-sm text-muted-foreground\">Customer</p>\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div className=\"grid gap-2\">\r\n                                <div className=\"flex items-center gap-2 text-sm\">\r\n                                    <MailIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                                    <span>{order.customerDetails.email}</span>\r\n                                </div>\r\n                                {order.customerDetails.phone && (\r\n                                    <div className=\"flex items-center gap-2 text-sm\">\r\n                                        <PhoneIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n                                        <span>{order.customerDetails.phone}</span>\r\n                                    </div>\r\n                                )}\r\n                            </div>\r\n\r\n                            {order.billingAddress && (\r\n                                <div className=\"mt-4 rounded-lg border p-4\">\r\n                                    <h4 className=\"mb-2 flex items-center gap-2 font-medium\">\r\n                                        <HomeIcon className=\"h-4 w-4\" /> Billing Address\r\n                                    </h4>\r\n                                    <div className=\"text-sm text-muted-foreground\">\r\n                                        <p>{order.billingAddress.street}</p>\r\n                                        <p>\r\n                                            {order.billingAddress.city}, {order.billingAddress.state} {order.billingAddress.zipCode}\r\n                                        </p>\r\n                                        <p>{order.billingAddress.country}</p>\r\n                                    </div>\r\n                                </div>\r\n                            )}\r\n                        </div>\r\n                    ) : (\r\n                        <div className=\"flex h-[200px] items-center justify-center rounded-md border border-dashed\">\r\n                            <p className=\"text-sm text-muted-foreground\">No customer details available</p>\r\n                        </div>\r\n                    )}\r\n                </TabsContent>\r\n            </Tabs>\r\n\r\n            <SheetFooter className=\"mt-6\">\r\n                <SheetClose asChild>\r\n                    <Button variant=\"outline\" onClick={onClose}>\r\n                        Close\r\n                    </Button>\r\n                </SheetClose>\r\n            </SheetFooter>\r\n        </SheetContent>\r\n    )\r\n}\r\n\r\nfunction UpdateStatusDialog({\r\n    order,\r\n    isOpen,\r\n    onClose,\r\n    onUpdateStatus,\r\n}: {\r\n    order: z.infer<typeof orderSchema> | null\r\n    isOpen: boolean\r\n    onClose: () => void\r\n    onUpdateStatus: (orderId: number, newStatus: string) => void\r\n}) {\r\n    const [status, setStatus] = React.useState<string>(order?.status || \"\")\r\n\r\n    React.useEffect(() => {\r\n        if (order) {\r\n            setStatus(order.status)\r\n        }\r\n    }, [order])\r\n\r\n    const handleSubmit = (e: React.FormEvent) => {\r\n        e.preventDefault()\r\n        if (order) {\r\n            onUpdateStatus(order.id, status)\r\n            onClose()\r\n        }\r\n    }\r\n\r\n    return (\r\n        <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\r\n            <DialogContent className=\"sm:max-w-md\">\r\n                <DialogHeader>\r\n                    <DialogTitle>Update Order Status</DialogTitle>\r\n                    <DialogDescription>\r\n                        Change the status for order #{order?.orderNumber}. This will be reflected immediately.\r\n                    </DialogDescription>\r\n                </DialogHeader>\r\n                <form onSubmit={handleSubmit}>\r\n                    <div className=\"grid gap-4 py-4\">\r\n                        <div className=\"grid gap-2\">\r\n                            <Label htmlFor=\"status\">Status</Label>\r\n                            <Select value={status} onValueChange={setStatus}>\r\n                                <SelectTrigger id=\"status\">\r\n                                    <SelectValue placeholder=\"Select new status\" />\r\n                                </SelectTrigger>\r\n                                <SelectContent>\r\n                                    <SelectItem value=\"Processing\">Processing</SelectItem>\r\n                                    <SelectItem value=\"Shipped\">Shipped</SelectItem>\r\n                                    <SelectItem value=\"Completed\">Completed</SelectItem>\r\n                                    <SelectItem value=\"Cancelled\">Cancelled</SelectItem>\r\n                                </SelectContent>\r\n                            </Select>\r\n                        </div>\r\n                        <div className=\"grid gap-2\">\r\n                            <Label htmlFor=\"notes\">Notes (Optional)</Label>\r\n                            <Input id=\"notes\" placeholder=\"Add notes about this status change\" />\r\n                        </div>\r\n                    </div>\r\n                    <DialogFooter>\r\n                        <Button type=\"button\" variant=\"outline\" onClick={onClose}>\r\n                            Cancel\r\n                        </Button>\r\n                        <Button type=\"submit\">Update Status</Button>\r\n                    </DialogFooter>\r\n                </form>\r\n            </DialogContent>\r\n        </Dialog>\r\n    )\r\n}\r\n\r\nfunction DraggableRow({ row }: { row: Row<z.infer<typeof orderSchema>> }) {\r\n    const { transform, transition, setNodeRef, isDragging } = useSortable({\r\n        id: row.original.id,\r\n    })\r\n\r\n    return (\r\n        <TableRow\r\n            data-state={row.getIsSelected() && \"selected\"}\r\n            data-dragging={isDragging}\r\n            ref={setNodeRef}\r\n            className=\"relative z-0 data-[dragging=true]:z-10 data-[dragging=true]:opacity-80\"\r\n            style={{\r\n                transform: CSS.Transform.toString(transform),\r\n                transition: transition,\r\n            }}\r\n        >\r\n            {row.getVisibleCells().map((cell) => (\r\n                <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\r\n            ))}\r\n        </TableRow>\r\n    )\r\n}\r\n\r\nexport function OrdersTable({\r\n    data: initialData,\r\n}: {\r\n    data: z.infer<typeof orderSchema>[]\r\n}) {\r\n    // Create a mutable copy of initialData to work with\r\n    const [allOrders, setAllOrders] = React.useState(() => [...initialData])\r\n    const [data, setData] = React.useState(() => [...initialData])\r\n    const [rowSelection, setRowSelection] = React.useState({})\r\n    const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\r\n    const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\r\n    const [sorting, setSorting] = React.useState<SortingState>([])\r\n    const [pagination, setPagination] = React.useState({\r\n        pageIndex: 0,\r\n        pageSize: 10,\r\n    })\r\n    const [searchQuery, setSearchQuery] = React.useState(\"\")\r\n    const [statusFilter, setStatusFilter] = React.useState(\"all\")\r\n    const [dateFilter, setDateFilter] = React.useState(\"all\")\r\n    const [selectedOrder, setSelectedOrder] = React.useState<z.infer<typeof orderSchema> | null>(null)\r\n    const [isUpdateStatusOpen, setIsUpdateStatusOpen] = React.useState(false)\r\n    const [isOrderDetailsOpen, setIsOrderDetailsOpen] = React.useState(false)\r\n    const sortableId = React.useId()\r\n    const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}))\r\n\r\n    const dataIds = React.useMemo<UniqueIdentifier[]>(() => data?.map(({ id }) => id) || [], [data])\r\n    const columns = React.useMemo<ColumnDef<z.infer<typeof orderSchema>>[]>(\r\n        () => [\r\n            {\r\n                id: \"drag\",\r\n                header: () => null,\r\n                cell: ({ row }) => <DragHandle id={row.original.id} />,\r\n            },\r\n            {\r\n                id: \"select\",\r\n                header: ({ table }) => (\r\n                    <div className=\"flex items-center justify-center\">\r\n                        <Checkbox\r\n                            checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && \"indeterminate\")}\r\n                            onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\r\n                            aria-label=\"Select all\"\r\n                        />\r\n                    </div>\r\n                ),\r\n                cell: ({ row }) => (\r\n                    <div className=\"flex items-center justify-center\">\r\n                        <Checkbox\r\n                            checked={row.getIsSelected()}\r\n                            onCheckedChange={(value) => row.toggleSelected(!!value)}\r\n                            aria-label=\"Select row\"\r\n                        />\r\n                    </div>\r\n                ),\r\n                enableSorting: false,\r\n                enableHiding: false,\r\n            },\r\n            {\r\n                accessorKey: \"orderNumber\",\r\n                header: \"Order #\",\r\n                cell: ({ row }) => {\r\n                    return (\r\n                        <Button\r\n                            variant=\"link\"\r\n                            className=\"p-0 font-medium text-foreground\"\r\n                            onClick={() => handleViewOrderDetails(row.original)}\r\n                        >\r\n                            {row.original.orderNumber}\r\n                        </Button>\r\n                    )\r\n                },\r\n            },\r\n            {\r\n                accessorKey: \"customer\",\r\n                header: \"Customer\",\r\n                cell: ({ row }) => <div>{row.original.customer}</div>,\r\n            },\r\n            {\r\n                accessorKey: \"date\",\r\n                header: \"Date\",\r\n                cell: ({ row }) => {\r\n                    const date = new Date(row.original.date)\r\n                    return (\r\n                        <div className=\"text-muted-foreground\">\r\n                            {date.toLocaleDateString(\"en-US\", {\r\n                                month: \"short\",\r\n                                day: \"numeric\",\r\n                                year: \"numeric\",\r\n                            })}\r\n                        </div>\r\n                    )\r\n                },\r\n            },\r\n            {\r\n                accessorKey: \"status\",\r\n                header: \"Status\",\r\n                cell: ({ row }) => (\r\n                    <Badge\r\n                        variant=\"outline\"\r\n                        className={`flex gap-1 px-1.5 ${getStatusColor(row.original.status)} [&_svg]:size-3`}\r\n                    >\r\n                        {getStatusIcon(row.original.status)}\r\n                        {row.original.status}\r\n                    </Badge>\r\n                ),\r\n            },\r\n            {\r\n                accessorKey: \"total\",\r\n                header: () => <div className=\"text-right\">Total</div>,\r\n                cell: ({ row }) => <div className=\"text-right font-medium\">{formatPrice(row.original.total)}</div>,\r\n            },\r\n            {\r\n                accessorKey: \"items\",\r\n                header: () => <div className=\"text-center\">Items</div>,\r\n                cell: ({ row }) => <div className=\"text-center\">{row.original.items}</div>,\r\n            },\r\n            {\r\n                accessorKey: \"paymentMethod\",\r\n                header: \"Payment\",\r\n                cell: ({ row }) => <div>{row.original.paymentMethod}</div>,\r\n            },\r\n            {\r\n                id: \"actions\",\r\n                cell: ({ row }) => (\r\n                    <DropdownMenu>\r\n                        <DropdownMenuTrigger asChild>\r\n                            <Button\r\n                                variant=\"ghost\"\r\n                                className=\"flex size-8 text-muted-foreground data-[state=open]:bg-muted\"\r\n                                size=\"icon\"\r\n                            >\r\n                                <MoreVerticalIcon />\r\n                                <span className=\"sr-only\">Open menu</span>\r\n                            </Button>\r\n                        </DropdownMenuTrigger>\r\n                        <DropdownMenuContent align=\"end\" className=\"w-40\">\r\n                            <DropdownMenuItem onClick={() => handleViewOrderDetails(row.original)}>View details</DropdownMenuItem>\r\n                            <DropdownMenuItem onClick={() => handleUpdateStatus(row.original)}>Update status</DropdownMenuItem>\r\n                            <DropdownMenuItem>Contact customer</DropdownMenuItem>\r\n                            <DropdownMenuSeparator />\r\n                            <DropdownMenuItem\r\n                                className=\"text-red-500 dark:text-red-400\"\r\n                                onClick={() => handleQuickStatusUpdate(row.original.id, \"Cancelled\")}\r\n                            >\r\n                                Cancel order\r\n                            </DropdownMenuItem>\r\n                        </DropdownMenuContent>\r\n                    </DropdownMenu>\r\n                ),\r\n            },\r\n        ],\r\n        [],\r\n    )\r\n\r\n    // Apply filters when search query, status filter, or date filter changes\r\n    React.useEffect(() => {\r\n        const filteredData = allOrders.filter((order) => {\r\n            const matchesSearch =\r\n                searchQuery === \"\" ||\r\n                order.orderNumber.toLowerCase().includes(searchQuery.toLowerCase()) ||\r\n                order.customer.toLowerCase().includes(searchQuery.toLowerCase()) ||\r\n                order.paymentMethod.toLowerCase().includes(searchQuery.toLowerCase())\r\n\r\n            const matchesStatus = statusFilter === \"all\" || order.status.toLowerCase() === statusFilter.toLowerCase()\r\n\r\n            let matchesDate = true\r\n            const orderDate = new Date(order.date)\r\n            const today = new Date()\r\n            today.setHours(0, 0, 0, 0)\r\n\r\n            if (dateFilter === \"today\") {\r\n                const todayString = today.toISOString().split(\"T\")[0]\r\n                matchesDate = order.date === todayString\r\n            } else if (dateFilter === \"yesterday\") {\r\n                const yesterday = new Date(today)\r\n                yesterday.setDate(yesterday.getDate() - 1)\r\n                const yesterdayString = yesterday.toISOString().split(\"T\")[0]\r\n                matchesDate = order.date === yesterdayString\r\n            } else if (dateFilter === \"week\") {\r\n                const weekAgo = new Date(today)\r\n                weekAgo.setDate(weekAgo.getDate() - 7)\r\n                matchesDate = orderDate >= weekAgo\r\n            }\r\n\r\n            return matchesSearch && matchesStatus && matchesDate\r\n        })\r\n\r\n        setData(filteredData)\r\n    }, [searchQuery, statusFilter, dateFilter, allOrders])\r\n\r\n    const handleViewOrderDetails = (order: z.infer<typeof orderSchema>) => {\r\n        setSelectedOrder(order)\r\n        setIsOrderDetailsOpen(true)\r\n    }\r\n\r\n    const handleUpdateStatus = (order: z.infer<typeof orderSchema>) => {\r\n        setSelectedOrder(order)\r\n        setIsUpdateStatusOpen(true)\r\n    }\r\n\r\n    const handleQuickStatusUpdate = (orderId: number, newStatus: string) => {\r\n        updateOrderStatus(orderId, newStatus)\r\n    }\r\n\r\n    const updateOrderStatus = (orderId: number, newStatus: string) => {\r\n        // Update both the filtered data and the full data set\r\n        setData((prevData) =>\r\n            prevData.map((order) => {\r\n                if (order.id === orderId) {\r\n                    return { ...order, status: newStatus }\r\n                }\r\n                return order\r\n            }),\r\n        )\r\n\r\n        // Update the allOrders state instead of mutating initialData\r\n        setAllOrders((prevOrders) =>\r\n            prevOrders.map((order) => {\r\n                if (order.id === orderId) {\r\n                    return { ...order, status: newStatus }\r\n                }\r\n                return order\r\n            }),\r\n        )\r\n\r\n        // Find the order to show in the toast notification\r\n        const orderToUpdate = allOrders.find((order) => order.id === orderId)\r\n\r\n        if (orderToUpdate) {\r\n            toast.success(\"Order status updated\", {\r\n                description: `Order #${orderToUpdate.orderNumber} is now ${newStatus}`,\r\n            })\r\n        }\r\n    }\r\n\r\n    function handleDragEnd(event: DragEndEvent) {\r\n        const { active, over } = event\r\n        if (active && over && active.id !== over.id) {\r\n            setData((data) => {\r\n                const oldIndex = dataIds.indexOf(active.id)\r\n                const newIndex = dataIds.indexOf(over.id)\r\n                return arrayMove(data, oldIndex, newIndex)\r\n            })\r\n        }\r\n    }\r\n\r\n    const table = useReactTable({\r\n        data,\r\n        columns,\r\n        getCoreRowModel: getCoreRowModel(),\r\n        getPaginationRowModel: getPaginationRowModel(),\r\n        getSortedRowModel: getSortedRowModel(),\r\n        getFilteredRowModel: getFilteredRowModel(),\r\n        getFacetedRowModel: getFacetedRowModel(),\r\n        getFacetedUniqueValues: getFacetedUniqueValues(),\r\n        onColumnVisibilityChange: setColumnVisibility,\r\n        onColumnFiltersChange: setColumnFilters,\r\n        onSortingChange: setSorting,\r\n        onRowSelectionChange: setRowSelection,\r\n        onPaginationChange: setPagination,\r\n        state: {\r\n            columnVisibility,\r\n            columnFilters,\r\n            sorting,\r\n            rowSelection,\r\n            pagination,\r\n        },\r\n    })\r\n\r\n    return (\r\n        <>\r\n            <div className=\"flex w-full flex-col justify-start gap-6\">\r\n                <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\r\n                    <div className=\"relative w-full max-w-sm\">\r\n                        <SearchIcon className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n                        <Input\r\n                            type=\"search\"\r\n                            placeholder=\"Search by order ID, customer name..,.\"\r\n                            className=\"pl-8\"\r\n                            value={searchQuery}\r\n                            onChange={(e) => setSearchQuery(e.target.value)}\r\n                        />\r\n                    </div>\r\n                    <div className=\"flex items-center gap-2\">\r\n                        <DropdownMenu>\r\n                            <DropdownMenuTrigger asChild>\r\n                                <Button variant=\"outline\" size=\"sm\" className=\"h-8 gap-1\">\r\n                                    <FilterIcon className=\"h-3.5 w-3.5\" />\r\n                                    <span>Filter</span>\r\n                                    <ChevronDownIcon className=\"h-3.5 w-3.5\" />\r\n                                </Button>\r\n                            </DropdownMenuTrigger>\r\n                            <DropdownMenuContent align=\"end\" className=\"w-56\">\r\n                                <div className=\"p-2\">\r\n                                    <p className=\"mb-2 text-sm font-medium\">Status</p>\r\n                                    <Select value={statusFilter} onValueChange={setStatusFilter}>\r\n                                        <SelectTrigger className=\"w-full\">\r\n                                            <SelectValue placeholder=\"Filter by status\" />\r\n                                        </SelectTrigger>\r\n                                        <SelectContent>\r\n                                            <SelectItem value=\"all\">All Statuses</SelectItem>\r\n                                            <SelectItem value=\"completed\">Completed</SelectItem>\r\n                                            <SelectItem value=\"processing\">Processing</SelectItem>\r\n                                            <SelectItem value=\"shipped\">Shipped</SelectItem>\r\n                                            <SelectItem value=\"cancelled\">Cancelled</SelectItem>\r\n                                        </SelectContent>\r\n                                    </Select>\r\n                                </div>\r\n                                <DropdownMenuSeparator />\r\n                                <div className=\"p-2\">\r\n                                    <p className=\"mb-2 text-sm font-medium\">Date</p>\r\n                                    <Select value={dateFilter} onValueChange={setDateFilter}>\r\n                                        <SelectTrigger className=\"w-full\">\r\n                                            <SelectValue placeholder=\"Filter by date\" />\r\n                                        </SelectTrigger>\r\n                                        <SelectContent>\r\n                                            <SelectItem value=\"all\">All Time</SelectItem>\r\n                                            <SelectItem value=\"today\">Today</SelectItem>\r\n                                            <SelectItem value=\"yesterday\">Yesterday</SelectItem>\r\n                                            <SelectItem value=\"week\">Last 7 days</SelectItem>\r\n                                        </SelectContent>\r\n                                    </Select>\r\n                                </div>\r\n                            </DropdownMenuContent>\r\n                        </DropdownMenu>\r\n                        <DropdownMenu>\r\n                            <DropdownMenuTrigger asChild>\r\n                                <Button variant=\"outline\" size=\"sm\" className=\"h-8 gap-1\">\r\n                                    <ColumnsIcon className=\"h-3.5 w-3.5\" />\r\n                                    <span className=\"hidden sm:inline\">Columns</span>\r\n                                    <ChevronDownIcon className=\"h-3.5 w-3.5\" />\r\n                                </Button>\r\n                            </DropdownMenuTrigger>\r\n                            <DropdownMenuContent align=\"end\" className=\"w-56\">\r\n                                {table\r\n                                    .getAllColumns()\r\n                                    .filter((column) => typeof column.accessorFn !== \"undefined\" && column.getCanHide())\r\n                                    .map((column) => {\r\n                                        return (\r\n                                            <DropdownMenuCheckboxItem\r\n                                                key={column.id}\r\n                                                className=\"capitalize\"\r\n                                                checked={column.getIsVisible()}\r\n                                                onCheckedChange={(value) => column.toggleVisibility(!!value)}\r\n                                            >\r\n                                                {column.id}\r\n                                            </DropdownMenuCheckboxItem>\r\n                                        )\r\n                                    })}\r\n                            </DropdownMenuContent>\r\n                        </DropdownMenu>\r\n                        <Button variant=\"outline\" size=\"sm\" className=\"h-8 gap-1\">\r\n                            <PlusIcon className=\"h-3.5 w-3.5\" />\r\n                            <span className=\"hidden sm:inline\">New Order</span>\r\n                            <span className=\"sm:hidden\">New</span>\r\n                        </Button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"relative flex flex-col gap-4 overflow-auto\">\r\n                    <div className=\"overflow-hidden rounded-lg border\">\r\n                        <DndContext\r\n                            collisionDetection={closestCenter}\r\n                            modifiers={[restrictToVerticalAxis]}\r\n                            onDragEnd={handleDragEnd}\r\n                            sensors={sensors}\r\n                            id={sortableId}\r\n                        >\r\n                            <div className=\"overflow-auto custom-scrollbar\">\r\n                                <div className=\"flex items-center\">\r\n                                    <Table>\r\n                                        <TableHeader className=\"sticky top-0 z-10 bg-muted\">\r\n                                            {table.getHeaderGroups().map((headerGroup) => (\r\n                                                <TableRow key={headerGroup.id}>\r\n                                                    {headerGroup.headers.map((header) => {\r\n                                                        return (\r\n                                                            <TableHead key={header.id} colSpan={header.colSpan}>\r\n                                                                {header.isPlaceholder\r\n                                                                    ? null\r\n                                                                    : flexRender(header.column.columnDef.header, header.getContext())}\r\n                                                            </TableHead>\r\n                                                        )\r\n                                                    })}\r\n                                                </TableRow>\r\n                                            ))}\r\n                                        </TableHeader>\r\n                                        <TableBody className=\"**:data-[slot=table-cell]:first:w-8\">\r\n                                            {table.getRowModel().rows?.length ? (\r\n                                                <SortableContext items={dataIds} strategy={verticalListSortingStrategy}>\r\n                                                    {table.getRowModel().rows.map((row) => (\r\n                                                        <DraggableRow key={row.id} row={row} />\r\n                                                    ))}\r\n                                                </SortableContext>\r\n                                            ) : (\r\n                                                <TableRow>\r\n                                                    <TableCell colSpan={columns.length} className=\"h-24 text-center\">\r\n                                                        No orders found.\r\n                                                    </TableCell>\r\n                                                </TableRow>\r\n                                            )}\r\n                                        </TableBody>\r\n                                    </Table>\r\n                                </div>\r\n                            </div>\r\n                        </DndContext>\r\n                    </div>\r\n                    <div className=\"flex items-center justify-between px-4\">\r\n                        <div className=\"hidden flex-1 text-sm text-muted-foreground lg:flex\">\r\n                            {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} order(s)\r\n                            selected.\r\n                        </div>\r\n                        <div className=\"flex w-full items-center gap-8 lg:w-fit\">\r\n                            <div className=\"hidden items-center gap-2 lg:flex\">\r\n                                <Select\r\n                                    value={`${table.getState().pagination.pageSize}`}\r\n                                    onValueChange={(value) => {\r\n                                        table.setPageSize(Number(value))\r\n                                    }}\r\n                                >\r\n                                    <SelectTrigger className=\"w-20\" id=\"rows-per-page\">\r\n                                        <SelectValue placeholder={table.getState().pagination.pageSize} />\r\n                                    </SelectTrigger>\r\n                                    <SelectContent side=\"top\">\r\n                                        {[10, 20, 30, 40, 50].map((pageSize) => (\r\n                                            <SelectItem key={pageSize} value={`${pageSize}`}>\r\n                                                {pageSize}\r\n                                            </SelectItem>\r\n                                        ))}\r\n                                    </SelectContent>\r\n                                </Select>\r\n                                <span className=\"text-sm text-muted-foreground\">per page</span>\r\n                            </div>\r\n                            <div className=\"flex w-fit items-center justify-center text-sm font-medium\">\r\n                                Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\r\n                            </div>\r\n                            <div className=\"ml-auto flex items-center gap-2 lg:ml-0\">\r\n                                <Button\r\n                                    variant=\"outline\"\r\n                                    className=\"hidden h-8 w-8 p-0 lg:flex\"\r\n                                    onClick={() => table.setPageIndex(0)}\r\n                                    disabled={!table.getCanPreviousPage()}\r\n                                >\r\n                                    <span className=\"sr-only\">Go to first page</span>\r\n                                    <ChevronsLeftIcon />\r\n                                </Button>\r\n                                <Button\r\n                                    variant=\"outline\"\r\n                                    className=\"size-8\"\r\n                                    size=\"icon\"\r\n                                    onClick={() => table.previousPage()}\r\n                                    disabled={!table.getCanPreviousPage()}\r\n                                >\r\n                                    <span className=\"sr-only\">Go to previous page</span>\r\n                                    <ChevronLeftIcon />\r\n                                </Button>\r\n                                <Button\r\n                                    variant=\"outline\"\r\n                                    className=\"size-8\"\r\n                                    size=\"icon\"\r\n                                    onClick={() => table.nextPage()}\r\n                                    disabled={!table.getCanNextPage()}\r\n                                >\r\n                                    <span className=\"sr-only\">Go to next page</span>\r\n                                    <ChevronRightIcon />\r\n                                </Button>\r\n                                <Button\r\n                                    variant=\"outline\"\r\n                                    className=\"hidden size-8 lg:flex\"\r\n                                    size=\"icon\"\r\n                                    onClick={() => table.setPageIndex(table.getPageCount() - 1)}\r\n                                    disabled={!table.getCanNextPage()}\r\n                                >\r\n                                    <span className=\"sr-only\">Go to last page</span>\r\n                                    <ChevronsRightIcon />\r\n                                </Button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <Sheet open={isOrderDetailsOpen} onOpenChange={setIsOrderDetailsOpen}>\r\n                {selectedOrder && <OrderDetails order={selectedOrder} onClose={() => setIsOrderDetailsOpen(false)} />}\r\n            </Sheet>\r\n            <UpdateStatusDialog\r\n                order={selectedOrder}\r\n                isOpen={isUpdateStatusOpen}\r\n                onClose={() => setIsUpdateStatusOpen(false)}\r\n                onUpdateStatus={updateOrderStatus}\r\n            />\r\n        </>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/orders-page-3/components/sidebar": {
        "content": "\"use client\"\r\n\r\nimport {\r\n    Sidebar,\r\n    SidebarContent,\r\n    SidebarFooter,\r\n    SidebarHeader,\r\n    SidebarMenu,\r\n    SidebarMenuButton,\r\n    SidebarMenuItem,\r\n} from \"@/components/ui/sidebar\"\r\nimport {\r\n    ArrowUpCircleIcon,\r\n    BarChartIcon,\r\n    CameraIcon,\r\n    ClipboardListIcon,\r\n    DatabaseIcon,\r\n    FileCodeIcon,\r\n    FileIcon,\r\n    FileTextIcon,\r\n    FolderIcon,\r\n    HelpCircleIcon,\r\n    LayoutDashboardIcon,\r\n    ListIcon,\r\n    Package2,\r\n    SearchIcon,\r\n    SettingsIcon,\r\n    UsersIcon,\r\n} from \"lucide-react\"\r\nimport Link from \"next/link\"\r\nimport * as React from \"react\"\r\nimport { NavMain } from \"../../dashboard-2/components/nav-main\"\r\nimport { NavDocuments } from \"./nav-documents\"\r\nimport { NavSecondary } from \"./nav-secondary\"\r\nimport { NavUser } from \"./nav-user\"\r\n\r\nconst data = {\r\n    user: {\r\n        name: \"john\",\r\n        email: \"john@example.com\",\r\n        avatar: \"/avatars/shadcn.jpg\",\r\n    },\r\n    navMain: [\r\n        {\r\n            title: \"Dashboard\",\r\n            url: \"#\",\r\n            icon: LayoutDashboardIcon,\r\n        },\r\n        {\r\n            title: \"Orders\",\r\n            url: \"#\",\r\n            icon: Package2,\r\n        },\r\n        {\r\n            title: \"Lifecycle\",\r\n            url: \"#\",\r\n            icon: ListIcon,\r\n        },\r\n        {\r\n            title: \"Analytics\",\r\n            url: \"#\",\r\n            icon: BarChartIcon,\r\n        },\r\n        {\r\n            title: \"Projects\",\r\n            url: \"#\",\r\n            icon: FolderIcon,\r\n        },\r\n        {\r\n            title: \"Team\",\r\n            url: \"#\",\r\n            icon: UsersIcon,\r\n        },\r\n    ],\r\n    navClouds: [\r\n        {\r\n            title: \"Capture\",\r\n            icon: CameraIcon,\r\n            isActive: true,\r\n            url: \"#\",\r\n            items: [\r\n                {\r\n                    title: \"Active Proposals\",\r\n                    url: \"#\",\r\n                },\r\n                {\r\n                    title: \"Archived\",\r\n                    url: \"#\",\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            title: \"Proposal\",\r\n            icon: FileTextIcon,\r\n            url: \"#\",\r\n            items: [\r\n                {\r\n                    title: \"Active Proposals\",\r\n                    url: \"#\",\r\n                },\r\n                {\r\n                    title: \"Archived\",\r\n                    url: \"#\",\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            title: \"Prompts\",\r\n            icon: FileCodeIcon,\r\n            url: \"#\",\r\n            items: [\r\n                {\r\n                    title: \"Active Proposals\",\r\n                    url: \"#\",\r\n                },\r\n                {\r\n                    title: \"Archived\",\r\n                    url: \"#\",\r\n                },\r\n            ],\r\n        },\r\n    ],\r\n    navSecondary: [\r\n        {\r\n            title: \"Settings\",\r\n            url: \"#\",\r\n            icon: SettingsIcon,\r\n        },\r\n        {\r\n            title: \"Get Help\",\r\n            url: \"#\",\r\n            icon: HelpCircleIcon,\r\n        },\r\n        {\r\n            title: \"Search\",\r\n            url: \"#\",\r\n            icon: SearchIcon,\r\n        },\r\n    ],\r\n    documents: [\r\n        {\r\n            name: \"Data Library\",\r\n            url: \"#\",\r\n            icon: DatabaseIcon,\r\n        },\r\n        {\r\n            name: \"Reports\",\r\n            url: \"#\",\r\n            icon: ClipboardListIcon,\r\n        },\r\n        {\r\n            name: \"Word Assistant\",\r\n            url: \"#\",\r\n            icon: FileIcon,\r\n        },\r\n    ],\r\n}\r\n\r\nexport function OrdersSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {\r\n    return (\r\n        <Sidebar collapsible=\"offcanvas\" {...props}>\r\n            <SidebarHeader>\r\n                <SidebarMenu>\r\n                    <SidebarMenuItem>\r\n                        <SidebarMenuButton\r\n                            asChild\r\n                            className=\"data-[slot=sidebar-menu-button]:!p-1.5\"\r\n                        >\r\n                            <Link href=\"#\">\r\n                                <ArrowUpCircleIcon className=\"h-5 w-5\" />\r\n                                <span className=\"text-base font-semibold\">Acme Inc.</span>\r\n                            </Link>\r\n                        </SidebarMenuButton>\r\n                    </SidebarMenuItem>\r\n                </SidebarMenu>\r\n            </SidebarHeader>\r\n            <SidebarContent className=\"hide-scrollbar\">\r\n                <NavMain items={data.navMain} />\r\n                <NavDocuments items={data.documents} />\r\n                <NavSecondary items={data.navSecondary} className=\"mt-auto\" />\r\n            </SidebarContent>\r\n            <SidebarFooter>\r\n                <NavUser user={data.user} />\r\n            </SidebarFooter>\r\n        </Sidebar>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/orders-page-3/constant/data.json": {
        "content": "[\r\n    {\r\n        \"id\": 1,\r\n        \"orderNumber\": \"ORD-2024-001\",\r\n        \"customer\": \"John Smith\",\r\n        \"date\": \"2024-06-28\",\r\n        \"status\": \"Completed\",\r\n        \"total\": 129.99,\r\n        \"items\": 3,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 2,\r\n        \"orderNumber\": \"ORD-2024-002\",\r\n        \"customer\": \"Sarah Johnson\",\r\n        \"date\": \"2024-06-27\",\r\n        \"status\": \"Processing\",\r\n        \"total\": 79.5,\r\n        \"items\": 2,\r\n        \"paymentMethod\": \"PayPal\"\r\n    },\r\n    {\r\n        \"id\": 3,\r\n        \"orderNumber\": \"ORD-2024-003\",\r\n        \"customer\": \"Michael Brown\",\r\n        \"date\": \"2024-06-26\",\r\n        \"status\": \"Shipped\",\r\n        \"total\": 245.75,\r\n        \"items\": 5,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 4,\r\n        \"orderNumber\": \"ORD-2024-004\",\r\n        \"customer\": \"Emily Davis\",\r\n        \"date\": \"2024-06-25\",\r\n        \"status\": \"Completed\",\r\n        \"total\": 59.99,\r\n        \"items\": 1,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 5,\r\n        \"orderNumber\": \"ORD-2024-005\",\r\n        \"customer\": \"Robert Wilson\",\r\n        \"date\": \"2024-06-24\",\r\n        \"status\": \"Cancelled\",\r\n        \"total\": 189.95,\r\n        \"items\": 4,\r\n        \"paymentMethod\": \"PayPal\"\r\n    },\r\n    {\r\n        \"id\": 6,\r\n        \"orderNumber\": \"ORD-2024-006\",\r\n        \"customer\": \"Jennifer Taylor\",\r\n        \"date\": \"2024-06-23\",\r\n        \"status\": \"Processing\",\r\n        \"total\": 149.99,\r\n        \"items\": 3,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 7,\r\n        \"orderNumber\": \"ORD-2024-007\",\r\n        \"customer\": \"David Martinez\",\r\n        \"date\": \"2024-06-22\",\r\n        \"status\": \"Shipped\",\r\n        \"total\": 99.5,\r\n        \"items\": 2,\r\n        \"paymentMethod\": \"PayPal\"\r\n    },\r\n    {\r\n        \"id\": 8,\r\n        \"orderNumber\": \"ORD-2024-008\",\r\n        \"customer\": \"Lisa Anderson\",\r\n        \"date\": \"2024-06-21\",\r\n        \"status\": \"Completed\",\r\n        \"total\": 299.99,\r\n        \"items\": 6,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 9,\r\n        \"orderNumber\": \"ORD-2024-009\",\r\n        \"customer\": \"James Thomas\",\r\n        \"date\": \"2024-06-20\",\r\n        \"status\": \"Processing\",\r\n        \"total\": 49.95,\r\n        \"items\": 1,\r\n        \"paymentMethod\": \"PayPal\"\r\n    },\r\n    {\r\n        \"id\": 10,\r\n        \"orderNumber\": \"ORD-2024-010\",\r\n        \"customer\": \"Patricia White\",\r\n        \"date\": \"2024-06-19\",\r\n        \"status\": \"Shipped\",\r\n        \"total\": 179.99,\r\n        \"items\": 4,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    },\r\n    {\r\n        \"id\": 11,\r\n        \"orderNumber\": \"ORD-2024-011\",\r\n        \"customer\": \"Richard Harris\",\r\n        \"date\": \"2024-06-18\",\r\n        \"status\": \"Completed\",\r\n        \"total\": 89.95,\r\n        \"items\": 2,\r\n        \"paymentMethod\": \"PayPal\"\r\n    },\r\n    {\r\n        \"id\": 12,\r\n        \"orderNumber\": \"ORD-2024-012\",\r\n        \"customer\": \"Elizabeth Clark\",\r\n        \"date\": \"2024-06-17\",\r\n        \"status\": \"Cancelled\",\r\n        \"total\": 159.99,\r\n        \"items\": 3,\r\n        \"paymentMethod\": \"Credit Card\"\r\n    }\r\n]",
        "language": "json"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/orders-page-3/page": {
      "content": "import { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\"\r\nimport { Header } from \"./components/header\"\r\nimport { OrdersCards } from \"./components/orders-cards\"\r\nimport { OrdersChart } from \"./components/orders-chart\"\r\nimport { OrdersTable } from \"./components/orders-table\"\r\nimport { OrdersSidebar } from \"./components/sidebar\"\r\nimport ordersData from \"./constant/data.json\"\r\n\r\nexport default function OrdersPage() {\r\n    return (\r\n        <SidebarProvider>\r\n            <OrdersSidebar variant=\"inset\" />\r\n            <SidebarInset>\r\n                <Header />\r\n                <div className=\"flex flex-1 flex-col px-4 lg:px-6\">\r\n                    <div className=\"flex flex-1 flex-col gap-2\">\r\n                        <div className=\"flex flex-col gap-4 py-4 md:gap-6 md:py-6\">\r\n                            <OrdersCards />\r\n                            <div>\r\n                                <OrdersChart />\r\n                            </div>\r\n                            <OrdersTable data={ordersData} />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </SidebarInset>\r\n        </SidebarProvider>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "personal-card-1": {
    "components": {
      "@/registry/view/personal-card-1/components/personal-card": {
        "content": "\"use client\"\r\n\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent } from \"@/components/ui/card\"\r\nimport { Bookmark, Mail, Star } from \"lucide-react\"\r\n\r\ninterface PersonalCard1Props {\r\n    name?: string\r\n    bio?: string\r\n    profileImage?: string\r\n    isVerified?: boolean\r\n    rating?: number\r\n    earned?: string\r\n    rate?: string\r\n    onGetInTouch?: () => void\r\n    onBookmark?: () => void\r\n}\r\n\r\nexport default function PersonalCard1({\r\n    name = \"Sophie Bennett\",\r\n    bio = \"A Product Designer focused on intuitive user experiences..\",\r\n    profileImage = \"/blocks/personal-card-1/personal-card-1.jpg\",\r\n    isVerified = true,\r\n    rating = 4.8,\r\n    earned = \"$45k+\",\r\n    rate = \"$50/hr\",\r\n    onGetInTouch,\r\n    onBookmark,\r\n}: PersonalCard1Props) {\r\n    return (\r\n        <Card className=\"w-full max-w-xs mx-auto shadow-lg rounded-3xl\">\r\n            <CardContent className=\"p-3\">\r\n                <div className=\"relative mb-3\">\r\n                    <div className=\"aspect-square rounded-3xl overflow-hidden bg-gradient-to-br from-orange-200 via-green-200 to-yellow-200 w-full h-[250px]\">\r\n                        <img src={profileImage || \"/placeholder.svg\"} alt={name} className=\"w-full h-full object-cover\" />\r\n                    </div>\r\n                    <Button\r\n                        variant=\"ghost\"\r\n                        size=\"icon\"\r\n                        className=\"absolute top-3 right-3 bg-black/10 hover:bg-black/20 text-white backdrop-blur-[2px] rounded-full h-8 w-8\"\r\n                        onClick={onBookmark}\r\n                    >\r\n                        <Bookmark className=\"h-4 w-4\" strokeWidth={2.5} />\r\n                    </Button>\r\n                </div>\r\n                <div className=\"flex items-center gap-2 mb-2\">\r\n                    <h2 className=\"text-lg font-semibold text-foreground\">{name}</h2>\r\n                    {isVerified && (\r\n                        <Badge\r\n                            variant=\"secondary\"\r\n                            className=\"bg-blue-100 text-blue-600 hover:bg-blue-100 p-0 h-4 w-4 rounded-full flex items-center justify-center\"\r\n                        >\r\n                            <svg className=\"h-2.5 w-2.5 fill-current\" viewBox=\"0 0 20 20\">\r\n                                <path d=\"M10 0L12.09 6.26L18 4.27L15.64 10L18 15.73L12.09 13.74L10 20L7.91 13.74L2 15.73L4.36 10L2 4.27L7.91 6.26L10 0Z\" />\r\n                            </svg>\r\n                        </Badge>\r\n                    )}\r\n                </div>\r\n                <p className=\"text-muted-foreground text-sm font-normal mb-3 leading-relaxed\">{bio}</p>\r\n                <div className=\"grid grid-cols-3 gap-2 mb-3\">\r\n                    <div className=\"text-center border-r border-border\">\r\n                        <div className=\"flex items-center justify-center gap-1 mb-1\">\r\n                            <Star className=\"h-3 w-3 fill-orange-400 text-orange-400\" />\r\n                            <span className=\"font-semibold text-foreground text-sm\">{rating}</span>\r\n                        </div>\r\n                        <p className=\"text-xs text-muted-foreground\">Rating</p>\r\n                    </div>\r\n                    <div className=\"text-center border-r border-border\">\r\n                        <p className=\"font-semibold text-foreground mb-1 text-sm\">{earned}</p>\r\n                        <p className=\"text-xs text-muted-foreground\">Earned</p>\r\n                    </div>\r\n                    <div className=\"text-center\">\r\n                        <p className=\"font-semibold text-foreground mb-1 text-sm\">{rate}</p>\r\n                        <p className=\"text-xs text-muted-foreground\">Rate</p>\r\n                    </div>\r\n                </div>\r\n                <Button\r\n                    className=\"w-full bg-black hover:bg-gray-800 text-white rounded-full py-2.5 text-sm\"\r\n                    onClick={onGetInTouch}\r\n                >\r\n                    <Mail className=\"h-4 w-4 mr-2\" />\r\n                    Get In Touch\r\n                </Button>\r\n            </CardContent>\r\n        </Card>\r\n    )\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/personal-card-1/page": {
      "content": "\"use client\"\r\nimport PersonalCard1 from \"./components/personal-card\";\r\n\r\nexport default function page() {\r\n    const handleGetInTouch = () => {\r\n        console.log(\"Get in touch clicked\")\r\n    }\r\n\r\n    const handleBookmark = () => {\r\n        console.log(\"Bookmark clicked\")\r\n    }\r\n\r\n    return (\r\n        <div className=\"min-h-screen p-8 flex items-center justify-center\">\r\n            <PersonalCard1 onGetInTouch={handleGetInTouch} onBookmark={handleBookmark} />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "personal-card-2": {
    "components": {
      "@/registry/view/personal-card-2/components/personal-card": {
        "content": "\"use client\"\r\n\r\nimport { Card } from \"@/components/ui/card\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { BadgeCheck, Check, UserPlus, Users } from \"lucide-react\"\r\nimport Image from \"next/image\"\r\n\r\nexport default function PersonalCard() {\r\n    return (\r\n        <div className=\"min-h-screen w-full flex items-center justify-center p-4\">\r\n            <div className=\"space-y-6\">\r\n                <Card\r\n                    className={cn(\r\n                        \"w-[19rem] h-[457px] rounded-3xl overflow-hidden relative border-4 border-border\",\r\n                        \"bg-white/10 backdrop-blur-lg\",\r\n                    )}\r\n                    style={{ height: \"457px\" }}\r\n                >\r\n                    <div className=\"relative h-full w-full\">\r\n                        <Image\r\n                            src=\"/blocks/personal-card-1/personal-card-1.jpg\"\r\n                            alt=\"Sophie Bennett\"\r\n                            fill\r\n                            className=\"object-cover object-center\"\r\n                            priority\r\n                            quality={100}\r\n                        />\r\n                        <div\r\n                            className={cn(\r\n                                \"absolute inset-0\",\r\n                                \"bg-gradient-to-t from-white/20 via-white/5 to-transparent\",\r\n                                \"dark:bg-gradient-to-t dark:from-black/60 dark:via-black/20 dark:to-transparent\"\r\n                            )}\r\n                        />\r\n                    </div>\r\n                    <div className=\"absolute bottom-0 left-0 right-0 z-10\">\r\n                        <div\r\n                            className=\"absolute h-full bottom-0 left-0 right-0 backdrop-blur-md\"\r\n                            style={{\r\n                                maskImage:\r\n                                    \"linear-gradient(to top, rgba(0,0,0,2) 0%, rgba(0,0,0,0.7) 60%, rgba(0,0,0,0) 100%)\",\r\n                                WebkitMaskImage:\r\n                                    \"linear-gradient(to top, rgba(0,0,0,2) 0%, rgba(0,0,0,0.7) 60%, rgba(0,0,0,0) 100%)\",\r\n                            }}\r\n                        />\r\n                        <div\r\n                            className={cn(\r\n                                \"absolute h-full bottom-0 left-0 right-0\",\r\n                                \"bg-gradient-to-t from-white/60 via-white/20 to-transparent\",\r\n                                \"dark:bg-gradient-to-t dark:from-black/90 dark:via-black/40 dark:to-transparent\"\r\n                            )}\r\n                        />\r\n                        <div className=\"relative z-10 p-[1.2rem] space-y-2\">\r\n                            <div className=\"flex items-center gap-2\">\r\n                                <h2 className=\"text-xl font-bold text-white dark:text-foreground\">\r\n                                    Sophie Bennett\r\n                                </h2>\r\n                                <div className=\"flex-shrink-0\">\r\n                                    <BadgeCheck className=\"h-5 w-5 text-white\" strokeWidth={2.5} />\r\n                                </div>\r\n                            </div>\r\n                            <p className=\"text-base leading-relaxed text-white dark:text-foreground\">\r\n                                A Product Designer focused on intuitive user experiences.\r\n                            </p>\r\n                            <div className=\"flex items-center justify-between pt-2\">\r\n                                <div className=\"flex items-center gap-6\">\r\n                                    <div className=\"flex items-center gap-2 text-white dark:text-foreground\">\r\n                                        <Users className=\"h-5 w-5\" />\r\n                                        <span className=\"font-semibold text-white dark:text-foreground\">\r\n                                            312\r\n                                        </span>\r\n                                    </div>\r\n                                    <div className=\"flex items-center gap-2 text-white dark:text-foreground\">\r\n                                        <UserPlus className=\"h-4 w-4\" />\r\n                                        <span className=\"font-semibold text-white dark:text-foreground\">\r\n                                            48\r\n                                        </span>\r\n                                    </div>\r\n                                </div>\r\n                                <button\r\n                                    className={cn(\r\n                                        \"rounded-full px-6 py-2 font-semibold flex items-center justify-center border border-border\",\r\n                                        \"bg-[hsla(0,0%,100%,.1)] dark:bg-[#d5dae003] backdrop-blur-sm text-white dark:text-foreground\"\r\n                                    )}\r\n                                >\r\n                                    Follow +\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </Card>\r\n            </div>\r\n        </div>\r\n    )\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/personal-card-2/page": {
      "content": "import PersonalCard from \"./components/personal-card\"\r\n\r\nexport default function Page() {\r\n    return <PersonalCard />\r\n}\r\n",
      "language": "tsx"
    }
  },
  "playground-1": {
    "components": {
      "@/registry/view/playground-1/components/code-viewer": {
        "content": "import { Button } from \"@/components/ui/button\"\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogTrigger,\n} from \"@/components/ui/dialog\"\n\nexport function CodeViewer() {\n  return (\n    <Dialog>\n      <DialogTrigger asChild>\n        <Button variant=\"secondary\">View code</Button>\n      </DialogTrigger>\n      <DialogContent>\n        <DialogHeader>\n          <DialogTitle>View code</DialogTitle>\n          <DialogDescription>\n            You can use the following code to start integrating your current\n            prompt and settings into your application.\n          </DialogDescription>\n        </DialogHeader>\n        <div className=\"grid gap-4\">\n          <div className=\"rounded-md bg-black p-6\">\n            <pre>\n              <code className=\"grid gap-1 text-sm text-white [&_span]:h-4\">\n                <span>\n                  <span className=\"text-sky-300\">import</span> os\n                </span>\n                <span>\n                  <span className=\"text-sky-300\">import</span> openai\n                </span>\n                <span />\n                <span>\n                  openai.api_key = os.getenv(\n                  <span className=\"text-green-300\">\n                    &quot;OPENAI_API_KEY&quot;\n                  </span>\n                  )\n                </span>\n                <span />\n                <span>response = openai.Completion.create(</span>\n                <span>\n                  {\" \"}\n                  model=\n                  <span className=\"text-green-300\">&quot;davinci&quot;</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  prompt=<span className=\"text-amber-300\">&quot;&quot;</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  temperature=<span className=\"text-amber-300\">0.9</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  max_tokens=<span className=\"text-amber-300\">5</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  top_p=<span className=\"text-amber-300\">1</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  frequency_penalty=<span className=\"text-amber-300\">0</span>,\n                </span>\n                <span>\n                  {\" \"}\n                  presence_penalty=<span className=\"text-green-300\">0</span>,\n                </span>\n                <span>)</span>\n              </code>\n            </pre>\n          </div>\n          <div>\n            <p className=\"text-muted-foreground text-sm\">\n              Your API Key can be found here. You should use environment\n              variables or a secret management tool to expose your key to your\n              applications.\n            </p>\n          </div>\n        </div>\n      </DialogContent>\n    </Dialog>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/maxlength-selector": {
        "content": "\"use client\"\n\nimport {\n  HoverCard,\n  HoverCardContent,\n  HoverCardTrigger,\n} from \"@/components/ui/hover-card\"\nimport { Label } from \"@/components/ui/label\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { SliderProps } from \"@radix-ui/react-slider\"\nimport * as React from \"react\"\n\ninterface MaxLengthSelectorProps {\n  defaultValue: SliderProps[\"defaultValue\"]\n}\n\nexport function MaxLengthSelector({ defaultValue }: MaxLengthSelectorProps) {\n  const [value, setValue] = React.useState(defaultValue)\n\n  return (\n    <div className=\"grid gap-2 pt-2\">\n      <HoverCard openDelay={200}>\n        <HoverCardTrigger asChild>\n          <div className=\"grid gap-4\">\n            <div className=\"flex items-center justify-between\">\n              <Label htmlFor=\"maxlength\">Maximum Length</Label>\n              <span className=\"text-muted-foreground hover:border-border w-12 rounded-md border border-transparent px-2 py-0.5 text-right text-sm\">\n                {value}\n              </span>\n            </div>\n            <Slider\n              id=\"maxlength\"\n              max={4000}\n              defaultValue={value}\n              step={10}\n              onValueChange={setValue}\n              aria-label=\"Maximum Length\"\n            />\n          </div>\n        </HoverCardTrigger>\n        <HoverCardContent\n          align=\"start\"\n          className=\"w-[260px] text-sm\"\n          side=\"left\"\n        >\n          The maximum number of tokens to generate. Requests can use up to 2,048\n          or 4,000 tokens, shared between prompt and completion. The exact limit\n          varies by model.\n        </HoverCardContent>\n      </HoverCard>\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/model-selector": {
        "content": "\"use client\"\n\nimport { useMutationObserver } from \"@/hooks/use-mutation-observer\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  Command,\n  CommandEmpty,\n  CommandGroup,\n  CommandInput,\n  CommandItem,\n  CommandList,\n} from \"@/components/ui/command\"\nimport {\n  HoverCard,\n  HoverCardContent,\n  HoverCardTrigger,\n} from \"@/components/ui/hover-card\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { PopoverProps } from \"@radix-ui/react-popover\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Model, ModelType } from \"../data/models\"\n\ninterface ModelSelectorProps extends PopoverProps {\n  types: readonly ModelType[]\n  models: Model[]\n}\n\nexport function ModelSelector({ models, types, ...props }: ModelSelectorProps) {\n  const [open, setOpen] = React.useState(false)\n  const [selectedModel, setSelectedModel] = React.useState<Model>(models[0])\n  const [peekedModel, setPeekedModel] = React.useState<Model>(models[0])\n\n  return (\n    <div className=\"grid gap-3\">\n      <HoverCard openDelay={200}>\n        <HoverCardTrigger asChild>\n          <Label htmlFor=\"model\">Model</Label>\n        </HoverCardTrigger>\n        <HoverCardContent\n          align=\"start\"\n          className=\"w-[260px] text-sm\"\n          side=\"left\"\n        >\n          The model which will generate the completion. Some models are suitable\n          for natural language tasks, others specialize in code. Learn more.\n        </HoverCardContent>\n      </HoverCard>\n      <Popover open={open} onOpenChange={setOpen} {...props}>\n        <PopoverTrigger asChild>\n          <Button\n            variant=\"outline\"\n            role=\"combobox\"\n            aria-expanded={open}\n            aria-label=\"Select a model\"\n            className=\"w-full justify-between\"\n          >\n            {selectedModel ? selectedModel.name : \"Select a model...\"}\n            <ChevronsUpDown className=\"text-muted-foreground\" />\n          </Button>\n        </PopoverTrigger>\n        <PopoverContent align=\"end\" className=\"w-[250px] p-0\">\n          <HoverCard>\n            <HoverCardContent\n              side=\"left\"\n              align=\"start\"\n              forceMount\n              className=\"min-h-[280px]\"\n            >\n              <div className=\"grid gap-2\">\n                <h4 className=\"leading-none font-medium\">{peekedModel.name}</h4>\n                <div className=\"text-muted-foreground text-sm\">\n                  {peekedModel.description}\n                </div>\n                {peekedModel.strengths ? (\n                  <div className=\"mt-4 grid gap-2\">\n                    <h5 className=\"text-sm leading-none font-medium\">\n                      Strengths\n                    </h5>\n                    <ul className=\"text-muted-foreground text-sm\">\n                      {peekedModel.strengths}\n                    </ul>\n                  </div>\n                ) : null}\n              </div>\n            </HoverCardContent>\n            <Command loop>\n              <CommandList className=\"h-(--cmdk-list-height) max-h-[400px]\">\n                <CommandInput placeholder=\"Search Models...\" />\n                <CommandEmpty>No Models found.</CommandEmpty>\n                <HoverCardTrigger />\n                {types.map((type) => (\n                  <CommandGroup key={type} heading={type}>\n                    {models\n                      .filter((model) => model.type === type)\n                      .map((model) => (\n                        <ModelItem\n                          key={model.id}\n                          model={model}\n                          isSelected={selectedModel?.id === model.id}\n                          onPeek={(model) => setPeekedModel(model)}\n                          onSelect={() => {\n                            setSelectedModel(model)\n                            setOpen(false)\n                          }}\n                        />\n                      ))}\n                  </CommandGroup>\n                ))}\n              </CommandList>\n            </Command>\n          </HoverCard>\n        </PopoverContent>\n      </Popover>\n    </div>\n  )\n}\n\ninterface ModelItemProps {\n  model: Model\n  isSelected: boolean\n  onSelect: () => void\n  onPeek: (model: Model) => void\n}\n\nfunction ModelItem({ model, isSelected, onSelect, onPeek }: ModelItemProps) {\n  const ref = React.useRef<HTMLDivElement>(null)\n\n  useMutationObserver(ref, (mutations) => {\n    mutations.forEach((mutation) => {\n      if (\n        mutation.type === \"attributes\" &&\n        mutation.attributeName === \"aria-selected\" &&\n        ref.current?.getAttribute(\"aria-selected\") === \"true\"\n      ) {\n        onPeek(model)\n      }\n    })\n  })\n\n  return (\n    <CommandItem\n      key={model.id}\n      onSelect={onSelect}\n      ref={ref}\n      className=\"data-[selected=true]:bg-primary data-[selected=true]:text-primary-foreground\"\n    >\n      {model.name}\n      <Check\n        className={cn(\"ml-auto\", isSelected ? \"opacity-100\" : \"opacity-0\")}\n      />\n    </CommandItem>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/preset-actions": {
        "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog } from \"@radix-ui/react-dialog\"\nimport { MoreHorizontal } from \"lucide-react\"\nimport { toast } from \"sonner\"\n\nimport {\n  AlertDialog,\n  AlertDialogCancel,\n  AlertDialogContent,\n  AlertDialogDescription,\n  AlertDialogFooter,\n  AlertDialogHeader,\n  AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  DialogClose,\n  DialogContent,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n} from \"@/components/ui/dialog\"\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuSeparator,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Label } from \"@/components/ui/label\"\nimport { Switch } from \"@/components/ui/switch\"\n\nexport function PresetActions() {\n  const [open, setIsOpen] = React.useState(false)\n  const [showDeleteDialog, setShowDeleteDialog] = React.useState(false)\n\n  return (\n    <>\n      <DropdownMenu>\n        <DropdownMenuTrigger asChild>\n          <Button variant=\"secondary\" size=\"icon\">\n            <span className=\"sr-only\">Actions</span>\n            <MoreHorizontal />\n          </Button>\n        </DropdownMenuTrigger>\n        <DropdownMenuContent align=\"end\">\n          <DropdownMenuItem onSelect={() => setIsOpen(true)}>\n            Content filter preferences\n          </DropdownMenuItem>\n          <DropdownMenuSeparator />\n          <DropdownMenuItem\n            onSelect={() => setShowDeleteDialog(true)}\n            className=\"text-red-600\"\n          >\n            Delete preset\n          </DropdownMenuItem>\n        </DropdownMenuContent>\n      </DropdownMenu>\n      <Dialog open={open} onOpenChange={setIsOpen}>\n        <DialogContent>\n          <DialogHeader>\n            <DialogTitle>Content filter preferences</DialogTitle>\n            <DialogDescription>\n              The content filter flags text that may violate our content policy.\n              It&apos;s powered by our moderation endpoint which is free to use\n              to moderate your OpenAI API traffic. Learn more.\n            </DialogDescription>\n          </DialogHeader>\n          <div className=\"py-6\">\n            <h4 className=\"text-muted-foreground text-sm\">\n              Playground Warnings\n            </h4>\n            <div className=\"flex items-start justify-between gap-4 pt-3\">\n              <Switch name=\"show\" id=\"show\" defaultChecked={true} />\n              <Label className=\"grid gap-1 font-normal\" htmlFor=\"show\">\n                <span className=\"font-semibold\">\n                  Show a warning when content is flagged\n                </span>\n                <span className=\"text-muted-foreground text-sm\">\n                  A warning will be shown when sexual, hateful, violent or\n                  self-harm content is detected.\n                </span>\n              </Label>\n            </div>\n          </div>\n          <DialogFooter>\n            <DialogClose asChild>\n              <Button variant=\"secondary\">Close</Button>\n            </DialogClose>\n          </DialogFooter>\n        </DialogContent>\n      </Dialog>\n      <AlertDialog open={showDeleteDialog} onOpenChange={setShowDeleteDialog}>\n        <AlertDialogContent>\n          <AlertDialogHeader>\n            <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n            <AlertDialogDescription>\n              This action cannot be undone. This preset will no longer be\n              accessible by you or others you&apos;ve shared it with.\n            </AlertDialogDescription>\n          </AlertDialogHeader>\n          <AlertDialogFooter>\n            <AlertDialogCancel>Cancel</AlertDialogCancel>\n            <Button\n              variant=\"destructive\"\n              onClick={() => {\n                setShowDeleteDialog(false)\n                toast.success(\"This preset has been deleted.\")\n              }}\n            >\n              Delete\n            </Button>\n          </AlertDialogFooter>\n        </AlertDialogContent>\n      </AlertDialog>\n    </>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/preset-save": {
        "content": "import { Button } from \"@/components/ui/button\"\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n  DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\nexport function PresetSave() {\n  return (\n    <Dialog>\n      <DialogTrigger asChild>\n        <Button variant=\"secondary\">Save</Button>\n      </DialogTrigger>\n      <DialogContent>\n        <DialogHeader>\n          <DialogTitle>Save preset</DialogTitle>\n          <DialogDescription>\n            This will save the current playground state as a preset which you\n            can access later or share with others.\n          </DialogDescription>\n        </DialogHeader>\n        <div className=\"grid gap-6 py-4\">\n          <div className=\"grid gap-3\">\n            <Label htmlFor=\"name\">Name</Label>\n            <Input id=\"name\" autoFocus />\n          </div>\n          <div className=\"grid gap-3\">\n            <Label htmlFor=\"description\">Description</Label>\n            <Textarea id=\"description\" />\n          </div>\n        </div>\n        <DialogFooter>\n          <Button type=\"submit\">Save</Button>\n        </DialogFooter>\n      </DialogContent>\n    </Dialog>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/preset-selector": {
        "content": "\"use client\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  Command,\n  CommandEmpty,\n  CommandGroup,\n  CommandInput,\n  CommandItem,\n  CommandList,\n  CommandSeparator,\n} from \"@/components/ui/command\"\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { PopoverProps } from \"@radix-ui/react-popover\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Preset } from \"../data/presets\"\n\ninterface PresetSelectorProps extends PopoverProps {\n  presets: Preset[]\n}\n\nexport function PresetSelector({ presets, ...props }: PresetSelectorProps) {\n  const [open, setOpen] = React.useState(false)\n  const [selectedPreset, setSelectedPreset] = React.useState<Preset>()\n\n  return (\n    <Popover open={open} onOpenChange={setOpen} {...props}>\n      <PopoverTrigger asChild>\n        <Button\n          variant=\"outline\"\n          role=\"combobox\"\n          aria-label=\"Load a preset...\"\n          aria-expanded={open}\n          className=\"flex-1 justify-between md:max-w-[200px] lg:max-w-[300px]\"\n        >\n          {selectedPreset ? selectedPreset.name : \"Load a preset...\"}\n          <ChevronsUpDown className=\"opacity-50\" />\n        </Button>\n      </PopoverTrigger>\n      <PopoverContent className=\"w-[300px] p-0\">\n        <Command>\n          <CommandInput placeholder=\"Search presets...\" />\n          <CommandList>\n            <CommandEmpty>No presets found.</CommandEmpty>\n            <CommandGroup heading=\"Examples\">\n              {presets.map((preset) => (\n                <CommandItem\n                  key={preset.id}\n                  onSelect={() => {\n                    setSelectedPreset(preset)\n                    setOpen(false)\n                  }}\n                >\n                  {preset.name}\n                  <Check\n                    className={cn(\n                      \"ml-auto\",\n                      selectedPreset?.id === preset.id\n                        ? \"opacity-100\"\n                        : \"opacity-0\"\n                    )}\n                  />\n                </CommandItem>\n              ))}\n            </CommandGroup>\n            <CommandSeparator />\n            <CommandGroup>\n              <CommandItem>More examples</CommandItem>\n            </CommandGroup>\n          </CommandList>\n        </Command>\n      </PopoverContent>\n    </Popover>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/preset-share": {
        "content": "import { Copy } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport function PresetShare() {\n  return (\n    <Popover>\n      <PopoverTrigger asChild>\n        <Button variant=\"secondary\">Share</Button>\n      </PopoverTrigger>\n      <PopoverContent align=\"end\" className=\"flex w-[520px] flex-col gap-4\">\n        <div className=\"flex flex-col gap-1 text-center sm:text-left\">\n          <h3 className=\"text-lg font-semibold\">Share preset</h3>\n          <p className=\"text-muted-foreground text-sm\">\n            Anyone who has this link and an OpenAI account will be able to view\n            this.\n          </p>\n        </div>\n        <div className=\"relative flex-1\">\n          <Label htmlFor=\"link\" className=\"sr-only\">\n            Link\n          </Label>\n          <Input\n            id=\"link\"\n            defaultValue=\"https://platform.openai.com/playground/p/7bbKYQvsVkNmVb8NGcdUOLae?model=text-davinci-003\"\n            readOnly\n            className=\"h-9 pr-10\"\n          />\n          <Button\n            type=\"submit\"\n            size=\"icon\"\n            variant=\"ghost\"\n            className=\"absolute top-1 right-1 size-7\"\n          >\n            <span className=\"sr-only\">Copy</span>\n            <Copy className=\"size-3.5\" />\n          </Button>\n        </div>\n      </PopoverContent>\n    </Popover>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/temperature-selector": {
        "content": "\"use client\"\n\nimport {\n  HoverCard,\n  HoverCardContent,\n  HoverCardTrigger,\n} from \"@/components/ui/hover-card\"\nimport { Label } from \"@/components/ui/label\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { SliderProps } from \"@radix-ui/react-slider\"\nimport * as React from \"react\"\n\ninterface TemperatureSelectorProps {\n  defaultValue: SliderProps[\"defaultValue\"]\n}\n\nexport function TemperatureSelector({\n  defaultValue,\n}: TemperatureSelectorProps) {\n  const [value, setValue] = React.useState(defaultValue)\n\n  return (\n    <div className=\"grid gap-2 pt-2\">\n      <HoverCard openDelay={200}>\n        <HoverCardTrigger asChild>\n          <div className=\"grid gap-4\">\n            <div className=\"flex items-center justify-between\">\n              <Label htmlFor=\"temperature\">Temperature</Label>\n              <span className=\"text-muted-foreground hover:border-border w-12 rounded-md border border-transparent px-2 py-0.5 text-right text-sm\">\n                {value}\n              </span>\n            </div>\n            <Slider\n              id=\"temperature\"\n              max={1}\n              defaultValue={value}\n              step={0.1}\n              onValueChange={setValue}\n              aria-label=\"Temperature\"\n            />\n          </div>\n        </HoverCardTrigger>\n        <HoverCardContent\n          align=\"start\"\n          className=\"w-[260px] text-sm\"\n          side=\"left\"\n        >\n          Controls randomness: lowering results in less random completions. As\n          the temperature approaches zero, the model will become deterministic\n          and repetitive.\n        </HoverCardContent>\n      </HoverCard>\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/playground-1/components/top-p-selector": {
        "content": "\"use client\"\n\nimport {\n  HoverCard,\n  HoverCardContent,\n  HoverCardTrigger,\n} from \"@/components/ui/hover-card\"\nimport { Label } from \"@/components/ui/label\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { SliderProps } from \"@radix-ui/react-slider\"\nimport * as React from \"react\"\n\ninterface TopPSelectorProps {\n  defaultValue: SliderProps[\"defaultValue\"]\n}\n\nexport function TopPSelector({ defaultValue }: TopPSelectorProps) {\n  const [value, setValue] = React.useState(defaultValue)\n\n  return (\n    <div className=\"grid gap-2 pt-2\">\n      <HoverCard openDelay={200}>\n        <HoverCardTrigger asChild>\n          <div className=\"grid gap-4\">\n            <div className=\"flex items-center justify-between\">\n              <Label htmlFor=\"top-p\">Top P</Label>\n              <span className=\"text-muted-foreground hover:border-border w-12 rounded-md border border-transparent px-2 py-0.5 text-right text-sm\">\n                {value}\n              </span>\n            </div>\n            <Slider\n              id=\"top-p\"\n              max={1}\n              defaultValue={value}\n              step={0.1}\n              onValueChange={setValue}\n              aria-label=\"Top P\"\n            />\n          </div>\n        </HoverCardTrigger>\n        <HoverCardContent\n          align=\"start\"\n          className=\"w-[260px] text-sm\"\n          side=\"left\"\n        >\n          Control diversity via nucleus sampling: 0.5 means half of all\n          likelihood-weighted options are considered.\n        </HoverCardContent>\n      </HoverCard>\n    </div>\n  )\n}\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/playground-1/page": {
      "content": "import { Button } from \"@/components/ui/button\"\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from \"@/components/ui/hover-card\"\nimport { Label } from \"@/components/ui/label\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { RotateCcw } from \"lucide-react\"\nimport Image from \"next/image\"\nimport { CodeViewer } from \"./components/code-viewer\"\nimport { MaxLengthSelector } from \"./components/maxlength-selector\"\nimport { ModelSelector } from \"./components/model-selector\"\nimport { PresetActions } from \"./components/preset-actions\"\nimport { PresetSave } from \"./components/preset-save\"\nimport { PresetSelector } from \"./components/preset-selector\"\nimport { PresetShare } from \"./components/preset-share\"\nimport { TemperatureSelector } from \"./components/temperature-selector\"\nimport { TopPSelector } from \"./components/top-p-selector\"\nimport { models, types } from \"./data/models\"\nimport { presets } from \"./data/presets\"\n\nexport default function PlaygroundPage() {\n  return (\n    <>\n      <div className=\"md:hidden\">\n        <Image\n          src=\"/examples/playground-light.png\"\n          width={1280}\n          height={916}\n          alt=\"Playground\"\n          className=\"block dark:hidden\"\n        />\n        <Image\n          src=\"/examples/playground-dark.png\"\n          width={1280}\n          height={916}\n          alt=\"Playground\"\n          className=\"hidden dark:block\"\n        />\n      </div>\n      <div className=\"hidden flex-1 flex-col md:flex\">\n        <div className=\"container flex flex-col items-start justify-between gap-4 py-6 sm:flex-row sm:items-center sm:gap-0 md:py-8\">\n          <h1 className=\"text-2xl font-bold tracking-tight\">Playground</h1>\n          <div className=\"ml-auto flex w-full gap-2 sm:justify-end\">\n            <PresetSelector presets={presets} />\n            <PresetSave />\n            <div className=\"hidden gap-2 md:flex\">\n              <CodeViewer />\n              <PresetShare />\n            </div>\n            <PresetActions />\n          </div>\n        </div>\n        <Separator />\n        <Tabs defaultValue=\"complete\" className=\"flex flex-1 flex-col\">\n          <div className=\"container flex flex-1 flex-col py-6\">\n            <div className=\"grid flex-1 items-stretch gap-8 md:grid-cols-[1fr_240px]\">\n              <div className=\"hidden flex-col gap-6 sm:flex md:order-2\">\n                <div className=\"space-y-4 rounded-lg border bg-card p-4\">\n                  <div className=\"grid gap-3\">\n                    <HoverCard openDelay={200}>\n                      <HoverCardTrigger asChild>\n                        <span className=\"text-sm font-semibold leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n                          Mode\n                        </span>\n                      </HoverCardTrigger>\n                      <HoverCardContent className=\"w-[320px] text-sm\" side=\"left\">\n                        Choose the interface that best suits your task. You can provide: a simple prompt to complete,\n                        starting and ending text to insert a completion within, or some text with instructions to edit\n                        it.\n                      </HoverCardContent>\n                    </HoverCard>\n                    <TabsList className=\"grid w-full grid-cols-3\">\n                      <TabsTrigger value=\"complete\" className=\"flex items-center justify-center\">\n                        <span className=\"sr-only\">Complete</span>\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\" className=\"h-5 w-5\">\n                          <rect x=\"4\" y=\"3\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"7\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"11\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"15\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"8.5\" y=\"11\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"8.5\" y=\"15\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"13\" y=\"11\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                        </svg>\n                      </TabsTrigger>\n                      <TabsTrigger value=\"insert\" className=\"flex items-center justify-center\">\n                        <span className=\"sr-only\">Insert</span>\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\" className=\"h-5 w-5\">\n                          <path\n                            fillRule=\"evenodd\"\n                            clipRule=\"evenodd\"\n                            d=\"M14.491 7.769a.888.888 0 0 1 .287.648.888.888 0 0 1-.287.648l-3.916 3.667a1.013 1.013 0 0 1-.692.268c-.26 0-.509-.097-.692-.268L5.275 9.065A.886.886 0 0 1 5 8.42a.889.889 0 0 1 .287-.64c.181-.17.427-.267.683-.269.257-.002.504.09.69.258L8.903 9.87V3.917c0-.243.103-.477.287-.649.183-.171.432-.268.692-.268.26 0 .509.097.692.268a.888.888 0 0 1 .287.649V9.87l2.245-2.102c.183-.172.432-.269.692-.269.26 0 .508.097.692.269Z\"\n                            fill=\"currentColor\"\n                          ></path>\n                          <rect x=\"4\" y=\"15\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"8.5\" y=\"15\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"13\" y=\"15\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                        </svg>\n                      </TabsTrigger>\n                      <TabsTrigger value=\"edit\" className=\"flex items-center justify-center\">\n                        <span className=\"sr-only\">Edit</span>\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\" className=\"h-5 w-5\">\n                          <rect x=\"4\" y=\"3\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"7\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"11\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"4\" y=\"15\" width=\"4\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <rect x=\"8.5\" y=\"11\" width=\"3\" height=\"2\" rx=\"1\" fill=\"currentColor\"></rect>\n                          <path\n                            d=\"M17.154 11.346a1.182 1.182 0 0 0-1.671 0L11 15.829V17.5h1.671l4.483-4.483a1.182 1.182 0 0 0 0-1.671Z\"\n                            fill=\"currentColor\"\n                          ></path>\n                        </svg>\n                      </TabsTrigger>\n                    </TabsList>\n                  </div>\n                </div>\n                <div className=\"space-y-4 rounded-lg border bg-card p-4\">\n                  <ModelSelector types={types} models={models} />\n                  <Separator className=\"my-2\" />\n                  <TemperatureSelector defaultValue={[0.56]} />\n                  <MaxLengthSelector defaultValue={[256]} />\n                  <TopPSelector defaultValue={[0.9]} />\n                </div>\n              </div>\n              <div className=\"flex flex-1 flex-col *:data-[slot=tab-content]:flex-1 md:order-1\">\n                <TabsContent value=\"complete\" className=\"mt-0 border-0 p-0\">\n                  <div className=\"flex h-full flex-col gap-4\">\n                    <Textarea\n                      placeholder=\"Write a tagline for an ice cream shop\"\n                      className=\"min-h-[400px] flex-1 rounded-lg border-2 p-4 md:min-h-[700px] lg:min-h-[700px]\"\n                    />\n                    <div className=\"flex items-center gap-2\">\n                      <Button className=\"px-6\">Submit</Button>\n                      <Button variant=\"secondary\" size=\"icon\">\n                        <span className=\"sr-only\">Show history</span>\n                        <RotateCcw className=\"h-4 w-4\" />\n                      </Button>\n                    </div>\n                  </div>\n                </TabsContent>\n                <TabsContent value=\"insert\" className=\"mt-0 flex flex-col gap-4 border-0 p-0\">\n                  <div className=\"grid h-full grid-rows-2 gap-6 lg:grid-cols-2 lg:grid-rows-1\">\n                    <Textarea\n                      placeholder=\"We're writing to [inset]. Congrats from OpenAI!\"\n                      className=\"h-full min-h-[300px] rounded-lg border-2 p-4 lg:min-h-[700px] xl:min-h-[700px]\"\n                    />\n                    <div className=\"rounded-lg border-2 border-dashed bg-muted/50 p-4 flex items-center justify-center text-muted-foreground\">\n                      <p className=\"text-sm\">Output will appear here</p>\n                    </div>\n                  </div>\n                  <div className=\"flex items-center gap-2\">\n                    <Button className=\"px-6\">Submit</Button>\n                    <Button variant=\"secondary\" size=\"icon\">\n                      <span className=\"sr-only\">Show history</span>\n                      <RotateCcw className=\"h-4 w-4\" />\n                    </Button>\n                  </div>\n                </TabsContent>\n                <TabsContent value=\"edit\" className=\"mt-0 flex flex-col gap-4 border-0 p-0\">\n                  <div className=\"grid h-full gap-6 lg:grid-cols-2\">\n                    <div className=\"flex flex-col gap-4\">\n                      <div className=\"flex flex-1 flex-col gap-2\">\n                        <Label htmlFor=\"input\" className=\"font-semibold\">\n                          Input\n                        </Label>\n                        <Textarea\n                          id=\"input\"\n                          placeholder=\"We is going to the market.\"\n                          className=\"flex-1 rounded-lg border-2 p-4 lg:min-h-[580px]\"\n                        />\n                      </div>\n                      <div className=\"flex flex-col gap-2\">\n                        <Label htmlFor=\"instructions\" className=\"font-semibold\">\n                          Instructions\n                        </Label>\n                        <Textarea\n                          id=\"instructions\"\n                          placeholder=\"Fix the grammar.\"\n                          className=\"rounded-lg border-2 p-4\"\n                        />\n                      </div>\n                    </div>\n                    <div className=\"rounded-lg border-2 border-dashed bg-muted/50 p-4 flex items-center justify-center text-muted-foreground min-h-[400px] lg:min-h-[700px]\">\n                      <p className=\"text-sm\">Output will appear here</p>\n                    </div>\n                  </div>\n                  <div className=\"flex items-center gap-2\">\n                    <Button className=\"px-6\">Submit</Button>\n                    <Button variant=\"secondary\" size=\"icon\">\n                      <span className=\"sr-only\">Show history</span>\n                      <RotateCcw className=\"h-4 w-4\" />\n                    </Button>\n                  </div>\n                </TabsContent>\n              </div>\n            </div>\n          </div>\n        </Tabs>\n      </div>\n    </>\n  )\n}\n",
      "language": "tsx"
    }
  },
  "pricing-1": {
    "components": {
      "@/registry/view/pricing-1/components/pricing-section": {
        "content": "import { Check, HelpCircle, ChevronRight } from \"lucide-react\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/ui/tooltip\"\r\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from \"@/components/ui/accordion\"\r\n\r\n\r\nexport default function PricingSection() {\r\n    return (\r\n        <div className=\"w-full bg-background\">\r\n            <div className=\"mx-auto max-w-7xl px-4 py-24 sm:px-6 lg:px-8\">\r\n                <div className=\"text-center\">\r\n                    <h2 className=\"text-3xl font-semibold tracking-tight text-foreground sm:text-4xl md:text-5xl\">\r\n                        Choose the right plan for you\r\n                    </h2>\r\n                    <p className=\"mx-auto mt-4 max-w-2xl text-lg text-muted-foreground\">\r\n                        Select a plan that fits your needs. All plans include a 14-day free trial.\r\n                    </p>\r\n                </div>\r\n                <div className=\"mt-16 grid grid-cols-1 gap-y-8 sm:grid-cols-2 sm:gap-6 lg:grid-cols-4 xl:gap-x-8\">\r\n                    <div className=\"relative flex flex-col overflow-hidden rounded-2xl border border-border bg-card transition-all duration-200 hover:shadow-md\">\r\n                        <div className=\"p-6 sm:p-8\">\r\n                            <h3 className=\"text-2xl font-semibold text-card-foreground\">Free</h3>\r\n                            <p className=\"mt-2 text-sm text-muted-foreground\">\r\n                                For personal use only with limited features and support\r\n                            </p>\r\n                            <div className=\"mt-6 flex items-baseline\">\r\n                                <span className=\"text-5xl font-bold tracking-tight text-card-foreground\">$0</span>\r\n                            </div>\r\n                            <p className=\"mt-1 text-sm text-muted-foreground\">Includes 1 user.</p>\r\n                        </div>\r\n                        <div className=\"flex flex-1 flex-col justify-between p-6 sm:p-8\">\r\n                            <Button variant=\"outline\" className=\"w-full rounded-full\">\r\n                                Get Started\r\n                            </Button>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative flex flex-col overflow-hidden rounded-2xl border border-border bg-accent transition-all duration-200 hover:shadow-md\">\r\n                        <div className=\"absolute right-4 top-4 rounded-full bg-primary px-3 py-1 text-xs font-medium text-primary-foreground\">\r\n                            Popular\r\n                        </div>\r\n                        <div className=\"p-6 sm:p-8\">\r\n                            <h3 className=\"text-2xl font-semibold text-accent-foreground\">Pro</h3>\r\n                            <p className=\"mt-2 text-sm text-muted-foreground\">\r\n                                For small businesses with all the features and support\r\n                            </p>\r\n                            <div className=\"mt-6 flex items-baseline\">\r\n                                <span className=\"text-5xl font-bold tracking-tight text-accent-foreground\">$29</span>\r\n                                <span className=\"ml-1 text-sm text-muted-foreground\">per user, per month</span>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"flex flex-1 flex-col justify-between p-6 sm:p-8\">\r\n                            <Button className=\"w-full rounded-full\">Purchase</Button>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative flex flex-col overflow-hidden rounded-2xl border border-border bg-card transition-all duration-200 hover:shadow-md\">\r\n                        <div className=\"p-6 sm:p-8\">\r\n                            <h3 className=\"text-2xl font-semibold text-card-foreground\">Premium</h3>\r\n                            <p className=\"mt-2 text-sm text-muted-foreground\">\r\n                                For teams and organizations with advanced features and support\r\n                            </p>\r\n                            <div className=\"mt-6 flex items-baseline\">\r\n                                <span className=\"text-5xl font-bold tracking-tight text-card-foreground\">$59</span>\r\n                                <span className=\"ml-1 text-sm text-muted-foreground\">per user, per month</span>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"flex flex-1 flex-col justify-between p-6 sm:p-8\">\r\n                            <Button variant=\"outline\" className=\"w-full rounded-full\">\r\n                                Purchase\r\n                            </Button>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"relative flex flex-col overflow-hidden rounded-2xl border border-border bg-card transition-all duration-200 hover:shadow-md\">\r\n                        <div className=\"p-6 sm:p-8\">\r\n                            <h3 className=\"text-2xl font-semibold text-card-foreground\">Enterprise</h3>\r\n                            <p className=\"mt-2 text-sm text-muted-foreground\">\r\n                                For large companies with custom features and support and a dedicated account manager\r\n                            </p>\r\n                            <div className=\"mt-6 flex items-baseline\">\r\n                                <span className=\"text-2xl font-bold tracking-tight text-card-foreground\">Custom pricing</span>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"flex flex-1 flex-col justify-between p-6 sm:p-8\">\r\n                            <Button variant=\"outline\" className=\"w-full rounded-full\">\r\n                                Contact sales\r\n                            </Button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div className=\"mt-16 overflow-hidden rounded-2xl border border-border\">\r\n                    <div className=\"grid grid-cols-1 divide-y divide-border lg:grid-cols-4 lg:divide-x lg:divide-y-0\">\r\n                        <div className=\"p-6 sm:p-8 bg-card\">\r\n                            <h3 className=\"text-lg font-semibold text-card-foreground\">Features</h3>\r\n                            <ul className=\"mt-6 space-y-4\">\r\n                                <FeatureItem feature=\"Live Collaboration\" />\r\n                                <FeatureItem feature=\"1 GB Storage\" />\r\n                                <FeatureItem feature=\"2 Projects\" />\r\n                                <FeatureItem feature=\"Basic Support\" />\r\n                                <FeatureItem feature=\"Limited Customization\" tooltip=\"Basic theme options only\" />\r\n                                <FeatureItem feature=\"Limited Integration\" tooltip=\"Connect with up to 2 services\" />\r\n                                <FeatureItem feature=\"Limited API Access\" tooltip=\"100 requests per day\" />\r\n                            </ul>\r\n                        </div>\r\n                        <div className=\"bg-accent p-6 sm:p-8\">\r\n                            <h3 className=\"text-lg font-semibold text-accent-foreground\">Everything in Free, and:</h3>\r\n                            <ul className=\"mt-6 space-y-4\">\r\n                                <FeatureItem feature=\"2 Team Members\" />\r\n                                <FeatureItem feature=\"10 GB Storage\" />\r\n                                <FeatureItem feature=\"10 Projects\" />\r\n                                <FeatureItem feature=\"Priority Support\" tooltip=\"Response within 24 hours\" />\r\n                                <FeatureItem feature=\"Full Customization\" tooltip=\"Complete theme control\" />\r\n                                <FeatureItem feature=\"Full Integration\" tooltip=\"Connect with up to 10 services\" />\r\n                                <FeatureItem feature=\"Full API Access\" tooltip=\"10,000 requests per day\" />\r\n                            </ul>\r\n                        </div>\r\n                        <div className=\"p-6 sm:p-8 bg-card\">\r\n                            <h3 className=\"text-lg font-semibold text-card-foreground\">Everything in Pro, and:</h3>\r\n                            <ul className=\"mt-6 space-y-4\">\r\n                                <FeatureItem feature=\"5 Team Members\" />\r\n                                <FeatureItem feature=\"50 GB Storage\" />\r\n                                <FeatureItem feature=\"50 Projects\" />\r\n                                <FeatureItem feature=\"Dedicated Support\" tooltip=\"Response within 8 hours\" />\r\n                                <FeatureItem feature=\"Advanced Customization\" tooltip=\"White-labeling options\" />\r\n                                <FeatureItem feature=\"Analytics\" tooltip=\"Advanced usage metrics and insights\" />\r\n                                <FeatureItem feature=\"Reports\" tooltip=\"Custom reporting tools\" />\r\n                            </ul>\r\n                        </div>\r\n                        <div className=\"p-6 sm:p-8 bg-card\">\r\n                            <h3 className=\"text-lg font-semibold text-card-foreground\">Everything in Premium, and:</h3>\r\n                            <ul className=\"mt-6 space-y-4\">\r\n                                <FeatureItem feature=\"10+ Team Members\" />\r\n                                <FeatureItem feature=\"100+ GB Storage\" />\r\n                                <FeatureItem feature=\"100+ Projects\" />\r\n                                <FeatureItem feature=\"Dedicated Account Manager\" />\r\n                                <FeatureItem feature=\"Custom Features\" tooltip=\"Bespoke development for your needs\" />\r\n                                <FeatureItem feature=\"Custom Support\" tooltip=\"24/7 priority support\" />\r\n                                <FeatureItem feature=\"Custom Integration\" tooltip=\"Enterprise API and custom integrations\" />\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div className=\"mt-16\">\r\n                    <h3 className=\"text-2xl font-semibold text-foreground\">Frequently asked questions</h3>\r\n                    <div className=\"mt-6\">\r\n                        <Accordion type=\"single\" collapsible className=\"w-full\">\r\n                            <AccordionItem value=\"item-1\">\r\n                                <AccordionTrigger className=\"text-left\">How does the 14-day trial work?</AccordionTrigger>\r\n                                <AccordionContent>\r\n                                    You can try any plan for 14 days with full access to all features. No credit card required. At the\r\n                                    end of your trial, you can choose to subscribe or downgrade to the free plan.\r\n                                </AccordionContent>\r\n                            </AccordionItem>\r\n                            <AccordionItem value=\"item-2\">\r\n                                <AccordionTrigger className=\"text-left\">Can I change plans later?</AccordionTrigger>\r\n                                <AccordionContent>\r\n                                    Yes, you can upgrade, downgrade, or cancel your plan at any time. Changes to your subscription will\r\n                                    take effect immediately.\r\n                                </AccordionContent>\r\n                            </AccordionItem>\r\n                            <AccordionItem value=\"item-3\">\r\n                                <AccordionTrigger className=\"text-left\">What payment methods do you accept?</AccordionTrigger>\r\n                                <AccordionContent>\r\n                                    We accept all major credit cards, PayPal, and Apple Pay. For Enterprise plans, we also offer\r\n                                    invoicing.\r\n                                </AccordionContent>\r\n                            </AccordionItem>\r\n                            <AccordionItem value=\"item-4\">\r\n                                <AccordionTrigger className=\"text-left\">Is there a discount for annual billing?</AccordionTrigger>\r\n                                <AccordionContent>\r\n                                    Yes, you can save 20% by choosing annual billing on any paid plan. The discount will be applied\r\n                                    automatically at checkout.\r\n                                </AccordionContent>\r\n                            </AccordionItem>\r\n                        </Accordion>\r\n                    </div>\r\n                </div>\r\n                <div className=\"mt-16 rounded-2xl bg-accent p-8 text-center\">\r\n                    <h3 className=\"text-2xl font-semibold text-accent-foreground\">Still have questions?</h3>\r\n                    <p className=\"mt-2 text-muted-foreground\">\r\n                        Our team is here to help you find the perfect plan for your needs.\r\n                    </p>\r\n                    <div className=\"mt-6\">\r\n                        <Button className=\"rounded-full\">\r\n                            Contact us\r\n                            <ChevronRight className=\"ml-2 h-4 w-4\" />\r\n                        </Button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction FeatureItem({ feature, tooltip }: { feature: string; tooltip?: string }) {\r\n    return (\r\n        <li className=\"flex items-center\">\r\n            <Check className=\"h-5 w-5 text-primary\" />\r\n            <span className=\"ml-2 text-sm text-foreground\">{feature}</span>\r\n            {tooltip && (\r\n                <TooltipProvider>\r\n                    <Tooltip>\r\n                        <TooltipTrigger asChild>\r\n                            <button className=\"ml-1\">\r\n                                <HelpCircle className=\"h-4 w-4 text-muted-foreground\" />\r\n                            </button>\r\n                        </TooltipTrigger>\r\n                        <TooltipContent className=\"max-w-xs\">\r\n                            <p>{tooltip}</p>\r\n                        </TooltipContent>\r\n                    </Tooltip>\r\n                </TooltipProvider>\r\n            )}\r\n        </li>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/pricing-1/page": {
      "content": "import PricingSection from \"./components/pricing-section\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div className=\"py-10 md:py-12 lgLpy-16\">\r\n            <PricingSection />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "pricing-2": {
    "components": {
      "@/registry/view/pricing-2/components/billing-toggle": {
        "content": "\"use client\"\r\n\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { Switch } from \"@/components/ui/switch\"\r\n\r\ninterface BillingToggleProps {\r\n    billingCycle: \"monthly\" | \"yearly\"\r\n    setBillingCycle: (value: \"monthly\" | \"yearly\") => void\r\n}\r\n\r\nexport function BillingToggle({ billingCycle, setBillingCycle }: BillingToggleProps) {\r\n    return (\r\n        <div className=\"flex items-center justify-center space-x-4\">\r\n            <Label\r\n                htmlFor=\"billing-toggle\"\r\n                className={`cursor-pointer text-sm font-medium ${billingCycle === \"monthly\" ? \"text-foreground\" : \"text-muted-foreground\"\r\n                    }`}\r\n            >\r\n                Monthly\r\n            </Label>\r\n            <Switch\r\n                id=\"billing-toggle\"\r\n                checked={billingCycle === \"yearly\"}\r\n                onCheckedChange={(checked) => setBillingCycle(checked ? \"yearly\" : \"monthly\")}\r\n                className=\"data-[state=checked]:bg-primary\"\r\n            />\r\n            <Label\r\n                htmlFor=\"billing-toggle\"\r\n                className={`cursor-pointer text-sm font-medium ${billingCycle === \"yearly\" ? \"text-foreground\" : \"text-muted-foreground\"\r\n                    }`}\r\n            >\r\n                Yearly\r\n            </Label>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/pricing-2/components/pricing-section": {
        "content": "\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Check, HelpCircle } from \"lucide-react\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/ui/tooltip\"\r\nimport { BillingToggle } from \"./billing-toggle\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst plans = [\r\n    {\r\n        name: \"Free\",\r\n        description: \"For individuals just getting started\",\r\n        monthlyPrice: 0,\r\n        yearlyPrice: 0,\r\n        features: [\r\n            \"1 user\",\r\n            \"5 projects\",\r\n            \"Up to 1GB storage\",\r\n            \"Basic support\",\r\n            { name: \"Limited API access\", tooltip: \"Up to 100 requests per day\" },\r\n            { name: \"Community access\", tooltip: \"Access to our community forums\" },\r\n        ],\r\n        cta: \"Get Started\",\r\n        popular: false,\r\n    },\r\n    {\r\n        name: \"Pro\",\r\n        description: \"For professionals and small teams\",\r\n        monthlyPrice: 15,\r\n        yearlyPrice: 144,\r\n        features: [\r\n            \"Up to 5 users\",\r\n            \"20 projects\",\r\n            \"Up to 10GB storage\",\r\n            \"Priority support\",\r\n            { name: \"Advanced API access\", tooltip: \"Up to 10,000 requests per day\" },\r\n            { name: \"Team collaboration\", tooltip: \"Real-time collaboration features\" },\r\n            \"Custom domains\",\r\n        ],\r\n        cta: \"Subscribe\",\r\n        popular: true,\r\n    },\r\n    {\r\n        name: \"Premium\",\r\n        description: \"For growing teams with advanced needs\",\r\n        monthlyPrice: 30,\r\n        yearlyPrice: 288,\r\n        features: [\r\n            \"Up to 10 users\",\r\n            \"Unlimited projects\",\r\n            \"Up to 100GB storage\",\r\n            \"24/7 phone support\",\r\n            { name: \"Enterprise API access\", tooltip: \"Unlimited API requests\" },\r\n            { name: \"Advanced analytics\", tooltip: \"Detailed usage and performance metrics\" },\r\n            \"Custom domains\",\r\n            \"SSO authentication\",\r\n        ],\r\n        cta: \"Subscribe\",\r\n        popular: false,\r\n    },\r\n    {\r\n        name: \"Enterprise\",\r\n        description: \"For large organizations with custom requirements\",\r\n        monthlyPrice: null,\r\n        yearlyPrice: null,\r\n        features: [\r\n            \"Unlimited users\",\r\n            \"Unlimited projects\",\r\n            \"Unlimited storage\",\r\n            \"Dedicated support team\",\r\n            { name: \"Custom API solutions\", tooltip: \"Tailored API solutions for your needs\" },\r\n            { name: \"Advanced security\", tooltip: \"Enhanced security features and compliance\" },\r\n            \"Custom domains\",\r\n            \"SSO authentication\",\r\n            \"Dedicated infrastructure\",\r\n            \"Custom integrations\",\r\n        ],\r\n        cta: \"Contact Sales\",\r\n        popular: false,\r\n    },\r\n]\r\n\r\nexport default function PricingSection() {\r\n    const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"yearly\">(\"monthly\")\r\n\r\n    const yearlyDiscount = 20 \r\n\r\n    return (\r\n        <section className=\"w-full py-12 md:py-24 lg:py-32\">\r\n            <div className=\"container px-4 md:px-6\">\r\n                <div className=\"flex flex-col items-center justify-center space-y-4 text-center\">\r\n                    <div className=\"space-y-2\">\r\n                        <h2 className=\"text-3xl font-bold tracking-tighter sm:text-4xl md:text-5xl\">Simple, transparent pricing</h2>\r\n                        <p className=\"mx-auto max-w-[700px] text-muted-foreground md:text-xl\">\r\n                            Choose the perfect plan for your needs. Always know what you'll pay.\r\n                        </p>\r\n                    </div>\r\n                    <div className=\"w-full max-w-sm\">\r\n                        <BillingToggle billingCycle={billingCycle} setBillingCycle={setBillingCycle} />\r\n                    </div>\r\n                    {billingCycle === \"yearly\" && (\r\n                        <div className=\"inline-flex items-center rounded-full border border-green-200 bg-green-100 px-3 py-1 text-sm text-green-700 dark:border-green-800 dark:bg-green-900/30 dark:text-green-400\">\r\n                            <span>Save {yearlyDiscount}% with yearly billing</span>\r\n                        </div>\r\n                    )}\r\n                </div>\r\n                <div className=\"mt-12 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4\">\r\n                    {plans.map((plan) => {\r\n                        const price = billingCycle === \"monthly\" ? plan.monthlyPrice : plan.yearlyPrice\r\n                        const priceDisplay = price === null ? \"Custom pricing\" : `$${price}`\r\n                        const interval = billingCycle === \"monthly\" ? \"/month\" : \"/year\"\r\n                        return (\r\n                            <Card\r\n                                key={plan.name}\r\n                                className={cn(\r\n                                    \"flex flex-col transition-all duration-200 hover:shadow-lg rounded-2xl\",\r\n                                    plan.popular ? \"border-primary shadow-md dark:border-primary dark:bg-primary/5\" : \"border-border\",\r\n                                )}\r\n                            >\r\n                                {plan.popular && (\r\n                                    <div className=\"absolute right-4 top-4 rounded-full bg-primary px-3 py-1 text-xs font-medium text-primary-foreground\">\r\n                                        Popular\r\n                                    </div>\r\n                                )}\r\n                                <CardHeader className={cn(\"flex flex-col space-y-1.5\", plan.popular && \"pt-10\")}>\r\n                                    <CardTitle className=\"text-2xl font-bold\">{plan.name}</CardTitle>\r\n                                    <CardDescription className=\"line-clamp-2 min-h-[40px]\">{plan.description}</CardDescription>\r\n                                </CardHeader>\r\n                                <CardContent className=\"flex-1\">\r\n                                    <div className=\"mb-6 flex items-baseline text-foreground\">\r\n                                        <span className=\"text-4xl font-bold\">{priceDisplay}</span>\r\n                                        {price !== null && <span className=\"ml-1 text-sm text-muted-foreground\">{interval}</span>}\r\n                                    </div>\r\n                                    <ul className=\"space-y-3\">\r\n                                        {plan.features.map((feature, index) => (\r\n                                            <li key={index} className=\"flex items-start\">\r\n                                                <Check className=\"mr-2 h-5 w-5 shrink-0 text-primary\" />\r\n                                                <span className=\"text-sm\">\r\n                                                    {typeof feature === \"string\" ? (\r\n                                                        feature\r\n                                                    ) : (\r\n                                                        <TooltipProvider>\r\n                                                            <Tooltip>\r\n                                                                <TooltipTrigger className=\"flex items-center text-left\">\r\n                                                                    {feature.name}\r\n                                                                    <HelpCircle className=\"ml-1 h-3 w-3 text-muted-foreground\" />\r\n                                                                </TooltipTrigger>\r\n                                                                <TooltipContent className=\"max-w-xs\">\r\n                                                                    <p>{feature.tooltip}</p>\r\n                                                                </TooltipContent>\r\n                                                            </Tooltip>\r\n                                                        </TooltipProvider>\r\n                                                    )}\r\n                                                </span>\r\n                                            </li>\r\n                                        ))}\r\n                                    </ul>\r\n                                </CardContent>\r\n                                <CardFooter>\r\n                                    <Button\r\n                                        className={cn(\r\n                                            \"w-full rounded-full transition-all\",\r\n                                            plan.popular ? \"bg-primary text-primary-foreground\" : \"bg-card text-card-foreground\",\r\n                                        )}\r\n                                        variant={plan.popular ? \"default\" : \"outline\"}\r\n                                    >\r\n                                        {plan.cta}\r\n                                    </Button>\r\n                                </CardFooter>\r\n                            </Card>\r\n                        )\r\n                    })}\r\n                </div>\r\n                <div className=\"mt-12 text-center\">\r\n                    <p className=\"text-muted-foreground\">All plans include a 14-day free trial. No credit card required.</p>\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/pricing-2/page": {
      "content": "import PricingSection from \"./components/pricing-section\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div className=\"py-10 md:py-12 lg:py-16\">\r\n            <PricingSection />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "pricing-3": {
    "components": {
      "@/registry/view/pricing-3/components/billing-toggle": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\ninterface BillingToggleProps {\r\n    billingCycle: \"monthly\" | \"annual\"\r\n    setBillingCycle: (value: \"monthly\" | \"annual\") => void\r\n    discount: number\r\n}\r\n\r\nexport function BillingToggle({ billingCycle, setBillingCycle, discount }: BillingToggleProps) {\r\n    return (\r\n        <div className=\"inline-flex rounded-full bg-purple-50 dark:bg-purple-950/20 p-1\">\r\n            <button\r\n                onClick={() => setBillingCycle(\"monthly\")}\r\n                className={cn(\r\n                    \"rounded-full px-4 py-2 text-sm font-medium transition-colors\",\r\n                    billingCycle === \"monthly\"\r\n                        ? \"bg-white dark:bg-gray-950 text-gray-950 dark:text-white shadow-sm\"\r\n                        : \"bg-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white\",\r\n                )}\r\n            >\r\n                Monthly\r\n            </button>\r\n            <button\r\n                onClick={() => setBillingCycle(\"annual\")}\r\n                className={cn(\r\n                    \"rounded-full px-4 py-2 text-sm font-medium transition-colors\",\r\n                    billingCycle === \"annual\"\r\n                        ? \"bg-purple-600 dark:bg-purple-500 text-white shadow-sm\"\r\n                        : \"bg-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white\",\r\n                )}\r\n            >\r\n                Annual (Save {discount}%)\r\n            </button>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/pricing-3/components/pricing-section": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Check } from 'lucide-react'\r\nimport { useState } from \"react\"\r\nimport { BillingToggle } from \"./billing-toggle\"\r\n\r\nconst plans = [\r\n    {\r\n        name: \"Creator\",\r\n        description: \"Unlock powerful AI tools to create your content, wherever you work online.\",\r\n        monthlyPrice: 19,\r\n        annualPrice: 9.5,\r\n        features: [\r\n            \"01 User Access\",\r\n            \"Access to Fixoria AI Chatbot\",\r\n            \"Access to SEO Mode\",\r\n            \"AI Image Generation and editing Tool\",\r\n            \"03 Brand Voice Access\",\r\n            \"Use AI with Browser Extension\",\r\n        ],\r\n        cta: \"Current Plan\",\r\n        ctaVariant: \"outline\" as const,\r\n        popular: false,\r\n        trial: \"Start Free 7-Days Trial\",\r\n    },\r\n    {\r\n        name: \"Pro Plan\",\r\n        description: \"Leverage advanced AI to create content for multiple brands on campaigns.\",\r\n        monthlyPrice: 99,\r\n        annualPrice: 49.5,\r\n        features: [\r\n            \"05 User Access\",\r\n            \"10 Knowledge Assets\",\r\n            \"Access to Pro SEO Mode\",\r\n            \"Collaboration with our Management\",\r\n            \"10 Brand Voice Access\",\r\n            \"01 Page Custom change Access\",\r\n        ],\r\n        cta: \"Switch to this Plan\",\r\n        ctaVariant: \"default\" as const,\r\n        popular: true,\r\n        trial: \"Start Free 7-Days Trial\",\r\n        billingNote: \"Per user, per month & billed annually\",\r\n    },\r\n    {\r\n        name: \"Business Plan\",\r\n        description: \"Personalized AI with enhanced control, security, team training, and tech support.\",\r\n        monthlyPrice: 199,\r\n        annualPrice: 99.5,\r\n        features: [\r\n            \"Unlimited Feature Usage\",\r\n            \"Performance Analytics & Insights\",\r\n            \"Custom Style Guides with New View\",\r\n            \"Advanced Admin Panel Access\",\r\n            \"Group Document Collaboration\",\r\n            \"Hight Security Platform\",\r\n        ],\r\n        cta: \"Contact Sales\",\r\n        ctaVariant: \"default\" as const,\r\n        popular: false,\r\n        trial: \"Start Free 15-Days Trial\",\r\n        customPricing: true,\r\n    },\r\n]\r\n\r\nexport default function PricingSection() {\r\n    const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"annual\">(\"monthly\")\r\n    const discount = 50\r\n\r\n    return (\r\n        <section className=\"w-full py-12\">\r\n            <div className=\"container px-4 md:px-6 max-w-6xl\">\r\n                <div className=\"flex flex-col items-start space-y-4 pb-10\">\r\n                    <div className=\"space-y-2\">\r\n                        <h2 className=\"text-3xl font-bold tracking-tight text-gray-900 dark:text-gray-50\">Upgrade Plan</h2>\r\n                        <p className=\"text-gray-500 dark:text-gray-400\">Fixoria pricing plan are designed to meet your needs as you grow</p>\r\n                    </div>\r\n                    <div className=\"mt-6\">\r\n                        <BillingToggle billingCycle={billingCycle} setBillingCycle={setBillingCycle} discount={discount} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3\">\r\n                    {plans.map((plan) => {\r\n                        const price = billingCycle === \"monthly\" ? plan.monthlyPrice : plan.annualPrice\r\n                        return (\r\n                            <Card\r\n                                key={plan.name}\r\n                                className={cn(\r\n                                    \"relative overflow-hidden rounded-2xl border transition-all duration-200 hover:shadow-md\",\r\n                                    \"border-gray-200 dark:border-gray-800 shadow-sm dark:shadow-none\",\r\n                                    plan.popular\r\n                                        ? \"border-purple-100 dark:border-purple-900/50 bg-gradient-to-b from-purple-50 to-white dark:from-purple-950/20 dark:to-black\"\r\n                                        : \"dark:bg-black\"\r\n                                )}\r\n                            >\r\n                                {plan.popular && (\r\n                                    <div className=\"absolute right-4 top-4 flex items-center rounded-full bg-purple-100 dark:bg-purple-900/50 px-3 py-1 text-xs font-medium text-purple-600 dark:text-purple-300\">\r\n                                        <svg\r\n                                            xmlns=\"http://www.w3.org/2000/svg\"\r\n                                            viewBox=\"0 0 24 24\"\r\n                                            fill=\"currentColor\"\r\n                                            className=\"mr-1 h-3 w-3\"\r\n                                        >\r\n                                            <path\r\n                                                fillRule=\"evenodd\"\r\n                                                d=\"M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z\"\r\n                                                clipRule=\"evenodd\"\r\n                                            />\r\n                                        </svg>\r\n                                        Popular\r\n                                    </div>\r\n                                )}\r\n                                <CardHeader className={cn(\"pb-8 pt-6\", plan.popular && \"pt-10\")}>\r\n                                    <CardTitle className=\"text-xl font-bold text-gray-900 dark:text-gray-50\">{plan.name}</CardTitle>\r\n                                    <CardDescription className=\"mt-1.5 text-sm text-gray-500 dark:text-gray-400\">{plan.description}</CardDescription>\r\n                                </CardHeader>\r\n                                <CardContent className=\"pb-6\">\r\n                                    <div className=\"mb-5\">\r\n                                        {plan.customPricing ? (\r\n                                            <div>\r\n                                                <div className=\"flex items-baseline\">\r\n                                                    <span className=\"text-sm font-medium text-gray-500 dark:text-gray-400\">Start from</span>\r\n                                                    <span className=\"ml-1.5 text-4xl font-bold text-gray-900 dark:text-gray-50\">${price}</span>\r\n                                                </div>\r\n                                                <div className=\"mt-1 text-sm text-gray-500 dark:text-gray-400\">Custom Pricing, Custom Billing</div>\r\n                                            </div>\r\n                                        ) : (\r\n                                            <div>\r\n                                                <div className=\"flex items-baseline\">\r\n                                                    <span className=\"text-4xl font-bold text-gray-900 dark:text-gray-50\">${price}</span>\r\n                                                </div>\r\n                                                <div className=\"mt-1 text-sm text-gray-500 dark:text-gray-400\">{plan.billingNote || `Per user & per month`}</div>\r\n                                            </div>\r\n                                        )}\r\n                                    </div>\r\n                                    <Button\r\n                                        variant={plan.ctaVariant}\r\n                                        className={cn(\r\n                                            \"w-full rounded-lg py-2.5 text-sm font-medium\",\r\n                                            plan.ctaVariant === \"default\" &&\r\n                                            \"bg-gradient-to-r from-purple-500 to-purple-700 text-white hover:from-purple-600 hover:to-purple-800 shadow-sm dark:from-purple-600 dark:to-purple-800 dark:hover:from-purple-500 dark:hover:to-purple-700\",\r\n                                            plan.ctaVariant === \"outline\" &&\r\n                                            \"border-gray-200 text-gray-900 hover:bg-gray-50 dark:border-gray-700 dark:text-gray-100 dark:hover:bg-gray-800\"\r\n                                        )}\r\n                                    >\r\n                                        {plan.cta}\r\n                                    </Button>\r\n                                    <div className=\"mt-3 text-center text-xs text-gray-500 dark:text-gray-400\">{plan.trial}</div>\r\n                                </CardContent>\r\n                                <CardFooter className=\"flex flex-col items-start border-t border-gray-100 dark:border-gray-800 px-6 py-5\">\r\n                                    <h4 className=\"mb-4 text-sm font-semibold text-gray-900 dark:text-gray-50\">Features</h4>\r\n                                    <p className=\"mb-4 text-xs text-gray-500 dark:text-gray-400\">\r\n                                        {plan.name === \"Creator\"\r\n                                            ? \"Everything in our free plan includes\"\r\n                                            : plan.name === \"Pro Plan\"\r\n                                                ? \"Everything in Creator & Plus\"\r\n                                                : \"Everything in Creator, Plus & Business\"}\r\n                                    </p>\r\n                                    <ul className=\"space-y-3\">\r\n                                        {plan.features.map((feature, index) => (\r\n                                            <li key={index} className=\"flex items-start\">\r\n                                                <div className=\"mr-3 flex h-5 w-5 items-center justify-center rounded-full bg-purple-100 dark:bg-purple-900/30\">\r\n                                                    <Check className=\"h-3 w-3 text-purple-600 dark:text-purple-400\" />\r\n                                                </div>\r\n                                                <span className=\"text-sm text-gray-600 dark:text-gray-300\">{feature}</span>\r\n                                            </li>\r\n                                        ))}\r\n                                    </ul>\r\n                                </CardFooter>\r\n                            </Card>\r\n                        )\r\n                    })}\r\n                </div>\r\n            </div>\r\n        </section>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/pricing-3/page": {
      "content": "import PricingSection from \"./components/pricing-section\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div className=\"py-10 md:py-12 lg:py-16\">\r\n            <PricingSection />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "pricing-4": {
    "components": {
      "@/registry/view/pricing-4/components/billing-toggle": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\ninterface BillingToggleProps {\r\n    billingCycle: \"monthly\" | \"annual\"\r\n    setBillingCycle: (value: \"monthly\" | \"annual\") => void\r\n    discount: number\r\n}\r\n\r\nexport function BillingToggle({ billingCycle, setBillingCycle, discount }: BillingToggleProps) {\r\n    return (\r\n        <div className=\"inline-flex rounded-full bg-gray-50 dark:bg-gray-950/30 p-1\">\r\n            <button\r\n                onClick={() => setBillingCycle(\"monthly\")}\r\n                className={cn(\r\n                    \"rounded-full px-4 py-2 text-sm font-medium transition-colors\",\r\n                    billingCycle === \"monthly\"\r\n                        ? \"bg-white dark:bg-zinc-900 text-gray-900 dark:text-white shadow-sm\"\r\n                        : \"bg-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white\",\r\n                )}\r\n            >\r\n                Monthly\r\n            </button>\r\n            <button\r\n                onClick={() => setBillingCycle(\"annual\")}\r\n                className={cn(\r\n                    \"rounded-full px-4 py-2 text-sm font-medium transition-colors\",\r\n                    billingCycle === \"annual\"\r\n                        ? \"bg-slate-900 dark:bg-gray-950 text-white shadow-sm\"\r\n                        : \"bg-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white\",\r\n                )}\r\n            >\r\n                Annual (Save {discount}%)\r\n            </button>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/pricing-4/components/pricing-section": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Check } from \"lucide-react\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\nimport { BillingToggle } from \"./billing-toggle\"\r\n\r\nexport default function PricingSection() {\r\n    const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"annual\">(\"monthly\")\r\n    const discount = 20\r\n\r\n    const plans = {\r\n        essential: {\r\n            monthly: {\r\n                price: \"$14.99\",\r\n                suffix: \"/month\",\r\n            },\r\n            annual: {\r\n                price: \"$149.90\",\r\n                suffix: \"/year\",\r\n            },\r\n        },\r\n        creator: {\r\n            monthly: {\r\n                price: \"$29.99\",\r\n                suffix: \"/month\",\r\n            },\r\n            annual: {\r\n                price: \"$299.90\",\r\n                suffix: \"/year\",\r\n            },\r\n        },\r\n        business: {\r\n            monthly: {\r\n                price: \"$59.99\",\r\n                suffix: \"/month\",\r\n            },\r\n            annual: {\r\n                price: \"$599.90\",\r\n                suffix: \"/year\",\r\n            },\r\n        },\r\n    }\r\n\r\n    return (\r\n        <div className={cn(\"w-full py-16 px-4 md:px-6 lg:px-8\", \"bg-white dark:bg-black\")}>\r\n            <div className=\"max-w-6xl mx-auto\">\r\n                <h2\r\n                    className={cn(\r\n                        \"text-3xl md:text-4xl lg:text-5xl font-bold text-center mb-8\",\r\n                        \"text-slate-900 dark:text-white\",\r\n                    )}\r\n                >\r\n                    Pricing that scales with\r\n                    <br />\r\n                    your business\r\n                </h2>\r\n                <div className=\"flex flex-col items-center justify-center mb-16\">\r\n                    <BillingToggle billingCycle={billingCycle} setBillingCycle={setBillingCycle} discount={discount} />\r\n                </div>\r\n                <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6 lg:gap-8\">\r\n                    <div\r\n                        className={cn(\r\n                            \"rounded-xl shadow-lg p-6 flex flex-col\",\r\n                            \"bg-white border border-slate-200\",\r\n                            \"dark:bg-zinc-900 dark:border-zinc-800\",\r\n                        )}\r\n                    >\r\n                        <div className=\"mb-6\">\r\n                            <h3 className={cn(\"text-xl font-semibold mb-2\", \"text-slate-900 dark:text-white\")}>Essentials Plan</h3>\r\n                            <div className=\"flex items-baseline\">\r\n                                <span className={cn(\"text-3xl font-bold\", \"text-slate-900 dark:text-white\")}>\r\n                                    {plans.essential[billingCycle].price}\r\n                                </span>\r\n                                <span className=\"text-muted-foreground ml-1\">{plans.essential[billingCycle].suffix}</span>\r\n                            </div>\r\n                            <p className=\"text-muted-foreground mt-2 text-sm\">Perfect for solopreneurs and content creators</p>\r\n                        </div>\r\n                        <button\r\n                            className={cn(\r\n                                \"w-full py-2.5 px-4 rounded-full transition mb-6\",\r\n                                \"bg-slate-100 hover:bg-slate-200 text-slate-900\",\r\n                                \"dark:bg-zinc-800 dark:hover:bg-zinc-700 dark:text-white\",\r\n                            )}\r\n                        >\r\n                            Get Started\r\n                        </button>\r\n                        <div className=\"mt-2\">\r\n                            <p className={cn(\"text-xs uppercase font-semibold mb-4\", \"text-slate-500 dark:text-zinc-500\")}>\r\n                                FEATURES\r\n                            </p>\r\n                            <ul className=\"space-y-3\">\r\n                                <Feature>5 social media accounts</Feature>\r\n                                <Feature>Unlimited scheduled posts</Feature>\r\n                                <Feature>Visual content calendar</Feature>\r\n                                <Feature>Basic analytics dashboard</Feature>\r\n                                <Feature>Best time to post recommendations</Feature>\r\n                                <Feature>Mobile app access</Feature>\r\n                                <Feature>Email support</Feature>\r\n                                <Feature>7-day free trial</Feature>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                    <div\r\n                        className={cn(\r\n                            \"rounded-xl shadow-lg p-6 flex flex-col relative md:transform md:-translate-y-2 md:scale-105 z-10\",\r\n                            \"bg-white border border-slate-200\",\r\n                            \"dark:bg-zinc-900 dark:border-zinc-800\",\r\n                        )}\r\n                    >\r\n                        <div className=\"absolute top-0 left-0 right-0 h-full overflow-hidden rounded-xl z-0\">\r\n                            <div className=\"block\">\r\n                                <div className=\"absolute top-0 -left-5 w-44 h-44 bg-gradient-radial from-purple-400 to-transparent rounded-full blur-xl\" />\r\n                                <div className=\"absolute top-0 left-1/4 w-44 h-44 bg-gradient-radial from-violet-400 to-transparent rounded-full blur-xl\" />\r\n                                <div className=\"absolute -top-4 right-1/2 w-48 h-44 bg-gradient-radial from-pink-300 to-transparent rounded-full blur-xl\" />\r\n                                <div className=\"absolute top-4 right-1/4 w-40 h-36 bg-gradient-radial from-teal-300 to-transparent rounded-full blur-xl\" />\r\n                                <div className=\"absolute top-0 right-0 w-40 h-36 bg-gradient-radial from-green-300 to-transparent rounded-full blur-xl\" />\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"mb-6 relative z-10\">\r\n                            <h3 className={cn(\"text-xl font-semibold mb-2\", \"text-slate-900 dark:text-white\")}>Creator Plan</h3>\r\n                            <div className=\"flex items-baseline\">\r\n                                <span className={cn(\"text-3xl font-bold\", \"text-slate-900 dark:text-white\")}>\r\n                                    {plans.creator[billingCycle].price}\r\n                                </span>\r\n                                <span className=\"text-muted-foreground ml-1\">{plans.creator[billingCycle].suffix}</span>\r\n                            </div>\r\n                            <p className=\"text-muted-foreground mt-2 text-sm\">Ideal for growing creators</p>\r\n                        </div>\r\n                        <button\r\n                            className={cn(\r\n                                \"w-full py-2.5 px-4 rounded-full transition mb-6 relative z-10\",\r\n                                \"bg-slate-900 hover:bg-slate-800 text-white\",\r\n                                \"dark:bg-black dark:hover:bg-zinc-800 dark:text-white\",\r\n                            )}\r\n                        >\r\n                            Get Started\r\n                        </button>\r\n                        <div className=\"mt-2 relative z-10\">\r\n                            <p className={cn(\"text-xs uppercase font-semibold mb-4\", \"text-slate-500 dark:text-zinc-500\")}>\r\n                                FEATURES\r\n                            </p>\r\n                            <ul className=\"space-y-3\">\r\n                                <Feature>15 social media accounts</Feature>\r\n                                <Feature>Everything in Essentials plan</Feature>\r\n                                <Feature>Enhanced analytics with custom reports</Feature>\r\n                                <Feature>Content Studio</Feature>\r\n                                <Feature>Full AI content assistant (50 generations/month)</Feature>\r\n                                <Feature>Advanced content studio with brand presets</Feature>\r\n                                <Feature>Post recycling for evergreen content</Feature>\r\n                                <Feature>Content categories and tagging</Feature>\r\n                                <Feature>Team collaboration (3 users)</Feature>\r\n                                <Feature>Hashtag performance tracking</Feature>\r\n                                <Feature>Bulk scheduling and uploads</Feature>\r\n                                <Feature>Priority email support</Feature>\r\n                                <Feature>7-day free trial</Feature>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                    <div\r\n                        className={cn(\r\n                            \"rounded-xl shadow-lg p-6 flex flex-col\",\r\n                            \"bg-white border border-slate-200\",\r\n                            \"dark:bg-zinc-900 dark:border-zinc-800\",\r\n                        )}\r\n                    >\r\n                        <div className=\"mb-6\">\r\n                            <h3 className={cn(\"text-xl font-semibold mb-2\", \"text-slate-900 dark:text-white\")}>Business Plan</h3>\r\n                            <div className=\"flex items-baseline\">\r\n                                <span className={cn(\"text-3xl font-bold\", \"text-slate-900 dark:text-white\")}>\r\n                                    {plans.business[billingCycle].price}\r\n                                </span>\r\n                                <span className=\"text-muted-foreground ml-1\">{plans.business[billingCycle].suffix}</span>\r\n                            </div>\r\n                            <p className=\"text-muted-foreground mt-2 text-sm\">Built for growing businesses, and agencies</p>\r\n                        </div>\r\n                        <button\r\n                            className={cn(\r\n                                \"w-full py-2.5 px-4 rounded-full transition mb-6\",\r\n                                \"bg-slate-100 hover:bg-slate-200 text-slate-900\",\r\n                                \"dark:bg-zinc-800 dark:hover:bg-zinc-700 dark:text-white\",\r\n                            )}\r\n                        >\r\n                            Get Started\r\n                        </button>\r\n                        <div className=\"mt-2\">\r\n                            <p className={cn(\"text-xs uppercase font-semibold mb-4\", \"text-slate-500 dark:text-zinc-500\")}>\r\n                                FEATURES\r\n                            </p>\r\n                            <ul className=\"space-y-3\">\r\n                                <Feature>30 social media accounts</Feature>\r\n                                <Feature>Everything in Business plan</Feature>\r\n                                <Feature>Unlimited team members</Feature>\r\n                                <Feature>Unlimited AI content generations</Feature>\r\n                                <Feature>Premium content studio with multi-brand assets</Feature>\r\n                                <Feature>Client access portal with white labeling</Feature>\r\n                                <Feature>Advanced approval workflows</Feature>\r\n                                <Feature>Content library with asset management</Feature>\r\n                                <Feature>AI-powered content strategy suggestions</Feature>\r\n                                <Feature>Custom branded reports</Feature>\r\n                                <Feature>API access</Feature>\r\n                                <Feature>Real-time performance alerts</Feature>\r\n                                <Feature>Dedicated account manager</Feature>\r\n                                <Feature>Priority support with live chat</Feature>\r\n                                <Feature>7-day free trial</Feature>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction Feature({ children }: { children: React.ReactNode }) {\r\n    return (\r\n        <li className=\"flex items-start\">\r\n            <div className=\"mr-2 mt-0.5\">\r\n                <Check className=\"h-4 w-4 text-emerald-400\" />\r\n            </div>\r\n            <span className={cn(\"text-sm\", \"text-slate-700 dark:text-zinc-300\")}>{children}</span>\r\n        </li>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/pricing-4/page": {
      "content": "import PricingSection from \"./components/pricing-section\"\r\n\r\nexport default function Page() {\r\n    return (\r\n        <div>\r\n            <PricingSection />\r\n        </div>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "product-overview-1": {
    "components": {
      "@/registry/view/product-overview-1/components/discounted-price": {
        "content": "import React from \"react\"\r\n\r\nimport { formatPrice } from \"../lib/utils\"\r\n\r\ninterface DiscountPriceProps {\r\n  price: number\r\n  discount: number\r\n  quantity?: number\r\n}\r\nconst DiscountPrice: React.FC<DiscountPriceProps> = ({\r\n  price,\r\n  discount,\r\n  quantity = 1,\r\n}) => {\r\n  // here we are using Math.ceil to round up the price to the nearest integer\r\n  // this is because the price is in EGP and we want to avoid decimal values\r\n  let priceIncreasing = Math.ceil(price)\r\n  const discountedPrice = Math.ceil(priceIncreasing * (1 - discount))\r\n  // When using the quantity parameter, please ensure that the shipping price is updated accordingly, as shipping costs depend on the quantity of products ordered.\r\n  // const PriceAfterTimesQuantity = discountedPrice * quantity + shippingPrice + taxPrice * (discountedPrice * quantity);\r\n  const formattedPrice = formatPrice(discountedPrice * quantity)\r\n  return (\r\n    <div>\r\n      <p className=\"text-destructive font-semibold\">{formattedPrice}</p>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default DiscountPrice\r\n",
        "language": "tsx"
      },
      "@/registry/view/product-overview-1/components/normal-price": {
        "content": "import React from \"react\"\r\n\r\nimport { formatPrice } from \"../lib/utils\"\r\n\r\ntype ProductPrices = {\r\n  price: number\r\n  quantity?: number\r\n}\r\n\r\nconst NormalPrice: React.FC<ProductPrices> = ({ price, quantity = 1 }) => {\r\n  // here we are using Math.ceil to round up the price to the nearest integer\r\n  // this is because the price is in EGP and we want to avoid decimal values\r\n  const PriceAfterTimesQuantity = price * quantity\r\n  let normalPrice = Math.ceil(PriceAfterTimesQuantity)\r\n  // If you want to add more parameters to the price like: shippingPrice, taxPrice, etc.\r\n  // you can add it like this:\r\n  // When using the quantity parameter, please ensure that the shipping price is updated accordingly, as shipping costs depend on the quantity of products ordered.\r\n  // const PriceAfterTimesQuantity = normalPrice * quantity + shippingPrice + taxPrice * (normalPrice * quantity);\r\n  const formattedTotalPrice = formatPrice(normalPrice)\r\n  return (\r\n    <div>\r\n      <p>{formattedTotalPrice}</p>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default NormalPrice\r\n",
        "language": "tsx"
      },
      "@/registry/view/product-overview-1/components/product-color-temp-button": {
        "content": "\"use client\"\r\n\r\nimport React, { useEffect, useState } from \"react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport type ProductColorTemp = \"warm\" | \"cool\" | \"white\"\r\n\r\nexport interface ColorTemperatureOption {\r\n  value: ProductColorTemp\r\n  label: string\r\n  icon?: React.ReactNode\r\n}\r\n\r\nconst DEFAULT_OPTIONS: ColorTemperatureOption[] = [\r\n  { value: \"warm\", label: \"Warm\" },\r\n  { value: \"cool\", label: \"Cool\" },\r\n  { value: \"white\", label: \"White\" },\r\n]\r\n\r\ninterface ColorTemperatureSelectorProps {\r\n  value: ProductColorTemp\r\n  onValueChange: (newValue: ProductColorTemp) => void\r\n  options?: ColorTemperatureOption[]\r\n  title?: string\r\n  disabled?: boolean\r\n  className?: string\r\n  buttonClassName?: string\r\n}\r\n\r\nexport function ColorTemperatureSelector({\r\n  value,\r\n  onValueChange,\r\n  options = DEFAULT_OPTIONS,\r\n  title = \"Color Temperature\",\r\n  disabled = false,\r\n  className,\r\n  buttonClassName,\r\n}: ColorTemperatureSelectorProps) {\r\n  const [selectedValue, setSelectedValue] = useState<ProductColorTemp>(value)\r\n\r\n  useEffect(() => {\r\n    setSelectedValue(value)\r\n  }, [value])\r\n\r\n  const handleSelectionChange = (newValue: ProductColorTemp) => {\r\n    if (disabled || newValue === selectedValue) return\r\n\r\n    setSelectedValue(newValue)\r\n    onValueChange(newValue)\r\n  }\r\n\r\n  return (\r\n    <div className={cn(\"space-y-2\", className)}>\r\n      {title && <h3 className=\"text-lg font-semibold mb-2\">{title}</h3>}\r\n      <div className=\"grid grid-cols-3 gap-2\">\r\n        {options.map((option) => (\r\n          <Button\r\n            key={option.value}\r\n            onClick={() => handleSelectionChange(option.value)}\r\n            variant={selectedValue === option.value ? \"default\" : \"outline\"}\r\n            disabled={disabled}\r\n            className={cn(\r\n              \"flex items-center justify-center p-0 m-0 rounded-full transition-all duration-200\",\r\n              selectedValue === option.value\r\n                ? \"bg-primary text-primary-foreground shadow-lg\"\r\n                : \"bg-background hover:bg-secondary\",\r\n              disabled && \"opacity-50 cursor-not-allowed\",\r\n              buttonClassName\r\n            )}\r\n          >\r\n            {option.label}\r\n          </Button>\r\n        ))}\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/product-overview-1/components/product-image-carousel": {
        "content": "\"use client\"\r\n\r\nimport React from \"react\"\r\nimport Image from \"next/image\"\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\r\nimport { Carousel } from \"react-responsive-carousel\"\r\n\r\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\"\r\n\r\ntype ProductImagesProps = {\r\n  productImages: string[]\r\n}\r\n\r\nconst ProductImages: React.FC<ProductImagesProps> = ({ productImages }) => {\r\n  const [currentIndex, setCurrentIndex] = React.useState(0)\r\n  const handleSlideChange = (index: number) => {\r\n    setCurrentIndex(index)\r\n  }\r\n\r\n  return (\r\n    <div className=\"relative\">\r\n      <Carousel\r\n        showThumbs={true}\r\n        showStatus={false}\r\n        useKeyboardArrows={true}\r\n        infiniteLoop={false}\r\n        autoPlay={false}\r\n        selectedItem={currentIndex}\r\n        onChange={handleSlideChange}\r\n        className=\"product-carousel\"\r\n        thumbWidth={60}\r\n        renderThumbs={() =>\r\n          productImages.map((img, index) => (\r\n            <div key={index} className=\"thumbnail-wrapper h-12 sm:h-14 md:h-16\">\r\n              <Image\r\n                src={img}\r\n                alt={`Thumbnail ${index + 1}`}\r\n                width={80}\r\n                height={80}\r\n                className=\"object-cover rounded-sm thumbnail-image\"\r\n              />\r\n            </div>\r\n          ))\r\n        }\r\n        renderArrowPrev={(onClickHandler, hasPrev, label) =>\r\n          hasPrev && (\r\n            <button\r\n              onClick={onClickHandler}\r\n              title={label}\r\n              className=\"absolute z-[2] w-8 h-8 sm:w-10 sm:h-10 left-1 sm:left-2 rounded-full bg-gray-50 dark:bg-gray-950 cursor-pointer border-none shadow-md flex items-center justify-center\"\r\n              style={{\r\n                top: \"calc(50% - 20px)\",\r\n              }}\r\n            >\r\n              <ChevronLeft className=\"w-4 h-4 sm:w-5 sm:h-5\" />\r\n            </button>\r\n          )\r\n        }\r\n        renderArrowNext={(onClickHandler, hasNext, label) =>\r\n          hasNext && (\r\n            <button\r\n              onClick={onClickHandler}\r\n              title={label}\r\n              className=\"absolute z-[2] w-8 h-8 sm:w-10 sm:h-10 right-1 sm:right-2 rounded-full bg-gray-50 dark:bg-gray-950 cursor-pointer border-none shadow-md flex items-center justify-center\"\r\n              style={{\r\n                top: \"calc(50% - 20px)\",\r\n              }}\r\n            >\r\n              <ChevronRight className=\"w-4 h-4 sm:w-5 sm:h-5\" />\r\n            </button>\r\n          )\r\n        }\r\n      >\r\n        {productImages.map((img, index) => (\r\n          <div\r\n            key={index}\r\n            className=\"w-full aspect-square flex items-center justify-center\"\r\n          >\r\n            <Image\r\n              src={img}\r\n              alt={`Product image ${index + 1}`}\r\n              width={800}\r\n              height={800}\r\n              priority={index === 0}\r\n              quality={90}\r\n              className=\"max-h-[60vh] mx-auto rounded-lg\"\r\n            />\r\n          </div>\r\n        ))}\r\n      </Carousel>\r\n      <style jsx global>{`\r\n        .carousel .thumbs-wrapper {\r\n          margin: 10px 0 !important;\r\n          overflow: hidden;\r\n        }\r\n\r\n        .carousel .thumbs {\r\n          padding: 0 !important;\r\n          display: flex;\r\n          justify-content: center;\r\n          gap: 8px;\r\n        }\r\n\r\n        /* Better spacing on mobile */\r\n        @media (max-width: 640px) {\r\n          .carousel .thumbs {\r\n            gap: 4px;\r\n          }\r\n\r\n          .carousel .thumb {\r\n            margin-right: 0 !important;\r\n          }\r\n        }\r\n\r\n        /* Make sure main image container is responsive */\r\n        .carousel .slide img {\r\n          max-width: 100%;\r\n          max-height: 100%;\r\n        }\r\n      `}</style>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default ProductImages\r\n",
        "language": "tsx"
      },
      "@/registry/view/product-overview-1/components/product-info": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useState } from \"react\"\r\nimport { ArrowRight, Minus, Plus, ShoppingCart } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nimport DiscountPrice from \"./discounted-price\"\r\nimport NormalPrice from \"./normal-price\"\r\nimport {\r\n  ColorTemperatureSelector,\r\n  ProductColorTemp,\r\n} from \"./product-color-temp-button\"\r\nimport { ProductIP, ProductIPSelector } from \"./product-ip-buttons\"\r\n\r\ninterface ProductConfigurationPanelProps {\r\n  productName: string\r\n  productCode?: string\r\n  description: string\r\n  displayPrice: number\r\n  discountPercentage?: number\r\n  quantity: number\r\n  onIncreaseQuantity: () => void\r\n  onDecreaseQuantity: () => void\r\n  canDecreaseQuantity: boolean\r\n  showIpSelector: boolean\r\n  selectedIp: ProductIP\r\n  onIpChange: (newIp: ProductIP) => void\r\n  isIpSelectorDisabled?: boolean\r\n  showColorTempSelector?: boolean\r\n  selectedColorTemp: ProductColorTemp\r\n  onColorTempChange: (newColorTemp: ProductColorTemp) => void\r\n  isColorTempSelectorDisabled?: boolean\r\n  showLampSelector: boolean\r\n  isLampSelectorDisabled?: boolean\r\n  basePriceForLamp?: number\r\n  hNumberForLamp?: number\r\n  onAddToCart: () => void\r\n  isAddToCartLoading: boolean\r\n  addToCartLabel?: string\r\n  onOrderNow: () => void\r\n  isOrderNowLoading: boolean\r\n  orderNowLabel?: string\r\n  stockStatus: \"inStock\" | \"outOfStock\" | \"checkAvailability\"\r\n  stockStatusText?: string\r\n  availabilityCheckCta?: string\r\n}\r\n\r\nexport function ProductConfigurationPanel({\r\n  productName,\r\n  productCode = \"PRODUCT-CODE\",\r\n  description,\r\n  displayPrice,\r\n  discountPercentage,\r\n  quantity,\r\n  onIncreaseQuantity,\r\n  onDecreaseQuantity,\r\n  canDecreaseQuantity,\r\n  showIpSelector,\r\n  selectedIp,\r\n  onIpChange,\r\n  isIpSelectorDisabled,\r\n  showColorTempSelector = true,\r\n  selectedColorTemp,\r\n  onColorTempChange,\r\n  isColorTempSelectorDisabled,\r\n  onAddToCart,\r\n  isAddToCartLoading,\r\n  addToCartLabel = \"Add to Cart\",\r\n  onOrderNow,\r\n  isOrderNowLoading,\r\n  orderNowLabel = \"Order Now\",\r\n  stockStatus,\r\n  stockStatusText = \"In Stock\",\r\n  availabilityCheckCta = \"Check Stores Availability\",\r\n}: ProductConfigurationPanelProps) {\r\n  // State to track IP-related price changes\r\n  const [currentPrice, setCurrentPrice] = useState(displayPrice)\r\n  const [additionalIpCost, setAdditionalIpCost] = useState(0)\r\n\r\n  // Update price when displayPrice or additionalIpCost changes\r\n  useEffect(() => {\r\n    setCurrentPrice(displayPrice + additionalIpCost)\r\n  }, [displayPrice, additionalIpCost])\r\n\r\n  // Handle IP change with price updates\r\n  const handleIpChange = (newIp: ProductIP, newAdditionalPrice?: number) => {\r\n    onIpChange(newIp)\r\n    if (newAdditionalPrice !== undefined) {\r\n      setAdditionalIpCost(newAdditionalPrice)\r\n    }\r\n  }\r\n\r\n  return (\r\n    <div className=\"w-full px-2 sm:px-4 lg:ml-0 xl:ml-8 2xl:ml-16\">\r\n      <h1 className=\"text-xl sm:text-2xl md:text-[24px] lg:text-3xl mt-3 lg:mt-5 mb-2 font-bold uppercase\">\r\n        {productCode}\r\n      </h1>\r\n      <p className=\"text-muted-foreground text-sm md:text-base lg:text-lg mb-3\">\r\n        {description}\r\n      </p>\r\n      <div className=\"flex flex-col mb-2 sm:mb-4\">\r\n        <div\r\n          className={cn(\r\n            \"grid gap-4 space-x-0 gap-y-4 grid-cols-1 md:grid-cols-2 \"\r\n          )}\r\n        >\r\n          {showColorTempSelector && (\r\n            <ColorTemperatureSelector\r\n              value={selectedColorTemp}\r\n              onValueChange={onColorTempChange}\r\n              disabled={\r\n                isColorTempSelectorDisabled ||\r\n                isOrderNowLoading ||\r\n                isAddToCartLoading\r\n              }\r\n            />\r\n          )}\r\n          {showIpSelector && (\r\n            <ProductIPSelector\r\n              value={selectedIp}\r\n              onValueChange={handleIpChange}\r\n              disabled={\r\n                isIpSelectorDisabled || isOrderNowLoading || isAddToCartLoading\r\n              }\r\n              title=\"Water Resistance (IP)\"\r\n              basePrice={displayPrice}\r\n            />\r\n          )}\r\n        </div>\r\n      </div>\r\n      <div className=\"my-3 sm:my-4 flex flex-wrap items-center gap-2 sm:gap-3\">\r\n        {discountPercentage && discountPercentage > 0 ? (\r\n          <>\r\n            <span className=\"text-base sm:text-lg font-semibold\">\r\n              <DiscountPrice\r\n                price={currentPrice}\r\n                discount={discountPercentage}\r\n                quantity={quantity}\r\n              />\r\n            </span>\r\n            <s className=\"text-gray-500 italic text-sm sm:text-base\">\r\n              <NormalPrice price={currentPrice} quantity={quantity} />\r\n            </s>\r\n            <span className=\"text-green-500 font-semibold text-sm sm:text-base\">\r\n              {discountPercentage * 100}% OFF\r\n            </span>\r\n          </>\r\n        ) : (\r\n          <span className=\"text-base sm:text-lg font-semibold\">\r\n            <NormalPrice price={currentPrice} quantity={quantity} />\r\n          </span>\r\n        )}\r\n      </div>\r\n      <div className=\"flex flex-row justify-between items-center w-full mb-3 sm:mb-4 gap-2 sm:gap-0\">\r\n        <button\r\n          className=\"text-primary text-sm sm:text-base md:text-lg flex items-center hover:underline disabled:text-muted-foreground disabled:no-underline disabled:cursor-not-allowed\"\r\n          disabled={stockStatus !== \"checkAvailability\"}\r\n        >\r\n          {availabilityCheckCta}\r\n          <ArrowRight className=\"w-4 h-4 sm:w-5 sm:h-5 ml-1 sm:ml-2\" />\r\n        </button>\r\n        <p\r\n          className={cn(\r\n            \"text-sm sm:text-base md:text-lg\",\r\n            stockStatus === \"inStock\" ? \"text-green-400\" : \"text-red-500\"\r\n          )}\r\n        >\r\n          {stockStatusText}\r\n        </p>\r\n      </div>\r\n      <div className=\"mt-4 sm:mt-6\">\r\n        <div className=\"flex flex-row items-center gap-3 sm:gap-4 w-full\">\r\n          <div className=\"flex items-center justify-center w-auto\">\r\n            <Button\r\n              size=\"icon\"\r\n              onClick={onDecreaseQuantity}\r\n              disabled={\r\n                !canDecreaseQuantity || isOrderNowLoading || isAddToCartLoading\r\n              }\r\n              className=\"w-10 h-10 sm:w-12 sm:h-12 shadow-md hover:shadow-lg transition-shadow bg-gray-950 hover:bg-black dark:bg-gray-100 dark:hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed\"\r\n            >\r\n              <Minus className=\"h-4 w-4 sm:w-5 sm:h-5\" />\r\n            </Button>\r\n            <span className=\"text-base sm:text-lg mx-3 sm:mx-4 w-0 sm:w-6 md:w-8 text-center\">\r\n              {quantity}\r\n            </span>\r\n            <Button\r\n              size=\"icon\"\r\n              onClick={onIncreaseQuantity}\r\n              disabled={isOrderNowLoading || isAddToCartLoading}\r\n              className=\"w-10 h-10 sm:w-12 sm:h-12 shadow-md hover:shadow-lg transition-shadow bg-gray-950 hover:bg-black dark:bg-gray-100 dark:hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed\"\r\n            >\r\n              <Plus className=\"h-4 w-4 sm:w-5 sm:h-5\" />\r\n            </Button>\r\n          </div>\r\n          <Button\r\n            onClick={onAddToCart}\r\n            disabled={\r\n              isAddToCartLoading ||\r\n              isOrderNowLoading ||\r\n              stockStatus !== \"inStock\"\r\n            }\r\n            className=\"bg-primary text-white px-3 py-2.5 sm:px-4 sm:py-3 text-sm sm:text-base w-full rounded uppercase flex items-center justify-center disabled:opacity-70 disabled:cursor-not-allowed\"\r\n          >\r\n            {isAddToCartLoading ? \"Adding...\" : addToCartLabel}\r\n            {!isAddToCartLoading && (\r\n              <ShoppingCart className=\"ml-2 w-4 h-4 sm:w-5 sm:h-5\" />\r\n            )}\r\n          </Button>\r\n        </div>\r\n        <div className=\"mt-3 sm:mt-4\">\r\n          <button\r\n            onClick={onOrderNow}\r\n            disabled={\r\n              isOrderNowLoading ||\r\n              isAddToCartLoading ||\r\n              stockStatus !== \"inStock\"\r\n            }\r\n            className={cn(\r\n              \"border-gray-950 dark:border-gray-50 transition-colors duration-300 bg-gray-50 dark:bg-transparent border-[1.5px] px-3 py-2.5 sm:px-4 sm:py-3 text-sm sm:text-base w-full rounded\",\r\n              \"hover:bg-black hover:text-white dark:hover:bg-gray-100 dark:hover:text-gray-950 dark:text-gray-100 dark:bg-background\",\r\n              \"disabled:opacity-70 disabled:cursor-not-allowed disabled:bg-gray-200 disabled:text-gray-500 disabled:hover:bg-gray-200 disabled:hover:text-gray-500\"\r\n            )}\r\n          >\r\n            {isOrderNowLoading ? \"Processing...\" : orderNowLabel}\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/product-overview-1/components/product-ip-buttons": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useState } from \"react\"\r\nimport { Droplets } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  Tooltip,\r\n  TooltipContent,\r\n  TooltipProvider,\r\n  TooltipTrigger,\r\n} from \"@/components/ui/tooltip\"\r\n\r\nexport type ProductIP = \"IP20\" | \"IP44\" | \"IP54\" | \"IP65\" | \"IP68\"\r\n\r\nconst PRODUCT_IP_OPTIONS_MAP: Record<\r\n  ProductIP,\r\n  { label: string; description: string; increaseOnPricePercent: number }\r\n> = {\r\n  IP20: {\r\n    label: \"IP 20\",\r\n    description: \"Protected against solid objects over 12mm\",\r\n    increaseOnPricePercent: 0,\r\n  },\r\n  IP44: {\r\n    label: \"IP 44\",\r\n    description: \"Protected against water splashes from all directions\",\r\n    increaseOnPricePercent: 0.04,\r\n  },\r\n  IP54: {\r\n    label: \"IP 54\",\r\n    description: \"Protected against dust and water splashes\",\r\n    increaseOnPricePercent: 0.06,\r\n  },\r\n  IP65: {\r\n    label: \"IP 65\",\r\n    description: \"Dust tight and protected against water jets\",\r\n    increaseOnPricePercent: 0.08,\r\n  },\r\n  IP68: {\r\n    label: \"IP 68\",\r\n    description: \"Dust tight and protected against long periods of immersion\",\r\n    increaseOnPricePercent: 0.1,\r\n  },\r\n}\r\n\r\ninterface ProductIPSelectorProps {\r\n  value: ProductIP\r\n  onValueChange: (newValue: ProductIP, newPrice?: number) => void\r\n  title?: string\r\n  basePrice: number\r\n  disabled?: boolean\r\n}\r\n\r\nexport function ProductIPSelector({\r\n  value,\r\n  onValueChange,\r\n  title = \"Water Resistance (IP Rating)\",\r\n  disabled = false,\r\n  basePrice,\r\n}: ProductIPSelectorProps) {\r\n  const [selectedIp, setSelectedIp] = useState<ProductIP>(value)\r\n\r\n  useEffect(() => {\r\n    setSelectedIp(value)\r\n  }, [value])\r\n\r\n  const handleIpChange = (newIp: ProductIP) => {\r\n    if (disabled) return\r\n    setSelectedIp(newIp)\r\n\r\n    const { increaseOnPricePercent } = PRODUCT_IP_OPTIONS_MAP[newIp]\r\n    const additionalPrice = basePrice * increaseOnPricePercent\r\n    onValueChange(newIp, additionalPrice)\r\n  }\r\n\r\n  return (\r\n    <div className=\"space-y-2\">\r\n      {title && <h3 className=\"text-lg font-semibold mb-2\">{title}</h3>}\r\n      <div className=\"grid sm:grid-cols-3 grid-cols-1 gap-2\">\r\n        {Object.entries(PRODUCT_IP_OPTIONS_MAP).map(\r\n          ([ip, { label, description }]) => (\r\n            <TooltipProvider key={ip}>\r\n              <Tooltip>\r\n                <TooltipTrigger asChild>\r\n                  <Button\r\n                    onClick={() => handleIpChange(ip as ProductIP)}\r\n                    variant={selectedIp === ip ? \"default\" : \"outline\"}\r\n                    disabled={disabled}\r\n                    className={cn(\r\n                      \"flex items-center justify-center w-full rounded-full\",\r\n                      \"transition-colors duration-150 ease-in-out\",\r\n                      selectedIp === ip\r\n                        ? \"bg-primary text-primary-foreground\"\r\n                        : \"bg-background hover:bg-secondary text-secondary-foreground\",\r\n                      disabled && \"opacity-50 cursor-not-allowed\"\r\n                    )}\r\n                  >\r\n                    <Droplets className=\"w-4 h-4 mr-1 flex-shrink-0\" />\r\n                    <span className=\"ml-1 truncate\">{label}</span>\r\n                  </Button>\r\n                </TooltipTrigger>\r\n                <TooltipContent className=\"sm:block hidden font-medium\">\r\n                  {description}\r\n                </TooltipContent>\r\n              </Tooltip>\r\n            </TooltipProvider>\r\n          )\r\n        )}\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {
      "@/registry/view/product-overview-1/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/product-overview-1/page": {
      "content": "\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { ProductColorTemp } from \"@/components/product-color-temp-button\"\r\nimport ProductImages from \"@/components/product-image-carousel\"\r\nimport { ProductConfigurationPanel } from \"@/components/product-info\"\r\nimport { ProductIP } from \"@/components/product-ip-buttons\"\r\n\r\nimport Container from \"@/components/Container\"\r\n\r\ninterface ProductOverviewProps {\r\n  productName: string\r\n  productCode?: string\r\n  description: string\r\n  price: number\r\n  originalPrice?: number\r\n  discountPercentage?: number\r\n  images: string[]\r\n  initialIp?: ProductIP\r\n  initialColorTemp?: ProductColorTemp\r\n  stockStatus?: \"inStock\" | \"outOfStock\" | \"checkAvailability\"\r\n  stockStatusText?: string\r\n  specifications?: { [key: string]: string }\r\n}\r\n\r\nexport default function ProductOverviewPage({\r\n  productName = \"Product Name\",\r\n  productCode = \"PRODUCT-CODE\",\r\n  description = \"Product description goes here. This is a sample product overview page.\",\r\n  price = 99.99,\r\n  discountPercentage = 0.1,\r\n  images = [\r\n    \"/components/product-card-1.png\",\r\n    \"/components/product-card-1.png\",\r\n    \"/components/product-card-1.png\",\r\n  ],\r\n  initialIp = \"IP44\",\r\n  initialColorTemp = \"warm\",\r\n  stockStatus = \"inStock\",\r\n  stockStatusText = \"In Stock\",\r\n  specifications,\r\n}: ProductOverviewProps) {\r\n  const [quantity, setQuantity] = useState<number>(1)\r\n  const [selectedIp, setSelectedIp] = useState<ProductIP>(initialIp)\r\n  const [selectedColorTemp, setSelectedColorTemp] =\r\n    useState<ProductColorTemp>(initialColorTemp)\r\n  const [isAddingToCart, setIsAddingToCart] = useState<boolean>(false)\r\n  const [isOrdering, setIsOrdering] = useState<boolean>(false)\r\n  const [currentPrice, setCurrentPrice] = useState<number>(price)\r\n\r\n  const handleIncreaseQuantity = () => {\r\n    setQuantity((prev) => prev + 1)\r\n  }\r\n\r\n  const handleDecreaseQuantity = () => {\r\n    if (quantity > 1) {\r\n      setQuantity((prev) => prev - 1)\r\n    }\r\n  }\r\n\r\n  const handleIpChange = (newIp: ProductIP) => {\r\n    setSelectedIp(newIp)\r\n  }\r\n\r\n  const handleAddToCart = () => {\r\n    setIsAddingToCart(true)\r\n    setTimeout(() => {\r\n      console.log(\"Added to cart:\", {\r\n        productName,\r\n        productCode,\r\n        quantity,\r\n        selectedIp,\r\n        selectedColorTemp,\r\n        price: currentPrice,\r\n      })\r\n      setIsAddingToCart(false)\r\n    }, 1000)\r\n  }\r\n\r\n  const handleOrderNow = () => {\r\n    setIsOrdering(true)\r\n    setTimeout(() => {\r\n      console.log(\"Ordered:\", {\r\n        productName,\r\n        productCode,\r\n        quantity,\r\n        selectedIp,\r\n        selectedColorTemp,\r\n        price: currentPrice,\r\n      })\r\n      setIsOrdering(false)\r\n    }, 1000)\r\n  }\r\n\r\n  return (\r\n    <div className=\"py-10 md:py-16 lg:py-20 w-full h-full\">\r\n      <Container>\r\n        <div className=\"flex flex-col sm:flex-row gap-4 sm:gap-6 lg:gap-8\">\r\n          <div className=\"w-full md:w-1/2 lg:w-4/12 mx-auto md:mx-0\">\r\n            <ProductImages productImages={images} />\r\n          </div>\r\n          <div className=\"w-full lg:w-7/12\">\r\n            <ProductConfigurationPanel\r\n              productName={productName}\r\n              productCode={productCode}\r\n              description={description}\r\n              displayPrice={price}\r\n              discountPercentage={discountPercentage}\r\n              quantity={quantity}\r\n              onIncreaseQuantity={handleIncreaseQuantity}\r\n              onDecreaseQuantity={handleDecreaseQuantity}\r\n              canDecreaseQuantity={quantity > 1}\r\n              showIpSelector={true}\r\n              selectedIp={selectedIp}\r\n              onIpChange={handleIpChange}\r\n              isIpSelectorDisabled={false}\r\n              showColorTempSelector={true}\r\n              selectedColorTemp={selectedColorTemp}\r\n              onColorTempChange={(newTemp) => setSelectedColorTemp(newTemp)}\r\n              isColorTempSelectorDisabled={false}\r\n              showLampSelector={false}\r\n              onAddToCart={handleAddToCart}\r\n              isAddToCartLoading={isAddingToCart}\r\n              onOrderNow={handleOrderNow}\r\n              isOrderNowLoading={isOrdering}\r\n              stockStatus={stockStatus}\r\n              stockStatusText={stockStatusText}\r\n            />\r\n          </div>\r\n        </div>\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "products-carousel-1": {
    "components": {
      "@/registry/view/products-carousel-1/components/product-card": {
        "content": "\"use client\"\r\n\r\nimport React, { useState } from \"react\"\r\nimport Image from \"next/image\"\r\nimport Link from \"next/link\"\r\nimport { Truck } from \"lucide-react\"\r\nimport { Carousel } from \"react-responsive-carousel\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\n\r\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\"\r\n\r\nimport DiscountPrice from \"../../product-overview-1/components/discounted-price\"\r\nimport NormalPrice from \"../../product-overview-1/components/normal-price\"\r\n\r\ninterface Product {\r\n  productId: string\r\n  productName: string\r\n  brand?: string\r\n  price: number\r\n  productImages: string[]\r\n  productDiscount: number\r\n  detailsUrl?: string\r\n  productDescription?: string\r\n}\r\n\r\ninterface ProductCardProps {\r\n  product: Product\r\n  showBadge?: boolean\r\n  showShipping?: boolean\r\n  onAddToCart?: (productId: string) => void\r\n  className?: string\r\n  cardWidth?: string\r\n  isSignedIn?: boolean\r\n  onAuthRequired?: () => void\r\n}\r\n\r\nconst ProductCard: React.FC<ProductCardProps> = ({\r\n  product,\r\n  showBadge = true,\r\n  showShipping = true,\r\n  onAddToCart,\r\n  className = \"\",\r\n  cardWidth = \"max-w-[300px]\",\r\n  isSignedIn = true,\r\n  onAuthRequired,\r\n}) => {\r\n  const [currentIndex, setCurrentIndex] = useState<number>(0)\r\n  const [isClicked, setIsClicked] = useState(false)\r\n\r\n  const handleSlideChange = (index: number) => setCurrentIndex(index)\r\n  const handleDetailsClick = () => setIsClicked(true)\r\n\r\n  const handleAddToCart = () => {\r\n    if (!isSignedIn && onAuthRequired) {\r\n      onAuthRequired()\r\n      return\r\n    }\r\n    onAddToCart?.(product.productId)\r\n  }\r\n\r\n  return (\r\n    <div className={cn(\"relative select-none\", cardWidth, className)}>\r\n      <div className=\"absolute top-2 left-2 z-10 px-2 py-1 flex items-center gap-2 text-xs text-white bg-[#676769] rounded-tr-md rounded-br-md\">\r\n        <Truck className=\"w-4 h-4\" />\r\n        <span>Fast Shipping</span>\r\n      </div>\r\n      <div className=\"absolute top-0 right-0 z-10\">\r\n        <Badge className=\"rounded-none text-sm bg-red-500 text-white\">\r\n          {Math.round(product.productDiscount * 100)}% OFF\r\n        </Badge>\r\n      </div>\r\n      <div className=\"flex flex-col overflow-hidden\">\r\n        <div className=\"w-full h-52 relative overflow-hidden\">\r\n          {product.productImages.length > 0 && (\r\n            <Carousel\r\n              showThumbs={false}\r\n              showStatus={false}\r\n              useKeyboardArrows\r\n              infiniteLoop={false}\r\n              autoPlay={false}\r\n              selectedItem={currentIndex}\r\n              onChange={handleSlideChange}\r\n              renderArrowPrev={(onClick, hasPrev) =>\r\n                hasPrev && (\r\n                  <button\r\n                    type=\"button\"\r\n                    onClick={onClick}\r\n                    className=\"absolute left-2 top-1/2 -translate-y-1/2 z-10 p-1 bg-white/80 dark:bg-black/30 rounded-full\"\r\n                  >\r\n                    <svg\r\n                      className=\"w-5 h-5 text-gray-800 dark:text-white\"\r\n                      aria-hidden=\"true\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\"\r\n                      fill=\"none\"\r\n                      viewBox=\"0 0 24 24\"\r\n                    >\r\n                      <path stroke=\"currentColor\" d=\"m15 19-7-7 7-7\" />\r\n                    </svg>\r\n                  </button>\r\n                )\r\n              }\r\n              renderArrowNext={(onClick, hasNext) =>\r\n                hasNext && (\r\n                  <button\r\n                    type=\"button\"\r\n                    onClick={onClick}\r\n                    className=\"absolute right-0 top-1/2 -translate-y-1/2 z-10 p-1 bg-white/80 dark:bg-black/30 rounded-full\"\r\n                  >\r\n                    <svg\r\n                      className=\"w-5 h-5 text-gray-800 dark:text-white\"\r\n                      aria-hidden=\"true\"\r\n                      xmlns=\"http://www.w3.org/2000/svg\"\r\n                      fill=\"none\"\r\n                      viewBox=\"0 0 24 24\"\r\n                    >\r\n                      <path stroke=\"currentColor\" d=\"m9 5 7 7-7 7\" />\r\n                    </svg>\r\n                  </button>\r\n                )\r\n              }\r\n            >\r\n              {product.productImages.map((image, idx) => (\r\n                <div key={idx} className=\"w-full h-full\">\r\n                  <Image\r\n                    src={image}\r\n                    alt={product.productName}\r\n                    width={500}\r\n                    height={300}\r\n                    quality={90}\r\n                    className=\"w-full h-full object-cover\"\r\n                  />\r\n                </div>\r\n              ))}\r\n            </Carousel>\r\n          )}\r\n        </div>\r\n        <div className=\"mt-1 space-y-2\">\r\n          <h2 className=\"text-lg font-medium text-gray-900 dark:text-white\">\r\n            {product.productName}\r\n          </h2>\r\n          <p className=\"text-sm text-gray-600 dark:text-gray-300 line-clamp-2\">\r\n            {product.productDescription}\r\n          </p>\r\n          <div>\r\n            {product.productDiscount > 0 ? (\r\n              <div className=\"flex items-center gap-2\">\r\n                <span className=\"text-lg text-red-600 font-semibold\">\r\n                  <DiscountPrice\r\n                    price={product.price}\r\n                    discount={product.productDiscount}\r\n                  />\r\n                </span>\r\n                <s className=\"text-gray-500 text-sm\">\r\n                  <NormalPrice price={product.price} />\r\n                </s>\r\n              </div>\r\n            ) : (\r\n              <span className=\"text-lg font-medium text-gray-900 dark:text-white\">\r\n                <NormalPrice price={product.price} />\r\n              </span>\r\n            )}\r\n          </div>\r\n\r\n          <div className=\"flex gap-2 mt-4\">\r\n            <Link\r\n              href={product.detailsUrl || \"#\"}\r\n              className={cn(\r\n                \"flex-1 text-center px-4 py-2 text-sm font-medium border border-gray-800 rounded hover:bg-gray-800 hover:text-white dark:border-gray-200 dark:hover:bg-gray-200 dark:hover:text-gray-800 transition-colors\",\r\n                isClicked\r\n                  ? \"bg-gray-800 text-white dark:bg-gray-200 dark:text-gray-800\"\r\n                  : \"\"\r\n              )}\r\n              onClick={handleDetailsClick}\r\n            >\r\n              More Details\r\n            </Link>\r\n\r\n            <button\r\n              onClick={handleAddToCart}\r\n              className=\"bg-black rounded py-1 px-2 flex items-center justify-center\"\r\n            >\r\n              <svg\r\n                xmlns=\"http://www.w3.org/2000/svg\"\r\n                viewBox=\"0 0 576 512\"\r\n                width={20}\r\n                height={20}\r\n                fill=\"white\"\r\n              >\r\n                <path d=\"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\" />\r\n              </svg>\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default ProductCard\r\n",
        "language": "tsx"
      },
      "@/registry/view/products-carousel-1/components/product-carousel": {
        "content": "import {\r\n  Carousel,\r\n  CarouselContent,\r\n  CarouselItem,\r\n  CarouselNext,\r\n  CarouselPrevious,\r\n} from \"@/components/ui/carousel\"\r\n\r\nimport { products } from \"../constant\"\r\nimport ProductCard from \"./product-card\"\r\n\r\nconst ProductCarousel = () => {\r\n  return (\r\n    <Carousel className=\"w-full\">\r\n      <CarouselContent>\r\n        {products.map((product, index) => (\r\n          <CarouselItem\r\n            key={index}\r\n            className=\"sm:basis-1/2 md:basis-1/3 lg:basis-1/4 xl:basis-1/5\"\r\n          >\r\n            <ProductCard\r\n              product={product}\r\n              showBadge={true}\r\n              showShipping={true}\r\n            />\r\n          </CarouselItem>\r\n        ))}\r\n      </CarouselContent>\r\n      <CarouselPrevious className=\"ml-9 h-10 w-10 bg-slate-50 text-gray-950\" />\r\n      <CarouselNext className=\"mr-9 h-10 w-10 bg-slate-50 text-gray-950\" />\r\n    </Carousel>\r\n  )\r\n}\r\n\r\nexport default ProductCarousel\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/products-carousel-1/constant/index": {
        "content": "export const products = [\r\n  {\r\n    productId: \"product-jy-535-5w\",\r\n    productName: \"Product-JY-535-5W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-535-5w/JY-535-5W (1).png\",\r\n      \"/blocks/product-carousel/jy-535-5w/JY-535-5W (2).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-535-5W is a high-quality indoor product with advanced features.\",\r\n    price: 500,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-535-5w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-539-7w\",\r\n    productName: \"Product-JY-539-7W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-539-7w/JY-539-7W (1).png\",\r\n      \"/blocks/product-carousel/jy-539-7w/JY-539-7W (2).png\",\r\n    ],\r\n    productDescription:\r\n      \"High-performance lighting solution for modern interiors.\",\r\n    price: 750,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-539-7w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-540-7w\",\r\n    productName: \"Product-JY-540-7W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-540-7w/JY-540-7W (1).png\",\r\n      \"/blocks/product-carousel/jy-540-7w/JY-540-7W (2).png\",\r\n    ],\r\n    productDescription: \"Energy efficient lighting with sleek design.\",\r\n    price: 750,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-540-7w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-595-44w\",\r\n    productName: \"Product-JY-595-44W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-595-44w/JY-595-44W (1).png\",\r\n      \"/blocks/product-carousel/jy-595-44w/JY-595-44W (2).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-595-44W is a high-quality indoor product with advanced features.\",\r\n    price: 900,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-595-44w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-595-48w\",\r\n    productName: \"Product-JY-595-48W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-595-48W is a high-quality indoor product with advanced features.\",\r\n    price: 1100,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-595-48w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-595-48w\",\r\n    productName: \"Product-JY-595-48W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-595-48W is a high-quality indoor product with advanced features.\",\r\n    price: 1100,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-595-48w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-595-48w\",\r\n    productName: \"Product-JY-595-48W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-595-48W is a high-quality indoor product with advanced features.\",\r\n    price: 1100,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-595-48w\",\r\n  },\r\n  {\r\n    productId: \"product-jy-595-48w\",\r\n    productName: \"Product-JY-595-48W\",\r\n    productImages: [\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n      \"/blocks/product-carousel/jy-595-48w/JY-595-48W (1).png\",\r\n    ],\r\n    productDescription:\r\n      \"Product-JY-595-48W is a high-quality indoor product with advanced features.\",\r\n    price: 1100,\r\n    productDiscount: 0.1,\r\n    detailsUrl: \"/products/jy-595-48w\",\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {
      "@/registry/view/products-carousel-1/lib/utils.ts": {
        "content": "// this for formatting the price in the product overview page for your country currency\r\nexport const formatPrice = (price: number) => {\r\n  const formatter = new Intl.NumberFormat(\"en-US\", {\r\n    style: \"currency\",\r\n    currency: \"EGP\",\r\n    useGrouping: false,\r\n  })\r\n  return formatter.format(price)\r\n}\r\n",
        "language": "typescript"
      }
    },
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/products-carousel-1/page": {
      "content": "import Container from \"@/components/Container\"\r\n\r\nimport ProductCarousel from \"./components/product-carousel\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"py-10 md:py-16 lg:py-20\">\r\n      <Container>\r\n        <ProductCarousel />\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "products-list-1": {
    "components": {
      "@/registry/view/products-list-1/components/product-list": {
        "content": "import Image from \"next/image\"\r\nimport Link from \"next/link\"\r\nimport { products } from \"@/registry/view/products-list-1/constant\"\r\nimport { MoveLeft, MoveRight } from \"lucide-react\"\r\n\r\nimport Container from \"@/components/Container\"\r\n\r\nimport { Sidebar } from \"./sidebar\"\r\n\r\nexport default function ProductsList() {\r\n  return (\r\n    <Container>\r\n      <div className=\"flex items-center justify-between mb-8 max-w-xl  \">\r\n        <div className=\"space-y-2 \">\r\n          <h1 className=\"text-3xl font-normal text-neutral-800\">Our Product</h1>\r\n          <p className=\"text-lg font-light text-muted-foreground \">\r\n            Lorem, ipsum dolor sit amet consectetur adipisicing elit. Totam ut\r\n            sequi vitae beatae? Commodi, omnis. Incidunt dolore.\r\n          </p>\r\n        </div>\r\n      </div>\r\n      <div className=\"flex h-screen border border-border p-2 rounded-lg\">\r\n        <Sidebar />\r\n        <main className=\"flex-1  lg:p-8 p-4 overflow-y-auto hide-scrollbar\">\r\n          <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-6\">\r\n            {products.map((product) => (\r\n              <Link\r\n                href={`/products/${product.id}`}\r\n                key={product.id}\r\n                className=\"group rounded-md overflow-hidden transition-all duration-300 hover:opacity-90\"\r\n              >\r\n                <div className=\"aspect-square relative\">\r\n                  <Image\r\n                    src={product.image}\r\n                    alt={product.name}\r\n                    fill\r\n                    className=\"object-cover\"\r\n                  />\r\n                </div>\r\n                <div className=\"flex justify-between items-center mt-3 mb-1 px-3\">\r\n                  <p className=\"lg:text-lg md:text-base sm:text-sm text-neutral-700\">\r\n                    {product.name}\r\n                  </p>\r\n                  <p className=\"lg:text-lg md:text-base sm:text-sm font-medium text-neutral-700\">\r\n                    ${product.price}\r\n                  </p>\r\n                </div>\r\n              </Link>\r\n            ))}\r\n          </div>\r\n          <div className=\"flex items-center justify-between gap-4 mt-16\">\r\n            <button className=\"py-3 px-8  rounded-md hover:bg-gray-200 transition-colors\">\r\n              <MoveLeft size={20} />\r\n            </button>\r\n            <div className=\"flex space-x-2\">\r\n              <span className=\"w-8 h-2 bg-gray-950 rounded-full cursor-pointer\" />\r\n              <span className=\"w-2 h-2 bg-gray-300 rounded-full cursor-pointer\" />\r\n              <span className=\"w-2 h-2 bg-gray-300 rounded-full cursor-pointer\" />\r\n              <span className=\"w-2 h-2 bg-gray-300 rounded-full cursor-pointer\" />\r\n            </div>\r\n            <button className=\"py-3 px-8 rounded-md hover:bg-gray-200 transition-colors\">\r\n              <MoveRight size={20} />\r\n            </button>\r\n          </div>\r\n        </main>\r\n      </div>\r\n    </Container>\r\n  )\r\n}\r\n",
        "language": "tsx"
      },
      "@/registry/view/products-list-1/components/sidebar": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\nimport { useCallback, useRef, useState } from \"react\"\r\nimport Link from \"next/link\"\r\nimport { motion } from \"framer-motion\"\r\nimport {\r\n  Armchair,\r\n  Bath,\r\n  Bed,\r\n  Crown,\r\n  Facebook,\r\n  Instagram,\r\n  Layers,\r\n  Mail,\r\n  PanelLeftOpen,\r\n  PanelRightOpen,\r\n  Sparkles,\r\n  Star,\r\n  SwatchBook,\r\n  TreePine,\r\n  UtensilsCrossed,\r\n} from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\ninterface SidebarItemProps {\r\n  icon: React.ReactNode\r\n  label: string\r\n  isActive?: boolean\r\n  href: string\r\n}\r\n\r\nconst SidebarItem = ({\r\n  icon,\r\n  label,\r\n  isActive = false,\r\n  href,\r\n}: SidebarItemProps) => {\r\n  return (\r\n    <Link\r\n      href={href}\r\n      className={cn(\r\n        \"flex items-center gap-3 px-4 py-2 rounded-md transition-colors\",\r\n        isActive\r\n          ? \"bg-primary text-primary-foreground\"\r\n          : \"hover:bg-accent text-muted-foreground\"\r\n      )}\r\n    >\r\n      <span className=\"w-5 h-5 text-current\">{icon}</span>\r\n      <span className=\"text-sm font-medium\">{label}</span>\r\n    </Link>\r\n  )\r\n}\r\n\r\ninterface SidebarSectionProps {\r\n  title: string\r\n  children: React.ReactNode\r\n}\r\n\r\nconst SidebarSection = ({ title, children }: SidebarSectionProps) => {\r\n  return (\r\n    <div className=\"mt-6 px-4\">\r\n      <h3 className=\"text-xs font-semibold tracking-wider text-gray-300 dark:text-gray-500 mb-2\">\r\n        {title}\r\n      </h3>\r\n      <div className=\"space-y-1\">{children}</div>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport function Sidebar() {\r\n  const [isOpenSidebar, setIsOpenSidebar] = useState(true)\r\n  const toggleSidebar = useCallback(() => {\r\n    setIsOpenSidebar((prevState) => !prevState)\r\n  }, [])\r\n\r\n  const sidebarVariants = {\r\n    open: {\r\n      width: 280,\r\n      opacity: 1,\r\n      transition: { duration: 0.3 },\r\n    },\r\n    closed: {\r\n      width: 0,\r\n      opacity: 0,\r\n      transition: { duration: 0.3 },\r\n    },\r\n  }\r\n\r\n  return (\r\n    <>\r\n      {!isOpenSidebar && (\r\n        <button\r\n          onClick={toggleSidebar}\r\n          aria-label=\"Open sidebar\"\r\n          className=\"relative top-2 left-0 z-20 p-2 border-r border-border bg-background hover:bg-accent transition-colors flex items-center justify-center\"\r\n        >\r\n          <PanelLeftOpen className=\"w-5 h-5 text-foreground\" />\r\n        </button>\r\n      )}\r\n      <motion.aside\r\n        initial={isOpenSidebar ? \"open\" : \"closed\"}\r\n        animate={isOpenSidebar ? \"open\" : \"closed\"}\r\n        variants={sidebarVariants}\r\n        className={cn(\r\n          \"w-64 h-full border-r border-border sticky top-0 flex flex-col\",\r\n          isOpenSidebar ? \"open\" : \"closed\"\r\n        )}\r\n      >\r\n        <div className=\"px-6 py-8 flex justify-between items-center border-b border-border\">\r\n          <h1 className=\"text-xl font-semibold uppercase\">UniqueBrand</h1>\r\n          {isOpenSidebar && (\r\n            <button\r\n              onClick={toggleSidebar}\r\n              aria-label=\"Close sidebar\"\r\n              className=\"p-1.5 rounded-md hover:bg-accent transition-colors\"\r\n            >\r\n              <PanelRightOpen className=\"w-5 h-5 text-foreground\" />\r\n            </button>\r\n          )}\r\n        </div>\r\n        <nav className=\"flex-1 overflow-y-auto hide-scrollbar\">\r\n          <SidebarSection title=\"\">\r\n            <SidebarItem\r\n              icon={<Star size={18} />}\r\n              label=\"Popular\"\r\n              isActive\r\n              href=\"#\"\r\n            />\r\n            <SidebarItem\r\n              icon={<Sparkles size={18} />}\r\n              label=\"New Collection\"\r\n              href=\"#\"\r\n            />\r\n            <SidebarItem\r\n              icon={<Armchair size={18} />}\r\n              label=\"Custom Furniture\"\r\n              href=\"#\"\r\n            />\r\n          </SidebarSection>\r\n          <SidebarSection title=\"MATERIAL\">\r\n            <SidebarItem icon={<TreePine size={18} />} label=\"Wood\" href=\"#\" />\r\n            <SidebarItem icon={<Layers size={18} />} label=\"Glass\" href=\"#\" />\r\n            <SidebarItem\r\n              icon={<SwatchBook size={18} />}\r\n              label=\"Fabric\"\r\n              href=\"#\"\r\n            />\r\n          </SidebarSection>\r\n          <SidebarSection title=\"PACKAGE\">\r\n            <SidebarItem icon={<Crown size={18} />} label=\"Brand\" href=\"#\" />\r\n            <SidebarItem icon={<Bed size={18} />} label=\"Bedroom\" href=\"#\" />\r\n            <SidebarItem icon={<Bath size={18} />} label=\"Bathroom\" href=\"#\" />\r\n            <SidebarItem\r\n              icon={<UtensilsCrossed size={18} />}\r\n              label=\"Kitchen Sets\"\r\n              href=\"#\"\r\n            />\r\n          </SidebarSection>\r\n          <SidebarSection title=\"CONTACT\">\r\n            <SidebarItem\r\n              icon={<Facebook size={18} />}\r\n              label=\"Facebook\"\r\n              href=\"#\"\r\n            />\r\n            <SidebarItem\r\n              icon={<Instagram size={18} />}\r\n              label=\"Instagram\"\r\n              href=\"#\"\r\n            />\r\n            <SidebarItem icon={<Mail size={18} />} label=\"Email\" href=\"#\" />\r\n          </SidebarSection>\r\n        </nav>\r\n      </motion.aside>\r\n    </>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/products-list-1/constant/index": {
        "content": "interface Product {\r\n  id: string\r\n  name: string\r\n  price: number\r\n  image: string\r\n}\r\n\r\nexport const products: Product[] = [\r\n  {\r\n    id: \"1\",\r\n    name: \"Radiant Glow Lamp\",\r\n    price: 30,\r\n    image: \"/blocks/products-list-1/image-1.jpg\",\r\n  },\r\n  {\r\n    id: \"2\",\r\n    name: \"Breeze Recliner\",\r\n    price: 59,\r\n    image: \"/blocks/products-list-1/image-2.jpg\",\r\n  },\r\n  {\r\n    id: \"3\",\r\n    name: \"Vista Armchair\",\r\n    price: 40,\r\n    image: \"/blocks/products-list-1/image-3.jpg\",\r\n  },\r\n  {\r\n    id: \"4\",\r\n    name: \"Eden Comfort Seat\",\r\n    price: 60,\r\n    image: \"/blocks/products-list-1/image-4.jpg\",\r\n  },\r\n  {\r\n    id: \"5\",\r\n    name: \"Crestwood Chair\",\r\n    price: 59,\r\n    image: \"/blocks/products-list-1/image-5.jpg\",\r\n  },\r\n  {\r\n    id: \"6\",\r\n    name: \"Dining Chair With Arms\",\r\n    price: 45,\r\n    image: \"/blocks/products-list-1/image-6.jpg\",\r\n  },\r\n  {\r\n    id: \"7\",\r\n    name: \"Floor Lamp\",\r\n    price: 50,\r\n    image: \"/blocks/products-list-1/image-7.jpg\",\r\n  },\r\n  {\r\n    id: \"8\",\r\n    name: \"Luxe Lounger\",\r\n    price: 48,\r\n    image: \"/blocks/products-list-1/image-8.jpg\",\r\n  },\r\n  {\r\n    id: \"9\",\r\n    name: \"Outdoor Armchair\",\r\n    price: 47,\r\n    image: \"/blocks/products-list-1/image-9.jpg\",\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/products-list-1/page": {
      "content": "import Container from \"@/components/Container\"\r\n\r\nimport ProductsList from \"./components/product-list\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"py-10 md:py-16 lg:py-20\">\r\n      <Container>\r\n        <ProductsList />\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "service-1": {
    "components": {
      "@/registry/view/service-1/components/service": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useRef, useState } from \"react\"\r\nimport Link from \"next/link\"\r\nimport gsap from \"gsap\"\r\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\"\r\nimport { MoveRight } from \"lucide-react\"\r\n\r\nimport Container from \"@/components/Container\"\r\n\r\nimport { services } from \"../constant\"\r\n\r\ngsap.registerPlugin(ScrollTrigger)\r\nexport default function Services() {\r\n  const [activeService, setActiveService] = useState<number>(2)\r\n  const sectionRef = useRef<HTMLDivElement>(null)\r\n  useEffect(() => {\r\n    const ctx = gsap.context(() => {\r\n      gsap.fromTo(\r\n        \".service-card\",\r\n        { y: 50, opacity: 0 },\r\n        {\r\n          y: 0,\r\n          opacity: 1,\r\n          duration: 0.8,\r\n          stagger: 0.3,\r\n          ease: \"power4.out\",\r\n          scrollTrigger: {\r\n            trigger: sectionRef.current,\r\n            start: \"top 80%\",\r\n            end: \"top 30%\",\r\n            toggleActions: \"play none none none\",\r\n          },\r\n        }\r\n      )\r\n    }, sectionRef)\r\n    return () => ctx.revert()\r\n  }, [])\r\n\r\n  return (\r\n    <section\r\n      className=\"bg-background text-foreground py-20 relative overflow-hidden\"\r\n      ref={sectionRef}\r\n    >\r\n      <Container>\r\n        <span className=\"text-sm uppercase tracking-wider text-muted-foreground\">\r\n          OUR SERVICES\r\n        </span>\r\n        <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-8 mt-6\">\r\n          <div>\r\n            <h2 className=\"text-4xl md:text-5xl lg:text-6xl font-bold leading-tight\">\r\n              What <span className=\"text-primary\">Services</span>\r\n              <br />\r\n              We&apos;re Offering\r\n            </h2>\r\n          </div>\r\n          <div className=\"hidden lg:block relative\">\r\n            <p className=\"text-muted-foreground mt-6 max-w-xl leading-6\">\r\n              We empower businesses to thrive online. Our services enhance\r\n              online visibility, expand market reach, and boost revenue through\r\n              effective digital strategies.\r\n            </p>\r\n          </div>\r\n        </div>\r\n        <div className=\"mt-16 space-y-4 md:space-y-6\">\r\n          {services.map((service, index) => (\r\n            <div\r\n              key={service.title}\r\n              className={`service-card border-b border-border pb-4 md:pb-6`}\r\n              onMouseEnter={() => setActiveService(index)}\r\n            >\r\n              <div className=\"group flex items-center justify-between cursor-pointer\">\r\n                <Link href={service.link} className=\"space-y-2 flex-1\">\r\n                  <h3\r\n                    className={`text-xl md:text-2xl lg:text-3xl font-medium transition-colors duration-300 ${\r\n                      activeService === index\r\n                        ? \"text-foreground\"\r\n                        : \"text-muted-foreground group-hover:text-foreground\"\r\n                    }`}\r\n                  >\r\n                    {service.title}\r\n                  </h3>\r\n                  <p\r\n                    className={`text-base md:text-lg leading-5 font-normal lg:leading-[1.4] transition-all duration-500 md:max-w-xl max-w-xs overflow-hidden ${\r\n                      activeService === index\r\n                        ? \"text-muted-foreground h-auto opacity-100\"\r\n                        : \"h-0 opacity-0\"\r\n                    }`}\r\n                  >\r\n                    {service.description}\r\n                  </p>\r\n                </Link>\r\n                <MoveRight\r\n                  className={`w-6 h-6 transition-transform duration-500 ${\r\n                    activeService === index\r\n                      ? \"opacity-100 translate-x-0\"\r\n                      : \"opacity-0 -translate-x-6\"\r\n                  }`}\r\n                />\r\n              </div>\r\n            </div>\r\n          ))}\r\n        </div>\r\n      </Container>\r\n    </section>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/service-1/constant/index": {
        "content": "export const services: Service[] = [\r\n  {\r\n    id: \"uiux-design\",\r\n    link: \"/services/uiux-design\",\r\n    title: \"UI&UX Design\",\r\n    subtitle: \"Creating seamless user experiences\",\r\n    description:\r\n      \"We specialize in crafting intuitive and visually appealing digital experiences that align with user needs and business goals. Our design process ensures your product stands out while delivering exceptional usability.\",\r\n    showTags: true,\r\n    iconColor: \"text-teal-500\",\r\n  },\r\n  {\r\n    id: \"web-development\",\r\n    link: \"/services/web-development\",\r\n    title: \"Web Development\",\r\n    subtitle: \"Building modern, high-performing websites\",\r\n    description:\r\n      \"Our team develops high-performance and scalable websites and web applications tailored to meet your business requirements, utilizing the latest technologies and best practices.\",\r\n    showTags: true,\r\n    iconColor: \"text-blue-500\",\r\n  },\r\n  {\r\n    id: \"hosting-and-domain\",\r\n    link: \"/services/hosting-and-domain\",\r\n    title: \"Hosting & Domain\",\r\n    subtitle: \"Reliable hosting and domain services\",\r\n    description:\r\n      \"Our hosting and domain registration services guarantee reliability, scalability, and security, providing the foundation your online presence needs to thrive.\",\r\n    showTags: false,\r\n    iconColor: \"text-yellow-500\",\r\n  },\r\n  {\r\n    id: \"mvp-development\",\r\n    link: \"/services/mvp\",\r\n    title: \"MVP Development\",\r\n    subtitle: \"Bring your ideas to life quickly\",\r\n    description:\r\n      \"Our MVP development service enables you to rapidly test market assumptions and gather user feedback with functional, prototype-level solutions designed to scale.\",\r\n    showTags: true,\r\n    iconColor: \"text-green-500\",\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/service-1/page": {
      "content": "import Services from \"./components/service\"\r\n\r\nconst page = () => {\r\n  return <Services />\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "signup-1": {
    "components": {
      "@/registry/view/signup-1/components/signup-form": {
        "content": "\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport type React from \"react\"\r\nimport Link from \"next/link\"\r\nimport { Eye, EyeOff } from \"lucide-react\"\r\nimport { FcGoogle } from \"react-icons/fc\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport Container from \"@/components/Container\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n  Card,\r\n  CardContent,\r\n  CardDescription,\r\n  CardHeader,\r\n  CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport { Progress } from \"@/components/ui/progress\"\r\n\r\nexport function SignUpForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"div\">) {\r\n  const [password, setPassword] = useState(\"\")\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false)\r\n  const [passwordStrength, setPasswordStrength] = useState({\r\n    score: 0,\r\n    message: \"Enter a password\",\r\n    color: \"bg-gray-200\",\r\n  })\r\n\r\n  const checkPasswordStrength = (password: string) => {\r\n    // Initialize score\r\n    let score = 0\r\n    let message = \"\"\r\n    let color = \"bg-gray-200\"\r\n\r\n    // Check if password is empty\r\n    if (password.length === 0) {\r\n      return { score: 0, message: \"Enter a password\", color: \"bg-gray-200\" }\r\n    }\r\n\r\n    // Check length\r\n    if (password.length < 8) {\r\n      score += 1\r\n      message = \"Weak - Too short\"\r\n      color = \"bg-red-500\"\r\n    } else {\r\n      score += 2\r\n    }\r\n\r\n    // Check for numbers\r\n    if (/\\d/.test(password)) {\r\n      score += 1\r\n    }\r\n\r\n    // Check for lowercase letters\r\n    if (/[a-z]/.test(password)) {\r\n      score += 1\r\n    }\r\n\r\n    // Check for uppercase letters\r\n    if (/[A-Z]/.test(password)) {\r\n      score += 1\r\n    }\r\n\r\n    // Check for special characters\r\n    if (/[^A-Za-z0-9]/.test(password)) {\r\n      score += 1\r\n    }\r\n\r\n    // Determine strength message and color based on score\r\n    if (score < 3) {\r\n      message = \"Weak\"\r\n      color = \"bg-red-500\"\r\n    } else if (score < 5) {\r\n      message = \"Medium\"\r\n      color = \"bg-yellow-500\"\r\n    } else {\r\n      message = \"Strong\"\r\n      color = \"bg-green-500\"\r\n    }\r\n\r\n    // Normalize score to percentage for progress bar (max score is 6)\r\n    const normalizedScore = Math.min(Math.floor((score / 6) * 100), 100)\r\n\r\n    return { score: normalizedScore, message, color }\r\n  }\r\n\r\n  const handlePasswordChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    const newPassword = e.target.value\r\n    setPassword(newPassword)\r\n    setPasswordStrength(checkPasswordStrength(newPassword))\r\n  }\r\n\r\n  const togglePasswordVisibility = () => {\r\n    setShowPassword(!showPassword)\r\n  }\r\n\r\n  const toggleConfirmPasswordVisibility = () => {\r\n    setShowConfirmPassword(!showConfirmPassword)\r\n  }\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <Container>\r\n        <Card>\r\n          <CardHeader>\r\n            <CardTitle className=\"text-2xl\">Sign Up</CardTitle>\r\n            <CardDescription>Create an account to get started</CardDescription>\r\n          </CardHeader>\r\n          <CardContent>\r\n            <form>\r\n              <div className=\"flex flex-col gap-6\">\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"name\">Full Name</Label>\r\n                  <Input\r\n                    id=\"name\"\r\n                    type=\"text\"\r\n                    placeholder=\"John Doe\"\r\n                    required\r\n                  />\r\n                </div>\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"email\">Email</Label>\r\n                  <Input\r\n                    id=\"email\"\r\n                    type=\"email\"\r\n                    placeholder=\"m@example.com\"\r\n                    required\r\n                  />\r\n                </div>\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"password\">Password</Label>\r\n                  <div className=\"relative\">\r\n                    <Input\r\n                      id=\"password\"\r\n                      type={showPassword ? \"text\" : \"password\"}\r\n                      value={password}\r\n                      onChange={handlePasswordChange}\r\n                      required\r\n                    />\r\n                    <Button\r\n                      type=\"button\"\r\n                      variant=\"ghost\"\r\n                      size=\"icon\"\r\n                      className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                      onClick={togglePasswordVisibility}\r\n                      aria-label={\r\n                        showPassword ? \"Hide password\" : \"Show password\"\r\n                      }\r\n                    >\r\n                      {showPassword ? (\r\n                        <EyeOff className=\"h-4 w-4 text-gray-500\" />\r\n                      ) : (\r\n                        <Eye className=\"h-4 w-4 text-gray-500\" />\r\n                      )}\r\n                      <span className=\"sr-only\">\r\n                        {showPassword ? \"Hide password\" : \"Show password\"}\r\n                      </span>\r\n                    </Button>\r\n                  </div>\r\n                  <div className=\"mt-2\">\r\n                    <div className=\"flex items-center justify-between mb-1\">\r\n                      <span className=\"text-sm\">Password strength:</span>\r\n                      <span\r\n                        className={`text-sm font-medium ${\r\n                          passwordStrength.message === \"Weak\"\r\n                            ? \"text-red-500\"\r\n                            : passwordStrength.message === \"Medium\"\r\n                              ? \"text-yellow-500\"\r\n                              : passwordStrength.message === \"Strong\"\r\n                                ? \"text-green-500\"\r\n                                : \"text-gray-500\"\r\n                        }`}\r\n                      >\r\n                        {passwordStrength.message}\r\n                      </span>\r\n                    </div>\r\n                    <Progress\r\n                      value={passwordStrength.score}\r\n                      className=\"h-2\"\r\n                      indicatorClassName={passwordStrength.color}\r\n                    />\r\n                    <p className=\"mt-1 text-xs text-gray-500\">\r\n                      Use 8+ characters with a mix of letters, numbers & symbols\r\n                    </p>\r\n                  </div>\r\n                </div>\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"confirmPassword\">Confirm Password</Label>\r\n                  <div className=\"relative\">\r\n                    <Input\r\n                      id=\"confirmPassword\"\r\n                      type={showConfirmPassword ? \"text\" : \"password\"}\r\n                      required\r\n                    />\r\n                    <Button\r\n                      type=\"button\"\r\n                      variant=\"ghost\"\r\n                      size=\"icon\"\r\n                      className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                      onClick={toggleConfirmPasswordVisibility}\r\n                      aria-label={\r\n                        showConfirmPassword\r\n                          ? \"Hide confirm password\"\r\n                          : \"Show confirm password\"\r\n                      }\r\n                    >\r\n                      {showConfirmPassword ? (\r\n                        <EyeOff className=\"h-4 w-4 text-gray-500\" />\r\n                      ) : (\r\n                        <Eye className=\"h-4 w-4 text-gray-500\" />\r\n                      )}\r\n                      <span className=\"sr-only\">\r\n                        {showConfirmPassword\r\n                          ? \"Hide confirm password\"\r\n                          : \"Show confirm password\"}\r\n                      </span>\r\n                    </Button>\r\n                  </div>\r\n                </div>\r\n                <Button type=\"submit\" className=\"w-full\">\r\n                  Sign Up\r\n                </Button>\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <FcGoogle className=\"inline-block \" />\r\n                  Sign Up with Google\r\n                </Button>\r\n              </div>\r\n              <div className=\"mt-4 text-center text-sm\">\r\n                Already have an account?{\" \"}\r\n                <Link\r\n                  href=\"/ui-blocks/login-1\"\r\n                  className=\"underline underline-offset-4\"\r\n                >\r\n                  Login\r\n                </Link>\r\n              </div>\r\n            </form>\r\n          </CardContent>\r\n        </Card>\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/signup-1/page": {
      "content": "import { SignUpForm } from \"./components/signup-form\"\r\n\r\nexport default function SignUpPage() {\r\n  return (\r\n    <div className=\"flex min-h-svh flex-col items-center justify-center py-10 md:py-16 lg:py-20\">\r\n      <SignUpForm className=\"w-full max-w-md\" />\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "signup-2": {
    "components": {
      "@/registry/view/signup-2/components/signup-1": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\nimport Link from \"next/link\"\r\nimport { ArrowLeft, Eye, EyeOff } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Card, CardContent } from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport function SignUpForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentProps<\"div\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false)\r\n\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n  const toggleConfirmPasswordVisibility = () =>\r\n    setShowConfirmPassword((prev) => !prev)\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6 py-12\", className)} {...props}>\r\n      <Link\r\n        href=\"/\"\r\n        className=\"absolute top-4 left-4 text-foreground hover:text-primary transition-colors\"\r\n      >\r\n        <span className=\"flex items-center\">\r\n          <ArrowLeft className=\"mr-2 w-5 h-5\" />\r\n          Back to Home\r\n        </span>\r\n      </Link>\r\n      <Card className=\"overflow-hidden\">\r\n        <CardContent className=\"grid p-0 md:grid-cols-2\">\r\n          <form className=\"p-6 md:p-8\">\r\n            <div className=\"flex flex-col gap-6\">\r\n              <div className=\"flex flex-col items-center text-center\">\r\n                <h1 className=\"text-2xl font-bold\">Create an account</h1>\r\n                <p className=\"text-balance text-muted-foreground\">\r\n                  Sign up for your Acme Inc account\r\n                </p>\r\n              </div>\r\n              <div className=\"grid grid-cols-2 gap-4\">\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"firstName\">First Name</Label>\r\n                  <Input\r\n                    id=\"firstName\"\r\n                    type=\"text\"\r\n                    placeholder=\"John\"\r\n                    required\r\n                  />\r\n                </div>\r\n                <div className=\"grid gap-2\">\r\n                  <Label htmlFor=\"lastName\">Last Name</Label>\r\n                  <Input id=\"lastName\" type=\"text\" placeholder=\"Doe\" required />\r\n                </div>\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"email\">Email</Label>\r\n                <Input\r\n                  id=\"email\"\r\n                  type=\"email\"\r\n                  placeholder=\"m@example.com\"\r\n                  required\r\n                />\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"password\">Password</Label>\r\n                <div className=\"relative\">\r\n                  <Input\r\n                    id=\"password\"\r\n                    type={showPassword ? \"text\" : \"password\"}\r\n                    required\r\n                  />\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"ghost\"\r\n                    size=\"sm\"\r\n                    className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                    onClick={togglePasswordVisibility}\r\n                    aria-label={\r\n                      showPassword ? \"Hide password\" : \"Show password\"\r\n                    }\r\n                  >\r\n                    {showPassword ? (\r\n                      <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                    ) : (\r\n                      <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                    )}\r\n                    <span className=\"sr-only\">\r\n                      {showPassword ? \"Hide password\" : \"Show password\"}\r\n                    </span>\r\n                  </Button>\r\n                </div>\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"confirmPassword\">Confirm Password</Label>\r\n                <div className=\"relative\">\r\n                  <Input\r\n                    id=\"confirmPassword\"\r\n                    type={showConfirmPassword ? \"text\" : \"password\"}\r\n                    required\r\n                  />\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"ghost\"\r\n                    size=\"sm\"\r\n                    className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                    onClick={toggleConfirmPasswordVisibility}\r\n                    aria-label={\r\n                      showConfirmPassword ? \"Hide password\" : \"Show password\"\r\n                    }\r\n                  >\r\n                    {showConfirmPassword ? (\r\n                      <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                    ) : (\r\n                      <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                    )}\r\n                    <span className=\"sr-only\">\r\n                      {showConfirmPassword ? \"Hide password\" : \"Show password\"}\r\n                    </span>\r\n                  </Button>\r\n                </div>\r\n              </div>\r\n              <Button type=\"submit\" className=\"w-full\">\r\n                Sign Up\r\n              </Button>\r\n              <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n                <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n                  Or continue with\r\n                </span>\r\n              </div>\r\n              <div className=\"grid grid-cols-3 gap-4\">\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                    <path\r\n                      d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Sign up with Apple</span>\r\n                </Button>\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                    <path\r\n                      d=\"M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Sign up with Google</span>\r\n                </Button>\r\n                <Button variant=\"outline\" className=\"w-full\">\r\n                  <svg\r\n                    xmlns=\"http://www.w3.org/2000/svg\"\r\n                    viewBox=\"0 0 24 24\"\r\n                    width={30}\r\n                    height={30}\r\n                  >\r\n                    <path\r\n                      d=\"M6.915 4.03c-1.968 0-3.683 1.28-4.871 3.113C.704 9.208 0 11.883 0 14.449c0 .706.07 1.369.21 1.973a6.624 6.624 0 0 0 .265.86 5.297 5.297 0 0 0 .371.761c.696 1.159 1.818 1.927 3.593 1.927 1.497 0 2.633-.671 3.965-2.444.76-1.012 1.144-1.626 2.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152 3.595c.724 1.21 1.665 2.556 2.47 3.314 1.046.987 1.992 1.22 3.06 1.22 1.075 0 1.876-.355 2.455-.843a3.743 3.743 0 0 0 .81-.973c.542-.939.861-2.127.861-3.745 0-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047 0-2.088.467-3.053 1.308-.652.57-1.257 1.29-1.82 2.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16 2.053c1.147 0 2.188.758 2.992 1.999 1.132 1.748 1.647 4.195 1.647 6.4 0 1.548-.368 2.9-1.839 2.9-.58 0-1.027-.23-1.664-1.004-.496-.601-1.343-1.878-2.832-4.358l-.617-1.028a44.908 44.908 0 0 0-1.255-1.98c.07-.109.141-.224.211-.327 1.12-1.667 2.118-2.602 3.358-2.602zm-10.201.553c1.265 0 2.058.791 2.675 1.446.307.327.737.871 1.234 1.579l-1.02 1.566c-.757 1.163-1.882 3.017-2.837 4.338-1.191 1.649-1.81 1.817-2.486 1.817-.524 0-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046 0-2.221.63-4.535 1.66-6.088.454-.687.964-1.226 1.533-1.533a2.264 2.264 0 0 1 1.088-.285z\"\r\n                      fill=\"currentColor\"\r\n                    />\r\n                  </svg>\r\n                  <span className=\"sr-only\">Sign up with Meta</span>\r\n                </Button>\r\n              </div>\r\n              <div className=\"text-center text-sm\">\r\n                Already have an account?{\" \"}\r\n                <Link href=\"#\" className=\"underline underline-offset-4\">\r\n                  Login\r\n                </Link>\r\n              </div>\r\n            </div>\r\n          </form>\r\n          <div className=\"flex-1 hidden md:block relative\">\r\n            <img\r\n              src=\"/blocks/case-studies-1/image-1.jpg\"\r\n              alt=\"Art Lighting Showcase\"\r\n              className=\"absolute inset-0 h-full w-full object-cover\"\r\n            />\r\n            <div className=\"absolute inset-0 bg-background/60 backdrop-blur-sm flex flex-col justify-end p-8 text-foreground\">\r\n              <h2 className=\"text-3xl font-bold mb-2\">\r\n                Create Your Alpha Account\r\n              </h2>\r\n              <p className=\"text-sm\">\r\n                Sign up today and start exploring our curated collection of\r\n                web developments and software solutions\r\n              </p>\r\n            </div>\r\n          </div>\r\n        </CardContent>\r\n      </Card>\r\n      <div className=\"text-balance text-center text-xs text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 hover:[&_a]:text-primary\">\r\n        By clicking sign up, you agree to our{\" \"}\r\n        <Link href=\"#\">Terms of Service</Link> and{\" \"}\r\n        <Link href=\"#\">Privacy Policy</Link>.\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/signup-2/page": {
      "content": "import Container from \"@/components/Container\"\r\n\r\nimport { SignUpForm } from \"./components/signup-1\"\r\n\r\nconst page = () => {\r\n  return (\r\n    <div className=\"flex min-h-svh flex-col items-center justify-center p-6 md:p-10 bg-gradient-to-br from-primary/20 via-background to-secondary/20\">\r\n      <Container className=\"w-full max-w-sm md:max-w-3xl\">\r\n        <SignUpForm />\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  },
  "signup-3": {
    "components": {
      "@/registry/view/signup-3/components/signup-form": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\nimport Link from \"next/link\"\r\nimport { Eye, EyeOff } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport function SignupForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"form\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false)\r\n\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n  const toggleConfirmPasswordVisibility = () =>\r\n    setShowConfirmPassword((prev) => !prev)\r\n\r\n  return (\r\n    <form className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <div className=\"flex flex-col items-center gap-2 text-center\">\r\n        <h1 className=\"text-2xl font-bold\">Create an account</h1>\r\n        <p className=\"text-balance text-sm text-muted-foreground\">\r\n          Enter your details below to create your account\r\n        </p>\r\n      </div>\r\n      <div className=\"grid gap-6\">\r\n        <div className=\"grid grid-cols-2 gap-4\">\r\n          <div className=\"grid gap-2\">\r\n            <Label htmlFor=\"firstName\">First name</Label>\r\n            <Input id=\"firstName\" type=\"text\" required />\r\n          </div>\r\n          <div className=\"grid gap-2\">\r\n            <Label htmlFor=\"lastName\">Last name</Label>\r\n            <Input id=\"lastName\" type=\"text\" required />\r\n          </div>\r\n        </div>\r\n        <div className=\"grid gap-2\">\r\n          <Label htmlFor=\"email\">Email</Label>\r\n          <Input id=\"email\" type=\"email\" placeholder=\"m@example.com\" required />\r\n        </div>\r\n        <div className=\"grid gap-2\">\r\n          <Label htmlFor=\"password\">Password</Label>\r\n          <div className=\"relative\">\r\n            <Input\r\n              id=\"password\"\r\n              type={showPassword ? \"text\" : \"password\"}\r\n              required\r\n            />\r\n            <Button\r\n              type=\"button\"\r\n              variant=\"ghost\"\r\n              size=\"sm\"\r\n              className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n              onClick={togglePasswordVisibility}\r\n              aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n            >\r\n              {showPassword ? (\r\n                <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n              ) : (\r\n                <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n              )}\r\n              <span className=\"sr-only\">\r\n                {showPassword ? \"Hide password\" : \"Show password\"}\r\n              </span>\r\n            </Button>\r\n          </div>\r\n        </div>\r\n        <div className=\"grid gap-2\">\r\n          <Label htmlFor=\"confirmPassword\">Confirm password</Label>\r\n          <div className=\"relative\">\r\n            <Input\r\n              id=\"confirmPassword\"\r\n              type={showConfirmPassword ? \"text\" : \"password\"}\r\n              required\r\n            />\r\n            <Button\r\n              type=\"button\"\r\n              variant=\"ghost\"\r\n              size=\"sm\"\r\n              className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n              onClick={toggleConfirmPasswordVisibility}\r\n              aria-label={\r\n                showConfirmPassword ? \"Hide password\" : \"Show password\"\r\n              }\r\n            >\r\n              {showConfirmPassword ? (\r\n                <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n              ) : (\r\n                <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n              )}\r\n              <span className=\"sr-only\">\r\n                {showConfirmPassword ? \"Hide password\" : \"Show password\"}\r\n              </span>\r\n            </Button>\r\n          </div>\r\n        </div>\r\n        <Button type=\"submit\" className=\"w-full\">\r\n          Sign up\r\n        </Button>\r\n        <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n          <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n            Or continue with\r\n          </span>\r\n        </div>\r\n        <Button variant=\"outline\" className=\"w-full\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\r\n              fill=\"currentColor\"\r\n            />\r\n          </svg>\r\n          Sign up with GitHub\r\n        </Button>\r\n      </div>\r\n      <div className=\"text-center text-sm\">\r\n        Already have an account?{\" \"}\r\n        <Link href=\"/login\" className=\"underline underline-offset-4\">\r\n          Login\r\n        </Link>\r\n      </div>\r\n    </form>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/signup-3/page": {
      "content": "import Link from \"next/link\"\r\nimport { GalleryVerticalEnd } from \"lucide-react\"\r\n\r\nimport { SignupForm } from \"./components/signup-form\"\r\n\r\nexport default function SignupPage() {\r\n  return (\r\n    <div className=\"grid min-h-svh lg:grid-cols-2\">\r\n      <div className=\"flex flex-col gap-4 p-6 md:p-10\">\r\n        <div className=\"flex justify-center gap-2 md:justify-start\">\r\n          <Link href=\"#\" className=\"flex items-center gap-2 font-medium\">\r\n            <div className=\"flex h-6 w-6 items-center justify-center rounded-md bg-primary text-primary-foreground\">\r\n              <GalleryVerticalEnd className=\"size-4\" />\r\n            </div>\r\n            UniqueBrand.\r\n          </Link>\r\n        </div>\r\n        <div className=\"flex flex-1 items-center justify-center\">\r\n          <div className=\"w-full max-w-xs\">\r\n            <SignupForm />\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"relative hidden bg-muted lg:block\">\r\n        <img\r\n          src=\"/blocks/case-studies-1/image-1.jpg\"\r\n          alt=\"Image\"\r\n          className=\"absolute inset-0 h-full w-full object-cover\"\r\n        />\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "signup-4": {
    "components": {
      "@/registry/view/signup-4/components/signup-form": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\nimport { Eye, EyeOff, GalleryVerticalEnd } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport function SignupForm({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<\"div\">) {\r\n  const [showPassword, setShowPassword] = useState(false)\r\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false)\r\n\r\n  const togglePasswordVisibility = () => setShowPassword((prev) => !prev)\r\n  const toggleConfirmPasswordVisibility = () =>\r\n    setShowConfirmPassword((prev) => !prev)\r\n\r\n  return (\r\n    <div className={cn(\"flex flex-col gap-6\", className)} {...props}>\r\n      <form>\r\n        <div className=\"flex flex-col gap-6\">\r\n          <div className=\"flex flex-col items-center gap-2\">\r\n            <a\r\n              href=\"#\"\r\n              className=\"flex flex-col items-center gap-2 font-medium\"\r\n            >\r\n              <div className=\"flex h-8 w-8 items-center justify-center rounded-md\">\r\n                <GalleryVerticalEnd className=\"size-6\" />\r\n              </div>\r\n              <span className=\"sr-only\">Acme Inc.</span>\r\n            </a>\r\n            <h1 className=\"text-xl font-bold\">Create your Acme Inc. account</h1>\r\n            <div className=\"text-center text-sm\">\r\n              Already have an account?{\" \"}\r\n              <a href=\"/login\" className=\"underline underline-offset-4\">\r\n                Login\r\n              </a>\r\n            </div>\r\n          </div>\r\n          <div className=\"flex flex-col gap-6\">\r\n            <div className=\"grid grid-cols-2 gap-4\">\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"firstName\">First name</Label>\r\n                <Input id=\"firstName\" type=\"text\" required />\r\n              </div>\r\n              <div className=\"grid gap-2\">\r\n                <Label htmlFor=\"lastName\">Last name</Label>\r\n                <Input id=\"lastName\" type=\"text\" required />\r\n              </div>\r\n            </div>\r\n            <div className=\"grid gap-2\">\r\n              <Label htmlFor=\"email\">Email</Label>\r\n              <Input\r\n                id=\"email\"\r\n                type=\"email\"\r\n                placeholder=\"m@example.com\"\r\n                required\r\n              />\r\n            </div>\r\n            <div className=\"grid gap-2\">\r\n              <Label htmlFor=\"password\">Password</Label>\r\n              <div className=\"relative\">\r\n                <Input\r\n                  id=\"password\"\r\n                  type={showPassword ? \"text\" : \"password\"}\r\n                  required\r\n                />\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"ghost\"\r\n                  size=\"sm\"\r\n                  className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                  onClick={togglePasswordVisibility}\r\n                  aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n                >\r\n                  {showPassword ? (\r\n                    <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                  ) : (\r\n                    <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                  )}\r\n                  <span className=\"sr-only\">\r\n                    {showPassword ? \"Hide password\" : \"Show password\"}\r\n                  </span>\r\n                </Button>\r\n              </div>\r\n            </div>\r\n            <div className=\"grid gap-2\">\r\n              <Label htmlFor=\"confirmPassword\">Confirm password</Label>\r\n              <div className=\"relative\">\r\n                <Input\r\n                  id=\"confirmPassword\"\r\n                  type={showConfirmPassword ? \"text\" : \"password\"}\r\n                  required\r\n                />\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"ghost\"\r\n                  size=\"sm\"\r\n                  className=\"absolute right-1 top-0 h-full px-3 py-2 hover:bg-transparent\"\r\n                  onClick={toggleConfirmPasswordVisibility}\r\n                  aria-label={\r\n                    showConfirmPassword ? \"Hide password\" : \"Show password\"\r\n                  }\r\n                >\r\n                  {showConfirmPassword ? (\r\n                    <EyeOff className=\"h-5 w-5 text-muted-foreground\" />\r\n                  ) : (\r\n                    <Eye className=\"h-5 w-5 text-muted-foreground\" />\r\n                  )}\r\n                  <span className=\"sr-only\">\r\n                    {showConfirmPassword ? \"Hide password\" : \"Show password\"}\r\n                  </span>\r\n                </Button>\r\n              </div>\r\n            </div>\r\n            <Button type=\"submit\" className=\"w-full\">\r\n              Sign up\r\n            </Button>\r\n          </div>\r\n          <div className=\"relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border\">\r\n            <span className=\"relative z-10 bg-background px-2 text-muted-foreground\">\r\n              Or\r\n            </span>\r\n          </div>\r\n          <div className=\"grid gap-4 sm:grid-cols-2\">\r\n            <Button variant=\"outline\" className=\"w-full\">\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                <path\r\n                  d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"\r\n                  fill=\"currentColor\"\r\n                />\r\n              </svg>\r\n              Continue with Apple\r\n            </Button>\r\n            <Button variant=\"outline\" className=\"w-full\">\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n                <path\r\n                  d=\"M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z\"\r\n                  fill=\"currentColor\"\r\n                />\r\n              </svg>\r\n              Continue with Google\r\n            </Button>\r\n          </div>\r\n        </div>\r\n      </form>\r\n      <div className=\"text-balance text-center text-xs text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 hover:[&_a]:text-primary\">\r\n        By clicking continue, you agree to our <a href=\"#\">Terms of Service</a>{\" \"}\r\n        and <a href=\"#\">Privacy Policy</a>.\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/signup-4/page": {
      "content": "import { SignupForm } from \"./components/signup-form\"\r\n\r\nexport default function SignUpPage() {\r\n  return (\r\n    <div className=\"flex min-h-svh flex-col items-center justify-center gap-6 bg-background p-6 md:p-10\">\r\n      <div className=\"w-full max-w-sm\">\r\n        <SignupForm />\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "status-bar-1": {
    "components": {
      "@/registry/view/status-bar-1/components/status-bar": {
        "content": "\"use client\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { motion } from \"framer-motion\";\r\nimport { CheckCircle, Circle } from \"lucide-react\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport React from \"react\";\r\n\r\nexport default function StatusBar() {\r\n    const pathname = usePathname();\r\n\r\n    const STEPS = [\r\n        {\r\n            name: \"Preview\",\r\n            description: \"Review your product before confirming your order.\",\r\n            url: `/preview`, // Here you put the link (URL) to be active when the user is on the page\r\n        },\r\n        {\r\n            name: \"Confirm\",\r\n            description: \"Enter your shipping address and information.\",\r\n            url: \"/view/status-bar-1\",\r\n        },\r\n        {\r\n            name: \"Complete\",\r\n            description: \"Review your order, shipping price, and all information.\",\r\n            url: \"/complete\",\r\n        },\r\n    ];\r\n\r\n    const getCurrentStepIndex = () => {\r\n        return STEPS.findIndex((step) => pathname.includes(step.url));\r\n    };\r\n\r\n    return (\r\n        <div className=\"bg-gradient-to-r from-neutral-50-50 to-background dark:from-[#1c1a17] dark:to-[#1d1d1d] rounded-lg shadow-md px-4 sm:px-6 pb-8 pt-10 mb-8\">\r\n            <div className=\"grid grid-cols-1 md:grid-cols-3 md:gap-8 gap-4 relative\">\r\n                {STEPS.map((step, i) => {\r\n                    const currentStepIndex = getCurrentStepIndex();\r\n                    const isCurrent = i === currentStepIndex;\r\n                    const isCompleted = i < currentStepIndex;\r\n                    return (\r\n                        <React.Fragment key={step.name}>\r\n                            <motion.div\r\n                                className=\"flex flex-col items-center relative z-10\"\r\n                                initial={{ opacity: 0, y: 20 }}\r\n                                animate={{ opacity: 1, y: 0 }}\r\n                                transition={{ duration: 0.5, delay: i * 0.1 }}\r\n                            >\r\n                                <div\r\n                                    className={cn(\r\n                                        \"flex items-center justify-center md:w-16 md:h-16 w-12 h-12 rounded-full font-medium md:text-xl text-lg transition-colors duration-300\",\r\n                                        {\r\n                                            \"bg-primary text-primary-foreground shadow-lg\": isCurrent,\r\n                                            \"bg-white dark:bg-gray-950 text-primary border-2 border-green-500\":\r\n                                                isCompleted,\r\n                                            \"bg-gray-200 dark:bg-gray-600 text-gray-500 dark:text-gray-400\":\r\n                                                !isCurrent && !isCompleted,\r\n                                        },\r\n                                    )}\r\n                                >\r\n                                    {isCompleted ? (\r\n                                        <CheckCircle className=\"md:w-8 md:h-8 w-6 h-6 text-green-500 dark:text-green-400\" />\r\n                                    ) : (\r\n                                        <Circle className=\"md:w-8 md:h-8 w-6 h-6\" />\r\n                                    )}\r\n                                </div>\r\n                                <div className=\"mt-4 text-center\">\r\n                                    <span\r\n                                        className={cn(\"block md:text-lg text-base font-semibold\", {\r\n                                            \"text-primary dark:text-primary\": isCurrent,\r\n                                            \"text-gray-900 dark:text-gray-200\": !isCurrent,\r\n                                        })}\r\n                                    >\r\n                                        {step.name}\r\n                                    </span>\r\n                                    <span className=\"text-sm text-gray-600 dark:text-gray-400 mt-2 block max-w-xs mx-auto\">\r\n                                        {step.description}\r\n                                    </span>\r\n                                </div>\r\n                            </motion.div>\r\n                            {i === 0 && (\r\n                                <div className=\"hidden md:block absolute top-8 left-1/3 w-1/3 h-0.5 bg-gray-300 dark:bg-gray-700 -translate-y-1/2\" />\r\n                            )}\r\n                        </React.Fragment>\r\n                    );\r\n                })}\r\n            </div>\r\n        </div>\r\n    );\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/status-bar-1/page": {
      "content": "import StatusBar from \"./components/status-bar\";\r\n\r\nexport default function page() {\r\n    return (\r\n        <div>\r\n            <StatusBar />\r\n        </div>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "status-section-1": {
    "components": {
      "@/registry/view/status-section-1/components/status-section": {
        "content": "\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { AlertTriangle, CheckCircle, ChevronDown, ChevronUp, Info, XCircle } from \"lucide-react\"\r\nimport { useState } from \"react\"\r\n\r\ninterface Service {\r\n    id: string\r\n    name: string\r\n    status: \"operational\" | \"incident\" | \"outage\" | \"unknown\"\r\n    description: string\r\n    details: string\r\n    hasDetails?: boolean\r\n}\r\n\r\ninterface StatusSectionProps {\r\n    title?: string\r\n    services?: Service[]\r\n    showIncidentHistory?: boolean\r\n    onIncidentClick?: () => void\r\n    className?: string\r\n}\r\n\r\nconst StatusSection = ({\r\n    title = \"Status\",\r\n    services = [],\r\n    showIncidentHistory = true,\r\n    onIncidentClick = () => { },\r\n    className = \"\",\r\n}: StatusSectionProps) => {\r\n    const [expandedServices, setExpandedServices] = useState<Set<string>>(new Set())\r\n\r\n    const toggleService = (serviceId: string) => {\r\n        const newExpanded = new Set(expandedServices)\r\n        if (newExpanded.has(serviceId)) {\r\n            newExpanded.delete(serviceId)\r\n        } else {\r\n            newExpanded.add(serviceId)\r\n        }\r\n        setExpandedServices(newExpanded)\r\n    }\r\n\r\n    const getStatusIcon = (status: Service[\"status\"]) => {\r\n        switch (status) {\r\n            case \"operational\":\r\n                return <CheckCircle className=\"w-4 h-4 text-green-600 dark:text-green-400\" />\r\n            case \"incident\":\r\n                return <AlertTriangle className=\"w-4 h-4 text-yellow-600 dark:text-yellow-400\" />\r\n            case \"outage\":\r\n                return <XCircle className=\"w-4 h-4 text-red-600 dark:text-red-400\" />\r\n            default:\r\n                return <Info className=\"w-4 h-4 text-muted-foreground\" />\r\n        }\r\n    }\r\n\r\n    const getStatusColor = (status: Service[\"status\"]) => {\r\n        switch (status) {\r\n            case \"operational\":\r\n                return \"bg-green-500 dark:bg-green-400\"\r\n            case \"incident\":\r\n                return \"bg-yellow-500 dark:bg-yellow-400\"\r\n            case \"outage\":\r\n                return \"bg-red-500 dark:bg-red-400\"\r\n            default:\r\n                return \"bg-muted-foreground\"\r\n        }\r\n    }\r\n\r\n    const getStatusText = (status: Service[\"status\"]) => {\r\n        switch (status) {\r\n            case \"operational\":\r\n                return \"No issues\"\r\n            case \"incident\":\r\n                return \"Incident\"\r\n            case \"outage\":\r\n                return \"Outage\"\r\n            default:\r\n                return \"Unknown\"\r\n        }\r\n    }\r\n\r\n    const defaultServices: Service[] = [\r\n        {\r\n            id: \"login-sso\",\r\n            name: \"Login / SSO\",\r\n            status: \"operational\",\r\n            description: \"Single Sign-On authentication services\",\r\n            details: \"All authentication endpoints are responding normally\",\r\n        },\r\n        {\r\n            id: \"connectivity\",\r\n            name: \"Connectivity\",\r\n            status: \"incident\",\r\n            description: \"Network connectivity and routing\",\r\n            details: \"Something is not quite right. View details\",\r\n            hasDetails: true,\r\n        },\r\n        {\r\n            id: \"listener\",\r\n            name: \"Listener\",\r\n            status: \"operational\",\r\n            description: \"Event listening and processing services\",\r\n            details: \"All listeners are processing events successfully\",\r\n        },\r\n        {\r\n            id: \"parser\",\r\n            name: \"Parser\",\r\n            status: \"operational\",\r\n            description: \"Data parsing and transformation services\",\r\n            details: \"All parsers are functioning optimally\",\r\n        },\r\n        {\r\n            id: \"alerts\",\r\n            name: \"Alerts\",\r\n            status: \"operational\",\r\n            description: \"Notification and alerting system\",\r\n            details: \"Alert delivery systems are fully operational\",\r\n        },\r\n        {\r\n            id: \"web-application\",\r\n            name: \"Web Application\",\r\n            status: \"operational\",\r\n            description: \"Main web application platform\",\r\n            details: \"Web application is running smoothly\",\r\n        },\r\n    ]\r\n\r\n    const activeServices = services.length > 0 ? services : defaultServices\r\n\r\n    return (\r\n        <div className={cn(\"bg-card rounded-lg shadow-sm border border-border transition-colors duration-200\", className)}>\r\n            <div className=\"px-6 py-4 border-b border-border\">\r\n                <div className=\"flex items-center justify-between\">\r\n                    <div className=\"flex items-center gap-3\">\r\n                        <div className=\"w-8 h-8 bg-accent rounded-lg flex items-center justify-center\">\r\n                            <div className=\"w-4 h-4 bg-primary rounded-sm\" />\r\n                        </div>\r\n                        <h2 className=\"text-lg font-semibold text-foreground\">{title}</h2>\r\n                    </div>\r\n                    {showIncidentHistory && (\r\n                        <button\r\n                            onClick={onIncidentClick}\r\n                            className=\"text-sm text-primary hover:text-primary/80 font-medium transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background rounded-sm px-1\"\r\n                        >\r\n                            Incident history →\r\n                        </button>\r\n                    )}\r\n                </div>\r\n            </div>\r\n\r\n            {/* Incident Banner */}\r\n            <div className=\"px-6 py-4 bg-yellow-50 dark:bg-yellow-950/20 border-b border-yellow-200 dark:border-yellow-800/30\">\r\n                <div className=\"flex items-start gap-3\">\r\n                    <AlertTriangle className=\"w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0\" />\r\n                    <div>\r\n                        <p className=\"text-sm font-medium text-yellow-800 dark:text-yellow-200\">\r\n                            Users may be experiencing issues connecting to Alpha\r\n                        </p>\r\n                        <p className=\"text-xs text-yellow-700 dark:text-yellow-300 mt-1\">\r\n                            Today · 9:21 AM EDT ·\r\n                            <button className=\"ml-1 underline hover:no-underline focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:ring-offset-1 rounded-sm transition-colors duration-200\">\r\n                                See incident details\r\n                            </button>\r\n                        </p>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            {/* Status Legend */}\r\n            <div className=\"px-6 py-3 bg-accent/30 border-b border-border\">\r\n                <div className=\"flex items-center justify-between\">\r\n                    <span className=\"text-sm font-medium text-foreground\">Current Status by service</span>\r\n                    <div className=\"flex items-center gap-4\">\r\n                        <div className=\"flex items-center gap-1\">\r\n                            <div className=\"w-2 h-2 bg-green-500 dark:bg-green-400 rounded-full\"></div>\r\n                            <span className=\"text-xs text-muted-foreground\">No issues</span>\r\n                        </div>\r\n                        <div className=\"flex items-center gap-1\">\r\n                            <div className=\"w-2 h-2 bg-yellow-500 dark:bg-yellow-400 rounded-full\"></div>\r\n                            <span className=\"text-xs text-muted-foreground\">Incident</span>\r\n                        </div>\r\n                        <div className=\"flex items-center gap-1\">\r\n                            <div className=\"w-2 h-2 bg-red-500 dark:bg-red-400 rounded-full\"></div>\r\n                            <span className=\"text-xs text-muted-foreground\">Outage</span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            {/* Services List */}\r\n            <div className=\"divide-y divide-border\">\r\n                {activeServices.map((service) => (\r\n                    <div key={service.id} className=\"px-6 py-4\">\r\n                        <div className=\"flex items-center justify-between\">\r\n                            <div className=\"flex items-center gap-3 flex-1\">\r\n                                <div className={`w-2 h-2 rounded-full ${getStatusColor(service.status)}`}></div>\r\n                                <div className=\"flex-1\">\r\n                                    <div className=\"flex items-center gap-2\">\r\n                                        <h3 className=\"text-sm font-medium text-foreground\">{service.name}</h3>\r\n                                        {service.hasDetails && (\r\n                                            <button\r\n                                                onClick={() => toggleService(service.id)}\r\n                                                className=\"text-muted-foreground hover:text-foreground transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background rounded-sm p-0.5\"\r\n                                                aria-expanded={expandedServices.has(service.id)}\r\n                                                aria-controls={`service-details-${service.id}`}\r\n                                                aria-label={`${expandedServices.has(service.id) ? \"Collapse\" : \"Expand\"} ${service.name} details`}\r\n                                            >\r\n                                                {expandedServices.has(service.id) ? (\r\n                                                    <ChevronUp className=\"w-4 h-4\" />\r\n                                                ) : (\r\n                                                    <ChevronDown className=\"w-4 h-4\" />\r\n                                                )}\r\n                                            </button>\r\n                                        )}\r\n                                    </div>\r\n                                    <p className=\"text-xs text-muted-foreground mt-0.5\">{getStatusText(service.status)}</p>\r\n                                </div>\r\n                            </div>\r\n                            {getStatusIcon(service.status)}\r\n                        </div>\r\n                        {expandedServices.has(service.id) && service.hasDetails && (\r\n                            <div className=\"mt-3 pl-5 border-l-2 border-border\" id={`service-details-${service.id}`}>\r\n                                <div className=\"bg-accent/50 rounded-lg p-3 border border-border/50\">\r\n                                    <p className=\"text-sm text-foreground\">{service.details}</p>\r\n                                    {service.status === \"incident\" && (\r\n                                        <div className=\"mt-2 pt-2 border-t border-border/50\">\r\n                                            <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\r\n                                                <span>Last updated: 2 minutes ago</span>\r\n                                                <span>•</span>\r\n                                                <button className=\"text-primary hover:text-primary/80 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-1 rounded-sm\">\r\n                                                    Subscribe to updates\r\n                                                </button>\r\n                                            </div>\r\n                                        </div>\r\n                                    )}\r\n                                </div>\r\n                            </div>\r\n                        )}\r\n                    </div>\r\n                ))}\r\n            </div>\r\n\r\n            {/* Footer */}\r\n            <div className=\"px-6 py-3 bg-accent/20 border-t border-border rounded-b-lg\">\r\n                <div className=\"flex items-center justify-between\">\r\n                    <p className=\"text-xs text-muted-foreground\">Last updated: {new Date().toLocaleString()}</p>\r\n                    <div className=\"flex items-center gap-2\">\r\n                        <button className=\"text-xs text-muted-foreground hover:text-foreground transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-1 rounded-sm px-1\">\r\n                            Subscribe to updates\r\n                        </button>\r\n                        <span className=\"text-xs text-muted-foreground/50\">•</span>\r\n                        <button className=\"text-xs text-muted-foreground hover:text-foreground transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-1 rounded-sm px-1\">\r\n                            Status API\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default StatusSection\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/status-section-1/page": {
      "content": "import { useState } from \"react\";\r\nimport StatusSection from \"./components/status-section\";\r\n\r\nconst page = () => {\r\n    const [customServices] = useState([\r\n        {\r\n            id: 'api-gateway',\r\n            name: 'API Gateway',\r\n            status: 'operational',\r\n            description: 'Core API routing and management',\r\n            details: 'All API endpoints are responding within normal parameters'\r\n        },\r\n        {\r\n            id: 'database',\r\n            name: 'Database Cluster',\r\n            status: 'incident',\r\n            description: 'Primary database infrastructure',\r\n            details: 'Experiencing elevated response times. Engineering team investigating.',\r\n            hasDetails: true\r\n        },\r\n        {\r\n            id: 'cdn',\r\n            name: 'Content Delivery Network',\r\n            status: 'operational',\r\n            description: 'Global content distribution network',\r\n            details: 'CDN nodes are performing optimally across all regions'\r\n        }\r\n    ]);\r\n\r\n    const handleIncidentClick = () => {\r\n        console.log('Navigating to incident history...');\r\n    };\r\n\r\n    return (\r\n        <div className=\"min-h-screen bg-background p-8\">\r\n            <div className=\"max-w-4xl mx-auto space-y-8\">\r\n                <StatusSection\r\n                    title=\"Alpha / Status\"\r\n                    onIncidentClick={handleIncidentClick}\r\n                />\r\n                <StatusSection\r\n                    title=\"Custom Services Status\"\r\n                    services={customServices}\r\n                    onIncidentClick={handleIncidentClick}\r\n                    className=\"mt-8\"\r\n                />\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default page;",
      "language": "tsx"
    }
  },
  "subscription-email-1": {
    "components": {
      "@/registry/view/subscription-email-1/components/subscription-email": {
        "content": "\"use client\"\r\n\r\nimport type React from \"react\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Mail, ArrowRight, Check } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\ninterface SubscriptionEmailProps {\r\n    className?: string\r\n    headline?: string\r\n    subheadline?: string\r\n    buttonText?: string\r\n    successMessage?: string\r\n}\r\n\r\nexport default function SubscriptionEmail({\r\n    className,\r\n    headline = \"Exclusive Early Access\",\r\n    subheadline = \"Be the first to shop our limited collections and receive personalized style recommendations\",\r\n    buttonText = \"Subscribe\",\r\n    successMessage = \"You're on the list\",\r\n}: SubscriptionEmailProps) {\r\n    const [email, setEmail] = useState(\"\")\r\n    const [isSubmitting, setIsSubmitting] = useState(false)\r\n    const [isSubmitted, setIsSubmitted] = useState(false)\r\n    const [isValid, setIsValid] = useState(true)\r\n\r\n    const handleSubmit = async (e: React.FormEvent) => {\r\n        e.preventDefault()\r\n\r\n        // Basic email validation\r\n        const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\r\n        if (!emailRegex.test(email)) {\r\n            setIsValid(false)\r\n            return\r\n        }\r\n\r\n        setIsSubmitting(true)\r\n\r\n        // Simulate API call\r\n        await new Promise((resolve) => setTimeout(resolve, 1000))\r\n\r\n        setIsSubmitting(false)\r\n        setIsSubmitted(true)\r\n    }\r\n\r\n    return (\r\n        <div\r\n            className={cn(\r\n                \"w-full max-w-3xl mx-auto rounded-3xl overflow-hidden bg-gradient-to-b from-neutral-50 to-neutral-100 dark:from-neutral-900 dark:to-neutral-950 border border-neutral-200 dark:border-neutral-800\",\r\n                className,\r\n            )}\r\n        >\r\n            <div className=\"px-8 py-12 md:px-12 md:py-16 relative overflow-hidden\">\r\n                {/* Abstract background element */}\r\n                <div className=\"absolute -top-24 -right-24 w-64 h-64 bg-gradient-to-br from-neutral-100 to-neutral-200 dark:from-neutral-800 dark:to-neutral-900 rounded-full opacity-50 blur-3xl\"></div>\r\n\r\n                <div className=\"relative z-10\">\r\n                    <div className=\"flex items-center gap-2 mb-6\">\r\n                        <div className=\"flex items-center justify-center w-10 h-10 rounded-full bg-neutral-900 dark:bg-neutral-100\">\r\n                            <Mail className=\"w-5 h-5 text-neutral-100 dark:text-neutral-900\" />\r\n                        </div>\r\n                    </div>\r\n                    <h2 className=\"text-2xl md:text-3xl font-medium text-neutral-900 dark:text-neutral-100 mb-3 tracking-tight\">\r\n                        {headline}\r\n                    </h2>\r\n                    <p className=\"text-muted-foreground mb-8 max-w-lg\">{subheadline}</p>\r\n                    {!isSubmitted ? (\r\n                        <form onSubmit={handleSubmit} className=\"space-y-4\">\r\n                            <div className=\"relative\">\r\n                                <Input\r\n                                    type=\"email\"\r\n                                    placeholder=\"Your email address\"\r\n                                    value={email}\r\n                                    onChange={(e) => {\r\n                                        setEmail(e.target.value)\r\n                                        setIsValid(true)\r\n                                    }}\r\n                                    className={cn(\r\n                                        \"h-14 px-5 bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700 rounded-xl shadow-sm focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-500\",\r\n                                        !isValid && \"border-red-300 dark:border-red-700 focus-visible:ring-red-400\",\r\n                                    )}\r\n                                />\r\n                                {!isValid && (\r\n                                    <p className=\"text-red-500 dark:text-red-400 text-sm mt-2\">Please enter a valid email address</p>\r\n                                )}\r\n                            </div>\r\n                            <Button\r\n                                type=\"submit\"\r\n                                disabled={isSubmitting || !email}\r\n                                className=\"h-14 px-6 rounded-full bg-neutral-900 hover:bg-black text-white dark:bg-white dark:hover:bg-neutral-200 dark:text-neutral-900 transition-all duration-200 shadow-sm hover:shadow-md w-full md:w-auto\"\r\n                            >\r\n                                {isSubmitting ? (\r\n                                    <span className=\"flex items-center gap-2\">\r\n                                        <span className=\"h-4 w-4 border-2 border-white border-t-transparent dark:border-neutral-900 dark:border-t-transparent rounded-full animate-spin\"></span>\r\n                                        Processing\r\n                                    </span>\r\n                                ) : (\r\n                                    <span className=\"flex items-center gap-2\">\r\n                                        {buttonText}\r\n                                        <ArrowRight className=\"w-4 h-4\" />\r\n                                    </span>\r\n                                )}\r\n                            </Button>\r\n                        </form>\r\n                    ) : (\r\n                        <div className=\"flex items-center gap-3 text-neutral-900 dark:text-neutral-100 bg-neutral-100 dark:bg-neutral-800 py-4 px-5 rounded-xl\">\r\n                            <Check className=\"w-5 h-5 text-green-500\" />\r\n                            <span className=\"font-medium\">{successMessage}</span>\r\n                        </div>\r\n                    )}\r\n                    <p className=\"text-muted-foreground text-xs mt-6\">\r\n                        By subscribing, you agree to our Privacy Policy and consent to receive updates from our company.\r\n                    </p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/subscription-email-1/page": {
      "content": "import SubscriptionEmail from \"./components/subscription-email\"\r\n\r\nexport default function page() {\r\n    return (\r\n        <main className=\"min-h-screen flex items-center justify-center p-4 md:p-8 bg-white dark:bg-neutral-950\">\r\n            <SubscriptionEmail />\r\n        </main>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "subscription-email-2": {
    "components": {
      "@/registry/view/subscription-email-2/components/subscription-email": {
        "content": "\"use client\"\r\n\r\nimport { Mail } from \"lucide-react\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\n\r\nexport default function SubscriptionEmail() {\r\n    const [email, setEmail] = useState(\"\")\r\n    const [isSubmitting, setIsSubmitting] = useState(false)\r\n    const [isSubmitted, setIsSubmitted] = useState(false)\r\n\r\n    const handleSubmit = async (e: React.FormEvent) => {\r\n        e.preventDefault()\r\n        setIsSubmitting(true)\r\n\r\n        await new Promise((resolve) => setTimeout(resolve, 1000))\r\n\r\n        setIsSubmitting(false)\r\n        setIsSubmitted(true)\r\n        setEmail(\"\")\r\n    }\r\n\r\n    return (\r\n        <div className=\"space-y-6 flex items-center justify-center flex-col\"> \r\n            <div className=\"space-y-2\">\r\n                <h1 className=\"text-4xl md:text-5xl font-semibold tracking-tight\">\r\n                    Exclusive offers.\r\n                    <br />\r\n                    Limited time.\r\n                </h1>\r\n                <p className=\"text-gray-500 mt-4 text-base\">Get early access to our Black Friday deals.</p>\r\n            </div>\r\n            {isSubmitted ? (\r\n                <div className=\"bg-white rounded-full shadow-md p-4 text-center\">\r\n                    <p className=\"text-gray-800\">Thanks for subscribing!</p>\r\n                </div>\r\n            ) : (\r\n                <form onSubmit={handleSubmit} className=\"relative\">\r\n                    <div className=\"bg-white rounded-xl shadow-md flex items-center p-2 pr-2 border border-gray-300\">\r\n                        <div className=\"pl-3 pr-2\">\r\n                            <Mail className=\"h-5 w-5 text-gray-400\" />\r\n                        </div>\r\n                        <input\r\n                            type=\"email\"\r\n                            value={email}\r\n                            onChange={(e) => setEmail(e.target.value)}\r\n                            placeholder=\"Email address\"\r\n                            required\r\n                            className=\"flex-1 bg-transparent outline-none text-gray-800 placeholder-gray-400 text-sm md:text-base py-2 px-1\"\r\n                        />\r\n                        <button\r\n                            type=\"submit\"\r\n                            disabled={isSubmitting}\r\n                            className=\"bg-gray-100 hover:bg-gray-200 transition-colors rounded-xl py-2 px-6 text-gray-800 font-medium text-sm md:text-base\"\r\n                        >\r\n                            {isSubmitting ? \"Subscribing...\" : \"Subscribe\"}\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            )}\r\n        </div>\r\n    )\r\n}\r\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/subscription-email-2/page": {
      "content": "import SubscriptionEmail from \"./components/subscription-email\"\r\n\r\nexport default function page() {\r\n    return (\r\n        <main className=\"flex min-h-screen flex-col items-center justify-center p-4 relative overflow-hidden bg-gradient-to-br from-gray-50 via-white to-gray-100 dark:from-gray-950 dark:via-gray-800 dark:to-gray-900\">\r\n            <div className=\"absolute inset-0 bg-gradient-to-br from-gray-50/80 via-white/60 to-gray-100/80 backdrop-blur-3xl dark:from-gray-950/80 dark:via-gray-800/60 dark:to-gray-900/80 dark:backdrop-blur-3xl\" />\r\n            <div className=\"relative z-10 max-w-lg w-full text-center\">\r\n                <SubscriptionEmail />\r\n            </div>\r\n        </main>\r\n    )\r\n}\r\n",
      "language": "tsx"
    }
  },
  "subscription-email-3": {
    "components": {
      "@/registry/view/subscription-email-3/components/subscription-email": {
        "content": "\"use client\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { motion } from \"framer-motion\"\r\nimport type React from \"react\"\r\nimport { useState } from \"react\"\r\n\r\ninterface CheckmarkProps {\r\n    size?: number\r\n    strokeWidth?: number\r\n    className?: string\r\n    color?: string\r\n}\r\n\r\nconst draw = {\r\n    hidden: { pathLength: 0, opacity: 0 },\r\n    visible: (i: number) => ({\r\n        pathLength: 1,\r\n        opacity: 1,\r\n        transition: {\r\n            pathLength: {\r\n                delay: i * 0.2,\r\n                type: \"spring\",\r\n                duration: 1.5,\r\n                bounce: 0.2,\r\n                ease: \"easeInOut\",\r\n            },\r\n            opacity: { delay: i * 0.2, duration: 0.2 },\r\n        },\r\n    }),\r\n}\r\n\r\nexport function Checkmark({ size = 100, strokeWidth = 2, color = \"currentColor\", className = \"\" }: CheckmarkProps) {\r\n    return (\r\n        <motion.svg\r\n            width={size}\r\n            height={size}\r\n            viewBox=\"0 0 100 100\"\r\n            initial=\"hidden\"\r\n            animate=\"visible\"\r\n            className={className}\r\n        >\r\n            <title>Animated Checkmark</title>\r\n            <motion.circle\r\n                cx=\"50\"\r\n                cy=\"50\"\r\n                r=\"40\"\r\n                stroke={color}\r\n                variants={draw}\r\n                custom={0}\r\n                style={{\r\n                    strokeWidth,\r\n                    strokeLinecap: \"round\",\r\n                    fill: \"transparent\",\r\n                }}\r\n            />\r\n            <motion.path\r\n                d=\"M30 50L45 65L70 35\"\r\n                stroke={color}\r\n                variants={draw}\r\n                custom={1}\r\n                style={{\r\n                    strokeWidth,\r\n                    strokeLinecap: \"round\",\r\n                    strokeLinejoin: \"round\",\r\n                    fill: \"transparent\",\r\n                }}\r\n            />\r\n        </motion.svg>\r\n    )\r\n}\r\nexport default function SubscriptionEmail() {\r\n    const [email, setEmail] = useState(\"\")\r\n    const [isSubmitting, setIsSubmitting] = useState(false)\r\n    const [isSubmitted, setIsSubmitted] = useState(false)\r\n    const [isFocused, setIsFocused] = useState(false)\r\n\r\n    const handleSubmit = async (e: React.FormEvent) => {\r\n        e.preventDefault()\r\n        if (!email || !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) return\r\n\r\n        setIsSubmitting(true)\r\n        await new Promise((resolve) => setTimeout(resolve, 1200))\r\n        setIsSubmitting(false)\r\n        setIsSubmitted(true)\r\n    }\r\n\r\n    const containerVariants = {\r\n        hidden: { opacity: 0, y: 20 },\r\n        visible: {\r\n            opacity: 1,\r\n            y: 0,\r\n            transition: {\r\n                duration: 0.6,\r\n                ease: [0.25, 0.46, 0.45, 0.94],\r\n            },\r\n        },\r\n    }\r\n\r\n    return (\r\n        <motion.div\r\n            initial=\"hidden\"\r\n            animate=\"visible\"\r\n            variants={containerVariants}\r\n            className=\"relative w-full max-w-2xl mx-auto transition-all\"\r\n        >\r\n            <div className=\"relative bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-black/[0.08] dark:border-white/[0.08] rounded-3xl p-8 md:p-12 shadow-xl shadow-black/[0.04] dark:shadow-black/20\">\r\n                <div className=\"absolute inset-0 bg-gradient-to-b from-white/40 to-transparent dark:from-white/[0.02] dark:to-transparent rounded-3xl pointer-events-none\" />\r\n                <div className=\"relative\">\r\n                    {!isSubmitted ? (\r\n                        <>\r\n                            <div className=\"text-center mb-8\">\r\n                                <h2 className=\"text-3xl md:text-4xl font-semibold tracking-tight mb-3 text-zinc-900 dark:text-white\">\r\n                                    Stay Updated\r\n                                </h2>\r\n                                <p className=\"text-lg text-zinc-600 dark:text-zinc-400 max-w-md mx-auto leading-relaxed\">\r\n                                    Get notified when we launch new features and updates.\r\n                                </p>\r\n                            </div>\r\n                            <form onSubmit={handleSubmit} className=\"max-w-sm mx-auto\">\r\n                                <div className=\"space-y-4\">\r\n                                    <div\r\n                                        className=\"relative transition-all duration-200\"\r\n                                    >\r\n                                        <input\r\n                                            type=\"email\"\r\n                                            value={email}\r\n                                            onChange={(e) => setEmail(e.target.value)}\r\n                                            onFocus={() => setIsFocused(true)}\r\n                                            onBlur={() => setIsFocused(false)}\r\n                                            placeholder=\"Enter your email\"\r\n                                            required\r\n                                            className=\"w-full px-4 py-3.5 bg-zinc-50/80 dark:bg-zinc-800/50 border border-zinc-200 dark:border-zinc-700 rounded-xl text-zinc-900 dark:text-white placeholder-zinc-500 dark:placeholder-zinc-400 outline-none transition-colors duration-200 focus:bg-white dark:focus:bg-zinc-800 focus:border-zinc-300 dark:focus:border-zinc-600\"\r\n                                        />\r\n                                    </div>\r\n                                    <Button\r\n                                        type=\"submit\"\r\n                                        disabled={isSubmitting || !email}\r\n                                        className=\"w-full py-3.5 bg-zinc-900 hover:bg-zinc-800 dark:bg-white dark:hover:bg-zinc-100 text-white dark:text-zinc-900 font-medium rounded-xl transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed\"\r\n                                    >\r\n                                        {isSubmitting ? \"Subscribing...\" : \"Subscribe\"}\r\n                                    </Button>\r\n                                </div>\r\n                            </form>\r\n                            <p className=\"text-xs text-center mt-6 text-zinc-500 dark:text-zinc-500 max-w-sm mx-auto\">\r\n                                We respect your privacy. Unsubscribe at any time.\r\n                            </p>\r\n                        </>\r\n                    ) : (\r\n                        <motion.div\r\n                            initial={{ opacity: 0, scale: 0.95 }}\r\n                            animate={{ opacity: 1, scale: 1 }}\r\n                            transition={{ duration: 0.4, ease: [0.25, 0.46, 0.45, 0.94] }}\r\n                            className=\"text-center py-4\"\r\n                        >\r\n                            <div className=\"mb-6 flex justify-center\">\r\n                                <div className=\"p-3 bg-green-50 dark:bg-green-900/20 rounded-full\">\r\n                                    <Checkmark\r\n                                        size={64}\r\n                                        strokeWidth={4}\r\n                                        className=\"relative z-10 text-green-600 dark:text-green-400\"\r\n                                    />\r\n                                </div>\r\n                            </div>\r\n                            <h3 className=\"text-2xl font-semibold mb-2 text-zinc-900 dark:text-white\">\r\n                                You're all set!\r\n                            </h3>\r\n                            <p className=\"text-zinc-600 dark:text-zinc-400 leading-relaxed max-w-sm mx-auto\">\r\n                                Thanks for subscribing. We'll keep you updated with our latest news.\r\n                            </p>\r\n                        </motion.div>\r\n                    )}\r\n                </div>\r\n            </div>\r\n        </motion.div>\r\n    )\r\n}",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/subscription-email-3/page": {
      "content": "import SubscriptionEmail from \"./components/subscription-email\"\r\n\r\nexport default function Page() {\r\n    return (\r\n        <main className=\"min-h-screen w-full flex flex-col items-center justify-center p-4 md:p-8 bg-zinc-50 dark:bg-zinc-950 transition-colors duration-300\">\r\n            <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,rgba(120,119,198,0.03),transparent_50%)] dark:bg-[radial-gradient(circle_at_50%_50%,rgba(120,119,198,0.05),transparent_50%)]\" />\r\n            <div className=\"relative z-10\">\r\n                <SubscriptionEmail />\r\n            </div>\r\n        </main>\r\n    )\r\n}",
      "language": "tsx"
    }
  },
  "tasks-1": {
    "components": {
      "@/registry/view/tasks-1/components/columns": {
        "content": "\"use client\"\n\nimport { Badge } from \"@/components/ui/badge\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport { ColumnDef } from \"@tanstack/react-table\"\nimport { labels, priorities, statuses } from \"../data/data\"\nimport { Task } from \"../data/schema\"\nimport { DataTableColumnHeader } from \"./data-table-column-header\"\nimport { DataTableRowActions } from \"./data-table-row-actions\"\n\nexport const columns: ColumnDef<Task>[] = [\n  {\n    id: \"select\",\n    header: ({ table }) => (\n      <Checkbox\n        checked={\n          table.getIsAllPageRowsSelected() ||\n          (table.getIsSomePageRowsSelected() && \"indeterminate\")\n        }\n        onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n        aria-label=\"Select all\"\n        className=\"translate-y-[2px]\"\n      />\n    ),\n    cell: ({ row }) => (\n      <Checkbox\n        checked={row.getIsSelected()}\n        onCheckedChange={(value) => row.toggleSelected(!!value)}\n        aria-label=\"Select row\"\n        className=\"translate-y-[2px]\"\n      />\n    ),\n    enableSorting: false,\n    enableHiding: false,\n  },\n  {\n    accessorKey: \"id\",\n    header: ({ column }) => (\n      <DataTableColumnHeader column={column} title=\"Task\" />\n    ),\n    cell: ({ row }) => <div className=\"w-[80px]\">{row.getValue(\"id\")}</div>,\n    enableSorting: false,\n    enableHiding: false,\n  },\n  {\n    accessorKey: \"title\",\n    header: ({ column }) => (\n      <DataTableColumnHeader column={column} title=\"Title\" />\n    ),\n    cell: ({ row }) => {\n      const label = labels.find((label) => label.value === row.original.label)\n\n      return (\n        <div className=\"flex gap-2\">\n          {label && <Badge variant=\"outline\">{label.label}</Badge>}\n          <span className=\"max-w-[500px] truncate font-medium\">\n            {row.getValue(\"title\")}\n          </span>\n        </div>\n      )\n    },\n  },\n  {\n    accessorKey: \"status\",\n    header: ({ column }) => (\n      <DataTableColumnHeader column={column} title=\"Status\" />\n    ),\n    cell: ({ row }) => {\n      const status = statuses.find(\n        (status) => status.value === row.getValue(\"status\")\n      )\n\n      if (!status) {\n        return null\n      }\n\n      return (\n        <div className=\"flex w-[100px] items-center gap-2\">\n          {status.icon && (\n            <status.icon className=\"text-muted-foreground size-4\" />\n          )}\n          <span>{status.label}</span>\n        </div>\n      )\n    },\n    filterFn: (row, id, value) => {\n      return value.includes(row.getValue(id))\n    },\n  },\n  {\n    accessorKey: \"priority\",\n    header: ({ column }) => (\n      <DataTableColumnHeader column={column} title=\"Priority\" />\n    ),\n    cell: ({ row }) => {\n      const priority = priorities.find(\n        (priority) => priority.value === row.getValue(\"priority\")\n      )\n\n      if (!priority) {\n        return null\n      }\n\n      return (\n        <div className=\"flex items-center gap-2\">\n          {priority.icon && (\n            <priority.icon className=\"text-muted-foreground size-4\" />\n          )}\n          <span>{priority.label}</span>\n        </div>\n      )\n    },\n    filterFn: (row, id, value) => {\n      return value.includes(row.getValue(id))\n    },\n  },\n  {\n    id: \"actions\",\n    cell: ({ row }) => <DataTableRowActions row={row} />,\n  },\n]\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-column-header": {
        "content": "import { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuSeparator,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Column } from \"@tanstack/react-table\"\nimport { ArrowDown, ArrowUp, ChevronsUpDown, EyeOff } from \"lucide-react\"\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n  extends React.HTMLAttributes<HTMLDivElement> {\n  column: Column<TData, TValue>\n  title: string\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n  column,\n  title,\n  className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n  if (!column.getCanSort()) {\n    return <div className={cn(className)}>{title}</div>\n  }\n\n  return (\n    <div className={cn(\"flex items-center gap-2\", className)}>\n      <DropdownMenu>\n        <DropdownMenuTrigger asChild>\n          <Button\n            variant=\"ghost\"\n            size=\"sm\"\n            className=\"data-[state=open]:bg-accent -ml-3 h-8\"\n          >\n            <span>{title}</span>\n            {column.getIsSorted() === \"desc\" ? (\n              <ArrowDown />\n            ) : column.getIsSorted() === \"asc\" ? (\n              <ArrowUp />\n            ) : (\n              <ChevronsUpDown />\n            )}\n          </Button>\n        </DropdownMenuTrigger>\n        <DropdownMenuContent align=\"start\">\n          <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n            <ArrowUp />\n            Asc\n          </DropdownMenuItem>\n          <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n            <ArrowDown />\n            Desc\n          </DropdownMenuItem>\n          <DropdownMenuSeparator />\n          <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\n            <EyeOff />\n            Hide\n          </DropdownMenuItem>\n        </DropdownMenuContent>\n      </DropdownMenu>\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-faceted-filter": {
        "content": "import * as React from \"react\"\nimport { Column } from \"@tanstack/react-table\"\nimport { Check, PlusCircle } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  Command,\n  CommandEmpty,\n  CommandGroup,\n  CommandInput,\n  CommandItem,\n  CommandList,\n  CommandSeparator,\n} from \"@/components/ui/command\"\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { Separator } from \"@/components/ui/separator\"\n\ninterface DataTableFacetedFilterProps<TData, TValue> {\n  column?: Column<TData, TValue>\n  title?: string\n  options: {\n    label: string\n    value: string\n    icon?: React.ComponentType<{ className?: string }>\n  }[]\n}\n\nexport function DataTableFacetedFilter<TData, TValue>({\n  column,\n  title,\n  options,\n}: DataTableFacetedFilterProps<TData, TValue>) {\n  const facets = column?.getFacetedUniqueValues()\n  const selectedValues = new Set(column?.getFilterValue() as string[])\n\n  return (\n    <Popover>\n      <PopoverTrigger asChild>\n        <Button variant=\"outline\" size=\"sm\" className=\"h-8 border-dashed\">\n          <PlusCircle />\n          {title}\n          {selectedValues?.size > 0 && (\n            <>\n              <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n              <Badge\n                variant=\"secondary\"\n                className=\"rounded-sm px-1 font-normal lg:hidden\"\n              >\n                {selectedValues.size}\n              </Badge>\n              <div className=\"hidden gap-1 lg:flex\">\n                {selectedValues.size > 2 ? (\n                  <Badge\n                    variant=\"secondary\"\n                    className=\"rounded-sm px-1 font-normal\"\n                  >\n                    {selectedValues.size} selected\n                  </Badge>\n                ) : (\n                  options\n                    .filter((option) => selectedValues.has(option.value))\n                    .map((option) => (\n                      <Badge\n                        variant=\"secondary\"\n                        key={option.value}\n                        className=\"rounded-sm px-1 font-normal\"\n                      >\n                        {option.label}\n                      </Badge>\n                    ))\n                )}\n              </div>\n            </>\n          )}\n        </Button>\n      </PopoverTrigger>\n      <PopoverContent className=\"w-[200px] p-0\" align=\"start\">\n        <Command>\n          <CommandInput placeholder={title} />\n          <CommandList>\n            <CommandEmpty>No results found.</CommandEmpty>\n            <CommandGroup>\n              {options.map((option) => {\n                const isSelected = selectedValues.has(option.value)\n                return (\n                  <CommandItem\n                    key={option.value}\n                    onSelect={() => {\n                      if (isSelected) {\n                        selectedValues.delete(option.value)\n                      } else {\n                        selectedValues.add(option.value)\n                      }\n                      const filterValues = Array.from(selectedValues)\n                      column?.setFilterValue(\n                        filterValues.length ? filterValues : undefined\n                      )\n                    }}\n                  >\n                    <div\n                      className={cn(\n                        \"flex size-4 items-center justify-center rounded-[4px] border\",\n                        isSelected\n                          ? \"bg-primary border-primary text-primary-foreground\"\n                          : \"border-input [&_svg]:invisible\"\n                      )}\n                    >\n                      <Check className=\"text-primary-foreground size-3.5\" />\n                    </div>\n                    {option.icon && (\n                      <option.icon className=\"text-muted-foreground size-4\" />\n                    )}\n                    <span>{option.label}</span>\n                    {facets?.get(option.value) && (\n                      <span className=\"text-muted-foreground ml-auto flex size-4 items-center justify-center font-mono text-xs\">\n                        {facets.get(option.value)}\n                      </span>\n                    )}\n                  </CommandItem>\n                )\n              })}\n            </CommandGroup>\n            {selectedValues.size > 0 && (\n              <>\n                <CommandSeparator />\n                <CommandGroup>\n                  <CommandItem\n                    onSelect={() => column?.setFilterValue(undefined)}\n                    className=\"justify-center text-center\"\n                  >\n                    Clear filters\n                  </CommandItem>\n                </CommandGroup>\n              </>\n            )}\n          </CommandList>\n        </Command>\n      </PopoverContent>\n    </Popover>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-pagination": {
        "content": "import { Button } from \"@/components/ui/button\"\nimport {\n  Select,\n  SelectContent,\n  SelectItem,\n  SelectTrigger,\n  SelectValue,\n} from \"@/components/ui/select\"\nimport { Table } from \"@tanstack/react-table\"\nimport {\n  ChevronLeft,\n  ChevronRight,\n  ChevronsLeft,\n  ChevronsRight,\n} from \"lucide-react\"\n\ninterface DataTablePaginationProps<TData> {\n  table: Table<TData>\n}\n\nexport function DataTablePagination<TData>({\n  table,\n}: DataTablePaginationProps<TData>) {\n  return (\n    <div className=\"flex items-center justify-between px-2\">\n      <div className=\"text-muted-foreground flex-1 text-sm\">\n        {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n        {table.getFilteredRowModel().rows.length} row(s) selected.\n      </div>\n      <div className=\"flex items-center space-x-6 lg:space-x-8\">\n        <div className=\"flex items-center space-x-2\">\n          <p className=\"text-sm font-medium\">Rows per page</p>\n          <Select\n            value={`${table.getState().pagination.pageSize}`}\n            onValueChange={(value) => {\n              table.setPageSize(Number(value))\n            }}\n          >\n            <SelectTrigger className=\"h-8 w-[70px]\">\n              <SelectValue placeholder={table.getState().pagination.pageSize} />\n            </SelectTrigger>\n            <SelectContent side=\"top\">\n              {[10, 20, 25, 30, 40, 50].map((pageSize) => (\n                <SelectItem key={pageSize} value={`${pageSize}`}>\n                  {pageSize}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        </div>\n        <div className=\"flex w-[100px] items-center justify-center text-sm font-medium\">\n          Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n          {table.getPageCount()}\n        </div>\n        <div className=\"flex items-center space-x-2\">\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"hidden size-8 lg:flex\"\n            onClick={() => table.setPageIndex(0)}\n            disabled={!table.getCanPreviousPage()}\n          >\n            <span className=\"sr-only\">Go to first page</span>\n            <ChevronsLeft />\n          </Button>\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"size-8\"\n            onClick={() => table.previousPage()}\n            disabled={!table.getCanPreviousPage()}\n          >\n            <span className=\"sr-only\">Go to previous page</span>\n            <ChevronLeft />\n          </Button>\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"size-8\"\n            onClick={() => table.nextPage()}\n            disabled={!table.getCanNextPage()}\n          >\n            <span className=\"sr-only\">Go to next page</span>\n            <ChevronRight />\n          </Button>\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"hidden size-8 lg:flex\"\n            onClick={() => table.setPageIndex(table.getPageCount() - 1)}\n            disabled={!table.getCanNextPage()}\n          >\n            <span className=\"sr-only\">Go to last page</span>\n            <ChevronsRight />\n          </Button>\n        </div>\n      </div>\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-row-actions": {
        "content": "\"use client\"\n\nimport { Row } from \"@tanstack/react-table\"\nimport { MoreHorizontal } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nimport { labels } from \"../data/data\"\nimport { taskSchema } from \"../data/schema\"\n\ninterface DataTableRowActionsProps<TData> {\n  row: Row<TData>\n}\n\nexport function DataTableRowActions<TData>({\n  row,\n}: DataTableRowActionsProps<TData>) {\n  const task = taskSchema.parse(row.original)\n\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        <Button\n          variant=\"ghost\"\n          size=\"icon\"\n          className=\"data-[state=open]:bg-muted size-8\"\n        >\n          <MoreHorizontal />\n          <span className=\"sr-only\">Open menu</span>\n        </Button>\n      </DropdownMenuTrigger>\n      <DropdownMenuContent align=\"end\" className=\"w-[160px]\">\n        <DropdownMenuItem>Edit</DropdownMenuItem>\n        <DropdownMenuItem>Make a copy</DropdownMenuItem>\n        <DropdownMenuItem>Favorite</DropdownMenuItem>\n        <DropdownMenuSeparator />\n        <DropdownMenuSub>\n          <DropdownMenuSubTrigger>Labels</DropdownMenuSubTrigger>\n          <DropdownMenuSubContent>\n            <DropdownMenuRadioGroup value={task.label}>\n              {labels.map((label) => (\n                <DropdownMenuRadioItem key={label.value} value={label.value}>\n                  {label.label}\n                </DropdownMenuRadioItem>\n              ))}\n            </DropdownMenuRadioGroup>\n          </DropdownMenuSubContent>\n        </DropdownMenuSub>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem className=\"text-destructive focus:text-destructive\">\n          Delete\n          <DropdownMenuShortcut>⌘⌫</DropdownMenuShortcut>\n        </DropdownMenuItem>\n      </DropdownMenuContent>\n    </DropdownMenu>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-toolbar": {
        "content": "\"use client\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Table } from \"@tanstack/react-table\"\nimport { X } from \"lucide-react\"\nimport { priorities, statuses } from \"../data/data\"\nimport { DataTableFacetedFilter } from \"./data-table-faceted-filter\"\nimport { DataTableViewOptions } from \"./data-table-view-options\"\n\ninterface DataTableToolbarProps<TData> {\n  table: Table<TData>\n}\n\nexport function DataTableToolbar<TData>({\n  table,\n}: DataTableToolbarProps<TData>) {\n  const isFiltered = table.getState().columnFilters.length > 0\n\n  return (\n    <div className=\"flex items-center justify-between\">\n      <div className=\"flex flex-1 items-center gap-2\">\n        <Input\n          placeholder=\"Filter tasks...\"\n          value={(table.getColumn(\"title\")?.getFilterValue() as string) ?? \"\"}\n          onChange={(event) =>\n            table.getColumn(\"title\")?.setFilterValue(event.target.value)\n          }\n          className=\"h-8 w-[150px] lg:w-[250px]\"\n        />\n        {table.getColumn(\"status\") && (\n          <DataTableFacetedFilter\n            column={table.getColumn(\"status\")}\n            title=\"Status\"\n            options={statuses}\n          />\n        )}\n        {table.getColumn(\"priority\") && (\n          <DataTableFacetedFilter\n            column={table.getColumn(\"priority\")}\n            title=\"Priority\"\n            options={priorities}\n          />\n        )}\n        {isFiltered && (\n          <Button\n            variant=\"ghost\"\n            size=\"sm\"\n            onClick={() => table.resetColumnFilters()}\n          >\n            Reset\n            <X />\n          </Button>\n        )}\n      </div>\n      <div className=\"flex items-center gap-2\">\n        <DataTableViewOptions table={table} />\n        <Button size=\"sm\">Add Task</Button>\n      </div>\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table-view-options": {
        "content": "\"use client\"\n\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\"\nimport { Table } from \"@tanstack/react-table\"\nimport { Settings2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  DropdownMenu,\n  DropdownMenuCheckboxItem,\n  DropdownMenuContent,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n} from \"@/components/ui/dropdown-menu\"\n\nexport function DataTableViewOptions<TData>({\n  table,\n}: {\n  table: Table<TData>\n}) {\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        <Button\n          variant=\"outline\"\n          size=\"sm\"\n          className=\"ml-auto hidden h-8 lg:flex\"\n        >\n          <Settings2 />\n          View\n        </Button>\n      </DropdownMenuTrigger>\n      <DropdownMenuContent align=\"end\" className=\"w-[150px]\">\n        <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n        <DropdownMenuSeparator />\n        {table\n          .getAllColumns()\n          .filter(\n            (column) =>\n              typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n          )\n          .map((column) => {\n            return (\n              <DropdownMenuCheckboxItem\n                key={column.id}\n                className=\"capitalize\"\n                checked={column.getIsVisible()}\n                onCheckedChange={(value) => column.toggleVisibility(!!value)}\n              >\n                {column.id}\n              </DropdownMenuCheckboxItem>\n            )\n          })}\n      </DropdownMenuContent>\n    </DropdownMenu>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/data-table": {
        "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  ColumnDef,\n  ColumnFiltersState,\n  flexRender,\n  getCoreRowModel,\n  getFacetedRowModel,\n  getFacetedUniqueValues,\n  getFilteredRowModel,\n  getPaginationRowModel,\n  getSortedRowModel,\n  SortingState,\n  useReactTable,\n  VisibilityState,\n} from \"@tanstack/react-table\"\nimport {\n  Table,\n  TableBody,\n  TableCell,\n  TableHead,\n  TableHeader,\n  TableRow,\n} from \"@/components/ui/table\"\n\nimport { DataTablePagination } from \"./data-table-pagination\"\nimport { DataTableToolbar } from \"./data-table-toolbar\"\n\ninterface DataTableProps<TData, TValue> {\n  columns: ColumnDef<TData, TValue>[]\n  data: TData[]\n}\n\nexport function DataTable<TData, TValue>({\n  columns,\n  data,\n}: DataTableProps<TData, TValue>) {\n  const [rowSelection, setRowSelection] = React.useState({})\n  const [columnVisibility, setColumnVisibility] =\n    React.useState<VisibilityState>({})\n  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\n    []\n  )\n  const [sorting, setSorting] = React.useState<SortingState>([])\n\n  const table = useReactTable({\n    data,\n    columns,\n    state: {\n      sorting,\n      columnVisibility,\n      rowSelection,\n      columnFilters,\n    },\n    initialState: {\n      pagination: {\n        pageSize: 25,\n      },\n    },\n    enableRowSelection: true,\n    onRowSelectionChange: setRowSelection,\n    onSortingChange: setSorting,\n    onColumnFiltersChange: setColumnFilters,\n    onColumnVisibilityChange: setColumnVisibility,\n    getCoreRowModel: getCoreRowModel(),\n    getFilteredRowModel: getFilteredRowModel(),\n    getPaginationRowModel: getPaginationRowModel(),\n    getSortedRowModel: getSortedRowModel(),\n    getFacetedRowModel: getFacetedRowModel(),\n    getFacetedUniqueValues: getFacetedUniqueValues(),\n  })\n\n  return (\n    <div className=\"flex flex-col gap-4\">\n      <DataTableToolbar table={table} />\n      <div className=\"overflow-hidden rounded-md border\">\n        <Table>\n          <TableHeader>\n            {table.getHeaderGroups().map((headerGroup) => (\n              <TableRow key={headerGroup.id}>\n                {headerGroup.headers.map((header) => {\n                  return (\n                    <TableHead key={header.id} colSpan={header.colSpan}>\n                      {header.isPlaceholder\n                        ? null\n                        : flexRender(\n                            header.column.columnDef.header,\n                            header.getContext()\n                          )}\n                    </TableHead>\n                  )\n                })}\n              </TableRow>\n            ))}\n          </TableHeader>\n          <TableBody>\n            {table.getRowModel().rows?.length ? (\n              table.getRowModel().rows.map((row) => (\n                <TableRow\n                  key={row.id}\n                  data-state={row.getIsSelected() && \"selected\"}\n                >\n                  {row.getVisibleCells().map((cell) => (\n                    <TableCell key={cell.id}>\n                      {flexRender(\n                        cell.column.columnDef.cell,\n                        cell.getContext()\n                      )}\n                    </TableCell>\n                  ))}\n                </TableRow>\n              ))\n            ) : (\n              <TableRow>\n                <TableCell\n                  colSpan={columns.length}\n                  className=\"h-24 text-center\"\n                >\n                  No results.\n                </TableCell>\n              </TableRow>\n            )}\n          </TableBody>\n        </Table>\n      </div>\n      <DataTablePagination table={table} />\n    </div>\n  )\n}\n",
        "language": "tsx"
      },
      "@/registry/view/tasks-1/components/user-nav": {
        "content": "import {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nexport function UserNav() {\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        <Button variant=\"ghost\" className=\"relative h-8 w-8 rounded-full\">\n          <Avatar className=\"h-9 w-9\">\n            <AvatarImage src=\"/avatars/03.png\" alt=\"@shadcn\" />\n            <AvatarFallback>SC</AvatarFallback>\n          </Avatar>\n        </Button>\n      </DropdownMenuTrigger>\n      <DropdownMenuContent className=\"w-56\" align=\"end\" forceMount>\n        <DropdownMenuLabel className=\"font-normal\">\n          <div className=\"flex flex-col space-y-1\">\n            <p className=\"text-sm leading-none font-medium\">shadcn</p>\n            <p className=\"text-muted-foreground text-xs leading-none\">\n              m@example.com\n            </p>\n          </div>\n        </DropdownMenuLabel>\n        <DropdownMenuSeparator />\n        <DropdownMenuGroup>\n          <DropdownMenuItem>\n            Profile\n            <DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut>\n          </DropdownMenuItem>\n          <DropdownMenuItem>\n            Billing\n            <DropdownMenuShortcut>⌘B</DropdownMenuShortcut>\n          </DropdownMenuItem>\n          <DropdownMenuItem>\n            Settings\n            <DropdownMenuShortcut>⌘S</DropdownMenuShortcut>\n          </DropdownMenuItem>\n          <DropdownMenuItem>New Team</DropdownMenuItem>\n        </DropdownMenuGroup>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>\n          Log out\n          <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>\n        </DropdownMenuItem>\n      </DropdownMenuContent>\n    </DropdownMenu>\n  )\n}\n",
        "language": "tsx"
      }
    },
    "constant": {},
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/tasks-1/page": {
      "content": "import Image from \"next/image\"\nimport { z } from \"zod\"\nimport { columns } from \"./components/columns\"\nimport { DataTable } from \"./components/data-table\"\nimport { UserNav } from \"./components/user-nav\"\nimport { taskSchema } from \"./data/schema\"\nimport tasksData from \"./data/tasks.json\"\n\n// Parse and validate tasks data\nconst tasks = z.array(taskSchema).parse(tasksData)\n\nexport default function TaskPage() {\n  return (\n    <>\n      <div className=\"md:hidden\">\n        <Image\n          src=\"/examples/tasks-light.png\"\n          width={1280}\n          height={998}\n          alt=\"Playground\"\n          className=\"block dark:hidden\"\n        />\n        <Image\n          src=\"/examples/tasks-dark.png\"\n          width={1280}\n          height={998}\n          alt=\"Playground\"\n          className=\"hidden dark:block\"\n        />\n      </div>\n      <div className=\"hidden h-full flex-1 flex-col gap-8 p-8 md:flex\">\n        <div className=\"flex items-center justify-between gap-2\">\n          <div className=\"flex flex-col gap-1\">\n            <h2 className=\"text-2xl font-semibold tracking-tight\">\n              Welcome back!\n            </h2>\n            <p className=\"text-muted-foreground\">\n              Here&apos;s a list of your tasks for this month.\n            </p>\n          </div>\n          <div className=\"flex items-center gap-2\">\n            <UserNav />\n          </div>\n        </div>\n        <DataTable data={tasks} columns={columns} />\n      </div>\n    </>\n  )\n}\n",
      "language": "tsx"
    }
  },
  "timeline-1": {
    "components": {
      "@/registry/view/timeline-1/components/timeline-container": {
        "content": "import { TimeLineData } from \"@/registry/view/timeline-1/constant\"\r\n\r\nimport Timeline from \"./timeline\"\r\n\r\nconst TimelineContainer = () => {\r\n  return <Timeline data={TimeLineData} />\r\n}\r\n\r\nexport default TimelineContainer\r\n",
        "language": "tsx"
      },
      "@/registry/view/timeline-1/components/timeline": {
        "content": "\"use client\"\r\n\r\nimport { useEffect, useRef, useState } from \"react\"\r\nimport { motion, useScroll, useTransform, Variants } from \"framer-motion\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport Container from \"@/components/Container\"\r\n\r\nconst cardVariants: Variants = {\r\n  offscreen: {\r\n    y: 75,\r\n    opacity: 0,\r\n  },\r\n  onscreen: {\r\n    y: 0,\r\n    opacity: 1,\r\n    transition: {\r\n      duration: 0.4,\r\n    },\r\n  },\r\n}\r\n\r\nconst pointVariants: Variants = {\r\n  offscreen: {\r\n    scale: 0,\r\n    opacity: 0,\r\n  },\r\n  onscreen: {\r\n    scale: 1.1,\r\n    opacity: 1,\r\n    transition: {\r\n      duration: 0.3,\r\n    },\r\n  },\r\n}\r\n\r\nconst Timeline = ({ data }: { data: TimeLineProps[] }) => {\r\n  const ref = useRef<HTMLDivElement>(null)\r\n  const containerRef = useRef<HTMLDivElement>(null)\r\n  const [height, setHeight] = useState(0)\r\n  useEffect(() => {\r\n    const updateHeight = () => {\r\n      if (ref.current) {\r\n        const rect = ref.current.getBoundingClientRect()\r\n        setHeight(rect.height)\r\n      }\r\n    }\r\n    updateHeight()\r\n    window.addEventListener(\"resize\", updateHeight)\r\n    return () => window.removeEventListener(\"resize\", updateHeight)\r\n  }, [])\r\n\r\n  const { scrollYProgress } = useScroll({\r\n    target: containerRef,\r\n    offset: [\"start 0%\", \"end 50%\"],\r\n  })\r\n  const heightTransform = useTransform(scrollYProgress, [0, 1], [0, height])\r\n  const opacityTransform = useTransform(scrollYProgress, [0, 0.1], [0, 1])\r\n\r\n  return (\r\n    <div className=\"w-full my-24\" ref={containerRef}>\r\n      <Container>\r\n        <div className=\"mb-10 lg:mb-14\">\r\n          <h2 className=\"text-3xl md:text-4xl mb-4 text-center font-bold\">\r\n            How it works?\r\n          </h2>\r\n          <p className=\"text-muted-foreground text-center text-base md:text-lg\">\r\n            We work in a structured way. Here is how you will be onboard:\r\n          </p>\r\n        </div>\r\n        <div ref={ref} className=\"relative\">\r\n          <div className=\"absolute my-4 left-4 md:left-1/2 top-0 h-full w-[3px] bg-neutral-200 md:-translate-x-1/2\">\r\n            <motion.div\r\n              style={{\r\n                height: heightTransform,\r\n                opacity: opacityTransform,\r\n              }}\r\n              className=\"absolute inset-x-0 top-0 w-full bg-primary rounded-full\"\r\n            />\r\n          </div>\r\n          {data.map((item, index) => {\r\n            const isEven = index % 2 !== 0\r\n            return (\r\n              <motion.div\r\n                key={index}\r\n                initial=\"offscreen\"\r\n                whileInView=\"onscreen\"\r\n                viewport={{ once: true, amount: 0.6 }}\r\n                className={cn(\r\n                  \"flex flex-col md:flex-row items-start mb-16 md:mb-24\",\r\n                  isEven ? \"md:flex-row-reverse\" : \"\"\r\n                )}\r\n              >\r\n                <motion.div\r\n                  variants={pointVariants}\r\n                  viewport={{ once: true }}\r\n                  className=\"absolute my-4 left-1.5 ml-[3px] lg:-ml-[8.5px] md:left-1/2 w-4 h-4 bg-primary rounded-full md:-translate-x-1/2\"\r\n                />\r\n                <motion.div\r\n                  variants={cardVariants}\r\n                  className={cn(\r\n                    \"w-full md:w-5/12 pl-12 md:pl-0 md:h-[70vh] h-[50vh]\",\r\n                    isEven ? \"md:pl-8\" : \"md:pr-8\"\r\n                  )}\r\n                >\r\n                  <h3 className=\"text-sm font-semibold text-primary\">\r\n                    {item.title}\r\n                  </h3>\r\n                  <div>{item.content}</div>\r\n                </motion.div>\r\n              </motion.div>\r\n            )\r\n          })}\r\n        </div>\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\nexport default Timeline\r\n",
        "language": "tsx"
      }
    },
    "constant": {
      "@/registry/view/timeline-1/constant/index": {
        "content": "// Timeline block's data\r\nexport const TimeLineData: TimeLineProps[] = [\r\n  {\r\n    title: \"STEP 1: Discovery & Consultation\",\r\n    content: (\r\n      <div className=\"md:space-y-5 space-y-2\">\r\n        <div>\r\n          <h2 className=\"text-2xl md:text-3xl lg:text-4xl\">\r\n            Deep Dive & Alignment\r\n          </h2>\r\n        </div>\r\n        <div className=\"md:w-[80%] w-full\">\r\n          <p className=\"text-muted-foreground text-sm md:text-base\">\r\n            We initiate with a thorough consultation to understand your unique\r\n            business needs, project goals, and desired outcomes for your\r\n            web/mobile app, MVP, or ERP system.\r\n          </p>\r\n        </div>\r\n      </div>\r\n    ),\r\n  },\r\n  {\r\n    title: \"STEP 2: Planning & Strategy\",\r\n    content: (\r\n      <div className=\"md:space-y-5 space-y-2\">\r\n        <div>\r\n          <h2 className=\"text-2xl md:text-3xl lg:text-4xl\">\r\n            Blueprint for Success\r\n          </h2>\r\n        </div>\r\n        <div className=\"md:w-[80%] w-full\">\r\n          <p className=\"text-muted-foreground text-sm md:text-base\">\r\n            Our expert team meticulously plans the project roadmap, defining\r\n            scope, timelines, budget, and key deliverables for your web/mobile\r\n            app, MVP, or ERP system development.\r\n          </p>\r\n        </div>\r\n      </div>\r\n    ),\r\n  },\r\n  {\r\n    title: \"STEP 3: Design & Development\",\r\n    content: (\r\n      <div className=\"md:space-y-5 space-y-2\">\r\n        <div>\r\n          <h2 className=\"text-2xl md:text-3xl lg:text-4xl\">\r\n            Crafting Your Solution\r\n          </h2>\r\n        </div>\r\n        <div className=\"md:w-[80%] w-full\">\r\n          <p className=\"text-muted-foreground text-sm md:text-base\">\r\n            Our skilled developers and designers bring your vision to life. We\r\n            focus on user-centered design, robust development, and seamless\r\n            integration for your web/mobile app, MVP, or ERP system.\r\n          </p>\r\n        </div>\r\n      </div>\r\n    ),\r\n  },\r\n  {\r\n    title: \"STEP 4: Testing & Quality Assurance\",\r\n    content: (\r\n      <div className=\"md:space-y-5 space-y-2\">\r\n        <div>\r\n          <h2 className=\"text-2xl md:text-3xl lg:text-4xl\">\r\n            Ensuring Excellence\r\n          </h2>\r\n        </div>\r\n        <div className=\"md:w-[80%] w-full\">\r\n          <p className=\"text-muted-foreground text-sm md:text-base\">\r\n            Rigorous testing is conducted at every stage to identify and address\r\n            any issues, ensuring the highest quality and performance for your\r\n            web/mobile app, MVP, or ERP system.\r\n          </p>\r\n        </div>\r\n      </div>\r\n    ),\r\n  },\r\n  {\r\n    title: \"STEP 5: Launch & Beyond\",\r\n    content: (\r\n      <div className=\"md:space-y-5 space-y-2\">\r\n        <div>\r\n          <h2 className=\"text-2xl md:text-3xl lg:text-4xl\">\r\n            Go-Live & Continuous Support\r\n          </h2>\r\n        </div>\r\n        <div className=\"md:w-[80%] w-full\">\r\n          <p className=\"text-muted-foreground text-sm md:text-base\">\r\n            We seamlessly launch your web/mobile app, MVP, or ERP system and\r\n            provide ongoing support, maintenance, and updates to ensure its\r\n            continued success and meet your evolving business needs.\r\n          </p>\r\n        </div>\r\n      </div>\r\n    ),\r\n  },\r\n]\r\n",
        "language": "tsx"
      }
    },
    "lib": {},
    "context": {},
    "hooks": {},
    "types": {},
    "styles": {},
    "layout": {},
    "@/registry/view/timeline-1/page": {
      "content": "import TimelineContainer from \"./components/timeline-container\"\r\n\r\nconst page = () => {\r\n  return <TimelineContainer />\r\n}\r\n\r\nexport default page\r\n",
      "language": "tsx"
    }
  }
}