{"version":3,"sources":["../../src/lib/cn.ts","../../src/components/Section.tsx","../../src/components/Hero.tsx","../../src/components/Content.tsx","../../src/components/CTA.tsx","../../src/components/PresentationWrapper.tsx"],"names":["twMerge","clsx","forwardRef","jsx","jsxs"],"mappings":"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","file":"index.cjs","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\n/**\n * Utility for merging Tailwind CSS classes\n */\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../lib/cn'\n\nexport interface SectionProps extends HTMLAttributes<HTMLElement> {\n  /** Unique section identifier for tracking */\n  id: string\n  /** Human-readable label shown in analytics */\n  label?: string\n  /** Section order (auto-detected if not provided) */\n  order?: number\n  /** Full height section (100vh) */\n  fullHeight?: boolean\n  /** Additional className */\n  className?: string\n  /** Section content */\n  children?: ReactNode\n}\n\n/**\n * Trackable Section Component\n *\n * A section that automatically integrates with the Brixon tracking system.\n * The IntersectionObserver in the tracking SDK observes all elements with\n * data-section-id attributes.\n *\n * @example\n * ```tsx\n * <Section id=\"hero\" label=\"Introduction\">\n *   <h1>Welcome</h1>\n * </Section>\n *\n * <Section id=\"features\" label=\"Features\" fullHeight>\n *   <FeatureList />\n * </Section>\n * ```\n */\nexport const Section = forwardRef<HTMLElement, SectionProps>(\n  ({ id, label, order, fullHeight = false, className, children, ...props }, ref) => {\n    return (\n      <section\n        ref={ref}\n        id={id}\n        data-section-id={id}\n        data-section-label={label || id}\n        data-section-order={order}\n        className={cn(\n          'relative',\n          fullHeight && 'min-h-screen',\n          className\n        )}\n        {...props}\n      >\n        {children}\n      </section>\n    )\n  }\n)\n\nSection.displayName = 'Section'\n","'use client'\n\nimport { type ReactNode } from 'react'\nimport { cn } from '../lib/cn'\n\nexport interface HeroProps {\n  /** Presentation title */\n  title: string | ReactNode\n  /** Optional subtitle */\n  subtitle?: string\n  /** Optional year badge */\n  year?: string\n  /** Client name displayed above title */\n  clientName?: string\n  /** Theme variant */\n  theme?: 'dark' | 'light'\n  /** Show scroll indicator */\n  showScrollIndicator?: boolean\n  /** Additional className */\n  className?: string\n}\n\n/**\n * Hero Section Component\n *\n * Full-screen hero section for presentation introductions.\n * Automatically tracked with data-section-id=\"hero\".\n *\n * @example\n * ```tsx\n * <Hero\n *   title=\"Digital Transformation\"\n *   subtitle=\"A Strategic Proposal\"\n *   clientName=\"ACME Corporation\"\n *   year=\"2026\"\n * />\n * ```\n */\nexport function Hero({\n  title,\n  subtitle,\n  year,\n  clientName,\n  theme = 'dark',\n  showScrollIndicator = true,\n  className,\n}: HeroProps) {\n  const isDark = theme === 'dark'\n\n  return (\n    <section\n      data-section-id=\"hero\"\n      data-section-label=\"Start\"\n      className={cn(\n        'relative min-h-screen flex items-center justify-center overflow-hidden',\n        isDark ? 'bg-gray-900 text-white' : 'bg-white text-gray-900',\n        className\n      )}\n    >\n      {/* Year Badge */}\n      {year && (\n        <div className=\"absolute top-12 right-12 md:top-16 md:right-20 z-20\">\n          <span\n            className={cn(\n              'px-5 py-2.5 rounded-full text-sm font-medium',\n              isDark\n                ? 'bg-white/10 text-white border border-white/20'\n                : 'bg-gray-900/10 text-gray-900 border border-gray-900/20'\n            )}\n          >\n            {year}\n          </span>\n        </div>\n      )}\n\n      {/* Main Content */}\n      <div className=\"relative z-10 text-center px-6 md:px-8 max-w-5xl mx-auto\">\n        {/* Client Name Label */}\n        {clientName && (\n          <p\n            className={cn(\n              'text-xs md:text-sm tracking-[0.3em] uppercase mb-8 md:mb-12',\n              isDark ? 'text-white/50' : 'text-gray-900/50'\n            )}\n          >\n            {clientName}\n          </p>\n        )}\n\n        {/* Title */}\n        <h1\n          className={cn(\n            'text-4xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6 md:mb-8',\n            isDark ? 'text-white' : 'text-gray-900'\n          )}\n        >\n          {title}\n        </h1>\n\n        {/* Subtitle */}\n        {subtitle && (\n          <h2\n            className={cn(\n              'text-xl md:text-2xl lg:text-3xl font-light',\n              isDark ? 'text-white/70' : 'text-gray-900/70'\n            )}\n          >\n            {subtitle}\n          </h2>\n        )}\n\n        {/* Decorative line */}\n        <div\n          className={cn(\n            'mt-12 md:mt-16 mx-auto w-16 h-px',\n            isDark ? 'bg-white/30' : 'bg-gray-900/30'\n          )}\n        />\n      </div>\n\n      {/* Scroll Indicator */}\n      {showScrollIndicator && (\n        <div className=\"absolute bottom-8 md:bottom-12 left-1/2 -translate-x-1/2 z-20\">\n          <div\n            className={cn(\n              'w-6 h-10 border-2 rounded-full flex justify-center pt-2',\n              isDark ? 'border-white/30' : 'border-gray-900/30'\n            )}\n          >\n            <div\n              className={cn(\n                'w-1.5 h-1.5 rounded-full animate-bounce',\n                isDark ? 'bg-white/60' : 'bg-gray-900/60'\n              )}\n            />\n          </div>\n        </div>\n      )}\n    </section>\n  )\n}\n","'use client'\n\nimport { type ReactNode } from 'react'\nimport { cn } from '../lib/cn'\n\nexport interface ContentProps {\n  /** Unique section identifier for tracking */\n  id: string\n  /** Human-readable label shown in analytics */\n  label?: string\n  /** Section headline */\n  headline: string\n  /** Optional subline above headline */\n  subline?: string\n  /** Optional description text */\n  description?: string\n  /** Theme variant */\n  theme?: 'dark' | 'light'\n  /** Additional className */\n  className?: string\n  /** Additional content (children) */\n  children?: ReactNode\n}\n\n/**\n * Content Section Component\n *\n * General-purpose content section for presentations.\n * Automatically tracked with the provided id.\n *\n * @example\n * ```tsx\n * <Content\n *   id=\"challenge\"\n *   label=\"The Challenge\"\n *   headline=\"Current Market Situation\"\n *   description=\"An overview of the challenges facing the industry...\"\n * />\n * ```\n */\nexport function Content({\n  id,\n  label,\n  headline,\n  subline,\n  description,\n  theme = 'dark',\n  className,\n  children,\n}: ContentProps) {\n  const isDark = theme === 'dark'\n\n  return (\n    <section\n      data-section-id={id}\n      data-section-label={label || headline}\n      className={cn(\n        'min-h-screen flex items-center py-24 px-8 md:px-20',\n        isDark ? 'bg-gray-900 text-white' : 'bg-white text-gray-900',\n        className\n      )}\n    >\n      <div className=\"w-full max-w-4xl mx-auto text-center\">\n        {/* Subline */}\n        {subline && (\n          <p\n            className={cn(\n              'text-xs md:text-sm tracking-[0.2em] uppercase mb-4',\n              isDark ? 'text-white/60' : 'text-gray-900/60'\n            )}\n          >\n            {subline}\n          </p>\n        )}\n\n        {/* Headline */}\n        <h2\n          className={cn(\n            'text-3xl md:text-5xl font-bold mb-6 whitespace-pre-line',\n            isDark ? 'text-white' : 'text-gray-900'\n          )}\n        >\n          {headline}\n        </h2>\n\n        {/* Description */}\n        {description && (\n          <p\n            className={cn(\n              'text-lg md:text-xl leading-relaxed max-w-3xl mx-auto',\n              isDark ? 'text-white/80' : 'text-gray-900/80'\n            )}\n          >\n            {description}\n          </p>\n        )}\n\n        {/* Children */}\n        {children && <div className=\"mt-12\">{children}</div>}\n      </div>\n    </section>\n  )\n}\n","'use client'\n\nimport { cn } from '../lib/cn'\n\nexport interface CTAProps {\n  /** Call-to-action headline */\n  headline: string\n  /** Optional subline above headline */\n  subline?: string\n  /** Button text */\n  buttonText?: string\n  /** Button link href */\n  buttonHref?: string\n  /** Button click handler */\n  onButtonClick?: () => void\n  /** Theme variant */\n  theme?: 'dark' | 'light'\n  /** Additional className */\n  className?: string\n}\n\n/**\n * CTA (Call-to-Action) Section Component\n *\n * Final call-to-action section for presentations.\n * Automatically tracked with data-section-id=\"cta\".\n *\n * @example\n * ```tsx\n * <CTA\n *   headline=\"Ready to get started?\"\n *   subline=\"Let's talk\"\n *   buttonText=\"Get in Touch\"\n *   buttonHref=\"mailto:hello@example.com\"\n * />\n * ```\n */\nexport function CTA({\n  headline,\n  subline,\n  buttonText = 'Get in Touch',\n  buttonHref,\n  onButtonClick,\n  theme = 'dark',\n  className,\n}: CTAProps) {\n  const isDark = theme === 'dark'\n\n  const buttonElement = buttonHref ? (\n    <a\n      href={buttonHref}\n      className={cn(\n        'inline-flex items-center px-8 py-4 rounded-full font-medium text-lg transition-all duration-300',\n        isDark\n          ? 'bg-white text-gray-900 hover:bg-gray-100'\n          : 'bg-gray-900 text-white hover:bg-gray-800'\n      )}\n    >\n      {buttonText}\n      <ArrowIcon />\n    </a>\n  ) : (\n    <button\n      onClick={onButtonClick}\n      className={cn(\n        'inline-flex items-center px-8 py-4 rounded-full font-medium text-lg transition-all duration-300',\n        isDark\n          ? 'bg-white text-gray-900 hover:bg-gray-100'\n          : 'bg-gray-900 text-white hover:bg-gray-800'\n      )}\n    >\n      {buttonText}\n      <ArrowIcon />\n    </button>\n  )\n\n  return (\n    <section\n      data-section-id=\"cta\"\n      data-section-label=\"Contact\"\n      className={cn(\n        'relative min-h-screen flex items-center justify-center overflow-hidden',\n        isDark ? 'bg-gray-900 text-white' : 'bg-white text-gray-900',\n        className\n      )}\n    >\n      {/* Content */}\n      <div className=\"relative z-10 text-center px-8 max-w-4xl mx-auto\">\n        {/* Subline */}\n        {subline && (\n          <p\n            className={cn(\n              'text-xs md:text-sm tracking-[0.2em] uppercase mb-6',\n              isDark ? 'text-white/60' : 'text-gray-900/60'\n            )}\n          >\n            {subline}\n          </p>\n        )}\n\n        {/* Headline */}\n        <h2\n          className={cn(\n            'text-4xl md:text-6xl lg:text-7xl font-bold mb-12',\n            isDark ? 'text-white' : 'text-gray-900'\n          )}\n        >\n          {headline}\n        </h2>\n\n        {/* CTA Button */}\n        {buttonElement}\n      </div>\n    </section>\n  )\n}\n\nfunction ArrowIcon() {\n  return (\n    <svg\n      className=\"w-5 h-5 ml-2\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      viewBox=\"0 0 24 24\"\n    >\n      <path d=\"M5 12h14M12 5l7 7-7 7\" />\n    </svg>\n  )\n}\n","import { type ReactNode } from 'react'\nimport type { SectionConfig } from '../index'\n\nexport interface PresentationWrapperProps {\n  /** Presentation title for metadata */\n  title: string\n  /** Section metadata for tracking */\n  sections?: SectionConfig[]\n  /** Presentation content */\n  children: ReactNode\n  /** Additional className for the wrapper */\n  className?: string\n}\n\n/**\n * Presentation Wrapper Component\n *\n * Provides the root structure for a presentation.\n * This is a Server Component - no client-side state or hooks.\n *\n * The wrapper adds data attributes that the tracking SDK uses\n * to identify the presentation and its sections.\n *\n * @example\n * ```tsx\n * <PresentationWrapper\n *   title=\"ACME Corp Proposal\"\n *   sections={[\n *     { id: 'hero', label: 'Introduction', order: 1, type: 'hero' },\n *     { id: 'challenge', label: 'Challenge', order: 2, type: 'content' },\n *   ]}\n * >\n *   <Hero title=\"Digital Transformation\" />\n *   <Content id=\"challenge\" headline=\"The Challenge\" />\n * </PresentationWrapper>\n * ```\n */\nexport function PresentationWrapper({\n  title,\n  sections,\n  children,\n  className,\n}: PresentationWrapperProps) {\n  return (\n    <div\n      data-presentation-title={title}\n      data-presentation-sections={sections ? JSON.stringify(sections.map(s => s.id)) : undefined}\n      className={className}\n    >\n      {children}\n    </div>\n  )\n}\n"]}