@salesmind-ai/design-system 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
- package/dist/admin/index.cjs +5 -61
- package/dist/admin/index.css +0 -3918
- package/dist/admin/index.css.map +1 -1
- package/dist/admin/index.d.cts +1 -422
- package/dist/admin/index.d.ts +1 -422
- package/dist/admin/index.js +1 -5
- package/dist/blog/index.cjs +13 -34
- package/dist/blog/index.css +0 -579
- package/dist/blog/index.css.map +1 -1
- package/dist/blog/index.d.cts +1 -54
- package/dist/blog/index.d.ts +1 -54
- package/dist/blog/index.js +5 -6
- package/dist/charts/index.cjs +0 -46
- package/dist/charts/index.d.cts +1 -452
- package/dist/charts/index.d.ts +1 -452
- package/dist/charts/index.js +1 -3
- package/dist/{chunk-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
- package/dist/chunk-27Y5ESMM.js.map +1 -0
- package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
- package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
- package/dist/chunk-3NS6X2R4.cjs.map +1 -0
- package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
- package/dist/chunk-65DTHLVX.cjs.map +1 -0
- package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
- package/dist/chunk-6BUS7RMS.js.map +1 -0
- package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
- package/dist/chunk-6QIQCUYC.cjs.map +1 -0
- package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
- package/dist/chunk-7EUR3AKV.cjs.map +1 -0
- package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
- package/dist/chunk-AMNY5TS3.js.map +1 -0
- package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
- package/dist/chunk-CLXLQCNQ.js.map +1 -0
- package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
- package/dist/chunk-CVLD5RQK.cjs.map +1 -0
- package/dist/chunk-EPD4ZEPY.cjs +344 -0
- package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
- package/dist/chunk-FXYOSA4E.cjs +118 -0
- package/dist/chunk-FXYOSA4E.cjs.map +1 -0
- package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
- package/dist/chunk-GPHQGLR5.cjs.map +1 -0
- package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
- package/dist/chunk-HHQ6J7B6.js.map +1 -0
- package/dist/chunk-JPUJWI7F.cjs +73 -0
- package/dist/chunk-JPUJWI7F.cjs.map +1 -0
- package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
- package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
- package/dist/chunk-KJHPOB3J.js.map +1 -0
- package/dist/chunk-KXVFFEGD.js +60 -0
- package/dist/chunk-KXVFFEGD.js.map +1 -0
- package/dist/chunk-LQB7QLD3.js +288 -0
- package/dist/chunk-LQB7QLD3.js.map +1 -0
- package/dist/chunk-LUD52ZJF.cjs +726 -0
- package/dist/chunk-LUD52ZJF.cjs.map +1 -0
- package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
- package/dist/chunk-MBAG654R.js.map +1 -0
- package/dist/chunk-OMP6FAZ6.cjs +183 -0
- package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
- package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
- package/dist/chunk-PBYRTNQ5.js.map +1 -0
- package/dist/chunk-PYREXCZK.js +679 -0
- package/dist/chunk-PYREXCZK.js.map +1 -0
- package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
- package/dist/chunk-R3ZECV5P.cjs.map +1 -0
- package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
- package/dist/chunk-RSLA2FJN.js.map +1 -0
- package/dist/chunk-S46SKHMD.js +173 -0
- package/dist/chunk-S46SKHMD.js.map +1 -0
- package/dist/chunk-SFXTB7JL.js +190 -0
- package/dist/chunk-SFXTB7JL.js.map +1 -0
- package/dist/chunk-SGYXYMKZ.cjs +214 -0
- package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
- package/dist/chunk-UGKYP6F3.cjs +296 -0
- package/dist/chunk-UGKYP6F3.cjs.map +1 -0
- package/dist/chunk-WB6XDNU7.js +115 -0
- package/dist/chunk-WB6XDNU7.js.map +1 -0
- package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
- package/dist/chunk-WE4QIIVN.cjs.map +1 -0
- package/dist/core/index.cjs +144 -626
- package/dist/core/index.css +178 -3567
- package/dist/core/index.css.map +1 -1
- package/dist/core/index.d.cts +940 -902
- package/dist/core/index.d.ts +940 -902
- package/dist/core/index.js +6 -12
- package/dist/i18n/index.cjs +54 -49
- package/dist/i18n/index.d.cts +46 -11
- package/dist/i18n/index.d.ts +46 -11
- package/dist/i18n/index.js +2 -1
- package/dist/index-BJ8rBqrO.d.cts +1100 -0
- package/dist/index-BxMqCbqE.d.ts +1100 -0
- package/dist/index.cjs +507 -1001
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +6057 -16713
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +306 -21
- package/dist/index.d.ts +306 -21
- package/dist/index.js +274 -39
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +33 -76
- package/dist/marketing/index.css +1896 -3234
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.d.cts +3 -1351
- package/dist/marketing/index.d.ts +3 -1351
- package/dist/marketing/index.js +5 -8
- package/dist/motion/index.cjs +3 -20
- package/dist/motion/index.css +0 -580
- package/dist/motion/index.css.map +1 -1
- package/dist/motion/index.d.cts +1 -37
- package/dist/motion/index.d.ts +1 -37
- package/dist/motion/index.js +1 -2
- package/dist/nav/index.cjs +10 -35
- package/dist/nav/index.css +28 -580
- package/dist/nav/index.css.map +1 -1
- package/dist/nav/index.d.cts +2 -60
- package/dist/nav/index.d.ts +2 -60
- package/dist/nav/index.js +1 -2
- package/dist/report/index.cjs +1166 -175
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +208 -5
- package/dist/report/index.d.ts +208 -5
- package/dist/report/index.js +1141 -3
- package/dist/report/index.js.map +1 -1
- package/dist/sections/index.cjs +8 -10
- package/dist/sections/index.cjs.map +1 -1
- package/dist/sections/index.css +0 -206
- package/dist/sections/index.css.map +1 -1
- package/dist/sections/index.js +2 -4
- package/dist/sections/index.js.map +1 -1
- package/dist/social-media/index.cjs +4 -0
- package/dist/social-media/index.cjs.map +1 -0
- package/dist/social-media/index.d.cts +2 -0
- package/dist/social-media/index.d.ts +2 -0
- package/dist/social-media/index.js +3 -0
- package/dist/social-media/index.js.map +1 -0
- package/dist/social-proof/index.cjs +4 -36
- package/dist/social-proof/index.css +3 -1106
- package/dist/social-proof/index.css.map +1 -1
- package/dist/social-proof/index.d.cts +26 -171
- package/dist/social-proof/index.d.ts +26 -171
- package/dist/social-proof/index.js +1 -5
- package/dist/styles/styles.css +657 -2990
- package/dist/theme/index.cjs +12 -16
- package/dist/theme/index.css +1 -245
- package/dist/theme/index.css.map +1 -1
- package/dist/theme/index.d.cts +4 -1
- package/dist/theme/index.d.ts +4 -1
- package/dist/theme/index.js +2 -2
- package/dist/web/client/index.cjs +10 -10
- package/dist/web/client/index.css +118 -0
- package/dist/web/client/index.css.map +1 -1
- package/dist/web/client/index.js +2 -2
- package/dist/web/index.cjs +10 -10
- package/dist/web/index.css +118 -0
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.js +2 -2
- package/package.json +10 -4
- package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
- package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
- package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
- package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
- package/dist/Select-BdZmK0Lt.d.cts +0 -66
- package/dist/Select-BdZmK0Lt.d.ts +0 -66
- package/dist/chart-types-BGVVO-zl.d.cts +0 -208
- package/dist/chart-types-BGVVO-zl.d.ts +0 -208
- package/dist/charts/index.css +0 -1167
- package/dist/charts/index.css.map +0 -1
- package/dist/chunk-3BAQDW3V.cjs +0 -1207
- package/dist/chunk-3BAQDW3V.cjs.map +0 -1
- package/dist/chunk-3NKRFUAR.js +0 -37
- package/dist/chunk-3NKRFUAR.js.map +0 -1
- package/dist/chunk-3TGSIILM.cjs +0 -201
- package/dist/chunk-3TGSIILM.cjs.map +0 -1
- package/dist/chunk-4GM5BGBN.cjs +0 -801
- package/dist/chunk-4GM5BGBN.cjs.map +0 -1
- package/dist/chunk-5LA3T22E.cjs +0 -562
- package/dist/chunk-5LA3T22E.cjs.map +0 -1
- package/dist/chunk-5SN66B2X.js +0 -2542
- package/dist/chunk-5SN66B2X.js.map +0 -1
- package/dist/chunk-6D22TFLA.cjs.map +0 -1
- package/dist/chunk-6H4DSTXR.js +0 -786
- package/dist/chunk-6H4DSTXR.js.map +0 -1
- package/dist/chunk-6HKQ5ILL.cjs +0 -1624
- package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
- package/dist/chunk-7PX2AZ6Y.js +0 -39
- package/dist/chunk-7PX2AZ6Y.js.map +0 -1
- package/dist/chunk-7UZ5DETZ.js.map +0 -1
- package/dist/chunk-B6AVAX4F.js +0 -1415
- package/dist/chunk-B6AVAX4F.js.map +0 -1
- package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
- package/dist/chunk-BUTQSDQH.js +0 -200
- package/dist/chunk-BUTQSDQH.js.map +0 -1
- package/dist/chunk-C2BCDNAV.js +0 -24
- package/dist/chunk-C2BCDNAV.js.map +0 -1
- package/dist/chunk-CJ2MKVAF.cjs +0 -46
- package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
- package/dist/chunk-E7D6EKJ4.cjs +0 -44
- package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
- package/dist/chunk-ECXBTUH6.cjs.map +0 -1
- package/dist/chunk-FAFAP4L5.js +0 -183
- package/dist/chunk-FAFAP4L5.js.map +0 -1
- package/dist/chunk-G2XGBO5V.cjs +0 -2565
- package/dist/chunk-G2XGBO5V.cjs.map +0 -1
- package/dist/chunk-GQELL2MF.cjs.map +0 -1
- package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
- package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
- package/dist/chunk-HCZW5AJN.cjs +0 -234
- package/dist/chunk-HCZW5AJN.cjs.map +0 -1
- package/dist/chunk-HDVAMYSG.js.map +0 -1
- package/dist/chunk-HN4PHABT.js +0 -126
- package/dist/chunk-HN4PHABT.js.map +0 -1
- package/dist/chunk-LTPTW2US.cjs.map +0 -1
- package/dist/chunk-MDB2WCRQ.cjs +0 -137
- package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
- package/dist/chunk-MQRB634A.cjs +0 -34
- package/dist/chunk-MQRB634A.cjs.map +0 -1
- package/dist/chunk-NN3TUHIH.js +0 -28
- package/dist/chunk-NN3TUHIH.js.map +0 -1
- package/dist/chunk-OWS2KAXZ.js +0 -701
- package/dist/chunk-OWS2KAXZ.js.map +0 -1
- package/dist/chunk-P5BOFE5A.js.map +0 -1
- package/dist/chunk-PUPSK3DI.cjs +0 -216
- package/dist/chunk-PUPSK3DI.cjs.map +0 -1
- package/dist/chunk-Q2MFGYTE.cjs +0 -1449
- package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
- package/dist/chunk-Q75DBVDY.cjs +0 -68
- package/dist/chunk-Q75DBVDY.cjs.map +0 -1
- package/dist/chunk-QALDZ7WQ.js.map +0 -1
- package/dist/chunk-QWE2RNCS.js +0 -1195
- package/dist/chunk-QWE2RNCS.js.map +0 -1
- package/dist/chunk-RQUFZAZ7.js +0 -1608
- package/dist/chunk-RQUFZAZ7.js.map +0 -1
- package/dist/chunk-SICKWUWB.js.map +0 -1
- package/dist/chunk-TCFC7XTB.js +0 -212
- package/dist/chunk-TCFC7XTB.js.map +0 -1
- package/dist/chunk-UTVXGAQP.cjs +0 -2437
- package/dist/chunk-UTVXGAQP.cjs.map +0 -1
- package/dist/chunk-UVEMY3FQ.cjs +0 -717
- package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
- package/dist/chunk-VFJZQQZU.js.map +0 -1
- package/dist/chunk-WH7PYHZY.cjs +0 -35
- package/dist/chunk-WH7PYHZY.cjs.map +0 -1
- package/dist/chunk-WYH4TKS5.js.map +0 -1
- package/dist/chunk-XEX2AEZK.cjs.map +0 -1
- package/dist/chunk-XPTVHPCN.js +0 -2320
- package/dist/chunk-XPTVHPCN.js.map +0 -1
- package/dist/chunk-XWPDRMZG.js +0 -62
- package/dist/chunk-XWPDRMZG.js.map +0 -1
- package/dist/chunk-Y26OHHMX.js.map +0 -1
- package/dist/chunk-YJ6C3EKW.js.map +0 -1
- package/dist/motion-C651Ry6d.d.cts +0 -832
- package/dist/motion-C651Ry6d.d.ts +0 -832
- package/dist/report/index.css +0 -1239
- package/dist/report/index.css.map +0 -1
- /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
- /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
|
@@ -0,0 +1,1100 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { a as SectionShellProps } from './SectionShell-CrgrzWK6.js';
|
|
4
|
+
|
|
5
|
+
type AuroraVoidIntensity = 'light' | 'base' | 'heavy';
|
|
6
|
+
interface AuroraVoidProps {
|
|
7
|
+
/**
|
|
8
|
+
* Controls the intensity of the aurora gradients and vignette overlay.
|
|
9
|
+
* @default 'base'
|
|
10
|
+
*/
|
|
11
|
+
intensity?: AuroraVoidIntensity;
|
|
12
|
+
/**
|
|
13
|
+
* When true, animates the aurora layer via a slow 30s transform rotation.
|
|
14
|
+
* Overridden by `static` prop and `prefers-reduced-motion`.
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
animated?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* When true, disables all animation regardless of `animated`.
|
|
20
|
+
* Useful for screenshots, tests, or reduced-motion contexts.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
static?: boolean;
|
|
24
|
+
/** Additional CSS class names. */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Child content rendered above the aurora layers. */
|
|
27
|
+
children?: React__default.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* AuroraVoid — v2 page-level aurora background primitive.
|
|
31
|
+
*
|
|
32
|
+
* Renders a 3-gradient aurora trio (pink/gold/plum) + vignette overlay
|
|
33
|
+
* on a single full-frame absolutely-positioned div. Intended to sit behind
|
|
34
|
+
* all page content on hero and marketing surfaces.
|
|
35
|
+
*
|
|
36
|
+
* Implementation:
|
|
37
|
+
* - Single-element approach with stacked radial-gradient backgrounds
|
|
38
|
+
* - Animation via transform:rotate only (not gradient property animation)
|
|
39
|
+
* - prefers-reduced-motion: kills animation, holds static composition
|
|
40
|
+
*
|
|
41
|
+
* @since v2
|
|
42
|
+
* @replaces VoidBackground
|
|
43
|
+
*/
|
|
44
|
+
declare const AuroraVoid: React__default.ForwardRefExoticComponent<AuroraVoidProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
|
|
46
|
+
interface StickyActionBarProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
47
|
+
/** The main message or value prop to display */
|
|
48
|
+
message: React__default.ReactNode;
|
|
49
|
+
/** Primary call to action button */
|
|
50
|
+
primaryAction: React__default.ReactNode;
|
|
51
|
+
/** Optional secondary action */
|
|
52
|
+
secondaryAction?: React__default.ReactNode;
|
|
53
|
+
/** Threshold in pixels before showing the bar (default: 300) */
|
|
54
|
+
showThreshold?: number;
|
|
55
|
+
/** Position variant */
|
|
56
|
+
position?: 'top' | 'bottom';
|
|
57
|
+
/** Visual theme */
|
|
58
|
+
variant?: 'glass' | 'solid' | 'brand';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A floating action bar that appears after scrolling past a threshold,
|
|
62
|
+
* keeping primary CTAs accessible on long pages.
|
|
63
|
+
*/
|
|
64
|
+
declare const StickyActionBar: React__default.ForwardRefExoticComponent<StickyActionBarProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
65
|
+
|
|
66
|
+
interface BookingEmbedProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, 'onError'> {
|
|
67
|
+
/** The Go High Level widget URL or other booking URL */
|
|
68
|
+
url: string;
|
|
69
|
+
/** Aspect ratio of the embed container (default: 16/9) */
|
|
70
|
+
aspectRatio?: string;
|
|
71
|
+
/** Title for the iframe accessibility */
|
|
72
|
+
title?: string;
|
|
73
|
+
/** Whether to lazy load the iframe */
|
|
74
|
+
lazyLoad?: boolean;
|
|
75
|
+
/** Reserve initial height to prevent CLS */
|
|
76
|
+
expectedHeight?: number;
|
|
77
|
+
/** Called on load timeout or load error */
|
|
78
|
+
onError?: (reason: 'timeout' | 'load-error') => void;
|
|
79
|
+
/** Called when iframe successfully loads or first setHeight arrives */
|
|
80
|
+
onReady?: () => void;
|
|
81
|
+
/** Custom analytics callback (e.g., for PostHog) */
|
|
82
|
+
onEvent?: (name: string, props: Record<string, string | number | boolean | undefined>) => void;
|
|
83
|
+
/** Show retry button on error */
|
|
84
|
+
showRetry?: boolean;
|
|
85
|
+
/** Max retry attempts before showing fallback link */
|
|
86
|
+
maxRetries?: number;
|
|
87
|
+
/** TEST/STORY ONLY: override 8000ms timeout */
|
|
88
|
+
timeoutMs?: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A responsive container for embedding booking widgets (like Go High Level or Calendly).
|
|
92
|
+
* Includes loading states, status state machine, 8s timeout, and analytics tracking.
|
|
93
|
+
*/
|
|
94
|
+
declare const BookingEmbed: React__default.ForwardRefExoticComponent<BookingEmbedProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
95
|
+
|
|
96
|
+
interface AgitationPoint {
|
|
97
|
+
/** The problem state (old way) */
|
|
98
|
+
problem: React__default.ReactNode;
|
|
99
|
+
/** The solution state (new way) */
|
|
100
|
+
solution: React__default.ReactNode;
|
|
101
|
+
}
|
|
102
|
+
interface ProblemAgitationProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
103
|
+
/** Section title */
|
|
104
|
+
title: string;
|
|
105
|
+
/** Section description */
|
|
106
|
+
description?: React__default.ReactNode;
|
|
107
|
+
/** The points to compare */
|
|
108
|
+
points: AgitationPoint[];
|
|
109
|
+
/** Label for the old way column */
|
|
110
|
+
oldWayLabel?: string;
|
|
111
|
+
/** Label for the new way column */
|
|
112
|
+
newWayLabel?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* A "Before & After" or "Old Way vs New Way" comparison block,
|
|
116
|
+
* frequently used in marketing to agitate a problem before presenting
|
|
117
|
+
* the product as the solution.
|
|
118
|
+
*/
|
|
119
|
+
declare const ProblemAgitation: React__default.ForwardRefExoticComponent<ProblemAgitationProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
120
|
+
|
|
121
|
+
/** A single metric shown on the card */
|
|
122
|
+
interface CaseStudyMetric {
|
|
123
|
+
/** Metric value (e.g., "312%") */
|
|
124
|
+
value: string;
|
|
125
|
+
/** Metric label (e.g., "increase in meetings") */
|
|
126
|
+
label: string;
|
|
127
|
+
/** Value prefix (e.g., "+") */
|
|
128
|
+
prefix?: string;
|
|
129
|
+
/** Value suffix (e.g., "%") */
|
|
130
|
+
suffix?: string;
|
|
131
|
+
}
|
|
132
|
+
interface CaseStudyCardProps extends React__default.HTMLAttributes<HTMLElement> {
|
|
133
|
+
/** Company name */
|
|
134
|
+
company: string;
|
|
135
|
+
/** Company logo */
|
|
136
|
+
logo?: React__default.ReactNode;
|
|
137
|
+
/** Industry tag */
|
|
138
|
+
industry?: string;
|
|
139
|
+
/** One-line outcome summary */
|
|
140
|
+
headline: string;
|
|
141
|
+
/** Key metrics achieved */
|
|
142
|
+
metrics?: CaseStudyMetric[];
|
|
143
|
+
/** Link to full case study */
|
|
144
|
+
href: string;
|
|
145
|
+
/** Optional cover image */
|
|
146
|
+
coverImage?: string;
|
|
147
|
+
/** Optional quote excerpt */
|
|
148
|
+
quote?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Case study preview card with company info and key metrics.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```tsx
|
|
155
|
+
* <CaseStudyCard
|
|
156
|
+
* company="Acme Corp"
|
|
157
|
+
* industry="SaaS"
|
|
158
|
+
* headline="312% increase in qualified meetings in 90 days"
|
|
159
|
+
* metrics={[
|
|
160
|
+
* { value: '312', suffix: '%', label: 'More meetings' },
|
|
161
|
+
* { value: '45', suffix: '%', label: 'Lower cost per lead' },
|
|
162
|
+
* ]}
|
|
163
|
+
* href="/case-studies/acme-corp"
|
|
164
|
+
* />
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
declare const CaseStudyCard: React__default.ForwardRefExoticComponent<CaseStudyCardProps & React__default.RefAttributes<HTMLElement>>;
|
|
168
|
+
|
|
169
|
+
/** Item in the before or after column */
|
|
170
|
+
interface BeforeAfterItem {
|
|
171
|
+
/** Item text */
|
|
172
|
+
text: string;
|
|
173
|
+
/** Sentiment affects visual treatment */
|
|
174
|
+
sentiment?: 'negative' | 'positive' | 'neutral';
|
|
175
|
+
}
|
|
176
|
+
/** One side of the comparison */
|
|
177
|
+
interface BeforeAfterSide {
|
|
178
|
+
/** Column label (e.g., "Before SalesMind", "After SalesMind") */
|
|
179
|
+
label: string;
|
|
180
|
+
/** List of items */
|
|
181
|
+
items: BeforeAfterItem[];
|
|
182
|
+
/** Optional media */
|
|
183
|
+
media?: React__default.ReactNode;
|
|
184
|
+
}
|
|
185
|
+
interface BeforeAfterBlockProps extends Omit<SectionShellProps, 'title'> {
|
|
186
|
+
/** Section eyebrow */
|
|
187
|
+
eyebrow?: React__default.ReactNode;
|
|
188
|
+
/** Section title */
|
|
189
|
+
title?: React__default.ReactNode;
|
|
190
|
+
/** Before state */
|
|
191
|
+
before: BeforeAfterSide;
|
|
192
|
+
/** After state */
|
|
193
|
+
after: BeforeAfterSide;
|
|
194
|
+
/** Layout variant */
|
|
195
|
+
variant?: 'split' | 'slider' | 'stacked';
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Transformation visualization: before vs. after comparison.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```tsx
|
|
202
|
+
* <BeforeAfterBlock
|
|
203
|
+
* title="The SalesMind Transformation"
|
|
204
|
+
* before={{
|
|
205
|
+
* label: 'Without SalesMind',
|
|
206
|
+
* items: [
|
|
207
|
+
* { text: 'Manual prospecting 40hrs/week', sentiment: 'negative' },
|
|
208
|
+
* { text: 'Unpredictable pipeline', sentiment: 'negative' },
|
|
209
|
+
* ],
|
|
210
|
+
* }}
|
|
211
|
+
* after={{
|
|
212
|
+
* label: 'With SalesMind',
|
|
213
|
+
* items: [
|
|
214
|
+
* { text: 'AI handles outreach 24/7', sentiment: 'positive' },
|
|
215
|
+
* { text: 'Predictable qualified meetings', sentiment: 'positive' },
|
|
216
|
+
* ],
|
|
217
|
+
* }}
|
|
218
|
+
* variant="split"
|
|
219
|
+
* />
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
declare const BeforeAfterBlock: React__default.ForwardRefExoticComponent<BeforeAfterBlockProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
223
|
+
|
|
224
|
+
/** A single comparison dimension */
|
|
225
|
+
interface CompetitorDiffItem {
|
|
226
|
+
/** The dimension being compared (e.g., "Approach") */
|
|
227
|
+
dimension: string;
|
|
228
|
+
/** How the competitor/category handles it */
|
|
229
|
+
them: string;
|
|
230
|
+
/** How we handle it */
|
|
231
|
+
us: string;
|
|
232
|
+
}
|
|
233
|
+
interface CompetitorDiffProps extends Omit<SectionShellProps, 'title'> {
|
|
234
|
+
/** Section eyebrow */
|
|
235
|
+
eyebrow?: React__default.ReactNode;
|
|
236
|
+
/** Section title */
|
|
237
|
+
title: React__default.ReactNode;
|
|
238
|
+
/** Section subtitle */
|
|
239
|
+
subtitle?: React__default.ReactNode;
|
|
240
|
+
/** Comparison items */
|
|
241
|
+
items: CompetitorDiffItem[];
|
|
242
|
+
/** Competitor/category label (e.g., "Traditional SDR tools") */
|
|
243
|
+
competitorLabel?: string;
|
|
244
|
+
/** Our label (e.g., "SalesMind AI") */
|
|
245
|
+
ourLabel?: string;
|
|
246
|
+
/** Layout variant */
|
|
247
|
+
variant?: 'table' | 'cards' | 'narrative';
|
|
248
|
+
/** Optional CTA */
|
|
249
|
+
cta?: {
|
|
250
|
+
label: string;
|
|
251
|
+
href: string;
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Competitive differentiation block.
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```tsx
|
|
259
|
+
* <CompetitorDiff
|
|
260
|
+
* eyebrow="Why SalesMind"
|
|
261
|
+
* title="Not Another LinkedIn Tool"
|
|
262
|
+
* items={[
|
|
263
|
+
* { dimension: 'Approach', them: 'Spray-and-pray sequences', us: 'AI-personalized at scale' },
|
|
264
|
+
* { dimension: 'Setup', them: 'Weeks of configuration', us: 'Live in 48 hours' },
|
|
265
|
+
* ]}
|
|
266
|
+
* variant="table"
|
|
267
|
+
* />
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
declare const CompetitorDiff: React__default.ForwardRefExoticComponent<CompetitorDiffProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
271
|
+
|
|
272
|
+
/** Status of a compliance certification */
|
|
273
|
+
type ComplianceStatus = 'certified' | 'in-progress' | 'planned';
|
|
274
|
+
/** A single compliance item */
|
|
275
|
+
interface ComplianceItem {
|
|
276
|
+
/** Certification name */
|
|
277
|
+
name: string;
|
|
278
|
+
/** Current status */
|
|
279
|
+
status: ComplianceStatus;
|
|
280
|
+
/** Icon */
|
|
281
|
+
icon?: React__default.ReactNode;
|
|
282
|
+
/** Description */
|
|
283
|
+
description?: string;
|
|
284
|
+
/** Link to documentation or certificate */
|
|
285
|
+
documentHref?: string;
|
|
286
|
+
}
|
|
287
|
+
interface ComplianceGridProps extends Omit<SectionShellProps, 'title'> {
|
|
288
|
+
/** Section eyebrow */
|
|
289
|
+
eyebrow?: React__default.ReactNode;
|
|
290
|
+
/** Section title */
|
|
291
|
+
title: React__default.ReactNode;
|
|
292
|
+
/** Section subtitle */
|
|
293
|
+
subtitle?: React__default.ReactNode;
|
|
294
|
+
/** Compliance items */
|
|
295
|
+
items: ComplianceItem[];
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Compliance certifications grid with status badges.
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```tsx
|
|
302
|
+
* <ComplianceGrid
|
|
303
|
+
* eyebrow="Compliance"
|
|
304
|
+
* title="Enterprise-Grade Security"
|
|
305
|
+
* items={[
|
|
306
|
+
* { name: 'SOC 2 Type II', status: 'certified', icon: <ShieldIcon /> },
|
|
307
|
+
* { name: 'ISO 27001', status: 'in-progress', icon: <LockIcon /> },
|
|
308
|
+
* { name: 'HIPAA', status: 'planned', icon: <HospitalIcon /> },
|
|
309
|
+
* ]}
|
|
310
|
+
* />
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
declare const ComplianceGrid: React__default.ForwardRefExoticComponent<ComplianceGridProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
314
|
+
|
|
315
|
+
/** Node type determines visual treatment */
|
|
316
|
+
type ArchitectureNodeType = 'source' | 'process' | 'destination' | 'integration';
|
|
317
|
+
/** A node in the architecture diagram */
|
|
318
|
+
interface ArchitectureNode {
|
|
319
|
+
/** Unique identifier */
|
|
320
|
+
id: string;
|
|
321
|
+
/** Display label */
|
|
322
|
+
label: string;
|
|
323
|
+
/** Optional icon */
|
|
324
|
+
icon?: React__default.ReactNode;
|
|
325
|
+
/** Node type affects styling */
|
|
326
|
+
type: ArchitectureNodeType;
|
|
327
|
+
/** Tooltip description */
|
|
328
|
+
description?: string;
|
|
329
|
+
}
|
|
330
|
+
/** A connection between two nodes */
|
|
331
|
+
interface ArchitectureConnection {
|
|
332
|
+
/** Source node ID */
|
|
333
|
+
from: string;
|
|
334
|
+
/** Destination node ID */
|
|
335
|
+
to: string;
|
|
336
|
+
/** Connection label */
|
|
337
|
+
label?: string;
|
|
338
|
+
/** Show animated dashes */
|
|
339
|
+
animated?: boolean;
|
|
340
|
+
}
|
|
341
|
+
interface ArchitectureDiagramProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
342
|
+
/** Nodes in the diagram */
|
|
343
|
+
nodes: ArchitectureNode[];
|
|
344
|
+
/** Connections between nodes */
|
|
345
|
+
connections: ArchitectureConnection[];
|
|
346
|
+
/** Flow direction */
|
|
347
|
+
direction?: 'horizontal' | 'vertical';
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* System architecture visualization with nodes and connections.
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```tsx
|
|
354
|
+
* <ArchitectureDiagram
|
|
355
|
+
* nodes={[
|
|
356
|
+
* { id: 'linkedin', label: 'LinkedIn', type: 'source' },
|
|
357
|
+
* { id: 'ai', label: 'SalesMind AI', type: 'process' },
|
|
358
|
+
* { id: 'crm', label: 'CRM', type: 'destination' },
|
|
359
|
+
* ]}
|
|
360
|
+
* connections={[
|
|
361
|
+
* { from: 'linkedin', to: 'ai', animated: true },
|
|
362
|
+
* { from: 'ai', to: 'crm', animated: true },
|
|
363
|
+
* ]}
|
|
364
|
+
* direction="horizontal"
|
|
365
|
+
* />
|
|
366
|
+
* ```
|
|
367
|
+
*/
|
|
368
|
+
declare const ArchitectureDiagram: React__default.ForwardRefExoticComponent<ArchitectureDiagramProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
369
|
+
|
|
370
|
+
interface SegmentSwitchProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
371
|
+
/** Active segment key */
|
|
372
|
+
segment?: string;
|
|
373
|
+
/** Map of segment keys to content */
|
|
374
|
+
segments: Record<string, React__default.ReactNode>;
|
|
375
|
+
/** Fallback content when no segment matches */
|
|
376
|
+
fallback?: React__default.ReactNode;
|
|
377
|
+
/** Segment source for auto-detection */
|
|
378
|
+
source?: 'utm' | 'cookie' | 'manual';
|
|
379
|
+
/** UTM parameter name (default: "utm_segment") */
|
|
380
|
+
utmParam?: string;
|
|
381
|
+
/** Cookie name (default: "ds_segment") */
|
|
382
|
+
cookieName?: string;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Segment-based content renderer.
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* ```tsx
|
|
389
|
+
* <SegmentSwitch
|
|
390
|
+
* segment="founder"
|
|
391
|
+
* segments={{
|
|
392
|
+
* founder: <FounderContent />,
|
|
393
|
+
* operator: <OperatorContent />,
|
|
394
|
+
* }}
|
|
395
|
+
* fallback={<DefaultContent />}
|
|
396
|
+
* />
|
|
397
|
+
* ```
|
|
398
|
+
*/
|
|
399
|
+
declare const SegmentSwitch: React__default.ForwardRefExoticComponent<SegmentSwitchProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
400
|
+
|
|
401
|
+
/** What triggers a stage change */
|
|
402
|
+
type IntentTriggerType = 'scroll' | 'time' | 'pages';
|
|
403
|
+
/** A single CTA stage */
|
|
404
|
+
interface IntentStage {
|
|
405
|
+
/** What triggers this stage */
|
|
406
|
+
trigger: {
|
|
407
|
+
type: IntentTriggerType;
|
|
408
|
+
threshold: number;
|
|
409
|
+
};
|
|
410
|
+
/** CTA label */
|
|
411
|
+
label: string;
|
|
412
|
+
/** CTA link */
|
|
413
|
+
href: string;
|
|
414
|
+
/** Button variant (escalates with intent) */
|
|
415
|
+
variant?: 'outline' | 'primary';
|
|
416
|
+
}
|
|
417
|
+
interface IntentCTAProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
418
|
+
/** CTA stages ordered by escalation */
|
|
419
|
+
stages: IntentStage[];
|
|
420
|
+
/** Default CTA (shown before any stage triggers) */
|
|
421
|
+
defaultCta: {
|
|
422
|
+
label: string;
|
|
423
|
+
href: string;
|
|
424
|
+
variant?: 'outline' | 'primary';
|
|
425
|
+
};
|
|
426
|
+
/** External page count for 'pages' trigger type (tracked by consuming app) */
|
|
427
|
+
pageCount?: number;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Adaptive CTA that escalates with demonstrated visitor intent.
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```tsx
|
|
434
|
+
* <IntentCTA
|
|
435
|
+
* defaultCta={{ label: 'Learn More', href: '/about', variant: 'outline' }}
|
|
436
|
+
* stages={[
|
|
437
|
+
* { trigger: { type: 'scroll', threshold: 50 }, label: 'See Pricing', href: '/pricing', variant: 'outline' },
|
|
438
|
+
* { trigger: { type: 'time', threshold: 30 }, label: 'Book a Demo', href: '/demo', variant: 'primary' },
|
|
439
|
+
* { trigger: { type: 'scroll', threshold: 80 }, label: 'Start Free Trial', href: '/signup', variant: 'primary' },
|
|
440
|
+
* ]}
|
|
441
|
+
* />
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
declare const IntentCTA: React__default.ForwardRefExoticComponent<IntentCTAProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
445
|
+
|
|
446
|
+
/** Sentiment determines visual treatment */
|
|
447
|
+
type EraSentiment = 'past' | 'present' | 'future';
|
|
448
|
+
/** A single era in the evolution */
|
|
449
|
+
interface EvolutionEra {
|
|
450
|
+
/** Era label (e.g., "Manual SDRs") */
|
|
451
|
+
label: string;
|
|
452
|
+
/** Time period (e.g., "2010-2018") */
|
|
453
|
+
period: string;
|
|
454
|
+
/** Era description */
|
|
455
|
+
description: string;
|
|
456
|
+
/** Characteristics of this era */
|
|
457
|
+
traits: string[];
|
|
458
|
+
/** Whether this is the current/highlighted era */
|
|
459
|
+
current?: boolean;
|
|
460
|
+
/** Icon or illustration */
|
|
461
|
+
icon?: React__default.ReactNode;
|
|
462
|
+
/** Visual sentiment — past eras fade, future glows */
|
|
463
|
+
sentiment: EraSentiment;
|
|
464
|
+
}
|
|
465
|
+
interface EvolutionTimelineProps extends Omit<SectionShellProps, 'title'> {
|
|
466
|
+
/** Section eyebrow */
|
|
467
|
+
eyebrow?: React__default.ReactNode;
|
|
468
|
+
/** Section title */
|
|
469
|
+
title: React__default.ReactNode;
|
|
470
|
+
/** Section subtitle */
|
|
471
|
+
subtitle?: React__default.ReactNode;
|
|
472
|
+
/** Evolution eras */
|
|
473
|
+
eras: EvolutionEra[];
|
|
474
|
+
/** "You are here" indicator (index) */
|
|
475
|
+
youAreHere?: number;
|
|
476
|
+
/** CTA after timeline */
|
|
477
|
+
cta?: {
|
|
478
|
+
label: string;
|
|
479
|
+
href: string;
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Category evolution timeline — positions SalesMind as the inevitable next phase.
|
|
484
|
+
*
|
|
485
|
+
* @example
|
|
486
|
+
* ```tsx
|
|
487
|
+
* <EvolutionTimeline
|
|
488
|
+
* eyebrow="The Evolution"
|
|
489
|
+
* title="From Tools to Infrastructure"
|
|
490
|
+
* eras={[
|
|
491
|
+
* { label: 'Manual SDRs', period: '2010-2018', description: '...', traits: [...], sentiment: 'past' },
|
|
492
|
+
* { label: 'Automation Tools', period: '2018-2024', description: '...', traits: [...], sentiment: 'present', current: true },
|
|
493
|
+
* { label: 'Pipeline Infrastructure', period: '2024+', description: '...', traits: [...], sentiment: 'future' },
|
|
494
|
+
* ]}
|
|
495
|
+
* youAreHere={1}
|
|
496
|
+
* />
|
|
497
|
+
* ```
|
|
498
|
+
*/
|
|
499
|
+
declare const EvolutionTimeline: React__default.ForwardRefExoticComponent<EvolutionTimelineProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
500
|
+
|
|
501
|
+
/** A single ecosystem layer */
|
|
502
|
+
interface EcosystemLayer {
|
|
503
|
+
/** Layer name */
|
|
504
|
+
name: string;
|
|
505
|
+
/** Short description */
|
|
506
|
+
description: string;
|
|
507
|
+
/** Key capabilities */
|
|
508
|
+
capabilities: string[];
|
|
509
|
+
/** Icon */
|
|
510
|
+
icon?: React__default.ReactNode;
|
|
511
|
+
}
|
|
512
|
+
/** A connection between layers */
|
|
513
|
+
interface EcosystemConnection {
|
|
514
|
+
/** From layer index */
|
|
515
|
+
from: number;
|
|
516
|
+
/** To layer index */
|
|
517
|
+
to: number;
|
|
518
|
+
/** What flows between layers */
|
|
519
|
+
label: string;
|
|
520
|
+
}
|
|
521
|
+
interface EcosystemDiagramProps extends Omit<SectionShellProps, 'title'> {
|
|
522
|
+
/** Section eyebrow */
|
|
523
|
+
eyebrow?: React__default.ReactNode;
|
|
524
|
+
/** Section title */
|
|
525
|
+
title: React__default.ReactNode;
|
|
526
|
+
/** Section subtitle */
|
|
527
|
+
subtitle?: React__default.ReactNode;
|
|
528
|
+
/** Ecosystem layers (typically 3) */
|
|
529
|
+
layers: EcosystemLayer[];
|
|
530
|
+
/** Connections between layers (flywheel arrows) */
|
|
531
|
+
connections: EcosystemConnection[];
|
|
532
|
+
/** Layout variant */
|
|
533
|
+
variant?: 'flywheel' | 'pyramid' | 'concentric';
|
|
534
|
+
/** Center label (e.g., "Predictable Pipeline") */
|
|
535
|
+
centerLabel?: string;
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Ecosystem flywheel / pyramid / concentric diagram.
|
|
539
|
+
*
|
|
540
|
+
* @example
|
|
541
|
+
* ```tsx
|
|
542
|
+
* <EcosystemDiagram
|
|
543
|
+
* title="The SalesMind Ecosystem"
|
|
544
|
+
* layers={[
|
|
545
|
+
* { name: 'AI Software', description: '...', capabilities: ['...'] },
|
|
546
|
+
* { name: 'Compound Intelligence', description: '...', capabilities: ['...'] },
|
|
547
|
+
* { name: 'Expert Operations', description: '...', capabilities: ['...'] },
|
|
548
|
+
* ]}
|
|
549
|
+
* connections={[
|
|
550
|
+
* { from: 0, to: 1, label: 'Interaction data' },
|
|
551
|
+
* { from: 1, to: 2, label: 'AI insights' },
|
|
552
|
+
* { from: 2, to: 0, label: 'Human refinements' },
|
|
553
|
+
* ]}
|
|
554
|
+
* centerLabel="Predictable Pipeline"
|
|
555
|
+
* variant="flywheel"
|
|
556
|
+
* />
|
|
557
|
+
* ```
|
|
558
|
+
*/
|
|
559
|
+
declare const EcosystemDiagram: React__default.ForwardRefExoticComponent<EcosystemDiagramProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
560
|
+
|
|
561
|
+
/** Calculator input definition */
|
|
562
|
+
interface ValueAnchorInput {
|
|
563
|
+
/** Input name (form key) */
|
|
564
|
+
name: string;
|
|
565
|
+
/** Display label */
|
|
566
|
+
label: string;
|
|
567
|
+
/** Input type */
|
|
568
|
+
type: 'number' | 'slider';
|
|
569
|
+
/** Default value */
|
|
570
|
+
defaultValue: number;
|
|
571
|
+
/** Min for slider */
|
|
572
|
+
min?: number;
|
|
573
|
+
/** Max for slider */
|
|
574
|
+
max?: number;
|
|
575
|
+
/** Step for slider */
|
|
576
|
+
step?: number;
|
|
577
|
+
/** Display prefix (e.g., "$") */
|
|
578
|
+
prefix?: string;
|
|
579
|
+
/** Display suffix (e.g., "%") */
|
|
580
|
+
suffix?: string;
|
|
581
|
+
}
|
|
582
|
+
/** Calculator output */
|
|
583
|
+
interface ValueAnchorOutput {
|
|
584
|
+
/** Primary metric (large display) */
|
|
585
|
+
primaryMetric: {
|
|
586
|
+
value: number;
|
|
587
|
+
label: string;
|
|
588
|
+
prefix?: string;
|
|
589
|
+
suffix?: string;
|
|
590
|
+
};
|
|
591
|
+
/** Supporting metrics */
|
|
592
|
+
secondaryMetrics: Array<{
|
|
593
|
+
value: number;
|
|
594
|
+
label: string;
|
|
595
|
+
prefix?: string;
|
|
596
|
+
suffix?: string;
|
|
597
|
+
}>;
|
|
598
|
+
/** Optional cost comparison */
|
|
599
|
+
costComparison?: {
|
|
600
|
+
without: {
|
|
601
|
+
value: number;
|
|
602
|
+
label: string;
|
|
603
|
+
};
|
|
604
|
+
with: {
|
|
605
|
+
value: number;
|
|
606
|
+
label: string;
|
|
607
|
+
};
|
|
608
|
+
savings: {
|
|
609
|
+
value: number;
|
|
610
|
+
label: string;
|
|
611
|
+
};
|
|
612
|
+
};
|
|
613
|
+
}
|
|
614
|
+
interface ValueAnchorProps extends Omit<SectionShellProps, 'title'> {
|
|
615
|
+
/** Section eyebrow */
|
|
616
|
+
eyebrow?: React__default.ReactNode;
|
|
617
|
+
/** Section title */
|
|
618
|
+
title: React__default.ReactNode;
|
|
619
|
+
/** Section subtitle */
|
|
620
|
+
subtitle?: React__default.ReactNode;
|
|
621
|
+
/** Calculator inputs */
|
|
622
|
+
inputs: ValueAnchorInput[];
|
|
623
|
+
/** Calculation function */
|
|
624
|
+
calculate: (values: Record<string, number>) => ValueAnchorOutput;
|
|
625
|
+
/** CTA shown after calculation */
|
|
626
|
+
cta?: {
|
|
627
|
+
label: string;
|
|
628
|
+
href: string;
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* Pipeline value calculator — anchors on outcome value before showing cost.
|
|
633
|
+
*
|
|
634
|
+
* @example
|
|
635
|
+
* ```tsx
|
|
636
|
+
* <ValueAnchor
|
|
637
|
+
* title="See Your Pipeline Potential"
|
|
638
|
+
* inputs={[
|
|
639
|
+
* { name: 'meetings', label: 'Monthly meetings', type: 'slider', defaultValue: 10, min: 5, max: 50 },
|
|
640
|
+
* { name: 'dealSize', label: 'Avg deal size', type: 'number', defaultValue: 5000, prefix: '$' },
|
|
641
|
+
* ]}
|
|
642
|
+
* calculate={(v) => ({
|
|
643
|
+
* primaryMetric: { value: v.meetings * 12 * v.dealSize * 0.2, label: 'Annual Pipeline Value', prefix: '$' },
|
|
644
|
+
* secondaryMetrics: [...],
|
|
645
|
+
* })}
|
|
646
|
+
* />
|
|
647
|
+
* ```
|
|
648
|
+
*/
|
|
649
|
+
declare const ValueAnchor: React__default.ForwardRefExoticComponent<ValueAnchorProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
650
|
+
|
|
651
|
+
/** Status of a trust signal item */
|
|
652
|
+
type EnterpriseSignalStatus = 'active' | 'in-progress' | 'planned';
|
|
653
|
+
/** A single trust signal item */
|
|
654
|
+
interface EnterpriseSignalItem {
|
|
655
|
+
/** Signal name (e.g., "SOC 2 Type II") */
|
|
656
|
+
name: string;
|
|
657
|
+
/** Status */
|
|
658
|
+
status: EnterpriseSignalStatus;
|
|
659
|
+
/** Detail text */
|
|
660
|
+
detail?: string;
|
|
661
|
+
/** Link to documentation */
|
|
662
|
+
href?: string;
|
|
663
|
+
}
|
|
664
|
+
/** A category of trust signals */
|
|
665
|
+
interface EnterpriseSignalCategory {
|
|
666
|
+
/** Category name (e.g., "Security") */
|
|
667
|
+
name: string;
|
|
668
|
+
/** Category icon */
|
|
669
|
+
icon?: React__default.ReactNode;
|
|
670
|
+
/** Items in this category */
|
|
671
|
+
items: EnterpriseSignalItem[];
|
|
672
|
+
}
|
|
673
|
+
/** SLA commitment */
|
|
674
|
+
interface EnterpriseSLA {
|
|
675
|
+
/** Metric name */
|
|
676
|
+
metric: string;
|
|
677
|
+
/** SLA commitment */
|
|
678
|
+
commitment: string;
|
|
679
|
+
/** Current actual value */
|
|
680
|
+
current?: string;
|
|
681
|
+
}
|
|
682
|
+
interface EnterpriseSignalingProps extends Omit<SectionShellProps, 'title'> {
|
|
683
|
+
/** Section eyebrow */
|
|
684
|
+
eyebrow?: React__default.ReactNode;
|
|
685
|
+
/** Section title */
|
|
686
|
+
title: React__default.ReactNode;
|
|
687
|
+
/** Section subtitle */
|
|
688
|
+
subtitle?: React__default.ReactNode;
|
|
689
|
+
/** Trust signal categories */
|
|
690
|
+
categories: EnterpriseSignalCategory[];
|
|
691
|
+
/** SLA commitments */
|
|
692
|
+
sla?: EnterpriseSLA[];
|
|
693
|
+
/** Layout variant */
|
|
694
|
+
variant?: 'full' | 'compact' | 'strip';
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
697
|
+
* Enterprise trust and procurement enablement block.
|
|
698
|
+
*
|
|
699
|
+
* @example
|
|
700
|
+
* ```tsx
|
|
701
|
+
* <EnterpriseSignaling
|
|
702
|
+
* title="Enterprise-Ready"
|
|
703
|
+
* categories={[
|
|
704
|
+
* { name: 'Security', items: [{ name: 'GDPR', status: 'active' }] },
|
|
705
|
+
* ]}
|
|
706
|
+
* sla={[{ metric: 'Uptime', commitment: '99.9%', current: '99.97%' }]}
|
|
707
|
+
* variant="full"
|
|
708
|
+
* />
|
|
709
|
+
* ```
|
|
710
|
+
*/
|
|
711
|
+
declare const EnterpriseSignaling: React__default.ForwardRefExoticComponent<EnterpriseSignalingProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
712
|
+
|
|
713
|
+
/** A compound intelligence metric */
|
|
714
|
+
interface IntelligenceMetric {
|
|
715
|
+
/** Target value */
|
|
716
|
+
value: number;
|
|
717
|
+
/** Label below the number */
|
|
718
|
+
label: string;
|
|
719
|
+
/** Value prefix */
|
|
720
|
+
prefix?: string;
|
|
721
|
+
/** Value suffix */
|
|
722
|
+
suffix?: string;
|
|
723
|
+
/** Growth indicator text */
|
|
724
|
+
growth?: string;
|
|
725
|
+
}
|
|
726
|
+
/** A compound intelligence capability */
|
|
727
|
+
interface IntelligenceCapability {
|
|
728
|
+
/** Capability title */
|
|
729
|
+
title: string;
|
|
730
|
+
/** Description */
|
|
731
|
+
description: string;
|
|
732
|
+
/** Icon */
|
|
733
|
+
icon?: React__default.ReactNode;
|
|
734
|
+
/** Compounding example */
|
|
735
|
+
compoundingExample?: {
|
|
736
|
+
before: string;
|
|
737
|
+
after: string;
|
|
738
|
+
timeframe: string;
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
interface IntelligenceBlockProps extends Omit<SectionShellProps, 'title'> {
|
|
742
|
+
/** Section eyebrow */
|
|
743
|
+
eyebrow?: React__default.ReactNode;
|
|
744
|
+
/** Section title */
|
|
745
|
+
title: React__default.ReactNode;
|
|
746
|
+
/** Section subtitle */
|
|
747
|
+
subtitle?: React__default.ReactNode;
|
|
748
|
+
/** Intelligence metrics */
|
|
749
|
+
metrics: IntelligenceMetric[];
|
|
750
|
+
/** Intelligence capabilities */
|
|
751
|
+
capabilities: IntelligenceCapability[];
|
|
752
|
+
/** Visual variant */
|
|
753
|
+
variant?: 'metrics-first' | 'capabilities-first' | 'timeline';
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Data compound effect visualization.
|
|
757
|
+
*
|
|
758
|
+
* @example
|
|
759
|
+
* ```tsx
|
|
760
|
+
* <IntelligenceBlock
|
|
761
|
+
* title="Intelligence That Compounds"
|
|
762
|
+
* metrics={[
|
|
763
|
+
* { value: 2000000, suffix: '+', label: 'Prospect Interactions' },
|
|
764
|
+
* ]}
|
|
765
|
+
* capabilities={[
|
|
766
|
+
* { title: 'Message Optimization', description: '...',
|
|
767
|
+
* compoundingExample: { before: 'Generic templates', after: 'Persona-specific scripts', timeframe: '6 months' } },
|
|
768
|
+
* ]}
|
|
769
|
+
* />
|
|
770
|
+
* ```
|
|
771
|
+
*/
|
|
772
|
+
declare const IntelligenceBlock: React__default.ForwardRefExoticComponent<IntelligenceBlockProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
773
|
+
|
|
774
|
+
/** Calculator input */
|
|
775
|
+
interface PartnerCalcInput {
|
|
776
|
+
/** Input name */
|
|
777
|
+
name: string;
|
|
778
|
+
/** Display label */
|
|
779
|
+
label: string;
|
|
780
|
+
/** Input type */
|
|
781
|
+
type: 'number' | 'slider';
|
|
782
|
+
/** Default value */
|
|
783
|
+
defaultValue: number;
|
|
784
|
+
/** Min value */
|
|
785
|
+
min?: number;
|
|
786
|
+
/** Max value */
|
|
787
|
+
max?: number;
|
|
788
|
+
/** Display prefix */
|
|
789
|
+
prefix?: string;
|
|
790
|
+
/** Display suffix */
|
|
791
|
+
suffix?: string;
|
|
792
|
+
}
|
|
793
|
+
/** Calculator output */
|
|
794
|
+
interface PartnerCalcOutput {
|
|
795
|
+
monthlyRevenue: number;
|
|
796
|
+
monthlyCost: number;
|
|
797
|
+
monthlyMargin: number;
|
|
798
|
+
marginPercentage: number;
|
|
799
|
+
annualRevenue: number;
|
|
800
|
+
}
|
|
801
|
+
/** Partner benefit */
|
|
802
|
+
interface PartnerBenefit {
|
|
803
|
+
title: string;
|
|
804
|
+
description: string;
|
|
805
|
+
icon?: React__default.ReactNode;
|
|
806
|
+
}
|
|
807
|
+
/** Build-vs-buy differentiator */
|
|
808
|
+
interface PartnerDifferentiator {
|
|
809
|
+
dimension: string;
|
|
810
|
+
buildInHouse: string;
|
|
811
|
+
withPartner: string;
|
|
812
|
+
}
|
|
813
|
+
interface PartnerValuePropProps extends Omit<SectionShellProps, 'title'> {
|
|
814
|
+
/** Section eyebrow */
|
|
815
|
+
eyebrow?: React__default.ReactNode;
|
|
816
|
+
/** Section title */
|
|
817
|
+
title: React__default.ReactNode;
|
|
818
|
+
/** Section subtitle */
|
|
819
|
+
subtitle?: React__default.ReactNode;
|
|
820
|
+
/** Calculator configuration */
|
|
821
|
+
calculator?: {
|
|
822
|
+
inputs: PartnerCalcInput[];
|
|
823
|
+
calculate: (values: Record<string, number>) => PartnerCalcOutput;
|
|
824
|
+
};
|
|
825
|
+
/** Partner benefits */
|
|
826
|
+
benefits: PartnerBenefit[];
|
|
827
|
+
/** Build-vs-buy comparison */
|
|
828
|
+
differentiators?: PartnerDifferentiator[];
|
|
829
|
+
/** Comparison section title */
|
|
830
|
+
differentiatorTitle?: string;
|
|
831
|
+
/** Column header for the "build" option */
|
|
832
|
+
differentiatorBuildLabel?: string;
|
|
833
|
+
/** Column header for the partner/white-label option */
|
|
834
|
+
differentiatorPartnerLabel?: string;
|
|
835
|
+
/** CTA */
|
|
836
|
+
cta: {
|
|
837
|
+
label: string;
|
|
838
|
+
href: string;
|
|
839
|
+
};
|
|
840
|
+
}
|
|
841
|
+
/**
|
|
842
|
+
* White-label partner economics and value proposition.
|
|
843
|
+
*
|
|
844
|
+
* @example
|
|
845
|
+
* ```tsx
|
|
846
|
+
* <PartnerValueProp
|
|
847
|
+
* title="Partner With SalesMind"
|
|
848
|
+
* benefits={[{ title: 'White-Label', description: 'Your brand, our tech.' }]}
|
|
849
|
+
* cta={{ label: 'Apply Now', href: '/partners/apply' }}
|
|
850
|
+
* />
|
|
851
|
+
* ```
|
|
852
|
+
*/
|
|
853
|
+
declare const PartnerValueProp: React__default.ForwardRefExoticComponent<PartnerValuePropProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
854
|
+
|
|
855
|
+
interface PricingFeature {
|
|
856
|
+
/** Feature label text */
|
|
857
|
+
text: string;
|
|
858
|
+
/** Whether this feature is included in the tier */
|
|
859
|
+
included?: boolean;
|
|
860
|
+
/** Optional tooltip or emphasis text */
|
|
861
|
+
detail?: string;
|
|
862
|
+
}
|
|
863
|
+
interface PricingCardProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
864
|
+
/** Tier label (e.g. "Operator Mode", "Founder Mode") */
|
|
865
|
+
tier: string;
|
|
866
|
+
/** Short tagline under the tier name */
|
|
867
|
+
tagline?: string;
|
|
868
|
+
/** Price display string (e.g. "$1,499", "$999") */
|
|
869
|
+
price: string;
|
|
870
|
+
/** Price suffix (e.g. "/month", "one-time") */
|
|
871
|
+
priceSuffix?: string;
|
|
872
|
+
/** Previous/anchor price for strikethrough display */
|
|
873
|
+
anchorPrice?: string;
|
|
874
|
+
/** Badge text (e.g. "Most Popular", "Best Value") */
|
|
875
|
+
badge?: string;
|
|
876
|
+
/** Whether this card is visually highlighted as the recommended option */
|
|
877
|
+
highlighted?: boolean;
|
|
878
|
+
/** List of features included in this tier */
|
|
879
|
+
features?: PricingFeature[];
|
|
880
|
+
/** Primary CTA button content */
|
|
881
|
+
cta?: React__default.ReactNode;
|
|
882
|
+
/** Optional secondary action below CTA */
|
|
883
|
+
secondaryCta?: React__default.ReactNode;
|
|
884
|
+
/** Footer note text (e.g. "3-month minimum") */
|
|
885
|
+
footerNote?: string;
|
|
886
|
+
}
|
|
887
|
+
declare const PricingCard: React__default.ForwardRefExoticComponent<PricingCardProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
888
|
+
|
|
889
|
+
interface ComparisonColumn {
|
|
890
|
+
/** Column heading (e.g. "Hiring SDRs", "SalesMind") */
|
|
891
|
+
label: string;
|
|
892
|
+
/** Whether this column is highlighted as the recommended option */
|
|
893
|
+
highlighted?: boolean;
|
|
894
|
+
/** Optional badge above the column header */
|
|
895
|
+
badge?: string;
|
|
896
|
+
}
|
|
897
|
+
interface ComparisonRow {
|
|
898
|
+
/** Row label (the thing being compared) */
|
|
899
|
+
label: string;
|
|
900
|
+
/** Values for each column, in the same order as columns */
|
|
901
|
+
values: (string | React__default.ReactNode)[];
|
|
902
|
+
/** Optional category divider — if true, renders as a category header */
|
|
903
|
+
isCategory?: boolean;
|
|
904
|
+
}
|
|
905
|
+
interface ComparisonTableProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
906
|
+
/** Column definitions */
|
|
907
|
+
columns: ComparisonColumn[];
|
|
908
|
+
/** Row data */
|
|
909
|
+
rows: ComparisonRow[];
|
|
910
|
+
/** Optional table caption for accessibility */
|
|
911
|
+
caption?: string;
|
|
912
|
+
}
|
|
913
|
+
declare const ComparisonTable: React__default.ForwardRefExoticComponent<ComparisonTableProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
914
|
+
|
|
915
|
+
interface GuaranteeHighlightProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
916
|
+
/** The guarantee statement (e.g. "10+ qualified meetings per month") */
|
|
917
|
+
guarantee: string;
|
|
918
|
+
/** Supporting detail or condition text */
|
|
919
|
+
detail?: string;
|
|
920
|
+
/** Optional fine print (e.g. "Guarantee activates after onboarding alignment") */
|
|
921
|
+
finePrint?: string;
|
|
922
|
+
/** Visual variant */
|
|
923
|
+
variant?: 'default' | 'brand' | 'minimal';
|
|
924
|
+
/** Optional icon — pass a React node (e.g. an SVG) */
|
|
925
|
+
icon?: React__default.ReactNode;
|
|
926
|
+
}
|
|
927
|
+
declare const GuaranteeHighlight: React__default.ForwardRefExoticComponent<GuaranteeHighlightProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
928
|
+
|
|
929
|
+
interface ROIComparisonItem {
|
|
930
|
+
/** Label (e.g. "Hiring 3 SDRs") */
|
|
931
|
+
label: string;
|
|
932
|
+
/** Monthly cost string */
|
|
933
|
+
monthlyCost: string;
|
|
934
|
+
/** Annual cost string */
|
|
935
|
+
annualCost: string;
|
|
936
|
+
/** Whether this item is the "winner" (highlighted) */
|
|
937
|
+
isRecommended?: boolean;
|
|
938
|
+
/** Additional context text */
|
|
939
|
+
context?: string;
|
|
940
|
+
}
|
|
941
|
+
interface ROICalculatorProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
942
|
+
/** Section eyebrow text */
|
|
943
|
+
eyebrow?: string;
|
|
944
|
+
/** Section title */
|
|
945
|
+
title?: string;
|
|
946
|
+
/** Comparison items to display */
|
|
947
|
+
items: ROIComparisonItem[];
|
|
948
|
+
/** Optional summary text below the comparison */
|
|
949
|
+
summary?: React__default.ReactNode;
|
|
950
|
+
/** Optional savings callout (e.g. "Save $120,000/year") */
|
|
951
|
+
savingsCallout?: string;
|
|
952
|
+
}
|
|
953
|
+
declare const ROICalculator: React__default.ForwardRefExoticComponent<ROICalculatorProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
954
|
+
|
|
955
|
+
interface ICPFilterItem {
|
|
956
|
+
/** Description text */
|
|
957
|
+
text: string;
|
|
958
|
+
}
|
|
959
|
+
interface ICPFilterProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
960
|
+
/** Items describing who this IS for */
|
|
961
|
+
qualifiedItems: ICPFilterItem[];
|
|
962
|
+
/** Items describing who this is NOT for */
|
|
963
|
+
disqualifiedItems: ICPFilterItem[];
|
|
964
|
+
/** Heading for the qualified column */
|
|
965
|
+
qualifiedHeading?: string;
|
|
966
|
+
/** Heading for the disqualified column */
|
|
967
|
+
disqualifiedHeading?: string;
|
|
968
|
+
/** Layout variant */
|
|
969
|
+
variant?: 'columns' | 'stacked';
|
|
970
|
+
}
|
|
971
|
+
declare const ICPFilter: React__default.ForwardRefExoticComponent<ICPFilterProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
972
|
+
|
|
973
|
+
interface ObjectionItem {
|
|
974
|
+
/** The objection/question (e.g. "Is this just LinkedIn automation?") */
|
|
975
|
+
question: string;
|
|
976
|
+
/** The strategic answer/reframe */
|
|
977
|
+
answer: string;
|
|
978
|
+
/** Optional tag/category (e.g. "Safety", "Quality", "Process") */
|
|
979
|
+
tag?: string;
|
|
980
|
+
}
|
|
981
|
+
interface ObjectionFAQProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
982
|
+
/** List of objection items */
|
|
983
|
+
items: ObjectionItem[];
|
|
984
|
+
/** Section title */
|
|
985
|
+
title?: string;
|
|
986
|
+
/** Section subtitle */
|
|
987
|
+
subtitle?: string;
|
|
988
|
+
/** Whether multiple items can be open simultaneously */
|
|
989
|
+
allowMultiple?: boolean;
|
|
990
|
+
/** Initial open item index */
|
|
991
|
+
defaultOpenIndex?: number;
|
|
992
|
+
}
|
|
993
|
+
declare const ObjectionFAQ: React__default.ForwardRefExoticComponent<ObjectionFAQProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
994
|
+
|
|
995
|
+
interface KPITrend {
|
|
996
|
+
/** Direction of the trend arrow. */
|
|
997
|
+
direction: 'up' | 'down';
|
|
998
|
+
/** Formatted delta string, e.g. "16%", "+$1.2M". */
|
|
999
|
+
delta: string;
|
|
1000
|
+
/**
|
|
1001
|
+
* Semantic valence — determines colour of the trend indicator.
|
|
1002
|
+
* Defaults to green for 'up', red for 'down' when not specified.
|
|
1003
|
+
*/
|
|
1004
|
+
valence?: 'positive' | 'negative' | 'neutral';
|
|
1005
|
+
}
|
|
1006
|
+
interface KPICell {
|
|
1007
|
+
/** Tiny UPPERCASE metric label, e.g. "LEADS". */
|
|
1008
|
+
label: string;
|
|
1009
|
+
/** Large formatted value, e.g. "1,248", "$3.4M". */
|
|
1010
|
+
value: string;
|
|
1011
|
+
/** Optional trend indicator with direction, delta and semantic valence. */
|
|
1012
|
+
trend?: KPITrend;
|
|
1013
|
+
/**
|
|
1014
|
+
* D8 provenance string — data source footnote rendered below the trend.
|
|
1015
|
+
* @example "7-day rolling avg"
|
|
1016
|
+
* @since v2
|
|
1017
|
+
*/
|
|
1018
|
+
provenance?: string;
|
|
1019
|
+
}
|
|
1020
|
+
interface KPIPanelProps {
|
|
1021
|
+
/**
|
|
1022
|
+
* Array of KPI cell definitions. Renders in a responsive CSS grid:
|
|
1023
|
+
* - mobile: 1 column
|
|
1024
|
+
* - md (≥768px): 2 columns
|
|
1025
|
+
* - lg (≥1024px): 4 columns
|
|
1026
|
+
*
|
|
1027
|
+
* Default cells mirror Figma Showcase 05.
|
|
1028
|
+
*/
|
|
1029
|
+
cells?: KPICell[];
|
|
1030
|
+
/** Additional CSS class names. */
|
|
1031
|
+
className?: string;
|
|
1032
|
+
}
|
|
1033
|
+
/**
|
|
1034
|
+
* KPIPanel — 4-cell composed metric panel with provenance (D8).
|
|
1035
|
+
*
|
|
1036
|
+
* Composes 4 Card v2 instances (tier=1) in a responsive CSS grid.
|
|
1037
|
+
* Each cell shows a label, value, optional trend indicator, and optional provenance.
|
|
1038
|
+
*
|
|
1039
|
+
* @example
|
|
1040
|
+
* <KPIPanel />
|
|
1041
|
+
* <KPIPanel cells={[{ label: 'MRR', value: '$24K', trend: { direction: 'up', delta: '12%' } }]} />
|
|
1042
|
+
*/
|
|
1043
|
+
declare const KPIPanel: React.ForwardRefExoticComponent<KPIPanelProps & React.RefAttributes<HTMLDivElement>>;
|
|
1044
|
+
|
|
1045
|
+
interface HeroCompositionProps {
|
|
1046
|
+
/**
|
|
1047
|
+
* Headline lines. The first character of the first line receives the
|
|
1048
|
+
* C3 Anton drop-cap treatment (`::first-letter`).
|
|
1049
|
+
*
|
|
1050
|
+
* @example ['Pipeline that runs', 'while you sleep']
|
|
1051
|
+
* @default ['Pipeline that runs', 'while you sleep']
|
|
1052
|
+
*/
|
|
1053
|
+
headline?: string[];
|
|
1054
|
+
/**
|
|
1055
|
+
* Body copy rendered below the headline.
|
|
1056
|
+
*/
|
|
1057
|
+
subline?: string;
|
|
1058
|
+
/**
|
|
1059
|
+
* Optional eyebrow label rendered above the headline (all-caps).
|
|
1060
|
+
* @example 'PIPELINE OPERATING SYSTEM'
|
|
1061
|
+
*/
|
|
1062
|
+
eyebrow?: string;
|
|
1063
|
+
/**
|
|
1064
|
+
* KPI cells passed directly to the KPIPanel in the right column.
|
|
1065
|
+
* Defaults to KPIPanel's own defaults (Figma Showcase 05 data).
|
|
1066
|
+
*/
|
|
1067
|
+
metrics?: KPIPanelProps['cells'];
|
|
1068
|
+
/**
|
|
1069
|
+
* D5 headline tone variant.
|
|
1070
|
+
* - `'sentence'` — normal sentence-case rendering (default)
|
|
1071
|
+
* - `'shouty'` — ALL-CAPS via CSS `text-transform: uppercase`
|
|
1072
|
+
* @default 'sentence'
|
|
1073
|
+
*/
|
|
1074
|
+
tone?: 'sentence' | 'shouty';
|
|
1075
|
+
/** Additional CSS class names. */
|
|
1076
|
+
className?: string;
|
|
1077
|
+
}
|
|
1078
|
+
/**
|
|
1079
|
+
* HeroComposition — full v2 hero with aurora + grid + Anton drop-cap (C3 finalist).
|
|
1080
|
+
*
|
|
1081
|
+
* Layer order (back to front):
|
|
1082
|
+
* 1. `<AuroraVoid />` — animated aurora background
|
|
1083
|
+
* 2. `<Vignette />` — radial-gradient dark mask
|
|
1084
|
+
* 3. `<GridOverlay />` — 64px grid lines
|
|
1085
|
+
* 4. 2-column content (headline + KPIPanel)
|
|
1086
|
+
*
|
|
1087
|
+
* **C3 drop-cap signature**: First letter of the first headline line uses
|
|
1088
|
+
* `::first-letter` at 5.25em in Anton with aurora-primary colour.
|
|
1089
|
+
*
|
|
1090
|
+
* @example
|
|
1091
|
+
* <HeroComposition
|
|
1092
|
+
* eyebrow="PIPELINE OPERATING SYSTEM"
|
|
1093
|
+
* headline={['Pipeline that runs', 'while you sleep']}
|
|
1094
|
+
* subline="Outbound sequences powered by intent signals."
|
|
1095
|
+
* tone="sentence"
|
|
1096
|
+
* />
|
|
1097
|
+
*/
|
|
1098
|
+
declare const HeroComposition: React.ForwardRefExoticComponent<HeroCompositionProps & React.RefAttributes<HTMLDivElement>>;
|
|
1099
|
+
|
|
1100
|
+
export { type IntelligenceMetric as $, type AgitationPoint as A, BeforeAfterBlock as B, CaseStudyCard as C, EcosystemDiagram as D, type EcosystemConnection as E, type EcosystemDiagramProps as F, type EcosystemLayer as G, type EnterpriseSLA as H, type EnterpriseSignalCategory as I, type EnterpriseSignalItem as J, type EnterpriseSignalStatus as K, EnterpriseSignaling as L, type EnterpriseSignalingProps as M, type EraSentiment as N, type EvolutionEra as O, EvolutionTimeline as P, type EvolutionTimelineProps as Q, GuaranteeHighlight as R, type GuaranteeHighlightProps as S, HeroComposition as T, type HeroCompositionProps as U, ICPFilter as V, type ICPFilterItem as W, type ICPFilterProps as X, IntelligenceBlock as Y, type IntelligenceBlockProps as Z, type IntelligenceCapability as _, type ArchitectureConnection as a, IntentCTA as a0, type IntentCTAProps as a1, type IntentStage as a2, type IntentTriggerType as a3, type KPICell as a4, KPIPanel as a5, type KPIPanelProps as a6, type KPITrend as a7, ObjectionFAQ as a8, type ObjectionFAQProps as a9, type ObjectionItem as aa, type PartnerBenefit as ab, type PartnerCalcInput as ac, type PartnerCalcOutput as ad, type PartnerDifferentiator as ae, PartnerValueProp as af, type PartnerValuePropProps as ag, PricingCard as ah, type PricingCardProps as ai, type PricingFeature as aj, ProblemAgitation as ak, type ProblemAgitationProps as al, ROICalculator as am, type ROICalculatorProps as an, type ROIComparisonItem as ao, SegmentSwitch as ap, type SegmentSwitchProps as aq, StickyActionBar as ar, type StickyActionBarProps as as, ValueAnchor as at, type ValueAnchorInput as au, type ValueAnchorOutput as av, type ValueAnchorProps as aw, ArchitectureDiagram as b, type ArchitectureDiagramProps as c, type ArchitectureNode as d, type ArchitectureNodeType as e, AuroraVoid as f, type AuroraVoidIntensity as g, type AuroraVoidProps as h, type BeforeAfterBlockProps as i, type BeforeAfterItem as j, type BeforeAfterSide as k, BookingEmbed as l, type BookingEmbedProps as m, type CaseStudyCardProps as n, type CaseStudyMetric as o, type ComparisonColumn as p, type ComparisonRow as q, ComparisonTable as r, type ComparisonTableProps as s, CompetitorDiff as t, type CompetitorDiffItem as u, type CompetitorDiffProps as v, ComplianceGrid as w, type ComplianceGridProps as x, type ComplianceItem as y, type ComplianceStatus as z };
|