@clay-ds/react 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +12212 -0
- package/dist/index.d.ts +1101 -0
- package/dist/index.js +14511 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1101 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import * as Flags from 'country-flag-icons/react/3x2';
|
|
3
|
+
import { ForwardRefExoticComponent } from 'react';
|
|
4
|
+
import { HTMLAttributes } from 'react';
|
|
5
|
+
import { ImgHTMLAttributes } from 'react';
|
|
6
|
+
import { InputHTMLAttributes } from 'react';
|
|
7
|
+
import { JSX } from 'react/jsx-runtime';
|
|
8
|
+
import { MouseEventHandler } from 'react';
|
|
9
|
+
import { ReactNode } from 'react';
|
|
10
|
+
import { RefAttributes } from 'react';
|
|
11
|
+
import { SVGAttributes } from 'react';
|
|
12
|
+
|
|
13
|
+
export declare const ActionCard: ForwardRefExoticComponent<ActionCardProps & RefAttributes<HTMLDivElement>>;
|
|
14
|
+
|
|
15
|
+
export declare interface ActionCardIntegration {
|
|
16
|
+
src: string;
|
|
17
|
+
alt?: string;
|
|
18
|
+
background?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export declare interface ActionCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
22
|
+
variant?: ActionCardVariant;
|
|
23
|
+
title: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
ctaLabel?: string;
|
|
26
|
+
onCtaClick?: MouseEventHandler<HTMLButtonElement>;
|
|
27
|
+
media?: ReactNode;
|
|
28
|
+
avatar?: ReactNode;
|
|
29
|
+
avatarBackground?: string;
|
|
30
|
+
rating?: string;
|
|
31
|
+
integrations?: ActionCardIntegration[];
|
|
32
|
+
tags?: string[];
|
|
33
|
+
onDismiss?: () => void;
|
|
34
|
+
onAdd?: () => void;
|
|
35
|
+
bulletItems?: string[];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export declare type ActionCardVariant = 'media-top' | 'integration' | 'agent';
|
|
39
|
+
|
|
40
|
+
export declare const ANALYST_LOGOS: {
|
|
41
|
+
readonly gartner: string;
|
|
42
|
+
readonly forrester: string;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export declare interface BulletItem {
|
|
46
|
+
icon: ReactNode;
|
|
47
|
+
/** Bullet heading. 8–18 chars. */
|
|
48
|
+
title: string;
|
|
49
|
+
/** Bullet body copy. 28–84 chars. 1–2 sentences. */
|
|
50
|
+
description: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export declare type BulletsLayout = 'icons' | 'cardsRight';
|
|
54
|
+
|
|
55
|
+
export declare const BulletsSection: ForwardRefExoticComponent<BulletsSectionProps & RefAttributes<HTMLElement>>;
|
|
56
|
+
|
|
57
|
+
export declare interface BulletsSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
58
|
+
layout?: BulletsLayout;
|
|
59
|
+
/** Eyebrow label above heading. 7–17 chars. */
|
|
60
|
+
miniTitle?: string;
|
|
61
|
+
/** Section heading. 9–20 chars. Supports \n for line breaks. */
|
|
62
|
+
heading: string;
|
|
63
|
+
/** Section description. 28–84 chars. 1–2 sentences. */
|
|
64
|
+
description?: string;
|
|
65
|
+
items: BulletItem[];
|
|
66
|
+
columns?: 2 | 3;
|
|
67
|
+
action?: ReactNode;
|
|
68
|
+
containerWidth?: ContainerWidth;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>;
|
|
72
|
+
|
|
73
|
+
export declare type ButtonColor = 'black' | 'iris' | 'white' | 'grey';
|
|
74
|
+
|
|
75
|
+
export declare interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {
|
|
76
|
+
size?: ButtonSize;
|
|
77
|
+
buttonStyle?: ButtonStyle;
|
|
78
|
+
color?: ButtonColor;
|
|
79
|
+
/** @deprecated Use `buttonStyle` + `color` */
|
|
80
|
+
variant?: ButtonVariant;
|
|
81
|
+
showArrow?: boolean;
|
|
82
|
+
icon?: ReactNode;
|
|
83
|
+
iconPosition?: 'start' | 'end';
|
|
84
|
+
forceHover?: boolean;
|
|
85
|
+
forceActive?: boolean;
|
|
86
|
+
children?: ReactNode;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export declare type ButtonSize = 'large' | 'regular' | 'mini' | 'extraMini';
|
|
90
|
+
|
|
91
|
+
export declare type ButtonStyle = 'primary' | 'secondary' | 'link' | 'icon';
|
|
92
|
+
|
|
93
|
+
/** @deprecated Use `buttonStyle` + `color` instead. */
|
|
94
|
+
export declare type ButtonVariant = 'brand' | 'neutral' | 'white' | 'default' | 'link-neutral';
|
|
95
|
+
|
|
96
|
+
export declare const Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>;
|
|
97
|
+
|
|
98
|
+
export declare interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
99
|
+
title: string;
|
|
100
|
+
children: ReactNode;
|
|
101
|
+
size?: CardSize;
|
|
102
|
+
radius?: CardRadius;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export declare type CardRadius = 'xl' | 'lg' | 'md' | 'sm';
|
|
106
|
+
|
|
107
|
+
export declare type CardSize = 'hero' | 'feature' | 'block' | 'tile';
|
|
108
|
+
|
|
109
|
+
export declare const CardsSection: ForwardRefExoticComponent<CardsSectionProps & RefAttributes<HTMLElement>>;
|
|
110
|
+
|
|
111
|
+
export declare interface CardsSectionCard {
|
|
112
|
+
/** Card eyebrow label. 10–23 chars. */
|
|
113
|
+
miniTitle?: string;
|
|
114
|
+
/** Card heading. 11–26 chars. */
|
|
115
|
+
heading: string;
|
|
116
|
+
/** Card description. 26–77 chars. 1–2 sentences. */
|
|
117
|
+
description?: string;
|
|
118
|
+
actions?: ReactNode;
|
|
119
|
+
media?: ReactNode;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export declare type CardsSectionLayout = 'side-by-side' | 'horizontal-reveal' | 'grid' | 'value-cards' | 'one-media' | 'icon-with-link' | 'media-top';
|
|
123
|
+
|
|
124
|
+
export declare interface CardsSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
125
|
+
layout?: CardsSectionLayout;
|
|
126
|
+
/** Section-level tagline. 10–23 chars. */
|
|
127
|
+
tagline?: string;
|
|
128
|
+
/** Section-level heading. 18–42 chars. */
|
|
129
|
+
sectionHeading?: string;
|
|
130
|
+
/** Section-level description. 24–71 chars. 1–2 sentences. */
|
|
131
|
+
sectionDescription?: string;
|
|
132
|
+
/** Cards for side-by-side layout (supports 1–5 cards) */
|
|
133
|
+
cards?: CardsSectionCard[];
|
|
134
|
+
/** Cards for horizontal-reveal layout */
|
|
135
|
+
revealCards?: RevealCard[];
|
|
136
|
+
/** Cards for value-cards layout (3-column grid with icon, heading, description, + button) */
|
|
137
|
+
valueCards?: HoverFlipCard_2[];
|
|
138
|
+
/** Feature cards for one-media layout (2 text+icon cards beside a media slot) */
|
|
139
|
+
oneMediaCards?: OneMediaCard[];
|
|
140
|
+
/** Media slot for one-media layout */
|
|
141
|
+
oneMedia?: ReactNode;
|
|
142
|
+
/** Cards for icon-with-link layout (4 cards with icon, heading, description, link) */
|
|
143
|
+
iconLinkCards?: IconLinkCard[];
|
|
144
|
+
/** Slot for navigation (e.g. SliderDots) shown on mobile for horizontal-reveal */
|
|
145
|
+
navigation?: ReactNode;
|
|
146
|
+
/** Enable seamless left-to-right marquee animation (horizontal-reveal only) */
|
|
147
|
+
autoScroll?: boolean;
|
|
148
|
+
/** Duration in seconds for one full scroll cycle (default: 30) */
|
|
149
|
+
autoScrollDuration?: number;
|
|
150
|
+
containerWidth?: ContainerWidth;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
declare interface CaseStudyCard {
|
|
154
|
+
logo?: ReactNode;
|
|
155
|
+
ctaLabel?: string;
|
|
156
|
+
ctaHref?: string;
|
|
157
|
+
onCtaClick?: () => void;
|
|
158
|
+
media?: ReactNode;
|
|
159
|
+
stat: string;
|
|
160
|
+
statLabel: string;
|
|
161
|
+
category?: string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export declare const Checkbox: ForwardRefExoticComponent<CheckboxProps & RefAttributes<HTMLInputElement>>;
|
|
165
|
+
|
|
166
|
+
export declare interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
167
|
+
label?: string;
|
|
168
|
+
sublabel?: string;
|
|
169
|
+
variant?: CheckboxVariant;
|
|
170
|
+
icon?: ReactNode;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export declare type CheckboxVariant = 'simple' | 'border' | 'square' | 'icon';
|
|
174
|
+
|
|
175
|
+
export declare const COMPLIANCE_LOGOS: {
|
|
176
|
+
readonly gdpr: string;
|
|
177
|
+
readonly soc2: string;
|
|
178
|
+
readonly iso27001: string;
|
|
179
|
+
readonly hipaa: string;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
export declare interface ComplianceLogo {
|
|
183
|
+
src: string;
|
|
184
|
+
label: string;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export declare interface ContactBadgeItem {
|
|
188
|
+
src: string;
|
|
189
|
+
label: string;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export declare interface ContactBulletItem {
|
|
193
|
+
icon: ReactNode;
|
|
194
|
+
text: string;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export declare interface ContactLogoItem {
|
|
198
|
+
src: string;
|
|
199
|
+
name: string;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export declare const ContactSection: ForwardRefExoticComponent<ContactSectionProps & RefAttributes<HTMLElement>>;
|
|
203
|
+
|
|
204
|
+
export declare interface ContactSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'onSubmit'> {
|
|
205
|
+
/** Form section heading. 11–26 chars. */
|
|
206
|
+
heading?: string;
|
|
207
|
+
/** Form section description. 24–72 chars. 1–2 sentences. */
|
|
208
|
+
description?: string;
|
|
209
|
+
bullets?: ContactBulletItem[];
|
|
210
|
+
badges?: ContactBadgeItem[];
|
|
211
|
+
ratingIcon?: ReactNode;
|
|
212
|
+
ratingValue?: string;
|
|
213
|
+
ratingLabel?: string;
|
|
214
|
+
logos?: ContactLogoItem[];
|
|
215
|
+
formTitle?: string;
|
|
216
|
+
fields?: FormField[];
|
|
217
|
+
submitLabel?: string;
|
|
218
|
+
privacyNode?: ReactNode;
|
|
219
|
+
onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;
|
|
220
|
+
containerWidth?: ContainerWidth;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export declare const Container: ForwardRefExoticComponent<ContainerProps & RefAttributes<HTMLDivElement>>;
|
|
224
|
+
|
|
225
|
+
export declare interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
226
|
+
children: ReactNode;
|
|
227
|
+
width?: ContainerWidth;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export declare type ContainerWidth = 'default' | 'narrow' | 'wide' | 'full';
|
|
231
|
+
|
|
232
|
+
export declare type CountryCode = keyof typeof Flags;
|
|
233
|
+
|
|
234
|
+
export declare const CountryFlag: ForwardRefExoticComponent<CountryFlagProps & RefAttributes<HTMLSpanElement>>;
|
|
235
|
+
|
|
236
|
+
export declare interface CountryFlagProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
237
|
+
code: CountryCode;
|
|
238
|
+
size?: FlagSize;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export declare type CtaLayout = 'centered' | 'floating-card';
|
|
242
|
+
|
|
243
|
+
export declare const CtaSection: ForwardRefExoticComponent<CtaSectionProps & RefAttributes<HTMLElement>>;
|
|
244
|
+
|
|
245
|
+
export declare interface CtaSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
246
|
+
layout?: CtaLayout;
|
|
247
|
+
/** CTA heading. 24–56 chars. Direct and action-oriented. */
|
|
248
|
+
heading: string;
|
|
249
|
+
/** CTA supporting copy. 33–98 chars. 1–2 sentences. */
|
|
250
|
+
description?: string;
|
|
251
|
+
actions?: ReactNode;
|
|
252
|
+
containerWidth?: ContainerWidth;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export declare const CustomerLogo: ForwardRefExoticComponent<CustomerLogoProps & RefAttributes<HTMLSpanElement>>;
|
|
256
|
+
|
|
257
|
+
export declare type CustomerLogoPlacement = 'web' | 'marketing';
|
|
258
|
+
|
|
259
|
+
export declare interface CustomerLogoProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
260
|
+
src: string;
|
|
261
|
+
name: string;
|
|
262
|
+
placement?: CustomerLogoPlacement;
|
|
263
|
+
surface?: CustomerLogoSurface;
|
|
264
|
+
height?: number;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export declare const CustomerLogoSection: ForwardRefExoticComponent<CustomerLogoSectionProps & RefAttributes<HTMLElement>>;
|
|
268
|
+
|
|
269
|
+
export declare interface CustomerLogoSectionLogo {
|
|
270
|
+
name: string;
|
|
271
|
+
srcBlack: string;
|
|
272
|
+
srcColored?: string;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export declare interface CustomerLogoSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
276
|
+
/** Logo bar heading. 20–47 chars. */
|
|
277
|
+
heading?: string;
|
|
278
|
+
logos: CustomerLogoSectionLogo[];
|
|
279
|
+
colorMode?: LogoColorMode;
|
|
280
|
+
logoHeight?: number;
|
|
281
|
+
/** 'auto' animates only when logos overflow the container, true/false forces the state */
|
|
282
|
+
animate?: boolean | 'auto';
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export declare type CustomerLogoSurface = 'light' | 'dark';
|
|
286
|
+
|
|
287
|
+
export declare const CustomerStoryCard: ForwardRefExoticComponent<CustomerStoryCardProps & RefAttributes<HTMLDivElement>>;
|
|
288
|
+
|
|
289
|
+
export declare interface CustomerStoryCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
290
|
+
type?: CustomerStoryCardType;
|
|
291
|
+
stat?: string;
|
|
292
|
+
statLabel?: string;
|
|
293
|
+
category?: string;
|
|
294
|
+
quote?: string;
|
|
295
|
+
authorName?: string;
|
|
296
|
+
authorRole?: string;
|
|
297
|
+
media?: ReactNode;
|
|
298
|
+
avatarMedia?: ReactNode;
|
|
299
|
+
logo?: ReactNode;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export declare type CustomerStoryCardType = 'stats' | 'quote' | 'quote-bordered' | 'quote-with-picture';
|
|
303
|
+
|
|
304
|
+
export declare interface FaqItem {
|
|
305
|
+
/** FAQ question. 20–48 chars. */
|
|
306
|
+
question: string;
|
|
307
|
+
/** FAQ answer. 72–216 chars. 2–4 sentences. */
|
|
308
|
+
answer: string;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export declare type FaqLayout = 'side-by-side' | 'centered';
|
|
312
|
+
|
|
313
|
+
export declare const FaqSection: ForwardRefExoticComponent<FaqSectionProps & RefAttributes<HTMLElement>>;
|
|
314
|
+
|
|
315
|
+
export declare interface FaqSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
316
|
+
layout?: FaqLayout;
|
|
317
|
+
/** Section heading. 13–31 chars. */
|
|
318
|
+
heading?: string;
|
|
319
|
+
items: FaqItem[];
|
|
320
|
+
defaultOpenIndices?: number[];
|
|
321
|
+
containerWidth?: ContainerWidth;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
export declare interface FeatureItem {
|
|
325
|
+
/** Feature heading. 16–37 chars. */
|
|
326
|
+
heading: string;
|
|
327
|
+
/** Feature description. 104–312 chars. 1–3 sentences. */
|
|
328
|
+
description: string;
|
|
329
|
+
media?: ReactNode;
|
|
330
|
+
/** Category label above heading. 6–13 chars. */
|
|
331
|
+
topic?: string;
|
|
332
|
+
icon?: ReactNode;
|
|
333
|
+
bullets?: string[];
|
|
334
|
+
cta?: {
|
|
335
|
+
label: string;
|
|
336
|
+
href?: string;
|
|
337
|
+
onClick?: () => void;
|
|
338
|
+
};
|
|
339
|
+
cta2?: {
|
|
340
|
+
label: string;
|
|
341
|
+
href?: string;
|
|
342
|
+
onClick?: () => void;
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export declare type FeaturesLayout = 'side-by-side' | 'side-by-side-lines' | 'tabs-background' | 'tabs-stroke' | 'side-by-side-bullets' | 'tab-cards-carousel' | 'stacked-rows' | 'horizontal-media-top' | 'stacked-media-left' | 'horizontal-icons' | 'horizontal-cards' | 'tabs-media-right' | 'list-right-media' | 'content-carousel' | 'stacked-cards-carousel' | 'accordion-media-right' | 'numbered-accordion' | 'split-icon-list' | 'steps-numbered';
|
|
347
|
+
|
|
348
|
+
export declare const FeaturesSection: ForwardRefExoticComponent<FeaturesSectionProps & RefAttributes<HTMLElement>>;
|
|
349
|
+
|
|
350
|
+
export declare interface FeaturesSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
351
|
+
layout?: FeaturesLayout;
|
|
352
|
+
items: FeatureItem[];
|
|
353
|
+
defaultActiveIndex?: number;
|
|
354
|
+
/** Section-level heading. 17–41 chars. */
|
|
355
|
+
sectionHeading?: string;
|
|
356
|
+
/** Section-level topic label. 11–25 chars. */
|
|
357
|
+
sectionTopic?: string;
|
|
358
|
+
/** Section-level description. 35–105 chars. 1–2 sentences. */
|
|
359
|
+
sectionDescription?: string;
|
|
360
|
+
sectionCta?: {
|
|
361
|
+
label: string;
|
|
362
|
+
onClick?: () => void;
|
|
363
|
+
};
|
|
364
|
+
sectionCta2?: {
|
|
365
|
+
label: string;
|
|
366
|
+
onClick?: () => void;
|
|
367
|
+
};
|
|
368
|
+
sectionMedia?: ReactNode;
|
|
369
|
+
containerWidth?: ContainerWidth;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
export declare type FlagSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
373
|
+
|
|
374
|
+
export declare const FOOTER_ASSETS: {
|
|
375
|
+
readonly mondayLogo: string;
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Canonical footer content for all pages.
|
|
380
|
+
*
|
|
381
|
+
* Spread onto FooterSection and override only `logo` per brand:
|
|
382
|
+
*
|
|
383
|
+
* import { FooterSection, FOOTER_DEFAULTS } from '@clay-ds/react'
|
|
384
|
+
* <FooterSection {...FOOTER_DEFAULTS} logo={{ src: pageLogo, alt: 'Brand Name', href: '/' }} />
|
|
385
|
+
*
|
|
386
|
+
* This is the single source of truth for footer links, badges, social icons,
|
|
387
|
+
* legal links, and all other static content. Never duplicate or override this
|
|
388
|
+
* content in individual pages — only `logo` changes per brand.
|
|
389
|
+
*/
|
|
390
|
+
export declare const FOOTER_DEFAULTS: Omit<FooterSectionProps, 'logo'>;
|
|
391
|
+
|
|
392
|
+
export declare interface FooterBadge {
|
|
393
|
+
src: string;
|
|
394
|
+
alt: string;
|
|
395
|
+
href?: string;
|
|
396
|
+
width?: number;
|
|
397
|
+
height?: number;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export declare interface FooterColumn {
|
|
401
|
+
heading?: string;
|
|
402
|
+
links: FooterLink[];
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export declare interface FooterLink {
|
|
406
|
+
label: string;
|
|
407
|
+
href: string;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
export declare interface FooterNavColumn {
|
|
411
|
+
heading?: string;
|
|
412
|
+
links: FooterNavLink[];
|
|
413
|
+
groups?: FooterNavGroup[];
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export declare interface FooterNavGroup {
|
|
417
|
+
heading?: string;
|
|
418
|
+
links: FooterNavLink[];
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
export declare interface FooterNavLink {
|
|
422
|
+
label: string;
|
|
423
|
+
href?: string;
|
|
424
|
+
icon?: ReactNode;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export declare const FooterSection: ForwardRefExoticComponent<FooterSectionProps & RefAttributes<HTMLElement>>;
|
|
428
|
+
|
|
429
|
+
export declare interface FooterSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
430
|
+
logo?: {
|
|
431
|
+
src: string;
|
|
432
|
+
alt: string;
|
|
433
|
+
href?: string;
|
|
434
|
+
};
|
|
435
|
+
columns: FooterNavColumn[];
|
|
436
|
+
socialLinks?: FooterSocialLink[];
|
|
437
|
+
complianceBadges?: FooterBadge[];
|
|
438
|
+
appStoreBadges?: FooterBadge[];
|
|
439
|
+
legalLinks?: {
|
|
440
|
+
label: string;
|
|
441
|
+
href?: string;
|
|
442
|
+
}[];
|
|
443
|
+
copyright?: string;
|
|
444
|
+
languageSelector?: ReactNode;
|
|
445
|
+
accessibilityLabel?: string;
|
|
446
|
+
accessibilityHref?: string;
|
|
447
|
+
accessibilityIcon?: ReactNode;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
export declare interface FooterSocialLink {
|
|
451
|
+
label: string;
|
|
452
|
+
href: string;
|
|
453
|
+
icon: ReactNode;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export declare interface FormField {
|
|
457
|
+
name: string;
|
|
458
|
+
placeholder: string;
|
|
459
|
+
type?: 'text' | 'email' | 'tel' | 'select' | 'textarea';
|
|
460
|
+
options?: string[];
|
|
461
|
+
required?: boolean;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
export declare const G2_BADGES: {
|
|
465
|
+
readonly bestResults: string;
|
|
466
|
+
readonly mostImplementable: string;
|
|
467
|
+
readonly momentumLeader: string;
|
|
468
|
+
readonly usersLoveUs: string;
|
|
469
|
+
readonly leader: string;
|
|
470
|
+
readonly usersMostLikelyToRecommend: string;
|
|
471
|
+
readonly bestRelationship: string;
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
export declare type G2BadgeKey = keyof typeof G2_BADGES;
|
|
475
|
+
|
|
476
|
+
export declare const G2Icon: ForwardRefExoticComponent<G2IconProps & RefAttributes<SVGSVGElement>>;
|
|
477
|
+
|
|
478
|
+
export declare interface G2IconProps extends SVGAttributes<SVGSVGElement> {
|
|
479
|
+
size?: number;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
export declare const Grid: ForwardRefExoticComponent<GridProps & RefAttributes<HTMLDivElement>>;
|
|
483
|
+
|
|
484
|
+
export declare interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
485
|
+
children: ReactNode;
|
|
486
|
+
columns?: 1 | 2 | 3 | 4 | 6 | 12;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
export declare type HeaderLayout = 'centered-image' | 'centered-strips' | 'default' | 'floating-card' | 'floating-left' | 'floating-scattered' | 'left-center-image' | 'split' | 'split-full-image' | 'split-mosaic' | 'split-search' | 'text-only';
|
|
490
|
+
|
|
491
|
+
export declare const HeaderSection: ForwardRefExoticComponent<HeaderSectionProps & RefAttributes<HTMLElement>>;
|
|
492
|
+
|
|
493
|
+
export declare interface HeaderSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
494
|
+
layout?: HeaderLayout;
|
|
495
|
+
/** Main hero headline. 18–43 chars. */
|
|
496
|
+
heading: string;
|
|
497
|
+
/** Supporting body copy. 104–312 chars. 1–3 sentences. */
|
|
498
|
+
description?: string;
|
|
499
|
+
actions?: ReactNode;
|
|
500
|
+
/** Caption below actions (e.g. "No credit card needed"). 26–61 chars. */
|
|
501
|
+
actionCaption?: string;
|
|
502
|
+
options?: ReactNode;
|
|
503
|
+
optionsTitle?: string;
|
|
504
|
+
logos?: ReactNode;
|
|
505
|
+
media?: ReactNode;
|
|
506
|
+
containerWidth?: ContainerWidth;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export declare const HoverFlipCard: ForwardRefExoticComponent<HoverFlipCardProps & RefAttributes<HTMLDivElement>>;
|
|
510
|
+
|
|
511
|
+
declare interface HoverFlipCard_2 {
|
|
512
|
+
heading: string;
|
|
513
|
+
description?: string;
|
|
514
|
+
/** Icon slot — use Shapes component or any ReactNode */
|
|
515
|
+
icon?: ReactNode;
|
|
516
|
+
/** Optional click handler for the + button */
|
|
517
|
+
onClick?: () => void;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export declare interface HoverFlipCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
521
|
+
/** Card heading — typically "Value no. 01" or a short benefit statement */
|
|
522
|
+
heading: string;
|
|
523
|
+
/** Optional body text beneath the heading */
|
|
524
|
+
description?: string;
|
|
525
|
+
/**
|
|
526
|
+
* Shape displayed above the heading.
|
|
527
|
+
* Pass a ShapeName for a specific shape, or `'random'` to pick one
|
|
528
|
+
* randomly from the square-shape set on first render (stable across re-renders).
|
|
529
|
+
* Defaults to `'random'`.
|
|
530
|
+
*/
|
|
531
|
+
shape?: HoverFlipCardShape;
|
|
532
|
+
/**
|
|
533
|
+
* CSS color string for the shape fill.
|
|
534
|
+
* Defaults to white (visible on the grey-200 card background).
|
|
535
|
+
*/
|
|
536
|
+
shapeColor?: string;
|
|
537
|
+
/** Click handler for the bottom-right + button */
|
|
538
|
+
onClick?: () => void;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
export declare type HoverFlipCardShape = ShapeName | 'random';
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Renders a single-color line icon from the Clay icon registry. SVGs are injected
|
|
545
|
+
* inline so `currentColor` recoloring works; size and color are token/CSS-driven.
|
|
546
|
+
*/
|
|
547
|
+
export declare const Icon: ForwardRefExoticComponent<IconProps & RefAttributes<HTMLSpanElement>>;
|
|
548
|
+
|
|
549
|
+
export declare type IconCategory = "Alerts & feedback" | "Arrows" | "Charts" | "Communication" | "Development" | "Editor" | "Education" | "Files" | "Finance & eCommerce" | "General" | "Images" | "Layout" | "Maps & travel" | "Media & devices" | "Security" | "Shapes" | "Time" | "Users" | "Weather";
|
|
550
|
+
|
|
551
|
+
declare interface IconLinkCard {
|
|
552
|
+
heading: string;
|
|
553
|
+
description?: string;
|
|
554
|
+
/** Icon slot — 48px container, use ReactNode */
|
|
555
|
+
icon?: ReactNode;
|
|
556
|
+
/** Label for the bottom link (defaults to "Learn more") */
|
|
557
|
+
linkLabel?: string;
|
|
558
|
+
onClick?: () => void;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
export declare type IconName = "activity" | "airplay" | "alarm-clock" | "alarm-clock-off" | "alert-circle" | "alert-hexagon" | "alert-octagon" | "alert-square" | "alert-triangle" | "align-bottom-01" | "align-bottom-02" | "align-center" | "align-horizontal-centre-01" | "align-horizontal-centre-02" | "align-justify" | "align-left" | "align-left-01" | "align-left-02" | "align-right" | "align-right-01" | "align-right-02" | "align-top-01" | "align-top-02" | "align-vertical-center-01" | "align-vertical-center-02" | "anchor" | "annotation" | "annotation-alert" | "annotation-check" | "annotation-dots" | "annotation-heart" | "annotation-info" | "annotation-x" | "announcement-01" | "archive" | "arrow-circle-broken-down" | "arrow-circle-broken-down-left" | "arrow-circle-broken-down-right" | "arrow-circle-broken-left" | "arrow-circle-broken-right" | "arrow-circle-broken-up" | "arrow-circle-broken-up-left" | "arrow-circle-broken-up-right" | "arrow-circle-down" | "arrow-circle-down-left" | "arrow-circle-down-right" | "arrow-circle-left" | "arrow-circle-right" | "arrow-circle-up" | "arrow-circle-up-left" | "arrow-circle-up-right" | "arrow-down" | "arrow-down-left" | "arrow-down-right" | "arrow-left" | "arrow-narrow-down" | "arrow-narrow-down-left" | "arrow-narrow-down-right" | "arrow-narrow-left" | "arrow-narrow-right" | "arrow-narrow-up" | "arrow-narrow-up-left" | "arrow-narrow-up-right" | "arrow-right" | "arrow-square-down" | "arrow-square-down-left" | "arrow-square-down-right" | "arrow-square-left" | "arrow-square-right" | "arrow-square-up" | "arrow-square-up-left" | "arrow-square-up-right" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "arrows-right" | "arrows-up" | "asterisk-01" | "at-sign" | "atom-01" | "attachment-01" | "attachment-02" | "award-01" | "award-02" | "award-03" | "award-04" | "award-05" | "backpack" | "bank" | "bar-chart-04" | "bar-chart-10" | "bar-chart-square-01" | "bar-chart-square-02" | "battery-charging-02" | "battery-empty" | "battery-full" | "battery-low" | "bell-02" | "bell-03" | "bell-off-01" | "bell-off-02" | "bell-off-03" | "bell-plus" | "bell-ringing-01" | "bell-ringing-03" | "bell-ringing-04" | "bezier-curve-01" | "bluetooth-connect" | "bold-01" | "book-open-01" | "bookmark" | "bookmark-check" | "box" | "brackets" | "brackets-check" | "brackets-ellipses" | "brackets-minus" | "brackets-plus" | "brackets-slash" | "brackets-x" | "briefcase-01" | "browser" | "brush-01" | "brush-03" | "building-05" | "building-07" | "building-08" | "calculator" | "calendar" | "calendar-check-01" | "calendar-date" | "calendar-heart-01" | "calendar-minus-01" | "calendar-plus-02" | "camera-01" | "camera-lens" | "camera-off" | "camera-plus" | "check" | "check-circle" | "check-done-01" | "check-heart" | "check-square" | "check-verified-02" | "chevron-down" | "chevron-down-double" | "chevron-left" | "chevron-left-double" | "chevron-right" | "chevron-right-double" | "chevron-selector-horizontal" | "chevron-selector-vertical" | "chevron-up" | "chevron-up-double" | "chrome-cast" | "circle" | "circle-cut" | "clapperboard" | "clipboard" | "clipboard-check" | "clipboard-minus" | "clipboard-plus" | "clipboard-x" | "clock" | "clock-stopwatch" | "cloud-01" | "cloud-blank-01" | "cloud-off" | "code-01" | "code-02" | "code-browser" | "code-circle-01" | "code-circle-02" | "code-circle-03" | "code-snippet-01" | "code-snippet-02" | "code-square-01" | "code-square-02" | "codepen" | "coins-01" | "coins-02" | "coins-hand" | "coins-stacked-03" | "colors" | "colors-1" | "columns-01" | "columns-02" | "columns-03" | "command" | "compass-03" | "container" | "contrast-03" | "copy-03" | "copy-07" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "cpu-chip-01" | "credit-card-02" | "credit-card-check" | "credit-card-lock" | "crop-01" | "cube-01" | "currency-dollar" | "currency-dollar-circle" | "cursor-02" | "cursor-box" | "cursor-click-01" | "database-01" | "database-03" | "dataflow-01" | "dataflow-02" | "dataflow-03" | "dataflow-04" | "delete" | "diamond-01" | "diamond-02" | "distribute-spacing-horizontal" | "distribute-spacing-vertical" | "divide-01" | "divide-03" | "divider" | "dotpoints-01" | "dots-grid" | "dots-horizontal" | "dots-vertical" | "download-01" | "download-02" | "download-03" | "download-cloud-01" | "download-cloud-02" | "drop" | "dropper" | "edit-02" | "edit-03" | "edit-05" | "equal" | "eraser" | "expand-01" | "expand-02" | "expand-03" | "expand-04" | "expand-05" | "expand-06" | "eye" | "eye-off" | "face-content" | "face-frown" | "face-happy" | "face-neutral" | "face-sad" | "face-smile" | "face-wink" | "feather" | "figma" | "file-02" | "file-03" | "file-04" | "file-05" | "file-06" | "file-07" | "file-attachment-03" | "file-check-02" | "file-check-03" | "file-code-01" | "file-code-02" | "file-download-01" | "file-download-02" | "file-download-03" | "file-heart-01" | "file-lock-02" | "file-plus-02" | "file-search-02" | "file-x-03" | "filter-funnel-02" | "flag-01" | "flash" | "flash-off" | "flex-align-bottom" | "flex-align-left" | "flex-align-right" | "flex-align-top" | "flip-backward" | "flip-forward" | "folder" | "folder-check" | "folder-code" | "folder-plus" | "gift-01" | "git-branch-01" | "glasses-01" | "globe-01" | "google-chrome" | "graduation-hat-02" | "grid-01" | "grid-02" | "grid-03" | "grid-dots-blank" | "grid-dots-bottom" | "grid-dots-horizontal-center" | "grid-dots-left" | "grid-dots-outer" | "grid-dots-right" | "grid-dots-top" | "grid-dots-vertical-center" | "hand" | "hash-01" | "heading-01" | "headphones-01" | "heart" | "heart-circle" | "heart-hand" | "heart-square" | "hearts" | "help-circle" | "home-02" | "home-03" | "home-05" | "hourglass-01" | "image-01" | "image-indent-right" | "image-user" | "inbox-02" | "infinity" | "info-circle" | "intersect-circle" | "intersect-square" | "italic-01" | "italic-02" | "italic-square" | "key-01" | "keyboard-01" | "keyboard-02" | "laptop-01" | "layer-single" | "layers-three-01" | "layers-three-02" | "layers-two-01" | "layers-two-02" | "layout-alt-01" | "layout-alt-02" | "layout-alt-03" | "layout-alt-04" | "layout-bottom" | "layout-grid-01" | "layout-grid-02" | "layout-left" | "layout-right" | "layout-top" | "left-indent-01" | "left-indent-02" | "letter-spacing-01" | "letter-spacing-02" | "life-buoy-02" | "lightbulb-02" | "lightning-01" | "line-chart-down-02" | "line-chart-up-01" | "line-chart-up-02" | "line-chart-up-03" | "line-height" | "link-01" | "link-02" | "link-03" | "link-broken-01" | "link-external-01" | "list" | "loading-02" | "lock-01" | "lock-02" | "log-in-01" | "log-out-02" | "magic-wand-02" | "mail-01" | "mail-02" | "mail-03" | "mail-04" | "map-01" | "mark" | "marker-pin-01" | "marker-pin-06" | "maximize-01" | "maximize-02" | "menu-01" | "menu-04" | "message-chat-square" | "message-circle-02" | "message-dots-circle" | "microphone-01" | "microphone-off-01" | "minimize-01" | "minimize-02" | "minus" | "minus-circle" | "minus-square" | "monitor-01" | "moon-01" | "mouse" | "move" | "music-note-01" | "navigation-pointer-01" | "navigation-pointer-02" | "notification-message" | "octagon" | "package" | "paint-pour" | "palette" | "paperclip" | "paragraph-spacing" | "paragraph-wrap" | "passcode-lock" | "pause-circle" | "pause-square" | "pen-tool-02" | "pen-tool-minus" | "pen-tool-plus" | "pencil-01" | "pentagon" | "percent-01" | "percent-03" | "phone" | "phone-01" | "phone-call-01" | "pie-chart-01" | "pie-chart-02" | "pin-01" | "pin-02" | "placeholder" | "plane" | "play" | "play-circle" | "play-square" | "plus" | "plus-circle" | "plus-square" | "podcast" | "power-01" | "presentation-chart-03" | "printer" | "puzzle-piece-01" | "qr-code-01" | "receipt" | "receipt-check" | "recording-01" | "reflect-02" | "refresh-ccw-01" | "refresh-ccw-02" | "refresh-ccw-03" | "refresh-ccw-04" | "refresh-ccw-05" | "refresh-cw-01" | "refresh-cw-02" | "refresh-cw-03" | "refresh-cw-04" | "refresh-cw-05" | "repeat-01" | "repeat-04" | "reverse-left" | "reverse-right" | "right-indent-01" | "right-indent-02" | "rocket-02" | "roller-brush" | "rows-01" | "rows-02" | "rows-03" | "sale-01" | "sale-02" | "save-01" | "scales-01" | "scales-02" | "scan" | "scissors-02" | "search-lg" | "search-md" | "search-sm" | "send-01" | "server-01" | "settings-01" | "settings-04" | "share-01" | "share-03" | "share-06" | "share-07" | "shield-01" | "shield-03" | "shield-dollar" | "shield-off" | "shield-plus" | "shield-tick" | "shield-zap" | "shopping-bag-02" | "shopping-cart-01" | "shuffle-01" | "signal-01" | "signal-02" | "skip-back" | "skip-forward" | "slash-circle-01" | "slash-circle-02" | "slash-divider" | "slash-octagon" | "sliders-04" | "snowflake-02" | "spacing-height-01" | "spacing-height-02" | "spacing-width-01" | "spacing-width-02" | "speedometer-03" | "square" | "star-01" | "star-06" | "stars-01" | "stars-03" | "sticker-circle" | "sticker-square" | "stop-circle" | "sun" | "sun-setting-01" | "sun-setting-02" | "switch-horizontal-01" | "switch-horizontal-02" | "switch-vertical-01" | "switch-vertical-02" | "table" | "tag-02" | "target-02" | "target-03" | "target-04" | "target-05" | "terminal-browser" | "thermometer-02" | "thermometer-cold" | "thermometer-warm" | "thumbs-down" | "thumbs-up" | "toggle-03-left" | "toggle-03-right" | "tool-01" | "transform" | "translate-01" | "trash-01" | "trash-03" | "trend-down-01" | "trend-down-02" | "trend-up-01" | "trend-up-02" | "triangle" | "trophy-01" | "tv-02" | "type-01" | "umbrella-01" | "umbrella-03" | "underline-01" | "upload-01" | "upload-02" | "upload-03" | "upload-cloud-01" | "upload-cloud-02" | "user-01" | "user-check-01" | "user-circle" | "user-edit" | "user-plus-01" | "user-square" | "users-01" | "users-check" | "users-edit" | "users-minus" | "users-plus" | "users-x" | "video-recorder" | "video-recorder-off" | "volume-max" | "volume-min" | "volume-minus" | "volume-plus" | "volume-x" | "wallet-02" | "waves" | "wifi" | "x" | "x-circle" | "x-close" | "x-square" | "youtube" | "zap" | "zap-fast" | "zoom-in" | "zoom-out";
|
|
562
|
+
|
|
563
|
+
export declare interface IconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color' | 'children'> {
|
|
564
|
+
/** Icon name from the registry. See docs/llm/ICONS.md or the Foundation/Icons story. */
|
|
565
|
+
name: IconName;
|
|
566
|
+
/** `sm` (16px), `md` (20px), `lg` (24px), or an explicit pixel number. Default `md`. */
|
|
567
|
+
size?: IconSize | number;
|
|
568
|
+
/** Override color (CSS value). Defaults to `currentColor` via the icon token. */
|
|
569
|
+
color?: string;
|
|
570
|
+
/** Accessible label. When set, the icon is exposed as `img`; otherwise it is `aria-hidden`. */
|
|
571
|
+
title?: string;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
export declare type IconSize = 'sm' | 'md' | 'lg';
|
|
575
|
+
|
|
576
|
+
export declare const ImageCard: ForwardRefExoticComponent<ImageCardProps & RefAttributes<HTMLDivElement>>;
|
|
577
|
+
|
|
578
|
+
export declare type ImageCardLayout = 'card' | 'media';
|
|
579
|
+
|
|
580
|
+
export declare type ImageCardMediaAccent = 'default' | 'neutral' | 'brand' | 'brandSecondary' | 'positive' | 'positiveSecondary';
|
|
581
|
+
|
|
582
|
+
export declare type ImageCardMediaImageProps = Omit<MediaSlotProps, 'src' | 'alt' | 'type' | 'fit' | 'className' | 'children'>;
|
|
583
|
+
|
|
584
|
+
export declare interface ImageCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
585
|
+
layout?: ImageCardLayout;
|
|
586
|
+
title?: string;
|
|
587
|
+
children?: ReactNode;
|
|
588
|
+
mediaAccent?: ImageCardMediaAccent;
|
|
589
|
+
size?: CardSize;
|
|
590
|
+
radius?: CardRadius;
|
|
591
|
+
media?: ReactNode;
|
|
592
|
+
src?: string;
|
|
593
|
+
alt?: string;
|
|
594
|
+
placeholderTint?: MediaPlaceholderTint_2;
|
|
595
|
+
fit?: MediaSlotFit;
|
|
596
|
+
mediaClassName?: string;
|
|
597
|
+
mediaImageProps?: ImageCardMediaImageProps;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
|
|
601
|
+
|
|
602
|
+
export declare interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
603
|
+
label?: string;
|
|
604
|
+
error?: boolean;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
export declare const IntegrationCard: ForwardRefExoticComponent<IntegrationCardProps & RefAttributes<HTMLDivElement>>;
|
|
608
|
+
|
|
609
|
+
export declare interface IntegrationCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
610
|
+
name: string;
|
|
611
|
+
src: string;
|
|
612
|
+
variant?: IntegrationCardVariant;
|
|
613
|
+
logoSize?: number;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
export declare type IntegrationCardVariant = 'background' | 'none';
|
|
617
|
+
|
|
618
|
+
export declare interface IntegrationItem {
|
|
619
|
+
name: string;
|
|
620
|
+
src: string;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
export declare const IntegrationLogo: ForwardRefExoticComponent<IntegrationLogoProps & RefAttributes<HTMLSpanElement>>;
|
|
624
|
+
|
|
625
|
+
export declare type IntegrationLogoPlacement = 'foundation' | 'web' | 'platform';
|
|
626
|
+
|
|
627
|
+
export declare interface IntegrationLogoProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
628
|
+
src: string;
|
|
629
|
+
name: string;
|
|
630
|
+
placement?: IntegrationLogoPlacement;
|
|
631
|
+
size?: number;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
export declare const Integrations: ForwardRefExoticComponent<IntegrationsProps & RefAttributes<HTMLElement>>;
|
|
635
|
+
|
|
636
|
+
export declare type IntegrationsLayout = 'grid' | 'card-grid' | 'logo-strip';
|
|
637
|
+
|
|
638
|
+
export declare interface IntegrationsProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
639
|
+
layout?: IntegrationsLayout;
|
|
640
|
+
heading?: string;
|
|
641
|
+
description?: string;
|
|
642
|
+
integrations?: IntegrationItem[];
|
|
643
|
+
statValue?: string;
|
|
644
|
+
statLabel?: string;
|
|
645
|
+
ctaLabel?: string;
|
|
646
|
+
ctaHref?: string;
|
|
647
|
+
onCtaClick?: () => void;
|
|
648
|
+
actions?: ReactNode;
|
|
649
|
+
/** card-grid only: animate the rows as a slow horizontal marquee */
|
|
650
|
+
animate?: boolean;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
export declare type LogoColorMode = 'black' | 'colored' | 'random';
|
|
654
|
+
|
|
655
|
+
export declare const MarketingCta: ForwardRefExoticComponent<MarketingCtaProps & RefAttributes<HTMLDivElement>>;
|
|
656
|
+
|
|
657
|
+
export declare interface MarketingCtaProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
658
|
+
title: string;
|
|
659
|
+
subtitle?: string;
|
|
660
|
+
children?: ReactNode;
|
|
661
|
+
variant?: 'default' | 'dark';
|
|
662
|
+
background?: 'brand' | 'none';
|
|
663
|
+
headingSize?: 'default' | 'large';
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
export declare type MediaPlaceholderTint = 0 | 1 | 2 | 3;
|
|
667
|
+
|
|
668
|
+
declare type MediaPlaceholderTint_2 = 0 | 1 | 2 | 3;
|
|
669
|
+
|
|
670
|
+
/** @deprecated Use MediaSlot directly */
|
|
671
|
+
export declare const MediaPrimitive: ForwardRefExoticComponent<MediaPrimitiveProps & RefAttributes<HTMLImageElement>>;
|
|
672
|
+
|
|
673
|
+
export declare interface MediaPrimitiveProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'alt'> {
|
|
674
|
+
src?: string;
|
|
675
|
+
alt?: string;
|
|
676
|
+
placeholderTint?: MediaPlaceholderTint;
|
|
677
|
+
fit?: 'contain' | 'cover';
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
export declare const MediaSlot: ForwardRefExoticComponent<MediaSlotProps & RefAttributes<HTMLDivElement>>;
|
|
681
|
+
|
|
682
|
+
export declare type MediaSlotAspect = '1/1' | '4/3' | '3/2' | '16/9' | '21/9' | '9/16' | '3/4';
|
|
683
|
+
|
|
684
|
+
export declare type MediaSlotFit = 'contain' | 'cover' | 'fill';
|
|
685
|
+
|
|
686
|
+
export declare interface MediaSlotProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
687
|
+
/** Content type — determines what renders inside the slot */
|
|
688
|
+
type?: 'image' | 'video' | 'color' | 'custom';
|
|
689
|
+
/** Image/video source URL */
|
|
690
|
+
src?: string;
|
|
691
|
+
/** Alt text for images; used as aria-label for color slots */
|
|
692
|
+
alt?: string;
|
|
693
|
+
/** Object-fit for image/video content */
|
|
694
|
+
fit?: MediaSlotFit;
|
|
695
|
+
/** Poster frame URL for video */
|
|
696
|
+
poster?: string;
|
|
697
|
+
/** Autoplay video (muted by default for autoplay) */
|
|
698
|
+
autoPlay?: boolean;
|
|
699
|
+
/** Loop video playback */
|
|
700
|
+
loop?: boolean;
|
|
701
|
+
/** Show native video controls */
|
|
702
|
+
controls?: boolean;
|
|
703
|
+
/** Background color — CSS value or token reference */
|
|
704
|
+
color?: string;
|
|
705
|
+
/** Show placeholder icon (grey background with image icon) */
|
|
706
|
+
placeholder?: boolean;
|
|
707
|
+
/** Slot content for type="custom" or overlay content on other types */
|
|
708
|
+
children?: ReactNode;
|
|
709
|
+
/** Corner radius */
|
|
710
|
+
radius?: MediaSlotRadius;
|
|
711
|
+
/** Aspect ratio — CSS aspect-ratio value or preset */
|
|
712
|
+
aspectRatio?: MediaSlotAspect | string;
|
|
713
|
+
/** Explicit width (CSS value) */
|
|
714
|
+
width?: string | number;
|
|
715
|
+
/** Explicit height (CSS value) */
|
|
716
|
+
height?: string | number;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
export declare type MediaSlotRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
720
|
+
|
|
721
|
+
export declare type NavbarColorScheme = 'purple' | 'black';
|
|
722
|
+
|
|
723
|
+
declare interface NavbarDropdownColumn {
|
|
724
|
+
heading?: string;
|
|
725
|
+
items: NavbarDropdownItem[];
|
|
726
|
+
footer?: ReactNode;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
declare interface NavbarDropdownItem {
|
|
730
|
+
label: string;
|
|
731
|
+
href?: string;
|
|
732
|
+
description?: string;
|
|
733
|
+
icon?: ReactNode;
|
|
734
|
+
isHeading?: boolean;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
export declare type NavbarLayout = 'full' | 'short' | 'sub';
|
|
738
|
+
|
|
739
|
+
export declare const NavbarMenu: ForwardRefExoticComponent<NavbarMenuProps & RefAttributes<HTMLElement>>;
|
|
740
|
+
|
|
741
|
+
export declare interface NavbarMenuProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
742
|
+
layout?: NavbarLayout;
|
|
743
|
+
colorScheme?: NavbarColorScheme;
|
|
744
|
+
logoSrc?: string;
|
|
745
|
+
logoHref?: string;
|
|
746
|
+
logoAriaLabel?: string;
|
|
747
|
+
navItems?: NavbarNavItem[];
|
|
748
|
+
loginHref?: string;
|
|
749
|
+
pricingHref?: string;
|
|
750
|
+
showLogin?: boolean;
|
|
751
|
+
showPricing?: boolean;
|
|
752
|
+
showProductSwitcher?: boolean;
|
|
753
|
+
productSwitcherHref?: string;
|
|
754
|
+
contactSalesHref?: string;
|
|
755
|
+
actions?: ReactNode;
|
|
756
|
+
drawerFooter?: ReactNode;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
export declare interface NavbarNavItem {
|
|
760
|
+
label: string;
|
|
761
|
+
href?: string;
|
|
762
|
+
active?: boolean;
|
|
763
|
+
showChevron?: boolean;
|
|
764
|
+
dropdownColumns?: NavbarDropdownColumn[];
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
export declare interface NumberItem {
|
|
768
|
+
/** Stat value (e.g. "225K+", "99.9%", "3x"). 3–6 chars. */
|
|
769
|
+
value: string;
|
|
770
|
+
/** Stat label. 9–20 chars. Short phrase, not a sentence. */
|
|
771
|
+
label: string;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
export declare type NumbersLayout = 'bento' | 'stack-bento';
|
|
775
|
+
|
|
776
|
+
export declare const NumbersSection: ForwardRefExoticComponent<NumbersSectionProps & RefAttributes<HTMLElement>>;
|
|
777
|
+
|
|
778
|
+
export declare interface NumbersSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
779
|
+
layout?: NumbersLayout;
|
|
780
|
+
/** Section heading. 13–30 chars. */
|
|
781
|
+
heading: string;
|
|
782
|
+
items: NumberItem[];
|
|
783
|
+
containerWidth?: ContainerWidth;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
declare interface OneMediaCard {
|
|
787
|
+
heading: string;
|
|
788
|
+
description?: string;
|
|
789
|
+
/** Icon slot — use Shapes or any ReactNode, rendered above the heading */
|
|
790
|
+
icon?: ReactNode;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
export declare const ProductLogo: ForwardRefExoticComponent<ProductLogoProps & RefAttributes<HTMLSpanElement>>;
|
|
794
|
+
|
|
795
|
+
export declare interface ProductLogoProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
796
|
+
src: string;
|
|
797
|
+
name: string;
|
|
798
|
+
height?: number;
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
export declare interface RevealCard {
|
|
802
|
+
name: string;
|
|
803
|
+
media?: ReactNode;
|
|
804
|
+
bulletPoints?: string[];
|
|
805
|
+
tags?: string[];
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
export declare const Section: ForwardRefExoticComponent<SectionProps & RefAttributes<HTMLElement>>;
|
|
809
|
+
|
|
810
|
+
export declare interface SectionProps extends HTMLAttributes<HTMLElement> {
|
|
811
|
+
children: ReactNode;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/** Ordered list of shape names for iteration */
|
|
815
|
+
export declare const SHAPE_NAMES: ShapeName[];
|
|
816
|
+
|
|
817
|
+
export declare const SHAPE_PATHS: Record<string, ShapeDefinition>;
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Shape path definitions — foundation-level primitives.
|
|
821
|
+
* Each shape is defined by its SVG path `d` attribute and viewBox dimensions.
|
|
822
|
+
* Source: Figma Web Library → Shapes component (node 886:1648)
|
|
823
|
+
*
|
|
824
|
+
* Usage:
|
|
825
|
+
* - Color fill: render as inline SVG with currentColor
|
|
826
|
+
* - Image fill: use as clip-path on an image
|
|
827
|
+
* - Container: use as clip-path on a div with children
|
|
828
|
+
*/
|
|
829
|
+
export declare interface ShapeDefinition {
|
|
830
|
+
/** SVG path `d` attribute */
|
|
831
|
+
path: string;
|
|
832
|
+
/** viewBox width */
|
|
833
|
+
width: number;
|
|
834
|
+
/** viewBox height */
|
|
835
|
+
height: number;
|
|
836
|
+
/** Optional clip-rule */
|
|
837
|
+
clipRule?: 'evenodd';
|
|
838
|
+
/** Aspect ratio category */
|
|
839
|
+
aspect: 'square' | 'wide';
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
export declare type ShapeMode = 'color' | 'image' | 'container';
|
|
843
|
+
|
|
844
|
+
/** All available shape names */
|
|
845
|
+
export declare type ShapeName = keyof typeof SHAPE_PATHS;
|
|
846
|
+
|
|
847
|
+
export declare const Shapes: ForwardRefExoticComponent<ShapesProps & RefAttributes<HTMLDivElement>>;
|
|
848
|
+
|
|
849
|
+
export declare interface ShapesProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
850
|
+
/** Which shape to render */
|
|
851
|
+
shape?: ShapeName;
|
|
852
|
+
/**
|
|
853
|
+
* Render mode:
|
|
854
|
+
* - `color`: filled SVG shape using `color` prop or currentColor (default)
|
|
855
|
+
* - `image`: image clipped to the shape via clip-path
|
|
856
|
+
* - `container`: children clipped to the shape via clip-path
|
|
857
|
+
*/
|
|
858
|
+
mode?: ShapeMode;
|
|
859
|
+
/** Fill color (for mode="color"). Defaults to currentColor. */
|
|
860
|
+
color?: string;
|
|
861
|
+
/** Image URL (for mode="image") */
|
|
862
|
+
src?: string;
|
|
863
|
+
/** Alt text for the image (mode="image") */
|
|
864
|
+
alt?: string;
|
|
865
|
+
/** Children (for mode="container") */
|
|
866
|
+
children?: ReactNode;
|
|
867
|
+
/** Stretch SVG to fill container (ignores aspect ratio). Useful when the container is non-square. */
|
|
868
|
+
stretch?: boolean;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
export declare const SiteFooter: ForwardRefExoticComponent<SiteFooterProps & RefAttributes<HTMLElement>>;
|
|
872
|
+
|
|
873
|
+
export declare interface SiteFooterProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
874
|
+
logo?: {
|
|
875
|
+
src: string;
|
|
876
|
+
alt: string;
|
|
877
|
+
href?: string;
|
|
878
|
+
};
|
|
879
|
+
columns: FooterColumn[];
|
|
880
|
+
bottomLeft?: ReactNode;
|
|
881
|
+
bottomRight?: ReactNode;
|
|
882
|
+
legalLinks?: FooterLink[];
|
|
883
|
+
copyright?: string;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
export declare const SliderArrow: ForwardRefExoticComponent<SliderArrowProps & RefAttributes<HTMLButtonElement>>;
|
|
887
|
+
|
|
888
|
+
export declare type SliderArrowColor = 'light' | 'dark';
|
|
889
|
+
|
|
890
|
+
export declare type SliderArrowDirection = 'left' | 'right';
|
|
891
|
+
|
|
892
|
+
export declare interface SliderArrowProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
|
|
893
|
+
color?: SliderArrowColor;
|
|
894
|
+
direction?: SliderArrowDirection;
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
export declare const SliderDots: ForwardRefExoticComponent<SliderDotsProps & RefAttributes<HTMLDivElement>>;
|
|
898
|
+
|
|
899
|
+
export declare type SliderDotsColor = 'light' | 'dark';
|
|
900
|
+
|
|
901
|
+
export declare interface SliderDotsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
902
|
+
count: number;
|
|
903
|
+
activeIndex?: number;
|
|
904
|
+
color?: SliderDotsColor;
|
|
905
|
+
onDotClick?: (index: number) => void;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
/** Square shapes only */
|
|
909
|
+
export declare const SQUARE_SHAPES: string[];
|
|
910
|
+
|
|
911
|
+
export declare function Tab({ value, children, className, ...rest }: TabProps): JSX.Element;
|
|
912
|
+
|
|
913
|
+
export declare const TabList: ForwardRefExoticComponent<TabListProps & RefAttributes<HTMLDivElement>>;
|
|
914
|
+
|
|
915
|
+
export declare interface TabListProps extends HTMLAttributes<HTMLDivElement> {
|
|
916
|
+
children: ReactNode;
|
|
917
|
+
scrollable?: boolean;
|
|
918
|
+
align?: 'start' | 'center';
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
export declare function TabPanel({ value, children, className, ...rest }: TabPanelProps): JSX.Element;
|
|
922
|
+
|
|
923
|
+
export declare interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
924
|
+
value: string;
|
|
925
|
+
children: ReactNode;
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
export declare interface TabProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'value'> {
|
|
929
|
+
value: string;
|
|
930
|
+
children: ReactNode;
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
export declare const Tabs: ForwardRefExoticComponent<TabsProps & RefAttributes<HTMLDivElement>>;
|
|
934
|
+
|
|
935
|
+
export declare type TabsCapsuleStyle = 'fill' | 'stroke';
|
|
936
|
+
|
|
937
|
+
export declare type TabsIndicator = 'neutral' | 'brand';
|
|
938
|
+
|
|
939
|
+
export declare interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue'> {
|
|
940
|
+
defaultValue: string;
|
|
941
|
+
value?: string;
|
|
942
|
+
onValueChange?: (value: string) => void;
|
|
943
|
+
children: ReactNode;
|
|
944
|
+
indicator?: TabsIndicator;
|
|
945
|
+
variant?: TabsVariant;
|
|
946
|
+
capsuleStyle?: TabsCapsuleStyle;
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
export declare const TabsShellMuted: ForwardRefExoticComponent<TabsShellMutedProps & RefAttributes<HTMLDivElement>>;
|
|
950
|
+
|
|
951
|
+
export declare interface TabsShellMutedProps extends HTMLAttributes<HTMLDivElement> {
|
|
952
|
+
children: ReactNode;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
export declare const TabsShellStroke: ForwardRefExoticComponent<TabsShellStrokeProps & RefAttributes<HTMLDivElement>>;
|
|
956
|
+
|
|
957
|
+
export declare interface TabsShellStrokeProps extends HTMLAttributes<HTMLDivElement> {
|
|
958
|
+
children: ReactNode;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
declare type TabsVariant = 'underline' | 'capsule';
|
|
962
|
+
|
|
963
|
+
export declare const Tag: ForwardRefExoticComponent<TagProps & RefAttributes<HTMLSpanElement>>;
|
|
964
|
+
|
|
965
|
+
export declare interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
966
|
+
children: React.ReactNode;
|
|
967
|
+
variant?: TagVariant;
|
|
968
|
+
icon?: React.ReactNode;
|
|
969
|
+
showAddIcon?: boolean;
|
|
970
|
+
dropdown?: boolean;
|
|
971
|
+
clickable?: boolean;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
export declare type TagVariant = 'background' | 'dot' | 'icon';
|
|
975
|
+
|
|
976
|
+
export declare interface TestimonialCard {
|
|
977
|
+
logo?: ReactNode;
|
|
978
|
+
stars?: number;
|
|
979
|
+
stat?: string;
|
|
980
|
+
statLabel?: string;
|
|
981
|
+
/** Customer quote. 57–171 chars. Include quotation marks. */
|
|
982
|
+
quote: string;
|
|
983
|
+
/** Author full name. 6–14 chars. */
|
|
984
|
+
authorName: string;
|
|
985
|
+
/** Author title and company. 11–26 chars. */
|
|
986
|
+
authorRole: string;
|
|
987
|
+
authorImage?: string;
|
|
988
|
+
media?: ReactNode;
|
|
989
|
+
ctaLabel?: string;
|
|
990
|
+
ctaHref?: string;
|
|
991
|
+
onCtaClick?: () => void;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
export declare interface TestimonialCarouselCard {
|
|
995
|
+
type: 'stat' | 'quote';
|
|
996
|
+
category?: string;
|
|
997
|
+
stat?: string;
|
|
998
|
+
statLabel?: string;
|
|
999
|
+
quote?: string;
|
|
1000
|
+
authorName?: string;
|
|
1001
|
+
authorRole?: string;
|
|
1002
|
+
media?: ReactNode;
|
|
1003
|
+
logo?: ReactNode;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
export declare type TestimonialsLayout = 'carousel-with-stat' | 'mixed-stat-and-quote' | 'centered-single' | 'carousel-split-media-left' | 'carousel-case-study' | 'single-card-stat-quote' | 'quote-cards' | 'quote-cards-with-media';
|
|
1007
|
+
|
|
1008
|
+
export declare const TestimonialsSection: ForwardRefExoticComponent<TestimonialsSectionProps & RefAttributes<HTMLElement>>;
|
|
1009
|
+
|
|
1010
|
+
export declare interface TestimonialsSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
1011
|
+
layout?: TestimonialsLayout;
|
|
1012
|
+
/** Section heading. 11–26 chars. */
|
|
1013
|
+
heading?: string;
|
|
1014
|
+
/** Section description. 26–77 chars. 1–2 sentences. */
|
|
1015
|
+
description?: string;
|
|
1016
|
+
/** Eyebrow label above heading. 8–19 chars. */
|
|
1017
|
+
miniTitle?: string;
|
|
1018
|
+
ctaLabel?: string;
|
|
1019
|
+
ctaHref?: string;
|
|
1020
|
+
onCtaClick?: () => void;
|
|
1021
|
+
cards?: TestimonialCard[];
|
|
1022
|
+
carouselCards?: TestimonialCarouselCard[];
|
|
1023
|
+
caseStudyCards?: CaseStudyCard[];
|
|
1024
|
+
defaultActiveIndex?: number;
|
|
1025
|
+
containerWidth?: ContainerWidth;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
export declare const Toggle: ForwardRefExoticComponent<ToggleProps & RefAttributes<HTMLInputElement>>;
|
|
1029
|
+
|
|
1030
|
+
export declare interface ToggleProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
1031
|
+
label?: string;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
export declare const TrustBadge: ForwardRefExoticComponent<TrustBadgeProps & RefAttributes<HTMLDivElement>>;
|
|
1035
|
+
|
|
1036
|
+
export declare interface TrustBadgeItem {
|
|
1037
|
+
src: string;
|
|
1038
|
+
label: string;
|
|
1039
|
+
size?: 'regular' | 'large';
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
export declare interface TrustBadgeProps extends HTMLAttributes<HTMLDivElement> {
|
|
1043
|
+
src: string;
|
|
1044
|
+
label: string;
|
|
1045
|
+
size?: 'regular' | 'large';
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
/** @deprecated Use `<TrustSection layout="bento" />` */
|
|
1049
|
+
export declare const TrustBentoSection: ForwardRefExoticComponent<TrustSectionProps & RefAttributes<HTMLElement>>;
|
|
1050
|
+
|
|
1051
|
+
/** @deprecated Use `TrustSectionProps` */
|
|
1052
|
+
export declare type TrustBentoSectionProps = TrustSectionProps;
|
|
1053
|
+
|
|
1054
|
+
export declare const TrustSection: ForwardRefExoticComponent<TrustSectionProps & RefAttributes<HTMLElement>>;
|
|
1055
|
+
|
|
1056
|
+
export declare type TrustSectionLayout = 'badges' | 'bento';
|
|
1057
|
+
|
|
1058
|
+
export declare interface TrustSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
1059
|
+
/** Layout variant. `'badges'` shows a rating bar + badge grid. `'bento'` shows a security card + stat cards grid. */
|
|
1060
|
+
layout?: TrustSectionLayout;
|
|
1061
|
+
heading?: string;
|
|
1062
|
+
ratingValue?: string;
|
|
1063
|
+
ratingOut?: number;
|
|
1064
|
+
ratingLabel?: string;
|
|
1065
|
+
ratingIcon?: ReactNode;
|
|
1066
|
+
/** Required for `layout="badges"` */
|
|
1067
|
+
badges?: TrustBadgeItem[];
|
|
1068
|
+
ctaLabel?: string;
|
|
1069
|
+
ctaHref?: string;
|
|
1070
|
+
onCtaClick?: () => void;
|
|
1071
|
+
/** Eyebrow label. (`layout="bento"` only) */
|
|
1072
|
+
topicLabel?: string;
|
|
1073
|
+
/** Security card title. (`layout="bento"` only) */
|
|
1074
|
+
securityTitle?: string;
|
|
1075
|
+
/** Security card description. (`layout="bento"` only) */
|
|
1076
|
+
securityDescription?: string;
|
|
1077
|
+
securityLinkLabel?: string;
|
|
1078
|
+
securityLinkHref?: string;
|
|
1079
|
+
complianceLogos?: ComplianceLogo[];
|
|
1080
|
+
statCards?: TrustStatCard[];
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
export declare interface TrustStatCard {
|
|
1084
|
+
topLabel: string;
|
|
1085
|
+
stat: string;
|
|
1086
|
+
description: string;
|
|
1087
|
+
linkLabel?: string;
|
|
1088
|
+
linkHref?: string;
|
|
1089
|
+
logo?: ReactNode;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
export declare const WebLayout: ForwardRefExoticComponent<WebLayoutProps & RefAttributes<HTMLDivElement>>;
|
|
1093
|
+
|
|
1094
|
+
export declare interface WebLayoutProps extends HTMLAttributes<HTMLDivElement> {
|
|
1095
|
+
children: ReactNode;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
/** Wide shapes only */
|
|
1099
|
+
export declare const WIDE_SHAPES: string[];
|
|
1100
|
+
|
|
1101
|
+
export { }
|