@retinalabsllc/zairusjs 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/README.md +10 -0
- package/dist/index.d.mts +341 -0
- package/dist/index.d.ts +341 -0
- package/dist/index.js +983 -0
- package/dist/index.mjs +926 -0
- package/package.json +56 -0
package/README.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# ZairusJS
|
|
2
|
+
|
|
3
|
+
**ZairusJS** is a high performance, Ai data driven React UI component library designed for Next.js. It is engineered by **Retina Labs Company** to prioritize precision, privacy, and absolute user control.
|
|
4
|
+
|
|
5
|
+
## 🚀 Installation
|
|
6
|
+
|
|
7
|
+
To install directly from GitHub:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install retinalabsllc/zairus
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ToasterProps } from 'react-hot-toast';
|
|
3
|
+
|
|
4
|
+
interface FaqItem {
|
|
5
|
+
question: string;
|
|
6
|
+
answer: string;
|
|
7
|
+
}
|
|
8
|
+
interface FaqProps {
|
|
9
|
+
title?: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
items: FaqItem[];
|
|
12
|
+
}
|
|
13
|
+
declare const Faq: React.FC<FaqProps>;
|
|
14
|
+
|
|
15
|
+
interface ThreeDButtonProps {
|
|
16
|
+
href: string;
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
20
|
+
}
|
|
21
|
+
declare const ThreeDButton: React.FC<ThreeDButtonProps>;
|
|
22
|
+
|
|
23
|
+
interface HeaderLink {
|
|
24
|
+
label: string;
|
|
25
|
+
href: string;
|
|
26
|
+
hideOnMobile?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface HeaderProps {
|
|
29
|
+
logoSrc: string;
|
|
30
|
+
companyName: string;
|
|
31
|
+
subtitle?: string;
|
|
32
|
+
links: HeaderLink[];
|
|
33
|
+
}
|
|
34
|
+
declare const Header: React.FC<HeaderProps>;
|
|
35
|
+
|
|
36
|
+
interface FooterLink {
|
|
37
|
+
label: string;
|
|
38
|
+
href: string;
|
|
39
|
+
isExternal?: boolean;
|
|
40
|
+
}
|
|
41
|
+
interface FooterColumn {
|
|
42
|
+
title: string;
|
|
43
|
+
links: FooterLink[];
|
|
44
|
+
}
|
|
45
|
+
interface SocialLink {
|
|
46
|
+
name: string;
|
|
47
|
+
icon: any;
|
|
48
|
+
href: string;
|
|
49
|
+
}
|
|
50
|
+
interface FooterProps {
|
|
51
|
+
description: string;
|
|
52
|
+
columns: FooterColumn[];
|
|
53
|
+
socialLinks?: SocialLink[];
|
|
54
|
+
copyrightText: string;
|
|
55
|
+
topSection?: React.ReactNode;
|
|
56
|
+
}
|
|
57
|
+
declare const Footer: React.FC<FooterProps>;
|
|
58
|
+
|
|
59
|
+
interface HeroSectionProps {
|
|
60
|
+
badgeText: string;
|
|
61
|
+
titlePrefix: React.ReactNode;
|
|
62
|
+
highlightText: string;
|
|
63
|
+
cursorLabel: string;
|
|
64
|
+
subtitle: string;
|
|
65
|
+
ctaText: string;
|
|
66
|
+
ctaHref: string;
|
|
67
|
+
showImage?: boolean;
|
|
68
|
+
imageSrc?: string;
|
|
69
|
+
}
|
|
70
|
+
declare const HeroSection: React.FC<HeroSectionProps>;
|
|
71
|
+
|
|
72
|
+
interface BentoFeature {
|
|
73
|
+
label: string;
|
|
74
|
+
title: string;
|
|
75
|
+
desc: string;
|
|
76
|
+
size: string;
|
|
77
|
+
icon: any;
|
|
78
|
+
number?: string;
|
|
79
|
+
isBrand?: boolean;
|
|
80
|
+
isWhite?: boolean;
|
|
81
|
+
}
|
|
82
|
+
interface AppBento2Props {
|
|
83
|
+
tagline: string;
|
|
84
|
+
headline: React.ReactNode;
|
|
85
|
+
features: BentoFeature[];
|
|
86
|
+
}
|
|
87
|
+
declare const AppBento2: React.FC<AppBento2Props>;
|
|
88
|
+
|
|
89
|
+
interface ScrollFeature {
|
|
90
|
+
title: string;
|
|
91
|
+
desc: string;
|
|
92
|
+
image?: string;
|
|
93
|
+
}
|
|
94
|
+
interface FeatureScrollProps {
|
|
95
|
+
tagline: string;
|
|
96
|
+
headline: React.ReactNode;
|
|
97
|
+
features: ScrollFeature[];
|
|
98
|
+
}
|
|
99
|
+
declare const FeatureScroll: React.FC<FeatureScrollProps>;
|
|
100
|
+
|
|
101
|
+
interface AITranscriptionFeatureProps {
|
|
102
|
+
tagline: string;
|
|
103
|
+
headline: React.ReactNode;
|
|
104
|
+
description: string;
|
|
105
|
+
imagePath?: string;
|
|
106
|
+
detailTextPrefix: string;
|
|
107
|
+
highlightText: string;
|
|
108
|
+
cursorLabel: string;
|
|
109
|
+
detailTextSuffix: string;
|
|
110
|
+
}
|
|
111
|
+
declare const AITranscriptionFeature: React.FC<AITranscriptionFeatureProps>;
|
|
112
|
+
|
|
113
|
+
interface PlatformFeatureItem {
|
|
114
|
+
title: string;
|
|
115
|
+
desc: string;
|
|
116
|
+
icon: any;
|
|
117
|
+
delay?: string;
|
|
118
|
+
}
|
|
119
|
+
interface PlatformFeaturesProps {
|
|
120
|
+
tagline: string;
|
|
121
|
+
headline: React.ReactNode;
|
|
122
|
+
description: string;
|
|
123
|
+
features: PlatformFeatureItem[];
|
|
124
|
+
}
|
|
125
|
+
declare const PlatformFeatures: React.FC<PlatformFeaturesProps>;
|
|
126
|
+
|
|
127
|
+
interface DocumentSectionData {
|
|
128
|
+
/** Optional section heading */
|
|
129
|
+
heading?: string;
|
|
130
|
+
/** Array of paragraphs. Each string becomes its own <p> tag */
|
|
131
|
+
paragraphs?: string[];
|
|
132
|
+
/** If provided, renders a highlighted quote box */
|
|
133
|
+
quote?: string;
|
|
134
|
+
}
|
|
135
|
+
interface ManagedDocumentProps {
|
|
136
|
+
/** The small tracking text above the main title */
|
|
137
|
+
tagline?: string;
|
|
138
|
+
/** The main H1 title of the page */
|
|
139
|
+
title: string;
|
|
140
|
+
/** The content of the document */
|
|
141
|
+
sections: DocumentSectionData[];
|
|
142
|
+
/** Optional footer contact text */
|
|
143
|
+
contactText?: string;
|
|
144
|
+
/** Optional footer contact email to create a mailto link */
|
|
145
|
+
contactEmail?: string;
|
|
146
|
+
}
|
|
147
|
+
declare const ManagedDocument: React.FC<ManagedDocumentProps>;
|
|
148
|
+
|
|
149
|
+
interface EmailContact {
|
|
150
|
+
/** The department or purpose (e.g., "General Inquiries") */
|
|
151
|
+
label: string;
|
|
152
|
+
/** The first part of the email before the @ (e.g., "info") */
|
|
153
|
+
user: string;
|
|
154
|
+
/** The domain after the @ (e.g., "audditur.com") */
|
|
155
|
+
domain: string;
|
|
156
|
+
}
|
|
157
|
+
interface SocialContact {
|
|
158
|
+
label: string;
|
|
159
|
+
href: string;
|
|
160
|
+
icon: any;
|
|
161
|
+
}
|
|
162
|
+
interface CompanyDetails {
|
|
163
|
+
name?: string;
|
|
164
|
+
/** Array of strings for addresses, registration numbers, etc. */
|
|
165
|
+
lines?: string[];
|
|
166
|
+
/** Phone number (automatically formats into a clickable tel: link) */
|
|
167
|
+
phone?: string;
|
|
168
|
+
}
|
|
169
|
+
interface ManagedContactBlockProps {
|
|
170
|
+
/** The small tracking text above the main title */
|
|
171
|
+
tagline?: string;
|
|
172
|
+
/** The main H1 title of the page */
|
|
173
|
+
title: string;
|
|
174
|
+
/** Company details column data */
|
|
175
|
+
company?: CompanyDetails;
|
|
176
|
+
/** Email directory column data */
|
|
177
|
+
emails?: EmailContact[];
|
|
178
|
+
/** Social links column data */
|
|
179
|
+
socials?: SocialContact[];
|
|
180
|
+
}
|
|
181
|
+
declare const ManagedContactBlock: React.FC<ManagedContactBlockProps>;
|
|
182
|
+
|
|
183
|
+
interface PricingFeature {
|
|
184
|
+
name: string;
|
|
185
|
+
/** true = Checkmark, false = Cross, string = Checkmark with text (e.g., "3 Months") */
|
|
186
|
+
value: boolean | string;
|
|
187
|
+
}
|
|
188
|
+
interface PricingPlan {
|
|
189
|
+
name: string;
|
|
190
|
+
price: string;
|
|
191
|
+
period?: string;
|
|
192
|
+
description: string;
|
|
193
|
+
ctaText: string;
|
|
194
|
+
ctaHref: string;
|
|
195
|
+
/** If true, uses the ThreeDButton and adds premium border styling */
|
|
196
|
+
isPremium?: boolean;
|
|
197
|
+
features: PricingFeature[];
|
|
198
|
+
}
|
|
199
|
+
interface ManagedPricingBlockProps {
|
|
200
|
+
tagline?: string;
|
|
201
|
+
title: string;
|
|
202
|
+
plans: PricingPlan[];
|
|
203
|
+
}
|
|
204
|
+
declare const ManagedPricingBlock: React.FC<ManagedPricingBlockProps>;
|
|
205
|
+
|
|
206
|
+
interface BoardMember {
|
|
207
|
+
name: string;
|
|
208
|
+
title: string;
|
|
209
|
+
imageSrc: string;
|
|
210
|
+
bio: string;
|
|
211
|
+
/** Link for the "Visit Website" button */
|
|
212
|
+
website: string;
|
|
213
|
+
/** Optional: X (Twitter) handle without the @ */
|
|
214
|
+
twitterHandle?: string;
|
|
215
|
+
/** Optional: Full LinkedIn URL */
|
|
216
|
+
linkedinHandle?: string;
|
|
217
|
+
}
|
|
218
|
+
interface ManagedBoardBlockProps {
|
|
219
|
+
/** Small tracking text above the main title */
|
|
220
|
+
tagline?: string;
|
|
221
|
+
/** Main H1 title of the page */
|
|
222
|
+
title: string;
|
|
223
|
+
/** Array of board member objects */
|
|
224
|
+
members: BoardMember[];
|
|
225
|
+
/** Optional footer contact text */
|
|
226
|
+
contactText?: string;
|
|
227
|
+
/** Optional footer contact email to create a mailto link */
|
|
228
|
+
contactEmail?: string;
|
|
229
|
+
}
|
|
230
|
+
declare const ManagedBoardBlock: React.FC<ManagedBoardBlockProps>;
|
|
231
|
+
|
|
232
|
+
interface ProjectItem {
|
|
233
|
+
id: string;
|
|
234
|
+
title: string;
|
|
235
|
+
/** Right-aligned text, can be a date or a category like "Core Technology" */
|
|
236
|
+
date: string;
|
|
237
|
+
/** The destination URL */
|
|
238
|
+
link: string;
|
|
239
|
+
/** If true, uses a standard <a> tag with target="_blank" instead of next/link */
|
|
240
|
+
isExternal?: boolean;
|
|
241
|
+
/** Badge text. If "Production", it gets highlighted in black. */
|
|
242
|
+
status: string;
|
|
243
|
+
description: string;
|
|
244
|
+
}
|
|
245
|
+
interface ManagedProjectsBlockProps {
|
|
246
|
+
/** Small tracking text above the main title */
|
|
247
|
+
tagline?: string;
|
|
248
|
+
/** Main H1 title of the page */
|
|
249
|
+
title: string;
|
|
250
|
+
/** Array of project objects */
|
|
251
|
+
projects: ProjectItem[];
|
|
252
|
+
}
|
|
253
|
+
declare const ManagedProjectsBlock: React.FC<ManagedProjectsBlockProps>;
|
|
254
|
+
|
|
255
|
+
interface ManagedNotFoundBlockProps {
|
|
256
|
+
/** The main error title. Defaults to "404 - Page Not Found" */
|
|
257
|
+
title?: string;
|
|
258
|
+
/** The description text. Defaults to standard not found message. */
|
|
259
|
+
description?: string;
|
|
260
|
+
/** The text for the back link. Defaults to "← Go back to Homepage" */
|
|
261
|
+
backLinkText?: string;
|
|
262
|
+
/** The destination for the back link. Defaults to "/" */
|
|
263
|
+
backLinkHref?: string;
|
|
264
|
+
}
|
|
265
|
+
declare const ManagedNotFoundBlock: React.FC<ManagedNotFoundBlockProps>;
|
|
266
|
+
|
|
267
|
+
interface PageSpinnerProps {
|
|
268
|
+
/** Optional override for the outer container styling */
|
|
269
|
+
className?: string;
|
|
270
|
+
/** Optional override for the icon styling (defaults to text-black) */
|
|
271
|
+
iconClassName?: string;
|
|
272
|
+
/** Size of the spinner (defaults to 32) */
|
|
273
|
+
size?: number;
|
|
274
|
+
}
|
|
275
|
+
declare const PageSpinner: React.FC<PageSpinnerProps>;
|
|
276
|
+
|
|
277
|
+
declare const ManagedToaster: React.FC<ToasterProps>;
|
|
278
|
+
|
|
279
|
+
interface ManagedNewsletterSplitBlockProps {
|
|
280
|
+
tagline?: string;
|
|
281
|
+
title: string;
|
|
282
|
+
subtitle?: string;
|
|
283
|
+
description: string;
|
|
284
|
+
imageSrc: string;
|
|
285
|
+
imageAlt?: string;
|
|
286
|
+
dividerText?: string;
|
|
287
|
+
ctaText?: string;
|
|
288
|
+
ctaHref?: string;
|
|
289
|
+
/** Optional children to pass input fields (like the new TextInput) above the button */
|
|
290
|
+
children?: React.ReactNode;
|
|
291
|
+
}
|
|
292
|
+
declare const ManagedNewsletterSplitBlock: React.FC<ManagedNewsletterSplitBlockProps>;
|
|
293
|
+
|
|
294
|
+
interface TextInputProps {
|
|
295
|
+
label: string;
|
|
296
|
+
value: string;
|
|
297
|
+
onChange: (value: string) => void;
|
|
298
|
+
placeholder?: string;
|
|
299
|
+
maxLength?: number;
|
|
300
|
+
disabled?: boolean;
|
|
301
|
+
readOnly?: boolean;
|
|
302
|
+
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
303
|
+
}
|
|
304
|
+
interface NumberInputProps {
|
|
305
|
+
label: string;
|
|
306
|
+
value: string;
|
|
307
|
+
onChange: (value: string) => void;
|
|
308
|
+
placeholder?: string;
|
|
309
|
+
maxLength?: number;
|
|
310
|
+
disabled?: boolean;
|
|
311
|
+
}
|
|
312
|
+
declare const TextInput: React.FC<TextInputProps>;
|
|
313
|
+
declare const NumberInput: React.FC<NumberInputProps>;
|
|
314
|
+
|
|
315
|
+
interface PortfolioHeroProps {
|
|
316
|
+
/** The source URL for the circular avatar */
|
|
317
|
+
imageSrc: string;
|
|
318
|
+
/** Alt text for the avatar */
|
|
319
|
+
imageAlt?: string;
|
|
320
|
+
/** The main H1 name */
|
|
321
|
+
name: string;
|
|
322
|
+
/** The small label above the social link (e.g., "LinkedIn") */
|
|
323
|
+
socialLabel?: string;
|
|
324
|
+
/** The display text for the social link */
|
|
325
|
+
socialLinkText?: string;
|
|
326
|
+
/** The destination URL for the social link */
|
|
327
|
+
socialLinkHref?: string;
|
|
328
|
+
/** The main biography paragraph */
|
|
329
|
+
bio: string;
|
|
330
|
+
/** Text for the primary 3D Button */
|
|
331
|
+
primaryCtaText?: string;
|
|
332
|
+
/** Destination for the primary 3D Button */
|
|
333
|
+
primaryCtaHref?: string;
|
|
334
|
+
/** Text for the secondary neutral button */
|
|
335
|
+
secondaryCtaText?: string;
|
|
336
|
+
/** Destination for the secondary neutral button */
|
|
337
|
+
secondaryCtaHref?: string;
|
|
338
|
+
}
|
|
339
|
+
declare const PortfolioHero: React.FC<PortfolioHeroProps>;
|
|
340
|
+
|
|
341
|
+
export { AITranscriptionFeature, type AITranscriptionFeatureProps, AppBento2, type AppBento2Props, type BentoFeature, type BoardMember, type CompanyDetails, type DocumentSectionData, type EmailContact, Faq, type FaqItem, type FaqProps, FeatureScroll, type FeatureScrollProps, Footer, type FooterColumn, type FooterLink, type FooterProps, Header, type HeaderLink, type HeaderProps, HeroSection, type HeroSectionProps, ManagedBoardBlock, type ManagedBoardBlockProps, ManagedContactBlock, type ManagedContactBlockProps, ManagedDocument, type ManagedDocumentProps, ManagedNewsletterSplitBlock, type ManagedNewsletterSplitBlockProps, ManagedNotFoundBlock, type ManagedNotFoundBlockProps, ManagedPricingBlock, type ManagedPricingBlockProps, ManagedProjectsBlock, type ManagedProjectsBlockProps, ManagedToaster, NumberInput, type NumberInputProps, PageSpinner, type PageSpinnerProps, type PlatformFeatureItem, PlatformFeatures, type PlatformFeaturesProps, PortfolioHero, type PortfolioHeroProps, type PricingFeature, type PricingPlan, type ProjectItem, type ScrollFeature, type SocialContact, type SocialLink, TextInput, type TextInputProps, ThreeDButton, type ThreeDButtonProps };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ToasterProps } from 'react-hot-toast';
|
|
3
|
+
|
|
4
|
+
interface FaqItem {
|
|
5
|
+
question: string;
|
|
6
|
+
answer: string;
|
|
7
|
+
}
|
|
8
|
+
interface FaqProps {
|
|
9
|
+
title?: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
items: FaqItem[];
|
|
12
|
+
}
|
|
13
|
+
declare const Faq: React.FC<FaqProps>;
|
|
14
|
+
|
|
15
|
+
interface ThreeDButtonProps {
|
|
16
|
+
href: string;
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
20
|
+
}
|
|
21
|
+
declare const ThreeDButton: React.FC<ThreeDButtonProps>;
|
|
22
|
+
|
|
23
|
+
interface HeaderLink {
|
|
24
|
+
label: string;
|
|
25
|
+
href: string;
|
|
26
|
+
hideOnMobile?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface HeaderProps {
|
|
29
|
+
logoSrc: string;
|
|
30
|
+
companyName: string;
|
|
31
|
+
subtitle?: string;
|
|
32
|
+
links: HeaderLink[];
|
|
33
|
+
}
|
|
34
|
+
declare const Header: React.FC<HeaderProps>;
|
|
35
|
+
|
|
36
|
+
interface FooterLink {
|
|
37
|
+
label: string;
|
|
38
|
+
href: string;
|
|
39
|
+
isExternal?: boolean;
|
|
40
|
+
}
|
|
41
|
+
interface FooterColumn {
|
|
42
|
+
title: string;
|
|
43
|
+
links: FooterLink[];
|
|
44
|
+
}
|
|
45
|
+
interface SocialLink {
|
|
46
|
+
name: string;
|
|
47
|
+
icon: any;
|
|
48
|
+
href: string;
|
|
49
|
+
}
|
|
50
|
+
interface FooterProps {
|
|
51
|
+
description: string;
|
|
52
|
+
columns: FooterColumn[];
|
|
53
|
+
socialLinks?: SocialLink[];
|
|
54
|
+
copyrightText: string;
|
|
55
|
+
topSection?: React.ReactNode;
|
|
56
|
+
}
|
|
57
|
+
declare const Footer: React.FC<FooterProps>;
|
|
58
|
+
|
|
59
|
+
interface HeroSectionProps {
|
|
60
|
+
badgeText: string;
|
|
61
|
+
titlePrefix: React.ReactNode;
|
|
62
|
+
highlightText: string;
|
|
63
|
+
cursorLabel: string;
|
|
64
|
+
subtitle: string;
|
|
65
|
+
ctaText: string;
|
|
66
|
+
ctaHref: string;
|
|
67
|
+
showImage?: boolean;
|
|
68
|
+
imageSrc?: string;
|
|
69
|
+
}
|
|
70
|
+
declare const HeroSection: React.FC<HeroSectionProps>;
|
|
71
|
+
|
|
72
|
+
interface BentoFeature {
|
|
73
|
+
label: string;
|
|
74
|
+
title: string;
|
|
75
|
+
desc: string;
|
|
76
|
+
size: string;
|
|
77
|
+
icon: any;
|
|
78
|
+
number?: string;
|
|
79
|
+
isBrand?: boolean;
|
|
80
|
+
isWhite?: boolean;
|
|
81
|
+
}
|
|
82
|
+
interface AppBento2Props {
|
|
83
|
+
tagline: string;
|
|
84
|
+
headline: React.ReactNode;
|
|
85
|
+
features: BentoFeature[];
|
|
86
|
+
}
|
|
87
|
+
declare const AppBento2: React.FC<AppBento2Props>;
|
|
88
|
+
|
|
89
|
+
interface ScrollFeature {
|
|
90
|
+
title: string;
|
|
91
|
+
desc: string;
|
|
92
|
+
image?: string;
|
|
93
|
+
}
|
|
94
|
+
interface FeatureScrollProps {
|
|
95
|
+
tagline: string;
|
|
96
|
+
headline: React.ReactNode;
|
|
97
|
+
features: ScrollFeature[];
|
|
98
|
+
}
|
|
99
|
+
declare const FeatureScroll: React.FC<FeatureScrollProps>;
|
|
100
|
+
|
|
101
|
+
interface AITranscriptionFeatureProps {
|
|
102
|
+
tagline: string;
|
|
103
|
+
headline: React.ReactNode;
|
|
104
|
+
description: string;
|
|
105
|
+
imagePath?: string;
|
|
106
|
+
detailTextPrefix: string;
|
|
107
|
+
highlightText: string;
|
|
108
|
+
cursorLabel: string;
|
|
109
|
+
detailTextSuffix: string;
|
|
110
|
+
}
|
|
111
|
+
declare const AITranscriptionFeature: React.FC<AITranscriptionFeatureProps>;
|
|
112
|
+
|
|
113
|
+
interface PlatformFeatureItem {
|
|
114
|
+
title: string;
|
|
115
|
+
desc: string;
|
|
116
|
+
icon: any;
|
|
117
|
+
delay?: string;
|
|
118
|
+
}
|
|
119
|
+
interface PlatformFeaturesProps {
|
|
120
|
+
tagline: string;
|
|
121
|
+
headline: React.ReactNode;
|
|
122
|
+
description: string;
|
|
123
|
+
features: PlatformFeatureItem[];
|
|
124
|
+
}
|
|
125
|
+
declare const PlatformFeatures: React.FC<PlatformFeaturesProps>;
|
|
126
|
+
|
|
127
|
+
interface DocumentSectionData {
|
|
128
|
+
/** Optional section heading */
|
|
129
|
+
heading?: string;
|
|
130
|
+
/** Array of paragraphs. Each string becomes its own <p> tag */
|
|
131
|
+
paragraphs?: string[];
|
|
132
|
+
/** If provided, renders a highlighted quote box */
|
|
133
|
+
quote?: string;
|
|
134
|
+
}
|
|
135
|
+
interface ManagedDocumentProps {
|
|
136
|
+
/** The small tracking text above the main title */
|
|
137
|
+
tagline?: string;
|
|
138
|
+
/** The main H1 title of the page */
|
|
139
|
+
title: string;
|
|
140
|
+
/** The content of the document */
|
|
141
|
+
sections: DocumentSectionData[];
|
|
142
|
+
/** Optional footer contact text */
|
|
143
|
+
contactText?: string;
|
|
144
|
+
/** Optional footer contact email to create a mailto link */
|
|
145
|
+
contactEmail?: string;
|
|
146
|
+
}
|
|
147
|
+
declare const ManagedDocument: React.FC<ManagedDocumentProps>;
|
|
148
|
+
|
|
149
|
+
interface EmailContact {
|
|
150
|
+
/** The department or purpose (e.g., "General Inquiries") */
|
|
151
|
+
label: string;
|
|
152
|
+
/** The first part of the email before the @ (e.g., "info") */
|
|
153
|
+
user: string;
|
|
154
|
+
/** The domain after the @ (e.g., "audditur.com") */
|
|
155
|
+
domain: string;
|
|
156
|
+
}
|
|
157
|
+
interface SocialContact {
|
|
158
|
+
label: string;
|
|
159
|
+
href: string;
|
|
160
|
+
icon: any;
|
|
161
|
+
}
|
|
162
|
+
interface CompanyDetails {
|
|
163
|
+
name?: string;
|
|
164
|
+
/** Array of strings for addresses, registration numbers, etc. */
|
|
165
|
+
lines?: string[];
|
|
166
|
+
/** Phone number (automatically formats into a clickable tel: link) */
|
|
167
|
+
phone?: string;
|
|
168
|
+
}
|
|
169
|
+
interface ManagedContactBlockProps {
|
|
170
|
+
/** The small tracking text above the main title */
|
|
171
|
+
tagline?: string;
|
|
172
|
+
/** The main H1 title of the page */
|
|
173
|
+
title: string;
|
|
174
|
+
/** Company details column data */
|
|
175
|
+
company?: CompanyDetails;
|
|
176
|
+
/** Email directory column data */
|
|
177
|
+
emails?: EmailContact[];
|
|
178
|
+
/** Social links column data */
|
|
179
|
+
socials?: SocialContact[];
|
|
180
|
+
}
|
|
181
|
+
declare const ManagedContactBlock: React.FC<ManagedContactBlockProps>;
|
|
182
|
+
|
|
183
|
+
interface PricingFeature {
|
|
184
|
+
name: string;
|
|
185
|
+
/** true = Checkmark, false = Cross, string = Checkmark with text (e.g., "3 Months") */
|
|
186
|
+
value: boolean | string;
|
|
187
|
+
}
|
|
188
|
+
interface PricingPlan {
|
|
189
|
+
name: string;
|
|
190
|
+
price: string;
|
|
191
|
+
period?: string;
|
|
192
|
+
description: string;
|
|
193
|
+
ctaText: string;
|
|
194
|
+
ctaHref: string;
|
|
195
|
+
/** If true, uses the ThreeDButton and adds premium border styling */
|
|
196
|
+
isPremium?: boolean;
|
|
197
|
+
features: PricingFeature[];
|
|
198
|
+
}
|
|
199
|
+
interface ManagedPricingBlockProps {
|
|
200
|
+
tagline?: string;
|
|
201
|
+
title: string;
|
|
202
|
+
plans: PricingPlan[];
|
|
203
|
+
}
|
|
204
|
+
declare const ManagedPricingBlock: React.FC<ManagedPricingBlockProps>;
|
|
205
|
+
|
|
206
|
+
interface BoardMember {
|
|
207
|
+
name: string;
|
|
208
|
+
title: string;
|
|
209
|
+
imageSrc: string;
|
|
210
|
+
bio: string;
|
|
211
|
+
/** Link for the "Visit Website" button */
|
|
212
|
+
website: string;
|
|
213
|
+
/** Optional: X (Twitter) handle without the @ */
|
|
214
|
+
twitterHandle?: string;
|
|
215
|
+
/** Optional: Full LinkedIn URL */
|
|
216
|
+
linkedinHandle?: string;
|
|
217
|
+
}
|
|
218
|
+
interface ManagedBoardBlockProps {
|
|
219
|
+
/** Small tracking text above the main title */
|
|
220
|
+
tagline?: string;
|
|
221
|
+
/** Main H1 title of the page */
|
|
222
|
+
title: string;
|
|
223
|
+
/** Array of board member objects */
|
|
224
|
+
members: BoardMember[];
|
|
225
|
+
/** Optional footer contact text */
|
|
226
|
+
contactText?: string;
|
|
227
|
+
/** Optional footer contact email to create a mailto link */
|
|
228
|
+
contactEmail?: string;
|
|
229
|
+
}
|
|
230
|
+
declare const ManagedBoardBlock: React.FC<ManagedBoardBlockProps>;
|
|
231
|
+
|
|
232
|
+
interface ProjectItem {
|
|
233
|
+
id: string;
|
|
234
|
+
title: string;
|
|
235
|
+
/** Right-aligned text, can be a date or a category like "Core Technology" */
|
|
236
|
+
date: string;
|
|
237
|
+
/** The destination URL */
|
|
238
|
+
link: string;
|
|
239
|
+
/** If true, uses a standard <a> tag with target="_blank" instead of next/link */
|
|
240
|
+
isExternal?: boolean;
|
|
241
|
+
/** Badge text. If "Production", it gets highlighted in black. */
|
|
242
|
+
status: string;
|
|
243
|
+
description: string;
|
|
244
|
+
}
|
|
245
|
+
interface ManagedProjectsBlockProps {
|
|
246
|
+
/** Small tracking text above the main title */
|
|
247
|
+
tagline?: string;
|
|
248
|
+
/** Main H1 title of the page */
|
|
249
|
+
title: string;
|
|
250
|
+
/** Array of project objects */
|
|
251
|
+
projects: ProjectItem[];
|
|
252
|
+
}
|
|
253
|
+
declare const ManagedProjectsBlock: React.FC<ManagedProjectsBlockProps>;
|
|
254
|
+
|
|
255
|
+
interface ManagedNotFoundBlockProps {
|
|
256
|
+
/** The main error title. Defaults to "404 - Page Not Found" */
|
|
257
|
+
title?: string;
|
|
258
|
+
/** The description text. Defaults to standard not found message. */
|
|
259
|
+
description?: string;
|
|
260
|
+
/** The text for the back link. Defaults to "← Go back to Homepage" */
|
|
261
|
+
backLinkText?: string;
|
|
262
|
+
/** The destination for the back link. Defaults to "/" */
|
|
263
|
+
backLinkHref?: string;
|
|
264
|
+
}
|
|
265
|
+
declare const ManagedNotFoundBlock: React.FC<ManagedNotFoundBlockProps>;
|
|
266
|
+
|
|
267
|
+
interface PageSpinnerProps {
|
|
268
|
+
/** Optional override for the outer container styling */
|
|
269
|
+
className?: string;
|
|
270
|
+
/** Optional override for the icon styling (defaults to text-black) */
|
|
271
|
+
iconClassName?: string;
|
|
272
|
+
/** Size of the spinner (defaults to 32) */
|
|
273
|
+
size?: number;
|
|
274
|
+
}
|
|
275
|
+
declare const PageSpinner: React.FC<PageSpinnerProps>;
|
|
276
|
+
|
|
277
|
+
declare const ManagedToaster: React.FC<ToasterProps>;
|
|
278
|
+
|
|
279
|
+
interface ManagedNewsletterSplitBlockProps {
|
|
280
|
+
tagline?: string;
|
|
281
|
+
title: string;
|
|
282
|
+
subtitle?: string;
|
|
283
|
+
description: string;
|
|
284
|
+
imageSrc: string;
|
|
285
|
+
imageAlt?: string;
|
|
286
|
+
dividerText?: string;
|
|
287
|
+
ctaText?: string;
|
|
288
|
+
ctaHref?: string;
|
|
289
|
+
/** Optional children to pass input fields (like the new TextInput) above the button */
|
|
290
|
+
children?: React.ReactNode;
|
|
291
|
+
}
|
|
292
|
+
declare const ManagedNewsletterSplitBlock: React.FC<ManagedNewsletterSplitBlockProps>;
|
|
293
|
+
|
|
294
|
+
interface TextInputProps {
|
|
295
|
+
label: string;
|
|
296
|
+
value: string;
|
|
297
|
+
onChange: (value: string) => void;
|
|
298
|
+
placeholder?: string;
|
|
299
|
+
maxLength?: number;
|
|
300
|
+
disabled?: boolean;
|
|
301
|
+
readOnly?: boolean;
|
|
302
|
+
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
303
|
+
}
|
|
304
|
+
interface NumberInputProps {
|
|
305
|
+
label: string;
|
|
306
|
+
value: string;
|
|
307
|
+
onChange: (value: string) => void;
|
|
308
|
+
placeholder?: string;
|
|
309
|
+
maxLength?: number;
|
|
310
|
+
disabled?: boolean;
|
|
311
|
+
}
|
|
312
|
+
declare const TextInput: React.FC<TextInputProps>;
|
|
313
|
+
declare const NumberInput: React.FC<NumberInputProps>;
|
|
314
|
+
|
|
315
|
+
interface PortfolioHeroProps {
|
|
316
|
+
/** The source URL for the circular avatar */
|
|
317
|
+
imageSrc: string;
|
|
318
|
+
/** Alt text for the avatar */
|
|
319
|
+
imageAlt?: string;
|
|
320
|
+
/** The main H1 name */
|
|
321
|
+
name: string;
|
|
322
|
+
/** The small label above the social link (e.g., "LinkedIn") */
|
|
323
|
+
socialLabel?: string;
|
|
324
|
+
/** The display text for the social link */
|
|
325
|
+
socialLinkText?: string;
|
|
326
|
+
/** The destination URL for the social link */
|
|
327
|
+
socialLinkHref?: string;
|
|
328
|
+
/** The main biography paragraph */
|
|
329
|
+
bio: string;
|
|
330
|
+
/** Text for the primary 3D Button */
|
|
331
|
+
primaryCtaText?: string;
|
|
332
|
+
/** Destination for the primary 3D Button */
|
|
333
|
+
primaryCtaHref?: string;
|
|
334
|
+
/** Text for the secondary neutral button */
|
|
335
|
+
secondaryCtaText?: string;
|
|
336
|
+
/** Destination for the secondary neutral button */
|
|
337
|
+
secondaryCtaHref?: string;
|
|
338
|
+
}
|
|
339
|
+
declare const PortfolioHero: React.FC<PortfolioHeroProps>;
|
|
340
|
+
|
|
341
|
+
export { AITranscriptionFeature, type AITranscriptionFeatureProps, AppBento2, type AppBento2Props, type BentoFeature, type BoardMember, type CompanyDetails, type DocumentSectionData, type EmailContact, Faq, type FaqItem, type FaqProps, FeatureScroll, type FeatureScrollProps, Footer, type FooterColumn, type FooterLink, type FooterProps, Header, type HeaderLink, type HeaderProps, HeroSection, type HeroSectionProps, ManagedBoardBlock, type ManagedBoardBlockProps, ManagedContactBlock, type ManagedContactBlockProps, ManagedDocument, type ManagedDocumentProps, ManagedNewsletterSplitBlock, type ManagedNewsletterSplitBlockProps, ManagedNotFoundBlock, type ManagedNotFoundBlockProps, ManagedPricingBlock, type ManagedPricingBlockProps, ManagedProjectsBlock, type ManagedProjectsBlockProps, ManagedToaster, NumberInput, type NumberInputProps, PageSpinner, type PageSpinnerProps, type PlatformFeatureItem, PlatformFeatures, type PlatformFeaturesProps, PortfolioHero, type PortfolioHeroProps, type PricingFeature, type PricingPlan, type ProjectItem, type ScrollFeature, type SocialContact, type SocialLink, TextInput, type TextInputProps, ThreeDButton, type ThreeDButtonProps };
|