@salesmind-ai/design-system 0.3.12 → 0.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AnnouncementBar/AnnouncementBar.tsx","../src/components/StickyActionBar/StickyActionBar.tsx","../src/components/PricingToggle/PricingToggle.tsx","../src/components/BookingEmbed/BookingEmbed.tsx","../src/components/ProblemAgitation/ProblemAgitation.tsx","../src/components/ProcessTimeline/ProcessTimeline.tsx","../src/components/PricingCard/PricingCard.tsx","../src/components/PricingSection/PricingSection.tsx","../src/components/LeadCaptureForm/LeadCaptureForm.tsx","../src/components/CaseStudyCard/CaseStudyCard.tsx","../src/components/VideoEmbed/VideoEmbed.tsx","../src/components/ExitIntentOverlay/ExitIntentOverlay.tsx","../src/components/BeforeAfterBlock/BeforeAfterBlock.tsx","../src/components/CompetitorDiff/CompetitorDiff.tsx","../src/components/StakeholderTabs/StakeholderTabs.tsx","../src/components/IntegrationShowcase/IntegrationShowcase.tsx","../src/components/SecurityBlock/SecurityBlock.tsx","../src/components/CaseStudySection/CaseStudySection.tsx","../src/components/ManifestoBlock/ManifestoBlock.tsx","../src/components/ComplianceGrid/ComplianceGrid.tsx","../src/components/ArchitectureDiagram/ArchitectureDiagram.tsx","../src/components/SegmentSwitch/SegmentSwitch.tsx","../src/components/IntentCTA/IntentCTA.tsx","../src/components/EvolutionTimeline/EvolutionTimeline.tsx","../src/components/EcosystemDiagram/EcosystemDiagram.tsx","../src/components/ValueAnchor/ValueAnchor.tsx","../src/components/EnterpriseSignaling/EnterpriseSignaling.tsx","../src/components/IntelligenceBlock/IntelligenceBlock.tsx","../src/components/PartnerValueProp/PartnerValueProp.tsx","../src/components/ComparisonTable/ComparisonTable.tsx","../src/components/GuaranteeHighlight/GuaranteeHighlight.tsx","../src/components/ROICalculator/ROICalculator.tsx","../src/components/ICPFilter/ICPFilter.tsx","../src/components/ObjectionFAQ/ObjectionFAQ.tsx"],"names":["forwardRef","clsx","jsx","jsxs","useEffect","useState","React","useRef","useCallback","useMemo","STATUS_LABELS"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport { ArrowRight } from 'lucide-react';\nimport './AnnouncementBar.css';\n\nexport interface AnnouncementBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The badge text, e.g., \"New Feature\" or \"Update\" */\n badge?: React.ReactNode;\n /** The main message text */\n message: React.ReactNode;\n /** The link destination. If provided, the entire bar becomes clickable */\n href?: string;\n /** The visual variant */\n variant?: 'brand' | 'success' | 'warning' | 'info' | 'dark' | 'glass';\n /** Whether the bar can be dismissed */\n dismissible?: boolean;\n /** Callback when dismissed */\n onDismiss?: () => void;\n /** Whether to show the right arrow */\n showArrow?: boolean;\n}\n\n/**\n * Top-level announcement banner used to draw attention to new features,\n * webinars, or important updates.\n */\nexport const AnnouncementBar = forwardRef<HTMLDivElement, AnnouncementBarProps>(\n (\n {\n badge,\n message,\n href,\n variant = 'brand',\n dismissible = false,\n onDismiss,\n showArrow = true,\n className,\n ...props\n },\n ref\n ) => {\n const { track } = useAnalytics();\n\n const handleClick = () => {\n if (href) {\n track('announcement_click', { href, variant });\n }\n };\n\n const handleDismiss = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n track('announcement_dismiss', { variant });\n onDismiss?.();\n };\n\n const Component = href ? 'a' : 'div';\n const componentProps = href ? { href, onClick: handleClick } : {};\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-announcement-bar',\n `ds-announcement-bar--${variant}`,\n href && 'ds-announcement-bar--clickable',\n className\n )}\n {...props}\n >\n <Component className=\"ds-announcement-bar__inner\" {...componentProps}>\n <div className=\"ds-announcement-bar__content\">\n {badge && <span className=\"ds-announcement-bar__badge\">{badge}</span>}\n <span className=\"ds-announcement-bar__message\">{message}</span>\n </div>\n \n {href && showArrow && (\n <ArrowRight className=\"ds-announcement-bar__arrow\" size={16} />\n )}\n </Component>\n\n {dismissible && (\n <button\n type=\"button\"\n className=\"ds-announcement-bar__close\"\n onClick={handleDismiss}\n aria-label=\"Dismiss announcement\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n );\n }\n);\n\nAnnouncementBar.displayName = 'AnnouncementBar';\n","import React, { forwardRef, useState, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport './StickyActionBar.css';\n\nexport interface StickyActionBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The main message or value prop to display */\n message: React.ReactNode;\n /** Primary call to action button */\n primaryAction: React.ReactNode;\n /** Optional secondary action */\n secondaryAction?: React.ReactNode;\n /** Threshold in pixels before showing the bar (default: 300) */\n showThreshold?: number;\n /** Position variant */\n position?: 'top' | 'bottom';\n /** Visual theme */\n variant?: 'glass' | 'solid' | 'brand';\n}\n\n/**\n * A floating action bar that appears after scrolling past a threshold,\n * keeping primary CTAs accessible on long pages.\n */\nexport const StickyActionBar = forwardRef<HTMLDivElement, StickyActionBarProps>(\n (\n {\n message,\n primaryAction,\n secondaryAction,\n showThreshold = 300,\n position = 'bottom',\n variant = 'glass',\n className,\n ...props\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = useState(false);\n const { track } = useAnalytics();\n\n useEffect(() => {\n const handleScroll = () => {\n const shouldShow = window.scrollY > showThreshold;\n if (shouldShow && !isVisible) {\n setIsVisible(true);\n track('sticky_bar_show');\n } else if (!shouldShow && isVisible) {\n setIsVisible(false);\n }\n };\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n // Initial check\n handleScroll();\n\n return () => window.removeEventListener('scroll', handleScroll);\n }, [showThreshold, isVisible, track]);\n\n if (!isVisible) return null;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-sticky-action-bar',\n `ds-sticky-action-bar--${position}`,\n `ds-sticky-action-bar--${variant}`,\n className\n )}\n {...props}\n >\n <div className=\"ds-sticky-action-bar__container\">\n <div className=\"ds-sticky-action-bar__content\">\n {message}\n </div>\n <div className=\"ds-sticky-action-bar__actions\">\n {secondaryAction}\n {primaryAction}\n </div>\n </div>\n </div>\n );\n }\n);\n\nStickyActionBar.displayName = 'StickyActionBar';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { ToggleGroup, ToggleGroupItem } from '../ToggleGroup/ToggleGroup';\nimport { Badge } from '../Badge/Badge';\nimport './PricingToggle.css';\n\n/* ============================================================================\n PRICING TOGGLE\n ============================================================================\n Monthly/annual billing period toggle with savings badge. Uses ToggleGroup\n internally for accessible keyboard navigation.\n\n Strategic objective: ACV (anchors annual pricing, increases LTV)\n ============================================================================ */\n\nexport interface PricingToggleProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current billing period */\n value: 'monthly' | 'annual';\n /** Change handler */\n onChange: (period: 'monthly' | 'annual') => void;\n /** Monthly label (default: \"Monthly\") */\n monthlyLabel?: string;\n /** Annual label (default: \"Annual\") */\n annualLabel?: string;\n /** Savings badge text (e.g., \"Save 20%\") */\n savingsBadge?: string;\n}\n\n/**\n * Billing period toggle for pricing sections.\n *\n * @example\n * ```tsx\n * const [period, setPeriod] = useState<'monthly' | 'annual'>('annual');\n *\n * <PricingToggle\n * value={period}\n * onChange={setPeriod}\n * savingsBadge=\"Save 20%\"\n * />\n * ```\n */\nexport const PricingToggle = forwardRef<HTMLDivElement, PricingToggleProps>(\n (\n {\n value,\n onChange,\n monthlyLabel = 'Monthly',\n annualLabel = 'Annual',\n savingsBadge,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-pricing-toggle', className)}\n {...props}\n >\n <ToggleGroup\n type=\"single\"\n value={value}\n onValueChange={(v) => {\n if (v && typeof v === 'string') {\n onChange(v as 'monthly' | 'annual');\n }\n }}\n >\n <ToggleGroupItem value=\"monthly\">{monthlyLabel}</ToggleGroupItem>\n <ToggleGroupItem value=\"annual\">\n {annualLabel}\n </ToggleGroupItem>\n </ToggleGroup>\n\n {savingsBadge && (\n <Badge className=\"ds-pricing-toggle__badge\">{savingsBadge}</Badge>\n )}\n </div>\n );\n },\n);\n\nPricingToggle.displayName = 'PricingToggle';\n","import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport './BookingEmbed.css';\n\nexport interface BookingEmbedProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The Go High Level widget URL or other booking URL */\n url: string;\n /** Aspect ratio of the embed container (default: 16/9) */\n aspectRatio?: string;\n /** Title for the iframe accessibility */\n title?: string;\n /** Whether to lazy load the iframe */\n lazyLoad?: boolean;\n}\n\n/**\n * A responsive container for embedding booking widgets (like Go High Level or Calendly).\n * Includes loading states and analytics tracking.\n */\nexport const BookingEmbed = forwardRef<HTMLDivElement, BookingEmbedProps>(\n (\n {\n url,\n aspectRatio = '16/9',\n title = 'Book a call',\n lazyLoad = true,\n className,\n style,\n ...props\n },\n ref\n ) => {\n const [isLoaded, setIsLoaded] = useState(!lazyLoad);\n const [isIframeLoaded, setIsIframeLoaded] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const { track } = useAnalytics();\n\n // Intersection Observer for lazy loading\n useEffect(() => {\n if (!lazyLoad) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n setIsLoaded(true);\n track('booking_embed_visible', { url });\n observer.disconnect();\n }\n },\n { rootMargin: '200px' }\n );\n\n if (containerRef.current) {\n observer.observe(containerRef.current);\n }\n\n return () => observer.disconnect();\n }, [lazyLoad, url, track]);\n\n const handleIframeLoad = () => {\n setIsIframeLoaded(true);\n track('booking_embed_loaded', { url });\n };\n\n return (\n <div\n ref={(node) => {\n // Handle both refs\n (containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={clsx('ds-booking-embed', className)}\n style={{ '--embed-aspect-ratio': aspectRatio, ...style } as React.CSSProperties}\n {...props}\n >\n {!isIframeLoaded && (\n <div className=\"ds-booking-embed__skeleton\">\n <div className=\"ds-booking-embed__spinner\"></div>\n <p>Loading calendar...</p>\n </div>\n )}\n \n {isLoaded && (\n <iframe\n src={url}\n title={title}\n className={clsx('ds-booking-embed__iframe', isIframeLoaded && 'ds-booking-embed__iframe--loaded')}\n onLoad={handleIframeLoad}\n frameBorder=\"0\"\n scrolling=\"no\"\n />\n )}\n </div>\n );\n }\n);\n\nBookingEmbed.displayName = 'BookingEmbed';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Check, X } from 'lucide-react';\nimport './ProblemAgitation.css';\n\nexport interface AgitationPoint {\n /** The problem state (old way) */\n problem: React.ReactNode;\n /** The solution state (new way) */\n solution: React.ReactNode;\n}\n\nexport interface ProblemAgitationProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Section title */\n title: string;\n /** Section description */\n description?: React.ReactNode;\n /** The points to compare */\n points: AgitationPoint[];\n /** Label for the old way column */\n oldWayLabel?: string;\n /** Label for the new way column */\n newWayLabel?: string;\n}\n\n/**\n * A \"Before & After\" or \"Old Way vs New Way\" comparison block,\n * frequently used in marketing to agitate a problem before presenting\n * the product as the solution.\n */\nexport const ProblemAgitation = forwardRef<HTMLDivElement, ProblemAgitationProps>(\n (\n {\n title,\n description,\n points,\n oldWayLabel = 'The Old Way',\n newWayLabel = 'The New Way',\n className,\n ...props\n },\n ref\n ) => {\n return (\n <section\n ref={ref}\n className={clsx('ds-problem-agitation', className)}\n {...props}\n >\n <div className=\"ds-problem-agitation__header\">\n <h2 className=\"ds-problem-agitation__title\">{title}</h2>\n {description && (\n <p className=\"ds-problem-agitation__description\">{description}</p>\n )}\n </div>\n\n <div className=\"ds-problem-agitation__grid\">\n {/* Mobile Labels (Hidden on Desktop) */}\n <div className=\"ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--old\">\n {oldWayLabel}\n </div>\n <div className=\"ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--new\">\n {newWayLabel}\n </div>\n\n {/* Desktop Headers */}\n <div className=\"ds-problem-agitation__column-header ds-problem-agitation__column-header--old\">\n {oldWayLabel}\n </div>\n <div className=\"ds-problem-agitation__column-header ds-problem-agitation__column-header--new\">\n {newWayLabel}\n </div>\n\n {/* Data Rows */}\n {points.map((point, index) => (\n <React.Fragment key={index}>\n <div className=\"ds-problem-agitation__cell ds-problem-agitation__cell--old\">\n <div className=\"ds-problem-agitation__icon-wrapper ds-problem-agitation__icon-wrapper--old\">\n <X size={20} aria-hidden=\"true\" />\n </div>\n <div className=\"ds-problem-agitation__content\">{point.problem}</div>\n </div>\n <div className=\"ds-problem-agitation__cell ds-problem-agitation__cell--new\">\n <div className=\"ds-problem-agitation__icon-wrapper ds-problem-agitation__icon-wrapper--new\">\n <Check size={20} aria-hidden=\"true\" />\n </div>\n <div className=\"ds-problem-agitation__content\">{point.solution}</div>\n </div>\n </React.Fragment>\n ))}\n </div>\n </section>\n );\n }\n);\n\nProblemAgitation.displayName = 'ProblemAgitation';\n","import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport './ProcessTimeline.css';\n\nexport interface TimelineStep {\n /** The step number or icon */\n indicator: React.ReactNode;\n /** Step title */\n title: React.ReactNode;\n /** Step description */\n description: React.ReactNode;\n}\n\nexport interface ProcessTimelineProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The steps to display in the timeline */\n steps: TimelineStep[];\n /** Whether to animate the line drawing on scroll */\n animated?: boolean;\n}\n\n/**\n * A vertical timeline component used to explain \"How it works\" or\n * onboarding processes.\n */\nexport const ProcessTimeline = forwardRef<HTMLDivElement, ProcessTimelineProps>(\n (\n {\n steps,\n animated = true,\n className,\n ...props\n },\n ref\n ) => {\n const [progress, setProgress] = useState(0);\n const containerRef = useRef<HTMLDivElement>(null);\n const { track } = useAnalytics();\n const hasTrackedRef = useRef(false);\n\n useEffect(() => {\n if (!animated) return;\n\n const handleScroll = () => {\n if (!containerRef.current) return;\n \n const rect = containerRef.current.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n \n // Start drawing when top of container hits middle of screen\n const startDraw = windowHeight * 0.5;\n \n // Distance the container travels while drawing\n const travelDistance = rect.height;\n \n // Current position of the top of the container relative to start point\n const currentPos = startDraw - rect.top;\n \n if (currentPos < 0) {\n setProgress(0);\n } else if (currentPos > travelDistance) {\n setProgress(100);\n if (!hasTrackedRef.current) {\n hasTrackedRef.current = true;\n track('timeline_complete');\n }\n } else {\n setProgress((currentPos / travelDistance) * 100);\n }\n };\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n handleScroll(); // Initial check\n\n return () => window.removeEventListener('scroll', handleScroll);\n }, [animated, track]);\n\n return (\n <div\n ref={(node) => {\n // Handle both refs\n (containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={clsx(\n 'ds-process-timeline',\n animated && 'ds-process-timeline--animated',\n className\n )}\n {...props}\n >\n <div className=\"ds-process-timeline__track\">\n <div \n className=\"ds-process-timeline__progress\" \n style={{ height: animated ? `${progress}%` : '100%' }}\n />\n </div>\n \n <div className=\"ds-process-timeline__steps\">\n {steps.map((step, index) => {\n const stepProgress = (index / (steps.length - 1)) * 100;\n const isActive = !animated || progress >= stepProgress;\n \n return (\n <div \n key={index} \n className={clsx(\n 'ds-process-timeline__step',\n isActive && 'ds-process-timeline__step--active'\n )}\n >\n <div className=\"ds-process-timeline__indicator\">\n {step.indicator}\n </div>\n <div className=\"ds-process-timeline__content\">\n <h3 className=\"ds-process-timeline__title\">{step.title}</h3>\n <p className=\"ds-process-timeline__description\">{step.description}</p>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n\nProcessTimeline.displayName = 'ProcessTimeline';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './PricingCard.css';\n\n/* ============================================================================\n PRICING CARD — Advanced pricing tier card with glass treatment\n ============================================================================ */\n\nexport interface PricingFeature {\n /** Feature label text */\n text: string;\n /** Whether this feature is included in the tier */\n included?: boolean;\n /** Optional tooltip or emphasis text */\n detail?: string;\n}\n\nexport interface PricingCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Tier label (e.g. \"Operator Mode\", \"Founder Mode\") */\n tier: string;\n /** Short tagline under the tier name */\n tagline?: string;\n /** Price display string (e.g. \"$1,499\", \"$999\") */\n price: string;\n /** Price suffix (e.g. \"/month\", \"one-time\") */\n priceSuffix?: string;\n /** Previous/anchor price for strikethrough display */\n anchorPrice?: string;\n /** Badge text (e.g. \"Most Popular\", \"Best Value\") */\n badge?: string;\n /** Whether this card is visually highlighted as the recommended option */\n highlighted?: boolean;\n /** List of features included in this tier */\n features?: PricingFeature[];\n /** Primary CTA button content */\n cta?: React.ReactNode;\n /** Optional secondary action below CTA */\n secondaryCta?: React.ReactNode;\n /** Footer note text (e.g. \"3-month minimum\") */\n footerNote?: string;\n}\n\nexport const PricingCard = React.forwardRef<HTMLDivElement, PricingCardProps>(\n (\n {\n tier,\n tagline,\n price,\n priceSuffix,\n anchorPrice,\n badge,\n highlighted = false,\n features = [],\n cta,\n secondaryCta,\n footerNote,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-pricing-card',\n highlighted && 'ds-pricing-card--highlighted',\n className,\n )}\n {...props}\n >\n {/* Badge */}\n {badge && (\n <div className=\"ds-pricing-card__badge\">{badge}</div>\n )}\n\n {/* Header */}\n <div className=\"ds-pricing-card__header\">\n <h3 className=\"ds-pricing-card__tier\">{tier}</h3>\n {tagline && (\n <p className=\"ds-pricing-card__tagline\">{tagline}</p>\n )}\n </div>\n\n {/* Price block */}\n <div className=\"ds-pricing-card__price-block\">\n {anchorPrice && (\n <span className=\"ds-pricing-card__anchor-price\">{anchorPrice}</span>\n )}\n <div className=\"ds-pricing-card__price-row\">\n <span className=\"ds-pricing-card__price\">{price}</span>\n {priceSuffix && (\n <span className=\"ds-pricing-card__price-suffix\">{priceSuffix}</span>\n )}\n </div>\n </div>\n\n {/* Features */}\n {features.length > 0 && (\n <ul className=\"ds-pricing-card__features\">\n {features.map((feature, idx) => (\n <li\n key={idx}\n className={clsx(\n 'ds-pricing-card__feature',\n feature.included === false && 'ds-pricing-card__feature--excluded',\n )}\n >\n <span className=\"ds-pricing-card__feature-icon\" aria-hidden=\"true\">\n {feature.included === false ? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )}\n </span>\n <span className=\"ds-pricing-card__feature-text\">\n {feature.text}\n {feature.detail && (\n <span className=\"ds-pricing-card__feature-detail\">\n {feature.detail}\n </span>\n )}\n </span>\n </li>\n ))}\n </ul>\n )}\n\n {/* CTA area */}\n {(cta || secondaryCta) && (\n <div className=\"ds-pricing-card__cta-area\">\n {cta}\n {secondaryCta && (\n <div className=\"ds-pricing-card__secondary-cta\">{secondaryCta}</div>\n )}\n </div>\n )}\n\n {/* Footer note */}\n {footerNote && (\n <p className=\"ds-pricing-card__footer-note\">{footerNote}</p>\n )}\n\n {/* Arbitrary children */}\n {children}\n </div>\n );\n },\n);\n\nPricingCard.displayName = 'PricingCard';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { PricingCard, PricingCardProps } from '../PricingCard/PricingCard';\nimport './PricingSection.css';\n\nexport interface PricingSectionProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The headline/title of the pricing section */\n title: string;\n /** Optional subtitle or description */\n description?: React.ReactNode;\n /** Pricing plans to display */\n plans: PricingCardProps[];\n /** Optional toggle control for billing periods (e.g. Monthly/Yearly) */\n toggle?: React.ReactNode;\n}\n\n/**\n * Standardized pricing section layout that renders a grid of PricingCards.\n * Handles responsive wrapping and visual hierarchy automatically.\n */\nexport const PricingSection = forwardRef<HTMLDivElement, PricingSectionProps>(\n (\n {\n title,\n description,\n plans,\n toggle,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <section\n ref={ref}\n className={clsx('ds-pricing-section', className)}\n {...props}\n >\n <div className=\"ds-pricing-section__header\">\n <h2 className=\"ds-pricing-section__title\">{title}</h2>\n {description && (\n <p className=\"ds-pricing-section__description\">{description}</p>\n )}\n {toggle && (\n <div className=\"ds-pricing-section__toggle\">\n {toggle}\n </div>\n )}\n </div>\n \n <div className=\"ds-pricing-section__grid\">\n {plans.map((plan, index) => (\n <PricingCard \n key={index}\n {...plan}\n className={clsx(\n 'ds-pricing-section__card',\n plan.highlighted && 'ds-pricing-section__card--popular'\n )}\n />\n ))}\n </div>\n </section>\n );\n }\n);\n\nPricingSection.displayName = 'PricingSection';\n","import React, { forwardRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport { TextField } from '../TextField/TextField';\nimport { Button } from '../Button/Button';\nimport './LeadCaptureForm.css';\n\nexport interface LeadCaptureFormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /** Text on the submit button */\n buttonText?: string;\n /** Label for the email input */\n emailLabel?: string;\n /** Placeholder for the email input */\n emailPlaceholder?: string;\n /** Optional subtext below the form (e.g. \"We respect your privacy\") */\n disclaimer?: React.ReactNode;\n /** Function called when form is successfully submitted */\n onSubmitSuccess?: (email: string) => void | Promise<void>;\n /** Direction variant */\n layout?: 'horizontal' | 'vertical';\n /** Current loading state */\n isLoading?: boolean;\n}\n\n/**\n * A highly optimized email capture form for newsletters, waitlists,\n * and lead magnets.\n */\nexport const LeadCaptureForm = forwardRef<HTMLFormElement, LeadCaptureFormProps>(\n (\n {\n buttonText = 'Subscribe',\n emailLabel = 'Work Email',\n emailPlaceholder = 'you@company.com',\n disclaimer,\n onSubmitSuccess,\n layout = 'horizontal',\n isLoading = false,\n className,\n onSubmit,\n ...props\n },\n ref\n ) => {\n const [email, setEmail] = useState('');\n const [error, setError] = useState<string | undefined>();\n const [internalLoading, setInternalLoading] = useState(false);\n const { track } = useAnalytics();\n\n const isCurrentlyLoading = isLoading || internalLoading;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n \n if (!email) {\n setError('Email is required');\n return;\n }\n \n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n setError('Please enter a valid email address');\n return;\n }\n \n setError(undefined);\n setInternalLoading(true);\n \n track('lead_capture_submit', { email_domain: email.split('@')[1] });\n \n try {\n if (onSubmitSuccess) {\n await onSubmitSuccess(email);\n }\n track('lead_capture_success');\n } catch (err) {\n setError('Something went wrong. Please try again.');\n track('lead_capture_error', { error: String(err) });\n } finally {\n setInternalLoading(false);\n }\n \n if (onSubmit) {\n onSubmit(e);\n }\n };\n\n return (\n <form\n ref={ref}\n className={clsx(\n 'ds-lead-capture',\n `ds-lead-capture--${layout}`,\n className\n )}\n onSubmit={handleSubmit}\n noValidate\n {...props}\n >\n <div className=\"ds-lead-capture__inputs\">\n <div className=\"ds-lead-capture__input-wrapper\">\n {layout === 'vertical' && (\n <label htmlFor=\"lead-email\" className=\"ds-lead-capture__label\">\n {emailLabel}\n </label>\n )}\n <TextField\n id=\"lead-email\"\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n placeholder={emailPlaceholder}\n disabled={isCurrentlyLoading}\n aria-label={layout === 'horizontal' ? emailLabel : undefined}\n className={clsx('ds-lead-capture__input', error && 'ds-lead-capture__input--error')}\n />\n {error && <div className=\"ds-lead-capture__error\">{error}</div>}\n </div>\n <Button \n type=\"submit\" \n isLoading={isCurrentlyLoading}\n className=\"ds-lead-capture__submit\"\n >\n {buttonText}\n </Button>\n </div>\n \n {disclaimer && (\n <div className=\"ds-lead-capture__disclaimer\">\n {disclaimer}\n </div>\n )}\n </form>\n );\n }\n);\n\nLeadCaptureForm.displayName = 'LeadCaptureForm';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Badge } from '../Badge/Badge';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './CaseStudyCard.css';\n\n/* ============================================================================\n CASE STUDY CARD\n ============================================================================\n Case study preview card with company info, key metrics, and outcome summary.\n\n Strategic objective: Trust + Authority (social proof artifact)\n ============================================================================ */\n\n/** A single metric shown on the card */\nexport interface CaseStudyMetric {\n /** Metric value (e.g., \"312%\") */\n value: string;\n /** Metric label (e.g., \"increase in meetings\") */\n label: string;\n /** Value prefix (e.g., \"+\") */\n prefix?: string;\n /** Value suffix (e.g., \"%\") */\n suffix?: string;\n}\n\nexport interface CaseStudyCardProps extends React.HTMLAttributes<HTMLElement> {\n /** Company name */\n company: string;\n /** Company logo */\n logo?: React.ReactNode;\n /** Industry tag */\n industry?: string;\n /** One-line outcome summary */\n headline: string;\n /** Key metrics achieved */\n metrics?: CaseStudyMetric[];\n /** Link to full case study */\n href: string;\n /** Optional cover image */\n coverImage?: string;\n /** Optional quote excerpt */\n quote?: string;\n}\n\n/**\n * Case study preview card with company info and key metrics.\n *\n * @example\n * ```tsx\n * <CaseStudyCard\n * company=\"Acme Corp\"\n * industry=\"SaaS\"\n * headline=\"312% increase in qualified meetings in 90 days\"\n * metrics={[\n * { value: '312', suffix: '%', label: 'More meetings' },\n * { value: '45', suffix: '%', label: 'Lower cost per lead' },\n * ]}\n * href=\"/case-studies/acme-corp\"\n * />\n * ```\n */\nexport const CaseStudyCard = forwardRef<HTMLElement, CaseStudyCardProps>(\n (\n {\n company,\n logo,\n industry,\n headline,\n metrics,\n href,\n coverImage,\n quote,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <article\n ref={ref}\n className={clsx('ds-case-study-card', className)}\n {...props}\n >\n <OutboundLink href={href} context=\"case-study-card\" className=\"ds-case-study-card__link\" openInNewTab={false}>\n {coverImage && (\n <div className=\"ds-case-study-card__image-wrap\">\n <img\n src={coverImage}\n alt=\"\"\n className=\"ds-case-study-card__image\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n </div>\n )}\n\n <div className=\"ds-case-study-card__body\">\n <div className=\"ds-case-study-card__header\">\n {logo && <div className=\"ds-case-study-card__logo\">{logo}</div>}\n <div className=\"ds-case-study-card__company-info\">\n <span className=\"ds-case-study-card__company\">{company}</span>\n {industry && (\n <Badge variant=\"secondary\" className=\"ds-case-study-card__industry\">\n {industry}\n </Badge>\n )}\n </div>\n </div>\n\n <h3 className=\"ds-case-study-card__headline\">{headline}</h3>\n\n {metrics && metrics.length > 0 && (\n <div className=\"ds-case-study-card__metrics\">\n {metrics.map((metric, i) => (\n <div key={i} className=\"ds-case-study-card__metric\">\n <span className=\"ds-case-study-card__metric-value\">\n {metric.prefix}{metric.value}{metric.suffix}\n </span>\n <span className=\"ds-case-study-card__metric-label\">{metric.label}</span>\n </div>\n ))}\n </div>\n )}\n\n {quote && (\n <blockquote className=\"ds-case-study-card__quote\">\n <p>&ldquo;{quote}&rdquo;</p>\n </blockquote>\n )}\n </div>\n </OutboundLink>\n </article>\n );\n },\n);\n\nCaseStudyCard.displayName = 'CaseStudyCard';\n","import React, { forwardRef, useState, useCallback, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport { BrowserFrame } from '../BrowserFrame/BrowserFrame';\nimport './VideoEmbed.css';\n\n/* ============================================================================\n VIDEO EMBED\n ============================================================================\n Responsive video embed with poster image, play button overlay, and lazy\n iframe injection on play. Supports YouTube, Vimeo, Loom, and direct URLs.\n\n Strategic objective: Trust (video converts 80% better than text-only)\n ============================================================================ */\n\nexport interface VideoEmbedProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Video source URL (YouTube, Vimeo, Loom, or direct) */\n src: string;\n /** Poster image shown before play */\n poster?: string;\n /** Video title for accessibility */\n title: string;\n /** Aspect ratio */\n aspectRatio?: '16/9' | '4/3' | '1/1';\n /** Auto-play when visible (muted, respects prefers-reduced-motion) */\n autoPlay?: boolean;\n /** Wrap embed inside a BrowserFrame */\n withFrame?: boolean;\n /** Analytics event on play */\n onPlay?: () => void;\n}\n\nfunction getEmbedUrl(src: string, muted = false): string {\n // YouTube\n const ytMatch = src.match(/(?:youtube\\.com\\/watch\\?v=|youtu\\.be\\/|youtube\\.com\\/embed\\/)([a-zA-Z0-9_-]+)/);\n if (ytMatch) {\n const params = muted ? 'autoplay=1&mute=1&rel=0' : 'autoplay=1&rel=0';\n return `https://www.youtube.com/embed/${ytMatch[1]}?${params}`;\n }\n\n // Vimeo\n const vimeoMatch = src.match(/(?:vimeo\\.com\\/)(\\d+)/);\n if (vimeoMatch) {\n const params = muted ? 'autoplay=1&muted=1' : 'autoplay=1';\n return `https://player.vimeo.com/video/${vimeoMatch[1]}?${params}`;\n }\n\n // Loom\n const loomMatch = src.match(/(?:loom\\.com\\/share\\/)([a-zA-Z0-9]+)/);\n if (loomMatch) return `https://www.loom.com/embed/${loomMatch[1]}?autoplay=1`;\n\n return src;\n}\n\n/**\n * Responsive video embed with poster + play button overlay.\n * Supports autoPlay via IntersectionObserver (muted, reduced-motion aware)\n * and optional BrowserFrame wrapping for product screenshots.\n *\n * @example\n * ```tsx\n * <VideoEmbed\n * src=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n * poster=\"/thumbnails/demo.jpg\"\n * title=\"Product demo video\"\n * />\n *\n * <VideoEmbed\n * src=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n * title=\"Product demo\"\n * autoPlay\n * withFrame\n * />\n * ```\n */\nexport const VideoEmbed = forwardRef<HTMLDivElement, VideoEmbedProps>(\n (\n {\n src,\n poster,\n title,\n aspectRatio = '16/9',\n autoPlay = false,\n withFrame = false,\n onPlay,\n className,\n ...props\n },\n ref,\n ) => {\n const [playing, setPlaying] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const handlePlay = useCallback(() => {\n setPlaying(true);\n onPlay?.();\n }, [onPlay]);\n\n // autoPlay via IntersectionObserver — respects prefers-reduced-motion\n useEffect(() => {\n if (!autoPlay || playing) return;\n if (typeof window === 'undefined') return;\n\n // Respect reduced-motion preference\n const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n if (motionQuery.matches) return;\n\n const target = containerRef.current;\n if (!target) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n handlePlay();\n observer.disconnect();\n }\n },\n { threshold: 0.5 },\n );\n\n observer.observe(target);\n return () => observer.disconnect();\n }, [autoPlay, playing, handlePlay]);\n\n const embedContent = (\n <div\n ref={containerRef}\n className={clsx('ds-video-embed', withFrame && 'ds-video-embed--framed', className)}\n style={{ aspectRatio }}\n >\n {!playing ? (\n <button\n type=\"button\"\n className=\"ds-video-embed__poster-btn\"\n onClick={handlePlay}\n aria-label={`Play video: ${title}`}\n >\n {poster && (\n <img\n src={poster}\n alt=\"\"\n className=\"ds-video-embed__poster\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n )}\n <div className=\"ds-video-embed__overlay\" />\n <div className=\"ds-video-embed__play\" aria-hidden=\"true\">\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\">\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"rgba(0,0,0,0.5)\" />\n <path d=\"M19 15l14 9-14 9V15z\" fill=\"white\" />\n </svg>\n </div>\n </button>\n ) : (\n <iframe\n src={getEmbedUrl(src, autoPlay)}\n title={title}\n className=\"ds-video-embed__iframe\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n </div>\n );\n\n if (withFrame) {\n return (\n <BrowserFrame ref={ref} variant=\"browser\" url={src} {...props}>\n {embedContent}\n </BrowserFrame>\n );\n }\n\n return React.cloneElement(embedContent, { ref, ...props });\n },\n);\n\nVideoEmbed.displayName = 'VideoEmbed';\n","import React, { forwardRef, useState, useEffect, useCallback, useRef } from 'react';\nimport clsx from 'clsx';\nimport { Dialog, DialogContent } from '../Dialog/Dialog';\nimport './ExitIntentOverlay.css';\n\n/* ============================================================================\n EXIT INTENT OVERLAY\n ============================================================================\n Overlay triggered when cursor moves toward browser close/back button\n (desktop) or after inactivity timeout (mobile). Last chance to capture\n abandoning visitors.\n\n Strategic objective: Distribution (recovers 5-15% of abandoning visitors)\n ============================================================================ */\n\n/** Default suppression: 7 days */\nconst DEFAULT_SUPPRESSION = 7 * 24 * 60 * 60 * 1000;\n/** Default activation delay: 5 seconds */\nconst DEFAULT_ACTIVATION_DELAY = 5000;\n/** Default mobile inactivity timeout: 45 seconds */\nconst MOBILE_INACTIVITY_TIMEOUT = 45_000;\n\nexport interface ExitIntentOverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Content to display in overlay */\n children: React.ReactNode;\n /** Whether exit intent detection is active (default: true) */\n enabled?: boolean;\n /** Delay before activation in ms (prevents trigger on initial load) */\n activationDelay?: number;\n /** Pages where overlay should NOT show */\n excludePaths?: string[];\n /** Storage key for suppression after dismiss/convert */\n storageKey?: string;\n /** Suppression duration after dismiss in ms (default: 7 days) */\n suppressionDuration?: number;\n /** Callback on show */\n onShow?: () => void;\n /** Callback on dismiss */\n onDismiss?: () => void;\n}\n\nfunction isSuppressed(key: string, duration: number): boolean {\n if (typeof window === 'undefined') return true;\n try {\n const ts = localStorage.getItem(key);\n if (!ts) return false;\n return Date.now() - Number(ts) < duration;\n } catch {\n return false;\n }\n}\n\nfunction suppress(key: string): void {\n try {\n localStorage.setItem(key, String(Date.now()));\n } catch {\n // Storage unavailable\n }\n}\n\nfunction isMobile(): boolean {\n if (typeof window === 'undefined') return false;\n return window.matchMedia('(max-width: 768px)').matches || 'ontouchstart' in window;\n}\n\n/**\n * Exit-intent triggered overlay.\n *\n * @example\n * ```tsx\n * <ExitIntentOverlay storageKey=\"exit-homepage\">\n * <LeadCaptureForm\n * variant=\"card\"\n * title=\"Before you go...\"\n * description=\"Get our AI prospecting playbook — free.\"\n * submitLabel=\"Send Me the Playbook\"\n * onSubmit={handleSubmit}\n * />\n * </ExitIntentOverlay>\n * ```\n */\nexport const ExitIntentOverlay = forwardRef<HTMLDivElement, ExitIntentOverlayProps>(\n (\n {\n children,\n enabled = true,\n activationDelay = DEFAULT_ACTIVATION_DELAY,\n excludePaths,\n storageKey = 'ds-exit-intent',\n suppressionDuration = DEFAULT_SUPPRESSION,\n onShow,\n onDismiss,\n className,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const activatedRef = useRef(false);\n const shownRef = useRef(false);\n\n const show = useCallback(() => {\n if (shownRef.current) return;\n shownRef.current = true;\n setOpen(true);\n onShow?.();\n }, [onShow]);\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n suppress(storageKey);\n onDismiss?.();\n }, [storageKey, onDismiss]);\n\n useEffect(() => {\n if (!enabled) return;\n if (typeof window === 'undefined') return;\n\n // Check path exclusions\n if (excludePaths?.some((p) => window.location.pathname.startsWith(p))) return;\n\n // Check suppression\n if (isSuppressed(storageKey, suppressionDuration)) return;\n\n // Activation delay\n const activationTimer = setTimeout(() => {\n activatedRef.current = true;\n }, activationDelay);\n\n // Desktop: mouseout near top of viewport\n const handleMouseOut = (e: MouseEvent) => {\n if (!activatedRef.current) return;\n if (e.clientY < 10 && e.relatedTarget === null) {\n show();\n }\n };\n\n // Mobile: inactivity timeout\n let mobileTimer: ReturnType<typeof setTimeout> | null = null;\n const resetMobileTimer = () => {\n if (mobileTimer) clearTimeout(mobileTimer);\n if (!activatedRef.current) return;\n mobileTimer = setTimeout(show, MOBILE_INACTIVITY_TIMEOUT);\n };\n\n if (isMobile()) {\n // Start inactivity detection after activation delay\n const mobileStart = setTimeout(() => {\n resetMobileTimer();\n document.addEventListener('touchstart', resetMobileTimer, { passive: true });\n document.addEventListener('scroll', resetMobileTimer, { passive: true });\n }, activationDelay);\n\n return () => {\n clearTimeout(activationTimer);\n clearTimeout(mobileStart);\n if (mobileTimer) clearTimeout(mobileTimer);\n document.removeEventListener('touchstart', resetMobileTimer);\n document.removeEventListener('scroll', resetMobileTimer);\n };\n }\n\n document.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n clearTimeout(activationTimer);\n document.removeEventListener('mouseout', handleMouseOut);\n };\n }, [enabled, activationDelay, excludePaths, storageKey, suppressionDuration, show]);\n\n return (\n <div ref={ref} className={clsx('ds-exit-intent-overlay', className)} {...props}>\n <Dialog open={open} onOpenChange={(isOpen) => { if (!isOpen) handleDismiss(); }}>\n <DialogContent className=\"ds-exit-intent-overlay__dialog\">\n {children}\n </DialogContent>\n </Dialog>\n </div>\n );\n },\n);\n\nExitIntentOverlay.displayName = 'ExitIntentOverlay';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport './BeforeAfterBlock.css';\n\n/* ============================================================================\n BEFORE/AFTER BLOCK\n ============================================================================\n Side-by-side or sequential comparison showing the transformation from\n current state to desired state.\n\n Strategic objective: Differentiation (transformation visualization)\n ============================================================================ */\n\n/** Item in the before or after column */\nexport interface BeforeAfterItem {\n /** Item text */\n text: string;\n /** Sentiment affects visual treatment */\n sentiment?: 'negative' | 'positive' | 'neutral';\n}\n\n/** One side of the comparison */\nexport interface BeforeAfterSide {\n /** Column label (e.g., \"Before SalesMind\", \"After SalesMind\") */\n label: string;\n /** List of items */\n items: BeforeAfterItem[];\n /** Optional media */\n media?: React.ReactNode;\n}\n\nexport interface BeforeAfterBlockProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title?: React.ReactNode;\n /** Before state */\n before: BeforeAfterSide;\n /** After state */\n after: BeforeAfterSide;\n /** Layout variant */\n variant?: 'split' | 'slider' | 'stacked';\n}\n\n/**\n * Transformation visualization: before vs. after comparison.\n *\n * @example\n * ```tsx\n * <BeforeAfterBlock\n * title=\"The SalesMind Transformation\"\n * before={{\n * label: 'Without SalesMind',\n * items: [\n * { text: 'Manual prospecting 40hrs/week', sentiment: 'negative' },\n * { text: 'Unpredictable pipeline', sentiment: 'negative' },\n * ],\n * }}\n * after={{\n * label: 'With SalesMind',\n * items: [\n * { text: 'AI handles outreach 24/7', sentiment: 'positive' },\n * { text: 'Predictable qualified meetings', sentiment: 'positive' },\n * ],\n * }}\n * variant=\"split\"\n * />\n * ```\n */\nexport const BeforeAfterBlock = forwardRef<HTMLDivElement, BeforeAfterBlockProps>(\n (\n {\n eyebrow,\n title,\n before,\n after,\n variant = 'split',\n className,\n ...props\n },\n ref,\n ) => {\n const renderItems = (items: BeforeAfterItem[], side: 'before' | 'after') =>\n items.map((item, i) => (\n <li\n key={i}\n className={clsx(\n 'ds-before-after__item',\n item.sentiment && `ds-before-after__item--${item.sentiment}`,\n )}\n >\n <span className=\"ds-before-after__item-icon\" aria-hidden=\"true\">\n {side === 'before' ? '\\u2717' : '\\u2713'}\n </span>\n <span>{item.text}</span>\n </li>\n ));\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-before-after', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} />\n\n <div className={clsx('ds-before-after__layout', `ds-before-after__layout--${variant}`)}>\n {/* Before column */}\n <div className=\"ds-before-after__column ds-before-after__column--before\">\n <h3 className=\"ds-before-after__label\">{before.label}</h3>\n <ul className=\"ds-before-after__list\">\n {renderItems(before.items, 'before')}\n </ul>\n {before.media && (\n <div className=\"ds-before-after__media\">{before.media}</div>\n )}\n </div>\n\n {/* Divider */}\n {variant === 'split' && (\n <div className=\"ds-before-after__divider\" aria-hidden=\"true\">\n <span className=\"ds-before-after__arrow\">&rarr;</span>\n </div>\n )}\n\n {/* After column */}\n <div className=\"ds-before-after__column ds-before-after__column--after\">\n <h3 className=\"ds-before-after__label\">{after.label}</h3>\n <ul className=\"ds-before-after__list\">\n {renderItems(after.items, 'after')}\n </ul>\n {after.media && (\n <div className=\"ds-before-after__media\">{after.media}</div>\n )}\n </div>\n </div>\n </SectionShell>\n );\n },\n);\n\nBeforeAfterBlock.displayName = 'BeforeAfterBlock';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './CompetitorDiff.css';\n\n/* ============================================================================\n COMPETITOR DIFF\n ============================================================================\n \"Us vs. Them\" competitive differentiation block. Narrative comparison,\n not a feature table (that's ComparisonTable).\n\n Strategic objective: Differentiation + Narrative Control\n ============================================================================ */\n\n/** A single comparison dimension */\nexport interface CompetitorDiffItem {\n /** The dimension being compared (e.g., \"Approach\") */\n dimension: string;\n /** How the competitor/category handles it */\n them: string;\n /** How we handle it */\n us: string;\n}\n\nexport interface CompetitorDiffProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Comparison items */\n items: CompetitorDiffItem[];\n /** Competitor/category label (e.g., \"Traditional SDR tools\") */\n competitorLabel?: string;\n /** Our label (e.g., \"SalesMind AI\") */\n ourLabel?: string;\n /** Layout variant */\n variant?: 'table' | 'cards' | 'narrative';\n /** Optional CTA */\n cta?: { label: string; href: string };\n}\n\n/**\n * Competitive differentiation block.\n *\n * @example\n * ```tsx\n * <CompetitorDiff\n * eyebrow=\"Why SalesMind\"\n * title=\"Not Another LinkedIn Tool\"\n * items={[\n * { dimension: 'Approach', them: 'Spray-and-pray sequences', us: 'AI-personalized at scale' },\n * { dimension: 'Setup', them: 'Weeks of configuration', us: 'Live in 48 hours' },\n * ]}\n * variant=\"table\"\n * />\n * ```\n */\nexport const CompetitorDiff = forwardRef<HTMLDivElement, CompetitorDiffProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n items,\n competitorLabel = 'Others',\n ourLabel = 'SalesMind AI',\n variant = 'table',\n cta,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-competitor-diff', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {variant === 'table' && (\n <div className=\"ds-competitor-diff__table\" role=\"table\" aria-label=\"Feature comparison\">\n <div className=\"ds-competitor-diff__thead\" role=\"row\">\n <div className=\"ds-competitor-diff__th\" role=\"columnheader\" />\n <div className=\"ds-competitor-diff__th ds-competitor-diff__th--them\" role=\"columnheader\">\n {competitorLabel}\n </div>\n <div className=\"ds-competitor-diff__th ds-competitor-diff__th--us\" role=\"columnheader\">\n {ourLabel}\n </div>\n </div>\n {items.map((item, i) => (\n <div key={i} className=\"ds-competitor-diff__row\" role=\"row\">\n <div className=\"ds-competitor-diff__dimension\" role=\"rowheader\">{item.dimension}</div>\n <div className=\"ds-competitor-diff__cell ds-competitor-diff__cell--them\" role=\"cell\">\n <span className=\"ds-competitor-diff__icon\" aria-hidden=\"true\">&#x2717;</span>\n {item.them}\n </div>\n <div className=\"ds-competitor-diff__cell ds-competitor-diff__cell--us\" role=\"cell\">\n <span className=\"ds-competitor-diff__icon\" aria-hidden=\"true\">&#x2713;</span>\n {item.us}\n </div>\n </div>\n ))}\n </div>\n )}\n\n {variant === 'cards' && (\n <div className=\"ds-competitor-diff__cards\">\n <div className=\"ds-competitor-diff__card ds-competitor-diff__card--them\">\n <h3 className=\"ds-competitor-diff__card-label\">{competitorLabel}</h3>\n <ul className=\"ds-competitor-diff__card-list\">\n {items.map((item, i) => (\n <li key={i}>\n <strong>{item.dimension}:</strong> {item.them}\n </li>\n ))}\n </ul>\n </div>\n <div className=\"ds-competitor-diff__card ds-competitor-diff__card--us\">\n <h3 className=\"ds-competitor-diff__card-label\">{ourLabel}</h3>\n <ul className=\"ds-competitor-diff__card-list\">\n {items.map((item, i) => (\n <li key={i}>\n <strong>{item.dimension}:</strong> {item.us}\n </li>\n ))}\n </ul>\n </div>\n </div>\n )}\n\n {variant === 'narrative' && (\n <div className=\"ds-competitor-diff__narrative\">\n {items.map((item, i) => (\n <div key={i} className=\"ds-competitor-diff__narrative-item\">\n <p className=\"ds-competitor-diff__narrative-them\">\n <span className=\"ds-competitor-diff__narrative-label\">Instead of</span> {item.them}\n </p>\n <p className=\"ds-competitor-diff__narrative-us\">\n <span className=\"ds-competitor-diff__narrative-label\">{ourLabel}</span> {item.us}\n </p>\n </div>\n ))}\n </div>\n )}\n\n {cta && (\n <div className=\"ds-competitor-diff__cta\">\n <Button variant=\"primary\" asChild>\n <OutboundLink href={cta.href} context=\"competitor-diff-cta\" openInNewTab={false}>{cta.label}</OutboundLink>\n </Button>\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nCompetitorDiff.displayName = 'CompetitorDiff';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './StakeholderTabs.css';\n\n/* ============================================================================\n STAKEHOLDER TABS\n ============================================================================\n Persona-specific content switcher. Shows different messaging, features,\n and CTAs to different stakeholders.\n\n Strategic objective: Pipeline Quality (message-market fit per persona)\n ============================================================================ */\n\n/** Content for a single stakeholder tab */\nexport interface StakeholderContent {\n /** Tab headline */\n headline: string;\n /** Tab description */\n description: string;\n /** Feature list */\n features?: Array<{ title: string; description: string; icon?: React.ReactNode }>;\n /** Testimonial (render as ReactNode for flexibility) */\n testimonial?: React.ReactNode;\n /** CTA */\n cta: { label: string; href: string };\n}\n\n/** A single stakeholder definition */\nexport interface StakeholderDefinition {\n /** Tab label */\n label: string;\n /** Tab icon */\n icon?: React.ReactNode;\n /** Content for this stakeholder */\n content: StakeholderContent;\n}\n\nexport interface StakeholderTabsProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title?: React.ReactNode;\n /** Stakeholder definitions */\n stakeholders: StakeholderDefinition[];\n /** Default active tab index */\n defaultIndex?: number;\n}\n\n/**\n * Persona-specific content switcher using DS Tabs.\n *\n * @example\n * ```tsx\n * <StakeholderTabs\n * eyebrow=\"Built For You\"\n * title=\"Whether You Run Outreach or We Do\"\n * stakeholders={[\n * {\n * label: 'Founders',\n * content: { headline: '...', description: '...', cta: { label: 'Book Strategy Call', href: '/demo' } },\n * },\n * {\n * label: 'Sales Leaders',\n * content: { headline: '...', description: '...', cta: { label: 'Book Demo', href: '/demo' } },\n * },\n * ]}\n * />\n * ```\n */\nexport const StakeholderTabs = forwardRef<HTMLDivElement, StakeholderTabsProps>(\n (\n {\n eyebrow,\n title,\n stakeholders,\n defaultIndex = 0,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-stakeholder-tabs', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} />\n\n <Tabs defaultValue={defaultIndex}>\n <TabsList className=\"ds-stakeholder-tabs__list\">\n {stakeholders.map((s, i) => (\n <TabsTrigger key={i} value={i} className=\"ds-stakeholder-tabs__trigger\">\n {s.icon && <span className=\"ds-stakeholder-tabs__icon\" aria-hidden=\"true\">{s.icon}</span>}\n {s.label}\n </TabsTrigger>\n ))}\n </TabsList>\n\n {stakeholders.map((s, i) => (\n <TabsContent key={i} value={i} className=\"ds-stakeholder-tabs__content\">\n <div className=\"ds-stakeholder-tabs__panel\">\n <div className=\"ds-stakeholder-tabs__text\">\n <h3 className=\"ds-stakeholder-tabs__headline\">{s.content.headline}</h3>\n <p className=\"ds-stakeholder-tabs__desc\">{s.content.description}</p>\n\n {s.content.features && s.content.features.length > 0 && (\n <ul className=\"ds-stakeholder-tabs__features\">\n {s.content.features.map((f, j) => (\n <li key={j} className=\"ds-stakeholder-tabs__feature\">\n {f.icon && <span className=\"ds-stakeholder-tabs__feature-icon\" aria-hidden=\"true\">{f.icon}</span>}\n <div>\n <strong>{f.title}</strong>\n <span>{f.description}</span>\n </div>\n </li>\n ))}\n </ul>\n )}\n\n <div className=\"ds-stakeholder-tabs__cta-wrap\">\n <Button variant=\"primary\" asChild>\n <OutboundLink href={s.content.cta.href} context=\"stakeholder-tabs-cta\" openInNewTab={false}>{s.content.cta.label}</OutboundLink>\n </Button>\n </div>\n </div>\n\n {s.content.testimonial && (\n <div className=\"ds-stakeholder-tabs__testimonial\">\n {s.content.testimonial}\n </div>\n )}\n </div>\n </TabsContent>\n ))}\n </Tabs>\n </SectionShell>\n );\n },\n);\n\nStakeholderTabs.displayName = 'StakeholderTabs';\n","import React, { forwardRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\nimport { Badge } from '../Badge/Badge';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './IntegrationShowcase.css';\n\n/* ============================================================================\n INTEGRATION SHOWCASE\n ============================================================================\n Integration grid with category filtering. Shows available integrations\n to reduce \"will it work with my stack\" objection.\n\n Strategic objective: Trust + Moat (ecosystem stickiness)\n ============================================================================ */\n\n/** A single integration entry */\nexport interface IntegrationEntry {\n /** Integration name */\n name: string;\n /** Logo (React element or img) */\n logo: React.ReactNode;\n /** Short description */\n description?: string;\n /** Category for filtering */\n category: string;\n /** Link to docs/details */\n href?: string;\n /** Optional badge (e.g., \"New\", \"Popular\") */\n badge?: string;\n}\n\nexport interface IntegrationShowcaseProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Integration entries */\n integrations: IntegrationEntry[];\n /** Category labels for filtering */\n categories?: string[];\n /** Layout variant */\n variant?: 'grid' | 'list' | 'compact';\n /** Enable category filtering (default: true if categories provided) */\n filterable?: boolean;\n}\n\n/**\n * Integration grid with category filtering.\n *\n * @example\n * ```tsx\n * <IntegrationShowcase\n * eyebrow=\"Integrations\"\n * title=\"Works With Your Stack\"\n * integrations={[\n * { name: 'Salesforce', logo: <SalesforceLogo />, category: 'CRM' },\n * { name: 'HubSpot', logo: <HubSpotLogo />, category: 'CRM' },\n * { name: 'Slack', logo: <SlackLogo />, category: 'Communication' },\n * ]}\n * categories={['All', 'CRM', 'Communication']}\n * filterable\n * />\n * ```\n */\nexport const IntegrationShowcase = forwardRef<HTMLDivElement, IntegrationShowcaseProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n integrations,\n categories,\n variant = 'grid',\n filterable = !!categories,\n className,\n ...props\n },\n ref,\n ) => {\n const [activeCategory, setActiveCategory] = useState<string>('All');\n\n const allCategories = categories ?? ['All', ...new Set(integrations.map((i) => i.category))];\n const filtered =\n activeCategory === 'All'\n ? integrations\n : integrations.filter((i) => i.category === activeCategory);\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-integration-showcase', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {filterable && allCategories.length > 1 && (\n <Tabs\n value={allCategories.indexOf(activeCategory)}\n onValueChange={(v) => setActiveCategory(allCategories[v as number] ?? 'All')}\n >\n <TabsList className=\"ds-integration-showcase__filters\">\n {allCategories.map((cat, i) => (\n <TabsTrigger key={cat} value={i} className=\"ds-integration-showcase__filter\">\n {cat}\n </TabsTrigger>\n ))}\n </TabsList>\n {/* TabsContent not needed — we filter inline */}\n {allCategories.map((_, i) => (\n <TabsContent key={i} value={i} className=\"ds-integration-showcase__tab-content\" />\n ))}\n </Tabs>\n )}\n\n <div className={clsx('ds-integration-showcase__grid', `ds-integration-showcase__grid--${variant}`)}>\n {filtered.map((integration, i) => {\n const Card = (\n <div key={i} className=\"ds-integration-showcase__card\">\n <div className=\"ds-integration-showcase__logo\">{integration.logo}</div>\n <div className=\"ds-integration-showcase__info\">\n <span className=\"ds-integration-showcase__name\">\n {integration.name}\n {integration.badge && (\n <Badge variant=\"secondary\" className=\"ds-integration-showcase__badge\">\n {integration.badge}\n </Badge>\n )}\n </span>\n {integration.description && variant !== 'compact' && (\n <span className=\"ds-integration-showcase__desc\">{integration.description}</span>\n )}\n </div>\n </div>\n );\n\n return integration.href ? (\n <OutboundLink key={i} href={integration.href} context=\"integration-showcase-card\" className=\"ds-integration-showcase__card-link\">\n {Card}\n </OutboundLink>\n ) : (\n Card\n );\n })}\n </div>\n </SectionShell>\n );\n },\n);\n\nIntegrationShowcase.displayName = 'IntegrationShowcase';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './SecurityBlock.css';\n\n/* ============================================================================\n SECURITY BLOCK\n ============================================================================\n Security/compliance trust display. Shows certifications, security features,\n and compliance badges to reduce enterprise procurement friction.\n\n Strategic objective: Trust + Authority (enterprise readiness signal)\n ============================================================================ */\n\n/** A certification or compliance badge */\nexport interface SecurityCertification {\n /** Certification name (e.g., \"SOC 2 Type II\") */\n name: string;\n /** Icon or badge image */\n icon: React.ReactNode;\n /** Description (shown in detailed variant) */\n description?: string;\n /** Link to details/documentation */\n href?: string;\n}\n\nexport interface SecurityBlockProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Certifications/badges */\n certifications?: SecurityCertification[];\n /** Security feature descriptions */\n features?: Array<{ title: string; description: string; icon?: React.ReactNode }>;\n /** Layout variant */\n variant?: 'badges' | 'detailed' | 'compact';\n}\n\n/**\n * Security and compliance trust display.\n *\n * @example\n * ```tsx\n * <SecurityBlock\n * eyebrow=\"Enterprise Security\"\n * title=\"Your Data, Our Priority\"\n * certifications={[\n * { name: 'SOC 2 Type II', icon: <ShieldIcon />, description: 'Annual audit...' },\n * { name: 'GDPR Compliant', icon: <EUIcon /> },\n * ]}\n * features={[\n * { title: 'End-to-end encryption', description: '256-bit AES at rest, TLS 1.3 in transit' },\n * ]}\n * variant=\"detailed\"\n * />\n * ```\n */\nexport const SecurityBlock = forwardRef<HTMLDivElement, SecurityBlockProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n certifications,\n features,\n variant = 'badges',\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-security-block', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {certifications && certifications.length > 0 && (\n <div className={clsx('ds-security-block__certs', `ds-security-block__certs--${variant}`)}>\n {certifications.map((cert, i) => {\n const inner = (\n <div key={i} className=\"ds-security-block__cert\">\n <div className=\"ds-security-block__cert-icon\">{cert.icon}</div>\n <div className=\"ds-security-block__cert-info\">\n <span className=\"ds-security-block__cert-name\">{cert.name}</span>\n {variant === 'detailed' && cert.description && (\n <span className=\"ds-security-block__cert-desc\">{cert.description}</span>\n )}\n </div>\n </div>\n );\n\n return cert.href ? (\n <OutboundLink key={i} href={cert.href} context=\"security-block-cert\" className=\"ds-security-block__cert-link\">\n {inner}\n </OutboundLink>\n ) : (\n <React.Fragment key={i}>{inner}</React.Fragment>\n );\n })}\n </div>\n )}\n\n {features && features.length > 0 && (\n <div className=\"ds-security-block__features\">\n {features.map((feature, i) => (\n <div key={i} className=\"ds-security-block__feature\">\n {feature.icon && (\n <span className=\"ds-security-block__feature-icon\" aria-hidden=\"true\">\n {feature.icon}\n </span>\n )}\n <div>\n <h4 className=\"ds-security-block__feature-title\">{feature.title}</h4>\n <p className=\"ds-security-block__feature-desc\">{feature.description}</p>\n </div>\n </div>\n ))}\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nSecurityBlock.displayName = 'SecurityBlock';\n","import React, { forwardRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { CaseStudyCard, type CaseStudyCardProps } from '../CaseStudyCard/CaseStudyCard';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './CaseStudySection.css';\n\n/* ============================================================================\n CASE STUDY SECTION\n ============================================================================\n Case study showcase with optional industry filtering. Wraps CaseStudyCard\n grid in a SectionShell.\n\n Strategic objective: Trust + Authority\n ============================================================================ */\n\nexport interface CaseStudySectionProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Case study items */\n caseStudies: CaseStudyCardProps[];\n /** Enable industry filtering */\n filterable?: boolean;\n /** Filter labels (derived from caseStudies.industry if not provided) */\n filters?: string[];\n /** Max visible items */\n maxVisible?: number;\n /** \"See all\" link */\n seeAllHref?: string;\n}\n\n/**\n * Case study showcase section with optional filtering.\n *\n * @example\n * ```tsx\n * <CaseStudySection\n * eyebrow=\"Customer Stories\"\n * title=\"How Teams Win With SalesMind\"\n * caseStudies={caseStudies}\n * filterable\n * seeAllHref=\"/case-studies\"\n * />\n * ```\n */\nexport const CaseStudySection = forwardRef<HTMLDivElement, CaseStudySectionProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n caseStudies,\n filterable = false,\n filters,\n maxVisible,\n seeAllHref,\n className,\n ...props\n },\n ref,\n ) => {\n const allFilters = filters ?? [\n 'All',\n ...new Set(caseStudies.map((cs) => cs.industry).filter(Boolean) as string[]),\n ];\n const [activeFilter, setActiveFilter] = useState('All');\n\n const filtered =\n activeFilter === 'All'\n ? caseStudies\n : caseStudies.filter((cs) => cs.industry === activeFilter);\n\n const visible = maxVisible ? filtered.slice(0, maxVisible) : filtered;\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-case-study-section', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {filterable && allFilters.length > 1 && (\n <Tabs\n value={allFilters.indexOf(activeFilter)}\n onValueChange={(v) => setActiveFilter(allFilters[v as number] ?? 'All')}\n >\n <TabsList className=\"ds-case-study-section__filters\">\n {allFilters.map((filter, i) => (\n <TabsTrigger key={filter} value={i} className=\"ds-case-study-section__filter\">\n {filter}\n </TabsTrigger>\n ))}\n </TabsList>\n {allFilters.map((_, i) => (\n <TabsContent key={i} value={i} className=\"ds-case-study-section__tab-content\" />\n ))}\n </Tabs>\n )}\n\n <div className=\"ds-case-study-section__grid\">\n {visible.map((cs, i) => (\n <CaseStudyCard key={i} {...cs} />\n ))}\n </div>\n\n {seeAllHref && (\n <div className=\"ds-case-study-section__see-all\">\n <Button variant=\"outline\" asChild>\n <OutboundLink href={seeAllHref} context=\"case-study-section-see-all\" openInNewTab={false}>See all case studies</OutboundLink>\n </Button>\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nCaseStudySection.displayName = 'CaseStudySection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar/Avatar';\nimport './ManifestoBlock.css';\n\n/* ============================================================================\n MANIFESTO BLOCK\n ============================================================================\n Brand philosophy / manifesto statement. A bold, typographic block that\n communicates company beliefs and values.\n\n Strategic objective: Narrative Control (brand alignment filter)\n ============================================================================ */\n\n/** Attribution for the manifesto */\nexport interface ManifestoAttribution {\n /** Name */\n name: string;\n /** Role */\n role: string;\n /** Avatar URL */\n avatar?: string;\n}\n\nexport interface ManifestoBlockProps extends Omit<SectionShellProps, 'children'> {\n /** The manifesto statement (plain text or ReactNode) */\n statement: React.ReactNode;\n /** Attribution (e.g., founder) */\n attribution?: ManifestoAttribution;\n /** Visual variant */\n variant?: 'centered' | 'editorial' | 'quote';\n}\n\n/**\n * Bold brand philosophy statement.\n *\n * @example\n * ```tsx\n * <ManifestoBlock\n * statement=\"We believe pipeline shouldn't be a prayer. It should be infrastructure.\"\n * attribution={{ name: 'Julien', role: 'Founder & CEO' }}\n * variant=\"quote\"\n * padding=\"lg\"\n * />\n * ```\n */\nexport const ManifestoBlock = forwardRef<HTMLDivElement, ManifestoBlockProps>(\n (\n {\n statement,\n attribution,\n variant = 'centered',\n className,\n ...props\n },\n ref,\n ) => {\n const initials = attribution\n ? attribution.name.split(' ').map((n) => n[0]).join('').slice(0, 2)\n : '';\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-manifesto', `ds-manifesto--${variant}`, className)}\n {...props}\n >\n <div className=\"ds-manifesto__inner\">\n {variant === 'quote' && (\n <span className=\"ds-manifesto__quote-mark\" aria-hidden=\"true\">&ldquo;</span>\n )}\n\n <blockquote className=\"ds-manifesto__statement\">\n {statement}\n </blockquote>\n\n {attribution && (\n <div className=\"ds-manifesto__attribution\">\n <Avatar size=\"sm\">\n {attribution.avatar && <AvatarImage src={attribution.avatar} alt={attribution.name} />}\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <div className=\"ds-manifesto__attribution-text\">\n <span className=\"ds-manifesto__attribution-name\">{attribution.name}</span>\n <span className=\"ds-manifesto__attribution-role\">{attribution.role}</span>\n </div>\n </div>\n )}\n </div>\n </SectionShell>\n );\n },\n);\n\nManifestoBlock.displayName = 'ManifestoBlock';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Badge } from '../Badge/Badge';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './ComplianceGrid.css';\n\n/* ============================================================================\n COMPLIANCE GRID\n ============================================================================\n Compliance certifications grid with status indicators. Shows certification\n progress to enterprise buyers.\n\n Strategic objective: Trust + Authority (enterprise procurement readiness)\n ============================================================================ */\n\n/** Status of a compliance certification */\nexport type ComplianceStatus = 'certified' | 'in-progress' | 'planned';\n\n/** A single compliance item */\nexport interface ComplianceItem {\n /** Certification name */\n name: string;\n /** Current status */\n status: ComplianceStatus;\n /** Icon */\n icon?: React.ReactNode;\n /** Description */\n description?: string;\n /** Link to documentation or certificate */\n documentHref?: string;\n}\n\nexport interface ComplianceGridProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Compliance items */\n items: ComplianceItem[];\n}\n\nconst STATUS_LABELS: Record<ComplianceStatus, string> = {\n certified: 'Certified',\n 'in-progress': 'In Progress',\n planned: 'Planned',\n};\n\n/**\n * Compliance certifications grid with status badges.\n *\n * @example\n * ```tsx\n * <ComplianceGrid\n * eyebrow=\"Compliance\"\n * title=\"Enterprise-Grade Security\"\n * items={[\n * { name: 'SOC 2 Type II', status: 'certified', icon: <ShieldIcon /> },\n * { name: 'ISO 27001', status: 'in-progress', icon: <LockIcon /> },\n * { name: 'HIPAA', status: 'planned', icon: <HospitalIcon /> },\n * ]}\n * />\n * ```\n */\nexport const ComplianceGrid = forwardRef<HTMLDivElement, ComplianceGridProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n items,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-compliance-grid', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n <div className=\"ds-compliance-grid__items\">\n {items.map((item, i) => {\n const inner = (\n <div\n key={i}\n className={clsx(\n 'ds-compliance-grid__item',\n `ds-compliance-grid__item--${item.status}`,\n )}\n >\n {item.icon && (\n <div className=\"ds-compliance-grid__icon\">{item.icon}</div>\n )}\n <div className=\"ds-compliance-grid__info\">\n <span className=\"ds-compliance-grid__name\">{item.name}</span>\n <Badge\n className={clsx(\n 'ds-compliance-grid__status',\n `ds-compliance-grid__status--${item.status}`,\n )}\n variant=\"outline\"\n >\n {STATUS_LABELS[item.status]}\n </Badge>\n {item.description && (\n <span className=\"ds-compliance-grid__desc\">{item.description}</span>\n )}\n </div>\n </div>\n );\n\n return item.documentHref ? (\n <OutboundLink key={i} href={item.documentHref} context=\"compliance-grid-doc\" className=\"ds-compliance-grid__link\">\n {inner}\n </OutboundLink>\n ) : (\n <React.Fragment key={i}>{inner}</React.Fragment>\n );\n })}\n </div>\n </SectionShell>\n );\n },\n);\n\nComplianceGrid.displayName = 'ComplianceGrid';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './ArchitectureDiagram.css';\n\n/* ============================================================================\n ARCHITECTURE DIAGRAM\n ============================================================================\n SVG-based system architecture visualization showing integration flow.\n Renders nodes and connections as a directed graph.\n\n Strategic objective: Moat (visualizes ecosystem complexity as value)\n ============================================================================ */\n\n/** Node type determines visual treatment */\nexport type ArchitectureNodeType = 'source' | 'process' | 'destination' | 'integration';\n\n/** A node in the architecture diagram */\nexport interface ArchitectureNode {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional icon */\n icon?: React.ReactNode;\n /** Node type affects styling */\n type: ArchitectureNodeType;\n /** Tooltip description */\n description?: string;\n}\n\n/** A connection between two nodes */\nexport interface ArchitectureConnection {\n /** Source node ID */\n from: string;\n /** Destination node ID */\n to: string;\n /** Connection label */\n label?: string;\n /** Show animated dashes */\n animated?: boolean;\n}\n\nexport interface ArchitectureDiagramProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Nodes in the diagram */\n nodes: ArchitectureNode[];\n /** Connections between nodes */\n connections: ArchitectureConnection[];\n /** Flow direction */\n direction?: 'horizontal' | 'vertical';\n}\n\n/**\n * System architecture visualization with nodes and connections.\n *\n * @example\n * ```tsx\n * <ArchitectureDiagram\n * nodes={[\n * { id: 'linkedin', label: 'LinkedIn', type: 'source' },\n * { id: 'ai', label: 'SalesMind AI', type: 'process' },\n * { id: 'crm', label: 'CRM', type: 'destination' },\n * ]}\n * connections={[\n * { from: 'linkedin', to: 'ai', animated: true },\n * { from: 'ai', to: 'crm', animated: true },\n * ]}\n * direction=\"horizontal\"\n * />\n * ```\n */\nexport const ArchitectureDiagram = forwardRef<HTMLDivElement, ArchitectureDiagramProps>(\n (\n {\n nodes,\n connections,\n direction = 'horizontal',\n className,\n ...props\n },\n ref,\n ) => {\n // Simple linear layout — nodes spaced evenly\n const isHorizontal = direction === 'horizontal';\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-architecture',\n `ds-architecture--${direction}`,\n className,\n )}\n role=\"img\"\n aria-label=\"Architecture diagram\"\n {...props}\n >\n <div className=\"ds-architecture__nodes\">\n {nodes.map((node, i) => (\n <React.Fragment key={node.id}>\n {/* Connection arrow before node (except first) */}\n {i > 0 && (\n <div className=\"ds-architecture__connection\" aria-hidden=\"true\">\n <div\n className={clsx(\n 'ds-architecture__line',\n connections.find(\n (c) => c.from === nodes[i - 1]?.id && c.to === node.id,\n )?.animated && 'ds-architecture__line--animated',\n )}\n />\n <span className=\"ds-architecture__arrow\">\n {isHorizontal ? '\\u2192' : '\\u2193'}\n </span>\n {connections.find(\n (c) => c.from === nodes[i - 1]?.id && c.to === node.id,\n )?.label && (\n <span className=\"ds-architecture__connection-label\">\n {connections.find(\n (c) => c.from === nodes[i - 1]?.id && c.to === node.id,\n )?.label}\n </span>\n )}\n </div>\n )}\n\n {/* Node */}\n <div\n className={clsx(\n 'ds-architecture__node',\n `ds-architecture__node--${node.type}`,\n )}\n title={node.description}\n >\n {node.icon && (\n <span className=\"ds-architecture__node-icon\" aria-hidden=\"true\">\n {node.icon}\n </span>\n )}\n <span className=\"ds-architecture__node-label\">{node.label}</span>\n </div>\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n },\n);\n\nArchitectureDiagram.displayName = 'ArchitectureDiagram';\n","import React, { forwardRef, useMemo } from 'react';\nimport clsx from 'clsx';\n\n/* ============================================================================\n SEGMENT SWITCH\n ============================================================================\n Renders content based on visitor segment. Pure logic wrapper — no visual\n output of its own. Reads segment from UTM params, cookie, or manual prop.\n\n Strategic objective: Pipeline Quality (personalized conversion paths)\n ============================================================================ */\n\nexport interface SegmentSwitchProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Active segment key */\n segment?: string;\n /** Map of segment keys to content */\n segments: Record<string, React.ReactNode>;\n /** Fallback content when no segment matches */\n fallback?: React.ReactNode;\n /** Segment source for auto-detection */\n source?: 'utm' | 'cookie' | 'manual';\n /** UTM parameter name (default: \"utm_segment\") */\n utmParam?: string;\n /** Cookie name (default: \"ds_segment\") */\n cookieName?: string;\n}\n\nfunction getUtmSegment(param: string): string | null {\n if (typeof window === 'undefined') return null;\n const url = new URL(window.location.href);\n return url.searchParams.get(param);\n}\n\nfunction getCookieSegment(name: string): string | null {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp(`(?:^|;\\\\s*)${name}=([^;]*)`));\n return match ? decodeURIComponent(match[1]) : null;\n}\n\n/**\n * Segment-based content renderer.\n *\n * @example\n * ```tsx\n * <SegmentSwitch\n * segment=\"founder\"\n * segments={{\n * founder: <FounderContent />,\n * operator: <OperatorContent />,\n * }}\n * fallback={<DefaultContent />}\n * />\n * ```\n */\nexport const SegmentSwitch = forwardRef<HTMLDivElement, SegmentSwitchProps>(\n (\n {\n segment: controlledSegment,\n segments,\n fallback = null,\n source = 'manual',\n utmParam = 'utm_segment',\n cookieName = 'ds_segment',\n className,\n ...props\n },\n ref,\n ) => {\n const resolvedSegment = useMemo(() => {\n if (controlledSegment) return controlledSegment;\n\n switch (source) {\n case 'utm':\n return getUtmSegment(utmParam) ?? undefined;\n case 'cookie':\n return getCookieSegment(cookieName) ?? undefined;\n default:\n return undefined;\n }\n }, [controlledSegment, source, utmParam, cookieName]);\n\n const content = resolvedSegment && segments[resolvedSegment]\n ? segments[resolvedSegment]\n : fallback;\n\n if (!content) return null;\n\n return (\n <div ref={ref} className={clsx(className)} {...props}>\n {content}\n </div>\n );\n },\n);\n\nSegmentSwitch.displayName = 'SegmentSwitch';\n","import React, { forwardRef, useState, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './IntentCTA.css';\n\n/* ============================================================================\n INTENT CTA\n ============================================================================\n Commitment-level adaptive CTA that escalates based on demonstrated intent\n (scroll depth, time on page, pages visited). As visitor engagement\n increases, CTA copy and urgency increase.\n\n Strategic objective: Pipeline Quality (progressive commitment ladder)\n ============================================================================ */\n\n/** What triggers a stage change */\nexport type IntentTriggerType = 'scroll' | 'time' | 'pages';\n\n/** A single CTA stage */\nexport interface IntentStage {\n /** What triggers this stage */\n trigger: { type: IntentTriggerType; threshold: number };\n /** CTA label */\n label: string;\n /** CTA link */\n href: string;\n /** Button variant (escalates with intent) */\n variant?: 'outline' | 'primary';\n}\n\nexport interface IntentCTAProps extends React.HTMLAttributes<HTMLDivElement> {\n /** CTA stages ordered by escalation */\n stages: IntentStage[];\n /** Default CTA (shown before any stage triggers) */\n defaultCta: { label: string; href: string; variant?: 'outline' | 'primary' };\n /** External page count for 'pages' trigger type (tracked by consuming app) */\n pageCount?: number;\n}\n\n/**\n * Adaptive CTA that escalates with demonstrated visitor intent.\n *\n * @example\n * ```tsx\n * <IntentCTA\n * defaultCta={{ label: 'Learn More', href: '/about', variant: 'outline' }}\n * stages={[\n * { trigger: { type: 'scroll', threshold: 50 }, label: 'See Pricing', href: '/pricing', variant: 'outline' },\n * { trigger: { type: 'time', threshold: 30 }, label: 'Book a Demo', href: '/demo', variant: 'primary' },\n * { trigger: { type: 'scroll', threshold: 80 }, label: 'Start Free Trial', href: '/signup', variant: 'primary' },\n * ]}\n * />\n * ```\n */\nexport const IntentCTA = forwardRef<HTMLDivElement, IntentCTAProps>(\n (\n {\n stages,\n defaultCta,\n pageCount = 0,\n className,\n ...props\n },\n ref,\n ) => {\n const [activeStageIndex, setActiveStageIndex] = useState(-1);\n const timeRef = useRef(0);\n const timerRef = useRef<ReturnType<typeof setInterval> | null>(null);\n const pageCountRef = useRef(pageCount);\n\n // Keep pageCount ref in sync\n useEffect(() => {\n pageCountRef.current = pageCount;\n }, [pageCount]);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n // Track time on page\n timerRef.current = setInterval(() => {\n timeRef.current += 1;\n checkStages();\n }, 1000);\n\n // Track scroll depth\n const handleScroll = () => {\n checkStages();\n };\n window.addEventListener('scroll', handleScroll, { passive: true });\n\n function checkStages() {\n const scrollPercent = typeof document !== 'undefined'\n ? Math.round(\n (window.scrollY / (document.documentElement.scrollHeight - window.innerHeight)) * 100,\n )\n : 0;\n\n let highestTriggered = -1;\n\n for (let i = 0; i < stages.length; i++) {\n const stage = stages[i];\n let triggered = false;\n\n switch (stage.trigger.type) {\n case 'scroll':\n triggered = scrollPercent >= stage.trigger.threshold;\n break;\n case 'time':\n triggered = timeRef.current >= stage.trigger.threshold;\n break;\n case 'pages':\n triggered = pageCountRef.current >= stage.trigger.threshold;\n break;\n }\n\n if (triggered) highestTriggered = i;\n }\n\n setActiveStageIndex((prev) => Math.max(prev, highestTriggered));\n }\n\n // Run initial check (pageCount may already exceed threshold)\n checkStages();\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n if (timerRef.current) clearInterval(timerRef.current);\n };\n }, [stages]);\n\n const activeCta = activeStageIndex >= 0 ? stages[activeStageIndex] : defaultCta;\n\n return (\n <div\n ref={ref}\n className={clsx('ds-intent-cta', className)}\n {...props}\n >\n <Button\n variant={activeCta.variant ?? 'primary'}\n asChild\n >\n <OutboundLink href={activeCta.href} context=\"intent-cta\" openInNewTab={false}>{activeCta.label}</OutboundLink>\n </Button>\n </div>\n );\n },\n);\n\nIntentCTA.displayName = 'IntentCTA';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Badge } from '../Badge/Badge';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './EvolutionTimeline.css';\n\n/* ============================================================================\n EVOLUTION TIMELINE\n ============================================================================\n Visualizes category evolution from Manual → Tools → Infrastructure.\n Positions SalesMind as the inevitable next phase. NOT ProcessTimeline\n (which shows user steps) — this shows MARKET evolution.\n\n Strategic objective: Differentiation + Narrative Control\n ============================================================================ */\n\n/** Sentiment determines visual treatment */\nexport type EraSentiment = 'past' | 'present' | 'future';\n\n/** A single era in the evolution */\nexport interface EvolutionEra {\n /** Era label (e.g., \"Manual SDRs\") */\n label: string;\n /** Time period (e.g., \"2010-2018\") */\n period: string;\n /** Era description */\n description: string;\n /** Characteristics of this era */\n traits: string[];\n /** Whether this is the current/highlighted era */\n current?: boolean;\n /** Icon or illustration */\n icon?: React.ReactNode;\n /** Visual sentiment — past eras fade, future glows */\n sentiment: EraSentiment;\n}\n\nexport interface EvolutionTimelineProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Evolution eras */\n eras: EvolutionEra[];\n /** \"You are here\" indicator (index) */\n youAreHere?: number;\n /** CTA after timeline */\n cta?: { label: string; href: string };\n}\n\n/**\n * Category evolution timeline — positions SalesMind as the inevitable next phase.\n *\n * @example\n * ```tsx\n * <EvolutionTimeline\n * eyebrow=\"The Evolution\"\n * title=\"From Tools to Infrastructure\"\n * eras={[\n * { label: 'Manual SDRs', period: '2010-2018', description: '...', traits: [...], sentiment: 'past' },\n * { label: 'Automation Tools', period: '2018-2024', description: '...', traits: [...], sentiment: 'present', current: true },\n * { label: 'Pipeline Infrastructure', period: '2024+', description: '...', traits: [...], sentiment: 'future' },\n * ]}\n * youAreHere={1}\n * />\n * ```\n */\nexport const EvolutionTimeline = forwardRef<HTMLDivElement, EvolutionTimelineProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n eras,\n youAreHere,\n cta,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-evolution-timeline', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n <div className=\"ds-evolution-timeline__track\">\n {/* Connecting line */}\n <div className=\"ds-evolution-timeline__line\" aria-hidden=\"true\" />\n\n {eras.map((era, i) => (\n <div\n key={i}\n className={clsx(\n 'ds-evolution-timeline__era',\n `ds-evolution-timeline__era--${era.sentiment}`,\n era.current && 'ds-evolution-timeline__era--current',\n )}\n >\n {/* Era marker dot */}\n <div className=\"ds-evolution-timeline__marker\" aria-hidden=\"true\" />\n\n {/* \"You are here\" indicator */}\n {youAreHere === i && (\n <Badge className=\"ds-evolution-timeline__you-are-here\">\n Most tools are here\n </Badge>\n )}\n\n {era.icon && (\n <div className=\"ds-evolution-timeline__icon\" aria-hidden=\"true\">\n {era.icon}\n </div>\n )}\n\n <div className=\"ds-evolution-timeline__content\">\n <span className=\"ds-evolution-timeline__period\">{era.period}</span>\n <h3 className=\"ds-evolution-timeline__label\">{era.label}</h3>\n <p className=\"ds-evolution-timeline__desc\">{era.description}</p>\n\n <ul className=\"ds-evolution-timeline__traits\">\n {era.traits.map((trait, j) => (\n <li key={j} className=\"ds-evolution-timeline__trait\">\n <span className=\"ds-evolution-timeline__trait-icon\" aria-hidden=\"true\">\n {era.sentiment === 'future' ? '\\u2713' : era.sentiment === 'past' ? '\\u2717' : '\\u2022'}\n </span>\n {trait}\n </li>\n ))}\n </ul>\n </div>\n </div>\n ))}\n </div>\n\n {cta && (\n <div className=\"ds-evolution-timeline__cta\">\n <Button variant=\"primary\" asChild>\n <OutboundLink href={cta.href} context=\"evolution-timeline-cta\" openInNewTab={false}>{cta.label}</OutboundLink>\n </Button>\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nEvolutionTimeline.displayName = 'EvolutionTimeline';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport './EcosystemDiagram.css';\n\n/* ============================================================================\n ECOSYSTEM DIAGRAM\n ============================================================================\n Visualizes SalesMind's Software + Data + People trifecta as a\n self-reinforcing flywheel. Shows that SalesMind is not just software —\n it's an integrated ecosystem where each layer strengthens the others.\n\n Strategic objective: Moat + ACV (justifies higher pricing)\n ============================================================================ */\n\n/** A single ecosystem layer */\nexport interface EcosystemLayer {\n /** Layer name */\n name: string;\n /** Short description */\n description: string;\n /** Key capabilities */\n capabilities: string[];\n /** Icon */\n icon?: React.ReactNode;\n}\n\n/** A connection between layers */\nexport interface EcosystemConnection {\n /** From layer index */\n from: number;\n /** To layer index */\n to: number;\n /** What flows between layers */\n label: string;\n}\n\nexport interface EcosystemDiagramProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Ecosystem layers (typically 3) */\n layers: EcosystemLayer[];\n /** Connections between layers (flywheel arrows) */\n connections: EcosystemConnection[];\n /** Layout variant */\n variant?: 'flywheel' | 'pyramid' | 'concentric';\n /** Center label (e.g., \"Predictable Pipeline\") */\n centerLabel?: string;\n}\n\n/**\n * Ecosystem flywheel / pyramid / concentric diagram.\n *\n * @example\n * ```tsx\n * <EcosystemDiagram\n * title=\"The SalesMind Ecosystem\"\n * layers={[\n * { name: 'AI Software', description: '...', capabilities: ['...'] },\n * { name: 'Compound Intelligence', description: '...', capabilities: ['...'] },\n * { name: 'Expert Operations', description: '...', capabilities: ['...'] },\n * ]}\n * connections={[\n * { from: 0, to: 1, label: 'Interaction data' },\n * { from: 1, to: 2, label: 'AI insights' },\n * { from: 2, to: 0, label: 'Human refinements' },\n * ]}\n * centerLabel=\"Predictable Pipeline\"\n * variant=\"flywheel\"\n * />\n * ```\n */\nexport const EcosystemDiagram = forwardRef<HTMLDivElement, EcosystemDiagramProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n layers,\n connections,\n variant = 'flywheel',\n centerLabel,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-ecosystem', `ds-ecosystem--${variant}`, className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n <div className=\"ds-ecosystem__diagram\" role=\"img\" aria-label=\"Ecosystem diagram\">\n {/* Center label */}\n {centerLabel && (\n <div className=\"ds-ecosystem__center\">\n <span className=\"ds-ecosystem__center-label\">{centerLabel}</span>\n </div>\n )}\n\n {/* Layers */}\n <div className=\"ds-ecosystem__layers\">\n {layers.map((layer, i) => (\n <div key={i} className=\"ds-ecosystem__layer\">\n {layer.icon && (\n <div className=\"ds-ecosystem__layer-icon\" aria-hidden=\"true\">\n {layer.icon}\n </div>\n )}\n <h3 className=\"ds-ecosystem__layer-name\">{layer.name}</h3>\n <p className=\"ds-ecosystem__layer-desc\">{layer.description}</p>\n <ul className=\"ds-ecosystem__capabilities\">\n {layer.capabilities.map((cap, j) => (\n <li key={j} className=\"ds-ecosystem__capability\">{cap}</li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n\n {/* Connections */}\n <div className=\"ds-ecosystem__connections\" aria-hidden=\"true\">\n {connections.map((conn, i) => (\n <div key={i} className=\"ds-ecosystem__connection\">\n <span className=\"ds-ecosystem__connection-arrow\">\\u2192</span>\n <span className=\"ds-ecosystem__connection-label\">{conn.label}</span>\n </div>\n ))}\n </div>\n </div>\n </SectionShell>\n );\n },\n);\n\nEcosystemDiagram.displayName = 'EcosystemDiagram';\n","import React, { forwardRef, useState, useMemo, useCallback } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport { Slider } from '../Slider/Slider';\nimport { TextField } from '../TextField/TextField';\nimport './ValueAnchor.css';\n\n/* ============================================================================\n VALUE ANCHOR\n ============================================================================\n Anchor the buyer on OUTCOME VALUE before showing cost. Shows pipeline\n VALUE first, then cost as a fraction. The most effective pricing psychology\n pattern: show the $500K pipeline first, then the $2K/month cost.\n\n Strategic objective: ACV (shifts conversation from cost to value ratio)\n ============================================================================ */\n\n/** Calculator input definition */\nexport interface ValueAnchorInput {\n /** Input name (form key) */\n name: string;\n /** Display label */\n label: string;\n /** Input type */\n type: 'number' | 'slider';\n /** Default value */\n defaultValue: number;\n /** Min for slider */\n min?: number;\n /** Max for slider */\n max?: number;\n /** Step for slider */\n step?: number;\n /** Display prefix (e.g., \"$\") */\n prefix?: string;\n /** Display suffix (e.g., \"%\") */\n suffix?: string;\n}\n\n/** Calculator output */\nexport interface ValueAnchorOutput {\n /** Primary metric (large display) */\n primaryMetric: { value: number; label: string; prefix?: string; suffix?: string };\n /** Supporting metrics */\n secondaryMetrics: Array<{ value: number; label: string; prefix?: string; suffix?: string }>;\n /** Optional cost comparison */\n costComparison?: {\n without: { value: number; label: string };\n with: { value: number; label: string };\n savings: { value: number; label: string };\n };\n}\n\nexport interface ValueAnchorProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Calculator inputs */\n inputs: ValueAnchorInput[];\n /** Calculation function */\n calculate: (values: Record<string, number>) => ValueAnchorOutput;\n /** CTA shown after calculation */\n cta?: { label: string; href: string };\n}\n\n/** Format a number with commas */\nfunction formatNumber(n: number, prefix?: string, suffix?: string): string {\n const formatted = n >= 1000\n ? n.toLocaleString('en-US', { maximumFractionDigits: 0 })\n : String(Math.round(n * 10) / 10);\n return `${prefix ?? ''}${formatted}${suffix ?? ''}`;\n}\n\n/**\n * Pipeline value calculator — anchors on outcome value before showing cost.\n *\n * @example\n * ```tsx\n * <ValueAnchor\n * title=\"See Your Pipeline Potential\"\n * inputs={[\n * { name: 'meetings', label: 'Monthly meetings', type: 'slider', defaultValue: 10, min: 5, max: 50 },\n * { name: 'dealSize', label: 'Avg deal size', type: 'number', defaultValue: 5000, prefix: '$' },\n * ]}\n * calculate={(v) => ({\n * primaryMetric: { value: v.meetings * 12 * v.dealSize * 0.2, label: 'Annual Pipeline Value', prefix: '$' },\n * secondaryMetrics: [...],\n * })}\n * />\n * ```\n */\nexport const ValueAnchor = forwardRef<HTMLDivElement, ValueAnchorProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n inputs,\n calculate,\n cta,\n className,\n ...props\n },\n ref,\n ) => {\n const initialValues = useMemo(() => {\n const vals: Record<string, number> = {};\n inputs.forEach((inp) => { vals[inp.name] = inp.defaultValue; });\n return vals;\n }, [inputs]);\n\n const [values, setValues] = useState(initialValues);\n\n const handleChange = useCallback((name: string, value: number) => {\n setValues((prev) => ({ ...prev, [name]: value }));\n }, []);\n\n const output = useMemo(() => calculate(values), [values, calculate]);\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-value-anchor', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n <div className=\"ds-value-anchor__layout\">\n {/* Inputs */}\n <div className=\"ds-value-anchor__inputs\">\n {inputs.map((input) => (\n <div key={input.name} className=\"ds-value-anchor__input-group\">\n <label className=\"ds-value-anchor__input-label\">\n {input.label}\n <span className=\"ds-value-anchor__input-value\">\n {formatNumber(values[input.name], input.prefix, input.suffix)}\n </span>\n </label>\n {input.type === 'slider' ? (\n <Slider\n value={values[input.name]}\n min={input.min ?? 0}\n max={input.max ?? 100}\n step={input.step ?? 1}\n onValueChange={(v) => handleChange(input.name, v)}\n inputLabel={input.label}\n />\n ) : (\n <TextField\n type=\"number\"\n value={String(values[input.name])}\n onChange={(e) => handleChange(input.name, Number(e.target.value) || 0)}\n />\n )}\n </div>\n ))}\n </div>\n\n {/* Output */}\n <div className=\"ds-value-anchor__output\">\n {/* Primary metric — large, brand-colored */}\n <div className=\"ds-value-anchor__primary\">\n <span className=\"ds-value-anchor__primary-value\">\n {formatNumber(output.primaryMetric.value, output.primaryMetric.prefix, output.primaryMetric.suffix)}\n </span>\n <span className=\"ds-value-anchor__primary-label\">\n {output.primaryMetric.label}\n </span>\n </div>\n\n {/* Secondary metrics */}\n {output.secondaryMetrics.length > 0 && (\n <div className=\"ds-value-anchor__secondary\">\n {output.secondaryMetrics.map((m, i) => (\n <div key={i} className=\"ds-value-anchor__secondary-metric\">\n <span className=\"ds-value-anchor__secondary-value\">\n {formatNumber(m.value, m.prefix, m.suffix)}\n </span>\n <span className=\"ds-value-anchor__secondary-label\">{m.label}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Cost comparison */}\n {output.costComparison && (\n <div className=\"ds-value-anchor__comparison\">\n <div className=\"ds-value-anchor__comparison-col ds-value-anchor__comparison-col--without\">\n <span className=\"ds-value-anchor__comparison-value\">\n {formatNumber(output.costComparison.without.value, '$')}\n </span>\n <span className=\"ds-value-anchor__comparison-label\">\n {output.costComparison.without.label}\n </span>\n </div>\n <div className=\"ds-value-anchor__comparison-col ds-value-anchor__comparison-col--with\">\n <span className=\"ds-value-anchor__comparison-value\">\n {formatNumber(output.costComparison.with.value, '$')}\n </span>\n <span className=\"ds-value-anchor__comparison-label\">\n {output.costComparison.with.label}\n </span>\n </div>\n <div className=\"ds-value-anchor__savings\">\n <span className=\"ds-value-anchor__savings-value\">\n {formatNumber(output.costComparison.savings.value, '$')}\n </span>\n <span className=\"ds-value-anchor__savings-label\">\n {output.costComparison.savings.label}\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n\n {cta && (\n <div className=\"ds-value-anchor__cta\">\n <Button variant=\"primary\" size=\"lg\" asChild>\n <OutboundLink href={cta.href} context=\"value-anchor-cta\" openInNewTab={false}>{cta.label}</OutboundLink>\n </Button>\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nValueAnchor.displayName = 'ValueAnchor';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Badge } from '../Badge/Badge';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './EnterpriseSignaling.css';\n\n/* ============================================================================\n ENTERPRISE SIGNALING\n ============================================================================\n Enterprise trust and procurement enablement. Shows SLA commitments,\n uptime guarantees, security certifications, and team capabilities in\n a structured, scannable format.\n\n Strategic objective: Trust + Authority (enterprise procurement readiness)\n ============================================================================ */\n\n/** Status of a trust signal item */\nexport type EnterpriseSignalStatus = 'active' | 'in-progress' | 'planned';\n\n/** A single trust signal item */\nexport interface EnterpriseSignalItem {\n /** Signal name (e.g., \"SOC 2 Type II\") */\n name: string;\n /** Status */\n status: EnterpriseSignalStatus;\n /** Detail text */\n detail?: string;\n /** Link to documentation */\n href?: string;\n}\n\n/** A category of trust signals */\nexport interface EnterpriseSignalCategory {\n /** Category name (e.g., \"Security\") */\n name: string;\n /** Category icon */\n icon?: React.ReactNode;\n /** Items in this category */\n items: EnterpriseSignalItem[];\n}\n\n/** SLA commitment */\nexport interface EnterpriseSLA {\n /** Metric name */\n metric: string;\n /** SLA commitment */\n commitment: string;\n /** Current actual value */\n current?: string;\n}\n\nexport interface EnterpriseSignalingProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Trust signal categories */\n categories: EnterpriseSignalCategory[];\n /** SLA commitments */\n sla?: EnterpriseSLA[];\n /** Layout variant */\n variant?: 'full' | 'compact' | 'strip';\n}\n\nconst STATUS_LABELS: Record<EnterpriseSignalStatus, string> = {\n active: 'Active',\n 'in-progress': 'In Progress',\n planned: 'Planned',\n};\n\n/**\n * Enterprise trust and procurement enablement block.\n *\n * @example\n * ```tsx\n * <EnterpriseSignaling\n * title=\"Enterprise-Ready\"\n * categories={[\n * { name: 'Security', items: [{ name: 'GDPR', status: 'active' }] },\n * ]}\n * sla={[{ metric: 'Uptime', commitment: '99.9%', current: '99.97%' }]}\n * variant=\"full\"\n * />\n * ```\n */\nexport const EnterpriseSignaling = forwardRef<HTMLDivElement, EnterpriseSignalingProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n categories,\n sla,\n variant = 'full',\n className,\n ...props\n },\n ref,\n ) => {\n if (variant === 'strip') {\n return (\n <div\n ref={ref}\n className={clsx('ds-enterprise-signaling', 'ds-enterprise-signaling--strip', className)}\n {...props}\n >\n <div className=\"ds-enterprise-signaling__strip-inner\">\n {categories.flatMap((cat) => cat.items.filter((i) => i.status === 'active')).map((item, i) => (\n <span key={i} className=\"ds-enterprise-signaling__strip-item\">\n {item.name}\n </span>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-enterprise-signaling', `ds-enterprise-signaling--${variant}`, className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {/* Categories */}\n <div className=\"ds-enterprise-signaling__categories\">\n {categories.map((cat, ci) => (\n <div key={ci} className=\"ds-enterprise-signaling__category\">\n <div className=\"ds-enterprise-signaling__category-header\">\n {cat.icon && <span className=\"ds-enterprise-signaling__category-icon\">{cat.icon}</span>}\n <h3 className=\"ds-enterprise-signaling__category-name\">{cat.name}</h3>\n </div>\n <div className=\"ds-enterprise-signaling__items\">\n {cat.items.map((item, ii) => {\n const inner = (\n <div\n key={ii}\n className={clsx(\n 'ds-enterprise-signaling__item',\n `ds-enterprise-signaling__item--${item.status}`,\n )}\n >\n <span className=\"ds-enterprise-signaling__item-name\">{item.name}</span>\n <Badge\n className={clsx('ds-enterprise-signaling__item-status', `ds-enterprise-signaling__item-status--${item.status}`)}\n variant=\"outline\"\n >\n {STATUS_LABELS[item.status]}\n </Badge>\n {variant === 'full' && item.detail && (\n <span className=\"ds-enterprise-signaling__item-detail\">{item.detail}</span>\n )}\n </div>\n );\n\n return item.href ? (\n <OutboundLink key={ii} href={item.href} context=\"enterprise-signaling-item\" className=\"ds-enterprise-signaling__item-link\">{inner}</OutboundLink>\n ) : (\n <React.Fragment key={ii}>{inner}</React.Fragment>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n\n {/* SLA Table */}\n {sla && sla.length > 0 && (\n <div className=\"ds-enterprise-signaling__sla\">\n <h3 className=\"ds-enterprise-signaling__sla-title\">Service Level Agreements</h3>\n <table className=\"ds-enterprise-signaling__sla-table\">\n <thead>\n <tr>\n <th>Metric</th>\n <th>SLA</th>\n {sla.some((s) => s.current) && <th>Current</th>}\n </tr>\n </thead>\n <tbody>\n {sla.map((s, i) => (\n <tr key={i}>\n <td>{s.metric}</td>\n <td>{s.commitment}</td>\n {sla.some((sl) => sl.current) && (\n <td className=\"ds-enterprise-signaling__sla-current\">{s.current ?? '—'}</td>\n )}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </SectionShell>\n );\n },\n);\n\nEnterpriseSignaling.displayName = 'EnterpriseSignaling';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { MetricCounter } from '../MetricCounter/MetricCounter';\nimport './IntelligenceBlock.css';\n\n/* ============================================================================\n INTELLIGENCE BLOCK\n ============================================================================\n Visualizes the data compound effect — SalesMind's AI gets smarter over\n time. This makes the data moat narrative tangible and creates real urgency.\n\n Strategic objective: Moat (data moat signaling)\n ============================================================================ */\n\n/** A compound intelligence metric */\nexport interface IntelligenceMetric {\n /** Target value */\n value: number;\n /** Label below the number */\n label: string;\n /** Value prefix */\n prefix?: string;\n /** Value suffix */\n suffix?: string;\n /** Growth indicator text */\n growth?: string;\n}\n\n/** A compound intelligence capability */\nexport interface IntelligenceCapability {\n /** Capability title */\n title: string;\n /** Description */\n description: string;\n /** Icon */\n icon?: React.ReactNode;\n /** Compounding example */\n compoundingExample?: {\n before: string;\n after: string;\n timeframe: string;\n };\n}\n\nexport interface IntelligenceBlockProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Intelligence metrics */\n metrics: IntelligenceMetric[];\n /** Intelligence capabilities */\n capabilities: IntelligenceCapability[];\n /** Visual variant */\n variant?: 'metrics-first' | 'capabilities-first' | 'timeline';\n}\n\n/**\n * Data compound effect visualization.\n *\n * @example\n * ```tsx\n * <IntelligenceBlock\n * title=\"Intelligence That Compounds\"\n * metrics={[\n * { value: 2000000, suffix: '+', label: 'Prospect Interactions' },\n * ]}\n * capabilities={[\n * { title: 'Message Optimization', description: '...',\n * compoundingExample: { before: 'Generic templates', after: 'Persona-specific scripts', timeframe: '6 months' } },\n * ]}\n * />\n * ```\n */\nexport const IntelligenceBlock = forwardRef<HTMLDivElement, IntelligenceBlockProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n metrics,\n capabilities,\n variant = 'metrics-first',\n className,\n ...props\n },\n ref,\n ) => {\n const metricsBlock = (\n <div className=\"ds-intelligence__metrics\">\n {metrics.map((m, i) => (\n <div key={i} className=\"ds-intelligence__metric\">\n <MetricCounter\n value={m.value}\n prefix={m.prefix}\n suffix={m.suffix}\n label={m.label}\n \n />\n {m.growth && (\n <span className=\"ds-intelligence__growth\">{m.growth}</span>\n )}\n </div>\n ))}\n </div>\n );\n\n const capabilitiesBlock = (\n <div className=\"ds-intelligence__capabilities\">\n {capabilities.map((cap, i) => (\n <div key={i} className=\"ds-intelligence__capability\">\n {cap.icon && (\n <div className=\"ds-intelligence__capability-icon\" aria-hidden=\"true\">\n {cap.icon}\n </div>\n )}\n <div className=\"ds-intelligence__capability-content\">\n <h3 className=\"ds-intelligence__capability-title\">{cap.title}</h3>\n <p className=\"ds-intelligence__capability-desc\">{cap.description}</p>\n {cap.compoundingExample && (\n <div className=\"ds-intelligence__compound\">\n <div className=\"ds-intelligence__compound-before\">\n <span className=\"ds-intelligence__compound-label\">Before</span>\n <span className=\"ds-intelligence__compound-text\">{cap.compoundingExample.before}</span>\n </div>\n <span className=\"ds-intelligence__compound-arrow\" aria-hidden=\"true\">\\u2192</span>\n <div className=\"ds-intelligence__compound-after\">\n <span className=\"ds-intelligence__compound-label\">{cap.compoundingExample.timeframe}</span>\n <span className=\"ds-intelligence__compound-text\">{cap.compoundingExample.after}</span>\n </div>\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-intelligence', `ds-intelligence--${variant}`, className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n {variant === 'capabilities-first' ? (\n <>{capabilitiesBlock}{metricsBlock}</>\n ) : (\n <>{metricsBlock}{capabilitiesBlock}</>\n )}\n </SectionShell>\n );\n },\n);\n\nIntelligenceBlock.displayName = 'IntelligenceBlock';\n","import React, { forwardRef, useState, useMemo, useCallback } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, type SectionShellProps } from '../SectionShell/SectionShell';\nimport { SectionHeader } from '../SectionShell/SectionShell';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport { Slider } from '../Slider/Slider';\nimport './PartnerValueProp.css';\n\n/* ============================================================================\n PARTNER VALUE PROP\n ============================================================================\n White-label / agency partner value proposition. Shows partner economics\n with a margin calculator, benefits grid, and build-vs-buy comparison.\n\n Strategic objective: Distribution (white-label adoption)\n ============================================================================ */\n\n/** Calculator input */\nexport interface PartnerCalcInput {\n /** Input name */\n name: string;\n /** Display label */\n label: string;\n /** Input type */\n type: 'number' | 'slider';\n /** Default value */\n defaultValue: number;\n /** Min value */\n min?: number;\n /** Max value */\n max?: number;\n /** Display prefix */\n prefix?: string;\n /** Display suffix */\n suffix?: string;\n}\n\n/** Calculator output */\nexport interface PartnerCalcOutput {\n monthlyRevenue: number;\n monthlyCost: number;\n monthlyMargin: number;\n marginPercentage: number;\n annualRevenue: number;\n}\n\n/** Partner benefit */\nexport interface PartnerBenefit {\n title: string;\n description: string;\n icon?: React.ReactNode;\n}\n\n/** Build-vs-buy differentiator */\nexport interface PartnerDifferentiator {\n dimension: string;\n buildInHouse: string;\n withPartner: string;\n}\n\nexport interface PartnerValuePropProps extends Omit<SectionShellProps, 'title'> {\n /** Section eyebrow */\n eyebrow?: React.ReactNode;\n /** Section title */\n title: React.ReactNode;\n /** Section subtitle */\n subtitle?: React.ReactNode;\n /** Calculator configuration */\n calculator?: {\n inputs: PartnerCalcInput[];\n calculate: (values: Record<string, number>) => PartnerCalcOutput;\n };\n /** Partner benefits */\n benefits: PartnerBenefit[];\n /** Build-vs-buy comparison */\n differentiators?: PartnerDifferentiator[];\n /** Comparison section title */\n differentiatorTitle?: string;\n /** Column header for the \"build\" option */\n differentiatorBuildLabel?: string;\n /** Column header for the partner/white-label option */\n differentiatorPartnerLabel?: string;\n /** CTA */\n cta: { label: string; href: string };\n}\n\n/** Format a number with commas */\nfunction fmtNum(n: number, prefix?: string, suffix?: string): string {\n return `${prefix ?? ''}${n.toLocaleString('en-US', { maximumFractionDigits: 0 })}${suffix ?? ''}`;\n}\n\n/**\n * White-label partner economics and value proposition.\n *\n * @example\n * ```tsx\n * <PartnerValueProp\n * title=\"Partner With SalesMind\"\n * benefits={[{ title: 'White-Label', description: 'Your brand, our tech.' }]}\n * cta={{ label: 'Apply Now', href: '/partners/apply' }}\n * />\n * ```\n */\nexport const PartnerValueProp = forwardRef<HTMLDivElement, PartnerValuePropProps>(\n (\n {\n eyebrow,\n title,\n subtitle,\n calculator,\n benefits,\n differentiators,\n differentiatorTitle = 'Build In-House vs. White-Label',\n differentiatorBuildLabel = 'Build In-House',\n differentiatorPartnerLabel = 'White-Label',\n cta,\n className,\n ...props\n },\n ref,\n ) => {\n const initialValues = useMemo(() => {\n if (!calculator) return {};\n const vals: Record<string, number> = {};\n calculator.inputs.forEach((inp) => { vals[inp.name] = inp.defaultValue; });\n return vals;\n }, [calculator]);\n\n const [values, setValues] = useState(initialValues);\n\n const handleChange = useCallback((name: string, value: number) => {\n setValues((prev) => ({ ...prev, [name]: value }));\n }, []);\n\n const calcOutput = useMemo(() => {\n if (!calculator) return null;\n return calculator.calculate(values);\n }, [values, calculator]);\n\n return (\n <SectionShell\n ref={ref}\n className={clsx('ds-partner-vp', className)}\n {...props}\n >\n <SectionHeader eyebrow={eyebrow} title={title} subtitle={subtitle} />\n\n <div className=\"ds-partner-vp__layout\">\n {/* Benefits */}\n <div className=\"ds-partner-vp__benefits\">\n {benefits.map((b, i) => (\n <div key={i} className=\"ds-partner-vp__benefit\">\n {b.icon && <div className=\"ds-partner-vp__benefit-icon\" aria-hidden=\"true\">{b.icon}</div>}\n <div>\n <h3 className=\"ds-partner-vp__benefit-title\">{b.title}</h3>\n <p className=\"ds-partner-vp__benefit-desc\">{b.description}</p>\n </div>\n </div>\n ))}\n </div>\n\n {/* Calculator */}\n {calculator && calcOutput && (\n <div className=\"ds-partner-vp__calculator\">\n <h3 className=\"ds-partner-vp__calc-title\">Partner Economics</h3>\n\n {calculator.inputs.map((input) => (\n <div key={input.name} className=\"ds-partner-vp__calc-input\">\n <label className=\"ds-partner-vp__calc-label\">\n {input.label}\n <span className=\"ds-partner-vp__calc-value\">\n {fmtNum(values[input.name], input.prefix, input.suffix)}\n </span>\n </label>\n <Slider\n value={values[input.name]}\n min={input.min ?? 0}\n max={input.max ?? 100}\n onValueChange={(v) => handleChange(input.name, v)}\n />\n </div>\n ))}\n\n <div className=\"ds-partner-vp__calc-results\">\n <div className=\"ds-partner-vp__calc-margin\">\n <span className=\"ds-partner-vp__calc-margin-value\">\n {Math.round(calcOutput.marginPercentage)}%\n </span>\n <span className=\"ds-partner-vp__calc-margin-label\">Margin</span>\n </div>\n <div className=\"ds-partner-vp__calc-metrics\">\n <div className=\"ds-partner-vp__calc-metric\">\n <span className=\"ds-partner-vp__calc-metric-value\">{fmtNum(calcOutput.monthlyRevenue, '$')}</span>\n <span className=\"ds-partner-vp__calc-metric-label\">Monthly Revenue</span>\n </div>\n <div className=\"ds-partner-vp__calc-metric\">\n <span className=\"ds-partner-vp__calc-metric-value\">{fmtNum(calcOutput.monthlyCost, '$')}</span>\n <span className=\"ds-partner-vp__calc-metric-label\">Monthly Cost</span>\n </div>\n <div className=\"ds-partner-vp__calc-metric\">\n <span className=\"ds-partner-vp__calc-metric-value ds-partner-vp__calc-metric-value--positive\">{fmtNum(calcOutput.monthlyMargin, '$')}</span>\n <span className=\"ds-partner-vp__calc-metric-label\">Monthly Profit</span>\n </div>\n <div className=\"ds-partner-vp__calc-metric\">\n <span className=\"ds-partner-vp__calc-metric-value\">{fmtNum(calcOutput.annualRevenue, '$')}</span>\n <span className=\"ds-partner-vp__calc-metric-label\">Annual Revenue</span>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n\n {/* Differentiators */}\n {differentiators && differentiators.length > 0 && (\n <div className=\"ds-partner-vp__diff\">\n <h3 className=\"ds-partner-vp__diff-title\">{differentiatorTitle}</h3>\n <table className=\"ds-partner-vp__diff-table\">\n <thead>\n <tr>\n <th>Dimension</th>\n <th>{differentiatorBuildLabel}</th>\n <th>{differentiatorPartnerLabel}</th>\n </tr>\n </thead>\n <tbody>\n {differentiators.map((d, i) => (\n <tr key={i}>\n <td className=\"ds-partner-vp__diff-dimension\">{d.dimension}</td>\n <td className=\"ds-partner-vp__diff-build\">{d.buildInHouse}</td>\n <td className=\"ds-partner-vp__diff-sm\">{d.withPartner}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n <div className=\"ds-partner-vp__cta\">\n <Button variant=\"primary\" size=\"lg\" asChild>\n <OutboundLink href={cta.href} context=\"partner-value-prop-cta\" openInNewTab={false}>{cta.label}</OutboundLink>\n </Button>\n </div>\n </SectionShell>\n );\n },\n);\n\nPartnerValueProp.displayName = 'PartnerValueProp';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ComparisonTable.css';\n\n/* ============================================================================\n COMPARISON TABLE — Side-by-side value/feature comparison\n ============================================================================ */\n\nexport interface ComparisonColumn {\n /** Column heading (e.g. \"Hiring SDRs\", \"SalesMind\") */\n label: string;\n /** Whether this column is highlighted as the recommended option */\n highlighted?: boolean;\n /** Optional badge above the column header */\n badge?: string;\n}\n\nexport interface ComparisonRow {\n /** Row label (the thing being compared) */\n label: string;\n /** Values for each column, in the same order as columns */\n values: (string | React.ReactNode)[];\n /** Optional category divider — if true, renders as a category header */\n isCategory?: boolean;\n}\n\nexport interface ComparisonTableProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Column definitions */\n columns: ComparisonColumn[];\n /** Row data */\n rows: ComparisonRow[];\n /** Optional table caption for accessibility */\n caption?: string;\n}\n\nexport const ComparisonTable = React.forwardRef<HTMLDivElement, ComparisonTableProps>(\n ({ columns, rows, caption, className, ...props }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-comparison-table', className)} {...props}>\n <div className=\"ds-comparison-table__scroll\">\n <table className=\"ds-comparison-table__table\" role=\"table\">\n {caption && <caption className=\"ds-comparison-table__caption\">{caption}</caption>}\n <thead className=\"ds-comparison-table__head\">\n <tr>\n <th className=\"ds-comparison-table__corner\" scope=\"col\">\n <span className=\"ds-visually-hidden\">Feature</span>\n </th>\n {columns.map((col, idx) => (\n <th\n key={idx}\n scope=\"col\"\n className={clsx(\n 'ds-comparison-table__col-header',\n col.highlighted && 'ds-comparison-table__col-header--highlighted',\n )}\n >\n {col.badge && (\n <span className=\"ds-comparison-table__col-badge\">{col.badge}</span>\n )}\n <span className=\"ds-comparison-table__col-label\">{col.label}</span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"ds-comparison-table__body\">\n {rows.map((row, rowIdx) =>\n row.isCategory ? (\n <tr key={rowIdx} className=\"ds-comparison-table__category-row\">\n <td\n colSpan={columns.length + 1}\n className=\"ds-comparison-table__category\"\n >\n {row.label}\n </td>\n </tr>\n ) : (\n <tr key={rowIdx} className=\"ds-comparison-table__row\">\n <td className=\"ds-comparison-table__row-label\">{row.label}</td>\n {row.values.map((val, colIdx) => (\n <td\n key={colIdx}\n className={clsx(\n 'ds-comparison-table__cell',\n columns[colIdx]?.highlighted &&\n 'ds-comparison-table__cell--highlighted',\n )}\n >\n {val}\n </td>\n ))}\n </tr>\n ),\n )}\n </tbody>\n </table>\n </div>\n </div>\n );\n },\n);\n\nComparisonTable.displayName = 'ComparisonTable';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './GuaranteeHighlight.css';\n\n/* ============================================================================\n GUARANTEE HIGHLIGHT — Prominent guarantee/commitment callout\n ============================================================================ */\n\nexport interface GuaranteeHighlightProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The guarantee statement (e.g. \"10+ qualified meetings per month\") */\n guarantee: string;\n /** Supporting detail or condition text */\n detail?: string;\n /** Optional fine print (e.g. \"Guarantee activates after onboarding alignment\") */\n finePrint?: string;\n /** Visual variant */\n variant?: 'default' | 'brand' | 'minimal';\n /** Optional icon — pass a React node (e.g. an SVG) */\n icon?: React.ReactNode;\n}\n\nexport const GuaranteeHighlight = React.forwardRef<HTMLDivElement, GuaranteeHighlightProps>(\n (\n {\n guarantee,\n detail,\n finePrint,\n variant = 'default',\n icon,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-guarantee',\n `ds-guarantee--${variant}`,\n className,\n )}\n {...props}\n >\n {icon && <div className=\"ds-guarantee__icon\">{icon}</div>}\n <div className=\"ds-guarantee__content\">\n <p className=\"ds-guarantee__statement\">{guarantee}</p>\n {detail && <p className=\"ds-guarantee__detail\">{detail}</p>}\n {finePrint && <p className=\"ds-guarantee__fine-print\">{finePrint}</p>}\n </div>\n </div>\n );\n },\n);\n\nGuaranteeHighlight.displayName = 'GuaranteeHighlight';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ROICalculator.css';\n\n/* ============================================================================\n ROI CALCULATOR — Interactive cost comparison calculator\n ============================================================================ */\n\nexport interface ROIComparisonItem {\n /** Label (e.g. \"Hiring 3 SDRs\") */\n label: string;\n /** Monthly cost string */\n monthlyCost: string;\n /** Annual cost string */\n annualCost: string;\n /** Whether this item is the \"winner\" (highlighted) */\n isRecommended?: boolean;\n /** Additional context text */\n context?: string;\n}\n\nexport interface ROICalculatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Section eyebrow text */\n eyebrow?: string;\n /** Section title */\n title?: string;\n /** Comparison items to display */\n items: ROIComparisonItem[];\n /** Optional summary text below the comparison */\n summary?: React.ReactNode;\n /** Optional savings callout (e.g. \"Save $120,000/year\") */\n savingsCallout?: string;\n}\n\nexport const ROICalculator = React.forwardRef<HTMLDivElement, ROICalculatorProps>(\n (\n {\n eyebrow,\n title,\n items,\n summary,\n savingsCallout,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={clsx('ds-roi-calculator', className)} {...props}>\n {/* Header */}\n {(eyebrow || title) && (\n <div className=\"ds-roi-calculator__header\">\n {eyebrow && <span className=\"ds-roi-calculator__eyebrow\">{eyebrow}</span>}\n {title && <h3 className=\"ds-roi-calculator__title\">{title}</h3>}\n </div>\n )}\n\n {/* Comparison cards */}\n <div className=\"ds-roi-calculator__grid\">\n {items.map((item, idx) => (\n <div\n key={idx}\n className={clsx(\n 'ds-roi-calculator__item',\n item.isRecommended && 'ds-roi-calculator__item--recommended',\n )}\n >\n {item.isRecommended && (\n <span className=\"ds-roi-calculator__item-badge\">Your Cost</span>\n )}\n <span className=\"ds-roi-calculator__item-label\">{item.label}</span>\n <span className=\"ds-roi-calculator__item-cost\">{item.monthlyCost}</span>\n <span className=\"ds-roi-calculator__item-annual\">{item.annualCost}</span>\n {item.context && (\n <span className=\"ds-roi-calculator__item-context\">{item.context}</span>\n )}\n </div>\n ))}\n </div>\n\n {/* Savings callout */}\n {savingsCallout && (\n <div className=\"ds-roi-calculator__savings\">{savingsCallout}</div>\n )}\n\n {/* Summary */}\n {summary && (\n <div className=\"ds-roi-calculator__summary\">{summary}</div>\n )}\n </div>\n );\n },\n);\n\nROICalculator.displayName = 'ROICalculator';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ICPFilter.css';\n\n/* ============================================================================\n ICP FILTER — \"Who This Is For / Not For\" qualification block\n ============================================================================ */\n\nexport interface ICPFilterItem {\n /** Description text */\n text: string;\n}\n\nexport interface ICPFilterProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Items describing who this IS for */\n qualifiedItems: ICPFilterItem[];\n /** Items describing who this is NOT for */\n disqualifiedItems: ICPFilterItem[];\n /** Heading for the qualified column */\n qualifiedHeading?: string;\n /** Heading for the disqualified column */\n disqualifiedHeading?: string;\n /** Layout variant */\n variant?: 'columns' | 'stacked';\n}\n\nexport const ICPFilter = React.forwardRef<HTMLDivElement, ICPFilterProps>(\n (\n {\n qualifiedItems,\n disqualifiedItems,\n qualifiedHeading = 'This Is For You If',\n disqualifiedHeading = 'This Is Not For You If',\n variant = 'columns',\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-icp-filter',\n `ds-icp-filter--${variant}`,\n className,\n )}\n {...props}\n >\n {/* Qualified column */}\n <div className=\"ds-icp-filter__column ds-icp-filter__column--qualified\">\n <h4 className=\"ds-icp-filter__heading ds-icp-filter__heading--qualified\">\n {qualifiedHeading}\n </h4>\n <ul className=\"ds-icp-filter__list\">\n {qualifiedItems.map((item, idx) => (\n <li key={idx} className=\"ds-icp-filter__item ds-icp-filter__item--qualified\">\n <span className=\"ds-icp-filter__icon\" aria-hidden=\"true\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </span>\n <span className=\"ds-icp-filter__text\">{item.text}</span>\n </li>\n ))}\n </ul>\n </div>\n\n {/* Disqualified column */}\n <div className=\"ds-icp-filter__column ds-icp-filter__column--disqualified\">\n <h4 className=\"ds-icp-filter__heading ds-icp-filter__heading--disqualified\">\n {disqualifiedHeading}\n </h4>\n <ul className=\"ds-icp-filter__list\">\n {disqualifiedItems.map((item, idx) => (\n <li key={idx} className=\"ds-icp-filter__item ds-icp-filter__item--disqualified\">\n <span className=\"ds-icp-filter__icon\" aria-hidden=\"true\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </span>\n <span className=\"ds-icp-filter__text\">{item.text}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n },\n);\n\nICPFilter.displayName = 'ICPFilter';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ObjectionFAQ.css';\n\n/* ============================================================================\n OBJECTION FAQ — Strategic objection-handling FAQ module\n ============================================================================ */\n\nexport interface ObjectionItem {\n /** The objection/question (e.g. \"Is this just LinkedIn automation?\") */\n question: string;\n /** The strategic answer/reframe */\n answer: string;\n /** Optional tag/category (e.g. \"Safety\", \"Quality\", \"Process\") */\n tag?: string;\n}\n\nexport interface ObjectionFAQProps extends React.HTMLAttributes<HTMLDivElement> {\n /** List of objection items */\n items: ObjectionItem[];\n /** Section title */\n title?: string;\n /** Section subtitle */\n subtitle?: string;\n /** Whether multiple items can be open simultaneously */\n allowMultiple?: boolean;\n /** Initial open item index */\n defaultOpenIndex?: number;\n}\n\nexport const ObjectionFAQ = React.forwardRef<HTMLDivElement, ObjectionFAQProps>(\n (\n {\n items,\n title,\n subtitle,\n allowMultiple = false,\n defaultOpenIndex,\n className,\n ...props\n },\n ref,\n ) => {\n const [openItems, setOpenItems] = React.useState<Set<number>>(() => {\n const initial = new Set<number>();\n if (defaultOpenIndex !== undefined) initial.add(defaultOpenIndex);\n return initial;\n });\n\n const toggle = React.useCallback(\n (index: number) => {\n setOpenItems((prev) => {\n const next = new Set(prev);\n if (next.has(index)) {\n next.delete(index);\n } else {\n if (!allowMultiple) next.clear();\n next.add(index);\n }\n return next;\n });\n },\n [allowMultiple],\n );\n\n return (\n <div ref={ref} className={clsx('ds-objection-faq', className)} {...props}>\n {/* Header */}\n {(title || subtitle) && (\n <div className=\"ds-objection-faq__header\">\n {title && <h3 className=\"ds-objection-faq__title\">{title}</h3>}\n {subtitle && <p className=\"ds-objection-faq__subtitle\">{subtitle}</p>}\n </div>\n )}\n\n {/* Items */}\n <div className=\"ds-objection-faq__list\" role=\"list\">\n {items.map((item, idx) => {\n const isOpen = openItems.has(idx);\n return (\n <div\n key={idx}\n className={clsx(\n 'ds-objection-faq__item',\n isOpen && 'ds-objection-faq__item--open',\n )}\n data-state={isOpen ? 'open' : 'closed'}\n role=\"listitem\"\n >\n <button\n type=\"button\"\n className=\"ds-objection-faq__trigger\"\n onClick={() => toggle(idx)}\n aria-expanded={isOpen}\n >\n <div className=\"ds-objection-faq__trigger-content\">\n {item.tag && (\n <span className=\"ds-objection-faq__tag\">{item.tag}</span>\n )}\n <span className=\"ds-objection-faq__question\">{item.question}</span>\n </div>\n <svg\n className=\"ds-objection-faq__chevron\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n <div\n className=\"ds-objection-faq__answer-wrapper\"\n hidden={!isOpen}\n >\n <p className=\"ds-objection-faq__answer\">{item.answer}</p>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\n\nObjectionFAQ.displayName = 'ObjectionFAQ';\n"]}