@salesmind-ai/design-system 0.7.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AuroraVoid/AuroraVoid.tsx","../src/components/Vignette/Vignette.tsx","../src/components/GridOverlay/GridOverlay.tsx","../src/components/StickyActionBar/StickyActionBar.tsx","../src/components/BookingEmbed/BookingEmbed.tsx","../src/components/BookingEmbed/useGhlMessages.ts","../src/components/ProblemAgitation/ProblemAgitation.tsx","../src/components/CaseStudyCard/CaseStudyCard.tsx","../src/components/BeforeAfterBlock/BeforeAfterBlock.tsx","../src/components/CompetitorDiff/CompetitorDiff.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/PricingCard/PricingCard.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","../src/components/KPIPanel/KPIPanel.tsx","../src/components/HeroComposition/HeroComposition.tsx"],"names":["forwardRef","clsx","jsx","jsxs","useEffect","useRef","useState","React","useMemo","useCallback","STATUS_LABELS"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './AuroraVoid.css';\n\nexport type AuroraVoidIntensity = 'light' | 'base' | 'heavy';\n\nexport interface AuroraVoidProps {\n /**\n * Controls the intensity of the aurora gradients and vignette overlay.\n * @default 'base'\n */\n intensity?: AuroraVoidIntensity;\n /**\n * When true, animates the aurora layer via a slow 30s transform rotation.\n * Overridden by `static` prop and `prefers-reduced-motion`.\n * @default true\n */\n animated?: boolean;\n /**\n * When true, disables all animation regardless of `animated`.\n * Useful for screenshots, tests, or reduced-motion contexts.\n * @default false\n */\n static?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Child content rendered above the aurora layers. */\n children?: React.ReactNode;\n}\n\n/**\n * AuroraVoid — v2 page-level aurora background primitive.\n *\n * Renders a 3-gradient aurora trio (pink/gold/plum) + vignette overlay\n * on a single full-frame absolutely-positioned div. Intended to sit behind\n * all page content on hero and marketing surfaces.\n *\n * Implementation:\n * - Single-element approach with stacked radial-gradient backgrounds\n * - Animation via transform:rotate only (not gradient property animation)\n * - prefers-reduced-motion: kills animation, holds static composition\n *\n * @since v2\n * @replaces VoidBackground\n */\nconst AuroraVoid = forwardRef<HTMLDivElement, AuroraVoidProps>(\n (\n {\n intensity = 'base',\n animated = true,\n static: isStatic = false,\n className,\n children,\n },\n ref,\n ) => {\n const isAnimated = animated && !isStatic;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-aurora-void',\n `ds-aurora-void--intensity-${intensity}`,\n isAnimated && 'ds-aurora-void--animated',\n isStatic && 'ds-aurora-void--static',\n className,\n )}\n aria-hidden=\"true\"\n >\n {/* Aurora gradient layer */}\n <div className=\"ds-aurora-void__aurora\" />\n\n {/* Vignette overlay */}\n <div className=\"ds-aurora-void__vignette\" />\n\n {/* Content layer (above aurora) */}\n {children && (\n <div\n style={{ position: 'relative', zIndex: 1 }}\n aria-hidden={undefined}\n >\n {children}\n </div>\n )}\n </div>\n );\n },\n);\n\nAuroraVoid.displayName = 'AuroraVoid';\n\nexport { AuroraVoid };\n","import React, { forwardRef, ElementType } from 'react';\nimport clsx from 'clsx';\nimport './Vignette.css';\n\nexport type VignetteIntensity = 'light' | 'base' | 'heavy';\n\nexport interface VignetteProps {\n /**\n * Controls vignette strength (maps to token --vignette-light/-base/-heavy).\n * @default 'base'\n */\n intensity?: VignetteIntensity;\n /**\n * Polymorphic element type.\n * @default 'div'\n */\n as?: ElementType;\n /** Additional CSS class names. */\n className?: string;\n /** Optional children rendered inside the vignette element. */\n children?: React.ReactNode;\n}\n\n/**\n * Vignette — v2 page-level radial-gradient dark mask primitive.\n *\n * Renders a full-frame overlay using --vignette-* tokens.\n * Usually composed behind content and under AuroraVoid.\n *\n * @since v2\n */\nconst Vignette = forwardRef<HTMLDivElement, VignetteProps>(\n ({ intensity = 'base', as: Tag = 'div', className, children }, ref) => {\n return (\n <Tag\n ref={ref}\n className={clsx(\n 'ds-vignette',\n `ds-vignette--${intensity}`,\n className,\n )}\n aria-hidden=\"true\"\n >\n {children}\n </Tag>\n );\n },\n);\n\nVignette.displayName = 'Vignette';\n\nexport { Vignette };\n","import { forwardRef, CSSProperties } from 'react';\nimport clsx from 'clsx';\nimport './GridOverlay.css';\n\nexport type GridOverlayCell = '64' | '120';\n\nexport interface GridOverlayProps {\n /**\n * Grid cell size.\n * - '64' = 64px (web layout grid)\n * - '120' = 120px (social/large format grid)\n * @default '64'\n */\n cell?: GridOverlayCell;\n /**\n * Opacity of the grid lines. Applied via inline style.\n * @default 0.04\n */\n opacity?: number;\n /**\n * When true, applies an edge-fade mask to soften the grid perimeter.\n * @default true\n */\n mask?: boolean;\n /** Additional CSS class names. */\n className?: string;\n}\n\n/**\n * GridOverlay — v2 CSS grid pattern overlay primitive.\n *\n * Renders subtle grid lines as background-image linear-gradients.\n * Supports 64px web grid and 120px social/large-format grid.\n * Designed as a debugging/design-aid layer and used in social templates.\n *\n * @since v2\n */\nconst GridOverlay = forwardRef<HTMLDivElement, GridOverlayProps>(\n ({ cell = '64', opacity = 0.04, mask = true, className }, ref) => {\n const style: CSSProperties = {};\n if (opacity !== 0.04) {\n style.opacity = opacity;\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-grid-overlay',\n `ds-grid-overlay--cell-${cell}`,\n mask && 'ds-grid-overlay--masked',\n className,\n )}\n style={style}\n aria-hidden=\"true\"\n />\n );\n },\n);\n\nGridOverlay.displayName = 'GridOverlay';\n\nexport { GridOverlay };\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, useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { CalendarOff } from 'lucide-react';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useAnalytics } from '../../web/analytics/use-analytics';\nimport { useGhlMessages, type BookingCompletePayload } from './useGhlMessages';\nimport { Button } from '../Button/Button';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport { bookingEmbedMessages, commonMessages } from '../../i18n/messages';\nimport './BookingEmbed.css';\n\ntype Status = 'loading' | 'ready' | 'error';\n\nexport interface BookingEmbedProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onError'> {\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 /** Reserve initial height to prevent CLS */\n expectedHeight?: number;\n /** Called on load timeout or load error */\n onError?: (reason: 'timeout' | 'load-error') => void;\n /** Called when iframe successfully loads or first setHeight arrives */\n onReady?: () => void;\n /** Custom analytics callback (e.g., for PostHog) */\n onEvent?: (name: string, props: Record<string, string | number | boolean | undefined>) => void;\n /** Show retry button on error */\n showRetry?: boolean;\n /** Max retry attempts before showing fallback link */\n maxRetries?: number;\n /** TEST/STORY ONLY: override 8000ms timeout */\n timeoutMs?: number;\n}\n\n/**\n * A responsive container for embedding booking widgets (like Go High Level or Calendly).\n * Includes loading states, status state machine, 8s timeout, 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 expectedHeight,\n onError,\n onReady,\n onEvent,\n showRetry = true,\n maxRetries = 3,\n timeoutMs,\n className,\n style,\n ...props\n },\n ref\n ) => {\n const [isLoaded, setIsLoaded] = useState(!lazyLoad);\n const [status, setStatus] = useState<Status>('loading');\n const [dynamicHeight, setDynamicHeight] = useState<number | null>(null);\n const [retryCount, setRetryCount] = useState(0);\n const [iframeKey, setIframeKey] = useState(0);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const timeoutRef = useRef<number | null>(null);\n const readyCalledRef = useRef(false);\n const retryTimerRef = useRef<number | null>(null);\n const { track } = useAnalytics();\n const intl = useIntl();\n\n const handleTrack = useCallback((event: string, trackProps: Record<string, string | number | boolean | undefined> = {}) => {\n onEvent?.(event, trackProps);\n track(event, trackProps);\n }, [onEvent, track]);\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 handleTrack('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, handleTrack]);\n\n // 8s timeout: starts whenever status is 'loading', cleared when ready or error\n useEffect(() => {\n if (status !== 'loading') return;\n const ms = timeoutMs ?? 8000;\n const id = window.setTimeout(() => {\n setStatus('error');\n onError?.('timeout');\n }, ms);\n timeoutRef.current = id;\n return () => {\n window.clearTimeout(id);\n timeoutRef.current = null;\n };\n }, [status, timeoutMs, onError]);\n\n const handleReady = useCallback(() => {\n if (readyCalledRef.current) return;\n readyCalledRef.current = true;\n setStatus((prev) => (prev === 'loading' ? 'ready' : prev));\n if (timeoutRef.current !== null) {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n onReady?.();\n }, [onReady]);\n\n const handleRetry = useCallback(() => {\n if (retryCount >= maxRetries) return;\n const delay = 1000 * Math.pow(2, retryCount); // 1s, 2s, 4s\n setRetryCount((c) => c + 1);\n readyCalledRef.current = false;\n setStatus('loading');\n retryTimerRef.current = window.setTimeout(() => {\n setIframeKey((k) => k + 1);\n }, delay);\n }, [retryCount, maxRetries]);\n\n // Cleanup retry timer on unmount\n useEffect(() => () => {\n if (retryTimerRef.current !== null) window.clearTimeout(retryTimerRef.current);\n }, []);\n\n const handleSetHeight = useCallback((height: number) => {\n setDynamicHeight(height);\n handleReady();\n }, [handleReady]);\n\n const handleBookingComplete = useCallback((payload: BookingCompletePayload) => {\n containerRef.current?.dispatchEvent(\n new CustomEvent('booking-complete', {\n detail: {\n date: payload.date,\n time: payload.time,\n timezone: payload.timezone,\n },\n bubbles: true,\n }),\n );\n }, []);\n\n // Unified GHL postMessage handling with origin guard for both message types\n useGhlMessages({\n origin: 'https://meet.sales-mind.ai',\n onSetHeight: handleSetHeight,\n onBookingComplete: handleBookingComplete,\n });\n\n const handleIframeLoad = useCallback(() => {\n handleReady();\n handleTrack('booking_embed_loaded', { url });\n }, [handleReady, handleTrack, url]);\n\n const containerStyle: Record<string, string | number | undefined> = {\n '--embed-aspect-ratio': aspectRatio,\n ...(dynamicHeight !== null ? { '--embed-dynamic-height': `${dynamicHeight}px` } : {}),\n ...(expectedHeight !== undefined ? { '--embed-min-height': `${expectedHeight}px` } : {}),\n ...style,\n };\n\n /** Ref callback merging forwarded ref with local containerRef */\n const handleRef = useCallback((node: HTMLDivElement | null) => {\n containerRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as { current: HTMLDivElement | null }).current = node;\n }\n }, [ref]);\n\n return (\n <div\n ref={handleRef}\n className={clsx(\n 'ds-booking-embed',\n dynamicHeight !== null && 'ds-booking-embed--dynamic-height',\n status === 'loading' && 'ds-booking-embed--loading',\n status === 'ready' && 'ds-booking-embed--ready',\n status === 'error' && 'ds-booking-embed--error',\n className,\n )}\n style={containerStyle}\n aria-busy={status === 'loading' || undefined}\n {...props}\n >\n {status !== 'ready' && status !== 'error' && (\n <div className=\"ds-booking-embed__skeleton\">\n <div className=\"ds-booking-embed__spinner\"></div>\n <p>\n <FormattedMessage {...bookingEmbedMessages.loading} />\n </p>\n </div>\n )}\n\n {status === 'error' && (\n <div className=\"ds-booking-embed__error\" role=\"alert\">\n <div className=\"ds-booking-embed__error-content\">\n <CalendarOff className=\"ds-booking-embed__error-icon\" aria-hidden />\n <h3 className=\"ds-booking-embed__error-title\">\n {intl.formatMessage(bookingEmbedMessages.errorTitle)}\n </h3>\n <p className=\"ds-booking-embed__error-description\">\n {intl.formatMessage(bookingEmbedMessages.errorDescription)}\n </p>\n {showRetry && retryCount < maxRetries ? (\n <Button variant=\"secondary\" onClick={handleRetry}>\n <FormattedMessage {...commonMessages.retry} />\n </Button>\n ) : (\n <OutboundLink\n href={url}\n context=\"booking-embed-fallback\"\n openInNewTab\n className=\"ds-button ds-button--outline ds-button--md\"\n >\n <span className=\"ds-button__content\">\n <FormattedMessage {...bookingEmbedMessages.openInNewTab} />\n </span>\n </OutboundLink>\n )}\n </div>\n </div>\n )}\n\n {isLoaded && (\n <iframe\n key={iframeKey}\n src={url}\n title={title}\n className={clsx(\n 'ds-booking-embed__iframe',\n status === 'ready' && 'ds-booking-embed__iframe--loaded',\n )}\n onLoad={handleIframeLoad}\n frameBorder=\"0\"\n />\n )}\n </div>\n );\n },\n);\n\nBookingEmbed.displayName = 'BookingEmbed';\n","import { useEffect, useRef } from 'react';\n\nexport interface BookingCompletePayload {\n date?: string;\n time?: string;\n timezone?: string;\n}\n\nexport interface UseGhlMessagesOptions {\n origin: string;\n onSetHeight?: (height: number) => void;\n onBookingComplete?: (payload: BookingCompletePayload) => void;\n /** Throttle setHeight calls. Default 200ms. */\n throttleMs?: number;\n}\n\nfunction parseSetHeight(data: unknown): { height: number } | null {\n if (!Array.isArray(data) || data[0] !== 'highlevel.setHeight') return null;\n const payload = data[1];\n if (typeof payload !== 'object' || payload === null) return null;\n const height = (payload as Record<string, unknown>).height;\n if (typeof height !== 'number' || !Number.isFinite(height) || height < 0) return null;\n return { height: Math.min(height, 2000) };\n}\n\nfunction parseBookingComplete(data: unknown): BookingCompletePayload | null {\n if (!Array.isArray(data) || data[0] !== 'msgsndr-booking-complete') return null;\n const raw =\n typeof data[1] === 'object' && data[1] !== null\n ? (data[1] as Record<string, unknown>)\n : {};\n const payload: BookingCompletePayload = {};\n if (typeof raw.date === 'string') payload.date = raw.date;\n if (typeof raw.time === 'string') payload.time = raw.time;\n if (typeof raw.timezone === 'string') payload.timezone = raw.timezone;\n return payload;\n}\n\nexport function useGhlMessages(options: UseGhlMessagesOptions): void {\n const { origin, onSetHeight, onBookingComplete, throttleMs = 200 } = options;\n const lastHeightUpdateRef = useRef(0);\n const onSetHeightRef = useRef(onSetHeight);\n const onBookingCompleteRef = useRef(onBookingComplete);\n\n useEffect(() => {\n onSetHeightRef.current = onSetHeight;\n onBookingCompleteRef.current = onBookingComplete;\n }, [onSetHeight, onBookingComplete]);\n\n useEffect(() => {\n const handler = (event: MessageEvent) => {\n // SECURITY: Origin guard for ALL messages\n if (event.origin !== origin) return;\n\n const setHeightResult = parseSetHeight(event.data);\n if (setHeightResult) {\n const now = performance.now();\n if (now - lastHeightUpdateRef.current >= throttleMs) {\n lastHeightUpdateRef.current = now;\n onSetHeightRef.current?.(setHeightResult.height);\n }\n return;\n }\n\n const bookingCompleteResult = parseBookingComplete(event.data);\n if (bookingCompleteResult) {\n onBookingCompleteRef.current?.(bookingCompleteResult);\n }\n };\n\n window.addEventListener('message', handler);\n return () => window.removeEventListener('message', handler);\n }, [origin, throttleMs]);\n}\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 } 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 } 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 { 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 './ValueAnchor.css';\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 <input\n type=\"range\"\n className=\"ds-slider\"\n value={values[input.name]}\n min={input.min ?? 0}\n max={input.max ?? 100}\n step={input.step ?? 1}\n onChange={(e) => handleChange(input.name, Number(e.target.value))}\n aria-label={input.label}\n />\n ) : (\n <input\n type=\"number\"\n className=\"ds-text-field\"\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 './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 <input\n type=\"range\"\n value={values[input.name]}\n min={input.min ?? 0}\n max={input.max ?? 100}\n aria-label={input.label}\n onChange={(e) => handleChange(input.name, Number(e.target.value))}\n />\n </label>\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 './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 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","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Card } from '../Card/Card';\nimport './KPIPanel.css';\n\n/* ============================================================================\n KPI CELL — individual metric definition\n ============================================================================ */\n\nexport interface KPITrend {\n /** Direction of the trend arrow. */\n direction: 'up' | 'down';\n /** Formatted delta string, e.g. \"16%\", \"+$1.2M\". */\n delta: string;\n /**\n * Semantic valence — determines colour of the trend indicator.\n * Defaults to green for 'up', red for 'down' when not specified.\n */\n valence?: 'positive' | 'negative' | 'neutral';\n}\n\nexport interface KPICell {\n /** Tiny UPPERCASE metric label, e.g. \"LEADS\". */\n label: string;\n /** Large formatted value, e.g. \"1,248\", \"$3.4M\". */\n value: string;\n /** Optional trend indicator with direction, delta and semantic valence. */\n trend?: KPITrend;\n /**\n * D8 provenance string — data source footnote rendered below the trend.\n * @example \"7-day rolling avg\"\n * @since v2\n */\n provenance?: string;\n}\n\n/* ============================================================================\n KPIPanel — component\n ============================================================================ */\n\nexport interface KPIPanelProps {\n /**\n * Array of KPI cell definitions. Renders in a responsive CSS grid:\n * - mobile: 1 column\n * - md (≥768px): 2 columns\n * - lg (≥1024px): 4 columns\n *\n * Default cells mirror Figma Showcase 05.\n */\n cells?: KPICell[];\n /** Additional CSS class names. */\n className?: string;\n}\n\n/** Default KPI cells (Figma Showcase 05 data — fictional metrics). */\nconst DEFAULT_CELLS: KPICell[] = [\n {\n label: 'Leads',\n value: '1,248',\n trend: { direction: 'up', delta: '16%', valence: 'positive' },\n provenance: '7-day rolling avg',\n },\n {\n label: 'Replies',\n value: '418',\n trend: { direction: 'up', delta: '22%', valence: 'positive' },\n },\n {\n label: 'Reply Rate',\n value: '42%',\n trend: { direction: 'up', delta: '8.4 pts', valence: 'positive' },\n },\n {\n label: 'Pipeline',\n value: '$3.4M',\n trend: { direction: 'up', delta: '31%', valence: 'positive' },\n provenance: 'Qualified opps only',\n },\n];\n\n/**\n * KPIPanel — 4-cell composed metric panel with provenance (D8).\n *\n * Composes 4 Card v2 instances (tier=1) in a responsive CSS grid.\n * Each cell shows a label, value, optional trend indicator, and optional provenance.\n *\n * @example\n * <KPIPanel />\n * <KPIPanel cells={[{ label: 'MRR', value: '$24K', trend: { direction: 'up', delta: '12%' } }]} />\n */\nexport const KPIPanel = forwardRef<HTMLDivElement, KPIPanelProps>(\n ({ cells = DEFAULT_CELLS, className }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-kpi-panel', className)}>\n {cells.map((cell, i) => {\n const valence =\n cell.trend?.valence ??\n (cell.trend?.direction === 'up' ? 'positive' : 'negative');\n\n return (\n <Card\n key={i}\n tier={1}\n className=\"ds-kpi-panel__cell\"\n >\n <span className=\"ds-kpi-panel__label\">{cell.label}</span>\n <span className=\"ds-kpi-panel__value\">{cell.value}</span>\n {cell.trend && (\n <span\n className={clsx(\n 'ds-kpi-panel__trend',\n `ds-kpi-panel__trend--${valence}`,\n )}\n >\n <span\n className=\"ds-kpi-panel__trend-arrow\"\n aria-hidden=\"true\"\n >\n {cell.trend.direction === 'up' ? '↑' : '↓'}\n </span>\n <span className=\"ds-kpi-panel__trend-delta\">\n {cell.trend.delta}\n </span>\n </span>\n )}\n {cell.provenance && (\n <span className=\"ds-kpi-panel__provenance\">\n {cell.provenance}\n </span>\n )}\n </Card>\n );\n })}\n </div>\n );\n },\n);\n\nKPIPanel.displayName = 'KPIPanel';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { AuroraVoid } from '../AuroraVoid/AuroraVoid';\nimport { Vignette } from '../Vignette/Vignette';\nimport { GridOverlay } from '../GridOverlay/GridOverlay';\nimport { KPIPanel } from '../KPIPanel/KPIPanel';\nimport type { KPIPanelProps } from '../KPIPanel/KPIPanel';\nimport './HeroComposition.css';\n\n/* ============================================================================\n D7 — Fictional brands ONLY in demo data\n D5 — Headline tone variants: sentence-case (default) vs shouty (all-caps)\n C3 — Anton Drop-Cap Hero signature approved finalist\n ============================================================================ */\n\nexport interface HeroCompositionProps {\n /**\n * Headline lines. The first character of the first line receives the\n * C3 Anton drop-cap treatment (`::first-letter`).\n *\n * @example ['Pipeline that runs', 'while you sleep']\n * @default ['Pipeline that runs', 'while you sleep']\n */\n headline?: string[];\n /**\n * Body copy rendered below the headline.\n */\n subline?: string;\n /**\n * Optional eyebrow label rendered above the headline (all-caps).\n * @example 'PIPELINE OPERATING SYSTEM'\n */\n eyebrow?: string;\n /**\n * KPI cells passed directly to the KPIPanel in the right column.\n * Defaults to KPIPanel's own defaults (Figma Showcase 05 data).\n */\n metrics?: KPIPanelProps['cells'];\n /**\n * D5 headline tone variant.\n * - `'sentence'` — normal sentence-case rendering (default)\n * - `'shouty'` — ALL-CAPS via CSS `text-transform: uppercase`\n * @default 'sentence'\n */\n tone?: 'sentence' | 'shouty';\n /** Additional CSS class names. */\n className?: string;\n}\n\n/**\n * HeroComposition — full v2 hero with aurora + grid + Anton drop-cap (C3 finalist).\n *\n * Layer order (back to front):\n * 1. `<AuroraVoid />` — animated aurora background\n * 2. `<Vignette />` — radial-gradient dark mask\n * 3. `<GridOverlay />` — 64px grid lines\n * 4. 2-column content (headline + KPIPanel)\n *\n * **C3 drop-cap signature**: First letter of the first headline line uses\n * `::first-letter` at 5.25em in Anton with aurora-primary colour.\n *\n * @example\n * <HeroComposition\n * eyebrow=\"PIPELINE OPERATING SYSTEM\"\n * headline={['Pipeline that runs', 'while you sleep']}\n * subline=\"Outbound sequences powered by intent signals.\"\n * tone=\"sentence\"\n * />\n */\nexport const HeroComposition = forwardRef<HTMLDivElement, HeroCompositionProps>(\n (\n {\n headline = ['Pipeline that runs', 'while you sleep'],\n subline = 'Outbound sequences powered by intent signals. Replies routed to the right teammate. Always-on revenue motion.',\n eyebrow = 'PIPELINE OPERATING SYSTEM',\n metrics,\n tone = 'sentence',\n className,\n },\n ref,\n ) => {\n const [firstLine, ...restLines] = headline;\n\n return (\n <div ref={ref} className={clsx('ds-hero-composition', className)}>\n {/* Layer 1 — Aurora void background */}\n <AuroraVoid\n intensity=\"base\"\n animated\n className=\"ds-hero-composition__aurora\"\n />\n\n {/* Layer 2 — Vignette overlay */}\n <Vignette\n intensity=\"base\"\n className=\"ds-hero-composition__vignette\"\n />\n\n {/* Layer 3 — Grid overlay */}\n <GridOverlay\n cell=\"64\"\n mask\n className=\"ds-hero-composition__grid\"\n />\n\n {/* Layer 4 — Main content (above background layers) */}\n <div className=\"ds-hero-composition__content\">\n {/* Left column */}\n <div className=\"ds-hero-composition__left\">\n {eyebrow && (\n <p className=\"ds-hero-composition__eyebrow\">{eyebrow}</p>\n )}\n\n <h1\n className={clsx(\n 'ds-hero-composition__headline',\n tone === 'shouty' && 'ds-hero-composition__headline--shouty',\n )}\n >\n {/* C3: first line gets drop-cap treatment via ::first-letter */}\n <span className=\"ds-hero-composition__headline-dropcap\">\n {firstLine}\n </span>\n {restLines.map((line, i) => (\n <span key={i} className=\"ds-hero-composition__headline-line\">\n {line}\n </span>\n ))}\n </h1>\n\n {subline && (\n <p className=\"ds-hero-composition__subline\">{subline}</p>\n )}\n </div>\n\n {/* Right column */}\n <div className=\"ds-hero-composition__right\">\n <KPIPanel cells={metrics} />\n </div>\n </div>\n </div>\n );\n },\n);\n\nHeroComposition.displayName = 'HeroComposition';\n"]}