@mdxui/named 7.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.js +240 -198
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +242 -345
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.js +2 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/shared/index.d.ts +46 -35
- package/dist/shared/index.js +99 -208
- package/dist/shared/index.js.map +1 -1
- package/dist/styles.css +507 -13
- package/dist/view/index.d.ts +12 -4
- package/dist/view/index.js +936 -220
- package/dist/view/index.js.map +1 -1
- package/package.json +7 -6
package/dist/view/index.js.map
CHANGED
|
@@ -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"],"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, code-window Features, single/tiers Pricing, FAQ, and CTA — the\n * trimmed 5-section design (Problem deleted upstream; Integration/Contact are\n * not part of the landing). No neo \"documented exceptions\" — the native\n * components express the dialect grammar. Personas carry no nav menu, so\n * NeoChrome gets no `nav`.\n */\n\nimport { DialectShell, NeoChrome } from '@mdxui/dialect'\nimport type { DialectViewProps } from '@mdxui/dialect'\nimport { Hero, Features, Pricing, PricingTiers, CTA, FAQ } from '../components'\nimport type { NamedAgentLandingContent } from './types'\n\nexport type NamedAgentViewProps = DialectViewProps<NamedAgentLandingContent>\n\nexport function NamedAgentView({ content, theme, mode, brandName, hostname }: NamedAgentViewProps) {\n const { hero, features, pricing, faq, cta } = 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 <Features\n heading={features.heading}\n description={features.description}\n features={features.features}\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 </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"],"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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/view/view.tsx","../../src/templates/studio/components/hero/hero.tsx","../../src/shared/scroll-reveal/scroll-reveal.tsx","../../src/lib/utils.ts","../../src/shared/marquee/marquee.tsx","../../src/templates/studio/ui/button/button.tsx","../../src/templates/studio/components/features/features.tsx","../../src/shared/code-window/code-window.tsx","../../src/templates/studio/components/pricing/pricing.tsx","../../src/templates/studio/components/pricing/pricing-tiers.tsx","../../src/templates/studio/components/cta/cta.tsx","../../src/templates/studio/components/faq/faq.tsx","../../src/templates/studio/components/navigation/navigation.tsx","../../src/templates/studio/components/footer/footer.tsx","../../src/templates/studio/ui/input/input.tsx","../../src/templates/studio/view.tsx","../../src/templates/executive/components/navigation.tsx","../../src/templates/executive/ui/button.tsx","../../src/templates/executive/components/hero.tsx","../../src/templates/executive/components/features.tsx","../../src/templates/executive/components/pricing.tsx","../../src/templates/executive/components/pricing-tiers.tsx","../../src/templates/executive/components/faq.tsx","../../src/templates/executive/components/cta.tsx","../../src/templates/executive/components/footer.tsx","../../src/templates/executive/view.tsx"],"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 * ONE public view, multiple TEMPLATES. The wire content contract\n * (NamedAgentLandingContent) is shared; `template` picks the design language:\n *\n * - `studio` (default) — the named-agents baseline: warm cream, Halant serif,\n * persimmon accent, avatar hero, ink footer. The portfolio-persona register.\n * - `executive` — Ledger Paper: cool paper + graphite ink, hairline-rule\n * structure (no cards), 2px corners, tabular numerals, a single oxblood\n * accent on the CTA and key figures. No avatar — the name is the mark.\n * The professional register (\"Your AI CFO\").\n *\n * Templates own their presentation completely (components + theme envelope);\n * they share only the wire contract and behavior-only primitives. Don't\n * parameterize one template's components into serving another — cross-design\n * sharing is how the neo-chrome/primitives drift happened (NeoChrome was\n * tried here and reverted: its dev-SaaS default links leaked onto persona\n * pages — \"dev chrome on a hire page\").\n *\n * Round-3 (ui#30) moved the theming envelope into the shared @mdxui/dialect\n * layer (`DialectShell`); both templates render inside it. Each template's\n * tokens ship in `@mdxui/named/styles.css`, scoped by the wrapper attributes\n * this view renders: `data-dialect=\"named\"` (+ `data-template` for non-studio\n * templates, which override studio's defaults at higher specificity).\n */\n\nimport { DialectShell } from '@mdxui/dialect'\nimport type { DialectViewProps } from '@mdxui/dialect'\nimport { StudioView } from '../templates/studio/view'\nimport { ExecutiveView } from '../templates/executive/view'\nimport type { NamedAgentLandingContent } from './types'\n\nexport type NamedAgentTemplate = 'studio' | 'executive'\n\nexport type NamedAgentViewProps = DialectViewProps<NamedAgentLandingContent> & {\n /** Design language for the page. Defaults to the named-agents baseline. */\n template?: NamedAgentTemplate\n}\n\nexport function NamedAgentView({ content, theme, mode, brandName, hostname, template = 'studio' }: NamedAgentViewProps) {\n return (\n // texture={false}: DialectShell's NoiseTexture grain defaults on for the\n // agent dialects, but the named baseline renders NO overlay — the fixed\n // full-viewport speckle layer sits over every pixel and subtly shifts the\n // whole palette off the baseline values.\n <DialectShell theme={theme} mode={mode} texture={false}>\n <div data-dialect=\"named\" data-template={template}>\n {template === 'executive' ? (\n <ExecutiveView content={content} brandName={brandName} hostname={hostname} />\n ) : (\n <StudioView content={content} brandName={brandName} hostname={hostname} />\n )}\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 '../../ui/button'\nimport { cn, isRenderableSrc, brandLabel } from '../../../../lib/utils'\n\nexport interface HeroProps {\n badgeEmoji?: string\n badgeText?: string\n badgeHref?: string\n heading?: string\n description?: string\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost'\n rightImageSrc?: string\n rightImageAlt?: string\n rightImageSizes?: string\n showIconOverlay?: boolean\n marqueeTitle?: string\n marqueeImages?: string[]\n className?: string\n}\n\nexport function Hero({\n badgeEmoji = '',\n badgeText = 'Meet Priya',\n badgeHref = '#',\n heading = 'Your AI Product Manager for GitHub',\n description = 'Priya triages issues, plans sprints, and grooms your backlog automatically. You focus on building.',\n ctaText = 'Get Started',\n ctaHref = '#pricing',\n ctaVariant = 'default',\n // No default: the hero image renders only when the caller supplies a real,\n // resolvable asset. The old `/images/hero/hero-main.png` default 404s on every\n // consumer that doesn't host it (the live priya.studio.sb broken hero). When\n // absent, the hero is single-column, no image (do-design-agency: never use an\n // image hero without a real asset).\n rightImageSrc,\n rightImageAlt = 'Portfolio showcase',\n rightImageSizes = '(max-width: 768px) 100vw, 500px',\n showIconOverlay: _showIconOverlay = true,\n marqueeTitle = 'Tools I work with',\n marqueeImages = Array.from({ length: 12 }).map(\n () => 'https://zapier-images.imgix.net/storage/services/c63f7c57dc0afb733535a5adccce4d01.png?auto=format&fit=crop&ixlib=react-9.10.0&q=50&w=60&h=60&dpr=2'\n ),\n className,\n}: HeroProps) {\n // Render the right-side hero image only when a real, resolvable asset was\n // supplied; otherwise the hero is single-column (no 404 placeholder).\n const hasHeroImage = !!rightImageSrc && isRenderableSrc(rightImageSrc)\n return (\n <section className={cn('relative py-12 md:py-16 px-6 lg:px-12 bg-background', className)}>\n <div className=\"max-w-7xl mx-auto p-0 sm:p-16 rounded-none sm:rounded-3xl md:[background:linear-gradient(180deg,var(--card)_0%,transparent_83.55%)]\">\n {/* Main Hero Container */}\n <div className={cn('grid gap-8 lg:gap-16 items-start mb-16 lg:mb-20', hasHeroImage && 'lg:grid-cols-2')}>\n {/* Left Content */}\n <div className=\"space-y-6 lg:pt-8\">\n {/* Category Badge */}\n <ScrollReveal direction=\"down\" delay={0.1}>\n <div className=\"inline-block\">\n <a\n href={badgeHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2.5 px-4 py-2 rounded-full transition-colors border border-border bg-card\"\n >\n <span className=\"text-base\">{badgeEmoji}</span>\n <p className=\"font-normal text-sm tracking-wide leading-snug text-foreground uppercase\">{badgeText}</p>\n </a>\n </div>\n </ScrollReveal>\n\n {/* Main Heading */}\n <ScrollReveal direction=\"up\" delay={0.2}>\n <h1 className=\"font-halant font-normal text-[clamp(56px,6vw,72px)] leading-tight tracking-tight text-foreground\">\n {heading}\n </h1>\n </ScrollReveal>\n\n {/* Description */}\n <ScrollReveal direction=\"up\" delay={0.3}>\n <p className=\"text-lg leading-relaxed max-w-lg\">{description}</p>\n </ScrollReveal>\n\n {/* CTA Buttons */}\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"flex flex-col sm:flex-row gap-3 pt-4\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>\n {ctaText}\n <HiChevronRight className=\"w-4 h-4\" />\n </a>\n </Button>\n </div>\n </ScrollReveal>\n </div>\n\n {/* Right Images — only when a real asset was supplied. */}\n {hasHeroImage && (\n <ScrollReveal direction=\"right\" delay={0.2}>\n <div className=\"relative flex justify-center lg:justify-end\">\n <div className=\"relative w-full max-w-lg\">\n <div className=\"relative w-full aspect-square\">\n <Image\n src={rightImageSrc as string}\n alt={rightImageAlt}\n fill\n className=\"object-cover object-left-center\"\n // Baseline hero artwork sits on the large --radius-image\n // mask (62d6f04). The scoped envelope defines it; fall back\n // to a generous radius if the envelope isn't loaded.\n style={{ borderRadius: 'var(--radius-image, 1rem)' }}\n priority\n sizes={rightImageSizes}\n />\n </div>\n </div>\n </div>\n </ScrollReveal>\n )}\n </div>\n\n <ScrollReveal direction=\"up\" delay={0.4} trigger=\"mount\">\n <div className=\"mt-12\">\n <p className=\"text-base text-muted-foreground text-center\">{marqueeTitle}</p>\n </div>\n <div className=\"relative mt-4 sm:mt-6\">\n <div\n className=\"pointer-events-none absolute inset-y-0 left-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to right, var(--background), transparent)' }}\n />\n <div\n className=\"pointer-events-none absolute inset-y-0 right-0 w-20 sm:w-28 z-10\"\n style={{ background: 'linear-gradient(to left, var(--background), transparent)' }}\n />\n <Marquee className=\"relative z-0 py-2 [--gap:1.25rem] sm:[--gap:3rem]\">\n {marqueeImages.map((src, i) =>\n isRenderableSrc(src) ? (\n <img\n key={`${src}-${i}`}\n src={src}\n alt=\"\"\n className=\"h-16 w-16 rounded-xl bg-card p-2 object-contain\"\n />\n ) : (\n <span\n key={`${src}-${i}`}\n className=\"flex h-16 items-center whitespace-nowrap rounded-xl bg-card px-4 text-sm font-semibold tracking-tight text-foreground/70\"\n >\n {brandLabel(src)}\n </span>\n ),\n )}\n </Marquee>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { motion, Variants } from 'motion/react'\nimport { ReactNode } from 'react'\n\nexport interface ScrollRevealProps {\n children: ReactNode\n className?: string\n delay?: number\n direction?: 'up' | 'down' | 'left' | 'right' | 'none'\n duration?: number\n trigger?: 'inView' | 'mount'\n once?: boolean\n margin?: string\n}\n\nconst directionVariants: Record<string, Variants> = {\n up: {\n hidden: { opacity: 0, y: 50 },\n visible: { opacity: 1, y: 0 },\n },\n down: {\n hidden: { opacity: 0, y: -50 },\n visible: { opacity: 1, y: 0 },\n },\n left: {\n hidden: { opacity: 0, x: -50 },\n visible: { opacity: 1, x: 0 },\n },\n right: {\n hidden: { opacity: 0, x: 50 },\n visible: { opacity: 1, x: 0 },\n },\n none: {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n },\n}\n\nexport function ScrollReveal({\n children,\n className,\n delay = 0,\n direction = 'up',\n duration = 0.5,\n trigger = 'inView',\n once = true,\n margin = '-100px',\n}: ScrollRevealProps) {\n if (trigger === 'mount') {\n return (\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n }\n\n return (\n <motion.div\n initial=\"hidden\"\n whileInView=\"visible\"\n viewport={{ once, margin }}\n transition={{ duration, delay, ease: 'easeOut' }}\n variants={directionVariants[direction]}\n className={className}\n >\n {children}\n </motion.div>\n )\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/** A src is renderable only when its bytes are guaranteed to resolve — an\n * absolute http(s)/protocol-relative/data URL. App-relative paths\n * (`/images/hero/hero-main.png`) and bare tokens (`\"linear\"`) 404 on the\n * consumer host (the live priya.studio.sb broken hero + marquee), so image\n * slots are skipped and the layout reflows to its no-image variant. */\nexport const isRenderableSrc = (s: string): boolean =>\n /^(https?:)?\\/\\//i.test(s.trim()) || /^data:image\\//i.test(s.trim())\n\n/** Canonical display casing for common brand tokens; otherwise capitalize.\n * Shared across templates — hero marquee chips (studio) and the ruled\n * tool strip (executive) both render bare tool tokens as labels. */\nconst BRAND_LABELS: Record<string, string> = {\n github: 'GitHub',\n gitlab: 'GitLab',\n linkedin: 'LinkedIn',\n youtube: 'YouTube',\n whatsapp: 'WhatsApp',\n hubspot: 'HubSpot',\n quickbooks: 'QuickBooks',\n typescript: 'TypeScript',\n javascript: 'JavaScript',\n postgresql: 'PostgreSQL',\n mongodb: 'MongoDB',\n graphql: 'GraphQL',\n openai: 'OpenAI',\n}\nexport const brandLabel = (s: string): string => {\n const t = s.trim()\n return BRAND_LABELS[t.toLowerCase()] ?? t.charAt(0).toUpperCase() + t.slice(1)\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface MarqueeProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Optional CSS class name to apply custom styles\n */\n className?: string\n /**\n * Whether to reverse the animation direction\n * @default false\n */\n reverse?: boolean\n /**\n * Whether to pause the animation on hover\n * @default false\n */\n pauseOnHover?: boolean\n /**\n * Content to be displayed in the marquee\n */\n children: React.ReactNode\n /**\n * Whether to animate vertically instead of horizontally\n * @default false\n */\n vertical?: boolean\n /**\n * Number of times to repeat the content\n * @default 4\n */\n repeat?: number\n}\n\nexport function Marquee({\n className,\n reverse = false,\n pauseOnHover = false,\n children,\n vertical = false,\n repeat = 4,\n ...props\n}: MarqueeProps) {\n return (\n <div\n {...props}\n className={cn(\n 'group flex [gap:var(--gap)] overflow-hidden p-2 [--duration:40s] [--gap:1rem]',\n {\n 'flex-row': !vertical,\n 'flex-col': vertical,\n },\n className\n )}\n >\n {Array(repeat)\n .fill(0)\n .map((_, i) => (\n <div\n key={i}\n className={cn('flex shrink-0 justify-around [gap:var(--gap)]', {\n 'animate-marquee flex-row': !vertical,\n 'animate-marquee-vertical flex-col': vertical,\n 'group-hover:[animation-play-state:paused]': pauseOnHover,\n '[animation-direction:reverse]': reverse,\n })}\n >\n {children}\n </div>\n ))}\n </div>\n )\n}\n","'use client'\n\n/**\n * The named-agents baseline Button (components/ui/button.tsx) — rounded-full\n * pills on the baseline token vocabulary: `btn-gradient-dark` ink-gradient\n * primary, surface-raised secondary, the persona `accent` variant, and the\n * h-12/text-base default size. The sections previously borrowed\n * @mdxui/primitives' Button (flat bg-primary, h-9, theme radius), which is a\n * different design language — buttons must speak the baseline tokens the\n * `[data-dialect=\"named\"]` envelope defines (`--color-btn-primary-*`,\n * `--color-surface-raised`, `--color-hover`, `--color-accent-*`).\n *\n * Ported without cva/Radix Slot to keep the package dependency-free: variants\n * are a plain class map, `asChild` clones the single child element (the named\n * call sites always pass one `<a>`).\n */\n\nimport * as React from 'react'\nimport { cn } from '../../../../lib/utils'\n\nexport type ButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'accent'\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon'\n\nconst baseClasses =\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-ring) disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer'\n\nconst variantClasses: Record<ButtonVariant, string> = {\n default: 'btn-gradient-dark text-(--color-btn-primary-fg) shadow-md hover:shadow-lg rounded-full',\n secondary:\n 'bg-(--color-surface-raised) text-(--color-fg) border border-(--color-border) shadow-sm hover:shadow-md rounded-full',\n outline: 'border border-(--color-border) bg-transparent text-(--color-fg) hover:bg-(--color-hover) rounded-full',\n ghost: 'text-(--color-fg) hover:bg-(--color-hover) rounded-full',\n link: 'text-(--color-fg) underline-offset-4 hover:underline',\n accent: 'bg-(--color-accent-strong) text-(--color-accent-fg) shadow-md hover:opacity-90 hover:shadow-lg rounded-full',\n}\n\nconst sizeClasses: Record<ButtonSize, string> = {\n default: 'h-12 px-6 py-3 text-base',\n sm: 'h-10 px-4 py-2 text-sm',\n lg: 'h-14 px-8 py-4 text-lg',\n icon: 'h-12 w-12',\n}\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant\n size?: ButtonSize\n asChild?: boolean\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'default', size = 'default', asChild = false, children, ...props }, ref) => {\n const classes = cn(baseClasses, variantClasses[variant], sizeClasses[size], className)\n\n if (asChild && React.isValidElement(children)) {\n const child = children as React.ReactElement<{ className?: string }>\n return React.cloneElement(child, {\n ...props,\n className: cn(classes, child.props.className),\n })\n }\n\n return (\n <button ref={ref} className={classes} {...props}>\n {children}\n </button>\n )\n },\n)\nButton.displayName = 'Button'\n","'use client'\n\nimport { CheckCircle } from 'lucide-react'\nimport { CodeWindow } from '../../../../shared/code-window'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { cn } from '../../../../lib/utils'\n\nexport interface FeatureItem {\n text: string\n}\n\nexport interface Feature {\n title: string\n description: string\n items: FeatureItem[]\n code: string\n /** Shiki language id; defaults to TypeScript (the persona DSL). */\n language?: string\n badge: string\n}\n\nexport interface FeaturesProps {\n heading?: string\n description?: string\n features?: Feature[]\n className?: string\n}\n\nconst defaultFeatures: Feature[] = [\n {\n title: 'Automatic Issue Triage',\n description: 'Every new issue gets analyzed, labeled, prioritized, and assigned to the right person—automatically in seconds.',\n items: [{ text: 'Smart labels based on content' }, { text: 'Priority using impact + urgency' }, { text: 'Auto-assigned to right person' }],\n code: `// New issue arrives\n$.Priya.triage({\n issue: '#347'\n})\n\n// Priya handles everything:\n// → Reads issue content\n// → Applies correct labels\n// → Sets priority level\n// → Assigns to team member\n// → Adds to project board`,\n badge: '01',\n },\n {\n title: 'Sprint Planning',\n description: 'Priya reviews your backlog, calculates what your team can handle, and builds the sprint for you.',\n items: [{ text: 'Capacity based on team velocity' }, { text: 'Best issues selected automatically' }, { text: 'Sprint board ready to go' }],\n code: `// Sprint planning day\n$.Priya.planSprint({\n capacity: 40,\n startDate: 'Monday'\n})\n\n// Priya prepares:\n// → Reviews all backlog items\n// → Calculates team velocity\n// → Selects optimal issues\n// → Organizes sprint board\n// → Notifies team`,\n badge: '02',\n },\n {\n title: 'Backlog Grooming',\n description: 'Your backlog stays healthy automatically—prioritized, organized, and actionable.',\n items: [{ text: 'Always prioritized correctly' }, { text: 'No more zombie issues' }, { text: 'Epics become user stories' }],\n code: `// Runs continuously\n$.Priya.groomBacklog({\n framework: 'RICE'\n})\n\n// Priya maintains:\n// → Applies RICE scoring\n// → Closes stale issues\n// → Breaks down epics\n// → Updates priorities\n// → Tracks dependencies`,\n badge: '03',\n },\n {\n title: 'Status Reports',\n description: 'Weekly progress reports generated and shared automatically. No more manual updates.',\n items: [{ text: 'Automatic progress tracking' }, { text: 'Blockers surfaced early' }, { text: 'Team stays informed' }],\n code: `// Every Friday\n$.Priya.statusReport({\n period: 'week'\n})\n\n// Priya reports:\n// → Issues closed\n// → PRs merged\n// → Sprint progress\n// → Blockers identified\n// → Shares with team`,\n badge: '04',\n },\n]\n\nexport function Features({ heading = 'How It Works', description = \"Priya handles the repetitive work so you can focus on what matters. Here's how she automates your entire product workflow.\", features = defaultFeatures, className }: FeaturesProps) {\n return (\n <section id=\"features\" className={cn('flex justify-center items-center pb-0 md:pb-10 bg-background', className)}>\n <div className=\"features-gradient flex flex-col items-center w-full relative overflow-visible gap-16 h-min max-w-[1400px] py-10 sm:py-20\" style={{ borderRadius: 'var(--radius-section, 36px)' }}>\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center w-full px-4 md:px-6 space-y-4\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground\">{heading}</h2>\n <p className=\"text-base md:text-lg text-muted-foreground max-w-2xl mx-auto\">{description}</p>\n </div>\n </ScrollReveal>\n\n <div className=\"w-full px-4 lg:px-18 space-y-10\">\n {features.map((feature, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={index * 0.1}>\n <div className=\"grid md:grid-cols-2 overflow-hidden bg-card w-full rounded-3xl feature-card-shadow opacity-100 border border-border\">\n <div className=\"flex flex-col px-4 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20\">\n <div className=\"mb-4\">\n <span className=\"inline-flex size-10 items-center justify-center rounded-lg font-mono text-sm font-medium bg-card dark:bg-muted border border-border dark:border-border text-foreground\">\n {feature.badge}\n </span>\n </div>\n <h3 className=\"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl text-foreground\">{feature.title}</h3>\n <div className=\"mb-8 text-sm sm:mb-10 md:text-base text-muted-foreground\">{feature.description}</div>\n <ul className=\"space-y-2 sm:space-y-3\">\n {feature.items.map((item, itemIndex) => (\n <li key={itemIndex} className=\"flex gap-x-3 items-start\">\n <CheckCircle className=\"mt-1 size-4 shrink-0 text-primary\" />\n <p className=\"text-sm md:text-base text-foreground\">{item.text}</p>\n </li>\n ))}\n </ul>\n </div>\n <div className=\"relative order-last md:order-last h-96 md:h-[500px] p-4 md:p-8 lg:p-10\">\n {/* The baseline's dark panel — github-dark-default IS the\n baseline regex highlighter's palette (#0d1117 ground). */}\n <CodeWindow\n code={feature.code}\n language={feature.language}\n themes=\"github-dark-default\"\n className=\"bg-[#0d1117] rounded-lg p-6 lg:p-8 text-sm leading-relaxed text-[#e6edf3]\"\n />\n </div>\n </div>\n </ScrollReveal>\n ))}\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * CodeWindow — shiki-highlighted code block, shared across templates.\n *\n * The named-agent templates render whatever code the cascade generates for\n * ANY persona, so highlighting is a real tokenizer (shiki), not the\n * baseline's regex pass (which was grammar-locked to the `$.Priya.method()`\n * DSL shape). Shiki is dynamically imported so consumers only pay for it\n * when a code window actually mounts; until it resolves (and whenever\n * highlighting fails), the fallback is the plain escaped code — content is\n * never invisible.\n *\n * Theming: this component is visually NEUTRAL — the calling template owns\n * the panel (background, border, padding, type size) via `className`, and\n * the envelopes force `.shiki { background: transparent }` so shiki's theme\n * background never fights the panel. Pass a single theme name for a fixed\n * appearance (studio's always-dark panel) or a `{ light, dark }` pair to\n * follow the host's `.dark` class via the envelope's dual-theme CSS.\n */\n\nimport { useEffect, useState } from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface CodeWindowProps {\n code: string\n /** Shiki language id. The persona DSL is valid TypeScript — the default. */\n language?: string\n /** Shiki theme: one name = fixed; a pair = follows the host `.dark` class\n * (requires the envelope's `--shiki-dark` switch CSS). */\n themes?: string | { light: string; dark: string }\n className?: string\n}\n\nexport function CodeWindow({\n code,\n language = 'typescript',\n themes = 'github-dark-default',\n className,\n}: CodeWindowProps) {\n const [html, setHtml] = useState<string | null>(null)\n const themesKey = typeof themes === 'string' ? themes : `${themes.light}/${themes.dark}`\n\n useEffect(() => {\n let alive = true\n import('shiki')\n .then(({ codeToHtml }) =>\n codeToHtml(\n code,\n typeof themes === 'string'\n ? { lang: language, theme: themes }\n : { lang: language, themes, defaultColor: 'light' },\n ),\n )\n .then((out) => {\n if (alive) setHtml(out)\n })\n .catch(() => {\n // Unknown language / load failure → keep the plain fallback.\n })\n return () => {\n alive = false\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- themesKey covers `themes`\n }, [code, language, themesKey])\n\n return (\n <div className={cn('w-full h-full overflow-auto font-mono', className)}>\n {html ? (\n // biome-ignore lint/security/noDangerouslySetInnerHtml: shiki output; input is escaped by shiki\n <div dangerouslySetInnerHTML={{ __html: html }} />\n ) : (\n <pre className=\"m-0 whitespace-pre\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn } from '../../../../lib/utils'\n\nexport interface PricingFeature {\n text: string\n}\n\nexport interface PricingProps {\n heading?: string\n subheading?: string\n price?: string\n priceUnit?: string\n trialText?: string\n ctaText?: string\n ctaHref?: string\n featuresHeading?: string\n features?: PricingFeature[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultFeatures: PricingFeature[] = [\n { text: 'Automated backups' },\n { text: '24/7 support' },\n { text: 'Unlimited projects' },\n { text: 'Unlimited users' },\n { text: 'Custom domain' },\n { text: 'Custom branding' },\n { text: 'Advanced analytics' },\n { text: 'Custom permissions' },\n { text: 'Advanced reports' },\n]\n\nexport function Pricing({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n price = '$16',\n priceUnit = '/ month',\n trialText = 'With a 7-day free trial',\n ctaText = 'Get Started',\n ctaHref = '#contact',\n featuresHeading = \"What's included\",\n features = defaultFeatures,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ScrollReveal direction=\"up\" delay={0.2}>\n <div className=\"bg-card mx-auto flex w-full md:max-w-md lg:max-w-3xl flex-col rounded-3xl border border-border feature-card-shadow p-6 md:p-8 px-6\">\n <div className=\"text-center\">\n <div className=\"flex justify-start sm:justify-center items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{priceUnit}</span>\n </div>\n {trialText && <p className=\"text-left sm:text-center text-muted-foreground mt-3 text-sm\">{trialText}</p>}\n <Button asChild variant=\"default\" className=\"mt-5 w-full md:w-64\">\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <p className=\"text-left sm:text-center text-lg font-semibold text-foreground mb-4\">{featuresHeading}</p>\n <ul className=\"grid gap-y-3 gap-x-6 md:grid-cols-2 lg:grid-cols-3 \">\n {features.map((feature, index) => (\n <li key={index} className=\"flex items-start text-left\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </ScrollReveal>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.3}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Check } from 'lucide-react'\nimport Image from 'next/image'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn, isRenderableSrc } from '../../../../lib/utils'\n\nexport interface PricingTierFeature {\n text: string\n}\n\nexport interface PricingTier {\n title: string\n description: string\n price: string\n priceUnit: string\n ctaText: string\n ctaVariant?: 'primary' | 'secondary'\n ctaHref?: string\n features: PricingTierFeature[]\n image?: string\n imageAlt?: string\n featured?: boolean\n}\n\nexport interface PricingTiersProps {\n heading?: string\n subheading?: string\n tiers?: PricingTier[]\n backgroundColor?: string\n securityNote?: string\n className?: string\n}\n\nconst defaultTiers: PricingTier[] = [\n {\n title: 'Business',\n description: 'For growing teams that need more power and priority support.',\n price: '$299',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'primary',\n ctaHref: '#contact',\n features: [\n { text: 'Unlimited repositories' },\n { text: 'Unlimited issues & projects' },\n { text: 'Unlimited team members' },\n { text: 'Priority support' },\n { text: 'Custom workflows' },\n { text: 'Advanced analytics' },\n ],\n image: '/images/hero/hero-main.png',\n imageAlt: 'Business Plan',\n featured: true,\n },\n {\n title: 'Team',\n description: 'Perfect for small teams getting started with AI product management.',\n price: '$99',\n priceUnit: '/ month',\n ctaText: 'Get Started',\n ctaVariant: 'secondary',\n ctaHref: '#contact',\n features: [{ text: 'Up to 10 repositories' }, { text: 'Unlimited issues & projects' }, { text: 'Unlimited team members' }, { text: 'Email support' }],\n featured: false,\n },\n]\n\nexport function PricingTiers({\n heading = 'Simple, transparent pricing',\n subheading = 'Start automating your product workflow in minutes. No credit card required to get started.',\n tiers = defaultTiers,\n backgroundColor = 'bg-background',\n securityNote = 'Priya only accesses GitHub Issues and Projects—she cannot read your code or secrets.',\n className,\n}: PricingTiersProps) {\n return (\n <section id=\"pricing\" className={cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className)}>\n <div className=\"max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center my-16 sm:my-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n <p className=\"text-base text-muted-foreground max-w-2xl mx-auto\">{subheading}</p>\n </div>\n </ScrollReveal>\n\n <ul className=\"grid gap-6 lg:grid-cols-3 lg:items-stretch\">\n {tiers.map((tier, index) => (\n <li key={index} className={tier.featured ? 'lg:col-span-2 flex' : 'lg:col-span-1 flex'}>\n <ScrollReveal direction=\"up\" delay={0.2 + index * 0.1} className=\"w-full\">\n <div\n className={\n tier.featured\n ? 'bg-card flex w-full h-full flex-col-reverse rounded-3xl border border-border feature-card-shadow md:flex-row'\n : 'bg-card w-full h-full rounded-3xl border border-border feature-card-shadow p-6 md:p-8'\n }\n >\n {tier.featured ? (\n <>\n {/* Image slot is prop-driven: render only when the src is a\n resolvable URL, and let the content reflow to the full\n card width when it isn't — a featured tier without\n artwork must not keep an empty xl:w-1/2 half. */}\n {tier.image && isRenderableSrc(tier.image) && (\n <div className=\"hidden xl:block xl:w-1/2 pl-6 md:pl-8 py-6 md:py-8\">\n <div className=\"h-full rounded-lg overflow-hidden relative min-h-96\">\n <Image src={tier.image} alt={tier.imageAlt || tier.title} fill className=\"object-cover\" sizes=\"(max-width: 1280px) 0vw, 50vw\" />\n </div>\n </div>\n )}\n\n <div className={cn('flex flex-col p-6 md:p-8', tier.image && isRenderableSrc(tier.image) && 'xl:w-1/2')}>\n <div className=\"flex-1\">\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n </div>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </>\n ) : (\n <div className=\"flex h-full flex-col\">\n <div>\n <p className=\"text-lg font-semibold text-foreground\">{tier.title}</p>\n <p className=\"text-muted-foreground mt-3\">{tier.description}</p>\n <div className=\"mt-6 flex items-baseline\">\n <span className=\"text-3xl font-semibold text-foreground\">{tier.price}</span>\n <span className=\"text-muted-foreground ml-2 text-sm\">{tier.priceUnit}</span>\n </div>\n <Button asChild variant={tier.ctaVariant === 'primary' ? 'default' : 'secondary'} className=\"mt-5 w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </Button>\n\n <div className=\"mt-8\">\n <ul className=\"space-y-2\">\n {tier.features.map((feature, featureIndex) => (\n <li key={featureIndex} className=\"flex items-start\">\n <Check className=\"text-primary mr-2 size-4 shrink-0\" />\n <span className=\"text-foreground text-sm\">{feature.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n )}\n </div>\n </ScrollReveal>\n </li>\n ))}\n </ul>\n\n {securityNote && (\n <ScrollReveal direction=\"up\" delay={0.4}>\n <div className=\"text-center mt-8\">\n <p className=\"text-sm text-muted-foreground\">\n <strong>Your code stays private.</strong> {securityNote}\n </p>\n </div>\n </ScrollReveal>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { HiArrowRight } from 'react-icons/hi'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { Button } from '../../ui/button'\nimport { cn } from '../../../../lib/utils'\n\nexport interface CTAButton {\n text: string\n href: string\n variant?: 'primary' | 'secondary'\n showArrow?: boolean\n}\n\nexport interface CTAProps {\n heading?: string\n subheading?: string\n buttons?: CTAButton[]\n /** @deprecated theme-driven now; ignored */\n backgroundColor?: 'light' | 'blue' | 'green' | 'purple' | 'orange'\n className?: string\n}\n\nconst defaultButtons: CTAButton[] = [\n {\n text: 'Get Started',\n href: '#pricing',\n variant: 'primary',\n showArrow: true,\n },\n]\n\nexport function CTA({ heading = 'Ready to Save 15 Hours Per Week?', subheading = 'Setup with Github – takes 5 minutes.', buttons = defaultButtons, backgroundColor: _backgroundColor, className }: CTAProps) {\n const bgClass = 'bg-card'\n\n return (\n <section className={cn(`py-20 md:py-32 px-4 md:px-6 ${bgClass}`, className)}>\n <div className=\"max-w-3xl mx-auto text-center\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"space-y-6\">\n <h2 className=\"font-halant font-normal text-foreground text-[clamp(32px,5vw,52px)] leading-tight tracking-tight\">{heading}</h2>\n <p className=\"max-w-2xl mx-auto text-[clamp(16px,2vw,18px)] leading-relaxed text-muted-foreground\">{subheading}</p>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center items-center pt-4\">\n {buttons.map((button, index) => (\n <Button key={index} asChild variant={button.variant === 'primary' ? 'default' : 'secondary'}>\n <a href={button.href}>\n {button.text}\n {button.showArrow && <HiArrowRight className=\"w-4 h-4\" />}\n </a>\n </Button>\n ))}\n </div>\n </div>\n </ScrollReveal>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@mdxui/primitives'\nimport { ScrollReveal } from '../../../../shared/scroll-reveal'\nimport { cn } from '../../../../lib/utils'\n\nexport interface FAQItem {\n question: string\n answer: string\n}\n\nexport interface FAQProps {\n heading?: string\n faqs?: FAQItem[]\n backgroundColor?: string\n className?: string\n}\n\nconst defaultFaqs: FAQItem[] = [\n {\n question: 'How do I get started?',\n answer: 'Choose your plan, connect your GitHub account, and Priya starts working. Setup takes 5 minutes.',\n },\n {\n question: 'Does it work with private repos?',\n answer: 'Yes, both plans work with private and public repositories.',\n },\n {\n question: 'What if it makes a mistake?',\n answer: 'You can override any decision. Priya learns from your corrections.',\n },\n {\n question: 'Can I switch plans later?',\n answer: 'Yes, upgrade or downgrade anytime. Changes take effect immediately.',\n },\n {\n question: 'What about Enterprise?',\n answer: \"Contact us for custom solutions tailored to your organization's needs, including dedicated support, custom workflows, and enterprise-grade SLAs.\",\n },\n {\n question: 'Is Priya SOC 2 and HIPAA compliant?',\n answer: 'Yes, Priya is SOC 2 Type II certified and HIPAA compliant, ensuring your data is handled with the highest security and privacy standards.',\n },\n]\n\nexport function FAQ({ heading = 'FAQs', faqs = defaultFaqs, backgroundColor = 'bg-background', className }: FAQProps) {\n return (\n <section id=\"faq\" className={cn(`py-20 px-6 lg:px-12 ${backgroundColor}`, className)}>\n <div className=\"max-w-4xl mx-auto\">\n <ScrollReveal direction=\"up\" delay={0.1}>\n <div className=\"text-center mb-12\">\n <h2 className=\"font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4\">{heading}</h2>\n </div>\n </ScrollReveal>\n\n <Accordion type=\"single\" collapsible className=\"space-y-4\">\n {faqs.map((faq, index) => (\n <ScrollReveal key={index} direction=\"up\" delay={0.15 + index * 0.05}>\n <AccordionItem value={`item-${index}`} className=\"rounded-xl px-4 sm:px-6 border border-border bg-card shadow-sm\">\n <AccordionTrigger className=\"hover:no-underline py-5 text-base font-medium text-foreground\">{faq.question}</AccordionTrigger>\n <AccordionContent className=\"pb-5 text-sm text-foreground/70 leading-relaxed\">{faq.answer}</AccordionContent>\n </AccordionItem>\n </ScrollReveal>\n ))}\n </Accordion>\n </div>\n </section>\n )\n}\n","'use client'\n\nimport { useState, useEffect } from 'react'\nimport Link from 'next/link'\nimport { Menu, X } from 'lucide-react'\nimport { motion, AnimatePresence } from 'motion/react'\nimport { cn } from '../../../../lib/utils'\nimport { Button } from '../../ui/button'\n\nexport interface NavLink {\n label: string\n href: string\n}\n\nexport interface NavigationProps {\n logo?: string | React.ReactNode\n logoHref?: string\n links?: NavLink[]\n ctaText?: string\n ctaHref?: string\n ctaVariant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'accent'\n className?: string\n maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full'\n sticky?: boolean\n showScrollEffect?: boolean\n}\n\nexport function Navigation({\n logo = 'Priya',\n logoHref = '/',\n links = [\n { label: 'Features', href: '#features' },\n { label: 'Pricing', href: '#pricing' },\n { label: 'FAQ', href: '#faq' },\n ],\n ctaText = 'Hire me',\n ctaHref = '#pricing',\n ctaVariant = 'secondary',\n className,\n maxWidth = '7xl',\n sticky = true,\n showScrollEffect = true,\n}: NavigationProps) {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [isScrolled, setIsScrolled] = useState(false)\n\n useEffect(() => {\n if (!showScrollEffect) return\n\n const handleScroll = () => {\n setIsScrolled(window.scrollY > 10)\n }\n\n window.addEventListener('scroll', handleScroll)\n return () => window.removeEventListener('scroll', handleScroll)\n }, [showScrollEffect])\n\n const maxWidthClass = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n '3xl': 'max-w-3xl',\n '4xl': 'max-w-4xl',\n '5xl': 'max-w-5xl',\n '6xl': 'max-w-6xl',\n '7xl': 'max-w-7xl',\n full: 'max-w-full',\n }[maxWidth]\n\n return (\n <nav\n className={cn(\n 'z-50 w-full transition-all duration-300',\n sticky && 'sticky top-0',\n showScrollEffect && isScrolled ? 'bg-background/95 backdrop-blur-md' : 'bg-background',\n className\n )}\n >\n <div className={cn(maxWidthClass, 'mx-auto px-6 lg:px-12 py-4')}>\n <div className=\"flex items-center justify-between\">\n {/* Logo */}\n <div className=\"flex items-center\">\n <Link href={logoHref} className=\"flex items-center\">\n {typeof logo === 'string' ? <span className=\"text-3xl font-base text-foreground font-halant\">{logo}</span> : logo}\n </Link>\n </div>\n\n {/* Desktop Navigation */}\n {links && links.length > 0 && (\n <div className=\"hidden lg:flex items-center gap-8\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"text-sm text-foreground hover:opacity-60 transition-opacity\">\n {link.label}\n </a>\n ))}\n </div>\n )}\n\n {/* CTA Button */}\n {ctaText && ctaHref && (\n <div className=\"hidden lg:flex items-center\">\n <Button asChild variant={ctaVariant}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n </div>\n )}\n\n {/* Mobile Menu Button */}\n <button className=\"lg:hidden p-2 text-foreground\" onClick={() => setMobileMenuOpen(!mobileMenuOpen)} aria-label=\"Toggle menu\">\n {mobileMenuOpen ? <X className=\"w-6 h-6\" /> : <Menu className=\"w-6 h-6\" />}\n </button>\n </div>\n\n {/* Mobile Menu */}\n <AnimatePresence>\n {mobileMenuOpen && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: 'auto' }}\n exit={{ opacity: 0, height: 0 }}\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className=\"lg:hidden overflow-hidden\"\n >\n <div className=\"mt-4 py-4 rounded-xl bg-card\">\n <div className=\"flex flex-col gap-4 px-6\">\n {links.map((link) => (\n <a key={link.href} href={link.href} className=\"py-2 text-foreground hover:opacity-70 transition-colors\" onClick={() => setMobileMenuOpen(false)}>\n {link.label}\n </a>\n ))}\n {ctaText && ctaHref && (\n <Button asChild variant={ctaVariant} className=\"mt-2\" onClick={() => setMobileMenuOpen(false)}>\n <a href={ctaHref}>{ctaText}</a>\n </Button>\n )}\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </nav>\n )\n}\n","'use client'\n\n/**\n * Baseline footer (named-agents components/footer.tsx) — the page closes on\n * the persona's fixed near-black surface: `bg-[#111011] text-white`, the same\n * in light and dark (the baseline hardcodes it; its dark-mode\n * --color-surface-sunken is tuned to land on this footer color). The ink\n * treatment is the design, not a theme accident, so this port keeps the\n * baseline's literal white/* classes instead of re-pointing onto the cream\n * token vocabulary — re-tokenizing it onto bg-card was exactly the drift that\n * turned the footer cream.\n *\n * Deviation from baseline: email submit fires the `onEmailSubmit` callback\n * (the baseline toasts via sonner — a dependency this package doesn't carry).\n */\n\nimport Link from 'next/link'\nimport { FaGithub, FaXTwitter } from 'react-icons/fa6'\nimport { SiNpm } from 'react-icons/si'\nimport { FaArrowRight } from 'react-icons/fa6'\nimport { Input } from '../../ui/input'\nimport type { IconType } from 'react-icons'\nimport { cn } from '../../../../lib/utils'\n\nexport interface SocialLink {\n href: string\n icon: IconType\n label: string\n}\n\nexport interface QuickLink {\n href: string\n label: string\n}\n\nexport interface FooterProps {\n logo?: string\n description?: string\n socialLinks?: SocialLink[]\n quickLinks?: QuickLink[]\n contactTitle?: string\n emailPlaceholder?: string\n onEmailSubmit?: (email: string) => void\n copyrightText?: string\n showThemeToggle?: boolean\n className?: string\n}\n\nexport function Footer({\n logo = 'Priya',\n description = 'Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.',\n socialLinks = [\n { href: 'https://github.com', icon: FaGithub, label: 'GitHub' },\n { href: 'https://npmjs.com', icon: SiNpm, label: 'npm' },\n // X always points at the .do brand account (do-design-agency HARD rule);\n // GitHub/npm stay product-specific overrides.\n { href: 'https://x.com/dotdo_ai', icon: FaXTwitter, label: 'X (Twitter)' },\n ],\n quickLinks = [\n { href: '/#pricing', label: 'Pricing' },\n { href: '/#features', label: 'How it works' },\n { href: '/contact', label: 'Contact' },\n ],\n contactTitle = 'Stay in touch',\n emailPlaceholder = 'Enter your email',\n onEmailSubmit,\n copyrightText = 'Priya.do © 2025. All rights reserved.',\n className,\n}: FooterProps) {\n const handleEmailSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const formData = new FormData(form)\n const email = formData.get('email') as string\n if (onEmailSubmit) {\n onEmailSubmit(email)\n }\n form.reset()\n }\n\n return (\n <footer className={cn('py-16 px-6 lg:px-12 bg-[#111011] text-white', className)}>\n <div className=\"max-w-7xl mx-auto\">\n <div className=\"grid md:grid-cols-5 gap-12 mb-12\">\n {/* Logo & Description */}\n <div className=\"md:col-span-2\">\n <Link href=\"/\" className=\"inline-block mb-4\">\n <div className=\"text-3xl font-base text-white font-halant\">{logo}</div>\n </Link>\n <p className=\"max-w-md text-sm leading-relaxed text-white/70 mb-6\">{description}</p>\n\n {/* Social Icons */}\n <div className=\"flex items-center gap-4\">\n {socialLinks.map((link) => {\n const Icon = link.icon\n return (\n <Link\n key={link.label}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-white/70 transition-colors hover:text-white\"\n aria-label={link.label}\n >\n <Icon className=\"w-5 h-5\" />\n </Link>\n )\n })}\n </div>\n </div>\n\n {/* Quick Links */}\n <div>\n <h3 className=\"font-semibold text-base mb-4 text-white\">Quick Links</h3>\n <ul className=\"space-y-2\">\n {quickLinks.map((link) => (\n <li key={link.label}>\n <Link href={link.href} className=\"text-sm text-white/70 transition-colors hover:text-white\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n\n {/* Contact Us */}\n <div className=\"w-full md:col-span-2 md:flex md:flex-col md:items-end\">\n <div className=\"w-full md:max-w-sm\">\n <h3 className=\"font-semibold text-base mb-4 text-white\">{contactTitle}</h3>\n <form onSubmit={handleEmailSubmit} className=\"relative\">\n <Input\n type=\"email\"\n name=\"email\"\n placeholder={emailPlaceholder}\n required\n className=\"w-full bg-white/10 border-white/20 text-white placeholder:text-white/50 pr-12\"\n />\n <button\n type=\"submit\"\n className=\"absolute right-1 top-1/2 -translate-y-1/2 bg-white text-gray-900 hover:bg-white/90 active:bg-[#111011] active:text-white px-3 py-3 rounded-md transition-colors\"\n aria-label=\"Submit email\"\n >\n <FaArrowRight className=\"w-3 h-3\" />\n </button>\n </form>\n </div>\n </div>\n </div>\n\n {/* Bottom Bar */}\n <div className=\"border-t border-white/10 pt-8\">\n <div className=\"flex flex-col md:flex-row justify-between items-center gap-4\">\n <p className=\"text-sm text-white/60\">{copyrightText}</p>\n </div>\n </div>\n </div>\n </footer>\n )\n}\n","'use client'\n\n/**\n * The named-agents baseline Input (components/ui/input.tsx), verbatim on the\n * baseline token vocabulary. Notably `h-11` and `bg-transparent` — the footer's\n * email capture positions a `py-3` submit button inside the field, which\n * overflows @mdxui/primitives' `h-9 bg-background` Input (the drift that broke\n * the footer input's padding).\n */\n\nimport * as React from 'react'\nimport { cn } from '../../../../lib/utils'\n\nexport const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'flex h-11 w-full rounded-md border border-(--color-border) bg-transparent px-3 py-1 text-base transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-(--color-fg) placeholder:text-(--color-fg-muted) focus-visible:outline-none focus-visible:border-(--color-border-strong) focus-visible:ring-1 focus-visible:ring-(--color-ring) disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\nInput.displayName = 'Input'\n","'use client'\n/**\n * STUDIO — the named-agents baseline template (\"Meet Priya\"): warm cream\n * surfaces, Halant serif display, persimmon accent, avatar hero artwork on the\n * large --radius-image mask, ink #111011 footer. A faithful port of the\n * baseline app (https://named-agents.vercel.app) — its chrome is the\n * baseline's own Navigation/Footer (never neo chrome; see the template-drift\n * history in the dispatcher's docstring).\n *\n * Envelope: `theme.css` in this directory, scoped under\n * `[data-dialect=\"named\"]` (studio is the default template, so its scope is\n * the bare dialect attribute; other templates override at higher specificity\n * via `[data-template=\"...\"]`).\n */\n\nimport { Hero } from './components/hero'\nimport { Features } from './components/features'\nimport { Pricing } from './components/pricing'\nimport { PricingTiers } from './components/pricing/pricing-tiers'\nimport { CTA } from './components/cta'\nimport { FAQ } from './components/faq'\nimport { Navigation } from './components/navigation'\nimport { Footer } from './components/footer'\nimport type { NamedAgentLandingContent } from '../../view/types'\n\nexport interface StudioViewProps {\n content: NamedAgentLandingContent\n brandName: string\n hostname: string\n}\n\nexport function StudioView({ content, brandName, hostname }: StudioViewProps) {\n const { hero, features, pricing, faq, cta } = content\n\n return (\n <>\n {/* Baseline nav: Features/Pricing/FAQ anchors + \"Hire me\" (defaults).\n Only the logo is persona-wired; the wire content carries no nav. */}\n <Navigation logo={brandName} />\n\n <main>\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 <Features\n heading={features.heading}\n description={features.description}\n features={features.features}\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 </main>\n\n {/* Baseline footer (near-black ink surface), persona-wired. Quick\n Links stay on the component's baseline defaults — Pricing, How it\n works, and /contact (the baseline ships a contact route alongside\n the landing; hosts that don't should override). */}\n <Footer\n logo={brandName}\n description={hero.description}\n copyrightText={`${hostname} © ${new Date().getFullYear()}. All rights reserved.`}\n />\n </>\n )\n}\n","'use client'\n\n/**\n * Executive Navigation — paper bar over a hairline rule. Wordmark in the\n * display serif at text-xl (quieter than studio's text-3xl: the executive\n * register asserts through restraint), links in muted ink, a hairline-ruled\n * secondary CTA. The bottom rule strengthens on scroll instead of a shadow.\n */\n\nimport { useState, useEffect } from 'react'\nimport Link from 'next/link'\nimport { Menu, X } from 'lucide-react'\nimport { cn } from '../../../lib/utils'\nimport { ExecButton } from '../ui/button'\n\nexport interface ExecNavLink {\n label: string\n href: string\n}\n\nexport interface ExecNavigationProps {\n logo?: string\n logoHref?: string\n links?: ExecNavLink[]\n ctaText?: string\n ctaHref?: string\n className?: string\n}\n\nexport function ExecNavigation({\n logo = 'Priya',\n logoHref = '/',\n links = [\n { label: 'Features', href: '#features' },\n { label: 'Pricing', href: '#pricing' },\n { label: 'FAQ', href: '#faq' },\n ],\n ctaText = 'Hire me',\n ctaHref = '#pricing',\n className,\n}: ExecNavigationProps) {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false)\n const [isScrolled, setIsScrolled] = useState(false)\n\n useEffect(() => {\n const handleScroll = () => setIsScrolled(window.scrollY > 10)\n window.addEventListener('scroll', handleScroll)\n return () => window.removeEventListener('scroll', handleScroll)\n }, [])\n\n return (\n <nav\n className={cn(\n 'sticky top-0 z-50 w-full bg-(--color-surface) transition-[border-color] duration-200 border-b',\n isScrolled ? 'border-(--color-border-strong)' : 'border-(--color-border)',\n className,\n )}\n >\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 py-4\">\n <div className=\"flex items-center justify-between\">\n {/* Wordmark — the serif italic, the page's counter-voice (same as\n the standfirst and the footer signature). The Anton stays\n reserved for statements; the NAME gets its own voice. */}\n <Link href={logoHref} className=\"flex items-baseline gap-2\">\n <span className=\"exec-serif italic text-2xl text-(--color-fg)\">{logo}</span>\n </Link>\n\n <div className=\"hidden lg:flex items-center gap-10\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className=\"text-sm text-(--color-fg-muted) hover:text-(--color-fg) transition-colors\"\n >\n {link.label}\n </a>\n ))}\n </div>\n\n {ctaText && ctaHref && (\n <div className=\"hidden lg:flex items-center\">\n <ExecButton asChild variant=\"secondary\" size=\"sm\">\n <a href={ctaHref}>{ctaText}</a>\n </ExecButton>\n </div>\n )}\n\n <button\n className=\"lg:hidden p-2 text-(--color-fg)\"\n onClick={() => setMobileMenuOpen(!mobileMenuOpen)}\n aria-label=\"Toggle menu\"\n >\n {mobileMenuOpen ? <X className=\"w-5 h-5\" /> : <Menu className=\"w-5 h-5\" />}\n </button>\n </div>\n\n {mobileMenuOpen && (\n <div className=\"lg:hidden border-t border-(--color-border) mt-4\">\n <div className=\"flex flex-col py-2\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className=\"py-3 text-sm text-(--color-fg) border-b border-(--color-border) last:border-b-0\"\n onClick={() => setMobileMenuOpen(false)}\n >\n {link.label}\n </a>\n ))}\n {ctaText && ctaHref && (\n <ExecButton asChild variant=\"secondary\" size=\"sm\" className=\"mt-3 self-start\" onClick={() => setMobileMenuOpen(false)}>\n <a href={ctaHref}>{ctaText}</a>\n </ExecButton>\n )}\n </div>\n </div>\n )}\n </div>\n </nav>\n )\n}\n","'use client'\n\n/**\n * Executive Button — Ledger Paper design language. Flat, square (2px), no\n * shadows, no pills, no gradients: a solid oxblood primary (the template's\n * only committed use of color) and a hairline-ruled secondary. Speaks the\n * executive token vocabulary the envelope defines.\n */\n\nimport * as React from 'react'\nimport { cn } from '../../../lib/utils'\n\nexport type ExecButtonVariant = 'default' | 'secondary' | 'ghost' | 'link'\nexport type ExecButtonSize = 'default' | 'sm'\n\nconst baseClasses =\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-ring) disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer rounded-[2px]'\n\nconst variantClasses: Record<ExecButtonVariant, string> = {\n default: 'bg-(--color-btn-primary-to) text-(--color-btn-primary-fg) hover:bg-(--color-accent)',\n secondary:\n 'bg-transparent text-(--color-fg) border border-(--color-border-strong) hover:bg-(--color-hover)',\n ghost: 'text-(--color-fg) hover:bg-(--color-hover)',\n link: 'text-(--color-fg) underline-offset-4 hover:underline',\n}\n\nconst sizeClasses: Record<ExecButtonSize, string> = {\n default: 'h-11 px-6 text-sm tracking-[0.01em]',\n sm: 'h-9 px-4 text-sm',\n}\n\nexport interface ExecButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ExecButtonVariant\n size?: ExecButtonSize\n asChild?: boolean\n}\n\nexport const ExecButton = React.forwardRef<HTMLButtonElement, ExecButtonProps>(\n ({ className, variant = 'default', size = 'default', asChild = false, children, ...props }, ref) => {\n const classes = cn(baseClasses, variantClasses[variant], sizeClasses[size], className)\n\n if (asChild && React.isValidElement(children)) {\n const child = children as React.ReactElement<{ className?: string }>\n return React.cloneElement(child, {\n ...props,\n className: cn(classes, child.props.className),\n })\n }\n\n return (\n <button ref={ref} className={classes} {...props}>\n {children}\n </button>\n )\n },\n)\nExecButton.displayName = 'ExecButton'\n","'use client'\n\n/**\n * Executive Hero — the COVER. Reference: Bloomberg Businessweek cover energy\n * on ledger bones. A drenched oxblood field; the wire heading (the tagline)\n * as the cover statement in the black grotesque; the description as the\n * serif-italic standfirst; and the tool list as a slow financial ticker\n * across the cover's bottom rule. The persona name appears ONCE on the page\n * frame — the navbar wordmark — so the cover doesn't repeat it (no avatar,\n * no name masthead; the statement is the mark).\n *\n * Consumes the same wire fields as studio's Hero; `badgeText` /\n * `rightImageSrc` / `rightImageAlt` / `showIconOverlay` are deliberately\n * ignored.\n */\n\nimport { HiArrowRight } from 'react-icons/hi'\nimport { cn, brandLabel } from '../../../lib/utils'\nimport { Marquee } from '../../../shared/marquee'\nimport { ScrollReveal } from '../../../shared/scroll-reveal'\nimport { ExecButton } from '../ui/button'\n\nexport interface ExecHeroProps {\n heading?: string\n description?: string\n ctaText?: string\n ctaHref?: string\n secondaryCtaText?: string\n secondaryCtaHref?: string\n marqueeTitle?: string\n marqueeImages?: string[]\n className?: string\n}\n\nexport function ExecHero({\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 secondaryCtaText,\n secondaryCtaHref,\n marqueeTitle = 'Tools I work with',\n marqueeImages = [],\n className,\n}: ExecHeroProps) {\n // Ticker renders LABELS only — image URLs reduce to nothing in type.\n const tools = marqueeImages.filter((s) => !/^(https?:)?\\/\\//i.test(s.trim()) && !s.trim().startsWith('data:'))\n\n return (\n <section className={cn('bg-(--color-accent-field) text-(--color-accent-fg)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10\">\n {/* The cover statement — the tagline takes the masthead treatment.\n (The persona name lives in the navbar wordmark; it doesn't repeat\n here.) */}\n <ScrollReveal direction=\"up\" trigger=\"mount\">\n <h1 className=\"pt-16 md:pt-24 font-halant text-[clamp(48px,7.5vw,118px)] text-(--color-accent-fg) max-w-[14ch] -ml-0.5\">\n {heading}\n </h1>\n </ScrollReveal>\n\n {/* Standfirst + actions */}\n <div className=\"grid md:grid-cols-12 gap-x-6 gap-y-8 pt-10 md:pt-12 pb-14 md:pb-20\">\n <div className=\"md:col-span-7\">\n <ScrollReveal direction=\"up\" delay={0.12} trigger=\"mount\">\n <p className=\"exec-serif italic text-xl md:text-2xl leading-relaxed text-(--color-accent-fg)/90 max-w-[44ch]\">\n {description}\n </p>\n </ScrollReveal>\n </div>\n <div className=\"md:col-span-4 md:col-start-9 flex md:justify-end md:items-end\">\n <ScrollReveal direction=\"up\" delay={0.22} trigger=\"mount\">\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <ExecButton asChild className=\"bg-(--color-accent-fg) text-(--color-accent-field) hover:bg-(--color-surface-raised)\">\n <a href={ctaHref}>\n {ctaText}\n <HiArrowRight className=\"w-4 h-4\" />\n </a>\n </ExecButton>\n {secondaryCtaText && secondaryCtaHref && (\n <ExecButton asChild variant=\"secondary\" className=\"border-(--color-accent-fg)/40 text-(--color-accent-fg) hover:bg-(--color-accent-fg)/10\">\n <a href={secondaryCtaHref}>{secondaryCtaText}</a>\n </ExecButton>\n )}\n </div>\n </ScrollReveal>\n </div>\n </div>\n </div>\n\n {/* The ticker — tools as tape across the cover's bottom rule */}\n {tools.length > 0 && (\n <div className=\"border-t border-(--color-accent-fg)/25 bg-(--color-accent-field)\" aria-label={marqueeTitle}>\n <Marquee className=\"py-4 [--duration:32s] [--gap:2.5rem]\">\n {tools.map((tool, i) => (\n <span\n key={`${tool}-${i}`}\n className=\"flex items-center gap-x-10 font-halant uppercase text-base tracking-[0.08em] text-(--color-accent-fg)/85 whitespace-nowrap\"\n >\n {brandLabel(tool)}\n <span className=\"inline-block size-[6px] bg-(--color-accent-fg)/50\" aria-hidden=\"true\" />\n </span>\n ))}\n </Marquee>\n </div>\n )}\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive Features (\"How It Works\") — ledger rows, not cards. Each feature\n * is a hairline-ruled row: a large light serif index, the title + description\n * + capability list on the left, and the code as a quiet mono annotation on\n * paper-sunken (no dark panel — a document excerpt, not a terminal).\n */\n\nimport { cn } from '../../../lib/utils'\nimport { CodeWindow } from '../../../shared/code-window'\nimport { ScrollReveal } from '../../../shared/scroll-reveal'\n\nexport interface ExecFeatureItem {\n text: string\n}\n\nexport interface ExecFeature {\n title: string\n description: string\n items: ExecFeatureItem[]\n code: string\n /** Shiki language id; defaults to TypeScript (the persona DSL). */\n language?: string\n badge: string\n}\n\nexport interface ExecFeaturesProps {\n heading?: string\n description?: string\n features?: ExecFeature[]\n className?: string\n}\n\nexport function ExecFeatures({\n heading = 'How It Works',\n description,\n features = [],\n className,\n}: ExecFeaturesProps) {\n return (\n <section id=\"features\" className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 py-16 md:py-24\">\n {/* Section opener — a bold ink rule, not a polite hairline */}\n <ScrollReveal direction=\"up\">\n <div className=\"grid md:grid-cols-12 gap-6 pb-8 border-b-[3px] border-(--color-fg)\">\n <h2 className=\"md:col-span-7 font-halant text-[clamp(44px,6vw,84px)] text-(--color-fg)\">{heading}</h2>\n {description && (\n <p className=\"md:col-span-4 md:col-start-9 text-base leading-relaxed text-(--color-fg-soft) max-w-[58ch] self-end\">\n {description}\n </p>\n )}\n </div>\n </ScrollReveal>\n\n {/* Ledger rows — the entry numbers are layout objects: cover-scale\n red figures colliding with the rule structure. */}\n <ol className=\"list-none m-0 p-0\">\n {features.map((feature, index) => (\n <li key={index} className=\"border-b border-(--color-border)\">\n <ScrollReveal direction=\"up\" delay={0.05}>\n <div className=\"grid md:grid-cols-12 gap-x-6 gap-y-6 py-10 md:py-14\">\n {/* Index — oversized red figure */}\n <div className=\"md:col-span-2\">\n <span className=\"exec-figure font-halant block text-[clamp(64px,8vw,124px)] leading-[0.8] text-(--color-accent-strong) md:-mt-2\">\n {feature.badge}\n </span>\n </div>\n\n {/* Title + description + capabilities */}\n <div className=\"md:col-span-4\">\n <h3 className=\"text-xl font-semibold text-(--color-fg)\">{feature.title}</h3>\n <p className=\"mt-3 text-base leading-relaxed text-(--color-fg-soft)\">{feature.description}</p>\n <ul className=\"mt-6 space-y-2.5\">\n {feature.items.map((item, itemIndex) => (\n <li key={itemIndex} className=\"flex items-baseline gap-3 text-sm text-(--color-fg)\">\n <span className=\"inline-block size-[5px] shrink-0 translate-y-[-1px] bg-(--color-accent-strong)\" aria-hidden=\"true\" />\n {item.text}\n </li>\n ))}\n </ul>\n </div>\n\n {/* Code annotation — the ink panel (github-dark-default, same\n theme as studio) in BOTH modes: on the light page it echoes\n the ink CTA band; on the dark page it sits a step deeper\n than the ink ground, framed by the hairline. */}\n {feature.code && (\n <div className=\"md:col-span-6 md:col-start-7\">\n <CodeWindow\n code={feature.code}\n language={feature.language}\n className=\"rounded-[2px] border border-(--color-border) bg-[#0d1117] p-5 text-left text-xs leading-relaxed text-[#e6edf3]\"\n />\n </div>\n )}\n </div>\n </ScrollReveal>\n </li>\n ))}\n </ol>\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive Pricing (single tier) — one centered ledger entry: the price as\n * a large serif tabular figure, the inclusions in two ruled columns, the\n * security note as a footnote. Same wire shape as studio's single-tier fork.\n */\n\nimport { cn } from '../../../lib/utils'\nimport { ExecButton } from '../ui/button'\n\nexport interface ExecPricingFeature {\n text: string\n}\n\nexport interface ExecPricingProps {\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?: ExecPricingFeature[]\n securityNote?: string\n className?: string\n}\n\nexport function ExecPricing({\n heading = 'Simple, transparent pricing',\n subheading,\n price = '$16',\n priceUnit = '/ month',\n trialText,\n ctaText = 'Get Started',\n ctaHref = '#contact',\n featuresHeading = \"What's included\",\n features = [],\n securityNote,\n className,\n}: ExecPricingProps) {\n return (\n <section id=\"pricing\" className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 py-16 md:py-24\">\n <div className=\"grid md:grid-cols-12 gap-6 pb-8 border-b-[3px] border-(--color-fg)\">\n <h2 className=\"md:col-span-7 font-halant text-[clamp(44px,6vw,84px)] text-(--color-fg)\">{heading}</h2>\n {subheading && (\n <p className=\"md:col-span-6 md:col-start-7 text-base leading-relaxed text-(--color-fg-soft) max-w-[58ch] self-end\">\n {subheading}\n </p>\n )}\n </div>\n\n <div className=\"grid md:grid-cols-12 gap-x-6 gap-y-10 py-12\">\n {/* The entry */}\n <div className=\"md:col-span-5\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"exec-figure font-halant text-6xl text-(--color-accent-strong)\">{price}</span>\n <span className=\"text-sm text-(--color-fg-muted)\">{priceUnit}</span>\n </div>\n {trialText && <p className=\"mt-3 text-sm text-(--color-fg-soft)\">{trialText}</p>}\n <div className=\"mt-8\">\n <ExecButton asChild>\n <a href={ctaHref}>{ctaText}</a>\n </ExecButton>\n </div>\n </div>\n\n {/* Inclusions, ruled, two columns */}\n <div className=\"md:col-span-6 md:col-start-7\">\n <p className=\"text-xs font-medium tracking-[0.18em] uppercase text-(--color-fg-muted)\">{featuresHeading}</p>\n <ul className=\"mt-4 columns-1 sm:columns-2 gap-x-10\">\n {features.map((feature, index) => (\n <li\n key={index}\n className=\"break-inside-avoid py-2.5 text-sm text-(--color-fg) border-t border-(--color-border) first:border-t-0\"\n >\n {feature.text}\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n {securityNote && (\n <div className=\"border-t border-(--color-border-strong) pt-5\">\n <p className=\"text-xs leading-relaxed text-(--color-fg-muted) max-w-[70ch]\">\n <span aria-hidden=\"true\">† </span>\n {securityNote}\n </p>\n </div>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive PricingTiers — ruled columns on paper, no cards. Each tier is a\n * column separated by a hairline; the price is a large serif tabular figure\n * (oxblood on the featured tier — one of the accent's two permitted uses),\n * features are hairline mini-rows, and the security note closes the section\n * as a footnote under a rule.\n */\n\nimport { cn } from '../../../lib/utils'\nimport { ExecButton } from '../ui/button'\n\nexport interface ExecPricingTierFeature {\n text: string\n}\n\nexport interface ExecPricingTier {\n title: string\n description: string\n price: string\n priceUnit: string\n ctaText: string\n ctaVariant?: 'primary' | 'secondary'\n ctaHref?: string\n features: ExecPricingTierFeature[]\n featured?: boolean\n}\n\nexport interface ExecPricingTiersProps {\n heading?: string\n subheading?: string\n tiers?: ExecPricingTier[]\n securityNote?: string\n className?: string\n}\n\nexport function ExecPricingTiers({\n heading = 'Simple, transparent pricing',\n subheading,\n tiers = [],\n securityNote,\n className,\n}: ExecPricingTiersProps) {\n return (\n <section id=\"pricing\" className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 py-16 md:py-24\">\n {/* Section opener */}\n <div className=\"grid md:grid-cols-12 gap-6 pb-8 border-b-[3px] border-(--color-fg)\">\n <h2 className=\"md:col-span-7 font-halant text-[clamp(44px,6vw,84px)] text-(--color-fg)\">{heading}</h2>\n {subheading && (\n <p className=\"md:col-span-4 md:col-start-9 text-base leading-relaxed text-(--color-fg-soft) max-w-[58ch] self-end\">\n {subheading}\n </p>\n )}\n </div>\n\n {/* Columns — the featured tier is a solid oxblood block (color as a\n structural decision, not a tint); the rest stay paper. */}\n <div className=\"grid md:grid-cols-2 gap-y-8 md:gap-y-0 pt-10 md:pt-12\">\n {tiers.map((tier, index) => {\n const featured = !!tier.featured\n return (\n <div\n key={index}\n className={cn(\n 'flex flex-col p-7 md:p-10',\n featured\n ? 'bg-(--color-accent-field) text-(--color-accent-fg) rounded-[2px]'\n : 'border border-(--color-border)',\n )}\n >\n <div className=\"flex items-baseline justify-between\">\n <h3 className={cn('text-lg font-semibold', featured ? 'text-(--color-accent-fg)' : 'text-(--color-fg)')}>\n {tier.title}\n </h3>\n <span\n className={cn(\n 'exec-figure text-xs tracking-[0.18em] uppercase',\n featured ? 'text-(--color-accent-fg)/60' : 'text-(--color-fg-muted)',\n )}\n aria-hidden=\"true\"\n >\n {String(index + 1).padStart(2, '0')}\n </span>\n </div>\n <p\n className={cn(\n 'mt-3 text-sm leading-relaxed max-w-[44ch]',\n featured ? 'text-(--color-accent-fg)/75' : 'text-(--color-fg-soft)',\n )}\n >\n {tier.description}\n </p>\n\n <div className=\"mt-9 flex items-baseline gap-2\">\n <span\n className={cn(\n 'exec-figure font-halant text-7xl md:text-8xl leading-[0.85]',\n featured ? 'text-(--color-accent-fg)' : 'text-(--color-fg)',\n )}\n >\n {tier.price}\n </span>\n <span className={cn('text-sm', featured ? 'text-(--color-accent-fg)/60' : 'text-(--color-fg-muted)')}>\n {tier.priceUnit}\n </span>\n </div>\n\n <div className=\"mt-9\">\n {featured ? (\n <ExecButton asChild className=\"bg-(--color-accent-fg) text-(--color-accent-field) hover:bg-(--color-surface-raised) w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </ExecButton>\n ) : (\n <ExecButton asChild variant=\"secondary\" className=\"w-full sm:w-auto\">\n <a href={tier.ctaHref || '#'}>{tier.ctaText}</a>\n </ExecButton>\n )}\n </div>\n\n <ul className=\"mt-10 flex-1\">\n {tier.features.map((feature, featureIndex) => (\n <li\n key={featureIndex}\n className={cn(\n 'py-2.5 text-sm border-t first:border-t-0',\n featured\n ? 'text-(--color-accent-fg)/90 border-(--color-accent-fg)/20'\n : 'text-(--color-fg) border-(--color-border)',\n )}\n >\n {feature.text}\n </li>\n ))}\n </ul>\n </div>\n )\n })}\n </div>\n\n {/* Footnote */}\n {securityNote && (\n <div className=\"mt-10 border-t border-(--color-border-strong) pt-5\">\n <p className=\"text-xs leading-relaxed text-(--color-fg-muted) max-w-[70ch]\">\n <span aria-hidden=\"true\">† </span>\n {securityNote}\n </p>\n </div>\n )}\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive FAQ — a numbered, hairline-ruled list. Reuses the primitives\n * Accordion for the disclosure mechanics only; the presentation is the\n * ledger language (indexed rows, rules, no boxes, no shadows).\n */\n\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@mdxui/primitives'\nimport { cn } from '../../../lib/utils'\n\nexport interface ExecFAQItem {\n question: string\n answer: string\n}\n\nexport interface ExecFAQProps {\n heading?: string\n faqs?: ExecFAQItem[]\n className?: string\n}\n\nexport function ExecFAQ({ heading = 'FAQs', faqs = [], className }: ExecFAQProps) {\n return (\n <section id=\"faq\" className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 py-16 md:py-24\">\n <div className=\"pb-8 border-b-[3px] border-(--color-fg)\">\n <h2 className=\"font-halant text-[clamp(44px,6vw,84px)] text-(--color-fg)\">{heading}</h2>\n </div>\n\n <Accordion type=\"single\" collapsible>\n {faqs.map((faq, index) => (\n <AccordionItem\n key={index}\n value={`item-${index}`}\n className=\"border-b border-(--color-border) rounded-none\"\n >\n <AccordionTrigger className=\"hover:no-underline py-6 text-base font-medium text-(--color-fg) gap-6\">\n <span className=\"flex items-baseline gap-5 text-left\">\n <span className=\"exec-figure text-xs text-(--color-fg-muted) shrink-0\" aria-hidden=\"true\">\n {String(index + 1).padStart(2, '0')}\n </span>\n {faq.question}\n </span>\n </AccordionTrigger>\n <AccordionContent className=\"pb-6 pl-10 text-sm leading-relaxed text-(--color-fg-soft) max-w-[65ch]\">\n {faq.answer}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive CTA — the totals row, written in red ink. The double rule (the\n * ledger's closing signature) opens the section, then the page's one\n * committed color moment: a full oxblood band carrying the closing statement\n * in paper-white serif. Buttons invert inside the band (paper on oxblood for\n * the primary action, hairline paper outline for the secondary).\n */\n\nimport { HiArrowRight } from 'react-icons/hi'\nimport { cn } from '../../../lib/utils'\nimport { ScrollReveal } from '../../../shared/scroll-reveal'\nimport { ExecButton } from '../ui/button'\n\nexport interface ExecCTAButton {\n text: string\n href: string\n variant?: 'primary' | 'secondary'\n showArrow?: boolean\n}\n\nexport interface ExecCTAProps {\n heading?: string\n subheading?: string\n buttons?: ExecCTAButton[]\n className?: string\n}\n\nexport function ExecCTA({\n heading = 'Ready to Save 15 Hours Per Week?',\n subheading,\n buttons = [{ text: 'Get Started', href: '#pricing', variant: 'primary', showArrow: true }],\n className,\n}: ExecCTAProps) {\n return (\n <section className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 pb-16 md:pb-24\">\n <div className=\"exec-double-rule pt-10 md:pt-12\">\n <ScrollReveal direction=\"up\">\n {/* Ink band — the page bookends oxblood (cover) → ink (close).\n The oxblood returns as the button: red ink signs the total. */}\n <div className=\"rounded-[2px] bg-(--color-fg) px-8 py-14 md:px-14 md:py-20\">\n <div className=\"grid md:grid-cols-12 gap-x-6 gap-y-10 items-end\">\n <div className=\"md:col-span-8\">\n <h2 className=\"font-halant text-[clamp(44px,6vw,92px)] text-(--color-surface) max-w-[16ch]\">\n {heading}\n </h2>\n {subheading && (\n <p className=\"exec-serif italic mt-5 text-lg md:text-xl text-(--color-surface)/70\">{subheading}</p>\n )}\n </div>\n <div className=\"md:col-span-4 flex md:justify-end\">\n <div className=\"flex flex-col sm:flex-row gap-3\">\n {buttons.map((button, index) =>\n button.variant === 'primary' || !button.variant ? (\n <ExecButton key={index} asChild className=\"bg-(--color-accent-field) text-(--color-accent-fg) hover:bg-(--color-accent)\">\n <a href={button.href}>\n {button.text}\n {button.showArrow && <HiArrowRight className=\"w-4 h-4\" />}\n </a>\n </ExecButton>\n ) : (\n <ExecButton\n key={index}\n asChild\n variant=\"secondary\"\n className=\"border-(--color-surface)/40 text-(--color-surface) hover:bg-(--color-surface)/10\"\n >\n <a href={button.href}>\n {button.text}\n {button.showArrow && <HiArrowRight className=\"w-4 h-4\" />}\n </a>\n </ExecButton>\n ),\n )}\n </div>\n </div>\n </div>\n </div>\n </ScrollReveal>\n </div>\n </div>\n </section>\n )\n}\n","'use client'\n\n/**\n * Executive Footer — paper, not ink (studio owns the near-black closing; the\n * executive page ends the way a statement does: a strong rule, the colophon,\n * the index). Social links are typographic, no icon grid. X always points at\n * the .do brand account (do-design-agency HARD rule); GitHub/npm stay\n * product-specific overrides.\n */\n\nimport Link from 'next/link'\nimport { cn } from '../../../lib/utils'\n\nexport interface ExecFooterLink {\n label: string\n href: string\n}\n\nexport interface ExecFooterProps {\n logo?: string\n description?: string\n quickLinks?: ExecFooterLink[]\n socialLinks?: ExecFooterLink[]\n copyrightText?: string\n className?: string\n}\n\nexport function ExecFooter({\n logo = 'Priya',\n description = 'Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.',\n quickLinks = [\n { label: 'Pricing', href: '/#pricing' },\n { label: 'How it works', href: '/#features' },\n { label: 'Contact', href: '/contact' },\n ],\n socialLinks = [\n { label: 'GitHub', href: 'https://github.com' },\n { label: 'npm', href: 'https://npmjs.com' },\n { label: 'X', href: 'https://x.com/dotdo_ai' },\n ],\n copyrightText = 'Priya.do © 2025. All rights reserved.',\n className,\n}: ExecFooterProps) {\n return (\n <footer className={cn('bg-(--color-surface)', className)}>\n <div className=\"max-w-6xl mx-auto px-6 lg:px-10 pb-12\">\n <div className=\"exec-double-rule pt-10\">\n <div className=\"grid md:grid-cols-12 gap-x-6 gap-y-10\">\n <div className=\"md:col-span-6\">\n {/* The signature — the persona signs the document, in the same\n serif-italic voice as the navbar wordmark and the standfirst. */}\n <Link href=\"/\" className=\"inline-block\">\n <span className=\"exec-serif italic text-4xl md:text-5xl text-(--color-fg)\">{logo}</span>\n </Link>\n <div className=\"mt-4 flex items-baseline gap-3 border-t border-(--color-border) pt-3 max-w-[44ch]\">\n <span className=\"inline-block size-[7px] shrink-0 translate-y-[-1px] bg-(--color-accent-strong)\" aria-hidden=\"true\" />\n <p className=\"text-sm leading-relaxed text-(--color-fg-muted)\">{description}</p>\n </div>\n </div>\n\n <div className=\"md:col-span-3\">\n <p className=\"text-xs font-medium tracking-[0.18em] uppercase text-(--color-fg-muted)\">Index</p>\n <ul className=\"mt-4 space-y-2\">\n {quickLinks.map((link) => (\n <li key={link.label}>\n <Link href={link.href} className=\"text-sm text-(--color-fg-soft) hover:text-(--color-fg) transition-colors\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n\n <div className=\"md:col-span-3\">\n <p className=\"text-xs font-medium tracking-[0.18em] uppercase text-(--color-fg-muted)\">Elsewhere</p>\n <ul className=\"mt-4 space-y-2\">\n {socialLinks.map((link) => (\n <li key={link.label}>\n <Link\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm text-(--color-fg-soft) hover:text-(--color-fg) transition-colors\"\n >\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n <div className=\"mt-12 pt-5 border-t border-(--color-border)\">\n <p className=\"text-xs text-(--color-fg-muted)\">{copyrightText}</p>\n </div>\n </div>\n </div>\n </footer>\n )\n}\n","'use client'\n/**\n * EXECUTIVE — the professional register of the named dialect (\"Your AI CFO\"\n * tone): Ledger Paper. Cool paper + graphite ink, hairline-rule structure,\n * 2px corners, tabular numerals, one oxblood accent (CTA + key figures).\n * No avatar — the typography is the mark; `hero.rightImageSrc` is ignored.\n *\n * Same wire contract as studio (NamedAgentLandingContent); a template may\n * ignore fields, never require new ones. Envelope: `theme.css` here, scoped\n * `[data-dialect=\"named\"][data-template=\"executive\"]` over the studio\n * defaults; its dark block inverts to ink surfaces with luminous oxblood.\n */\n\nimport { ExecNavigation } from './components/navigation'\nimport { ExecHero } from './components/hero'\nimport { ExecFeatures } from './components/features'\nimport { ExecPricing } from './components/pricing'\nimport { ExecPricingTiers } from './components/pricing-tiers'\nimport { ExecFAQ } from './components/faq'\nimport { ExecCTA } from './components/cta'\nimport { ExecFooter } from './components/footer'\nimport type { NamedAgentLandingContent } from '../../view/types'\n\nexport interface ExecutiveViewProps {\n content: NamedAgentLandingContent\n brandName: string\n hostname: string\n}\n\nexport function ExecutiveView({ content, brandName, hostname }: ExecutiveViewProps) {\n const { hero, features, pricing, faq, cta } = content\n\n return (\n <>\n <ExecNavigation logo={brandName} />\n\n <main>\n <ExecHero\n heading={hero.heading}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n secondaryCtaText={hero.secondaryCtaText}\n secondaryCtaHref={hero.secondaryCtaHref}\n marqueeTitle={hero.marqueeTitle}\n marqueeImages={hero.marqueeImages}\n />\n\n <ExecFeatures\n heading={features.heading}\n description={features.description}\n features={features.features}\n />\n\n {pricing.variant === 'single' ? (\n <ExecPricing\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 <ExecPricingTiers\n heading={pricing.heading}\n subheading={pricing.subheading}\n tiers={pricing.tiers}\n securityNote={pricing.securityNote}\n />\n )}\n\n <ExecFAQ heading={faq.heading} faqs={faq.faqs} />\n\n <ExecCTA heading={cta.heading} subheading={cta.subheading} buttons={cta.buttons} />\n </main>\n\n <ExecFooter\n logo={brandName}\n description={hero.description}\n copyrightText={`${hostname} © ${new Date().getFullYear()}. All rights reserved.`}\n />\n </>\n )\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","defaultFeatures","Check","Image","jsx","jsxs","Image","Check","jsx","jsxs","jsx","jsxs","useState","useEffect","motion","jsx","jsxs","useState","useEffect","motion","Link","React","jsx","jsx","jsxs","Link","Fragment","jsx","jsxs","useState","useEffect","Link","Menu","X","React","jsx","baseClasses","variantClasses","sizeClasses","jsx","jsxs","useState","useEffect","Link","X","Menu","HiArrowRight","jsx","jsxs","HiArrowRight","jsx","jsxs","jsx","jsxs","jsx","jsxs","Accordion","AccordionContent","AccordionItem","AccordionTrigger","jsx","jsxs","Accordion","AccordionItem","AccordionTrigger","AccordionContent","HiArrowRight","jsx","jsxs","HiArrowRight","Link","jsx","jsxs","Link","Fragment","jsx","jsxs","jsx"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mdxui/named",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Named Agents site template - landing page components for AI product sites",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"prepublishOnly": "pnpm build"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@mdxui/dialect": "0.
|
|
69
|
-
"@mdxui/neo": "0.
|
|
70
|
-
"@mdxui/primitives": "^6.
|
|
71
|
-
"@mdxui/themes": "^6.
|
|
68
|
+
"@mdxui/dialect": "0.2.0",
|
|
69
|
+
"@mdxui/neo": "0.2.0",
|
|
70
|
+
"@mdxui/primitives": "^6.1.0",
|
|
71
|
+
"@mdxui/themes": "^6.1.0",
|
|
72
72
|
"@mdxui/typescript-config": "6.0.0",
|
|
73
73
|
"@types/react": "^19.2.7",
|
|
74
74
|
"@types/react-dom": "^19.2.3",
|
|
@@ -80,11 +80,12 @@
|
|
|
80
80
|
"lucide-react": "^0.561.0",
|
|
81
81
|
"motion": "^12.23.26",
|
|
82
82
|
"react-icons": "^5.5.0",
|
|
83
|
+
"shiki": "^4.2.0",
|
|
83
84
|
"tailwind-merge": "^3.3.1",
|
|
84
85
|
"zod": "^4.3.5"
|
|
85
86
|
},
|
|
86
87
|
"peerDependencies": {
|
|
87
|
-
"@mdxui/dialect": ">=0.
|
|
88
|
+
"@mdxui/dialect": ">=0.2.0",
|
|
88
89
|
"@mdxui/neo": ">=0.1.0",
|
|
89
90
|
"@mdxui/primitives": ">=0.0.0",
|
|
90
91
|
"@mdxui/themes": ">=6.0.0",
|