@engrate/components 0.0.1

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,878 @@
1
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ import { ClassProp } from 'class-variance-authority/types';
4
+ import { ClassValue } from 'clsx';
5
+ import { Config } from 'tailwindcss';
6
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
7
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
8
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
9
+ import * as LabelPrimitive from '@radix-ui/react-label';
10
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
11
+ import * as React_2 from 'react';
12
+ import * as SelectPrimitive from '@radix-ui/react-select';
13
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
14
+ import * as ToastPrimitives from '@radix-ui/react-toast';
15
+ import { VariantProps } from 'class-variance-authority';
16
+
17
+ export declare const ActionsMenuButton: React_2.ForwardRefExoticComponent<ActionsMenuButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
18
+
19
+ export declare interface ActionsMenuButtonProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger> {
20
+ /** Size of the ellipsis icon */
21
+ iconSize?: 'sm' | 'default' | 'lg';
22
+ }
23
+
24
+ export declare const AlertDialog: React_2.FC<AlertDialogPrimitive.AlertDialogProps>;
25
+
26
+ export declare const AlertDialogAction: React_2.ForwardRefExoticComponent<AlertDialogActionProps & React_2.RefAttributes<HTMLButtonElement>>;
27
+
28
+ export declare interface AlertDialogActionProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>, VariantProps<typeof buttonVariants> {
29
+ }
30
+
31
+ export declare const AlertDialogCancel: React_2.ForwardRefExoticComponent<AlertDialogCancelProps & React_2.RefAttributes<HTMLButtonElement>>;
32
+
33
+ export declare interface AlertDialogCancelProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>, VariantProps<typeof buttonVariants> {
34
+ }
35
+
36
+ export declare const AlertDialogContent: React_2.ForwardRefExoticComponent<AlertDialogContentProps & React_2.RefAttributes<HTMLDivElement>>;
37
+
38
+ export declare interface AlertDialogContentProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>, VariantProps<typeof alertDialogContentVariants> {
39
+ }
40
+
41
+ export declare const alertDialogContentVariants: (props?: ({
42
+ size?: "sm" | "default" | "lg" | null | undefined;
43
+ } & ClassProp) | undefined) => string;
44
+
45
+ export declare const AlertDialogDescription: React_2.ForwardRefExoticComponent<AlertDialogDescriptionProps & React_2.RefAttributes<HTMLParagraphElement>>;
46
+
47
+ export declare interface AlertDialogDescriptionProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description> {
48
+ }
49
+
50
+ export declare const AlertDialogFooter: React_2.ForwardRefExoticComponent<AlertDialogFooterProps & React_2.RefAttributes<HTMLDivElement>>;
51
+
52
+ export declare interface AlertDialogFooterProps extends React_2.HTMLAttributes<HTMLDivElement> {
53
+ }
54
+
55
+ export declare const AlertDialogHeader: React_2.ForwardRefExoticComponent<AlertDialogHeaderProps & React_2.RefAttributes<HTMLDivElement>>;
56
+
57
+ export declare interface AlertDialogHeaderProps extends React_2.HTMLAttributes<HTMLDivElement> {
58
+ }
59
+
60
+ export declare const AlertDialogOverlay: React_2.ForwardRefExoticComponent<AlertDialogOverlayProps & React_2.RefAttributes<HTMLDivElement>>;
61
+
62
+ export declare interface AlertDialogOverlayProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay> {
63
+ }
64
+
65
+ export declare const AlertDialogPortal: React_2.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
66
+
67
+ export declare const AlertDialogTitle: React_2.ForwardRefExoticComponent<AlertDialogTitleProps & React_2.RefAttributes<HTMLHeadingElement>>;
68
+
69
+ export declare interface AlertDialogTitleProps extends React_2.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title> {
70
+ }
71
+
72
+ export declare const AlertDialogTrigger: React_2.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
73
+
74
+ /**
75
+ * Badge component for displaying status, labels, or counts.
76
+ * Features pill-shaped design with various Engrate brand colors.
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * <Badge variant="sunflower">New</Badge>
81
+ * <Badge variant="error" size="sm">Alert</Badge>
82
+ * <Badge variant="deep-blue" size="lg">Premium</Badge>
83
+ * ```
84
+ */
85
+ export declare const Badge: React_2.ForwardRefExoticComponent<BadgeProps & React_2.RefAttributes<HTMLSpanElement>>;
86
+
87
+ export declare interface BadgeProps extends Omit<React_2.HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof badgeVariants> {
88
+ /** Render as a child component (for use with links, etc.) */
89
+ asChild?: boolean;
90
+ }
91
+
92
+ export declare const badgeVariants: (props?: ({
93
+ variant?: "secondary" | "sunflower" | "lemon-meringue" | "vanilla" | "eggshell" | "warm-purple" | "cool-purple" | "electric-blue" | "deep-blue" | "error" | null | undefined;
94
+ size?: "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
95
+ } & ClassProp) | undefined) => string;
96
+
97
+ /**
98
+ * Primary UI button component following Engrate brand guidelines.
99
+ * Features pill-shaped design with Sunflower yellow as primary color.
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * <Button variant="primary">Click me</Button>
104
+ * <Button variant="secondary" size="sm">Secondary</Button>
105
+ * <Button asChild><a href="/link">Link Button</a></Button>
106
+ * ```
107
+ */
108
+ export declare const Button: React_2.ForwardRefExoticComponent<ButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
109
+
110
+ export declare interface ButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
111
+ /** Render as a child component (for use with Next.js Link, etc.) */
112
+ asChild?: boolean;
113
+ }
114
+
115
+ export declare const buttonVariants: (props?: ({
116
+ variant?: "primary" | "secondary" | "ghost" | null | undefined;
117
+ size?: "sm" | "default" | "lg" | "icon" | null | undefined;
118
+ } & ClassProp) | undefined) => string;
119
+
120
+ /**
121
+ * Card component for displaying content in a contained area.
122
+ * Follows Engrate design system with support for variants, padding, and background colors.
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <Card>
127
+ * <Heading>Title</Heading>
128
+ * <Text>Content goes here</Text>
129
+ * </Card>
130
+ * <Card variant="elevated" padding="lg">Elevated card</Card>
131
+ * <Card bg="sunflower">Highlighted card</Card>
132
+ * ```
133
+ */
134
+ export declare const Card: React_2.ForwardRefExoticComponent<CardProps & React_2.RefAttributes<HTMLDivElement>>;
135
+
136
+ export declare interface CardProps extends React_2.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
137
+ /** Render as a child component */
138
+ asChild?: boolean;
139
+ /** Background color from Engrate design tokens */
140
+ bg?: VariantProps<typeof cardVariants>['bg'];
141
+ }
142
+
143
+ export declare const cardVariants: (props?: ({
144
+ variant?: "ghost" | "default" | "elevated" | null | undefined;
145
+ padding?: "sm" | "default" | "lg" | "none" | null | undefined;
146
+ bg?: "contrast" | "main" | "sunflower" | "lemon-meringue" | "vanilla" | "eggshell" | "warm-purple" | "cool-purple" | "electric-blue" | "deep-blue" | "error" | "card" | "alt" | "transparent" | "sunflower-hover" | null | undefined;
147
+ } & ClassProp) | undefined) => string;
148
+
149
+ /**
150
+ * Checkbox component following Engrate brand guidelines.
151
+ * Built on Radix UI Checkbox for accessibility.
152
+ * Features sunflower accent when checked.
153
+ *
154
+ * @example
155
+ * ```tsx
156
+ * <Checkbox id="terms" />
157
+ * <Checkbox checked disabled />
158
+ * ```
159
+ */
160
+ export declare const Checkbox: React_2.ForwardRefExoticComponent<CheckboxProps & React_2.RefAttributes<HTMLButtonElement>>;
161
+
162
+ export declare interface CheckboxProps extends React_2.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
163
+ }
164
+
165
+ /**
166
+ * Merge Tailwind CSS classes with proper precedence handling.
167
+ * Combines clsx for conditional classes with tailwind-merge for deduplication.
168
+ *
169
+ * @example
170
+ * ```tsx
171
+ * cn('px-4 py-2', isLarge && 'px-6 py-3', className)
172
+ * ```
173
+ */
174
+ export declare function cn(...inputs: ClassValue[]): string;
175
+
176
+ export declare const ContextMenu: React_2.FC<ContextMenuPrimitive.ContextMenuProps>;
177
+
178
+ export declare const ContextMenuCheckboxItem: React_2.ForwardRefExoticComponent<ContextMenuCheckboxItemProps & React_2.RefAttributes<HTMLDivElement>>;
179
+
180
+ export declare interface ContextMenuCheckboxItemProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem> {
181
+ }
182
+
183
+ export declare const ContextMenuContent: React_2.ForwardRefExoticComponent<ContextMenuContentProps & React_2.RefAttributes<HTMLDivElement>>;
184
+
185
+ export declare interface ContextMenuContentProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content> {
186
+ }
187
+
188
+ export declare const ContextMenuGroup: React_2.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React_2.RefAttributes<HTMLDivElement>>;
189
+
190
+ export declare const ContextMenuItem: React_2.ForwardRefExoticComponent<ContextMenuItemProps & React_2.RefAttributes<HTMLDivElement>>;
191
+
192
+ export declare interface ContextMenuItemProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
193
+ inset?: boolean;
194
+ }
195
+
196
+ export declare const ContextMenuLabel: React_2.ForwardRefExoticComponent<ContextMenuLabelProps & React_2.RefAttributes<HTMLDivElement>>;
197
+
198
+ export declare interface ContextMenuLabelProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
199
+ inset?: boolean;
200
+ }
201
+
202
+ export declare const ContextMenuPortal: React_2.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
203
+
204
+ export declare const ContextMenuRadioGroup: React_2.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React_2.RefAttributes<HTMLDivElement>>;
205
+
206
+ export declare const ContextMenuRadioItem: React_2.ForwardRefExoticComponent<ContextMenuRadioItemProps & React_2.RefAttributes<HTMLDivElement>>;
207
+
208
+ export declare interface ContextMenuRadioItemProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem> {
209
+ }
210
+
211
+ export declare const ContextMenuSeparator: React_2.ForwardRefExoticComponent<ContextMenuSeparatorProps & React_2.RefAttributes<HTMLDivElement>>;
212
+
213
+ export declare interface ContextMenuSeparatorProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator> {
214
+ }
215
+
216
+ export declare const ContextMenuShortcut: React_2.ForwardRefExoticComponent<ContextMenuShortcutProps & React_2.RefAttributes<HTMLSpanElement>>;
217
+
218
+ export declare interface ContextMenuShortcutProps extends React_2.HTMLAttributes<HTMLSpanElement> {
219
+ }
220
+
221
+ export declare const ContextMenuSub: React_2.FC<ContextMenuPrimitive.ContextMenuSubProps>;
222
+
223
+ export declare const ContextMenuSubContent: React_2.ForwardRefExoticComponent<ContextMenuSubContentProps & React_2.RefAttributes<HTMLDivElement>>;
224
+
225
+ export declare interface ContextMenuSubContentProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent> {
226
+ }
227
+
228
+ export declare const ContextMenuSubTrigger: React_2.ForwardRefExoticComponent<ContextMenuSubTriggerProps & React_2.RefAttributes<HTMLDivElement>>;
229
+
230
+ export declare interface ContextMenuSubTriggerProps extends React_2.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
231
+ inset?: boolean;
232
+ }
233
+
234
+ export declare const ContextMenuTrigger: React_2.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React_2.RefAttributes<HTMLSpanElement>>;
235
+
236
+ /**
237
+ * Divider component for visually separating content.
238
+ * Supports both horizontal and vertical orientations.
239
+ *
240
+ * @example
241
+ * ```tsx
242
+ * // Horizontal divider (default)
243
+ * <Divider />
244
+ *
245
+ * // Vertical divider
246
+ * <Divider orientation="vertical" />
247
+ *
248
+ * // With custom styling
249
+ * <Divider className="my-4" />
250
+ * ```
251
+ */
252
+ export declare const Divider: React_2.ForwardRefExoticComponent<DividerProps & React_2.RefAttributes<HTMLDivElement>>;
253
+
254
+ export declare interface DividerProps extends React_2.HTMLAttributes<HTMLDivElement>, VariantProps<typeof dividerVariants> {
255
+ /**
256
+ * Whether the divider is decorative only.
257
+ * When true, the divider will be hidden from screen readers.
258
+ * @default true
259
+ */
260
+ decorative?: boolean;
261
+ }
262
+
263
+ export declare const dividerVariants: (props?: ({
264
+ orientation?: "horizontal" | "vertical" | null | undefined;
265
+ } & ClassProp) | undefined) => string;
266
+
267
+ export declare const DropdownMenu: React_2.FC<DropdownMenuPrimitive.DropdownMenuProps>;
268
+
269
+ export declare const DropdownMenuCheckboxItem: React_2.ForwardRefExoticComponent<DropdownMenuCheckboxItemProps & React_2.RefAttributes<HTMLDivElement>>;
270
+
271
+ export declare interface DropdownMenuCheckboxItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> {
272
+ }
273
+
274
+ export declare const DropdownMenuContent: React_2.ForwardRefExoticComponent<DropdownMenuContentProps & React_2.RefAttributes<HTMLDivElement>>;
275
+
276
+ export declare interface DropdownMenuContentProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
277
+ }
278
+
279
+ export declare const DropdownMenuGroup: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React_2.RefAttributes<HTMLDivElement>>;
280
+
281
+ export declare const DropdownMenuItem: React_2.ForwardRefExoticComponent<DropdownMenuItemProps & React_2.RefAttributes<HTMLDivElement>>;
282
+
283
+ export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
284
+ inset?: boolean;
285
+ }
286
+
287
+ export declare const DropdownMenuLabel: React_2.ForwardRefExoticComponent<DropdownMenuLabelProps & React_2.RefAttributes<HTMLDivElement>>;
288
+
289
+ export declare interface DropdownMenuLabelProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> {
290
+ inset?: boolean;
291
+ }
292
+
293
+ export declare const DropdownMenuPortal: React_2.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
294
+
295
+ export declare const DropdownMenuRadioGroup: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React_2.RefAttributes<HTMLDivElement>>;
296
+
297
+ export declare const DropdownMenuRadioItem: React_2.ForwardRefExoticComponent<DropdownMenuRadioItemProps & React_2.RefAttributes<HTMLDivElement>>;
298
+
299
+ export declare interface DropdownMenuRadioItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> {
300
+ }
301
+
302
+ export declare const DropdownMenuSeparator: React_2.ForwardRefExoticComponent<DropdownMenuSeparatorProps & React_2.RefAttributes<HTMLDivElement>>;
303
+
304
+ export declare interface DropdownMenuSeparatorProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {
305
+ }
306
+
307
+ export declare const DropdownMenuShortcut: React_2.ForwardRefExoticComponent<DropdownMenuShortcutProps & React_2.RefAttributes<HTMLSpanElement>>;
308
+
309
+ export declare interface DropdownMenuShortcutProps extends React_2.HTMLAttributes<HTMLSpanElement> {
310
+ }
311
+
312
+ export declare const DropdownMenuSub: React_2.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
313
+
314
+ export declare const DropdownMenuSubContent: React_2.ForwardRefExoticComponent<DropdownMenuSubContentProps & React_2.RefAttributes<HTMLDivElement>>;
315
+
316
+ export declare interface DropdownMenuSubContentProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> {
317
+ }
318
+
319
+ export declare const DropdownMenuSubTrigger: React_2.ForwardRefExoticComponent<DropdownMenuSubTriggerProps & React_2.RefAttributes<HTMLDivElement>>;
320
+
321
+ export declare interface DropdownMenuSubTriggerProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> {
322
+ inset?: boolean;
323
+ }
324
+
325
+ export declare const DropdownMenuTrigger: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
326
+
327
+ /**
328
+ * Engrate design tokens as a Tailwind preset.
329
+ * Consumers can extend their Tailwind config with this preset:
330
+ *
331
+ * @example
332
+ * ```js
333
+ * // tailwind.config.js
334
+ * import { egComponentsPreset } from 'eg-components/tailwind.preset'
335
+ *
336
+ * export default {
337
+ * presets: [egComponentsPreset],
338
+ * content: [
339
+ * './src/**\/*.{js,ts,jsx,tsx}',
340
+ * './node_modules/eg-components/dist/**\/*.js',
341
+ * ],
342
+ * }
343
+ * ```
344
+ */
345
+ export declare const egComponentsPreset: Config;
346
+
347
+ export declare const Eyebrow: React_2.ForwardRefExoticComponent<EyebrowProps & React_2.RefAttributes<HTMLSpanElement>>;
348
+
349
+ export declare interface EyebrowProps extends React_2.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof eyebrowVariants> {
350
+ asChild?: boolean;
351
+ }
352
+
353
+ export declare const eyebrowVariants: (props?: ({
354
+ variant?: "primary" | "secondary" | "default" | null | undefined;
355
+ size?: "sm" | "default" | "lg" | null | undefined;
356
+ } & ClassProp) | undefined) => string;
357
+
358
+ /**
359
+ * Form field wrapper component for consistent form layouts.
360
+ * Composes Label, children (form control), and FormMessage.
361
+ * Simple presentational wrapper following Engrate brand guidelines.
362
+ *
363
+ * @example
364
+ * ```tsx
365
+ * <FormField label="Email" htmlFor="email" hint="We'll never share your email.">
366
+ * <Input id="email" placeholder="you@example.com" />
367
+ * </FormField>
368
+ *
369
+ * <FormField label="Password" htmlFor="password" error="Password is required">
370
+ * <Input id="password" type="password" variant="error" />
371
+ * </FormField>
372
+ * ```
373
+ */
374
+ export declare const FormField: React_2.ForwardRefExoticComponent<FormFieldProps & React_2.RefAttributes<HTMLDivElement>>;
375
+
376
+ export declare interface FormFieldProps extends React_2.HTMLAttributes<HTMLDivElement> {
377
+ /** The label for the field */
378
+ label?: string;
379
+ /** The size of the label */
380
+ labelSize?: 'default' | 'sm';
381
+ /** An optional hint message */
382
+ hint?: string;
383
+ /** An optional error message */
384
+ error?: string;
385
+ /** The id for the form control (used for htmlFor on label) */
386
+ htmlFor?: string;
387
+ }
388
+
389
+ /**
390
+ * Form message component for displaying hints or error messages.
391
+ * Following Engrate brand guidelines.
392
+ *
393
+ * @example
394
+ * ```tsx
395
+ * <FormMessage>This is a hint message</FormMessage>
396
+ * <FormMessage variant="error">This field is required</FormMessage>
397
+ * ```
398
+ */
399
+ export declare const FormMessage: React_2.ForwardRefExoticComponent<FormMessageProps & React_2.RefAttributes<HTMLParagraphElement>>;
400
+
401
+ export declare interface FormMessageProps extends React_2.HTMLAttributes<HTMLParagraphElement> {
402
+ /** The type of message to display */
403
+ variant?: 'default' | 'error';
404
+ }
405
+
406
+ export declare const Heading: React_2.ForwardRefExoticComponent<HeadingProps & React_2.RefAttributes<HTMLHeadingElement>>;
407
+
408
+ declare type HeadingElement = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
409
+
410
+ export declare interface HeadingProps extends React_2.HTMLAttributes<HTMLHeadingElement>, VariantProps<typeof headingVariants> {
411
+ /**
412
+ * Render as a different element using Radix Slot
413
+ */
414
+ asChild?: boolean;
415
+ /**
416
+ * Override the default HTML element for semantic flexibility
417
+ * @default Matches the level prop (hero renders as h1)
418
+ */
419
+ as?: HeadingElement;
420
+ }
421
+
422
+ export declare const headingVariants: (props?: ({
423
+ level?: "hero" | "h1" | "h2" | "h3" | "h4" | null | undefined;
424
+ } & ClassProp) | undefined) => string;
425
+
426
+ /**
427
+ * Text input component following Engrate brand guidelines.
428
+ * Features rounded corners, subtle background, and sunflower focus ring.
429
+ *
430
+ * @example
431
+ * ```tsx
432
+ * <Input placeholder="Enter your email" />
433
+ * <Input variant="error" placeholder="Invalid input" />
434
+ * ```
435
+ */
436
+ export declare const Input: React_2.ForwardRefExoticComponent<InputProps & React_2.RefAttributes<HTMLInputElement>>;
437
+
438
+ export declare interface InputProps extends Omit<React_2.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
439
+ }
440
+
441
+ export declare const inputVariants: (props?: ({
442
+ variant?: "default" | "error" | null | undefined;
443
+ } & ClassProp) | undefined) => string;
444
+
445
+ /**
446
+ * Form label component following Engrate brand guidelines.
447
+ * Uses text-tertiary color and Work Sans font.
448
+ *
449
+ * @example
450
+ * ```tsx
451
+ * <Label htmlFor="email">Email address</Label>
452
+ * <Label size="sm">Small label</Label>
453
+ * ```
454
+ */
455
+ export declare const Label: React_2.ForwardRefExoticComponent<LabelProps & React_2.RefAttributes<HTMLLabelElement>>;
456
+
457
+ export declare interface LabelProps extends React_2.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>, VariantProps<typeof labelVariants> {
458
+ }
459
+
460
+ export declare const labelVariants: (props?: ({
461
+ size?: "sm" | "default" | null | undefined;
462
+ } & ClassProp) | undefined) => string;
463
+
464
+ /**
465
+ * Link component for navigation following Engrate brand guidelines.
466
+ * Supports multiple variants for different use cases.
467
+ *
468
+ * @example
469
+ * ```tsx
470
+ * <Link href="/about">About us</Link>
471
+ * <Link href="/docs" variant="nav">Documentation</Link>
472
+ * <Link asChild><NextLink href="/page">Next.js Link</NextLink></Link>
473
+ * ```
474
+ */
475
+ export declare const Link: React_2.ForwardRefExoticComponent<LinkProps & React_2.RefAttributes<HTMLAnchorElement>>;
476
+
477
+ export declare interface LinkProps extends React_2.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof linkVariants> {
478
+ /** Render as a child component (for use with Next.js Link, etc.) */
479
+ asChild?: boolean;
480
+ }
481
+
482
+ export declare const linkVariants: (props?: ({
483
+ variant?: "default" | "nav" | "muted" | null | undefined;
484
+ size?: "sm" | "default" | "lg" | null | undefined;
485
+ } & ClassProp) | undefined) => string;
486
+
487
+ export declare const Modal: React_2.FC<DialogPrimitive.DialogProps>;
488
+
489
+ export declare const ModalClose: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React_2.RefAttributes<HTMLButtonElement>>;
490
+
491
+ export declare const ModalContent: React_2.ForwardRefExoticComponent<ModalContentProps & React_2.RefAttributes<HTMLDivElement>>;
492
+
493
+ export declare interface ModalContentProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof modalContentVariants> {
494
+ /** Whether to show the default close button in the top-right corner */
495
+ showCloseButton?: boolean;
496
+ }
497
+
498
+ export declare const modalContentVariants: (props?: ({
499
+ size?: "sm" | "default" | "lg" | "full" | null | undefined;
500
+ } & ClassProp) | undefined) => string;
501
+
502
+ export declare const ModalDescription: React_2.ForwardRefExoticComponent<ModalDescriptionProps & React_2.RefAttributes<HTMLParagraphElement>>;
503
+
504
+ export declare interface ModalDescriptionProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Description> {
505
+ }
506
+
507
+ export declare const ModalFooter: React_2.ForwardRefExoticComponent<ModalFooterProps & React_2.RefAttributes<HTMLDivElement>>;
508
+
509
+ export declare interface ModalFooterProps extends React_2.HTMLAttributes<HTMLDivElement> {
510
+ }
511
+
512
+ export declare const ModalHeader: React_2.ForwardRefExoticComponent<ModalHeaderProps & React_2.RefAttributes<HTMLDivElement>>;
513
+
514
+ export declare interface ModalHeaderProps extends React_2.HTMLAttributes<HTMLDivElement> {
515
+ }
516
+
517
+ export declare const ModalOverlay: React_2.ForwardRefExoticComponent<ModalOverlayProps & React_2.RefAttributes<HTMLDivElement>>;
518
+
519
+ export declare interface ModalOverlayProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay> {
520
+ }
521
+
522
+ export declare const ModalPortal: React_2.FC<DialogPrimitive.DialogPortalProps>;
523
+
524
+ export declare const ModalTitle: React_2.ForwardRefExoticComponent<ModalTitleProps & React_2.RefAttributes<HTMLHeadingElement>>;
525
+
526
+ export declare interface ModalTitleProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> {
527
+ }
528
+
529
+ export declare const ModalTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
530
+
531
+ /**
532
+ * Radio group container component.
533
+ * Built on Radix UI RadioGroup for accessibility.
534
+ *
535
+ * @example
536
+ * ```tsx
537
+ * <RadioGroup defaultValue="option1">
538
+ * <RadioGroupItem value="option1" id="option1" />
539
+ * <RadioGroupItem value="option2" id="option2" />
540
+ * </RadioGroup>
541
+ * ```
542
+ */
543
+ export declare const RadioGroup: React_2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
544
+
545
+ /**
546
+ * Radio group item component following Engrate brand guidelines.
547
+ * Features sunflower accent when selected.
548
+ *
549
+ * @example
550
+ * ```tsx
551
+ * <RadioGroupItem value="option1" id="option1" />
552
+ * ```
553
+ */
554
+ export declare const RadioGroupItem: React_2.ForwardRefExoticComponent<RadioGroupItemProps & React_2.RefAttributes<HTMLButtonElement>>;
555
+
556
+ export declare interface RadioGroupItemProps extends React_2.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
557
+ }
558
+
559
+ export declare const Select: React_2.FC<SelectPrimitive.SelectProps>;
560
+
561
+ /**
562
+ * Select dropdown content following Engrate brand guidelines.
563
+ */
564
+ export declare const SelectContent: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
565
+
566
+ export declare const SelectGroup: React_2.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React_2.RefAttributes<HTMLDivElement>>;
567
+
568
+ /**
569
+ * Individual select option following Engrate brand guidelines.
570
+ */
571
+ export declare const SelectItem: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
572
+
573
+ /**
574
+ * Select label for grouping items.
575
+ */
576
+ export declare const SelectLabel: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
577
+
578
+ /**
579
+ * Scrollable downward button for Select content.
580
+ */
581
+ export declare const SelectScrollDownButton: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
582
+
583
+ /**
584
+ * Scrollable upward button for Select content.
585
+ */
586
+ export declare const SelectScrollUpButton: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
587
+
588
+ /**
589
+ * Separator between select items.
590
+ */
591
+ export declare const SelectSeparator: React_2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
592
+
593
+ /**
594
+ * Select trigger button following Engrate brand guidelines.
595
+ * Features rounded corners, subtle background, and sunflower focus ring.
596
+ */
597
+ export declare const SelectTrigger: React_2.ForwardRefExoticComponent<SelectTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
598
+
599
+ export declare interface SelectTriggerProps extends React_2.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
600
+ variant?: 'default' | 'error';
601
+ }
602
+
603
+ export declare const SelectValue: React_2.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React_2.RefAttributes<HTMLSpanElement>>;
604
+
605
+ export declare type SortDirection = 'asc' | 'desc' | null;
606
+
607
+ /**
608
+ * Switch component following Engrate brand guidelines.
609
+ * Built on Radix UI Switch for accessibility.
610
+ * Features sunflower background when on.
611
+ *
612
+ * @example
613
+ * ```tsx
614
+ * <Switch id="notifications" />
615
+ * <Switch defaultChecked />
616
+ * ```
617
+ */
618
+ export declare const Switch: React_2.ForwardRefExoticComponent<SwitchProps & React_2.RefAttributes<HTMLButtonElement>>;
619
+
620
+ export declare interface SwitchProps extends React_2.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
621
+ }
622
+
623
+ /**
624
+ * Content panel for a tab. Only visible when the matching tab is active.
625
+ */
626
+ export declare const TabContent: React_2.ForwardRefExoticComponent<TabContentProps & React_2.RefAttributes<HTMLDivElement>>;
627
+
628
+ export declare interface TabContentProps extends React_2.HTMLAttributes<HTMLDivElement>, VariantProps<typeof tabContentVariants> {
629
+ /** Value matching the TabTrigger this content belongs to */
630
+ value: string;
631
+ }
632
+
633
+ export declare const tabContentVariants: (props?: ({
634
+ size?: "sm" | "default" | "lg" | null | undefined;
635
+ } & ClassProp) | undefined) => string;
636
+
637
+ /**
638
+ * Table root component following Engrate brand guidelines.
639
+ * Features light gray backgrounds and subtle borders.
640
+ *
641
+ * @example
642
+ * ```tsx
643
+ * <Table>
644
+ * <TableHeader>
645
+ * <TableRow>
646
+ * <TableHead>Name</TableHead>
647
+ * </TableRow>
648
+ * </TableHeader>
649
+ * <TableBody>
650
+ * <TableRow>
651
+ * <TableCell>John Doe</TableCell>
652
+ * </TableRow>
653
+ * </TableBody>
654
+ * </Table>
655
+ * ```
656
+ */
657
+ export declare const Table: React_2.ForwardRefExoticComponent<TableProps & React_2.RefAttributes<HTMLTableElement>>;
658
+
659
+ export declare const TableBody: React_2.ForwardRefExoticComponent<TableBodyProps & React_2.RefAttributes<HTMLTableSectionElement>>;
660
+
661
+ declare interface TableBodyProps extends React_2.HTMLAttributes<HTMLTableSectionElement> {
662
+ }
663
+
664
+ export declare const TableCaption: React_2.ForwardRefExoticComponent<TableCaptionProps & React_2.RefAttributes<HTMLTableCaptionElement>>;
665
+
666
+ declare interface TableCaptionProps extends React_2.HTMLAttributes<HTMLTableCaptionElement> {
667
+ }
668
+
669
+ export declare const TableCell: React_2.ForwardRefExoticComponent<TableCellProps & React_2.RefAttributes<HTMLTableCellElement>>;
670
+
671
+ declare interface TableCellProps extends React_2.TdHTMLAttributes<HTMLTableCellElement> {
672
+ }
673
+
674
+ export declare const TableFooter: React_2.ForwardRefExoticComponent<TableFooterProps & React_2.RefAttributes<HTMLTableSectionElement>>;
675
+
676
+ declare interface TableFooterProps extends React_2.HTMLAttributes<HTMLTableSectionElement> {
677
+ }
678
+
679
+ export declare const TableHead: React_2.ForwardRefExoticComponent<TableHeadProps & React_2.RefAttributes<HTMLTableCellElement>>;
680
+
681
+ export declare const TableHeader: React_2.ForwardRefExoticComponent<TableHeaderProps & React_2.RefAttributes<HTMLTableSectionElement>>;
682
+
683
+ declare interface TableHeaderProps extends React_2.HTMLAttributes<HTMLTableSectionElement> {
684
+ }
685
+
686
+ export declare interface TableHeadProps extends React_2.ThHTMLAttributes<HTMLTableCellElement>, Omit<VariantProps<typeof tableHeadVariants>, 'size'> {
687
+ /** Enable sorting for this column */
688
+ sortable?: boolean;
689
+ /** Current sort direction */
690
+ sortDirection?: SortDirection;
691
+ /** Callback when sort is triggered */
692
+ onSort?: () => void;
693
+ }
694
+
695
+ declare const tableHeadVariants: (props?: ({
696
+ sortable?: boolean | null | undefined;
697
+ size?: "default" | "compact" | null | undefined;
698
+ } & ClassProp) | undefined) => string;
699
+
700
+ export declare interface TableProps extends React_2.HTMLAttributes<HTMLTableElement>, VariantProps<typeof tableVariants> {
701
+ }
702
+
703
+ export declare const TableRow: React_2.ForwardRefExoticComponent<TableRowProps & React_2.RefAttributes<HTMLTableRowElement>>;
704
+
705
+ export declare interface TableRowProps extends React_2.HTMLAttributes<HTMLTableRowElement>, VariantProps<typeof tableRowVariants> {
706
+ }
707
+
708
+ declare const tableRowVariants: (props?: ({
709
+ variant?: "default" | "striped" | null | undefined;
710
+ } & ClassProp) | undefined) => string;
711
+
712
+ export declare const tableVariants: (props?: ({
713
+ variant?: "default" | "striped" | null | undefined;
714
+ size?: "default" | "compact" | null | undefined;
715
+ } & ClassProp) | undefined) => string;
716
+
717
+ /**
718
+ * Container for tab triggers. Renders the row of clickable tabs.
719
+ */
720
+ export declare const TabList: React_2.ForwardRefExoticComponent<TabListProps & React_2.RefAttributes<HTMLDivElement>>;
721
+
722
+ export declare interface TabListProps extends React_2.HTMLAttributes<HTMLDivElement>, VariantProps<typeof tabListVariants> {
723
+ }
724
+
725
+ export declare const tabListVariants: (props?: ({
726
+ variant?: "default" | "pills" | null | undefined;
727
+ } & ClassProp) | undefined) => string;
728
+
729
+ /**
730
+ * Root container for the tabs component.
731
+ * Manages the active tab state and provides context to child components.
732
+ *
733
+ * @example
734
+ * ```tsx
735
+ * <Tabs defaultValue="tab1">
736
+ * <TabList>
737
+ * <TabTrigger value="tab1">Tab 1</TabTrigger>
738
+ * <TabTrigger value="tab2">Tab 2</TabTrigger>
739
+ * </TabList>
740
+ * <TabContent value="tab1">Content 1</TabContent>
741
+ * <TabContent value="tab2">Content 2</TabContent>
742
+ * </Tabs>
743
+ * ```
744
+ */
745
+ export declare const Tabs: React_2.ForwardRefExoticComponent<TabsProps & React_2.RefAttributes<HTMLDivElement>>;
746
+
747
+ export declare interface TabsProps extends React_2.HTMLAttributes<HTMLDivElement> {
748
+ /** The default active tab value */
749
+ defaultValue?: string;
750
+ /** Controlled active tab value */
751
+ value?: string;
752
+ /** Callback when active tab changes */
753
+ onValueChange?: (value: string) => void;
754
+ }
755
+
756
+ /**
757
+ * Individual tab trigger button. Clicking activates the associated TabContent.
758
+ */
759
+ export declare const TabTrigger: React_2.ForwardRefExoticComponent<TabTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
760
+
761
+ export declare interface TabTriggerProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof tabTriggerVariants> {
762
+ /** Unique value identifying this tab */
763
+ value: string;
764
+ }
765
+
766
+ export declare const tabTriggerVariants: (props?: ({
767
+ variant?: "default" | "pills" | null | undefined;
768
+ size?: "sm" | "default" | "lg" | null | undefined;
769
+ } & ClassProp) | undefined) => string;
770
+
771
+ declare const Text_2: React_2.ForwardRefExoticComponent<TextProps & React_2.RefAttributes<HTMLElement>>;
772
+ export { Text_2 as Text }
773
+
774
+ /**
775
+ * Textarea component following Engrate brand guidelines.
776
+ * Features rounded corners, subtle background, and sunflower focus ring.
777
+ *
778
+ * @example
779
+ * ```tsx
780
+ * <Textarea placeholder="Enter your message" />
781
+ * <Textarea variant="error" placeholder="Invalid input" />
782
+ * <Textarea resize="none" placeholder="Fixed size" />
783
+ * ```
784
+ */
785
+ export declare const Textarea: React_2.ForwardRefExoticComponent<TextareaProps & React_2.RefAttributes<HTMLTextAreaElement>>;
786
+
787
+ export declare interface TextareaProps extends React_2.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textareaVariants> {
788
+ }
789
+
790
+ export declare const textareaVariants: (props?: ({
791
+ variant?: "default" | "error" | null | undefined;
792
+ resize?: "none" | "both" | "horizontal" | "vertical" | null | undefined;
793
+ } & ClassProp) | undefined) => string;
794
+
795
+ declare type TextElement = 'p' | 'span' | 'div' | 'label';
796
+
797
+ export declare interface TextProps extends React_2.HTMLAttributes<HTMLElement>, VariantProps<typeof textVariants> {
798
+ /**
799
+ * Render as a different element using Radix Slot
800
+ */
801
+ asChild?: boolean;
802
+ /**
803
+ * Override the default HTML element
804
+ * @default 'p'
805
+ */
806
+ as?: TextElement;
807
+ }
808
+
809
+ export declare const textVariants: (props?: ({
810
+ variant?: "lead" | "semi-lead" | "body-lg" | "body" | "descriptive" | "label" | "label-sm" | null | undefined;
811
+ weight?: "regular" | "medium" | null | undefined;
812
+ } & ClassProp) | undefined) => string;
813
+
814
+ export declare const Toast: React_2.ForwardRefExoticComponent<ToastProps & React_2.RefAttributes<HTMLLIElement>>;
815
+
816
+ export declare const ToastAction: React_2.ForwardRefExoticComponent<ToastActionProps & React_2.RefAttributes<HTMLButtonElement>>;
817
+
818
+ export declare interface ToastActionProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Action> {
819
+ }
820
+
821
+ export declare const ToastClose: React_2.ForwardRefExoticComponent<ToastCloseProps & React_2.RefAttributes<HTMLButtonElement>>;
822
+
823
+ export declare interface ToastCloseProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Close> {
824
+ }
825
+
826
+ export declare const ToastDescription: React_2.ForwardRefExoticComponent<ToastDescriptionProps & React_2.RefAttributes<HTMLDivElement>>;
827
+
828
+ export declare interface ToastDescriptionProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Description> {
829
+ }
830
+
831
+ export declare interface ToastProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Root>, VariantProps<typeof toastVariants> {
832
+ }
833
+
834
+ export declare const ToastProvider: React_2.FC<ToastPrimitives.ToastProviderProps>;
835
+
836
+ export declare const ToastTitle: React_2.ForwardRefExoticComponent<ToastTitleProps & React_2.RefAttributes<HTMLDivElement>>;
837
+
838
+ export declare interface ToastTitleProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Title> {
839
+ }
840
+
841
+ export declare const toastVariants: (props?: ({
842
+ variant?: "default" | "error" | "success" | "warning" | "info" | null | undefined;
843
+ } & ClassProp) | undefined) => string;
844
+
845
+ export declare const ToastViewport: React_2.ForwardRefExoticComponent<ToastViewportProps & React_2.RefAttributes<HTMLOListElement>>;
846
+
847
+ export declare interface ToastViewportProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport> {
848
+ }
849
+
850
+ export declare function useFilterableTable<T>({ data, filterKeys, }: UseFilterableTableOptions<T>): UseFilterableTableReturn<T>;
851
+
852
+ declare interface UseFilterableTableOptions<T> {
853
+ data: T[];
854
+ filterKeys?: (keyof T)[];
855
+ }
856
+
857
+ declare interface UseFilterableTableReturn<T> {
858
+ filteredData: T[];
859
+ filterValue: string;
860
+ setFilterValue: (value: string) => void;
861
+ }
862
+
863
+ export declare function useSortableTable<T>({ data, initialSortKey, initialSortDirection, }: UseSortableTableOptions<T>): UseSortableTableReturn<T>;
864
+
865
+ declare interface UseSortableTableOptions<T> {
866
+ data: T[];
867
+ initialSortKey?: keyof T | null;
868
+ initialSortDirection?: 'asc' | 'desc';
869
+ }
870
+
871
+ declare interface UseSortableTableReturn<T> {
872
+ sortedData: T[];
873
+ sortKey: keyof T | null;
874
+ sortDirection: SortDirection;
875
+ handleSort: (key: keyof T) => void;
876
+ }
877
+
878
+ export { }