@mdxui/named 7.0.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/hero/hero.tsx","../../src/shared/scroll-reveal/scroll-reveal.tsx","../../src/lib/utils.ts","../../src/shared/marquee/marquee.tsx","../../src/components/features/features.tsx","../../src/shared/code-window/code-window.tsx","../../src/components/pricing/pricing.tsx","../../src/components/pricing/pricing-tiers.tsx","../../src/components/cta/cta.tsx","../../src/components/faq/faq.tsx","../../src/components/navigation/navigation.tsx","../../src/components/footer/footer.tsx"],"sourcesContent":["'use client'\n\nimport Image from 'next/image'\nimport { HiChevronRight } from 'react-icons/hi'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Marquee } from '../../shared/marquee'\nimport { Button } from '@mdxui/primitives'\nimport { cn } from '../../lib/utils'\n\n/** A src is renderable only when its bytes are guaranteed to resolve — an\n * absolute http(s)/protocol-relative/data URL. App-relative paths\n * (`/images/hero/hero-main.png`) and bare tokens (`\"linear\"`) 404 on the\n * consumer host (the live priya.studio.sb broken hero + marquee), so the hero\n * image is skipped and marquee tokens fall back to text logos. */\nconst isRenderableSrc = (s: string): boolean =>\n /^(https?:)?\\/\\//i.test(s.trim()) || /^data:image\\//i.test(s.trim())\n\n/** Canonical display casing for common brand tokens; otherwise capitalize. */\nconst BRAND_LABELS: Record<string, string> = {\n github: 'GitHub',\n gitlab: 'GitLab',\n linkedin: 'LinkedIn',\n youtube: 'YouTube',\n whatsapp: 'WhatsApp',\n hubspot: 'HubSpot',\n quickbooks: 'QuickBooks',\n typescript: 'TypeScript',\n javascript: 'JavaScript',\n postgresql: 'PostgreSQL',\n mongodb: 'MongoDB',\n graphql: 'GraphQL',\n openai: 'OpenAI',\n}\nconst brandLabel = (s: string): string => {\n const t = s.trim()\n return BRAND_LABELS[t.toLowerCase()] ?? t.charAt(0).toUpperCase() + t.slice(1)\n}\n\nexport interface HeroProps {\n badgeEmoji?: string\n badgeText?: string\n badgeHref?: string\n heading?: string\n description?: string\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost'\n rightImageSrc?: string\n rightImageAlt?: string\n rightImageSizes?: string\n showIconOverlay?: boolean\n marqueeTitle?: string\n marqueeImages?: string[]\n className?: string\n}\n\nexport function Hero({\n badgeEmoji = '',\n badgeText = 'Meet Priya',\n badgeHref = '#',\n heading = 'Your AI Product Manager for GitHub',\n description = 'Priya triages issues, plans sprints, and grooms your backlog automatically. You focus on building.',\n ctaText = 'Get Started',\n ctaHref = '#pricing',\n ctaVariant = 'default',\n // No default: the hero image renders only when the caller supplies a real,\n // resolvable asset. The old `/images/hero/hero-main.png` default 404s on every\n // consumer that doesn't host it (the live priya.studio.sb broken hero). When\n // absent, the hero is single-column, no image (do-design-agency: never use an\n // image hero without a real asset).\n rightImageSrc,\n rightImageAlt = 'Portfolio showcase',\n rightImageSizes = '(max-width: 768px) 100vw, 500px',\n showIconOverlay: _showIconOverlay = true,\n marqueeTitle = 'Tools I work with',\n marqueeImages = Array.from({ length: 12 }).map(\n () => 'https://zapier-images.imgix.net/storage/services/c63f7c57dc0afb733535a5adccce4d01.png?auto=format&fit=crop&ixlib=react-9.10.0&q=50&w=60&h=60&dpr=2'\n ),\n className,\n}: HeroProps) {\n // Render the right-side hero image only when a real, resolvable asset was\n // supplied; otherwise the hero is single-column (no 404 placeholder).\n const hasHeroImage = !!rightImageSrc && isRenderableSrc(rightImageSrc)\n return (\n <section className={cn('relative py-12 md:py-16 px-6 lg:px-12 bg-background', className)}>\n <div className=\"max-w-7xl mx-auto p-0 sm:p-16 rounded-none sm:rounded-3xl md:[background:linear-gradient(180deg,var(--card)_0%,transparent_83.55%)]\">\n {/* Main Hero Container */}\n <div className={cn('grid gap-8 lg:gap-16 items-start mb-16 lg:mb-20', hasHeroImage && 'lg:grid-cols-2')}>\n {/* Left Content */}\n <div className=\"space-y-6 lg:pt-8\">\n {/* Category Badge */}\n <ScrollReveal direction=\"down\" delay={0.1}>\n <div className=\"inline-block\">\n <a\n href={badgeHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2.5 px-4 py-2 rounded-full transition-colors border border-border bg-card\"\n >\n <span className=\"text-base\">{badgeEmoji}</span>\n <p className=\"font-normal text-sm tracking-wide leading-snug text-foreground uppercase\">{badgeText}</p>\n </a>\n </div>\n </ScrollReveal>\n\n {/* Main Heading */}\n <ScrollReveal direction=\"up\" delay={0.2}>\n <h1 className=\"font-halant font-normal text-[clamp(56px,6vw,72px)] leading-tight tracking-tight text-foreground\">\n {heading}\n </h1>\n </ScrollReveal>\n\n {/* Description */}\n <ScrollReveal direction=\"up\" delay={0.3}>\n <p className=\"text-lg leading-relaxed max-w-lg\">{description}</p>\n </ScrollReveal>\n\n {/* CTA Buttons */}\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"flex flex-col sm:flex-row gap-3 pt-4\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>\n {ctaText}\n <HiChevronRight className=\"w-4 h-4\" />\n </a>\n </Button>\n </div>\n </ScrollReveal>\n </div>\n\n {/* Right Images — only when a real asset was supplied. */}\n {hasHeroImage && (\n <ScrollReveal direction=\"right\" delay={0.2}>\n <div className=\"relative flex justify-center lg:justify-end\">\n <div className=\"relative w-full max-w-lg\">\n <div className=\"relative w-full aspect-square\">\n <Image\n src={rightImageSrc as string}\n alt={rightImageAlt}\n fill\n className=\"object-cover object-left-center\"\n // Baseline hero artwork sits on the large --radius-image\n // mask (62d6f04). The scoped envelope defines it; fall back\n // to a generous radius if the envelope isn't loaded.\n style={{ borderRadius: 'var(--radius-image, 1rem)' }}\n priority\n sizes={rightImageSizes}\n />\n </div>\n </div>\n </div>\n </ScrollReveal>\n )}\n </div>\n\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"mt-12\">\n <p className=\"text-base text-muted-foreground text-center\">{marqueeTitle}</p>\n </div>\n <div className=\"relative mt-4 sm:mt-6\">\n <div\n className=\"pointer-events-none absolute inset-y-0 left-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to right, var(--background), transparent)' }}\n />\n <div\n className=\"pointer-events-none absolute inset-y-0 right-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to left, var(--background), transparent)' }}\n />\n <Marquee className=\"relative z-0 py-2 [--gap:1.25rem] sm:[--gap:3rem]\">\n {marqueeImages.map((src, i) =>\n isRenderableSrc(src) ? (\n <img\n key={`${src}-${i}`}\n src={src}\n alt=\"\"\n className=\"h-16 w-16 rounded-xl bg-card p-2 object-contain\"\n />\n ) : (\n <span\n key={`${src}-${i}`}\n className=\"flex h-16 items-center whitespace-nowrap rounded-xl bg-card px-4 text-sm font-semibold tracking-tight text-foreground/70\"\n >\n {brandLabel(src)}\n </span>\n ),\n )}\n </Marquee>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { motion, Variants } from 'motion/react'\nimport { ReactNode } from 'react'\n\nexport interface ScrollRevealProps {\n children: ReactNode\n className?: string\n delay?: number\n direction?: 'up' | 'down' | 'left' | 'right' | 'none'\n duration?: number\n trigger?: 'inView' | 'mount'\n once?: boolean\n margin?: string\n}\n\nconst directionVariants: Record<string, Variants> = {\n up: {\n hidden: { opacity: 0, y: 50 },\n visible: { opacity: 1, y: 0 },\n },\n down: {\n hidden: { opacity: 0, y: -50 },\n visible: { opacity: 1, y: 0 },\n },\n left: {\n hidden: { opacity: 0, x: -50 },\n visible: { opacity: 1, x: 0 },\n },\n right: {\n hidden: { opacity: 0, x: 50 },\n visible: { opacity: 1, x: 0 },\n },\n none: {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n },\n}\n\nexport function ScrollReveal({\n children,\n className,\n delay = 0,\n direction = 'up',\n duration = 0.5,\n trigger = 'inView',\n once = true,\n margin = '-100px',\n}: ScrollRevealProps) {\n if (trigger === 'mount') {\n return (\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n }\n\n return (\n <motion.div\n initial=\"hidden\"\n whileInView=\"visible\"\n viewport={{ once, margin }}\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface MarqueeProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Optional CSS class name to apply custom styles\n */\n className?: string\n /**\n * Whether to reverse the animation direction\n * @default false\n */\n reverse?: boolean\n /**\n * Whether to pause the animation on hover\n * @default false\n */\n pauseOnHover?: boolean\n /**\n * Content to be displayed in the marquee\n */\n children: React.ReactNode\n /**\n * Whether to animate vertically instead of horizontally\n * @default false\n */\n vertical?: boolean\n /**\n * Number of times to repeat the content\n * @default 4\n */\n repeat?: number\n}\n\nexport function Marquee({\n className,\n reverse = false,\n pauseOnHover = false,\n children,\n vertical = false,\n repeat = 4,\n ...props\n}: MarqueeProps) {\n return (\n <div\n {...props}\n className={cn(\n 'group flex [gap:var(--gap)] overflow-hidden p-2 [--duration:40s] [--gap:1rem]',\n {\n 'flex-row': !vertical,\n 'flex-col': vertical,\n },\n className\n )}\n >\n {Array(repeat)\n .fill(0)\n .map((_, i) => (\n <div\n key={i}\n className={cn('flex shrink-0 justify-around [gap:var(--gap)]', {\n 'animate-marquee flex-row': !vertical,\n 'animate-marquee-vertical flex-col': vertical,\n 'group-hover:[animation-play-state:paused]': pauseOnHover,\n '[animation-direction:reverse]': reverse,\n })}\n >\n {children}\n </div>\n ))}\n </div>\n )\n}\n","'use client'\n\nimport { CheckCircle } from 'lucide-react'\nimport { CodeWindow } from '../../shared/code-window'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface FeatureItem {\n text: string\n}\n\nexport interface Feature {\n title: string\n description: string\n items: FeatureItem[]\n code: string\n badge: string\n}\n\nexport interface FeaturesProps {\n heading?: string\n description?: string\n features?: Feature[]\n className?: string\n}\n\nconst defaultFeatures: Feature[] = [\n {\n title: 'Automatic Issue Triage',\n description: 'Every new issue gets analyzed, labeled, prioritized, and assigned to the right person—automatically in seconds.',\n items: [{ text: 'Smart labels based on content' }, { text: 'Priority using impact + urgency' }, { text: 'Auto-assigned to right person' }],\n code: `// New issue arrives\n$.Priya.triage({\n issue: '#347'\n})\n\n// Priya handles everything:\n// → Reads issue content\n// → Applies correct labels\n// → Sets priority level\n// → Assigns to team member\n// → Adds to project board`,\n badge: '01',\n },\n {\n title: 'Sprint Planning',\n description: 'Priya reviews your backlog, calculates what your team can handle, and builds the sprint for you.',\n items: [{ text: 'Capacity based on team velocity' }, { text: 'Best issues selected automatically' }, { text: 'Sprint board ready to go' }],\n code: `// Sprint planning day\n$.Priya.planSprint({\n capacity: 40,\n startDate: 'Monday'\n})\n\n// Priya prepares:\n// → Reviews all backlog items\n// → Calculates team velocity\n// → Selects optimal issues\n// → Organizes sprint board\n// → Notifies team`,\n badge: '02',\n },\n {\n title: 'Backlog Grooming',\n description: 'Your backlog stays healthy automatically—prioritized, organized, and actionable.',\n items: [{ text: 'Always prioritized correctly' }, { text: 'No more zombie issues' }, { text: 'Epics become user stories' }],\n code: `// Runs continuously\n$.Priya.groomBacklog({\n framework: 'RICE'\n})\n\n// Priya maintains:\n// → Applies RICE scoring\n// → Closes stale issues\n// → Breaks down epics\n// → Updates priorities\n// → Tracks dependencies`,\n badge: '03',\n },\n {\n title: 'Status Reports',\n description: 'Weekly progress reports generated and shared automatically. No more manual updates.',\n items: [{ text: 'Automatic progress tracking' }, { text: 'Blockers surfaced early' }, { text: 'Team stays informed' }],\n code: `// Every Friday\n$.Priya.statusReport({\n period: 'week'\n})\n\n// Priya reports:\n// → Issues closed\n// → PRs merged\n// → Sprint progress\n// → Blockers identified\n// → Shares with team`,\n badge: '04',\n },\n]\n\nexport function Features({ heading = 'How It Works', description = \"Priya handles the repetitive work so you can focus on what matters. Here's how she automates your entire product workflow.\", features = defaultFeatures, className }: FeaturesProps) {\n return (\n <section id=\"features\" className={cn('flex justify-center items-center pb-0 md:pb-10 bg-background', className)}>\n <div className=\"features-gradient flex flex-col items-center w-full relative overflow-visible gap-16 h-min max-w-[1400px] py-10 sm:py-20\" style={{ borderRadius: 'var(--radius-section, 36px)' }}>\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center w-full px-4 md:px-6 space-y-4\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground\">{heading}</h2>\n <p className=\"text-base md:text-lg text-muted-foreground max-w-2xl mx-auto\">{description}</p>\n </div>\n </ScrollReveal>\n\n <div className=\"w-full px-4 lg:px-18 space-y-10\">\n {features.map((feature, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={index * 0.1}>\n <div className=\"grid md:grid-cols-2 overflow-hidden bg-card w-full rounded-3xl feature-card-shadow opacity-100 border border-border\">\n <div className=\"flex flex-col px-4 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20\">\n <div className=\"mb-4\">\n <span className=\"inline-flex size-10 items-center justify-center rounded-lg font-mono text-sm font-medium bg-card dark:bg-muted border border-border dark:border-border text-foreground\">\n {feature.badge}\n </span>\n </div>\n <h3 className=\"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl text-foreground\">{feature.title}</h3>\n <div className=\"mb-8 text-sm sm:mb-10 md:text-base text-muted-foreground\">{feature.description}</div>\n <ul className=\"space-y-2 sm:space-y-3\">\n {feature.items.map((item, itemIndex) => (\n <li key={itemIndex} className=\"flex gap-x-3 items-start\">\n <CheckCircle className=\"mt-1 size-4 shrink-0 text-primary\" />\n <p className=\"text-sm md:text-base text-foreground\">{item.text}</p>\n </li>\n ))}\n </ul>\n </div>\n <div className=\"relative order-last md:order-last h-96 md:h-[500px] p-4 md:p-8 lg:p-10\">\n <CodeWindow code={feature.code} />\n </div>\n </div>\n </ScrollReveal>\n ))}\n </div>\n </div>\n </section>\n )\n}\n","import React from 'react'\n\nexport interface CodeWindowProps {\n code: string\n className?: string\n}\n\nexport function CodeWindow({ code, className }: CodeWindowProps) {\n const highlightCode = (code: string) => {\n const lines = code.split('\\n')\n const result: React.ReactElement[] = []\n let prevWasComment = false\n let prevWasCode = false\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n const isComment = line.trim().startsWith('//')\n const isEmpty = line.trim() === ''\n const isCode = !isComment && !isEmpty\n\n if (isComment && prevWasCode) {\n result.push(<div key={`space-before-${i}`} className=\"h-5\"></div>)\n }\n\n if (prevWasComment && isCode) {\n result.push(<div key={`space-after-${i}`} className=\"h-5\"></div>)\n }\n\n if (isEmpty) {\n result.push(<div key={i} className=\"h-5\"></div>)\n prevWasComment = false\n prevWasCode = false\n continue\n }\n\n if (isComment) {\n result.push(\n <div key={i} className=\"text-[#7d8590]\">\n {line}\n </div>\n )\n prevWasComment = true\n prevWasCode = false\n continue\n }\n\n let highlighted = line\n\n // Function names and properties with dots\n highlighted = highlighted.replace(\n /\\$\\.(\\w+)\\.(\\w+)/g,\n '<span class=\"text-[#79c0ff]\">$</span>.<span class=\"text-[#d2a8ff]\">$1</span>.<span class=\"text-[#ffa657]\">$2</span>'\n )\n\n // Object properties\n highlighted = highlighted.replace(/(\\w+):/g, '<span class=\"text-[#79c0ff]\">$1</span>:')\n\n // Strings\n highlighted = highlighted.replace(/'([^']*)'/g, \"<span class=\\\"text-[#a5d6ff]\\\">'$1'</span>\")\n\n // Numbers\n highlighted = highlighted.replace(/\\b(\\d+)\\b/g, '<span class=\"text-[#79c0ff]\">$1</span>')\n\n result.push(<div key={i} dangerouslySetInnerHTML={{ __html: highlighted }} />)\n\n prevWasComment = false\n prevWasCode = true\n }\n\n return result\n }\n\n return (\n <div className={`w-full h-full bg-[#0d1117] rounded-lg overflow-hidden ${className ?? ''}`}>\n <div className=\"flex-1 overflow-auto p-6 lg:p-8\">\n <pre className=\"text-sm lg:text-sm leading-relaxed font-mono text-[#e6edf3]\">{highlightCode(code)}</pre>\n </div>\n </div>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Button } from '@mdxui/primitives'\nimport { cn } from '../../lib/utils'\n\nexport interface PricingFeature {\n text: string\n}\n\nexport interface PricingProps {\n heading?: string\n subheading?: string\n price?: string\n priceUnit?: string\n trialText?: string\n ctaText?: string\n ctaHref?: string\n featuresHeading?: string\n features?: PricingFeature[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultFeatures: PricingFeature[] = [\n { text: 'Automated backups' },\n { text: '24/7 support' },\n { text: 'Unlimited projects' },\n { text: 'Unlimited users' },\n { text: 'Custom domain' },\n { text: 'Custom branding' },\n { text: 'Advanced analytics' },\n { text: 'Custom permissions' },\n { text: 'Advanced reports' },\n]\n\nexport function Pricing({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n price = '$16',\n priceUnit = '/ month',\n trialText = 'With a 7-day free trial',\n ctaText = 'Get Started',\n ctaHref = '#contact',\n featuresHeading = \"What's included\",\n features = defaultFeatures,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.2}>\n <div className=\"bg-card mx-auto flex w-full md:max-w-md lg:max-w-3xl flex-col rounded-3xl border border-border feature-card-shadow p-6 md:p-8 px-6\">\n <div className=\"text-center\">\n <div className=\"flex justify-start sm:justify-center items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{priceUnit}</span>\n </div>\n {trialText && <p className=\"text-left sm:text-center text-muted-foreground mt-3 text-sm\">{trialText}</p>}\n <Button asChild variant=\"default\" className=\"mt-5 w-full md:w-64\">\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <p className=\"text-left sm:text-center text-lg font-semibold text-foreground mb-4\">{featuresHeading}</p>\n <ul className=\"grid gap-y-3 gap-x-6 md:grid-cols-2 lg:grid-cols-3 \">\n {features.map((feature, index) => (\n <li key={index} className=\"flex items-start text-left\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </ScrollReveal>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.3}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport Image from 'next/image'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Button } from '@mdxui/primitives'\nimport { cn } from '../../lib/utils'\n\nexport interface PricingTierFeature {\n text: string\n}\n\nexport interface PricingTier {\n title: string\n description: string\n price: string\n priceUnit: string\n ctaText: string\n ctaVariant?: 'primary' | 'secondary'\n ctaHref?: string\n features: PricingTierFeature[]\n image?: string\n imageAlt?: string\n featured?: boolean\n}\n\nexport interface PricingTiersProps {\n heading?: string\n subheading?: string\n tiers?: PricingTier[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultTiers: PricingTier[] = [\n {\n title: 'Business',\n description: 'For growing teams that need more power and priority support.',\n price: '$299',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'primary',\n ctaHref: '#contact',\n features: [\n { text: 'Unlimited repositories' },\n { text: 'Unlimited issues & projects' },\n { text: 'Unlimited team members' },\n { text: 'Priority support' },\n { text: 'Custom workflows' },\n { text: 'Advanced analytics' },\n ],\n image: '/images/hero/hero-main.png',\n imageAlt: 'Business Plan',\n featured: true,\n },\n {\n title: 'Team',\n description: 'Perfect for small teams getting started with AI product management.',\n price: '$99',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'secondary',\n ctaHref: '#contact',\n features: [{ text: 'Up to 10 repositories' }, { text: 'Unlimited issues & projects' }, { text: 'Unlimited team members' }, { text: 'Email support' }],\n featured: false,\n },\n]\n\nexport function PricingTiers({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n tiers = defaultTiers,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingTiersProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ul className=\"grid gap-6 lg:grid-cols-3 lg:items-stretch\">\n {tiers.map((tier, index) => (\n <li key={index} className={tier.featured ? 'lg:col-span-2 flex' : 'lg:col-span-1 flex'}>\n <ScrollReveal direction=\"up\" delay={0.2 + index * 0.1} className=\"w-full\">\n <div\n className={\n tier.featured\n ? 'bg-card flex w-full h-full flex-col-reverse rounded-3xl border border-border feature-card-shadow md:flex-row'\n : 'bg-card w-full h-full rounded-3xl border border-border feature-card-shadow p-6 md:p-8'\n }\n >\n {tier.featured ? (\n <>\n {tier.image && (\n <div className=\"hidden xl:block xl:w-1/2 pl-6 md:pl-8 py-6 md:py-8\">\n <div className=\"h-full rounded-lg overflow-hidden relative min-h-96\">\n <Image src={tier.image} alt={tier.imageAlt || tier.title} fill className=\"object-cover\" sizes=\"(max-width: 1280px) 0vw, 50vw\" />\n </div>\n </div>\n )}\n\n <div className=\"flex flex-col p-6 md:p-8 xl:w-1/2\">\n <div className=\"flex-1\">\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </>\n ) : (\n <div className=\"flex h-full flex-col\">\n <div>\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n )}\n </div>\n </ScrollReveal>\n </li>\n ))}\n </ul>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.4}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { HiArrowRight } from 'react-icons/hi'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Button } from '@mdxui/primitives'\nimport { cn } from '../../lib/utils'\n\nexport interface CTAButton {\n text: string\n href: string\n variant?: 'primary' | 'secondary'\n showArrow?: boolean\n}\n\nexport interface CTAProps {\n heading?: string\n subheading?: string\n buttons?: CTAButton[]\n /** @deprecated theme-driven now; ignored */\n backgroundColor?: 'light' | 'blue' | 'green' | 'purple' | 'orange'\n className?: string\n}\n\nconst defaultButtons: CTAButton[] = [\n {\n text: 'Get Started',\n href: '#pricing',\n variant: 'primary',\n showArrow: true,\n },\n]\n\nexport function CTA({ heading = 'Ready to Save 15 Hours Per Week?', subheading = 'Setup with Github – takes 5 minutes.', buttons = defaultButtons, backgroundColor: _backgroundColor, className }: CTAProps) {\n const bgClass = 'bg-card'\n\n return (\n <section className={cn(`py-20 md:py-32 px-4 md:px-6 ${bgClass}`, className)}>\n <div className=\"max-w-3xl mx-auto text-center\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"space-y-6\">\n <h2 className=\"font-halant font-normal text-foreground text-[clamp(32px,5vw,52px)] leading-tight tracking-tight\">{heading}</h2>\n <p className=\"max-w-2xl mx-auto text-[clamp(16px,2vw,18px)] leading-relaxed text-muted-foreground\">{subheading}</p>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center items-center pt-4\">\n {buttons.map((button, index) => (\n <Button key={index} asChild variant={button.variant === 'primary' ? 'default' : 'secondary'}>\n <a href={button.href}>\n {button.text}\n {button.showArrow && <HiArrowRight className=\"w-4 h-4\" />}\n </a>\n </Button>\n ))}\n </div>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@mdxui/primitives'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface FAQItem {\n question: string\n answer: string\n}\n\nexport interface FAQProps {\n heading?: string\n faqs?: FAQItem[]\n backgroundColor?: string\n className?: string\n}\n\nconst defaultFaqs: FAQItem[] = [\n {\n question: 'How do I get started?',\n answer: 'Choose your plan, connect your GitHub account, and Priya starts working. Setup takes 5 minutes.',\n },\n {\n question: 'Does it work with private repos?',\n answer: 'Yes, both plans work with private and public repositories.',\n },\n {\n question: 'What if it makes a mistake?',\n answer: 'You can override any decision. Priya learns from your corrections.',\n },\n {\n question: 'Can I switch plans later?',\n answer: 'Yes, upgrade or downgrade anytime. Changes take effect immediately.',\n },\n {\n question: 'What about Enterprise?',\n answer: \"Contact us for custom solutions tailored to your organization's needs, including dedicated support, custom workflows, and enterprise-grade SLAs.\",\n },\n {\n question: 'Is Priya SOC 2 and HIPAA compliant?',\n answer: 'Yes, Priya is SOC 2 Type II certified and HIPAA compliant, ensuring your data is handled with the highest security and privacy standards.',\n },\n]\n\nexport function FAQ({ heading = 'FAQs', faqs = defaultFaqs, backgroundColor = 'bg-background', className }: FAQProps) {\n return (\n <section id=\"faq\" className={cn(`py-20 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-4xl mx-auto\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center mb-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n </div>\n </ScrollReveal>\n\n <Accordion type=\"single\" collapsible className=\"space-y-4\">\n {faqs.map((faq, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={0.15 + index * 0.05}>\n <AccordionItem value={`item-${index}`} className=\"rounded-xl px-4 sm:px-6 border border-border bg-card shadow-sm\">\n <AccordionTrigger className=\"hover:no-underline py-5 text-base font-medium text-foreground\">{faq.question}</AccordionTrigger>\n <AccordionContent className=\"pb-5 text-sm text-muted-foreground leading-relaxed\">{faq.answer}</AccordionContent>\n </AccordionItem>\n </ScrollReveal>\n ))}\n </Accordion>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { useState, useEffect } from 'react'\nimport Link from 'next/link'\nimport { Menu, X } from 'lucide-react'\nimport { motion, AnimatePresence } from 'motion/react'\nimport { cn } from '../../lib/utils'\nimport { Button } from '@mdxui/primitives'\n\nexport interface NavLink {\n label: string\n href: string\n}\n\nexport interface NavigationProps {\n logo?: string | React.ReactNode\n logoHref?: string\n links?: NavLink[]\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive'\n className?: string\n maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full'\n sticky?: boolean\n showScrollEffect?: boolean\n}\n\nexport function Navigation({\n logo = 'Priya',\n logoHref = '/',\n links = [\n { label: 'Features', href: '#features' },\n { label: 'Pricing', href: '#pricing' },\n { label: 'FAQ', href: '#faq' },\n ],\n ctaText = 'Hire me',\n ctaHref = '#pricing',\n ctaVariant = 'secondary',\n className,\n maxWidth = '7xl',\n sticky = true,\n showScrollEffect = true,\n}: NavigationProps) {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [isScrolled, setIsScrolled] = useState(false)\n\n useEffect(() => {\n if (!showScrollEffect) return\n\n const handleScroll = () => {\n setIsScrolled(window.scrollY > 10)\n }\n\n window.addEventListener('scroll', handleScroll)\n return () => window.removeEventListener('scroll', handleScroll)\n }, [showScrollEffect])\n\n const maxWidthClass = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n '3xl': 'max-w-3xl',\n '4xl': 'max-w-4xl',\n '5xl': 'max-w-5xl',\n '6xl': 'max-w-6xl',\n '7xl': 'max-w-7xl',\n full: 'max-w-full',\n }[maxWidth]\n\n return (\n <nav\n className={cn(\n 'z-50 w-full transition-all duration-300',\n sticky && 'sticky top-0',\n showScrollEffect && isScrolled ? 'bg-background/95 backdrop-blur-md' : 'bg-background',\n className\n )}\n >\n <div className={cn(maxWidthClass, 'mx-auto px-6 lg:px-12 py-4')}>\n <div className=\"flex items-center justify-between\">\n {/* Logo */}\n <div className=\"flex items-center\">\n <Link href={logoHref} className=\"flex items-center\">\n {typeof logo === 'string' ? <span className=\"text-3xl font-base text-foreground\">{logo}</span> : logo}\n </Link>\n </div>\n\n {/* Desktop Navigation */}\n {links && links.length > 0 && (\n <div className=\"hidden lg:flex items-center gap-8\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"text-sm text-foreground hover:opacity-60 transition-opacity\">\n {link.label}\n </a>\n ))}\n </div>\n )}\n\n {/* CTA Button */}\n {ctaText && ctaHref && (\n <div className=\"hidden lg:flex items-center\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n )}\n\n {/* Mobile Menu Button */}\n <button className=\"lg:hidden p-2 text-foreground\" onClick={() => setMobileMenuOpen(!mobileMenuOpen)} aria-label=\"Toggle menu\">\n {mobileMenuOpen ? <X className=\"w-6 h-6\" /> : <Menu className=\"w-6 h-6\" />}\n </button>\n </div>\n\n {/* Mobile Menu */}\n <AnimatePresence>\n {mobileMenuOpen && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: 'auto' }}\n exit={{ opacity: 0, height: 0 }}\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className=\"lg:hidden overflow-hidden\"\n >\n <div className=\"mt-4 py-4 rounded-xl bg-card\">\n <div className=\"flex flex-col gap-4 px-6\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"py-2 text-foreground hover:opacity-70 transition-colors\" onClick={() => setMobileMenuOpen(false)}>\n {link.label}\n </a>\n ))}\n {ctaText && ctaHref && (\n <Button asChild variant={ctaVariant} className=\"mt-2\" onClick={() => setMobileMenuOpen(false)}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n )}\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </nav>\n )\n}\n","'use client'\n\nimport Link from 'next/link'\nimport { FaGithub, FaXTwitter } from 'react-icons/fa6'\nimport { SiNpm } from 'react-icons/si'\nimport { FaArrowRight } from 'react-icons/fa6'\nimport { Input } from '@mdxui/primitives'\nimport type { IconType } from 'react-icons'\nimport { cn } from '../../lib/utils'\n\nexport interface SocialLink {\n href: string\n icon: IconType\n label: string\n}\n\nexport interface QuickLink {\n href: string\n label: string\n}\n\nexport interface FooterProps {\n logo?: string\n description?: string\n socialLinks?: SocialLink[]\n quickLinks?: QuickLink[]\n contactTitle?: string\n emailPlaceholder?: string\n onEmailSubmit?: (email: string) => void\n copyrightText?: string\n showThemeToggle?: boolean\n className?: string\n}\n\nexport function Footer({\n logo = 'Priya',\n description = 'Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.',\n socialLinks = [\n { href: 'https://github.com', icon: FaGithub, label: 'GitHub' },\n { href: 'https://npmjs.com', icon: SiNpm, label: 'npm' },\n { href: 'https://twitter.com', icon: FaXTwitter, label: 'X (Twitter)' },\n ],\n quickLinks = [\n { href: '/#pricing', label: 'Pricing' },\n { href: '/#features', label: 'How it works' },\n { href: '/contact', label: 'Contact' },\n ],\n contactTitle = 'Stay in touch',\n emailPlaceholder = 'Enter your email',\n onEmailSubmit,\n copyrightText = 'Priya.do © 2025. All rights reserved.',\n className,\n}: FooterProps) {\n const handleEmailSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const formData = new FormData(form)\n const email = formData.get('email') as string\n if (onEmailSubmit) {\n onEmailSubmit(email)\n }\n form.reset()\n }\n\n return (\n <footer className={cn('py-16 px-6 lg:px-12 bg-card text-card-foreground', className)}>\n <div className=\"max-w-7xl mx-auto\">\n <div className=\"grid md:grid-cols-5 gap-12 mb-12\">\n {/* Logo & Description */}\n <div className=\"md:col-span-2\">\n <Link href=\"/\" className=\"inline-block mb-4\">\n <div className=\"text-3xl font-base text-card-foreground\">{logo}</div>\n </Link>\n <p className=\"max-w-md text-sm leading-relaxed text-muted-foreground mb-6\">{description}</p>\n\n {/* Social Icons */}\n <div className=\"flex items-center gap-4\">\n {socialLinks.map((link) => {\n const Icon = link.icon\n return (\n <Link\n key={link.label}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-muted-foreground transition-colors hover:text-card-foreground\"\n aria-label={link.label}\n >\n <Icon className=\"w-5 h-5\" />\n </Link>\n )\n })}\n </div>\n </div>\n\n {/* Quick Links */}\n <div>\n <h3 className=\"font-semibold text-base mb-4 text-card-foreground\">Quick Links</h3>\n <ul className=\"space-y-2\">\n {quickLinks.map((link) => (\n <li key={link.label}>\n <Link href={link.href} className=\"text-sm text-muted-foreground transition-colors hover:text-card-foreground\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n\n {/* Contact Us */}\n <div className=\"w-full md:col-span-2 md:flex md:flex-col md:items-end\">\n <div className=\"w-full md:max-w-sm\">\n <h3 className=\"font-semibold text-base mb-4 text-card-foreground\">{contactTitle}</h3>\n <form onSubmit={handleEmailSubmit} className=\"relative\">\n <Input\n type=\"email\"\n name=\"email\"\n placeholder={emailPlaceholder}\n required\n className=\"w-full bg-muted border-border text-card-foreground placeholder:text-muted-foreground pr-12\"\n />\n <button\n type=\"submit\"\n className=\"absolute right-1 top-1/2 -translate-y-1/2 bg-card text-foreground hover:bg-card active:bg-card active:text-card-foreground px-3 py-3 rounded-md transition-colors\"\n aria-label=\"Submit email\"\n >\n <FaArrowRight className=\"w-3 h-3\" />\n </button>\n </form>\n </div>\n </div>\n </div>\n\n {/* Bottom Bar */}\n <div className=\"border-t border-border pt-8\">\n <div className=\"flex flex-col md:flex-row justify-between items-center gap-4\">\n <p className=\"text-sm text-muted-foreground\">{copyrightText}</p>\n </div>\n </div>\n </div>\n </footer>\n )\n}\n"],"mappings":";AAEA,OAAO,WAAW;AAClB,SAAS,sBAAsB;;;ACD/B,SAAS,cAAwB;AAiD3B;AAnCN,IAAM,oBAA8C;AAAA,EAClD,IAAI;AAAA,IACF,QAAQ,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,IAC5B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC9B;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,EAAE,SAAS,GAAG,GAAG,IAAI;AAAA,IAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC9B;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,EAAE,SAAS,GAAG,GAAG,IAAI;AAAA,IAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC9B;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,IAC5B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC9B;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,EAAE,SAAS,EAAE;AAAA,IACrB,SAAS,EAAE,SAAS,EAAE;AAAA,EACxB;AACF;AAEO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AACX,GAAsB;AACpB,MAAI,YAAY,SAAS;AACvB,WACE;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,SAAQ;AAAA,QACR,SAAQ;AAAA,QACR,YAAY,EAAE,UAAU,OAAO,MAAM,UAAU;AAAA,QAC/C,UAAU,kBAAkB,SAAS;AAAA,QACrC;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACC,SAAQ;AAAA,MACR,aAAY;AAAA,MACZ,UAAU,EAAE,MAAM,OAAO;AAAA,MACzB,YAAY,EAAE,UAAU,OAAO,MAAM,UAAU;AAAA,MAC/C,UAAU,kBAAkB,SAAS;AAAA,MACrC;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;;;AC3EA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACqDU,gBAAAA,YAAA;AAxBH,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,EACV,eAAe;AAAA,EACf;AAAA,EACA,WAAW;AAAA,EACX,SAAS;AAAA,EACT,GAAG;AACL,GAAiB;AACf,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,UACE,YAAY,CAAC;AAAA,UACb,YAAY;AAAA,QACd;AAAA,QACA;AAAA,MACF;AAAA,MAEC,gBAAM,MAAM,EACV,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,MACP,gBAAAA;AAAA,QAAC;AAAA;AAAA,UAEC,WAAW,GAAG,iDAAiD;AAAA,YAC7D,4BAA4B,CAAC;AAAA,YAC7B,qCAAqC;AAAA,YACrC,6CAA6C;AAAA,YAC7C,iCAAiC;AAAA,UACnC,CAAC;AAAA,UAEA;AAAA;AAAA,QARI;AAAA,MASP,CACD;AAAA;AAAA,EACL;AAEJ;;;AHlEA,SAAS,cAAc;AAuFP,SAME,OAAAC,MANF;AA/EhB,IAAM,kBAAkB,CAAC,MACvB,mBAAmB,KAAK,EAAE,KAAK,CAAC,KAAK,iBAAiB,KAAK,EAAE,KAAK,CAAC;AAGrE,IAAM,eAAuC;AAAA,EAC3C,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AACA,IAAM,aAAa,CAAC,MAAsB;AACxC,QAAM,IAAI,EAAE,KAAK;AACjB,SAAO,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC;AAC/E;AAoBO,SAAS,KAAK;AAAA,EACnB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb;AAAA,EACA,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,iBAAiB,mBAAmB;AAAA,EACpC,eAAe;AAAA,EACf,gBAAgB,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE;AAAA,IACzC,MAAM;AAAA,EACR;AAAA,EACA;AACF,GAAc;AAGZ,QAAM,eAAe,CAAC,CAAC,iBAAiB,gBAAgB,aAAa;AACrE,SACE,gBAAAA,KAAC,aAAQ,WAAW,GAAG,uDAAuD,SAAS,GACrF,+BAAC,SAAI,WAAU,uIAEb;AAAA,yBAAC,SAAI,WAAW,GAAG,mDAAmD,gBAAgB,gBAAgB,GAEpG;AAAA,2BAAC,SAAI,WAAU,qBAEb;AAAA,wBAAAA,KAAC,gBAAa,WAAU,QAAO,OAAO,KACpC,0BAAAA,KAAC,SAAI,WAAU,gBACb;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,WAAU;AAAA,YAEV;AAAA,8BAAAA,KAAC,UAAK,WAAU,aAAa,sBAAW;AAAA,cACxC,gBAAAA,KAAC,OAAE,WAAU,4EAA4E,qBAAU;AAAA;AAAA;AAAA,QACrG,GACF,GACF;AAAA,QAGA,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAA,KAAC,QAAG,WAAU,oGACX,mBACH,GACF;AAAA,QAGA,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAA,KAAC,OAAE,WAAU,oCAAoC,uBAAY,GAC/D;AAAA,QAGA,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAAK,SAAQ,SAC/C,0BAAAA,KAAC,SAAI,WAAU,wCACb,0BAAAA,KAAC,UAAO,SAAO,MAAC,SAAS,YACvB,+BAAC,OAAE,MAAM,SACN;AAAA;AAAA,UACD,gBAAAA,KAAC,kBAAe,WAAU,WAAU;AAAA,WACtC,GACF,GACF,GACF;AAAA,SACF;AAAA,MAGC,gBACC,gBAAAA,KAAC,gBAAa,WAAU,SAAQ,OAAO,KACrC,0BAAAA,KAAC,SAAI,WAAU,+CACb,0BAAAA,KAAC,SAAI,WAAU,4BACb,0BAAAA,KAAC,SAAI,WAAU,iCACb,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,UACL,KAAK;AAAA,UACL,MAAI;AAAA,UACJ,WAAU;AAAA,UAIV,OAAO,EAAE,cAAc,4BAA4B;AAAA,UACnD,UAAQ;AAAA,UACR,OAAO;AAAA;AAAA,MACT,GACF,GACF,GACF,GACF;AAAA,OAEJ;AAAA,IAEA,qBAAC,gBAAa,WAAU,MAAK,OAAO,KAAK,SAAQ,SAC/C;AAAA,sBAAAA,KAAC,SAAI,WAAU,SACb,0BAAAA,KAAC,OAAE,WAAU,+CAA+C,wBAAa,GAC3E;AAAA,MACA,qBAAC,SAAI,WAAU,yBACb;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,YAAY,4DAA4D;AAAA;AAAA,QACnF;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,YAAY,2DAA2D;AAAA;AAAA,QAClF;AAAA,QACA,gBAAAA,KAAC,WAAQ,WAAU,qDAChB,wBAAc;AAAA,UAAI,CAAC,KAAK,MACvB,gBAAgB,GAAG,IACjB,gBAAAA;AAAA,YAAC;AAAA;AAAA,cAEC;AAAA,cACA,KAAI;AAAA,cACJ,WAAU;AAAA;AAAA,YAHL,GAAG,GAAG,IAAI,CAAC;AAAA,UAIlB,IAEA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cAEC,WAAU;AAAA,cAET,qBAAW,GAAG;AAAA;AAAA,YAHV,GAAG,GAAG,IAAI,CAAC;AAAA,UAIlB;AAAA,QAEJ,GACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;;;AI9LA,SAAS,mBAAmB;;;ACmBR,gBAAAC,YAAA;AAdb,SAAS,WAAW,EAAE,MAAM,UAAU,GAAoB;AAC/D,QAAM,gBAAgB,CAACC,UAAiB;AACtC,UAAM,QAAQA,MAAK,MAAM,IAAI;AAC7B,UAAM,SAA+B,CAAC;AACtC,QAAI,iBAAiB;AACrB,QAAI,cAAc;AAElB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,YAAY,KAAK,KAAK,EAAE,WAAW,IAAI;AAC7C,YAAM,UAAU,KAAK,KAAK,MAAM;AAChC,YAAM,SAAS,CAAC,aAAa,CAAC;AAE9B,UAAI,aAAa,aAAa;AAC5B,eAAO,KAAK,gBAAAD,KAAC,SAA8B,WAAU,SAA/B,gBAAgB,CAAC,EAAoB,CAAM;AAAA,MACnE;AAEA,UAAI,kBAAkB,QAAQ;AAC5B,eAAO,KAAK,gBAAAA,KAAC,SAA6B,WAAU,SAA9B,eAAe,CAAC,EAAoB,CAAM;AAAA,MAClE;AAEA,UAAI,SAAS;AACX,eAAO,KAAK,gBAAAA,KAAC,SAAY,WAAU,SAAb,CAAmB,CAAM;AAC/C,yBAAiB;AACjB,sBAAc;AACd;AAAA,MACF;AAEA,UAAI,WAAW;AACb,eAAO;AAAA,UACL,gBAAAA,KAAC,SAAY,WAAU,kBACpB,kBADO,CAEV;AAAA,QACF;AACA,yBAAiB;AACjB,sBAAc;AACd;AAAA,MACF;AAEA,UAAI,cAAc;AAGlB,oBAAc,YAAY;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAGA,oBAAc,YAAY,QAAQ,WAAW,yCAAyC;AAGtF,oBAAc,YAAY,QAAQ,cAAc,0CAA4C;AAG5F,oBAAc,YAAY,QAAQ,cAAc,wCAAwC;AAExF,aAAO,KAAK,gBAAAA,KAAC,SAAY,yBAAyB,EAAE,QAAQ,YAAY,KAAlD,CAAqD,CAAE;AAE7E,uBAAiB;AACjB,oBAAc;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA,KAAC,SAAI,WAAW,yDAAyD,aAAa,EAAE,IACtF,0BAAAA,KAAC,SAAI,WAAU,mCACb,0BAAAA,KAAC,SAAI,WAAU,+DAA+D,wBAAc,IAAI,GAAE,GACpG,GACF;AAEJ;;;ADwBU,SACE,OAAAE,MADF,QAAAC,aAAA;AA7EV,IAAM,kBAA6B;AAAA,EACjC;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO,CAAC,EAAE,MAAM,gCAAgC,GAAG,EAAE,MAAM,kCAAkC,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAAA,IACzI,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO,CAAC,EAAE,MAAM,kCAAkC,GAAG,EAAE,MAAM,qCAAqC,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAAA,IACzI,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO,CAAC,EAAE,MAAM,+BAA+B,GAAG,EAAE,MAAM,wBAAwB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAAA,IAC1H,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO,CAAC,EAAE,MAAM,8BAA8B,GAAG,EAAE,MAAM,0BAA0B,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAAA,IACrH,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWN,OAAO;AAAA,EACT;AACF;AAEO,SAAS,SAAS,EAAE,UAAU,gBAAgB,cAAc,8HAA8H,WAAW,iBAAiB,UAAU,GAAkB;AACvP,SACE,gBAAAD,KAAC,aAAQ,IAAG,YAAW,WAAW,GAAG,gEAAgE,SAAS,GAC5G,0BAAAC,MAAC,SAAI,WAAU,4HAA2H,OAAO,EAAE,cAAc,8BAA8B,GAC7L;AAAA,oBAAAD,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAC,MAAC,SAAI,WAAU,6CACb;AAAA,sBAAAD,KAAC,QAAG,WAAU,qFAAqF,mBAAQ;AAAA,MAC3G,gBAAAA,KAAC,OAAE,WAAU,gEAAgE,uBAAY;AAAA,OAC3F,GACF;AAAA,IAEA,gBAAAA,KAAC,SAAI,WAAU,mCACZ,mBAAS,IAAI,CAAC,SAAS,UACtB,gBAAAA,KAAC,gBAAyB,WAAU,MAAK,OAAO,QAAQ,KACtD,0BAAAC,MAAC,SAAI,WAAU,uHACb;AAAA,sBAAAA,MAAC,SAAI,WAAU,8DACb;AAAA,wBAAAD,KAAC,SAAI,WAAU,QACb,0BAAAA,KAAC,UAAK,WAAU,0KACb,kBAAQ,OACX,GACF;AAAA,QACA,gBAAAA,KAAC,QAAG,WAAU,iEAAiE,kBAAQ,OAAM;AAAA,QAC7F,gBAAAA,KAAC,SAAI,WAAU,4DAA4D,kBAAQ,aAAY;AAAA,QAC/F,gBAAAA,KAAC,QAAG,WAAU,0BACX,kBAAQ,MAAM,IAAI,CAAC,MAAM,cACxB,gBAAAC,MAAC,QAAmB,WAAU,4BAC5B;AAAA,0BAAAD,KAAC,eAAY,WAAU,qCAAoC;AAAA,UAC3D,gBAAAA,KAAC,OAAE,WAAU,wCAAwC,eAAK,MAAK;AAAA,aAFxD,SAGT,CACD,GACH;AAAA,SACF;AAAA,MACA,gBAAAA,KAAC,SAAI,WAAU,0EACb,0BAAAA,KAAC,cAAW,MAAM,QAAQ,MAAM,GAClC;AAAA,OACF,KAtBiB,KAuBnB,CACD,GACH;AAAA,KACF,GACF;AAEJ;;;AE1IA,SAAS,aAAa;AAEtB,SAAS,UAAAE,eAAc;AAoDb,SACE,OAAAC,MADF,QAAAC,aAAA;AA9BV,IAAMC,mBAAoC;AAAA,EACxC,EAAE,MAAM,oBAAoB;AAAA,EAC5B,EAAE,MAAM,eAAe;AAAA,EACvB,EAAE,MAAM,qBAAqB;AAAA,EAC7B,EAAE,MAAM,kBAAkB;AAAA,EAC1B,EAAE,MAAM,gBAAgB;AAAA,EACxB,EAAE,MAAM,kBAAkB;AAAA,EAC1B,EAAE,MAAM,qBAAqB;AAAA,EAC7B,EAAE,MAAM,qBAAqB;AAAA,EAC7B,EAAE,MAAM,mBAAmB;AAC7B;AAEO,SAAS,QAAQ;AAAA,EACtB,UAAU;AAAA,EACV,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,WAAWA;AAAA,EACX,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf;AACF,GAAiB;AACf,SACE,gBAAAF,KAAC,aAAQ,IAAG,WAAU,WAAW,GAAG,iCAAiC,eAAe,IAAI,SAAS,GAC/F,0BAAAC,MAAC,SAAI,WAAU,8EACb;AAAA,oBAAAD,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAC,MAAC,SAAI,WAAU,8BACb;AAAA,sBAAAD,KAAC,QAAG,WAAU,0FAA0F,mBAAQ;AAAA,MAChH,gBAAAA,KAAC,OAAE,WAAU,qDAAqD,sBAAW;AAAA,OAC/E,GACF;AAAA,IAEA,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAC,MAAC,SAAI,WAAU,sIACb;AAAA,sBAAAA,MAAC,SAAI,WAAU,eACb;AAAA,wBAAAA,MAAC,SAAI,WAAU,uDACb;AAAA,0BAAAD,KAAC,UAAK,WAAU,0CAA0C,iBAAM;AAAA,UAChE,gBAAAA,KAAC,UAAK,WAAU,sCAAsC,qBAAU;AAAA,WAClE;AAAA,QACC,aAAa,gBAAAA,KAAC,OAAE,WAAU,+DAA+D,qBAAU;AAAA,QACpG,gBAAAA,KAACG,SAAA,EAAO,SAAO,MAAC,SAAQ,WAAU,WAAU,uBAC1C,0BAAAH,KAAC,OAAE,MAAM,SAAU,mBAAQ,GAC7B;AAAA,SACF;AAAA,MAEA,gBAAAC,MAAC,SAAI,WAAU,QACb;AAAA,wBAAAD,KAAC,OAAE,WAAU,uEAAuE,2BAAgB;AAAA,QACpG,gBAAAA,KAAC,QAAG,WAAU,uDACX,mBAAS,IAAI,CAAC,SAAS,UACtB,gBAAAC,MAAC,QAAe,WAAU,8BACxB;AAAA,0BAAAD,KAAC,SAAM,WAAU,qCAAoC;AAAA,UACrD,gBAAAA,KAAC,UAAK,WAAU,2BAA2B,kBAAQ,MAAK;AAAA,aAFjD,KAGT,CACD,GACH;AAAA,SACF;AAAA,OACF,GACF;AAAA,IAEC,gBACC,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAC,MAAC,OAAE,WAAU,iCACX;AAAA,sBAAAD,KAAC,YAAO,sCAAwB;AAAA,MAAS;AAAA,MAAE;AAAA,OAC7C,GACF,GACF;AAAA,KAEJ,GACF;AAEJ;;;ACnGA,SAAS,SAAAI,cAAa;AACtB,OAAOC,YAAW;AAElB,SAAS,UAAAC,eAAc;AA4Eb,SAkBU,UAjBR,OAAAC,MADF,QAAAC,aAAA;AA9CV,IAAM,eAA8B;AAAA,EAClC;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU;AAAA,MACR,EAAE,MAAM,yBAAyB;AAAA,MACjC,EAAE,MAAM,8BAA8B;AAAA,MACtC,EAAE,MAAM,yBAAyB;AAAA,MACjC,EAAE,MAAM,mBAAmB;AAAA,MAC3B,EAAE,MAAM,mBAAmB;AAAA,MAC3B,EAAE,MAAM,qBAAqB;AAAA,IAC/B;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,IACV,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU,CAAC,EAAE,MAAM,wBAAwB,GAAG,EAAE,MAAM,8BAA8B,GAAG,EAAE,MAAM,yBAAyB,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAAA,IACpJ,UAAU;AAAA,EACZ;AACF;AAEO,SAAS,aAAa;AAAA,EAC3B,UAAU;AAAA,EACV,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf;AACF,GAAsB;AACpB,SACE,gBAAAD,KAAC,aAAQ,IAAG,WAAU,WAAW,GAAG,iCAAiC,eAAe,IAAI,SAAS,GAC/F,0BAAAC,MAAC,SAAI,WAAU,8EACb;AAAA,oBAAAD,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAC,MAAC,SAAI,WAAU,8BACb;AAAA,sBAAAD,KAAC,QAAG,WAAU,0FAA0F,mBAAQ;AAAA,MAChH,gBAAAA,KAAC,OAAE,WAAU,qDAAqD,sBAAW;AAAA,OAC/E,GACF;AAAA,IAEA,gBAAAA,KAAC,QAAG,WAAU,8CACX,gBAAM,IAAI,CAAC,MAAM,UAChB,gBAAAA,KAAC,QAAe,WAAW,KAAK,WAAW,uBAAuB,sBAChE,0BAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,MAAM,QAAQ,KAAK,WAAU,UAC/D,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WACE,KAAK,WACD,iHACA;AAAA,QAGL,eAAK,WACJ,gBAAAC,MAAA,YACG;AAAA,eAAK,SACJ,gBAAAD,KAAC,SAAI,WAAU,sDACb,0BAAAA,KAAC,SAAI,WAAU,uDACb,0BAAAA,KAACE,QAAA,EAAM,KAAK,KAAK,OAAO,KAAK,KAAK,YAAY,KAAK,OAAO,MAAI,MAAC,WAAU,gBAAe,OAAM,iCAAgC,GAChI,GACF;AAAA,UAGF,gBAAAD,MAAC,SAAI,WAAU,qCACb;AAAA,4BAAAA,MAAC,SAAI,WAAU,UACb;AAAA,8BAAAD,KAAC,OAAE,WAAU,yCAAyC,eAAK,OAAM;AAAA,cACjE,gBAAAA,KAAC,OAAE,WAAU,8BAA8B,eAAK,aAAY;AAAA,cAC5D,gBAAAC,MAAC,SAAI,WAAU,4BACb;AAAA,gCAAAD,KAAC,UAAK,WAAU,0CAA0C,eAAK,OAAM;AAAA,gBACrE,gBAAAA,KAAC,UAAK,WAAU,sCAAsC,eAAK,WAAU;AAAA,iBACvE;AAAA,cACA,gBAAAA,KAACG,SAAA,EAAO,SAAO,MAAC,SAAS,KAAK,eAAe,YAAY,YAAY,aAAa,WAAU,yBAC1F,0BAAAH,KAAC,OAAE,MAAM,KAAK,WAAW,KAAM,eAAK,SAAQ,GAC9C;AAAA,eACF;AAAA,YAEA,gBAAAA,KAAC,SAAI,WAAU,QACb,0BAAAA,KAAC,QAAG,WAAU,aACX,eAAK,SAAS,IAAI,CAAC,SAAS,iBAC3B,gBAAAC,MAAC,QAAsB,WAAU,oBAC/B;AAAA,8BAAAD,KAACI,QAAA,EAAM,WAAU,qCAAoC;AAAA,cACrD,gBAAAJ,KAAC,UAAK,WAAU,2BAA2B,kBAAQ,MAAK;AAAA,iBAFjD,YAGT,CACD,GACH,GACF;AAAA,aACF;AAAA,WACF,IAEA,gBAAAA,KAAC,SAAI,WAAU,wBACb,0BAAAC,MAAC,SACC;AAAA,0BAAAD,KAAC,OAAE,WAAU,yCAAyC,eAAK,OAAM;AAAA,UACjE,gBAAAA,KAAC,OAAE,WAAU,8BAA8B,eAAK,aAAY;AAAA,UAC5D,gBAAAC,MAAC,SAAI,WAAU,4BACb;AAAA,4BAAAD,KAAC,UAAK,WAAU,0CAA0C,eAAK,OAAM;AAAA,YACrE,gBAAAA,KAAC,UAAK,WAAU,sCAAsC,eAAK,WAAU;AAAA,aACvE;AAAA,UACA,gBAAAA,KAACG,SAAA,EAAO,SAAO,MAAC,SAAS,KAAK,eAAe,YAAY,YAAY,aAAa,WAAU,yBAC1F,0BAAAH,KAAC,OAAE,MAAM,KAAK,WAAW,KAAM,eAAK,SAAQ,GAC9C;AAAA,UAEA,gBAAAA,KAAC,SAAI,WAAU,QACb,0BAAAA,KAAC,QAAG,WAAU,aACX,eAAK,SAAS,IAAI,CAAC,SAAS,iBAC3B,gBAAAC,MAAC,QAAsB,WAAU,oBAC/B;AAAA,4BAAAD,KAACI,QAAA,EAAM,WAAU,qCAAoC;AAAA,YACrD,gBAAAJ,KAAC,UAAK,WAAU,2BAA2B,kBAAQ,MAAK;AAAA,eAFjD,YAGT,CACD,GACH,GACF;AAAA,WACF,GACF;AAAA;AAAA,IAEJ,GACF,KAvEO,KAwET,CACD,GACH;AAAA,IAEC,gBACC,gBAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAC,MAAC,OAAE,WAAU,iCACX;AAAA,sBAAAD,KAAC,YAAO,sCAAwB;AAAA,MAAS;AAAA,MAAE;AAAA,OAC7C,GACF,GACF;AAAA,KAEJ,GACF;AAEJ;;;AC/KA,SAAS,oBAAoB;AAE7B,SAAS,UAAAK,eAAc;AAoCX,gBAAAC,MAKM,QAAAC,aALN;AAjBZ,IAAM,iBAA8B;AAAA,EAClC;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AACF;AAEO,SAAS,IAAI,EAAE,UAAU,oCAAoC,aAAa,6CAAwC,UAAU,gBAAgB,iBAAiB,kBAAkB,UAAU,GAAa;AAC3M,QAAM,UAAU;AAEhB,SACE,gBAAAD,KAAC,aAAQ,WAAW,GAAG,+BAA+B,OAAO,IAAI,SAAS,GACxE,0BAAAA,KAAC,SAAI,WAAU,iCACb,0BAAAA,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAC,MAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,KAAC,QAAG,WAAU,oGAAoG,mBAAQ;AAAA,IAC1H,gBAAAA,KAAC,OAAE,WAAU,uFAAuF,sBAAW;AAAA,IAC/G,gBAAAA,KAAC,SAAI,WAAU,oEACZ,kBAAQ,IAAI,CAAC,QAAQ,UACpB,gBAAAA,KAACE,SAAA,EAAmB,SAAO,MAAC,SAAS,OAAO,YAAY,YAAY,YAAY,aAC9E,0BAAAD,MAAC,OAAE,MAAM,OAAO,MACb;AAAA,aAAO;AAAA,MACP,OAAO,aAAa,gBAAAD,KAAC,gBAAa,WAAU,WAAU;AAAA,OACzD,KAJW,KAKb,CACD,GACH;AAAA,KACF,GACF,GACF,GACF;AAEJ;;;ACvDA,SAAS,WAAW,kBAAkB,eAAe,wBAAwB;AAiDjE,gBAAAG,MAOE,QAAAC,aAPF;AAjCZ,IAAM,cAAyB;AAAA,EAC7B;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,IAAI,EAAE,UAAU,QAAQ,OAAO,aAAa,kBAAkB,iBAAiB,UAAU,GAAa;AACpH,SACE,gBAAAD,KAAC,aAAQ,IAAG,OAAM,WAAW,GAAG,uBAAuB,eAAe,IAAI,SAAS,GACjF,0BAAAC,MAAC,SAAI,WAAU,qBACb;AAAA,oBAAAD,KAAC,gBAAa,WAAU,MAAK,OAAO,KAClC,0BAAAA,KAAC,SAAI,WAAU,qBACb,0BAAAA,KAAC,QAAG,WAAU,0FAA0F,mBAAQ,GAClH,GACF;AAAA,IAEA,gBAAAA,KAAC,aAAU,MAAK,UAAS,aAAW,MAAC,WAAU,aAC5C,eAAK,IAAI,CAAC,KAAK,UACd,gBAAAA,KAAC,gBAAyB,WAAU,MAAK,OAAO,OAAO,QAAQ,MAC7D,0BAAAC,MAAC,iBAAc,OAAO,QAAQ,KAAK,IAAI,WAAU,kEAC/C;AAAA,sBAAAD,KAAC,oBAAiB,WAAU,iEAAiE,cAAI,UAAS;AAAA,MAC1G,gBAAAA,KAAC,oBAAiB,WAAU,sDAAsD,cAAI,QAAO;AAAA,OAC/F,KAJiB,KAKnB,CACD,GACH;AAAA,KACF,GACF;AAEJ;;;AClEA,SAAS,UAAU,iBAAiB;AACpC,OAAO,UAAU;AACjB,SAAS,MAAM,SAAS;AACxB,SAAS,UAAAE,SAAQ,uBAAuB;AAExC,SAAS,UAAAC,eAAc;AA0Ef,SAIkC,OAAAC,OAJlC,QAAAC,aAAA;AAtDD,SAAS,WAAW;AAAA,EACzB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,IACN,EAAE,OAAO,YAAY,MAAM,YAAY;AAAA,IACvC,EAAE,OAAO,WAAW,MAAM,WAAW;AAAA,IACrC,EAAE,OAAO,OAAO,MAAM,OAAO;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb;AAAA,EACA,WAAW;AAAA,EACX,SAAS;AAAA,EACT,mBAAmB;AACrB,GAAoB;AAClB,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACd,QAAI,CAAC,iBAAkB;AAEvB,UAAM,eAAe,MAAM;AACzB,oBAAc,OAAO,UAAU,EAAE;AAAA,IACnC;AAEA,WAAO,iBAAiB,UAAU,YAAY;AAC9C,WAAO,MAAM,OAAO,oBAAoB,UAAU,YAAY;AAAA,EAChE,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,gBAAgB;AAAA,IACpB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR,EAAE,QAAQ;AAEV,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,UAAU;AAAA,QACV,oBAAoB,aAAa,sCAAsC;AAAA,QACvE;AAAA,MACF;AAAA,MAEA,0BAAAC,MAAC,SAAI,WAAW,GAAG,eAAe,4BAA4B,GAC5D;AAAA,wBAAAA,MAAC,SAAI,WAAU,qCAEb;AAAA,0BAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAA,MAAC,QAAK,MAAM,UAAU,WAAU,qBAC7B,iBAAO,SAAS,WAAW,gBAAAA,MAAC,UAAK,WAAU,sCAAsC,gBAAK,IAAU,MACnG,GACF;AAAA,UAGC,SAAS,MAAM,SAAS,KACvB,gBAAAA,MAAC,SAAI,WAAU,qCACZ,gBAAM,IAAI,CAAC,SACV,gBAAAA,MAAC,OAAkB,MAAM,KAAK,MAAM,WAAU,+DAC3C,eAAK,SADA,KAAK,IAEb,CACD,GACH;AAAA,UAID,WAAW,WACV,gBAAAA,MAAC,SAAI,WAAU,+BACb,0BAAAA,MAACD,SAAA,EAAO,SAAO,MAAC,SAAS,YACvB,0BAAAC,MAAC,OAAE,MAAM,SAAU,mBAAQ,GAC7B,GACF;AAAA,UAIF,gBAAAA,MAAC,YAAO,WAAU,iCAAgC,SAAS,MAAM,kBAAkB,CAAC,cAAc,GAAG,cAAW,eAC7G,2BAAiB,gBAAAA,MAAC,KAAE,WAAU,WAAU,IAAK,gBAAAA,MAAC,QAAK,WAAU,WAAU,GAC1E;AAAA,WACF;AAAA,QAGA,gBAAAA,MAAC,mBACE,4BACC,gBAAAA;AAAA,UAACE,QAAO;AAAA,UAAP;AAAA,YACC,SAAS,EAAE,SAAS,GAAG,QAAQ,EAAE;AAAA,YACjC,SAAS,EAAE,SAAS,GAAG,QAAQ,OAAO;AAAA,YACtC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE;AAAA,YAC9B,YAAY,EAAE,UAAU,KAAK,MAAM,YAAY;AAAA,YAC/C,WAAU;AAAA,YAEV,0BAAAF,MAAC,SAAI,WAAU,gCACb,0BAAAC,MAAC,SAAI,WAAU,4BACZ;AAAA,oBAAM,IAAI,CAAC,SACV,gBAAAD,MAAC,OAAkB,MAAM,KAAK,MAAM,WAAU,2DAA0D,SAAS,MAAM,kBAAkB,KAAK,GAC3I,eAAK,SADA,KAAK,IAEb,CACD;AAAA,cACA,WAAW,WACV,gBAAAA,MAACD,SAAA,EAAO,SAAO,MAAC,SAAS,YAAY,WAAU,QAAO,SAAS,MAAM,kBAAkB,KAAK,GAC1F,0BAAAC,MAAC,OAAE,MAAM,SAAU,mBAAQ,GAC7B;AAAA,eAEJ,GACF;AAAA;AAAA,QACF,GAEJ;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;;;AC/IA,OAAOG,WAAU;AACjB,SAAS,UAAU,kBAAkB;AACrC,SAAS,aAAa;AACtB,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AA+DZ,SAEI,OAAAC,OAFJ,QAAAC,aAAA;AAnCH,SAAS,OAAO;AAAA,EACrB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,cAAc;AAAA,IACZ,EAAE,MAAM,sBAAsB,MAAM,UAAU,OAAO,SAAS;AAAA,IAC9D,EAAE,MAAM,qBAAqB,MAAM,OAAO,OAAO,MAAM;AAAA,IACvD,EAAE,MAAM,uBAAuB,MAAM,YAAY,OAAO,cAAc;AAAA,EACxE;AAAA,EACA,aAAa;AAAA,IACX,EAAE,MAAM,aAAa,OAAO,UAAU;AAAA,IACtC,EAAE,MAAM,cAAc,OAAO,eAAe;AAAA,IAC5C,EAAE,MAAM,YAAY,OAAO,UAAU;AAAA,EACvC;AAAA,EACA,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB;AAAA,EACA,gBAAgB;AAAA,EAChB;AACF,GAAgB;AACd,QAAM,oBAAoB,CAAC,MAAwC;AACjE,MAAE,eAAe;AACjB,UAAM,OAAO,EAAE;AACf,UAAM,WAAW,IAAI,SAAS,IAAI;AAClC,UAAM,QAAQ,SAAS,IAAI,OAAO;AAClC,QAAI,eAAe;AACjB,oBAAc,KAAK;AAAA,IACrB;AACA,SAAK,MAAM;AAAA,EACb;AAEA,SACE,gBAAAD,MAAC,YAAO,WAAW,GAAG,oDAAoD,SAAS,GACjF,0BAAAC,MAAC,SAAI,WAAU,qBACb;AAAA,oBAAAA,MAAC,SAAI,WAAU,oCAEb;AAAA,sBAAAA,MAAC,SAAI,WAAU,iBACb;AAAA,wBAAAD,MAACE,OAAA,EAAK,MAAK,KAAI,WAAU,qBACvB,0BAAAF,MAAC,SAAI,WAAU,2CAA2C,gBAAK,GACjE;AAAA,QACA,gBAAAA,MAAC,OAAE,WAAU,+DAA+D,uBAAY;AAAA,QAGxF,gBAAAA,MAAC,SAAI,WAAU,2BACZ,sBAAY,IAAI,CAAC,SAAS;AACzB,gBAAM,OAAO,KAAK;AAClB,iBACE,gBAAAA;AAAA,YAACE;AAAA,YAAA;AAAA,cAEC,MAAM,KAAK;AAAA,cACX,QAAO;AAAA,cACP,KAAI;AAAA,cACJ,WAAU;AAAA,cACV,cAAY,KAAK;AAAA,cAEjB,0BAAAF,MAAC,QAAK,WAAU,WAAU;AAAA;AAAA,YAPrB,KAAK;AAAA,UAQZ;AAAA,QAEJ,CAAC,GACH;AAAA,SACF;AAAA,MAGA,gBAAAC,MAAC,SACC;AAAA,wBAAAD,MAAC,QAAG,WAAU,qDAAoD,yBAAW;AAAA,QAC7E,gBAAAA,MAAC,QAAG,WAAU,aACX,qBAAW,IAAI,CAAC,SACf,gBAAAA,MAAC,QACC,0BAAAA,MAACE,OAAA,EAAK,MAAM,KAAK,MAAM,WAAU,8EAC9B,eAAK,OACR,KAHO,KAAK,KAId,CACD,GACH;AAAA,SACF;AAAA,MAGA,gBAAAF,MAAC,SAAI,WAAU,yDACb,0BAAAC,MAAC,SAAI,WAAU,sBACb;AAAA,wBAAAD,MAAC,QAAG,WAAU,qDAAqD,wBAAa;AAAA,QAChF,gBAAAC,MAAC,UAAK,UAAU,mBAAmB,WAAU,YAC3C;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,MAAK;AAAA,cACL,aAAa;AAAA,cACb,UAAQ;AAAA,cACR,WAAU;AAAA;AAAA,UACZ;AAAA,UACA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAU;AAAA,cACV,cAAW;AAAA,cAEX,0BAAAA,MAAC,gBAAa,WAAU,WAAU;AAAA;AAAA,UACpC;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,IAGA,gBAAAA,MAAC,SAAI,WAAU,+BACb,0BAAAA,MAAC,SAAI,WAAU,gEACb,0BAAAA,MAAC,OAAE,WAAU,iCAAiC,yBAAc,GAC9D,GACF;AAAA,KACF,GACF;AAEJ;","names":["jsx","jsx","jsx","code","jsx","jsxs","Button","jsx","jsxs","defaultFeatures","Button","Check","Image","Button","jsx","jsxs","Image","Button","Check","Button","jsx","jsxs","Button","jsx","jsxs","motion","Button","jsx","jsxs","motion","Link","jsx","jsxs","Link"]}
1
+ {"version":3,"sources":["../../src/templates/studio/components/hero/hero.tsx","../../src/shared/scroll-reveal/scroll-reveal.tsx","../../src/lib/utils.ts","../../src/shared/marquee/marquee.tsx","../../src/templates/studio/ui/button/button.tsx","../../src/templates/studio/components/features/features.tsx","../../src/shared/code-window/code-window.tsx","../../src/templates/studio/components/pricing/pricing.tsx","../../src/templates/studio/components/pricing/pricing-tiers.tsx","../../src/templates/studio/components/cta/cta.tsx","../../src/templates/studio/components/faq/faq.tsx","../../src/templates/studio/components/navigation/navigation.tsx","../../src/templates/studio/components/footer/footer.tsx","../../src/templates/studio/ui/input/input.tsx"],"sourcesContent":["'use client'\n\nimport Image from 'next/image'\nimport { HiChevronRight } from 'react-icons/hi'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Marquee } from '../../../../shared/marquee'\nimport { Button } from '../../ui/button'\nimport { cn, isRenderableSrc, brandLabel } from '../../../../lib/utils'\n\nexport interface HeroProps {\n badgeEmoji?: string\n badgeText?: string\n badgeHref?: string\n heading?: string\n description?: string\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost'\n rightImageSrc?: string\n rightImageAlt?: string\n rightImageSizes?: string\n showIconOverlay?: boolean\n marqueeTitle?: string\n marqueeImages?: string[]\n className?: string\n}\n\nexport function Hero({\n badgeEmoji = '',\n badgeText = 'Meet Priya',\n badgeHref = '#',\n heading = 'Your AI Product Manager for GitHub',\n description = 'Priya triages issues, plans sprints, and grooms your backlog automatically. You focus on building.',\n ctaText = 'Get Started',\n ctaHref = '#pricing',\n ctaVariant = 'default',\n // No default: the hero image renders only when the caller supplies a real,\n // resolvable asset. The old `/images/hero/hero-main.png` default 404s on every\n // consumer that doesn't host it (the live priya.studio.sb broken hero). When\n // absent, the hero is single-column, no image (do-design-agency: never use an\n // image hero without a real asset).\n rightImageSrc,\n rightImageAlt = 'Portfolio showcase',\n rightImageSizes = '(max-width: 768px) 100vw, 500px',\n showIconOverlay: _showIconOverlay = true,\n marqueeTitle = 'Tools I work with',\n marqueeImages = Array.from({ length: 12 }).map(\n () => 'https://zapier-images.imgix.net/storage/services/c63f7c57dc0afb733535a5adccce4d01.png?auto=format&fit=crop&ixlib=react-9.10.0&q=50&w=60&h=60&dpr=2'\n ),\n className,\n}: HeroProps) {\n // Render the right-side hero image only when a real, resolvable asset was\n // supplied; otherwise the hero is single-column (no 404 placeholder).\n const hasHeroImage = !!rightImageSrc && isRenderableSrc(rightImageSrc)\n return (\n <section className={cn('relative py-12 md:py-16 px-6 lg:px-12 bg-background', className)}>\n <div className=\"max-w-7xl mx-auto p-0 sm:p-16 rounded-none sm:rounded-3xl md:[background:linear-gradient(180deg,var(--card)_0%,transparent_83.55%)]\">\n {/* Main Hero Container */}\n <div className={cn('grid gap-8 lg:gap-16 items-start mb-16 lg:mb-20', hasHeroImage && 'lg:grid-cols-2')}>\n {/* Left Content */}\n <div className=\"space-y-6 lg:pt-8\">\n {/* Category Badge */}\n <ScrollReveal direction=\"down\" delay={0.1}>\n <div className=\"inline-block\">\n <a\n href={badgeHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2.5 px-4 py-2 rounded-full transition-colors border border-border bg-card\"\n >\n <span className=\"text-base\">{badgeEmoji}</span>\n <p className=\"font-normal text-sm tracking-wide leading-snug text-foreground uppercase\">{badgeText}</p>\n </a>\n </div>\n </ScrollReveal>\n\n {/* Main Heading */}\n <ScrollReveal direction=\"up\" delay={0.2}>\n <h1 className=\"font-halant font-normal text-[clamp(56px,6vw,72px)] leading-tight tracking-tight text-foreground\">\n {heading}\n </h1>\n </ScrollReveal>\n\n {/* Description */}\n <ScrollReveal direction=\"up\" delay={0.3}>\n <p className=\"text-lg leading-relaxed max-w-lg\">{description}</p>\n </ScrollReveal>\n\n {/* CTA Buttons */}\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"flex flex-col sm:flex-row gap-3 pt-4\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>\n {ctaText}\n <HiChevronRight className=\"w-4 h-4\" />\n </a>\n </Button>\n </div>\n </ScrollReveal>\n </div>\n\n {/* Right Images — only when a real asset was supplied. */}\n {hasHeroImage && (\n <ScrollReveal direction=\"right\" delay={0.2}>\n <div className=\"relative flex justify-center lg:justify-end\">\n <div className=\"relative w-full max-w-lg\">\n <div className=\"relative w-full aspect-square\">\n <Image\n src={rightImageSrc as string}\n alt={rightImageAlt}\n fill\n className=\"object-cover object-left-center\"\n // Baseline hero artwork sits on the large --radius-image\n // mask (62d6f04). The scoped envelope defines it; fall back\n // to a generous radius if the envelope isn't loaded.\n style={{ borderRadius: 'var(--radius-image, 1rem)' }}\n priority\n sizes={rightImageSizes}\n />\n </div>\n </div>\n </div>\n </ScrollReveal>\n )}\n </div>\n\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"mt-12\">\n <p className=\"text-base text-muted-foreground text-center\">{marqueeTitle}</p>\n </div>\n <div className=\"relative mt-4 sm:mt-6\">\n <div\n className=\"pointer-events-none absolute inset-y-0 left-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to right, var(--background), transparent)' }}\n />\n <div\n className=\"pointer-events-none absolute inset-y-0 right-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to left, var(--background), transparent)' }}\n />\n <Marquee className=\"relative z-0 py-2 [--gap:1.25rem] sm:[--gap:3rem]\">\n {marqueeImages.map((src, i) =>\n isRenderableSrc(src) ? (\n <img\n key={`${src}-${i}`}\n src={src}\n alt=\"\"\n className=\"h-16 w-16 rounded-xl bg-card p-2 object-contain\"\n />\n ) : (\n <span\n key={`${src}-${i}`}\n className=\"flex h-16 items-center whitespace-nowrap rounded-xl bg-card px-4 text-sm font-semibold tracking-tight text-foreground/70\"\n >\n {brandLabel(src)}\n </span>\n ),\n )}\n </Marquee>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { motion, Variants } from 'motion/react'\nimport { ReactNode } from 'react'\n\nexport interface ScrollRevealProps {\n children: ReactNode\n className?: string\n delay?: number\n direction?: 'up' | 'down' | 'left' | 'right' | 'none'\n duration?: number\n trigger?: 'inView' | 'mount'\n once?: boolean\n margin?: string\n}\n\nconst directionVariants: Record<string, Variants> = {\n up: {\n hidden: { opacity: 0, y: 50 },\n visible: { opacity: 1, y: 0 },\n },\n down: {\n hidden: { opacity: 0, y: -50 },\n visible: { opacity: 1, y: 0 },\n },\n left: {\n hidden: { opacity: 0, x: -50 },\n visible: { opacity: 1, x: 0 },\n },\n right: {\n hidden: { opacity: 0, x: 50 },\n visible: { opacity: 1, x: 0 },\n },\n none: {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n },\n}\n\nexport function ScrollReveal({\n children,\n className,\n delay = 0,\n direction = 'up',\n duration = 0.5,\n trigger = 'inView',\n once = true,\n margin = '-100px',\n}: ScrollRevealProps) {\n if (trigger === 'mount') {\n return (\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n }\n\n return (\n <motion.div\n initial=\"hidden\"\n whileInView=\"visible\"\n viewport={{ once, margin }}\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/** A src is renderable only when its bytes are guaranteed to resolve — an\n * absolute http(s)/protocol-relative/data URL. App-relative paths\n * (`/images/hero/hero-main.png`) and bare tokens (`\"linear\"`) 404 on the\n * consumer host (the live priya.studio.sb broken hero + marquee), so image\n * slots are skipped and the layout reflows to its no-image variant. */\nexport const isRenderableSrc = (s: string): boolean =>\n /^(https?:)?\\/\\//i.test(s.trim()) || /^data:image\\//i.test(s.trim())\n\n/** Canonical display casing for common brand tokens; otherwise capitalize.\n * Shared across templates — hero marquee chips (studio) and the ruled\n * tool strip (executive) both render bare tool tokens as labels. */\nconst BRAND_LABELS: Record<string, string> = {\n github: 'GitHub',\n gitlab: 'GitLab',\n linkedin: 'LinkedIn',\n youtube: 'YouTube',\n whatsapp: 'WhatsApp',\n hubspot: 'HubSpot',\n quickbooks: 'QuickBooks',\n typescript: 'TypeScript',\n javascript: 'JavaScript',\n postgresql: 'PostgreSQL',\n mongodb: 'MongoDB',\n graphql: 'GraphQL',\n openai: 'OpenAI',\n}\nexport const brandLabel = (s: string): string => {\n const t = s.trim()\n return BRAND_LABELS[t.toLowerCase()] ?? t.charAt(0).toUpperCase() + t.slice(1)\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface MarqueeProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Optional CSS class name to apply custom styles\n */\n className?: string\n /**\n * Whether to reverse the animation direction\n * @default false\n */\n reverse?: boolean\n /**\n * Whether to pause the animation on hover\n * @default false\n */\n pauseOnHover?: boolean\n /**\n * Content to be displayed in the marquee\n */\n children: React.ReactNode\n /**\n * Whether to animate vertically instead of horizontally\n * @default false\n */\n vertical?: boolean\n /**\n * Number of times to repeat the content\n * @default 4\n */\n repeat?: number\n}\n\nexport function Marquee({\n className,\n reverse = false,\n pauseOnHover = false,\n children,\n vertical = false,\n repeat = 4,\n ...props\n}: MarqueeProps) {\n return (\n <div\n {...props}\n className={cn(\n 'group flex [gap:var(--gap)] overflow-hidden p-2 [--duration:40s] [--gap:1rem]',\n {\n 'flex-row': !vertical,\n 'flex-col': vertical,\n },\n className\n )}\n >\n {Array(repeat)\n .fill(0)\n .map((_, i) => (\n <div\n key={i}\n className={cn('flex shrink-0 justify-around [gap:var(--gap)]', {\n 'animate-marquee flex-row': !vertical,\n 'animate-marquee-vertical flex-col': vertical,\n 'group-hover:[animation-play-state:paused]': pauseOnHover,\n '[animation-direction:reverse]': reverse,\n })}\n >\n {children}\n </div>\n ))}\n </div>\n )\n}\n","'use client'\n\n/**\n * The named-agents baseline Button (components/ui/button.tsx) — rounded-full\n * pills on the baseline token vocabulary: `btn-gradient-dark` ink-gradient\n * primary, surface-raised secondary, the persona `accent` variant, and the\n * h-12/text-base default size. The sections previously borrowed\n * @mdxui/primitives' Button (flat bg-primary, h-9, theme radius), which is a\n * different design language — buttons must speak the baseline tokens the\n * `[data-dialect=\"named\"]` envelope defines (`--color-btn-primary-*`,\n * `--color-surface-raised`, `--color-hover`, `--color-accent-*`).\n *\n * Ported without cva/Radix Slot to keep the package dependency-free: variants\n * are a plain class map, `asChild` clones the single child element (the named\n * call sites always pass one `<a>`).\n */\n\nimport * as React from 'react'\nimport { cn } from '../../../../lib/utils'\n\nexport type ButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'accent'\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon'\n\nconst baseClasses =\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-ring) disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer'\n\nconst variantClasses: Record<ButtonVariant, string> = {\n default: 'btn-gradient-dark text-(--color-btn-primary-fg) shadow-md hover:shadow-lg rounded-full',\n secondary:\n 'bg-(--color-surface-raised) text-(--color-fg) border border-(--color-border) shadow-sm hover:shadow-md rounded-full',\n outline: 'border border-(--color-border) bg-transparent text-(--color-fg) hover:bg-(--color-hover) rounded-full',\n ghost: 'text-(--color-fg) hover:bg-(--color-hover) rounded-full',\n link: 'text-(--color-fg) underline-offset-4 hover:underline',\n accent: 'bg-(--color-accent-strong) text-(--color-accent-fg) shadow-md hover:opacity-90 hover:shadow-lg rounded-full',\n}\n\nconst sizeClasses: Record<ButtonSize, string> = {\n default: 'h-12 px-6 py-3 text-base',\n sm: 'h-10 px-4 py-2 text-sm',\n lg: 'h-14 px-8 py-4 text-lg',\n icon: 'h-12 w-12',\n}\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant\n size?: ButtonSize\n asChild?: boolean\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'default', size = 'default', asChild = false, children, ...props }, ref) => {\n const classes = cn(baseClasses, variantClasses[variant], sizeClasses[size], className)\n\n if (asChild && React.isValidElement(children)) {\n const child = children as React.ReactElement<{ className?: string }>\n return React.cloneElement(child, {\n ...props,\n className: cn(classes, child.props.className),\n })\n }\n\n return (\n <button ref={ref} className={classes} {...props}>\n {children}\n </button>\n )\n },\n)\nButton.displayName = 'Button'\n","'use client'\n\nimport { CheckCircle } from 'lucide-react'\nimport { CodeWindow } from '../../../../shared/code-window'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { cn } from '../../../../lib/utils'\n\nexport interface FeatureItem {\n text: string\n}\n\nexport interface Feature {\n title: string\n description: string\n items: FeatureItem[]\n code: string\n /** Shiki language id; defaults to TypeScript (the persona DSL). */\n language?: string\n badge: string\n}\n\nexport interface FeaturesProps {\n heading?: string\n description?: string\n features?: Feature[]\n className?: string\n}\n\nconst defaultFeatures: Feature[] = [\n {\n title: 'Automatic Issue Triage',\n description: 'Every new issue gets analyzed, labeled, prioritized, and assigned to the right person—automatically in seconds.',\n items: [{ text: 'Smart labels based on content' }, { text: 'Priority using impact + urgency' }, { text: 'Auto-assigned to right person' }],\n code: `// New issue arrives\n$.Priya.triage({\n issue: '#347'\n})\n\n// Priya handles everything:\n// → Reads issue content\n// → Applies correct labels\n// → Sets priority level\n// → Assigns to team member\n// → Adds to project board`,\n badge: '01',\n },\n {\n title: 'Sprint Planning',\n description: 'Priya reviews your backlog, calculates what your team can handle, and builds the sprint for you.',\n items: [{ text: 'Capacity based on team velocity' }, { text: 'Best issues selected automatically' }, { text: 'Sprint board ready to go' }],\n code: `// Sprint planning day\n$.Priya.planSprint({\n capacity: 40,\n startDate: 'Monday'\n})\n\n// Priya prepares:\n// → Reviews all backlog items\n// → Calculates team velocity\n// → Selects optimal issues\n// → Organizes sprint board\n// → Notifies team`,\n badge: '02',\n },\n {\n title: 'Backlog Grooming',\n description: 'Your backlog stays healthy automatically—prioritized, organized, and actionable.',\n items: [{ text: 'Always prioritized correctly' }, { text: 'No more zombie issues' }, { text: 'Epics become user stories' }],\n code: `// Runs continuously\n$.Priya.groomBacklog({\n framework: 'RICE'\n})\n\n// Priya maintains:\n// → Applies RICE scoring\n// → Closes stale issues\n// → Breaks down epics\n// → Updates priorities\n// → Tracks dependencies`,\n badge: '03',\n },\n {\n title: 'Status Reports',\n description: 'Weekly progress reports generated and shared automatically. No more manual updates.',\n items: [{ text: 'Automatic progress tracking' }, { text: 'Blockers surfaced early' }, { text: 'Team stays informed' }],\n code: `// Every Friday\n$.Priya.statusReport({\n period: 'week'\n})\n\n// Priya reports:\n// → Issues closed\n// → PRs merged\n// → Sprint progress\n// → Blockers identified\n// → Shares with team`,\n badge: '04',\n },\n]\n\nexport function Features({ heading = 'How It Works', description = \"Priya handles the repetitive work so you can focus on what matters. Here's how she automates your entire product workflow.\", features = defaultFeatures, className }: FeaturesProps) {\n return (\n <section id=\"features\" className={cn('flex justify-center items-center pb-0 md:pb-10 bg-background', className)}>\n <div className=\"features-gradient flex flex-col items-center w-full relative overflow-visible gap-16 h-min max-w-[1400px] py-10 sm:py-20\" style={{ borderRadius: 'var(--radius-section, 36px)' }}>\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center w-full px-4 md:px-6 space-y-4\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground\">{heading}</h2>\n <p className=\"text-base md:text-lg text-muted-foreground max-w-2xl mx-auto\">{description}</p>\n </div>\n </ScrollReveal>\n\n <div className=\"w-full px-4 lg:px-18 space-y-10\">\n {features.map((feature, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={index * 0.1}>\n <div className=\"grid md:grid-cols-2 overflow-hidden bg-card w-full rounded-3xl feature-card-shadow opacity-100 border border-border\">\n <div className=\"flex flex-col px-4 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20\">\n <div className=\"mb-4\">\n <span className=\"inline-flex size-10 items-center justify-center rounded-lg font-mono text-sm font-medium bg-card dark:bg-muted border border-border dark:border-border text-foreground\">\n {feature.badge}\n </span>\n </div>\n <h3 className=\"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl text-foreground\">{feature.title}</h3>\n <div className=\"mb-8 text-sm sm:mb-10 md:text-base text-muted-foreground\">{feature.description}</div>\n <ul className=\"space-y-2 sm:space-y-3\">\n {feature.items.map((item, itemIndex) => (\n <li key={itemIndex} className=\"flex gap-x-3 items-start\">\n <CheckCircle className=\"mt-1 size-4 shrink-0 text-primary\" />\n <p className=\"text-sm md:text-base text-foreground\">{item.text}</p>\n </li>\n ))}\n </ul>\n </div>\n <div className=\"relative order-last md:order-last h-96 md:h-[500px] p-4 md:p-8 lg:p-10\">\n {/* The baseline's dark panel — github-dark-default IS the\n baseline regex highlighter's palette (#0d1117 ground). */}\n <CodeWindow\n code={feature.code}\n language={feature.language}\n themes=\"github-dark-default\"\n className=\"bg-[#0d1117] rounded-lg p-6 lg:p-8 text-sm leading-relaxed text-[#e6edf3]\"\n />\n </div>\n </div>\n </ScrollReveal>\n ))}\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * CodeWindow — shiki-highlighted code block, shared across templates.\n *\n * The named-agent templates render whatever code the cascade generates for\n * ANY persona, so highlighting is a real tokenizer (shiki), not the\n * baseline's regex pass (which was grammar-locked to the `$.Priya.method()`\n * DSL shape). Shiki is dynamically imported so consumers only pay for it\n * when a code window actually mounts; until it resolves (and whenever\n * highlighting fails), the fallback is the plain escaped code — content is\n * never invisible.\n *\n * Theming: this component is visually NEUTRAL — the calling template owns\n * the panel (background, border, padding, type size) via `className`, and\n * the envelopes force `.shiki { background: transparent }` so shiki's theme\n * background never fights the panel. Pass a single theme name for a fixed\n * appearance (studio's always-dark panel) or a `{ light, dark }` pair to\n * follow the host's `.dark` class via the envelope's dual-theme CSS.\n */\n\nimport { useEffect, useState } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface CodeWindowProps {\n code: string\n /** Shiki language id. The persona DSL is valid TypeScript — the default. */\n language?: string\n /** Shiki theme: one name = fixed; a pair = follows the host `.dark` class\n * (requires the envelope's `--shiki-dark` switch CSS). */\n themes?: string | { light: string; dark: string }\n className?: string\n}\n\nexport function CodeWindow({\n code,\n language = 'typescript',\n themes = 'github-dark-default',\n className,\n}: CodeWindowProps) {\n const [html, setHtml] = useState<string | null>(null)\n const themesKey = typeof themes === 'string' ? themes : `${themes.light}/${themes.dark}`\n\n useEffect(() => {\n let alive = true\n import('shiki')\n .then(({ codeToHtml }) =>\n codeToHtml(\n code,\n typeof themes === 'string'\n ? { lang: language, theme: themes }\n : { lang: language, themes, defaultColor: 'light' },\n ),\n )\n .then((out) => {\n if (alive) setHtml(out)\n })\n .catch(() => {\n // Unknown language / load failure → keep the plain fallback.\n })\n return () => {\n alive = false\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- themesKey covers `themes`\n }, [code, language, themesKey])\n\n return (\n <div className={cn('w-full h-full overflow-auto font-mono', className)}>\n {html ? (\n // biome-ignore lint/security/noDangerouslySetInnerHtml: shiki output; input is escaped by shiki\n <div dangerouslySetInnerHTML={{ __html: html }} />\n ) : (\n <pre className=\"m-0 whitespace-pre\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn } from '../../../../lib/utils'\n\nexport interface PricingFeature {\n text: string\n}\n\nexport interface PricingProps {\n heading?: string\n subheading?: string\n price?: string\n priceUnit?: string\n trialText?: string\n ctaText?: string\n ctaHref?: string\n featuresHeading?: string\n features?: PricingFeature[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultFeatures: PricingFeature[] = [\n { text: 'Automated backups' },\n { text: '24/7 support' },\n { text: 'Unlimited projects' },\n { text: 'Unlimited users' },\n { text: 'Custom domain' },\n { text: 'Custom branding' },\n { text: 'Advanced analytics' },\n { text: 'Custom permissions' },\n { text: 'Advanced reports' },\n]\n\nexport function Pricing({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n price = '$16',\n priceUnit = '/ month',\n trialText = 'With a 7-day free trial',\n ctaText = 'Get Started',\n ctaHref = '#contact',\n featuresHeading = \"What's included\",\n features = defaultFeatures,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.2}>\n <div className=\"bg-card mx-auto flex w-full md:max-w-md lg:max-w-3xl flex-col rounded-3xl border border-border feature-card-shadow p-6 md:p-8 px-6\">\n <div className=\"text-center\">\n <div className=\"flex justify-start sm:justify-center items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{priceUnit}</span>\n </div>\n {trialText && <p className=\"text-left sm:text-center text-muted-foreground mt-3 text-sm\">{trialText}</p>}\n <Button asChild variant=\"default\" className=\"mt-5 w-full md:w-64\">\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <p className=\"text-left sm:text-center text-lg font-semibold text-foreground mb-4\">{featuresHeading}</p>\n <ul className=\"grid gap-y-3 gap-x-6 md:grid-cols-2 lg:grid-cols-3 \">\n {features.map((feature, index) => (\n <li key={index} className=\"flex items-start text-left\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </ScrollReveal>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.3}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport Image from 'next/image'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn, isRenderableSrc } from '../../../../lib/utils'\n\nexport interface PricingTierFeature {\n text: string\n}\n\nexport interface PricingTier {\n title: string\n description: string\n price: string\n priceUnit: string\n ctaText: string\n ctaVariant?: 'primary' | 'secondary'\n ctaHref?: string\n features: PricingTierFeature[]\n image?: string\n imageAlt?: string\n featured?: boolean\n}\n\nexport interface PricingTiersProps {\n heading?: string\n subheading?: string\n tiers?: PricingTier[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultTiers: PricingTier[] = [\n {\n title: 'Business',\n description: 'For growing teams that need more power and priority support.',\n price: '$299',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'primary',\n ctaHref: '#contact',\n features: [\n { text: 'Unlimited repositories' },\n { text: 'Unlimited issues & projects' },\n { text: 'Unlimited team members' },\n { text: 'Priority support' },\n { text: 'Custom workflows' },\n { text: 'Advanced analytics' },\n ],\n image: '/images/hero/hero-main.png',\n imageAlt: 'Business Plan',\n featured: true,\n },\n {\n title: 'Team',\n description: 'Perfect for small teams getting started with AI product management.',\n price: '$99',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'secondary',\n ctaHref: '#contact',\n features: [{ text: 'Up to 10 repositories' }, { text: 'Unlimited issues & projects' }, { text: 'Unlimited team members' }, { text: 'Email support' }],\n featured: false,\n },\n]\n\nexport function PricingTiers({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n tiers = defaultTiers,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingTiersProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ul className=\"grid gap-6 lg:grid-cols-3 lg:items-stretch\">\n {tiers.map((tier, index) => (\n <li key={index} className={tier.featured ? 'lg:col-span-2 flex' : 'lg:col-span-1 flex'}>\n <ScrollReveal direction=\"up\" delay={0.2 + index * 0.1} className=\"w-full\">\n <div\n className={\n tier.featured\n ? 'bg-card flex w-full h-full flex-col-reverse rounded-3xl border border-border feature-card-shadow md:flex-row'\n : 'bg-card w-full h-full rounded-3xl border border-border feature-card-shadow p-6 md:p-8'\n }\n >\n {tier.featured ? (\n <>\n {/* Image slot is prop-driven: render only when the src is a\n resolvable URL, and let the content reflow to the full\n card width when it isn't — a featured tier without\n artwork must not keep an empty xl:w-1/2 half. */}\n {tier.image && isRenderableSrc(tier.image) && (\n <div className=\"hidden xl:block xl:w-1/2 pl-6 md:pl-8 py-6 md:py-8\">\n <div className=\"h-full rounded-lg overflow-hidden relative min-h-96\">\n <Image src={tier.image} alt={tier.imageAlt || tier.title} fill className=\"object-cover\" sizes=\"(max-width: 1280px) 0vw, 50vw\" />\n </div>\n </div>\n )}\n\n <div className={cn('flex flex-col p-6 md:p-8', tier.image && isRenderableSrc(tier.image) && 'xl:w-1/2')}>\n <div className=\"flex-1\">\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </>\n ) : (\n <div className=\"flex h-full flex-col\">\n <div>\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n )}\n </div>\n </ScrollReveal>\n </li>\n ))}\n </ul>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.4}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { HiArrowRight } from 'react-icons/hi'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn } from '../../../../lib/utils'\n\nexport interface CTAButton {\n text: string\n href: string\n variant?: 'primary' | 'secondary'\n showArrow?: boolean\n}\n\nexport interface CTAProps {\n heading?: string\n subheading?: string\n buttons?: CTAButton[]\n /** @deprecated theme-driven now; ignored */\n backgroundColor?: 'light' | 'blue' | 'green' | 'purple' | 'orange'\n className?: string\n}\n\nconst defaultButtons: CTAButton[] = [\n {\n text: 'Get Started',\n href: '#pricing',\n variant: 'primary',\n showArrow: true,\n },\n]\n\nexport function CTA({ heading = 'Ready to Save 15 Hours Per Week?', subheading = 'Setup with Github – takes 5 minutes.', buttons = defaultButtons, backgroundColor: _backgroundColor, className }: CTAProps) {\n const bgClass = 'bg-card'\n\n return (\n <section className={cn(`py-20 md:py-32 px-4 md:px-6 ${bgClass}`, className)}>\n <div className=\"max-w-3xl mx-auto text-center\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"space-y-6\">\n <h2 className=\"font-halant font-normal text-foreground text-[clamp(32px,5vw,52px)] leading-tight tracking-tight\">{heading}</h2>\n <p className=\"max-w-2xl mx-auto text-[clamp(16px,2vw,18px)] leading-relaxed text-muted-foreground\">{subheading}</p>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center items-center pt-4\">\n {buttons.map((button, index) => (\n <Button key={index} asChild variant={button.variant === 'primary' ? 'default' : 'secondary'}>\n <a href={button.href}>\n {button.text}\n {button.showArrow && <HiArrowRight className=\"w-4 h-4\" />}\n </a>\n </Button>\n ))}\n </div>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@mdxui/primitives'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { cn } from '../../../../lib/utils'\n\nexport interface FAQItem {\n question: string\n answer: string\n}\n\nexport interface FAQProps {\n heading?: string\n faqs?: FAQItem[]\n backgroundColor?: string\n className?: string\n}\n\nconst defaultFaqs: FAQItem[] = [\n {\n question: 'How do I get started?',\n answer: 'Choose your plan, connect your GitHub account, and Priya starts working. Setup takes 5 minutes.',\n },\n {\n question: 'Does it work with private repos?',\n answer: 'Yes, both plans work with private and public repositories.',\n },\n {\n question: 'What if it makes a mistake?',\n answer: 'You can override any decision. Priya learns from your corrections.',\n },\n {\n question: 'Can I switch plans later?',\n answer: 'Yes, upgrade or downgrade anytime. Changes take effect immediately.',\n },\n {\n question: 'What about Enterprise?',\n answer: \"Contact us for custom solutions tailored to your organization's needs, including dedicated support, custom workflows, and enterprise-grade SLAs.\",\n },\n {\n question: 'Is Priya SOC 2 and HIPAA compliant?',\n answer: 'Yes, Priya is SOC 2 Type II certified and HIPAA compliant, ensuring your data is handled with the highest security and privacy standards.',\n },\n]\n\nexport function FAQ({ heading = 'FAQs', faqs = defaultFaqs, backgroundColor = 'bg-background', className }: FAQProps) {\n return (\n <section id=\"faq\" className={cn(`py-20 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-4xl mx-auto\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center mb-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n </div>\n </ScrollReveal>\n\n <Accordion type=\"single\" collapsible className=\"space-y-4\">\n {faqs.map((faq, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={0.15 + index * 0.05}>\n <AccordionItem value={`item-${index}`} className=\"rounded-xl px-4 sm:px-6 border border-border bg-card shadow-sm\">\n <AccordionTrigger className=\"hover:no-underline py-5 text-base font-medium text-foreground\">{faq.question}</AccordionTrigger>\n <AccordionContent className=\"pb-5 text-sm text-foreground/70 leading-relaxed\">{faq.answer}</AccordionContent>\n </AccordionItem>\n </ScrollReveal>\n ))}\n </Accordion>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { useState, useEffect } from 'react'\nimport Link from 'next/link'\nimport { Menu, X } from 'lucide-react'\nimport { motion, AnimatePresence } from 'motion/react'\nimport { cn } from '../../../../lib/utils'\nimport { Button } from '../../ui/button'\n\nexport interface NavLink {\n label: string\n href: string\n}\n\nexport interface NavigationProps {\n logo?: string | React.ReactNode\n logoHref?: string\n links?: NavLink[]\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'accent'\n className?: string\n maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full'\n sticky?: boolean\n showScrollEffect?: boolean\n}\n\nexport function Navigation({\n logo = 'Priya',\n logoHref = '/',\n links = [\n { label: 'Features', href: '#features' },\n { label: 'Pricing', href: '#pricing' },\n { label: 'FAQ', href: '#faq' },\n ],\n ctaText = 'Hire me',\n ctaHref = '#pricing',\n ctaVariant = 'secondary',\n className,\n maxWidth = '7xl',\n sticky = true,\n showScrollEffect = true,\n}: NavigationProps) {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [isScrolled, setIsScrolled] = useState(false)\n\n useEffect(() => {\n if (!showScrollEffect) return\n\n const handleScroll = () => {\n setIsScrolled(window.scrollY > 10)\n }\n\n window.addEventListener('scroll', handleScroll)\n return () => window.removeEventListener('scroll', handleScroll)\n }, [showScrollEffect])\n\n const maxWidthClass = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n '3xl': 'max-w-3xl',\n '4xl': 'max-w-4xl',\n '5xl': 'max-w-5xl',\n '6xl': 'max-w-6xl',\n '7xl': 'max-w-7xl',\n full: 'max-w-full',\n }[maxWidth]\n\n return (\n <nav\n className={cn(\n 'z-50 w-full transition-all duration-300',\n sticky && 'sticky top-0',\n showScrollEffect && isScrolled ? 'bg-background/95 backdrop-blur-md' : 'bg-background',\n className\n )}\n >\n <div className={cn(maxWidthClass, 'mx-auto px-6 lg:px-12 py-4')}>\n <div className=\"flex items-center justify-between\">\n {/* Logo */}\n <div className=\"flex items-center\">\n <Link href={logoHref} className=\"flex items-center\">\n {typeof logo === 'string' ? <span className=\"text-3xl font-base text-foreground font-halant\">{logo}</span> : logo}\n </Link>\n </div>\n\n {/* Desktop Navigation */}\n {links && links.length > 0 && (\n <div className=\"hidden lg:flex items-center gap-8\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"text-sm text-foreground hover:opacity-60 transition-opacity\">\n {link.label}\n </a>\n ))}\n </div>\n )}\n\n {/* CTA Button */}\n {ctaText && ctaHref && (\n <div className=\"hidden lg:flex items-center\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n )}\n\n {/* Mobile Menu Button */}\n <button className=\"lg:hidden p-2 text-foreground\" onClick={() => setMobileMenuOpen(!mobileMenuOpen)} aria-label=\"Toggle menu\">\n {mobileMenuOpen ? <X className=\"w-6 h-6\" /> : <Menu className=\"w-6 h-6\" />}\n </button>\n </div>\n\n {/* Mobile Menu */}\n <AnimatePresence>\n {mobileMenuOpen && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: 'auto' }}\n exit={{ opacity: 0, height: 0 }}\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className=\"lg:hidden overflow-hidden\"\n >\n <div className=\"mt-4 py-4 rounded-xl bg-card\">\n <div className=\"flex flex-col gap-4 px-6\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"py-2 text-foreground hover:opacity-70 transition-colors\" onClick={() => setMobileMenuOpen(false)}>\n {link.label}\n </a>\n ))}\n {ctaText && ctaHref && (\n <Button asChild variant={ctaVariant} className=\"mt-2\" onClick={() => setMobileMenuOpen(false)}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n )}\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </nav>\n )\n}\n","'use client'\n\n/**\n * Baseline footer (named-agents components/footer.tsx) — the page closes on\n * the persona's fixed near-black surface: `bg-[#111011] text-white`, the same\n * in light and dark (the baseline hardcodes it; its dark-mode\n * --color-surface-sunken is tuned to land on this footer color). The ink\n * treatment is the design, not a theme accident, so this port keeps the\n * baseline's literal white/* classes instead of re-pointing onto the cream\n * token vocabulary — re-tokenizing it onto bg-card was exactly the drift that\n * turned the footer cream.\n *\n * Deviation from baseline: email submit fires the `onEmailSubmit` callback\n * (the baseline toasts via sonner — a dependency this package doesn't carry).\n */\n\nimport Link from 'next/link'\nimport { FaGithub, FaXTwitter } from 'react-icons/fa6'\nimport { SiNpm } from 'react-icons/si'\nimport { FaArrowRight } from 'react-icons/fa6'\nimport { Input } from '../../ui/input'\nimport type { IconType } from 'react-icons'\nimport { cn } from '../../../../lib/utils'\n\nexport interface SocialLink {\n href: string\n icon: IconType\n label: string\n}\n\nexport interface QuickLink {\n href: string\n label: string\n}\n\nexport interface FooterProps {\n logo?: string\n description?: string\n socialLinks?: SocialLink[]\n quickLinks?: QuickLink[]\n contactTitle?: string\n emailPlaceholder?: string\n onEmailSubmit?: (email: string) => void\n copyrightText?: string\n showThemeToggle?: boolean\n className?: string\n}\n\nexport function Footer({\n logo = 'Priya',\n description = 'Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.',\n socialLinks = [\n { href: 'https://github.com', icon: FaGithub, label: 'GitHub' },\n { href: 'https://npmjs.com', icon: SiNpm, label: 'npm' },\n // X always points at the .do brand account (do-design-agency HARD rule);\n // GitHub/npm stay product-specific overrides.\n { href: 'https://x.com/dotdo_ai', icon: FaXTwitter, label: 'X (Twitter)' },\n ],\n quickLinks = [\n { href: '/#pricing', label: 'Pricing' },\n { href: '/#features', label: 'How it works' },\n { href: '/contact', label: 'Contact' },\n ],\n contactTitle = 'Stay in touch',\n emailPlaceholder = 'Enter your email',\n onEmailSubmit,\n copyrightText = 'Priya.do © 2025. All rights reserved.',\n className,\n}: FooterProps) {\n const handleEmailSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const formData = new FormData(form)\n const email = formData.get('email') as string\n if (onEmailSubmit) {\n onEmailSubmit(email)\n }\n form.reset()\n }\n\n return (\n <footer className={cn('py-16 px-6 lg:px-12 bg-[#111011] text-white', className)}>\n <div className=\"max-w-7xl mx-auto\">\n <div className=\"grid md:grid-cols-5 gap-12 mb-12\">\n {/* Logo & Description */}\n <div className=\"md:col-span-2\">\n <Link href=\"/\" className=\"inline-block mb-4\">\n <div className=\"text-3xl font-base text-white font-halant\">{logo}</div>\n </Link>\n <p className=\"max-w-md text-sm leading-relaxed text-white/70 mb-6\">{description}</p>\n\n {/* Social Icons */}\n <div className=\"flex items-center gap-4\">\n {socialLinks.map((link) => {\n const Icon = link.icon\n return (\n <Link\n key={link.label}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-white/70 transition-colors hover:text-white\"\n aria-label={link.label}\n >\n <Icon className=\"w-5 h-5\" />\n </Link>\n )\n })}\n </div>\n </div>\n\n {/* Quick Links */}\n <div>\n <h3 className=\"font-semibold text-base mb-4 text-white\">Quick Links</h3>\n <ul className=\"space-y-2\">\n {quickLinks.map((link) => (\n <li key={link.label}>\n <Link href={link.href} className=\"text-sm text-white/70 transition-colors hover:text-white\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n\n {/* Contact Us */}\n <div className=\"w-full md:col-span-2 md:flex md:flex-col md:items-end\">\n <div className=\"w-full md:max-w-sm\">\n <h3 className=\"font-semibold text-base mb-4 text-white\">{contactTitle}</h3>\n <form onSubmit={handleEmailSubmit} className=\"relative\">\n <Input\n type=\"email\"\n name=\"email\"\n placeholder={emailPlaceholder}\n required\n className=\"w-full bg-white/10 border-white/20 text-white placeholder:text-white/50 pr-12\"\n />\n <button\n type=\"submit\"\n className=\"absolute right-1 top-1/2 -translate-y-1/2 bg-white text-gray-900 hover:bg-white/90 active:bg-[#111011] active:text-white px-3 py-3 rounded-md transition-colors\"\n aria-label=\"Submit email\"\n >\n <FaArrowRight className=\"w-3 h-3\" />\n </button>\n </form>\n </div>\n </div>\n </div>\n\n {/* Bottom Bar */}\n <div className=\"border-t border-white/10 pt-8\">\n <div className=\"flex flex-col md:flex-row justify-between items-center gap-4\">\n <p className=\"text-sm text-white/60\">{copyrightText}</p>\n </div>\n </div>\n </div>\n </footer>\n )\n}\n","'use client'\n\n/**\n * The named-agents baseline Input (components/ui/input.tsx), verbatim on the\n * baseline token vocabulary. Notably `h-11` and `bg-transparent` — the footer's\n * email capture positions a `py-3` submit button inside the field, which\n * overflows @mdxui/primitives' `h-9 bg-background` Input (the drift that broke\n * the footer input's padding).\n */\n\nimport * as React from 'react'\nimport { cn } from '../../../../lib/utils'\n\nexport const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'flex h-11 w-full rounded-md border border-(--color-border) bg-transparent px-3 py-1 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-(--color-fg) placeholder:text-(--color-fg-muted) focus-visible:outline-none focus-visible:border-(--color-border-strong) focus-visible:ring-1 focus-visible:ring-(--color-ring) disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\nInput.displayName = 'Input'\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","defaultFeatures","Check","Image","jsx","jsxs","Image","Check","jsx","jsxs","jsx","jsxs","useState","useEffect","motion","jsx","jsxs","useState","useEffect","motion","Link","React","jsx","jsx","jsxs","Link"]}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { CTA, CTAButton, CTAProps, FAQ, FAQItem, FAQProps, Feature, FeatureItem, Features, FeaturesProps, Footer, FooterProps, Hero, HeroProps, NavLink, Navigation, NavigationProps, Pricing, PricingFeature, PricingProps, PricingTier, PricingTierFeature, PricingTiers, PricingTiersProps, QuickLink, SocialLink } from './components/index.js';
2
- export { AnimatedBeam, AnimatedBeamProps, CodeWindow, CodeWindowProps, GridPattern, GridPatternProps, Marquee, MarqueeProps, ScrollReveal, ScrollRevealProps } from './shared/index.js';
2
+ export { Button, ButtonProps, ButtonSize, ButtonVariant, CodeWindow, CodeWindowProps, Input, Marquee, MarqueeProps, ScrollReveal, ScrollRevealProps } from './shared/index.js';
3
3
  import { ClassValue } from 'clsx';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react-icons';