@dmitriikapustin/ui 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.
@@ -0,0 +1,941 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React$1, { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, ImgHTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes, AnchorHTMLAttributes } from 'react';
3
+
4
+ type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';
5
+ type ButtonSize = 'sm' | 'md';
6
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
7
+ variant?: ButtonVariant;
8
+ size?: ButtonSize;
9
+ loading?: boolean;
10
+ icon?: ReactNode;
11
+ iconRight?: ReactNode;
12
+ children: ReactNode;
13
+ }
14
+ declare function Button({ variant, size, loading, icon, iconRight, children, disabled, className, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
15
+
16
+ interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
17
+ label?: string;
18
+ error?: string;
19
+ icon?: ReactNode;
20
+ iconRight?: ReactNode;
21
+ }
22
+ declare function Input({ label, error, icon, iconRight, className, id, ...props }: InputProps): react_jsx_runtime.JSX.Element;
23
+
24
+ type BadgeColor = 'default' | 'success' | 'warning' | 'error' | 'info';
25
+ interface BadgeProps {
26
+ color?: BadgeColor;
27
+ children: ReactNode;
28
+ className?: string;
29
+ }
30
+ declare function Badge({ color, children, className }: BadgeProps): react_jsx_runtime.JSX.Element;
31
+
32
+ type TagColor = 'default' | 'primary' | 'success' | 'warning' | 'error';
33
+ interface TagProps {
34
+ color?: TagColor;
35
+ closable?: boolean;
36
+ onClose?: () => void;
37
+ children: ReactNode;
38
+ className?: string;
39
+ }
40
+ declare function Tag({ color, closable, onClose, children, className }: TagProps): react_jsx_runtime.JSX.Element;
41
+
42
+ interface ToggleProps {
43
+ checked?: boolean;
44
+ onChange?: (checked: boolean) => void;
45
+ label?: string;
46
+ disabled?: boolean;
47
+ className?: string;
48
+ }
49
+ declare function Toggle({ checked, onChange, label, disabled, className }: ToggleProps): react_jsx_runtime.JSX.Element;
50
+
51
+ type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
52
+ interface AvatarProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'size'> {
53
+ src?: string;
54
+ alt?: string;
55
+ initials?: string;
56
+ size?: AvatarSize;
57
+ className?: string;
58
+ }
59
+ declare function Avatar({ src, alt, initials, size, className, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
60
+
61
+ type SpinnerSize = 'sm' | 'md' | 'lg';
62
+ interface SpinnerProps {
63
+ size?: SpinnerSize;
64
+ className?: string;
65
+ }
66
+ declare function Spinner({ size, className }: SpinnerProps): react_jsx_runtime.JSX.Element;
67
+
68
+ interface DividerProps {
69
+ className?: string;
70
+ label?: string;
71
+ }
72
+ declare function Divider({ className, label }: DividerProps): react_jsx_runtime.JSX.Element;
73
+
74
+ interface MenuItemProps {
75
+ text: string;
76
+ active?: boolean;
77
+ onClick?: () => void;
78
+ className?: string;
79
+ }
80
+ declare function MenuItem({ text, active, onClick, className }: MenuItemProps): react_jsx_runtime.JSX.Element;
81
+
82
+ type IconButtonVariant = 'primary' | 'secondary' | 'clear' | 'disabled' | 'contrast';
83
+ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
84
+ icon: ReactNode;
85
+ variant?: IconButtonVariant;
86
+ className?: string;
87
+ }
88
+ declare function IconButton({ icon, variant, className, disabled, ...props }: IconButtonProps): react_jsx_runtime.JSX.Element;
89
+
90
+ type LogoVersion = 'short' | 'full' | 'third';
91
+ interface LogoProps {
92
+ version?: LogoVersion;
93
+ className?: string;
94
+ }
95
+ declare function Logo({ version, className }: LogoProps): react_jsx_runtime.JSX.Element;
96
+
97
+ interface StatBadgeProps {
98
+ value: string;
99
+ suffix: string;
100
+ showBrackets?: boolean;
101
+ className?: string;
102
+ }
103
+ declare function StatBadge({ value, suffix, showBrackets, className }: StatBadgeProps): react_jsx_runtime.JSX.Element;
104
+
105
+ interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
106
+ label?: string;
107
+ error?: string;
108
+ }
109
+ declare function Textarea({ label, error, className, id, rows, ...props }: TextareaProps): react_jsx_runtime.JSX.Element;
110
+
111
+ interface SelectOption {
112
+ value: string;
113
+ label: string;
114
+ }
115
+ interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
116
+ label?: string;
117
+ error?: string;
118
+ options: SelectOption[];
119
+ placeholder?: string;
120
+ }
121
+ declare function Select({ label, error, options, placeholder, className, id, ...props }: SelectProps): react_jsx_runtime.JSX.Element;
122
+
123
+ interface CheckboxProps {
124
+ checked?: boolean;
125
+ onChange?: (checked: boolean) => void;
126
+ label?: string;
127
+ disabled?: boolean;
128
+ className?: string;
129
+ }
130
+ declare function Checkbox({ checked, onChange, label, disabled, className, }: CheckboxProps): react_jsx_runtime.JSX.Element;
131
+
132
+ interface RadioProps {
133
+ checked?: boolean;
134
+ onChange?: (checked: boolean) => void;
135
+ label?: string;
136
+ disabled?: boolean;
137
+ name?: string;
138
+ value?: string;
139
+ className?: string;
140
+ }
141
+ declare function Radio({ checked, onChange, label, disabled, name, value, className, }: RadioProps): react_jsx_runtime.JSX.Element;
142
+
143
+ type LinkVariant = 'default' | 'muted' | 'underline';
144
+ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
145
+ variant?: LinkVariant;
146
+ }
147
+ declare function Link({ variant, className, children, ...rest }: LinkProps): react_jsx_runtime.JSX.Element;
148
+
149
+ type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
150
+ interface TooltipProps {
151
+ content: string;
152
+ position?: TooltipPosition;
153
+ children: ReactNode;
154
+ className?: string;
155
+ }
156
+ declare function Tooltip({ content, position, children, className }: TooltipProps): react_jsx_runtime.JSX.Element;
157
+
158
+ type SkeletonVariant = 'line' | 'circle' | 'rect';
159
+ interface SkeletonProps {
160
+ variant?: SkeletonVariant;
161
+ width?: string | number;
162
+ height?: string | number;
163
+ className?: string;
164
+ }
165
+ declare function Skeleton({ variant, width, height, className }: SkeletonProps): react_jsx_runtime.JSX.Element;
166
+
167
+ interface TicketButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
168
+ children: ReactNode;
169
+ icon?: ReactNode;
170
+ variant?: 'primary' | 'outline';
171
+ className?: string;
172
+ }
173
+ declare function TicketButton({ children, icon, variant, className, ...props }: TicketButtonProps): react_jsx_runtime.JSX.Element;
174
+
175
+ /**
176
+ * Iconly Pro Icons
177
+ * Source: https://iconly.collaboo.co/
178
+ * Copy SVG code directly from the icon page into JSX.
179
+ *
180
+ * All icons below are placeholders using IconlyActivity.
181
+ * Replace each with the correct Iconly Pro icon SVG.
182
+ */
183
+ interface IconProps {
184
+ size?: number;
185
+ color?: string;
186
+ }
187
+ declare const IconlyActivity: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
188
+ declare const IconlySmile: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
189
+ declare const IconlyAttach: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
190
+ declare const IconlyInfo: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
191
+ declare const IconlySend: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
192
+ declare const IconlySearch: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
193
+ declare const IconlyMail: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
194
+ declare const IconlyLock: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
195
+ declare const IconlyStar: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
196
+ declare const IconlySun: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
197
+ declare const IconlyMoon: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
198
+ declare const IconlyRoadmap: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
199
+ declare const IconlyBook: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
200
+ declare const IconlySandbox: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
201
+ declare const IconlyHeart: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
202
+ declare const IconlyClose: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
203
+ declare const IconlyMenu: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
204
+ declare const IconlyCheck: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
205
+ declare const IconlyQuote: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
206
+ declare const IconlyInfoCircle: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
207
+ declare const IconlySuccess: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
208
+ declare const IconlyWarning: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
209
+ declare const IconlyError: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
210
+ declare const IconlyChevronDown: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
211
+ declare const IconlyLink: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
212
+ declare const IconlyEye: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
213
+ declare const IconlyEyeOff: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
214
+ declare const IconlyChevronRight: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
215
+ declare const IconlyChevronLeft: ({ size, color }: IconProps) => react_jsx_runtime.JSX.Element;
216
+
217
+ interface CardProps {
218
+ image?: string;
219
+ title?: string;
220
+ description?: string;
221
+ footer?: ReactNode;
222
+ children?: ReactNode;
223
+ className?: string;
224
+ }
225
+ declare function Card({ image, title, description, footer, children, className }: CardProps): react_jsx_runtime.JSX.Element;
226
+
227
+ interface FormFieldProps extends InputHTMLAttributes<HTMLInputElement> {
228
+ label: string;
229
+ error?: string;
230
+ hint?: string;
231
+ icon?: ReactNode;
232
+ }
233
+ declare function FormField({ label, error, hint, icon, ...inputProps }: FormFieldProps): react_jsx_runtime.JSX.Element;
234
+
235
+ interface SearchBarProps {
236
+ placeholder?: string;
237
+ value?: string;
238
+ onChange?: (value: string) => void;
239
+ className?: string;
240
+ }
241
+ declare function SearchBar({ placeholder, value: controlledValue, onChange, className }: SearchBarProps): react_jsx_runtime.JSX.Element;
242
+
243
+ interface StatProps {
244
+ value: string;
245
+ label: string;
246
+ trend?: {
247
+ value: string;
248
+ positive: boolean;
249
+ };
250
+ className?: string;
251
+ }
252
+ declare function Stat({ value, label, trend, className }: StatProps): react_jsx_runtime.JSX.Element;
253
+
254
+ type AlertVariant = 'info' | 'success' | 'warning' | 'error';
255
+ interface AlertProps {
256
+ variant?: AlertVariant;
257
+ title?: string;
258
+ children: ReactNode;
259
+ closable?: boolean;
260
+ className?: string;
261
+ }
262
+ declare function Alert({ variant, title, children, closable, className }: AlertProps): react_jsx_runtime.JSX.Element | null;
263
+
264
+ interface Tab {
265
+ id: string;
266
+ label: string;
267
+ content?: React.ReactNode;
268
+ }
269
+ interface TabsProps {
270
+ tabs: Tab[];
271
+ defaultTab?: string;
272
+ onChange?: (tabId: string) => void;
273
+ className?: string;
274
+ }
275
+ declare function Tabs({ tabs, defaultTab, onChange, className }: TabsProps): react_jsx_runtime.JSX.Element;
276
+
277
+ type ChatInputType = 'easy' | 'full';
278
+ interface ChatInputProps {
279
+ placeholder?: string;
280
+ buttonText?: string;
281
+ type?: ChatInputType;
282
+ contrast?: boolean;
283
+ onSubmit?: (message: string) => void;
284
+ className?: string;
285
+ }
286
+ declare function ChatInput({ placeholder, buttonText, type, contrast, onSubmit, className, }: ChatInputProps): react_jsx_runtime.JSX.Element;
287
+
288
+ type MessageRole = 'user' | 'ai';
289
+ type MessageSize = 'sm' | 'lg';
290
+ interface ChatMessageProps {
291
+ children: ReactNode;
292
+ role?: MessageRole;
293
+ size?: MessageSize;
294
+ className?: string;
295
+ }
296
+ declare function ChatMessage({ children, role, size, className }: ChatMessageProps): react_jsx_runtime.JSX.Element;
297
+
298
+ interface TopPromoProps {
299
+ text: string;
300
+ buttonText?: string;
301
+ onButtonClick?: () => void;
302
+ className?: string;
303
+ }
304
+ declare function TopPromo({ text, buttonText, onButtonClick, className }: TopPromoProps): react_jsx_runtime.JSX.Element;
305
+
306
+ interface StatItem$1 {
307
+ value: string;
308
+ suffix: string;
309
+ }
310
+ interface ProfileNavProps {
311
+ stats: StatItem$1[];
312
+ avatarSrc?: string;
313
+ avatarInitials?: string;
314
+ className?: string;
315
+ }
316
+ declare function ProfileNav({ stats, avatarSrc, avatarInitials, className }: ProfileNavProps): react_jsx_runtime.JSX.Element;
317
+
318
+ interface IconWithTextProps {
319
+ icon: ReactNode;
320
+ text: string;
321
+ side?: 'left' | 'right';
322
+ className?: string;
323
+ }
324
+ declare function IconWithText({ icon, text, side, className }: IconWithTextProps): react_jsx_runtime.JSX.Element;
325
+
326
+ interface StampCardProps {
327
+ children: ReactNode;
328
+ className?: string;
329
+ /** Enable stamp perforation edges. Default true. Set false for a plain card. */
330
+ stamp?: boolean;
331
+ /** Perforation hole radius in px */
332
+ holeRadius?: number;
333
+ /** Distance between hole centers in px */
334
+ holeSpacing?: number;
335
+ }
336
+ declare function StampCard({ children, className, stamp, holeRadius, holeSpacing, }: StampCardProps): react_jsx_runtime.JSX.Element;
337
+
338
+ type PasswordInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
339
+ label?: string;
340
+ error?: string;
341
+ };
342
+ declare function PasswordInput({ ...props }: PasswordInputProps): react_jsx_runtime.JSX.Element;
343
+
344
+ interface BreadcrumbItem {
345
+ label: string;
346
+ href?: string;
347
+ }
348
+ interface BreadcrumbsProps {
349
+ items: BreadcrumbItem[];
350
+ separator?: ReactNode;
351
+ }
352
+ declare function Breadcrumbs({ items, separator, }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
353
+
354
+ type ToastVariant = 'info' | 'success' | 'warning' | 'error';
355
+ interface ToastProps {
356
+ variant?: ToastVariant;
357
+ title?: string;
358
+ message: string;
359
+ duration?: number;
360
+ visible: boolean;
361
+ onClose: () => void;
362
+ className?: string;
363
+ }
364
+ declare function Toast({ variant, title, message, duration, visible, onClose, className, }: ToastProps): react_jsx_runtime.JSX.Element | null;
365
+
366
+ interface PaginationProps {
367
+ currentPage: number;
368
+ totalPages: number;
369
+ onPageChange: (page: number) => void;
370
+ siblingCount?: number;
371
+ className?: string;
372
+ }
373
+ declare function Pagination({ currentPage, totalPages, onPageChange, siblingCount, className, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
374
+
375
+ interface CodeInputProps {
376
+ length: number;
377
+ value: string;
378
+ onChange: (value: string) => void;
379
+ error?: string;
380
+ label?: string;
381
+ className?: string;
382
+ }
383
+ declare function CodeInput({ length, value, onChange, error, label, className, }: CodeInputProps): react_jsx_runtime.JSX.Element;
384
+
385
+ interface ModalProps {
386
+ open: boolean;
387
+ onClose: () => void;
388
+ title?: string;
389
+ children: ReactNode;
390
+ footer?: ReactNode;
391
+ className?: string;
392
+ }
393
+ declare function Modal({ open, onClose, title, children, footer, className, }: ModalProps): react_jsx_runtime.JSX.Element;
394
+
395
+ interface DropdownMenuItem {
396
+ label: string;
397
+ onClick: () => void;
398
+ icon?: ReactNode;
399
+ divider?: boolean;
400
+ }
401
+ interface DropdownMenuProps {
402
+ trigger: ReactNode;
403
+ items: DropdownMenuItem[];
404
+ align?: 'left' | 'right';
405
+ className?: string;
406
+ }
407
+ declare function DropdownMenu({ trigger, items, align, className, }: DropdownMenuProps): react_jsx_runtime.JSX.Element;
408
+
409
+ interface NavItem {
410
+ label: string;
411
+ href: string;
412
+ }
413
+ interface HeaderProps {
414
+ logo?: React.ReactNode;
415
+ navItems?: NavItem[];
416
+ className?: string;
417
+ }
418
+ declare function Header({ logo, navItems, className }: HeaderProps): react_jsx_runtime.JSX.Element;
419
+
420
+ interface FooterColumn {
421
+ title: string;
422
+ links: {
423
+ label: string;
424
+ href: string;
425
+ }[];
426
+ }
427
+ interface FooterProps {
428
+ columns?: FooterColumn[];
429
+ className?: string;
430
+ }
431
+ declare function Footer({ columns, className }: FooterProps): react_jsx_runtime.JSX.Element;
432
+
433
+ interface PricingCardProps {
434
+ plan: string;
435
+ price: string;
436
+ period?: string;
437
+ description?: string;
438
+ features: string[];
439
+ highlighted?: boolean;
440
+ badge?: string;
441
+ className?: string;
442
+ }
443
+ declare function PricingCard({ plan, price, period, description, features, highlighted, badge, className, }: PricingCardProps): react_jsx_runtime.JSX.Element;
444
+
445
+ interface TestimonialCardProps {
446
+ quote: string;
447
+ name: string;
448
+ role: string;
449
+ avatarSrc?: string;
450
+ className?: string;
451
+ }
452
+ declare function TestimonialCard({ quote, name, role, avatarSrc, className }: TestimonialCardProps): react_jsx_runtime.JSX.Element;
453
+
454
+ interface Feature {
455
+ icon: ReactNode;
456
+ title: string;
457
+ description: string;
458
+ }
459
+ interface FeatureGridProps {
460
+ features: Feature[];
461
+ columns?: 2 | 3 | 4;
462
+ className?: string;
463
+ }
464
+ declare function FeatureGrid({ features, columns, className }: FeatureGridProps): react_jsx_runtime.JSX.Element;
465
+
466
+ type SidebarType = 'menu' | 'courseSubmenu';
467
+ interface SidebarProps {
468
+ type?: SidebarType;
469
+ menuItems?: string[];
470
+ footer?: React.ReactNode;
471
+ className?: string;
472
+ }
473
+ declare function Sidebar({ type, menuItems, footer, className }: SidebarProps): react_jsx_runtime.JSX.Element;
474
+
475
+ type AppCardVariant = 'default' | 'stamp' | 'stamp-padded';
476
+ interface AppCardProps {
477
+ title: string;
478
+ description: string;
479
+ buttonText: string;
480
+ buttonVariant?: 'primary' | 'outline';
481
+ /** "default" — regular card, "stamp" — edge-to-edge perforation, "stamp-padded" — perforation with padding around content */
482
+ variant?: AppCardVariant;
483
+ image?: string;
484
+ icons?: ReactNode;
485
+ onButtonClick?: () => void;
486
+ className?: string;
487
+ }
488
+ declare function AppCard({ variant, className, ...contentProps }: AppCardProps): react_jsx_runtime.JSX.Element;
489
+
490
+ interface AppTopLineProps {
491
+ promoText?: string;
492
+ promoButtonText?: string;
493
+ stats?: {
494
+ value: string;
495
+ suffix: string;
496
+ }[];
497
+ avatarSrc?: string;
498
+ className?: string;
499
+ }
500
+ declare function AppTopLine({ promoText, promoButtonText, stats, avatarSrc, className, }: AppTopLineProps): react_jsx_runtime.JSX.Element;
501
+
502
+ interface EmptyStateProps {
503
+ icon?: ReactNode;
504
+ title: string;
505
+ description: string;
506
+ action?: ReactNode;
507
+ className?: string;
508
+ }
509
+ declare function EmptyState({ icon, title, description, action, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
510
+
511
+ interface HeroSectionProps {
512
+ eyebrow?: string;
513
+ title: string;
514
+ subtitle?: string;
515
+ actions?: ReactNode;
516
+ media?: ReactNode;
517
+ align?: 'left' | 'center';
518
+ size?: 'default' | 'compact';
519
+ className?: string;
520
+ }
521
+ declare function HeroSection({ eyebrow, title, subtitle, actions, media, align, size, className, }: HeroSectionProps): react_jsx_runtime.JSX.Element;
522
+
523
+ interface LogoCloudProps {
524
+ label?: string;
525
+ logos: {
526
+ name: string;
527
+ src?: string;
528
+ width?: number;
529
+ }[];
530
+ className?: string;
531
+ }
532
+ declare function LogoCloud({ label, logos, className, }: LogoCloudProps): react_jsx_runtime.JSX.Element;
533
+
534
+ interface StatItem {
535
+ value: string;
536
+ label: string;
537
+ icon?: ReactNode;
538
+ }
539
+ interface StatsBarProps {
540
+ stats: StatItem[];
541
+ variant?: 'inline' | 'cards';
542
+ className?: string;
543
+ }
544
+ declare function StatsBar({ stats, variant, className }: StatsBarProps): react_jsx_runtime.JSX.Element;
545
+
546
+ interface CTASectionProps {
547
+ title: string;
548
+ description?: string;
549
+ actions?: ReactNode;
550
+ variant?: 'default' | 'filled' | 'bordered';
551
+ className?: string;
552
+ }
553
+ declare function CTASection({ title, description, actions, variant, className, }: CTASectionProps): react_jsx_runtime.JSX.Element;
554
+
555
+ interface BentoItem {
556
+ title: string;
557
+ description?: string;
558
+ icon?: ReactNode;
559
+ media?: ReactNode;
560
+ span?: 1 | 2;
561
+ rowSpan?: 1 | 2;
562
+ className?: string;
563
+ }
564
+ interface BentoGridProps {
565
+ items: BentoItem[];
566
+ className?: string;
567
+ }
568
+ declare function BentoGrid({ items, className }: BentoGridProps): react_jsx_runtime.JSX.Element;
569
+
570
+ interface FAQItem {
571
+ question: string;
572
+ answer: string;
573
+ }
574
+ interface FAQSectionProps {
575
+ title?: string;
576
+ subtitle?: string;
577
+ items: FAQItem[];
578
+ className?: string;
579
+ }
580
+ declare function FAQSection({ title, subtitle, items, className, }: FAQSectionProps): react_jsx_runtime.JSX.Element;
581
+
582
+ interface ComparisonColumn {
583
+ label: string;
584
+ highlighted?: boolean;
585
+ }
586
+ interface ComparisonRow {
587
+ feature: string;
588
+ values: (boolean | string)[];
589
+ }
590
+ interface ComparisonTableProps {
591
+ columns: ComparisonColumn[];
592
+ rows: ComparisonRow[];
593
+ className?: string;
594
+ }
595
+ declare function ComparisonTable({ columns, rows, className }: ComparisonTableProps): react_jsx_runtime.JSX.Element;
596
+
597
+ interface PromoBentoItemProps {
598
+ pill?: {
599
+ icon?: ReactNode;
600
+ label: string;
601
+ };
602
+ title: string;
603
+ description?: string;
604
+ cta?: {
605
+ label: string;
606
+ href?: string;
607
+ onClick?: () => void;
608
+ };
609
+ media?: ReactNode;
610
+ className?: string;
611
+ }
612
+ interface PromoBentoProps {
613
+ heading: ReactNode;
614
+ subtitle?: string;
615
+ items: PromoBentoItemProps[];
616
+ className?: string;
617
+ }
618
+ declare function PromoBento({ heading, subtitle, items, className }: PromoBentoProps): react_jsx_runtime.JSX.Element;
619
+
620
+ interface PromoShowcaseStep {
621
+ label: string;
622
+ content: ReactNode;
623
+ }
624
+ interface PromoShowcaseProps {
625
+ heading: ReactNode;
626
+ steps: PromoShowcaseStep[];
627
+ className?: string;
628
+ }
629
+ declare function PromoShowcase({ heading, steps, className }: PromoShowcaseProps): react_jsx_runtime.JSX.Element;
630
+
631
+ interface PromoSplitProps {
632
+ heading: ReactNode;
633
+ description?: string;
634
+ features?: {
635
+ title: string;
636
+ description: string;
637
+ }[];
638
+ media?: ReactNode;
639
+ mediaPosition?: 'left' | 'right';
640
+ className?: string;
641
+ }
642
+ declare function PromoSplit({ heading, description, features, media, mediaPosition, className, }: PromoSplitProps): react_jsx_runtime.JSX.Element;
643
+
644
+ interface TrustFeature {
645
+ icon?: ReactNode;
646
+ title: string;
647
+ description: string;
648
+ }
649
+ interface PromoTrustGridProps {
650
+ heading: ReactNode;
651
+ features: TrustFeature[];
652
+ media?: ReactNode;
653
+ className?: string;
654
+ }
655
+ declare function PromoTrustGrid({ heading, features, media, className }: PromoTrustGridProps): react_jsx_runtime.JSX.Element;
656
+
657
+ interface PromoDevicesCTAProps {
658
+ heading: ReactNode;
659
+ description?: string;
660
+ cta?: {
661
+ label: string;
662
+ href?: string;
663
+ onClick?: () => void;
664
+ };
665
+ className?: string;
666
+ }
667
+ declare function PromoDevicesCTA({ heading, description, cta, className, }: PromoDevicesCTAProps): react_jsx_runtime.JSX.Element;
668
+
669
+ interface Testimonial {
670
+ quote: string;
671
+ name: string;
672
+ role: string;
673
+ avatarSrc?: string;
674
+ }
675
+ interface PromoTestimonialsProps {
676
+ heading: ReactNode;
677
+ subtitle?: string;
678
+ testimonials: Testimonial[];
679
+ media?: ReactNode;
680
+ className?: string;
681
+ }
682
+ declare function PromoTestimonials({ heading, subtitle, testimonials, media, className, }: PromoTestimonialsProps): react_jsx_runtime.JSX.Element;
683
+
684
+ interface PromoHeroProps {
685
+ title: ReactNode;
686
+ subtitle?: string;
687
+ cta?: {
688
+ label: string;
689
+ href?: string;
690
+ onClick?: () => void;
691
+ };
692
+ secondaryCta?: {
693
+ label: string;
694
+ href?: string;
695
+ onClick?: () => void;
696
+ };
697
+ media?: ReactNode;
698
+ variant?: 'dark' | 'light' | 'gradient';
699
+ className?: string;
700
+ }
701
+ declare function PromoHero({ title, subtitle, cta, secondaryCta, media, variant, className, }: PromoHeroProps): react_jsx_runtime.JSX.Element;
702
+
703
+ interface PromoPricingTier {
704
+ name: string;
705
+ price: string;
706
+ period?: string;
707
+ description?: string;
708
+ features: string[];
709
+ cta?: ReactNode;
710
+ highlighted?: boolean;
711
+ }
712
+ interface PromoPricingProps {
713
+ heading: ReactNode;
714
+ subtitle?: string;
715
+ tiers: PromoPricingTier[];
716
+ variant?: 'light' | 'dark';
717
+ className?: string;
718
+ }
719
+ declare function PromoPricing({ heading, subtitle, tiers, variant, className, }: PromoPricingProps): react_jsx_runtime.JSX.Element;
720
+
721
+ interface PromoActionCard {
722
+ title: string;
723
+ description: string;
724
+ icons?: ReactNode[];
725
+ cta?: {
726
+ label: string;
727
+ href?: string;
728
+ onClick?: () => void;
729
+ };
730
+ }
731
+ interface PromoActionCardsProps {
732
+ heading: ReactNode;
733
+ subtitle?: string;
734
+ cards: PromoActionCard[];
735
+ columns?: 2 | 3;
736
+ className?: string;
737
+ }
738
+ declare function PromoActionCards({ heading, subtitle, cards, columns, className, }: PromoActionCardsProps): react_jsx_runtime.JSX.Element;
739
+
740
+ interface ArticleHeroProps {
741
+ /** Category label (e.g. "Eval", "Research") */
742
+ category?: string;
743
+ /** Main title */
744
+ title: string;
745
+ /** Subtitle / description text */
746
+ subtitle?: string;
747
+ /** Background image URL. Falls back to a default photo if omitted. */
748
+ backgroundImage?: string;
749
+ /** Logo element rendered top-left */
750
+ logo?: React$1.ReactNode;
751
+ /** Navigation items rendered top-right */
752
+ nav?: React$1.ReactNode;
753
+ className?: string;
754
+ }
755
+ declare function ArticleHero({ category, title, subtitle, backgroundImage, logo, nav, className, }: ArticleHeroProps): react_jsx_runtime.JSX.Element;
756
+
757
+ interface ArticleBodyProps {
758
+ children: React$1.ReactNode;
759
+ className?: string;
760
+ }
761
+ declare function ArticleBody({ children, className }: ArticleBodyProps): react_jsx_runtime.JSX.Element;
762
+
763
+ interface ArticleHeadingProps {
764
+ /** Heading level: 2 or 3 */
765
+ level?: 2 | 3;
766
+ children: React$1.ReactNode;
767
+ /** Optional subtitle below heading */
768
+ subtitle?: string;
769
+ /** Optional action button (e.g. info/expand icon) */
770
+ action?: React$1.ReactNode;
771
+ className?: string;
772
+ }
773
+ declare function ArticleHeading({ level, children, subtitle, action, className, }: ArticleHeadingProps): react_jsx_runtime.JSX.Element;
774
+
775
+ interface ArticleFigureProps {
776
+ /** Image src or chart/content as children */
777
+ src?: string;
778
+ alt?: string;
779
+ /** Optional caption below the figure */
780
+ caption?: string;
781
+ /** Legend items: label + color pairs */
782
+ legend?: {
783
+ label: string;
784
+ color: string;
785
+ }[];
786
+ /** Height of the figure area */
787
+ height?: number;
788
+ /** Render custom content inside figure (charts, etc.) */
789
+ children?: React$1.ReactNode;
790
+ className?: string;
791
+ }
792
+ declare function ArticleFigure({ src, alt, caption, legend, height, children, className, }: ArticleFigureProps): react_jsx_runtime.JSX.Element;
793
+
794
+ interface ArticleTableColumn {
795
+ key: string;
796
+ label: string;
797
+ /** Render custom cell content; receives row data */
798
+ render?: (value: unknown, row: Record<string, unknown>) => React$1.ReactNode;
799
+ }
800
+ interface ArticleTableRow {
801
+ [key: string]: unknown;
802
+ /** Show a badge next to a specific column value */
803
+ _badge?: string;
804
+ /** Column key where badge should appear */
805
+ _badgeColumn?: string;
806
+ }
807
+ interface ArticleTableProps {
808
+ columns: ArticleTableColumn[];
809
+ rows: ArticleTableRow[];
810
+ /** Number of rows to show initially (rest behind "Show N more") */
811
+ initialVisible?: number;
812
+ /** Optional ranking column (auto-numbered) */
813
+ showRank?: boolean;
814
+ className?: string;
815
+ }
816
+ declare function ArticleTable({ columns, rows, initialVisible, showRank, className, }: ArticleTableProps): react_jsx_runtime.JSX.Element;
817
+
818
+ interface ArticleListProps {
819
+ /** List type: unordered (bullet) or ordered (numbered) */
820
+ variant?: 'unordered' | 'ordered';
821
+ /** List items — strings or React nodes */
822
+ items: React$1.ReactNode[];
823
+ className?: string;
824
+ }
825
+ declare function ArticleList({ variant, items, className, }: ArticleListProps): react_jsx_runtime.JSX.Element;
826
+
827
+ interface ArticleNoteProps {
828
+ children: React$1.ReactNode;
829
+ className?: string;
830
+ }
831
+ declare function ArticleNote({ children, className }: ArticleNoteProps): react_jsx_runtime.JSX.Element;
832
+
833
+ interface ArticleChatBlockProps {
834
+ /** Role label: "assistant", "system", "user" */
835
+ role: 'assistant' | 'system' | 'user';
836
+ /** Model or author name shown next to role */
837
+ model?: string;
838
+ /** Tool call label (e.g. "read_email", "send_email") */
839
+ toolCall?: string;
840
+ /** Content of the message */
841
+ children: React$1.ReactNode;
842
+ /** Collapsible — shows gradient + "Show more" */
843
+ collapsible?: boolean;
844
+ /** Max height when collapsed (px) */
845
+ collapsedHeight?: number;
846
+ className?: string;
847
+ }
848
+ declare function ArticleChatBlock({ role, model, toolCall, children, collapsible, collapsedHeight, className, }: ArticleChatBlockProps): react_jsx_runtime.JSX.Element;
849
+
850
+ interface ArticleLinkButtonProps {
851
+ children: React$1.ReactNode;
852
+ href?: string;
853
+ onClick?: () => void;
854
+ className?: string;
855
+ }
856
+ declare function ArticleLinkButton({ children, href, onClick, className, }: ArticleLinkButtonProps): react_jsx_runtime.JSX.Element;
857
+
858
+ interface ArticleFooterProps {
859
+ /** Logo element */
860
+ logo?: React$1.ReactNode;
861
+ /** Copyright text */
862
+ copyright?: string;
863
+ className?: string;
864
+ }
865
+ declare function ArticleFooter({ logo, copyright, className, }: ArticleFooterProps): react_jsx_runtime.JSX.Element;
866
+
867
+ interface ArticleLayoutProps {
868
+ /** Content width: narrow for text, wide for full-width figures */
869
+ children: React$1.ReactNode;
870
+ className?: string;
871
+ }
872
+ declare function ArticleLayout({ children, className }: ArticleLayoutProps): react_jsx_runtime.JSX.Element;
873
+ declare function ArticleWide({ children, className }: {
874
+ children: React$1.ReactNode;
875
+ className?: string;
876
+ }): react_jsx_runtime.JSX.Element;
877
+ declare function ArticleNarrow({ children, className }: {
878
+ children: React$1.ReactNode;
879
+ className?: string;
880
+ }): react_jsx_runtime.JSX.Element;
881
+
882
+ interface ChartSeries {
883
+ dataKey: string;
884
+ name: string;
885
+ color: string;
886
+ }
887
+ interface ArticleLineChartProps {
888
+ data: Record<string, unknown>[];
889
+ series: ChartSeries[];
890
+ xKey: string;
891
+ xLabel?: string;
892
+ yLabel?: string;
893
+ height?: number;
894
+ valueFormatter?: (v: number) => string;
895
+ className?: string;
896
+ }
897
+ declare function ArticleLineChart({ data, series, xKey, xLabel, yLabel, height, valueFormatter, className, }: ArticleLineChartProps): react_jsx_runtime.JSX.Element;
898
+ interface ArticleBarChartProps {
899
+ data: Record<string, unknown>[];
900
+ series: ChartSeries[];
901
+ xKey: string;
902
+ xLabel?: string;
903
+ yLabel?: string;
904
+ height?: number;
905
+ /** Stacked bars */
906
+ stacked?: boolean;
907
+ valueFormatter?: (v: number) => string;
908
+ className?: string;
909
+ }
910
+ declare function ArticleBarChart({ data, series, xKey, xLabel, yLabel, height, stacked, valueFormatter, className, }: ArticleBarChartProps): react_jsx_runtime.JSX.Element;
911
+ interface ScatterPoint {
912
+ x: number;
913
+ y: number;
914
+ label?: string;
915
+ color?: string;
916
+ }
917
+ interface ArticleScatterChartProps {
918
+ data: ScatterPoint[];
919
+ /** Default dot color if point has no color */
920
+ color?: string;
921
+ xLabel?: string;
922
+ yLabel?: string;
923
+ height?: number;
924
+ /** Log scale on x axis */
925
+ xScale?: 'auto' | 'log';
926
+ valueFormatter?: (v: number) => string;
927
+ className?: string;
928
+ }
929
+ declare function ArticleScatterChart({ data, color, xLabel, yLabel, height, xScale, valueFormatter, className, }: ArticleScatterChartProps): react_jsx_runtime.JSX.Element;
930
+
931
+ interface LandingLayoutProps {
932
+ /** 'header' = full-width with top nav, 'sidebar' = sidebar + content area */
933
+ mode?: 'header' | 'sidebar';
934
+ /** Navigation element — Header for header mode, Sidebar for sidebar mode */
935
+ nav?: ReactNode;
936
+ children: ReactNode;
937
+ className?: string;
938
+ }
939
+ declare function LandingLayout({ mode, nav, children, className, }: LandingLayoutProps): react_jsx_runtime.JSX.Element;
940
+
941
+ export { Alert, AppCard, AppTopLine, ArticleBarChart, type ArticleBarChartProps, ArticleBody, type ArticleBodyProps, ArticleChatBlock, type ArticleChatBlockProps, ArticleFigure, type ArticleFigureProps, ArticleFooter, type ArticleFooterProps, ArticleHeading, type ArticleHeadingProps, ArticleHero, type ArticleHeroProps, ArticleLayout, type ArticleLayoutProps, ArticleLineChart, type ArticleLineChartProps, ArticleLinkButton, type ArticleLinkButtonProps, ArticleList, type ArticleListProps, ArticleNarrow, ArticleNote, type ArticleNoteProps, ArticleScatterChart, type ArticleScatterChartProps, ArticleTable, type ArticleTableColumn, type ArticleTableProps, type ArticleTableRow, ArticleWide, Avatar, Badge, BentoGrid, Breadcrumbs, Button, CTASection, Card, type ChartSeries, ChatInput, ChatMessage, Checkbox, CodeInput, ComparisonTable, Divider, DropdownMenu, EmptyState, FAQSection, FeatureGrid, Footer, FormField, Header, HeroSection, IconButton, IconWithText, IconlyActivity, IconlyAttach, IconlyBook, IconlyCheck, IconlyChevronDown, IconlyChevronLeft, IconlyChevronRight, IconlyClose, IconlyError, IconlyEye, IconlyEyeOff, IconlyHeart, IconlyInfo, IconlyInfoCircle, IconlyLink, IconlyLock, IconlyMail, IconlyMenu, IconlyMoon, IconlyQuote, IconlyRoadmap, IconlySandbox, IconlySearch, IconlySend, IconlySmile, IconlyStar, IconlySuccess, IconlySun, IconlyWarning, Input, LandingLayout, Logo, LogoCloud, MenuItem, Modal, Pagination, PasswordInput, PricingCard, ProfileNav, PromoActionCards, PromoBento, PromoDevicesCTA, PromoHero, PromoPricing, PromoShowcase, PromoSplit, PromoTestimonials, PromoTrustGrid, Radio, type ScatterPoint, SearchBar, Select, Sidebar, Skeleton, Spinner, StampCard, Stat, StatBadge, StatsBar, Link as StyledLink, Tabs, Tag, TestimonialCard, Textarea, TicketButton, Toast, Toggle, Tooltip, TopPromo };