@mdxui/named 6.3.1 → 6.4.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/view/view.tsx","../../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/problem/problem.tsx","../../src/components/contact/contact.tsx","../../src/components/integration/integration.tsx","../../src/shared/animated-beam/animated-beam.tsx","../../src/shared/grid-pattern/grid-pattern.tsx","../../src/view/mapper.ts"],"sourcesContent":["'use client'\n/**\n * Named-agent landing composition — the named-persona dialect of the Agents\n * archetype (\"Meet Priya\": a named persona, not a fungible role — cf. the\n * role-based-agent dialect in @mdxui/role-based-agent).\n *\n * Round-3 (ui#30): the theming envelope + neo chrome moved into the shared\n * @mdxui/dialect layer, so this view is `mapper → <DialectShell><NeoChrome>\n * {body}</NeoChrome></DialectShell>` on the uniform DialectViewProps contract.\n *\n * BODY = the named dialect's own theme-aware components: persona badge + tool\n * marquee Hero, workflow-chip Problem, code-window Features, AnimatedBeam\n * Integration, single/tiers Pricing, FAQ, CTA, and a real Contact form. No neo\n * \"documented exceptions\" — the native components express the dialect grammar.\n * Personas carry no nav menu, so NeoChrome gets no `nav`.\n */\n\nimport { DialectShell, NeoChrome } from '@mdxui/dialect'\nimport type { DialectViewProps } from '@mdxui/dialect'\nimport {\n Hero,\n Problem,\n Features,\n Integration,\n Pricing,\n PricingTiers,\n Contact,\n CTA,\n FAQ,\n} from '../components'\nimport { mapWorkflows } from './mapper'\nimport type { NamedAgentLandingContent } from './types'\n\nexport type NamedAgentViewProps = DialectViewProps<NamedAgentLandingContent>\n\nexport function NamedAgentView({ content, theme, mode, brandName, hostname }: NamedAgentViewProps) {\n const { hero, problem, features, integration, pricing, faq, cta, contact } = content\n\n return (\n <DialectShell theme={theme} mode={mode}>\n <NeoChrome\n brandName={brandName}\n hostname={hostname}\n primaryCta={{ text: hero.ctaText, url: hero.ctaHref }}\n openInAIPrompt={`Help me decide whether ${brandName} fits my team's workflow`}\n >\n <Hero\n badgeEmoji={hero.badgeEmoji}\n badgeText={hero.badgeText}\n badgeHref={hero.badgeHref}\n heading={hero.heading}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n rightImageSrc={hero.rightImageSrc}\n rightImageAlt={hero.rightImageAlt}\n showIconOverlay={hero.showIconOverlay}\n marqueeTitle={hero.marqueeTitle}\n marqueeImages={hero.marqueeImages}\n />\n\n <Problem\n heading={problem.heading}\n workflows={mapWorkflows(problem.workflows)}\n subheading={problem.subheading}\n subheadingHighlight={problem.subheadingHighlight}\n />\n\n <Features\n heading={features.heading}\n description={features.description}\n features={features.features}\n />\n\n {integration && (\n <Integration\n title={integration.title}\n description={integration.description}\n buttonText={integration.buttonText}\n buttonHref={integration.buttonHref}\n leftNode={integration.leftNode}\n rightNode={integration.rightNode}\n />\n )}\n\n {/* PRICING — discriminated fork: single tier → Pricing; multi-tier → PricingTiers. */}\n {pricing.variant === 'single' ? (\n <Pricing\n heading={pricing.heading}\n subheading={pricing.subheading}\n price={pricing.price}\n priceUnit={pricing.priceUnit}\n trialText={pricing.trialText}\n ctaText={pricing.ctaText}\n ctaHref={pricing.ctaHref}\n featuresHeading={pricing.featuresHeading}\n features={pricing.features}\n securityNote={pricing.securityNote}\n />\n ) : (\n <PricingTiers\n heading={pricing.heading}\n subheading={pricing.subheading}\n tiers={pricing.tiers}\n securityNote={pricing.securityNote}\n />\n )}\n\n {/* FAQ before the final CTA (do-design-agency). */}\n <FAQ heading={faq.heading} faqs={faq.faqs} />\n\n <CTA heading={cta.heading} subheading={cta.subheading} buttons={cta.buttons} />\n\n {contact && (\n <Contact\n heading={contact.heading}\n subheading={contact.subheading}\n fields={contact.fields}\n submitButtonText={contact.submitButtonText}\n />\n )}\n </NeoChrome>\n </DialectShell>\n )\n}\n\nexport default NamedAgentView\n","'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 marquee token only renders as an <img> when its bytes are guaranteed to\n * resolve — an absolute http(s)/protocol-relative/data URL. Bare brand tokens\n * (`\"linear\"`) would become `<img src=\"/linear\">` → 404 on the consumer host\n * (the live priya.studio.sb marquee bug), so they render as text logos. */\nconst isLogoUrl = (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 rightImageSrc = '/images/hero/hero-main.png',\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 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=\"grid lg:grid-cols-2 gap-8 lg:gap-16 items-start mb-16 lg:mb-20\">\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-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 */}\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}\n alt={rightImageAlt}\n fill\n className=\"object-cover object-left-center rounded-2xl\"\n priority\n sizes={rightImageSizes}\n />\n </div>\n </div>\n </div>\n </ScrollReveal>\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 isLogoUrl(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 rounded-[36px] gap-16 h-min max-w-[1400px] py-10 sm:py-20\">\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-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-6 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-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-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-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-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-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 type { IconType } from 'react-icons'\nimport { FaInbox, FaCalendarAlt, FaListUl, FaFileAlt, FaRocket, FaProjectDiagram, FaBug, FaLightbulb } from 'react-icons/fa'\nimport { Marquee } from '../../shared/marquee'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface WorkflowItem {\n icon: IconType\n label: string\n}\n\nexport interface ProblemProps {\n heading?: string\n headingHighlight?: string\n workflows?: WorkflowItem[]\n subheading?: string\n subheadingHighlight?: string\n highlightColor?: string\n marqueeDuration?: string\n marqueeGap?: string\n backgroundColor?: string\n className?: string\n}\n\nconst defaultWorkflows: WorkflowItem[] = [\n { icon: FaInbox, label: 'Issue triage' },\n { icon: FaCalendarAlt, label: 'Sprint planning' },\n { icon: FaListUl, label: 'Backlog grooming' },\n { icon: FaFileAlt, label: 'Status updates' },\n { icon: FaRocket, label: 'Release planning' },\n { icon: FaProjectDiagram, label: 'Dependency tracking' },\n { icon: FaBug, label: 'Bug prioritization' },\n { icon: FaLightbulb, label: 'Feature requests' },\n]\n\nexport function Problem({\n heading = 'Product managers <strong>spend 15+ hours</strong> per week on busywork',\n workflows = defaultWorkflows,\n subheading = 'What if all of that just... ',\n subheadingHighlight = 'happened automatically?',\n highlightColor = 'bg-primary/20',\n marqueeDuration = '30s',\n marqueeGap = '0.5rem',\n backgroundColor = 'bg-background',\n className,\n}: ProblemProps) {\n return (\n <section id=\"problem\" className={cn(`py-20 md:pb-32 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"text-center space-y-8\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n {/* Heading is authored copy (may carry simple <strong> emphasis) from\n the trusted cascade emit — rendered as markup so the emphasis\n survives. */}\n <h2\n className=\"font-normal text-[clamp(36px,4vw,40px)] leading-tight text-foreground\"\n dangerouslySetInnerHTML={{ __html: heading }}\n />\n </ScrollReveal>\n\n <ScrollReveal direction=\"none\" delay={0.2}>\n <div className=\"relative py-6\">\n {/* Left gradient fade */}\n <div className=\"absolute left-0 top-0 bottom-0 w-32 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none\"></div>\n\n {/* Right gradient fade */}\n <div className=\"absolute right-0 top-0 bottom-0 w-32 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none\"></div>\n\n <Marquee\n className=\"[--duration:30s] [--gap:0.5rem]\"\n style={\n {\n '--duration': marqueeDuration,\n '--gap': marqueeGap,\n } as React.CSSProperties\n }\n >\n {workflows.map((workflow, index) => (\n <div key={index} className=\"flex items-center gap-2.5 pl-1.5 pr-3.5 py-1.5 bg-card border border-border rounded-full\">\n <div className=\"flex items-center justify-center w-7 h-7 rounded-full bg-background\">\n <workflow.icon className=\"w-3.5 h-3.5 text-foreground\" />\n </div>\n <span className=\"text-sm text-foreground whitespace-nowrap\">{workflow.label}</span>\n </div>\n ))}\n </Marquee>\n </div>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.3}>\n <div className=\"pt-2 md:pt-4\">\n <h3 className=\"font-normal text-[clamp(26px,3.5vw,32px)] leading-tight text-foreground\">\n {subheading}\n <span className=\"relative inline-block\">\n <span className=\"relative z-10\">{subheadingHighlight}</span>\n <span className={`absolute bottom-1 left-0 w-full h-3 ${highlightColor} opacity-30 -rotate-1`}></span>\n </span>\n </h3>\n </div>\n </ScrollReveal>\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { useState } from 'react'\nimport { Button, Input, Label, Textarea } from '@mdxui/primitives'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface FormField {\n id: string\n label: string\n type: 'text' | 'email' | 'tel' | 'textarea'\n placeholder?: string\n required?: boolean\n}\n\nexport interface ContactProps {\n heading?: string\n subheading?: string\n fields?: FormField[]\n submitButtonText?: string\n successMessage?: string\n errorMessage?: string\n onSubmit?: (data: Record<string, string>) => Promise<void> | void\n backgroundColor?: string\n className?: string\n}\n\nconst defaultFields: FormField[] = [\n {\n id: 'name',\n label: 'Name',\n type: 'text',\n required: true,\n },\n {\n id: 'email',\n label: 'Company Email',\n type: 'email',\n required: true,\n },\n {\n id: 'message',\n label: 'Message',\n type: 'textarea',\n placeholder: 'Tell us about your use case, team size, or any other questions you may have.',\n required: true,\n },\n]\n\nexport function Contact({\n heading = 'Get in touch',\n subheading = \"Have questions about use cases, pricing, or anything else? Let's chat!\",\n fields = defaultFields,\n submitButtonText = 'Submit',\n successMessage = \"Thanks for reaching out! I'll get back to you within 24 hours.\",\n errorMessage = 'Hmm, something went wrong. Mind trying again?',\n onSubmit,\n backgroundColor = 'bg-background',\n className,\n}: ContactProps) {\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [formData, setFormData] = useState<Record<string, string>>({})\n const [submitStatus, setSubmitStatus] = useState<'idle' | 'success' | 'error'>('idle')\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setIsSubmitting(true)\n setSubmitStatus('idle')\n\n try {\n if (onSubmit) {\n await onSubmit(formData)\n }\n setSubmitStatus('success')\n setFormData({})\n ;(e.target as HTMLFormElement).reset()\n } catch {\n setSubmitStatus('error')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFormData((prev) => ({\n ...prev,\n [e.target.id]: e.target.value,\n }))\n }\n\n return (\n <section className={cn(`relative py-12 md:py-32 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-3xl mx-auto\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"mb-14 text-center\">\n <h1 className=\"font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4\">{heading}</h1>\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 <form\n onSubmit={handleSubmit}\n className=\"mx-auto flex max-w-lg flex-col gap-6 bg-card p-6 md:p-8 rounded-3xl border border-border feature-card-shadow\"\n >\n {fields.map((field) => (\n <div key={field.id} className=\"grid w-full items-center gap-2\">\n <Label htmlFor={field.id} className=\"text-foreground\">\n {field.label}\n {field.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n {field.type === 'textarea' ? (\n <Textarea id={field.id} placeholder={field.placeholder} required={field.required} onChange={handleChange} className=\"min-h-[120px]\" />\n ) : (\n <Input type={field.type} id={field.id} placeholder={field.placeholder} required={field.required} onChange={handleChange} />\n )}\n </div>\n ))}\n <Button type=\"submit\" className=\"w-full\" disabled={isSubmitting}>\n {isSubmitting ? 'Submitting...' : submitButtonText}\n </Button>\n {submitStatus === 'success' && <p className=\"text-primary text-sm text-center\">{successMessage}</p>}\n {submitStatus === 'error' && <p className=\"text-destructive text-sm text-center\">{errorMessage}</p>}\n </form>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { forwardRef, useRef, useEffect, useState } from 'react'\nimport { cn } from '../../lib/utils'\nimport { AnimatedBeam } from '../../shared/animated-beam'\nimport { GridPattern } from '../../shared/grid-pattern'\nimport Image from 'next/image'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Button } from '@mdxui/primitives'\n\nconst Square = forwardRef<HTMLDivElement, { className?: string; children?: React.ReactNode }>(({ className, children }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('z-10 flex size-16 items-center justify-center rounded-lg bg-card border border-border p-3 integration-square-shadow', className)}\n >\n {children}\n </div>\n )\n})\n\nSquare.displayName = 'Square'\n\nexport interface IntegrationNode {\n type: 'image' | 'icon' | 'component'\n content: string | React.ReactNode\n alt?: string\n className?: string\n}\n\nexport interface AnimationConfig {\n startYOffset?: number\n endYOffset?: number\n curvature?: number\n duration?: number\n reverse?: boolean\n}\n\nexport interface IntegrationProps {\n title?: string\n description?: string\n buttonText?: string\n buttonHref?: string\n leftNode: IntegrationNode\n rightNode: IntegrationNode\n beamAnimations?: AnimationConfig[]\n gridPatternWidth?: number\n gridPatternHeight?: number\n maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl'\n className?: string\n contentOrder?: 'left' | 'right'\n}\n\nexport function Integration({\n title = 'Connect in Seconds',\n description = 'Just connect your account and get started immediately – no configuration, no setup, no hassle.',\n buttonText = 'Get Started',\n buttonHref = '#pricing',\n leftNode,\n rightNode,\n beamAnimations = [\n { startYOffset: 10, endYOffset: 10, curvature: -20, duration: 3 },\n { startYOffset: -10, endYOffset: -10, curvature: 20, duration: 3, reverse: true },\n ],\n gridPatternWidth = 30,\n gridPatternHeight = 30,\n maxWidth = '5xl',\n className,\n contentOrder = 'left',\n}: IntegrationProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const leftRef = useRef<HTMLDivElement>(null)\n const rightRef = useRef<HTMLDivElement>(null)\n const [isDark, setIsDark] = useState(false)\n\n useEffect(() => {\n const checkDarkMode = () => {\n const isDarkMode = document.documentElement.classList.contains('dark') || window.matchMedia('(prefers-color-scheme: dark)').matches\n setIsDark(isDarkMode)\n }\n\n checkDarkMode()\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n const observer = new MutationObserver(checkDarkMode)\n\n mediaQuery.addEventListener('change', checkDarkMode)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n })\n\n return () => {\n mediaQuery.removeEventListener('change', checkDarkMode)\n observer.disconnect()\n }\n }, [])\n\n const renderNode = (node: IntegrationNode, ref: React.RefObject<HTMLDivElement | null>) => {\n const squareContent = (() => {\n if (node.type === 'image' && typeof node.content === 'string') {\n return (\n <div className=\"relative w-full h-full\">\n <Image src={node.content} alt={node.alt || 'Integration'} fill className=\"object-cover rounded-lg\" />\n </div>\n )\n }\n if (node.type === 'icon' && typeof node.content === 'string') {\n return <div className={cn('text-foreground', node.className)}>{node.content}</div>\n }\n return node.content\n })()\n\n return (\n <Square ref={ref} className={cn('size-20', node.type === 'image' ? 'p-0' : '', node.className)}>\n {squareContent}\n </Square>\n )\n }\n\n const maxWidthClasses = {\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 }\n\n const content = (\n <div className=\"space-y-6\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <h2 className=\"font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground\">{title}</h2>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.2}>\n <p className=\"text-base text-muted-foreground max-w-lg\">{description}</p>\n </ScrollReveal>\n\n {buttonText && buttonHref && (\n <ScrollReveal direction=\"up\" delay={0.3}>\n <Button asChild variant=\"default\">\n <a href={buttonHref}>{buttonText}</a>\n </Button>\n </ScrollReveal>\n )}\n </div>\n )\n\n const animation = (\n <ScrollReveal direction={contentOrder === 'left' ? 'right' : 'left'} delay={0.2}>\n <div className=\"relative flex aspect-square max-w-md mx-auto w-full items-center justify-center overflow-hidden rounded-lg\" ref={containerRef}>\n <GridPattern\n width={gridPatternWidth}\n height={gridPatternHeight}\n className=\"opacity-30 mask-[radial-gradient(ellipse_at_center,black_40%,transparent_85%)] dark:mask-[radial-gradient(ellipse_at_center,white_40%,transparent_85%)]\"\n />\n <div className=\"flex size-full flex-row items-center justify-center gap-20 relative z-10\">\n <div className=\"flex flex-col justify-center\">{renderNode(leftNode, leftRef)}</div>\n\n <div className=\"flex flex-col justify-center\">{renderNode(rightNode, rightRef)}</div>\n </div>\n\n {beamAnimations.map((config, index) => (\n <AnimatedBeam\n key={index}\n containerRef={containerRef}\n fromRef={leftRef}\n toRef={rightRef}\n startYOffset={config.startYOffset}\n endYOffset={config.endYOffset}\n curvature={config.curvature}\n duration={config.duration}\n reverse={config.reverse}\n pathColor={isDark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'}\n />\n ))}\n </div>\n </ScrollReveal>\n )\n\n return (\n <section className={cn('pt-10 sm:pt-0 px-8 lg:px-24 bg-background', className)}>\n <div className={cn(maxWidthClasses[maxWidth], 'mx-auto')}>\n <div className=\"grid lg:grid-cols-2 gap-1 items-center\">\n {contentOrder === 'left' ? (\n <>\n {content}\n {animation}\n </>\n ) : (\n <>\n {animation}\n {content}\n </>\n )}\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { RefObject, useEffect, useId, useState } from 'react'\nimport { motion } from 'motion/react'\nimport { cn } from '../../lib/utils'\n\nexport interface AnimatedBeamProps {\n className?: string\n containerRef: RefObject<HTMLElement | null>\n fromRef: RefObject<HTMLElement | null>\n toRef: RefObject<HTMLElement | null>\n curvature?: number\n reverse?: boolean\n pathColor?: string\n pathWidth?: number\n pathOpacity?: number\n gradientStartColor?: string\n gradientStopColor?: string\n delay?: number\n duration?: number\n startXOffset?: number\n startYOffset?: number\n endXOffset?: number\n endYOffset?: number\n}\n\nexport function AnimatedBeam({\n className,\n containerRef,\n fromRef,\n toRef,\n curvature = 0,\n reverse = false,\n duration = Math.random() * 3 + 4,\n delay = 0,\n pathColor = 'gray',\n pathWidth = 2,\n pathOpacity = 0.2,\n gradientStartColor = '#ffaa40',\n gradientStopColor = '#9c40ff',\n startXOffset = 0,\n startYOffset = 0,\n endXOffset = 0,\n endYOffset = 0,\n}: AnimatedBeamProps) {\n const id = useId()\n const [pathD, setPathD] = useState('')\n const [svgDimensions, setSvgDimensions] = useState({ width: 0, height: 0 })\n\n const gradientCoordinates = reverse\n ? {\n x1: ['90%', '-10%'],\n x2: ['100%', '0%'],\n y1: ['0%', '0%'],\n y2: ['0%', '0%'],\n }\n : {\n x1: ['10%', '110%'],\n x2: ['0%', '100%'],\n y1: ['0%', '0%'],\n y2: ['0%', '0%'],\n }\n\n useEffect(() => {\n const updatePath = () => {\n if (containerRef.current && fromRef.current && toRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect()\n const rectA = fromRef.current.getBoundingClientRect()\n const rectB = toRef.current.getBoundingClientRect()\n\n const svgWidth = containerRect.width\n const svgHeight = containerRect.height\n setSvgDimensions({ width: svgWidth, height: svgHeight })\n\n const startX = rectA.left - containerRect.left + rectA.width / 2 + startXOffset\n const startY = rectA.top - containerRect.top + rectA.height / 2 + startYOffset\n const endX = rectB.left - containerRect.left + rectB.width / 2 + endXOffset\n const endY = rectB.top - containerRect.top + rectB.height / 2 + endYOffset\n\n const controlY = startY - curvature\n const d = `M ${startX},${startY} Q ${(startX + endX) / 2},${controlY} ${endX},${endY}`\n setPathD(d)\n }\n }\n\n const resizeObserver = new ResizeObserver(() => {\n updatePath()\n })\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current)\n }\n\n updatePath()\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [containerRef, fromRef, toRef, curvature, startXOffset, startYOffset, endXOffset, endYOffset])\n\n return (\n <svg\n fill=\"none\"\n width={svgDimensions.width}\n height={svgDimensions.height}\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn('pointer-events-none absolute top-0 left-0 transform-gpu stroke-2', className)}\n viewBox={`0 0 ${svgDimensions.width} ${svgDimensions.height}`}\n >\n <path d={pathD} stroke={pathColor} strokeWidth={pathWidth} strokeOpacity={pathOpacity} strokeLinecap=\"round\" />\n <path d={pathD} strokeWidth={pathWidth} stroke={`url(#${id})`} strokeOpacity=\"1\" strokeLinecap=\"round\" />\n <defs>\n <motion.linearGradient\n className=\"transform-gpu\"\n id={id}\n gradientUnits={'userSpaceOnUse'}\n initial={{\n x1: '0%',\n x2: '0%',\n y1: '0%',\n y2: '0%',\n }}\n animate={{\n x1: gradientCoordinates.x1,\n x2: gradientCoordinates.x2,\n y1: gradientCoordinates.y1,\n y2: gradientCoordinates.y2,\n }}\n transition={{\n delay,\n duration,\n ease: [0.16, 1, 0.3, 1],\n repeat: Infinity,\n repeatDelay: 0,\n }}\n >\n <stop stopColor={gradientStartColor} stopOpacity=\"0\"></stop>\n <stop stopColor={gradientStartColor}></stop>\n <stop offset=\"32.5%\" stopColor={gradientStopColor}></stop>\n <stop offset=\"100%\" stopColor={gradientStopColor} stopOpacity=\"0\"></stop>\n </motion.linearGradient>\n </defs>\n </svg>\n )\n}\n","import { useId } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface GridPatternProps extends React.SVGProps<SVGSVGElement> {\n width?: number\n height?: number\n x?: number\n y?: number\n squares?: Array<[x: number, y: number]>\n strokeDasharray?: string\n className?: string\n}\n\nexport function GridPattern({\n width = 40,\n height = 40,\n x = -1,\n y = -1,\n strokeDasharray = '0',\n squares,\n className,\n ...props\n}: GridPatternProps) {\n const id = useId()\n\n return (\n <svg\n aria-hidden=\"true\"\n className={cn('pointer-events-none absolute inset-0 h-full w-full fill-muted-foreground/20 stroke-muted-foreground/20', className)}\n {...props}\n >\n <defs>\n <pattern id={id} width={width} height={height} patternUnits=\"userSpaceOnUse\" x={x} y={y}>\n <path d={`M.5 ${height}V.5H${width}`} fill=\"none\" strokeDasharray={strokeDasharray} />\n </pattern>\n </defs>\n <rect width=\"100%\" height=\"100%\" strokeWidth={0} fill={`url(#${id})`} />\n {squares && (\n <svg x={x} y={y} className=\"overflow-visible\">\n {squares.map(([sx, sy]) => (\n <rect strokeWidth=\"0\" key={`${sx}-${sy}`} width={width - 1} height={height - 1} x={sx * width + 1} y={sy * height + 1} />\n ))}\n </svg>\n )}\n </svg>\n )\n}\n","// Pure mapper for the named-agent landing view. The named dialect components\n// in `../components` accept the same field vocabulary as `NamedAgentLandingContent`,\n// so the only real reconciliation is resolving the wire's free-form workflow\n// `icon` HINT string into a react-icons component (the wire can't carry a React\n// type) — everything else passes through. Same input → same output, no I/O.\n\nimport type { IconType } from 'react-icons'\nimport {\n FaInbox,\n FaCalendarAlt,\n FaListUl,\n FaFileAlt,\n FaRocket,\n FaProjectDiagram,\n FaBug,\n FaLightbulb,\n FaRegDotCircle,\n} from 'react-icons/fa'\nimport type { WorkflowItem } from '../components/problem'\nimport type { NamedAgentWorkflow } from './types'\n\n/** Hint → glyph table. Hints are the free-form strings the cascade emits on\n * `problem.workflows[].icon`; unknown hints fall back to a neutral dot so a\n * chip never renders icon-less. */\nconst WORKFLOW_ICONS: Record<string, IconType> = {\n inbox: FaInbox,\n calendar: FaCalendarAlt,\n list: FaListUl,\n file: FaFileAlt,\n rocket: FaRocket,\n project: FaProjectDiagram,\n bug: FaBug,\n lightbulb: FaLightbulb,\n}\n\n/** Resolve one workflow icon hint to a react-icons component. */\nexport function resolveWorkflowIcon(hint: string): IconType {\n return WORKFLOW_ICONS[hint] ?? FaRegDotCircle\n}\n\n/** Map wire workflows ({ icon: hint, label }) → named Problem `WorkflowItem[]`\n * ({ icon: IconType, label }). */\nexport function mapWorkflows(workflows: NamedAgentWorkflow[]): WorkflowItem[] {\n return workflows.map((w) => ({ icon: resolveWorkflowIcon(w.icon), label: w.label }))\n}\n"],"mappings":"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","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","jsx","jsxs","Button","jsx","jsxs","Button","useEffect","useState","useState","motion","jsx","jsxs","useState","motion","useId","jsx","jsxs","useId","Image","Button","Fragment","jsx","jsxs","useState","useEffect","Image","FaInbox","FaCalendarAlt","FaListUl","FaFileAlt","FaRocket","FaProjectDiagram","FaBug","FaLightbulb","jsx","jsxs"]}
1
+ {"version":3,"sources":["../../src/view/view.tsx","../../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/problem/problem.tsx","../../src/components/contact/contact.tsx","../../src/components/integration/integration.tsx","../../src/shared/animated-beam/animated-beam.tsx","../../src/shared/grid-pattern/grid-pattern.tsx","../../src/view/mapper.ts"],"sourcesContent":["'use client'\n/**\n * Named-agent landing composition — the named-persona dialect of the Agents\n * archetype (\"Meet Priya\": a named persona, not a fungible role — cf. the\n * role-based-agent dialect in @mdxui/role-based-agent).\n *\n * Round-3 (ui#30): the theming envelope + neo chrome moved into the shared\n * @mdxui/dialect layer, so this view is `mapper → <DialectShell><NeoChrome>\n * {body}</NeoChrome></DialectShell>` on the uniform DialectViewProps contract.\n *\n * BODY = the named dialect's own theme-aware components: persona badge + tool\n * marquee Hero, workflow-chip Problem, code-window Features, AnimatedBeam\n * Integration, single/tiers Pricing, FAQ, CTA, and a real Contact form. No neo\n * \"documented exceptions\" — the native components express the dialect grammar.\n * Personas carry no nav menu, so NeoChrome gets no `nav`.\n */\n\nimport { DialectShell, NeoChrome } from '@mdxui/dialect'\nimport type { DialectViewProps } from '@mdxui/dialect'\nimport {\n Hero,\n Problem,\n Features,\n Integration,\n Pricing,\n PricingTiers,\n Contact,\n CTA,\n FAQ,\n} from '../components'\nimport { mapWorkflows } from './mapper'\nimport type { NamedAgentLandingContent } from './types'\n\nexport type NamedAgentViewProps = DialectViewProps<NamedAgentLandingContent>\n\nexport function NamedAgentView({ content, theme, mode, brandName, hostname }: NamedAgentViewProps) {\n const { hero, problem, features, integration, pricing, faq, cta, contact } = content\n\n return (\n <DialectShell theme={theme} mode={mode}>\n {/* Scope wrapper for the named theme envelope. `@mdxui/named/styles.css`\n scopes ALL named tokens/utilities (Halant `.font-halant` display face,\n the cream surface/ink palette re-pointed onto neo's --background/--card/\n --foreground/--muted-foreground/--border, the --radius-section/-image\n radii) under this `data-dialect=\"named\"` selector so the light baseline\n renders here WITHOUT colliding with the host's global neo tokens (which\n the other dialects depend on). The package ships JSX referencing these\n tokens; the CSS ships their definitions — consumers\n `@import \"@mdxui/named/styles.css\"`. */}\n <div data-dialect=\"named\">\n <NeoChrome\n brandName={brandName}\n hostname={hostname}\n primaryCta={{ text: hero.ctaText, url: hero.ctaHref }}\n openInAIPrompt={`Help me decide whether ${brandName} fits my team's workflow`}\n >\n <Hero\n badgeEmoji={hero.badgeEmoji}\n badgeText={hero.badgeText}\n badgeHref={hero.badgeHref}\n heading={hero.heading}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n rightImageSrc={hero.rightImageSrc}\n rightImageAlt={hero.rightImageAlt}\n showIconOverlay={hero.showIconOverlay}\n marqueeTitle={hero.marqueeTitle}\n marqueeImages={hero.marqueeImages}\n />\n\n <Problem\n heading={problem.heading}\n workflows={mapWorkflows(problem.workflows)}\n subheading={problem.subheading}\n subheadingHighlight={problem.subheadingHighlight}\n />\n\n <Features\n heading={features.heading}\n description={features.description}\n features={features.features}\n />\n\n {integration && (\n <Integration\n title={integration.title}\n description={integration.description}\n buttonText={integration.buttonText}\n buttonHref={integration.buttonHref}\n leftNode={integration.leftNode}\n rightNode={integration.rightNode}\n />\n )}\n\n {/* PRICING — discriminated fork: single tier → Pricing; multi-tier → PricingTiers. */}\n {pricing.variant === 'single' ? (\n <Pricing\n heading={pricing.heading}\n subheading={pricing.subheading}\n price={pricing.price}\n priceUnit={pricing.priceUnit}\n trialText={pricing.trialText}\n ctaText={pricing.ctaText}\n ctaHref={pricing.ctaHref}\n featuresHeading={pricing.featuresHeading}\n features={pricing.features}\n securityNote={pricing.securityNote}\n />\n ) : (\n <PricingTiers\n heading={pricing.heading}\n subheading={pricing.subheading}\n tiers={pricing.tiers}\n securityNote={pricing.securityNote}\n />\n )}\n\n {/* FAQ before the final CTA (do-design-agency). */}\n <FAQ heading={faq.heading} faqs={faq.faqs} />\n\n <CTA heading={cta.heading} subheading={cta.subheading} buttons={cta.buttons} />\n\n {contact && (\n <Contact\n heading={contact.heading}\n subheading={contact.subheading}\n fields={contact.fields}\n submitButtonText={contact.submitButtonText}\n />\n )}\n </NeoChrome>\n </div>\n </DialectShell>\n )\n}\n\nexport default NamedAgentView\n","'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 type { IconType } from 'react-icons'\nimport { FaInbox, FaCalendarAlt, FaListUl, FaFileAlt, FaRocket, FaProjectDiagram, FaBug, FaLightbulb } from 'react-icons/fa'\nimport { Marquee } from '../../shared/marquee'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface WorkflowItem {\n icon: IconType\n label: string\n}\n\nexport interface ProblemProps {\n heading?: string\n headingHighlight?: string\n workflows?: WorkflowItem[]\n subheading?: string\n subheadingHighlight?: string\n highlightColor?: string\n marqueeDuration?: string\n marqueeGap?: string\n backgroundColor?: string\n className?: string\n}\n\nconst defaultWorkflows: WorkflowItem[] = [\n { icon: FaInbox, label: 'Issue triage' },\n { icon: FaCalendarAlt, label: 'Sprint planning' },\n { icon: FaListUl, label: 'Backlog grooming' },\n { icon: FaFileAlt, label: 'Status updates' },\n { icon: FaRocket, label: 'Release planning' },\n { icon: FaProjectDiagram, label: 'Dependency tracking' },\n { icon: FaBug, label: 'Bug prioritization' },\n { icon: FaLightbulb, label: 'Feature requests' },\n]\n\nexport function Problem({\n heading = 'Product managers <strong>spend 15+ hours</strong> per week on busywork',\n workflows = defaultWorkflows,\n subheading = 'What if all of that just... ',\n subheadingHighlight = 'happened automatically?',\n highlightColor = 'bg-primary/20',\n marqueeDuration = '30s',\n marqueeGap = '0.5rem',\n backgroundColor = 'bg-background',\n className,\n}: ProblemProps) {\n return (\n <section id=\"problem\" className={cn(`py-20 md:pb-32 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"text-center space-y-8\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n {/* Heading is authored copy (may carry simple <strong> emphasis) from\n the trusted cascade emit — rendered as markup so the emphasis\n survives. */}\n <h2\n className=\"font-normal text-[clamp(36px,4vw,40px)] leading-tight text-foreground\"\n dangerouslySetInnerHTML={{ __html: heading }}\n />\n </ScrollReveal>\n\n <ScrollReveal direction=\"none\" delay={0.2}>\n <div className=\"relative py-6\">\n {/* Left gradient fade */}\n <div className=\"absolute left-0 top-0 bottom-0 w-32 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none\"></div>\n\n {/* Right gradient fade */}\n <div className=\"absolute right-0 top-0 bottom-0 w-32 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none\"></div>\n\n <Marquee\n className=\"[--duration:30s] [--gap:0.5rem]\"\n style={\n {\n '--duration': marqueeDuration,\n '--gap': marqueeGap,\n } as React.CSSProperties\n }\n >\n {workflows.map((workflow, index) => (\n <div key={index} className=\"flex items-center gap-2.5 pl-1.5 pr-3.5 py-1.5 bg-card border border-border rounded-full\">\n <div className=\"flex items-center justify-center w-7 h-7 rounded-full bg-background\">\n <workflow.icon className=\"w-3.5 h-3.5 text-foreground\" />\n </div>\n <span className=\"text-sm text-foreground whitespace-nowrap\">{workflow.label}</span>\n </div>\n ))}\n </Marquee>\n </div>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.3}>\n <div className=\"pt-2 md:pt-4\">\n <h3 className=\"font-normal text-[clamp(26px,3.5vw,32px)] leading-tight text-foreground\">\n {subheading}\n <span className=\"relative inline-block\">\n <span className=\"relative z-10\">{subheadingHighlight}</span>\n <span className={`absolute bottom-1 left-0 w-full h-3 ${highlightColor} opacity-30 -rotate-1`}></span>\n </span>\n </h3>\n </div>\n </ScrollReveal>\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { useState } from 'react'\nimport { Button, Input, Label, Textarea } from '@mdxui/primitives'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { cn } from '../../lib/utils'\n\nexport interface FormField {\n id: string\n label: string\n type: 'text' | 'email' | 'tel' | 'textarea'\n placeholder?: string\n required?: boolean\n}\n\nexport interface ContactProps {\n heading?: string\n subheading?: string\n fields?: FormField[]\n submitButtonText?: string\n successMessage?: string\n errorMessage?: string\n onSubmit?: (data: Record<string, string>) => Promise<void> | void\n backgroundColor?: string\n className?: string\n}\n\nconst defaultFields: FormField[] = [\n {\n id: 'name',\n label: 'Name',\n type: 'text',\n required: true,\n },\n {\n id: 'email',\n label: 'Company Email',\n type: 'email',\n required: true,\n },\n {\n id: 'message',\n label: 'Message',\n type: 'textarea',\n placeholder: 'Tell us about your use case, team size, or any other questions you may have.',\n required: true,\n },\n]\n\nexport function Contact({\n heading = 'Get in touch',\n subheading = \"Have questions about use cases, pricing, or anything else? Let's chat!\",\n fields = defaultFields,\n submitButtonText = 'Submit',\n successMessage = \"Thanks for reaching out! I'll get back to you within 24 hours.\",\n errorMessage = 'Hmm, something went wrong. Mind trying again?',\n onSubmit,\n backgroundColor = 'bg-background',\n className,\n}: ContactProps) {\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [formData, setFormData] = useState<Record<string, string>>({})\n const [submitStatus, setSubmitStatus] = useState<'idle' | 'success' | 'error'>('idle')\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setIsSubmitting(true)\n setSubmitStatus('idle')\n\n try {\n if (onSubmit) {\n await onSubmit(formData)\n }\n setSubmitStatus('success')\n setFormData({})\n ;(e.target as HTMLFormElement).reset()\n } catch {\n setSubmitStatus('error')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFormData((prev) => ({\n ...prev,\n [e.target.id]: e.target.value,\n }))\n }\n\n return (\n <section className={cn(`relative py-12 md:py-32 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-3xl mx-auto\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"mb-14 text-center\">\n <h1 className=\"font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4\">{heading}</h1>\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 <form\n onSubmit={handleSubmit}\n className=\"mx-auto flex max-w-lg flex-col gap-6 bg-card p-6 md:p-8 rounded-3xl border border-border feature-card-shadow\"\n >\n {fields.map((field) => (\n <div key={field.id} className=\"grid w-full items-center gap-2\">\n <Label htmlFor={field.id} className=\"text-foreground\">\n {field.label}\n {field.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n {field.type === 'textarea' ? (\n <Textarea id={field.id} placeholder={field.placeholder} required={field.required} onChange={handleChange} className=\"min-h-[120px]\" />\n ) : (\n <Input type={field.type} id={field.id} placeholder={field.placeholder} required={field.required} onChange={handleChange} />\n )}\n </div>\n ))}\n <Button type=\"submit\" className=\"w-full\" disabled={isSubmitting}>\n {isSubmitting ? 'Submitting...' : submitButtonText}\n </Button>\n {submitStatus === 'success' && <p className=\"text-primary text-sm text-center\">{successMessage}</p>}\n {submitStatus === 'error' && <p className=\"text-destructive text-sm text-center\">{errorMessage}</p>}\n </form>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { forwardRef, useRef, useEffect, useState } from 'react'\nimport { cn } from '../../lib/utils'\nimport { AnimatedBeam } from '../../shared/animated-beam'\nimport { GridPattern } from '../../shared/grid-pattern'\nimport Image from 'next/image'\nimport { ScrollReveal } from '../../shared/scroll-reveal'\nimport { Button } from '@mdxui/primitives'\n\nconst Square = forwardRef<HTMLDivElement, { className?: string; children?: React.ReactNode }>(({ className, children }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('z-10 flex size-16 items-center justify-center rounded-lg bg-card border border-border p-3 integration-square-shadow', className)}\n >\n {children}\n </div>\n )\n})\n\nSquare.displayName = 'Square'\n\nexport interface IntegrationNode {\n type: 'image' | 'icon' | 'component'\n content: string | React.ReactNode\n alt?: string\n className?: string\n}\n\nexport interface AnimationConfig {\n startYOffset?: number\n endYOffset?: number\n curvature?: number\n duration?: number\n reverse?: boolean\n}\n\nexport interface IntegrationProps {\n title?: string\n description?: string\n buttonText?: string\n buttonHref?: string\n leftNode: IntegrationNode\n rightNode: IntegrationNode\n beamAnimations?: AnimationConfig[]\n gridPatternWidth?: number\n gridPatternHeight?: number\n maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl'\n className?: string\n contentOrder?: 'left' | 'right'\n}\n\nexport function Integration({\n title = 'Connect in Seconds',\n description = 'Just connect your account and get started immediately – no configuration, no setup, no hassle.',\n buttonText = 'Get Started',\n buttonHref = '#pricing',\n leftNode,\n rightNode,\n beamAnimations = [\n { startYOffset: 10, endYOffset: 10, curvature: -20, duration: 3 },\n { startYOffset: -10, endYOffset: -10, curvature: 20, duration: 3, reverse: true },\n ],\n gridPatternWidth = 30,\n gridPatternHeight = 30,\n maxWidth = '5xl',\n className,\n contentOrder = 'left',\n}: IntegrationProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const leftRef = useRef<HTMLDivElement>(null)\n const rightRef = useRef<HTMLDivElement>(null)\n const [isDark, setIsDark] = useState(false)\n\n useEffect(() => {\n const checkDarkMode = () => {\n const isDarkMode = document.documentElement.classList.contains('dark') || window.matchMedia('(prefers-color-scheme: dark)').matches\n setIsDark(isDarkMode)\n }\n\n checkDarkMode()\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n const observer = new MutationObserver(checkDarkMode)\n\n mediaQuery.addEventListener('change', checkDarkMode)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n })\n\n return () => {\n mediaQuery.removeEventListener('change', checkDarkMode)\n observer.disconnect()\n }\n }, [])\n\n const renderNode = (node: IntegrationNode, ref: React.RefObject<HTMLDivElement | null>) => {\n const squareContent = (() => {\n if (node.type === 'image' && typeof node.content === 'string') {\n return (\n <div className=\"relative w-full h-full\">\n <Image src={node.content} alt={node.alt || 'Integration'} fill className=\"object-cover rounded-lg\" />\n </div>\n )\n }\n if (node.type === 'icon' && typeof node.content === 'string') {\n return <div className={cn('text-foreground', node.className)}>{node.content}</div>\n }\n return node.content\n })()\n\n return (\n <Square ref={ref} className={cn('size-20', node.type === 'image' ? 'p-0' : '', node.className)}>\n {squareContent}\n </Square>\n )\n }\n\n const maxWidthClasses = {\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 }\n\n const content = (\n <div className=\"space-y-6\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <h2 className=\"font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground\">{title}</h2>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.2}>\n <p className=\"text-base text-muted-foreground max-w-lg\">{description}</p>\n </ScrollReveal>\n\n {buttonText && buttonHref && (\n <ScrollReveal direction=\"up\" delay={0.3}>\n <Button asChild variant=\"default\">\n <a href={buttonHref}>{buttonText}</a>\n </Button>\n </ScrollReveal>\n )}\n </div>\n )\n\n const animation = (\n <ScrollReveal direction={contentOrder === 'left' ? 'right' : 'left'} delay={0.2}>\n <div className=\"relative flex aspect-square max-w-md mx-auto w-full items-center justify-center overflow-hidden rounded-lg\" ref={containerRef}>\n <GridPattern\n width={gridPatternWidth}\n height={gridPatternHeight}\n className=\"opacity-30 mask-[radial-gradient(ellipse_at_center,black_40%,transparent_85%)] dark:mask-[radial-gradient(ellipse_at_center,white_40%,transparent_85%)]\"\n />\n <div className=\"flex size-full flex-row items-center justify-center gap-20 relative z-10\">\n <div className=\"flex flex-col justify-center\">{renderNode(leftNode, leftRef)}</div>\n\n <div className=\"flex flex-col justify-center\">{renderNode(rightNode, rightRef)}</div>\n </div>\n\n {beamAnimations.map((config, index) => (\n <AnimatedBeam\n key={index}\n containerRef={containerRef}\n fromRef={leftRef}\n toRef={rightRef}\n startYOffset={config.startYOffset}\n endYOffset={config.endYOffset}\n curvature={config.curvature}\n duration={config.duration}\n reverse={config.reverse}\n pathColor={isDark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'}\n />\n ))}\n </div>\n </ScrollReveal>\n )\n\n return (\n <section className={cn('pt-10 sm:pt-0 px-8 lg:px-24 bg-background', className)}>\n <div className={cn(maxWidthClasses[maxWidth], 'mx-auto')}>\n <div className=\"grid lg:grid-cols-2 gap-1 items-center\">\n {contentOrder === 'left' ? (\n <>\n {content}\n {animation}\n </>\n ) : (\n <>\n {animation}\n {content}\n </>\n )}\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { RefObject, useEffect, useId, useState } from 'react'\nimport { motion } from 'motion/react'\nimport { cn } from '../../lib/utils'\n\nexport interface AnimatedBeamProps {\n className?: string\n containerRef: RefObject<HTMLElement | null>\n fromRef: RefObject<HTMLElement | null>\n toRef: RefObject<HTMLElement | null>\n curvature?: number\n reverse?: boolean\n pathColor?: string\n pathWidth?: number\n pathOpacity?: number\n gradientStartColor?: string\n gradientStopColor?: string\n delay?: number\n duration?: number\n startXOffset?: number\n startYOffset?: number\n endXOffset?: number\n endYOffset?: number\n}\n\nexport function AnimatedBeam({\n className,\n containerRef,\n fromRef,\n toRef,\n curvature = 0,\n reverse = false,\n duration = Math.random() * 3 + 4,\n delay = 0,\n pathColor = 'gray',\n pathWidth = 2,\n pathOpacity = 0.2,\n gradientStartColor = '#ffaa40',\n gradientStopColor = '#9c40ff',\n startXOffset = 0,\n startYOffset = 0,\n endXOffset = 0,\n endYOffset = 0,\n}: AnimatedBeamProps) {\n const id = useId()\n const [pathD, setPathD] = useState('')\n const [svgDimensions, setSvgDimensions] = useState({ width: 0, height: 0 })\n\n const gradientCoordinates = reverse\n ? {\n x1: ['90%', '-10%'],\n x2: ['100%', '0%'],\n y1: ['0%', '0%'],\n y2: ['0%', '0%'],\n }\n : {\n x1: ['10%', '110%'],\n x2: ['0%', '100%'],\n y1: ['0%', '0%'],\n y2: ['0%', '0%'],\n }\n\n useEffect(() => {\n const updatePath = () => {\n if (containerRef.current && fromRef.current && toRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect()\n const rectA = fromRef.current.getBoundingClientRect()\n const rectB = toRef.current.getBoundingClientRect()\n\n const svgWidth = containerRect.width\n const svgHeight = containerRect.height\n setSvgDimensions({ width: svgWidth, height: svgHeight })\n\n const startX = rectA.left - containerRect.left + rectA.width / 2 + startXOffset\n const startY = rectA.top - containerRect.top + rectA.height / 2 + startYOffset\n const endX = rectB.left - containerRect.left + rectB.width / 2 + endXOffset\n const endY = rectB.top - containerRect.top + rectB.height / 2 + endYOffset\n\n const controlY = startY - curvature\n const d = `M ${startX},${startY} Q ${(startX + endX) / 2},${controlY} ${endX},${endY}`\n setPathD(d)\n }\n }\n\n const resizeObserver = new ResizeObserver(() => {\n updatePath()\n })\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current)\n }\n\n updatePath()\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [containerRef, fromRef, toRef, curvature, startXOffset, startYOffset, endXOffset, endYOffset])\n\n return (\n <svg\n fill=\"none\"\n width={svgDimensions.width}\n height={svgDimensions.height}\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn('pointer-events-none absolute top-0 left-0 transform-gpu stroke-2', className)}\n viewBox={`0 0 ${svgDimensions.width} ${svgDimensions.height}`}\n >\n <path d={pathD} stroke={pathColor} strokeWidth={pathWidth} strokeOpacity={pathOpacity} strokeLinecap=\"round\" />\n <path d={pathD} strokeWidth={pathWidth} stroke={`url(#${id})`} strokeOpacity=\"1\" strokeLinecap=\"round\" />\n <defs>\n <motion.linearGradient\n className=\"transform-gpu\"\n id={id}\n gradientUnits={'userSpaceOnUse'}\n initial={{\n x1: '0%',\n x2: '0%',\n y1: '0%',\n y2: '0%',\n }}\n animate={{\n x1: gradientCoordinates.x1,\n x2: gradientCoordinates.x2,\n y1: gradientCoordinates.y1,\n y2: gradientCoordinates.y2,\n }}\n transition={{\n delay,\n duration,\n ease: [0.16, 1, 0.3, 1],\n repeat: Infinity,\n repeatDelay: 0,\n }}\n >\n <stop stopColor={gradientStartColor} stopOpacity=\"0\"></stop>\n <stop stopColor={gradientStartColor}></stop>\n <stop offset=\"32.5%\" stopColor={gradientStopColor}></stop>\n <stop offset=\"100%\" stopColor={gradientStopColor} stopOpacity=\"0\"></stop>\n </motion.linearGradient>\n </defs>\n </svg>\n )\n}\n","import { useId } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface GridPatternProps extends React.SVGProps<SVGSVGElement> {\n width?: number\n height?: number\n x?: number\n y?: number\n squares?: Array<[x: number, y: number]>\n strokeDasharray?: string\n className?: string\n}\n\nexport function GridPattern({\n width = 40,\n height = 40,\n x = -1,\n y = -1,\n strokeDasharray = '0',\n squares,\n className,\n ...props\n}: GridPatternProps) {\n const id = useId()\n\n return (\n <svg\n aria-hidden=\"true\"\n className={cn('pointer-events-none absolute inset-0 h-full w-full fill-muted-foreground/20 stroke-muted-foreground/20', className)}\n {...props}\n >\n <defs>\n <pattern id={id} width={width} height={height} patternUnits=\"userSpaceOnUse\" x={x} y={y}>\n <path d={`M.5 ${height}V.5H${width}`} fill=\"none\" strokeDasharray={strokeDasharray} />\n </pattern>\n </defs>\n <rect width=\"100%\" height=\"100%\" strokeWidth={0} fill={`url(#${id})`} />\n {squares && (\n <svg x={x} y={y} className=\"overflow-visible\">\n {squares.map(([sx, sy]) => (\n <rect strokeWidth=\"0\" key={`${sx}-${sy}`} width={width - 1} height={height - 1} x={sx * width + 1} y={sy * height + 1} />\n ))}\n </svg>\n )}\n </svg>\n )\n}\n","// Pure mapper for the named-agent landing view. The named dialect components\n// in `../components` accept the same field vocabulary as `NamedAgentLandingContent`,\n// so the only real reconciliation is resolving the wire's free-form workflow\n// `icon` HINT string into a react-icons component (the wire can't carry a React\n// type) — everything else passes through. Same input → same output, no I/O.\n\nimport type { IconType } from 'react-icons'\nimport {\n FaInbox,\n FaCalendarAlt,\n FaListUl,\n FaFileAlt,\n FaRocket,\n FaProjectDiagram,\n FaBug,\n FaLightbulb,\n FaRegDotCircle,\n} from 'react-icons/fa'\nimport type { WorkflowItem } from '../components/problem'\nimport type { NamedAgentWorkflow } from './types'\n\n/** Hint → glyph table. Hints are the free-form strings the cascade emits on\n * `problem.workflows[].icon`; unknown hints fall back to a neutral dot so a\n * chip never renders icon-less. */\nconst WORKFLOW_ICONS: Record<string, IconType> = {\n inbox: FaInbox,\n calendar: FaCalendarAlt,\n list: FaListUl,\n file: FaFileAlt,\n rocket: FaRocket,\n project: FaProjectDiagram,\n bug: FaBug,\n lightbulb: FaLightbulb,\n}\n\n/** Resolve one workflow icon hint to a react-icons component. */\nexport function resolveWorkflowIcon(hint: string): IconType {\n return WORKFLOW_ICONS[hint] ?? FaRegDotCircle\n}\n\n/** Map wire workflows ({ icon: hint, label }) → named Problem `WorkflowItem[]`\n * ({ icon: IconType, label }). */\nexport function mapWorkflows(workflows: NamedAgentWorkflow[]): WorkflowItem[] {\n return workflows.map((w) => ({ icon: resolveWorkflowIcon(w.icon), label: w.label }))\n}\n"],"mappings":"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","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","jsx","jsxs","Button","jsx","jsxs","Button","useEffect","useState","useState","motion","jsx","jsxs","useState","motion","useId","jsx","jsxs","useId","Image","Button","Fragment","jsx","jsxs","useState","useEffect","Image","FaInbox","FaCalendarAlt","FaListUl","FaFileAlt","FaRocket","FaProjectDiagram","FaBug","FaLightbulb","jsx","jsxs"]}
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@mdxui/named",
3
- "version": "6.3.1",
3
+ "version": "6.4.0",
4
4
  "description": "Named Agents site template - landing page components for AI product sites",
5
5
  "type": "module",
6
- "sideEffects": false,
6
+ "sideEffects": [
7
+ "**/*.css"
8
+ ],
7
9
  "license": "MIT",
8
10
  "author": "dot.do",
9
11
  "repository": {
@@ -48,14 +50,15 @@
48
50
  "./view": {
49
51
  "types": "./dist/view/index.d.ts",
50
52
  "import": "./dist/view/index.js"
51
- }
53
+ },
54
+ "./styles.css": "./dist/styles.css"
52
55
  },
53
56
  "files": [
54
57
  "dist",
55
58
  "README.md"
56
59
  ],
57
60
  "scripts": {
58
- "build": "tsup",
61
+ "build": "NODE_OPTIONS=--max-old-space-size=8192 tsup",
59
62
  "postbuild": "node -e \"const fs=require('fs');const s=fs.readFileSync('dist/schemas/index.js','utf8');if(/@mdxui\\/primitives|from ['\\\"]react['\\\"]|from ['\\\"]react-dom['\\\"]|from ['\\\"]next['\\\"]|from ['\\\"]next\\//.test(s)){console.error('schemas entry leaked a runtime import');process.exit(1)}\"",
60
63
  "typecheck": "tsc --noEmit",
61
64
  "clean": "rm -rf dist .turbo node_modules",
@@ -63,7 +66,7 @@
63
66
  },
64
67
  "devDependencies": {
65
68
  "@mdxui/dialect": "0.1.0",
66
- "@mdxui/neo": "0.1.1",
69
+ "@mdxui/neo": "0.1.2",
67
70
  "@mdxui/primitives": "^6.0.0",
68
71
  "@mdxui/themes": "^6.0.0",
69
72
  "@mdxui/typescript-config": "6.0.0",