@konstructio/ui 0.1.2-alpha.48 → 0.1.2-alpha.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -35,30 +35,128 @@ declare type Action<TData> = {
35
35
  className?: string;
36
36
  };
37
37
 
38
+ /**
39
+ * An alert component for displaying feedback messages.
40
+ * Supports success, error, warning, and info variants with optional dismiss button.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * // Success alert
45
+ * <Alert type="success" content="Changes saved successfully!" />
46
+ *
47
+ * // Error alert with close button
48
+ * <Alert
49
+ * type="error"
50
+ * content="Failed to save changes. Please try again."
51
+ * showCloseButton
52
+ * />
53
+ *
54
+ * // Warning alert with custom content
55
+ * <Alert
56
+ * type="warning"
57
+ * content={
58
+ * <div>
59
+ * <strong>Warning:</strong> This action cannot be undone.
60
+ * </div>
61
+ * }
62
+ * />
63
+ * ```
64
+ *
65
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-alert--docs Storybook}
66
+ */
38
67
  export declare const Alert: FC<AlertProps>;
39
68
 
69
+ /**
70
+ * A confirmation dialog component built on Radix UI AlertDialog.
71
+ * Includes a trigger button that opens a modal with title, description, and action buttons.
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * // Basic confirmation dialog
76
+ * <AlertDialog
77
+ * buttonTriggerText="Delete Item"
78
+ * title="Confirm Deletion"
79
+ * description="This action cannot be undone."
80
+ * onConfirm={() => deleteItem()}
81
+ * />
82
+ *
83
+ * // Danger variant with custom button text
84
+ * <AlertDialog
85
+ * buttonTriggerText="Remove"
86
+ * buttonTriggerVariant="danger"
87
+ * title="Remove User"
88
+ * description="Are you sure you want to remove this user?"
89
+ * buttonConfirm={{ text: "Yes, Remove" }}
90
+ * buttonCancel={{ text: "No, Keep" }}
91
+ * onConfirm={() => removeUser()}
92
+ * />
93
+ * ```
94
+ *
95
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-alertdialog--docs Storybook}
96
+ */
40
97
  export declare const AlertDialog: FC<AlertDialogProps>;
41
98
 
99
+ /**
100
+ * Props for the AlertDialog component.
101
+ *
102
+ * @example
103
+ * ```tsx
104
+ * <AlertDialog
105
+ * buttonTriggerText="Delete"
106
+ * buttonTriggerVariant="danger"
107
+ * title="Confirm Deletion"
108
+ * description="Are you sure you want to delete this item?"
109
+ * onConfirm={() => handleDelete()}
110
+ * />
111
+ * ```
112
+ */
42
113
  declare interface AlertDialogProps extends PropsWithChildren, AlertDialogProps_2 {
114
+ /** Cancel button props (className, text, etc.) */
43
115
  buttonCancel?: ButtonCancelProps;
116
+ /** Confirm button props (className, text, etc.) */
44
117
  buttonConfirm?: ButtonConfirmProps;
118
+ /** Text for the trigger button */
45
119
  buttonTriggerText?: string;
120
+ /** CSS classes for the trigger button */
46
121
  buttonTriggerClassName?: string;
122
+ /** Variant for the trigger button */
47
123
  buttonTriggerVariant?: ButtonProps['variant'];
124
+ /** Additional CSS classes */
48
125
  className?: string;
126
+ /** Description text shown in the dialog */
49
127
  description?: string | ReactNode;
128
+ /** Whether to show the cancel button (default: true) */
50
129
  showCancelButton?: boolean;
130
+ /** Theme override for this component */
51
131
  theme?: Theme;
132
+ /** Title text shown in the dialog */
52
133
  title?: string | ReactNode;
134
+ /** CSS classes for the dialog wrapper */
53
135
  wrapperClassName?: string;
136
+ /** Callback when confirm button is clicked */
54
137
  onConfirm?: () => void;
55
138
  }
56
139
 
140
+ /**
141
+ * Props for the Alert component.
142
+ *
143
+ * @example
144
+ * ```tsx
145
+ * <Alert type="success" content="Operation completed successfully!" />
146
+ * <Alert type="error" content="Something went wrong" showCloseButton />
147
+ * <Alert type="warning" content={<span>Warning: <strong>Action required</strong></span>} />
148
+ * ```
149
+ */
57
150
  declare interface AlertProps extends VariantProps<typeof alertVariants> {
151
+ /** Whether the alert can be dismissed (deprecated, use showCloseButton) */
58
152
  dismissible?: boolean;
153
+ /** Alert message content (string or ReactNode) */
59
154
  content: string | ReactNode;
155
+ /** Whether the alert is visible */
60
156
  isVisible?: boolean;
157
+ /** Show close button to dismiss alert */
61
158
  showCloseButton?: boolean;
159
+ /** Theme override for this component */
62
160
  theme?: Theme;
63
161
  }
64
162
 
@@ -67,24 +165,107 @@ declare const alertVariants: (props?: ({
67
165
  isVisible?: boolean | null | undefined;
68
166
  } & ClassProp) | undefined) => string;
69
167
 
168
+ /**
169
+ * An autocomplete/typeahead input component that suggests options as you type.
170
+ *
171
+ * @example
172
+ * ```tsx
173
+ * // Basic autocomplete
174
+ * <Autocomplete
175
+ * label="Programming Language"
176
+ * options={[
177
+ * { value: 'JavaScript' },
178
+ * { value: 'TypeScript' },
179
+ * { value: 'Python' },
180
+ * ]}
181
+ * placeholder="Type to search..."
182
+ * onChange={(value) => setLanguage(value)}
183
+ * />
184
+ *
185
+ * // With custom empty state
186
+ * <Autocomplete
187
+ * options={users}
188
+ * placeholder="Search users..."
189
+ * placeHolderEmptyValues="No users found"
190
+ * onChange={handleUserSelect}
191
+ * />
192
+ * ```
193
+ *
194
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-autocomplete--docs Storybook}
195
+ */
70
196
  export declare const Autocomplete: ForwardRefExoticComponent<AutocompleteProps & RefAttributes<HTMLInputElement>>;
71
197
 
198
+ /**
199
+ * Props for the Autocomplete component.
200
+ *
201
+ * @example
202
+ * ```tsx
203
+ * <Autocomplete
204
+ * label="Search"
205
+ * options={[{ value: 'React' }, { value: 'Vue' }, { value: 'Angular' }]}
206
+ * placeholder="Search frameworks..."
207
+ * onChange={(value) => console.log(value)}
208
+ * />
209
+ * ```
210
+ */
72
211
  declare interface AutocompleteProps extends VariantProps<typeof autocompleteVariants> {
212
+ /** Disable browser autocomplete (default: 'off') */
73
213
  autoComplete?: 'off';
214
+ /** Additional CSS classes */
74
215
  className?: string;
216
+ /** Label displayed above the input */
75
217
  label?: string;
218
+ /** CSS classes for the label */
76
219
  labelClassName?: string;
220
+ /** Form field name */
77
221
  name?: string;
222
+ /** Array of options to suggest */
78
223
  options: Option_3[];
224
+ /** Placeholder text */
79
225
  placeholder?: string;
226
+ /** Text shown when no options match */
80
227
  placeHolderEmptyValues?: string | ReactNode;
228
+ /** CSS classes for empty state text */
81
229
  placeHolderEmptyValuesClassName?: string;
230
+ /** Theme override for this component */
82
231
  theme?: Theme;
232
+ /** Callback when a value is selected */
83
233
  onChange(value: string): void;
84
234
  }
85
235
 
86
236
  declare const autocompleteVariants: (props?: ClassProp | undefined) => string;
87
237
 
238
+ /**
239
+ * A badge/tag component for status indicators and labels.
240
+ * Supports multiple variants, icons, loading state, and dismissible mode.
241
+ *
242
+ * @example
243
+ * ```tsx
244
+ * // Basic badge
245
+ * <Badge label="Active" variant="success" />
246
+ *
247
+ * // Badge with icon
248
+ * <Badge label="Settings" leftIcon={<SettingsIcon />} />
249
+ *
250
+ * // Dismissible badge
251
+ * <Badge
252
+ * label="Tag"
253
+ * dismissible
254
+ * onDismiss={() => removeTag()}
255
+ * />
256
+ *
257
+ * // Clickable badge
258
+ * <Badge
259
+ * label="Filter"
260
+ * onClick={() => applyFilter()}
261
+ * />
262
+ *
263
+ * // Loading badge
264
+ * <Badge label="Processing" loading />
265
+ * ```
266
+ *
267
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-badge--docs Storybook}
268
+ */
88
269
  export declare const Badge: FC<BadgeProps>;
89
270
 
90
271
  export declare const BadgeMultiSelect: FC<BadgeMultiSelectProps>;
@@ -96,15 +277,35 @@ declare type BadgeMultiSelectProps = {
96
277
  onApply?: (selectedOptions: Option_5[]) => void;
97
278
  };
98
279
 
280
+ /**
281
+ * Props for the Badge component.
282
+ *
283
+ * @example
284
+ * ```tsx
285
+ * <Badge label="New" variant="success" />
286
+ * <Badge label="Pending" variant="warning" />
287
+ * <Badge label="Error" variant="error" dismissible onDismiss={() => {}} />
288
+ * <Badge label="With Icon" leftIcon={<Icon />} />
289
+ * ```
290
+ */
99
291
  declare type BadgeProps = VariantProps<typeof badgeVariants> & {
292
+ /** Additional CSS classes */
100
293
  className?: string;
294
+ /** Show dismiss button */
101
295
  dismissible?: true;
296
+ /** Allow text selection (default: true) */
102
297
  isSelectable?: boolean;
298
+ /** Badge text content */
103
299
  label: string;
300
+ /** Icon displayed on the left */
104
301
  leftIcon?: ReactNode;
302
+ /** Show loading spinner */
105
303
  loading?: boolean;
304
+ /** Icon displayed on the right (when not dismissible) */
106
305
  rightIcon?: ReactNode;
306
+ /** Click handler (makes badge interactive) */
107
307
  onClick?: VoidFunction;
308
+ /** Callback when dismiss button clicked */
108
309
  onDismiss?: VoidFunction;
109
310
  };
110
311
 
@@ -113,21 +314,96 @@ declare const badgeVariants: (props?: ({
113
314
  size?: "default" | null | undefined;
114
315
  } & ClassProp) | undefined) => string;
115
316
 
317
+ /**
318
+ * Props for Table.Body component.
319
+ */
116
320
  declare interface BodyProps extends React.HTMLAttributes<HTMLTableSectionElement>, PropsWithChildren, VariantProps<typeof bodyVariants> {
117
321
  }
118
322
 
119
323
  declare const bodyVariants: (props?: ClassProp | undefined) => string;
120
324
 
325
+ /**
326
+ * A breadcrumb navigation component showing the current location in a hierarchy.
327
+ *
328
+ * @example
329
+ * ```tsx
330
+ * // Basic breadcrumb
331
+ * <Breadcrumb
332
+ * steps={[
333
+ * { label: 'Home', to: '/' },
334
+ * { label: 'Settings', to: '/settings' },
335
+ * { label: 'Profile', isActive: true },
336
+ * ]}
337
+ * />
338
+ *
339
+ * // With custom Link component (e.g., react-router)
340
+ * <Breadcrumb
341
+ * steps={[
342
+ * { label: 'Dashboard', to: '/dashboard', component: Link },
343
+ * { label: 'Users', to: '/users', component: Link },
344
+ * { label: 'Edit User', isActive: true },
345
+ * ]}
346
+ * />
347
+ * ```
348
+ *
349
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-breadcrumb--docs Storybook}
350
+ */
121
351
  export declare const Breadcrumb: FC<BreadcrumbProps>;
122
352
 
353
+ /**
354
+ * Props for the Breadcrumb component.
355
+ *
356
+ * @example
357
+ * ```tsx
358
+ * <Breadcrumb
359
+ * steps={[
360
+ * { label: 'Home', to: '/' },
361
+ * { label: 'Products', to: '/products' },
362
+ * { label: 'Current Page', isActive: true },
363
+ * ]}
364
+ * />
365
+ * ```
366
+ */
123
367
  declare interface BreadcrumbProps extends VariantProps<typeof breadcrumbVariants>, HTMLAttributes<HTMLOListElement> {
368
+ /** Array of breadcrumb steps */
124
369
  steps: Step[];
370
+ /** CSS classes for the nav wrapper */
125
371
  wrapperClassName?: string;
372
+ /** Theme override for this component */
126
373
  theme?: Theme;
127
374
  }
128
375
 
129
376
  declare const breadcrumbVariants: (props?: ClassProp | undefined) => string;
130
377
 
378
+ /**
379
+ * A customizable button component with multiple variants and styles.
380
+ *
381
+ * @example
382
+ * ```tsx
383
+ * // Primary button (default)
384
+ * <Button>Click me</Button>
385
+ *
386
+ * // Secondary button
387
+ * <Button variant="secondary">Secondary</Button>
388
+ *
389
+ * // Danger button
390
+ * <Button variant="danger">Delete</Button>
391
+ *
392
+ * // Link style button
393
+ * <Button variant="link">Learn more</Button>
394
+ *
395
+ * // Circle icon button
396
+ * <Button shape="circle" size="large"><Icon /></Button>
397
+ *
398
+ * // Compact button
399
+ * <Button appearance="compact">Compact</Button>
400
+ *
401
+ * // As child (renders child element with button styles)
402
+ * <Button asChild><a href="/page">Link</a></Button>
403
+ * ```
404
+ *
405
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-button--docs Storybook}
406
+ */
131
407
  export declare const Button: FC<ButtonProps>;
132
408
 
133
409
  declare type ButtonBaseProps = Partial<ButtonProps> & {
@@ -139,10 +415,24 @@ declare type ButtonCancelProps = ButtonBaseProps;
139
415
 
140
416
  declare type ButtonConfirmProps = ButtonBaseProps;
141
417
 
418
+ /**
419
+ * Props for the Button component.
420
+ *
421
+ * @example
422
+ * ```tsx
423
+ * <Button variant="primary">Click me</Button>
424
+ * <Button variant="secondary" disabled>Disabled</Button>
425
+ * <Button variant="danger" shape="circle"><TrashIcon /></Button>
426
+ * ```
427
+ */
142
428
  declare interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'disabled'>, VariantProps<typeof buttonVariants> {
429
+ /** Ref to the underlying button element */
143
430
  ref?: Ref<HTMLButtonElement>;
431
+ /** Merge props onto child element instead of rendering a button */
144
432
  asChild?: boolean;
433
+ /** Whether the button is disabled */
145
434
  disabled?: boolean;
435
+ /** Theme override for this component */
146
436
  theme?: Theme;
147
437
  }
148
438
 
@@ -155,12 +445,50 @@ declare const buttonVariants: (props?: ({
155
445
  appearance?: "compact" | null | undefined;
156
446
  } & ClassProp) | undefined) => string;
157
447
 
448
+ /**
449
+ * A container card component with optional hover and active states.
450
+ *
451
+ * @example
452
+ * ```tsx
453
+ * // Basic card
454
+ * <Card>
455
+ * <h3>Card Title</h3>
456
+ * <p>Card content goes here</p>
457
+ * </Card>
458
+ *
459
+ * // Hoverable card
460
+ * <Card canHover onClick={handleClick}>
461
+ * Hover to see effect
462
+ * </Card>
463
+ *
464
+ * // Active/selected card
465
+ * <Card isActive>
466
+ * This card is selected
467
+ * </Card>
468
+ * ```
469
+ *
470
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-card--docs Storybook}
471
+ */
158
472
  export declare const Card: FC<CardProps>;
159
473
 
474
+ /**
475
+ * Props for the Card component.
476
+ *
477
+ * @example
478
+ * ```tsx
479
+ * <Card>Basic card content</Card>
480
+ * <Card canHover>Hoverable card</Card>
481
+ * <Card isActive>Active/selected card</Card>
482
+ * ```
483
+ */
160
484
  declare interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants>, PropsWithChildren {
485
+ /** Enable hover effect */
161
486
  canHover?: boolean;
487
+ /** Show active/selected state */
162
488
  isActive?: boolean;
489
+ /** Theme override for this component */
163
490
  theme?: Theme;
491
+ /** CSS classes for the outer wrapper */
164
492
  wrapperClassName?: string;
165
493
  }
166
494
 
@@ -169,18 +497,60 @@ declare const cardVariants: (props?: ({
169
497
  canHover?: boolean | null | undefined;
170
498
  } & ClassProp) | undefined) => string;
171
499
 
500
+ /**
501
+ * A checkbox component built on Radix UI primitives.
502
+ * Supports controlled and uncontrolled modes with label support.
503
+ *
504
+ * @example
505
+ * ```tsx
506
+ * // Basic checkbox with label
507
+ * <Checkbox label="Accept terms and conditions" />
508
+ *
509
+ * // Controlled checkbox
510
+ * <Checkbox
511
+ * label="Subscribe to newsletter"
512
+ * defaultChecked={subscribed}
513
+ * onChange={(checked) => setSubscribed(checked)}
514
+ * />
515
+ *
516
+ * // Disabled checkbox
517
+ * <Checkbox label="Premium feature" disabled />
518
+ * ```
519
+ *
520
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-checkbox--docs Storybook}
521
+ */
172
522
  export declare const Checkbox: FC<CheckboxProps>;
173
523
 
524
+ /**
525
+ * Props for the Checkbox component.
526
+ *
527
+ * @example
528
+ * ```tsx
529
+ * <Checkbox label="Accept terms" onChange={(checked) => setAccepted(checked)} />
530
+ * <Checkbox label="Remember me" defaultChecked />
531
+ * <Checkbox label="Disabled option" disabled />
532
+ * ```
533
+ */
174
534
  declare interface CheckboxProps extends Omit<CheckboxProps_2, 'onChange'>, Omit<VariantProps<typeof checkboxVariants>, 'checked'> {
535
+ /** ID of element that labels the checkbox for accessibility */
175
536
  ariaLabelledBy?: string;
537
+ /** Additional CSS classes */
176
538
  className?: string;
539
+ /** Initial checked state */
177
540
  defaultChecked?: boolean;
541
+ /** Whether the checkbox is disabled */
178
542
  disabled?: boolean;
543
+ /** HTML id attribute */
179
544
  id?: string;
545
+ /** Label text displayed next to checkbox */
180
546
  label?: string;
547
+ /** CSS classes for the label */
181
548
  labelClassName?: string;
549
+ /** Form field name */
182
550
  name?: string;
551
+ /** Theme override for this component */
183
552
  theme?: Theme;
553
+ /** Callback when checked state changes */
184
554
  onChange?: (checked: boolean) => void;
185
555
  }
186
556
 
@@ -195,24 +565,85 @@ export declare type ColumnDef<TData extends RowData> = ColumnDef_2<TData, string
195
565
 
196
566
  export declare const Content: FC<TabsContentProps>;
197
567
 
568
+ /**
569
+ * A numeric input component with increment/decrement buttons.
570
+ * Also exported as `NumberInput` for convenience.
571
+ *
572
+ * @example
573
+ * ```tsx
574
+ * // Basic counter
575
+ * <Counter
576
+ * label="Quantity"
577
+ * value={count}
578
+ * onChange={({ target }) => setCount(target.value)}
579
+ * />
580
+ *
581
+ * // With min/max limits
582
+ * <Counter
583
+ * label="Number of nodes"
584
+ * value={nodes}
585
+ * min={1}
586
+ * max={10}
587
+ * onChange={({ target }) => setNodes(target.value)}
588
+ * />
589
+ *
590
+ * // Disabled increment/decrement
591
+ * <Counter
592
+ * value={5}
593
+ * canIncrement={value < max}
594
+ * canDecrement={value > min}
595
+ * onChange={handleChange}
596
+ * />
597
+ * ```
598
+ *
599
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-counter--docs Storybook}
600
+ */
198
601
  declare const Counter: FC<CounterProps>;
199
602
  export { Counter }
200
603
  export { Counter as NumberInput }
201
604
 
605
+ /**
606
+ * Props for the Counter (NumberInput) component.
607
+ *
608
+ * @example
609
+ * ```tsx
610
+ * <Counter
611
+ * label="Quantity"
612
+ * value={quantity}
613
+ * min={1}
614
+ * max={10}
615
+ * onChange={({ target }) => setQuantity(target.value)}
616
+ * />
617
+ * ```
618
+ */
202
619
  declare interface CounterProps extends VariantProps<typeof counterVariants> {
620
+ /** Allow decrement button to be clicked */
203
621
  canDecrement?: boolean;
622
+ /** Allow increment button to be clicked */
204
623
  canIncrement?: boolean;
624
+ /** Additional CSS classes */
205
625
  className?: string;
626
+ /** CSS classes for decrement button */
206
627
  decrementButtonClassName?: string;
628
+ /** CSS classes for increment button */
207
629
  incrementButtonClassName?: string;
630
+ /** Initial value (deprecated, use value) */
208
631
  init?: number;
632
+ /** Show required indicator */
209
633
  isRequired?: boolean;
634
+ /** Label displayed above the counter */
210
635
  label?: string;
636
+ /** Maximum allowed value */
211
637
  max?: number;
638
+ /** Minimum allowed value */
212
639
  min?: number;
640
+ /** Form field name */
213
641
  name?: string;
642
+ /** Theme override for this component */
214
643
  theme?: Theme;
644
+ /** Current numeric value */
215
645
  value?: number;
646
+ /** Callback when value changes */
216
647
  onChange?: ({ target: { value } }: {
217
648
  target: {
218
649
  value: number;
@@ -232,22 +663,113 @@ declare type DateFilterDropdownProps = {
232
663
  onApply?: (date?: Date) => void;
233
664
  };
234
665
 
666
+ /**
667
+ * A date picker component built on react-day-picker.
668
+ * Allows single date selection with calendar navigation.
669
+ *
670
+ * @example
671
+ * ```tsx
672
+ * // Basic date picker
673
+ * <DatePicker
674
+ * defaultSelected={new Date()}
675
+ * onSelect={(date) => console.log(date)}
676
+ * />
677
+ *
678
+ * // With custom styling
679
+ * <DatePicker
680
+ * defaultSelected={startDate}
681
+ * onSelect={setStartDate}
682
+ * monthsClassName="custom-months"
683
+ * />
684
+ * ```
685
+ *
686
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-datepicker--docs Storybook}
687
+ */
235
688
  export declare const DatePicker: FC<DatePickerProps>;
236
689
 
690
+ /**
691
+ * Props for the DatePicker component.
692
+ *
693
+ * @example
694
+ * ```tsx
695
+ * <DatePicker
696
+ * defaultSelected={new Date()}
697
+ * onSelect={(date) => setSelectedDate(date)}
698
+ * />
699
+ * ```
700
+ */
237
701
  declare type DatePickerProps = Omit<DayPickerProps, 'mode'> & VariantProps<typeof datePickerVariants> & {
702
+ /** CSS classes for the navigation arrows */
238
703
  arrowClassName?: string;
704
+ /** CSS classes for the months container */
239
705
  monthsClassName?: string;
706
+ /** Timezone for date display */
240
707
  timeZone?: TimeZone;
708
+ /** Initial selected date */
241
709
  defaultSelected?: Date;
710
+ /** Callback when a date is selected */
242
711
  onSelect?: (date: Date) => void;
243
712
  };
244
713
 
245
714
  declare const datePickerVariants: (props?: ClassProp | undefined) => string;
246
715
 
716
+ /**
717
+ * A horizontal divider/separator line.
718
+ *
719
+ * @example
720
+ * ```tsx
721
+ * <div>
722
+ * <p>Section 1</p>
723
+ * <Divider />
724
+ * <p>Section 2</p>
725
+ * </div>
726
+ * ```
727
+ *
728
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-divider--docs Storybook}
729
+ */
247
730
  export declare const Divider: FC<HTMLAttributes<HTMLDivElement>>;
248
731
 
732
+ /**
733
+ * A button with an attached dropdown menu for selecting actions.
734
+ * Closes automatically on outside click, Escape key, or tab visibility change.
735
+ *
736
+ * @example
737
+ * ```tsx
738
+ * <DropdownButton
739
+ * options={[
740
+ * { label: 'Download PDF', onClick: handlePdf },
741
+ * { label: 'Download CSV', onClick: handleCsv },
742
+ * ]}
743
+ * buttonClassName="w-64"
744
+ * />
745
+ * ```
746
+ *
747
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-dropdownbutton--docs Storybook}
748
+ */
249
749
  export declare const DropdownButton: FC<Props>;
250
750
 
751
+ /**
752
+ * A compound component for building filter interfaces.
753
+ * Includes sub-components for badge multi-select, date filtering, and reset actions.
754
+ *
755
+ * @example
756
+ * ```tsx
757
+ * <Filter theme="civo">
758
+ * <Filter.BadgeMultiSelect
759
+ * label="Status"
760
+ * options={[
761
+ * { id: 'active', label: 'Active', variant: 'success' },
762
+ * { id: 'pending', label: 'Pending', variant: 'warning' },
763
+ * ]}
764
+ * selectedValues={selected}
765
+ * onChange={setSelected}
766
+ * />
767
+ * <Filter.ResetButton onClick={() => setSelected([])} />
768
+ * </Filter>
769
+ * ```
770
+ *
771
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-filter--docs Storybook}
772
+ */
251
773
  export declare const Filter: FilterComponentProps;
252
774
 
253
775
  declare type FilterAction = {
@@ -256,18 +778,48 @@ declare type FilterAction = {
256
778
  variant?: ButtonProps['variant'];
257
779
  };
258
780
 
781
+ /**
782
+ * Filter compound component type with sub-components.
783
+ */
259
784
  declare type FilterComponentProps = FC<FilterProps> & {
260
785
  BadgeMultiSelect: FC<BadgeMultiSelectProps>;
261
786
  DateFilterDropdown: FC<DateFilterDropdownProps>;
262
787
  ResetButton: FC<ResetButtonProps>;
263
788
  };
264
789
 
790
+ /**
791
+ * Props for the Filter component.
792
+ * A compound component for building filter interfaces.
793
+ *
794
+ * @example
795
+ * ```tsx
796
+ * <Filter theme="civo">
797
+ * <Filter.BadgeMultiSelect
798
+ * label="Status"
799
+ * options={statusOptions}
800
+ * selectedValues={selectedStatuses}
801
+ * onChange={setSelectedStatuses}
802
+ * />
803
+ * <Filter.DateFilterDropdown
804
+ * label="Date"
805
+ * onDateChange={setDateRange}
806
+ * />
807
+ * <Filter.ResetButton onClick={resetFilters} />
808
+ * </Filter>
809
+ * ```
810
+ */
265
811
  declare type FilterProps = VariantProps<typeof filterVariants> & PropsWithChildren & {
812
+ /** Additional CSS classes for the filter wrapper */
266
813
  className?: string;
814
+ /** Theme override for this component */
267
815
  theme?: Theme;
268
816
  };
269
817
 
818
+ /**
819
+ * Props for Table.Filter component.
820
+ */
270
821
  declare interface FilterProps_2 extends React.InputHTMLAttributes<HTMLInputElement>, PropsWithChildren {
822
+ /** Placeholder text for the filter input */
271
823
  placeholder?: string;
272
824
  }
273
825
 
@@ -281,8 +833,12 @@ declare interface FooterProps extends PropsWithChildren, VariantProps<typeof foo
281
833
 
282
834
  declare const footerVariants: (props?: ClassProp | undefined) => string;
283
835
 
836
+ /** Valid HTML heading tags */
284
837
  declare type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
285
838
 
839
+ /**
840
+ * Props for Table.Head component.
841
+ */
286
842
  declare interface HeadProps extends React.HTMLAttributes<HTMLTableSectionElement>, PropsWithChildren, VariantProps<typeof headVariants> {
287
843
  }
288
844
 
@@ -290,31 +846,87 @@ declare const headVariants: (props?: ClassProp | undefined) => string;
290
846
 
291
847
  declare type HexColor = `#${string}`;
292
848
 
849
+ /**
850
+ * A file input component for uploading images with preview and validation.
851
+ * Supports drag states, file type validation, size limits, and upload progress.
852
+ *
853
+ * @example
854
+ * ```tsx
855
+ * <ImageUpload
856
+ * label="Profile Picture"
857
+ * name="avatar"
858
+ * accept="image/png,image/jpeg"
859
+ * maxSize={5 * 1024 * 1024}
860
+ * uploadButtonText="Choose image"
861
+ * onChange={(e) => console.log(e.target.files?.[0])}
862
+ * onRemove={() => setAvatar(null)}
863
+ * />
864
+ * ```
865
+ *
866
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-imageupload--docs Storybook}
867
+ */
293
868
  export declare const ImageUpload: {
294
869
  ({ className, error, fileName, fileSize, fileUrl, helperText, isRequired, label, labelClassName, name, onChange, onRemove, status, theme, uploadButtonText, accept, maxSize, }: ImageUploadProps): JSX.Element;
295
870
  displayName: string;
296
871
  };
297
872
 
873
+ /**
874
+ * Props for the ImageUpload component.
875
+ * A file input for uploading images with preview, validation, and status states.
876
+ *
877
+ * @example
878
+ * ```tsx
879
+ * <ImageUpload
880
+ * label="Logo"
881
+ * name="logo"
882
+ * accept="image/png,image/svg+xml"
883
+ * maxSize={2 * 1024 * 1024}
884
+ * onChange={(e) => handleUpload(e.target.files?.[0])}
885
+ * onRemove={() => setLogo(null)}
886
+ * isRequired
887
+ * />
888
+ * ```
889
+ */
298
890
  declare interface ImageUploadProps extends Omit<VariantProps<typeof imageUploadVariants>, 'status'> {
891
+ /** Additional CSS classes */
299
892
  className?: string;
893
+ /** Error message to display */
300
894
  error?: string;
895
+ /** Name of the uploaded file */
301
896
  fileName?: string;
897
+ /** Formatted size of the uploaded file */
302
898
  fileSize?: string;
899
+ /** URL or data URL of the uploaded file for preview */
303
900
  fileUrl?: string;
901
+ /** Helper text displayed below the input */
304
902
  helperText?: string;
903
+ /** Whether the field is required */
305
904
  isRequired?: boolean;
905
+ /** Label displayed above the input */
306
906
  label?: string | ReactNode;
907
+ /** Additional CSS classes for the label */
307
908
  labelClassName?: string;
909
+ /** Form field name */
308
910
  name?: string;
911
+ /** Callback fired when a file is selected */
309
912
  onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
913
+ /** Callback fired when the uploaded file is removed */
310
914
  onRemove?: () => void;
915
+ /** Current upload status */
311
916
  status?: ImageUploadStatusType;
917
+ /** Theme override for this component */
312
918
  theme?: Theme;
919
+ /** Text displayed on the upload button */
313
920
  uploadButtonText?: string;
921
+ /** Accepted file MIME types (comma-separated) */
314
922
  accept?: string;
923
+ /** Maximum file size in bytes */
315
924
  maxSize?: number;
316
925
  }
317
926
 
927
+ /**
928
+ * Upload status states for the ImageUpload component.
929
+ */
318
930
  declare enum ImageUploadStatus {
319
931
  Default = "default",
320
932
  Uploading = "uploading",
@@ -328,16 +940,66 @@ declare const imageUploadVariants: (props?: ({
328
940
  status?: "error" | "default" | "uploading" | "complete" | null | undefined;
329
941
  } & ClassProp) | undefined) => string;
330
942
 
943
+ /**
944
+ * A text input component with label, error handling, and helper text support.
945
+ * Includes built-in password visibility toggle and search icon variant.
946
+ *
947
+ * @example
948
+ * ```tsx
949
+ * // Basic input with label
950
+ * <Input label="Email" placeholder="Enter your email" />
951
+ *
952
+ * // Required input with helper text
953
+ * <Input
954
+ * label="Username"
955
+ * isRequired
956
+ * helperText="Choose a unique username"
957
+ * />
958
+ *
959
+ * // Input with error state
960
+ * <Input
961
+ * label="Email"
962
+ * value={email}
963
+ * error="Please enter a valid email address"
964
+ * />
965
+ *
966
+ * // Password input (auto show/hide toggle)
967
+ * <Input label="Password" type="password" />
968
+ *
969
+ * // Search input with icon
970
+ * <Input placeholder="Search..." isSearch />
971
+ * ```
972
+ *
973
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-input--docs Storybook}
974
+ */
331
975
  export declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
332
976
 
977
+ /**
978
+ * Props for the Input component.
979
+ *
980
+ * @example
981
+ * ```tsx
982
+ * <Input label="Email" placeholder="Enter email" />
983
+ * <Input label="Password" type="password" isRequired />
984
+ * <Input error="Invalid email" helperText="We'll never share your email" />
985
+ * ```
986
+ */
333
987
  declare interface InputProps extends InputHTMLAttributes<HTMLInputElement>, VariantProps<typeof inputVariants> {
988
+ /** Error message to display below the input */
334
989
  error?: string;
990
+ /** Helper text displayed below the input when no error */
335
991
  helperText?: string;
992
+ /** Additional CSS classes for the helper text */
336
993
  helperTextClassName?: string;
994
+ /** Show required indicator (*) next to label */
337
995
  isRequired?: boolean;
996
+ /** Show search icon inside the input */
338
997
  isSearch?: boolean;
998
+ /** Label text or element displayed above the input */
339
999
  label?: string | ReactNode;
1000
+ /** Additional CSS classes for the label */
340
1001
  labelClassName?: string;
1002
+ /** Theme override for this component */
341
1003
  theme?: Theme;
342
1004
  }
343
1005
 
@@ -347,13 +1009,47 @@ declare const inputVariants: (props?: ({
347
1009
 
348
1010
  export declare const List: FC<ListProps>;
349
1011
 
1012
+ /**
1013
+ * Props for Tabs.List component.
1014
+ */
350
1015
  declare interface ListProps extends React.HTMLAttributes<HTMLDivElement>, PropsWithChildren {
1016
+ /** Tab list orientation */
351
1017
  orientation: 'horizontal' | 'vertical';
352
1018
  }
353
1019
 
1020
+ /**
1021
+ * A spinning loading indicator.
1022
+ *
1023
+ * @example
1024
+ * ```tsx
1025
+ * // Default loading spinner
1026
+ * <Loading />
1027
+ *
1028
+ * // Custom size
1029
+ * <Loading className="w-8 h-8" />
1030
+ *
1031
+ * // In a button
1032
+ * <Button disabled>
1033
+ * <Loading className="w-4 h-4 mr-2" />
1034
+ * Loading...
1035
+ * </Button>
1036
+ * ```
1037
+ *
1038
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-loading--docs Storybook}
1039
+ */
354
1040
  export declare const Loading: FC<LoadingProps>;
355
1041
 
1042
+ /**
1043
+ * Props for the Loading component.
1044
+ *
1045
+ * @example
1046
+ * ```tsx
1047
+ * <Loading />
1048
+ * <Loading className="w-8 h-8" />
1049
+ * ```
1050
+ */
356
1051
  declare type LoadingProps = InputHTMLAttributes<SVGSVGElement> & VariantProps<typeof loadingVariants> & {
1052
+ /** Theme override for this component */
357
1053
  theme?: Theme;
358
1054
  };
359
1055
 
@@ -367,61 +1063,180 @@ declare interface LogoProps extends PropsWithChildren, VariantProps<typeof logoV
367
1063
 
368
1064
  declare const logoVariants: (props?: ClassProp | undefined) => string;
369
1065
 
1066
+ /**
1067
+ * A modal dialog component with Header, Body, and Footer sub-components.
1068
+ * Supports keyboard navigation (Escape to close) and portals to document.body.
1069
+ *
1070
+ * @example
1071
+ * ```tsx
1072
+ * const [isOpen, setIsOpen] = useState(false);
1073
+ *
1074
+ * <Button onClick={() => setIsOpen(true)}>Open Modal</Button>
1075
+ *
1076
+ * <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
1077
+ * <Modal.Header>Confirm Action</Modal.Header>
1078
+ * <Modal.Body>
1079
+ * Are you sure you want to proceed?
1080
+ * </Modal.Body>
1081
+ * <Modal.Footer>
1082
+ * <Button variant="secondary" onClick={() => setIsOpen(false)}>
1083
+ * Cancel
1084
+ * </Button>
1085
+ * <Button onClick={handleConfirm}>Confirm</Button>
1086
+ * </Modal.Footer>
1087
+ * </Modal>
1088
+ * ```
1089
+ *
1090
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-modal--docs Storybook}
1091
+ */
370
1092
  export declare const Modal: FC<ModalProps> & {
371
1093
  Header: FC<ModalChildProps>;
372
1094
  Body: FC<ModalChildProps>;
373
1095
  Footer: FC<ModalChildProps>;
374
1096
  };
375
1097
 
1098
+ /**
1099
+ * Props for Modal sub-components (Header, Body, Footer).
1100
+ */
376
1101
  declare type ModalChildProps = {
1102
+ /** Content of the modal section */
377
1103
  children: ReactNode;
1104
+ /** Additional CSS classes */
378
1105
  className?: string;
1106
+ /** Merge props onto child element */
379
1107
  asChild?: boolean;
380
1108
  };
381
1109
 
1110
+ /**
1111
+ * Props for the Modal component.
1112
+ *
1113
+ * @example
1114
+ * ```tsx
1115
+ * <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
1116
+ * <Modal.Header>Title</Modal.Header>
1117
+ * <Modal.Body>Content</Modal.Body>
1118
+ * <Modal.Footer>
1119
+ * <Button onClick={() => setIsOpen(false)}>Close</Button>
1120
+ * </Modal.Footer>
1121
+ * </Modal>
1122
+ * ```
1123
+ */
382
1124
  declare interface ModalProps extends PropsWithChildren, VariantProps<typeof modalVariants> {
1125
+ /** CSS classes for the close button */
383
1126
  buttonCloseClassName?: string;
1127
+ /** Additional CSS classes for the modal */
384
1128
  className?: string;
1129
+ /** DOM element to portal the modal into (defaults to document.body) */
385
1130
  container?: Element | DocumentFragment;
1131
+ /** Whether the modal is open */
386
1132
  isOpen?: boolean;
1133
+ /** Show the X close button in the corner */
387
1134
  showCloseButton?: boolean;
1135
+ /** Theme override for this component */
388
1136
  theme?: Theme;
1137
+ /** Callback when modal is closed (Escape key or close button) */
389
1138
  onClose?: () => void;
390
1139
  }
391
1140
 
392
1141
  declare const modalVariants: (props?: ClassProp | undefined) => string;
393
1142
 
1143
+ /**
1144
+ * A dropdown component for selecting one or multiple options with search functionality.
1145
+ * Displays selected items as badges and supports loading states.
1146
+ *
1147
+ * @example
1148
+ * ```tsx
1149
+ * const [selected, setSelected] = useState<MultiSelectDropdownOption[]>([]);
1150
+ *
1151
+ * <MultiSelectDropdown
1152
+ * label="Assign team members"
1153
+ * placeholder="Search members..."
1154
+ * options={teamMembers}
1155
+ * value={selected}
1156
+ * onChange={(e) => setSelected(e.target.value)}
1157
+ * multiselect
1158
+ * />
1159
+ * ```
1160
+ *
1161
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-multiselectdropdown--docs Storybook}
1162
+ */
394
1163
  export declare const MultiSelectDropdown: FC<MultiSelectDropdownProps>;
395
1164
 
1165
+ /**
1166
+ * Configuration for a multi-select dropdown option.
1167
+ */
396
1168
  declare type MultiSelectDropdownOption = {
1169
+ /** Unique identifier for the option */
397
1170
  id: string | number;
1171
+ /** Display label for the option */
398
1172
  label: string;
1173
+ /** Optional badge text displayed next to the label */
399
1174
  badge?: string;
1175
+ /** Optional value (defaults to label if not provided) */
400
1176
  value?: string;
401
1177
  };
402
1178
 
1179
+ /**
1180
+ * Props for the MultiSelectDropdown component.
1181
+ * A dropdown that allows selecting one or multiple options with search.
1182
+ *
1183
+ * @example
1184
+ * ```tsx
1185
+ * <MultiSelectDropdown
1186
+ * label="Select users"
1187
+ * placeholder="Search users..."
1188
+ * options={[
1189
+ * { id: 1, label: 'John Doe', badge: 'Admin' },
1190
+ * { id: 2, label: 'Jane Smith', badge: 'User' },
1191
+ * ]}
1192
+ * value={selectedUsers}
1193
+ * onChange={(e) => setSelectedUsers(e.target.value)}
1194
+ * multiselect
1195
+ * />
1196
+ * ```
1197
+ */
403
1198
  declare interface MultiSelectDropdownProps extends VariantProps<typeof multiSelectDropdownVariants>, Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'onBlur'> {
1199
+ /** Whether the dropdown is in a loading state */
404
1200
  isLoading?: boolean;
1201
+ /** Whether the field is required */
405
1202
  isRequired?: boolean;
1203
+ /** Label displayed above the dropdown */
406
1204
  label?: string;
1205
+ /** Additional CSS classes for the label */
407
1206
  labelClassName?: string;
1207
+ /** Whether multiple options can be selected */
408
1208
  multiselect?: boolean;
1209
+ /** Form field name */
409
1210
  name?: string;
1211
+ /** Text shown when no options match the search */
410
1212
  noOptionsText?: string;
1213
+ /** Available options to select from */
411
1214
  options: MultiSelectDropdownOption[];
1215
+ /** Placeholder text when no selection */
412
1216
  placeholder?: string;
1217
+ /** Currently selected options */
413
1218
  value?: MultiSelectDropdownOption[];
1219
+ /** Additional CSS classes for the wrapper */
414
1220
  wrapperClassName?: string;
1221
+ /** Callback fired when selection changes */
415
1222
  onChange?: OnChangeFn_2;
1223
+ /** Callback fired when the input loses focus */
416
1224
  onBlur?: OnBlurFn;
417
1225
  }
418
1226
 
419
1227
  declare const multiSelectDropdownVariants: (props?: ClassProp | undefined) => string;
420
1228
 
1229
+ /**
1230
+ * Configuration for a multi-select filter in the table.
1231
+ */
421
1232
  declare type MultiSelectFilter = {
1233
+ /** Unique key for the filter */
422
1234
  key: string;
1235
+ /** Display label for the filter */
423
1236
  label: string;
1237
+ /** Position of the filter dropdown */
424
1238
  position?: 'right' | 'left';
1239
+ /** Available filter options */
425
1240
  options: Option_5[];
426
1241
  };
427
1242
 
@@ -505,83 +1320,251 @@ declare type OnChangeFn_2 = (params: {
505
1320
  };
506
1321
  }) => void;
507
1322
 
1323
+ /**
1324
+ * Option type for Select dropdown items.
1325
+ *
1326
+ * @example
1327
+ * ```tsx
1328
+ * const options: Option[] = [
1329
+ * { value: 'us', label: 'United States', leftIcon: <FlagUS /> },
1330
+ * { value: 'uk', label: 'United Kingdom', subLabel: 'Europe' },
1331
+ * ];
1332
+ * ```
1333
+ */
508
1334
  declare type Option_2 = {
1335
+ /** Display text for the option */
509
1336
  label: string;
1337
+ /** Secondary text displayed below the label */
510
1338
  subLabel?: string | ReactNode;
1339
+ /** Icon displayed on the left side of the option */
511
1340
  leftIcon?: ReactNode | string;
1341
+ /** CSS classes for the left icon */
512
1342
  leftIconClassName?: string;
1343
+ /** Show right component when this option is selected */
513
1344
  showRightComponentOnselectedValue?: boolean;
1345
+ /** Component displayed on the right side of the option */
514
1346
  rightComponent?: ReactNode | string;
1347
+ /** CSS classes for the right component */
515
1348
  rightComponentClassName?: string;
1349
+ /** CSS classes for wrapper when this option is selected */
516
1350
  wrapperClassNameOnSelectedValue?: string;
1351
+ /** Unique value for the option */
517
1352
  value: string;
518
1353
  };
519
1354
 
1355
+ /**
1356
+ * Option type for Autocomplete suggestions.
1357
+ */
520
1358
  declare type Option_3 = {
1359
+ /** The value to display and select */
521
1360
  value: string;
522
1361
  };
523
1362
 
1363
+ /**
1364
+ * Configuration for a dropdown menu option.
1365
+ */
524
1366
  declare type Option_4 = {
1367
+ /** The text or element displayed for this option */
525
1368
  label: string | ReactNode;
1369
+ /** Callback fired when this option is selected */
526
1370
  onClick?: VoidFunction;
527
1371
  };
528
1372
 
1373
+ /**
1374
+ * Configuration for a filter option.
1375
+ */
529
1376
  declare type Option_5 = {
1377
+ /** Unique identifier for the option */
530
1378
  id: string;
1379
+ /** Display label for the option */
531
1380
  label: string;
1381
+ /** Visual variant for the badge */
532
1382
  variant?: BadgeProps['variant'];
533
1383
  };
534
1384
 
1385
+ /**
1386
+ * A phone number input with country code selector and automatic formatting.
1387
+ * Uses google-libphonenumber for validation and formatting.
1388
+ *
1389
+ * @example
1390
+ * ```tsx
1391
+ * <PhoneNumberInput
1392
+ * label="Contact Number"
1393
+ * name="contactPhone"
1394
+ * defaultCountryCode="US"
1395
+ * showFlagOnSearch
1396
+ * showInputFilter
1397
+ * isRequired
1398
+ * />
1399
+ * ```
1400
+ *
1401
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-phonenumberinput--docs Storybook}
1402
+ */
535
1403
  export declare const PhoneNumberInput: FC<Props_2>;
536
1404
 
1405
+ /**
1406
+ * A doughnut/pie chart component for data visualization.
1407
+ * Built on Chart.js with support for center text labels.
1408
+ *
1409
+ * @example
1410
+ * ```tsx
1411
+ * <PieChart
1412
+ * values={[25, 75]}
1413
+ * colors={['#94a3b8', '#22c55e']}
1414
+ * title="75%"
1415
+ * subtitle="Progress"
1416
+ * cutoutPercentage={80}
1417
+ * />
1418
+ * ```
1419
+ *
1420
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-piechart--docs Storybook}
1421
+ */
537
1422
  export declare const PieChart: FC<Props_3>;
538
1423
 
1424
+ /**
1425
+ * A progress bar component showing completion percentage.
1426
+ *
1427
+ * @example
1428
+ * ```tsx
1429
+ * // Basic progress bar
1430
+ * <ProgressBar percent={50} />
1431
+ *
1432
+ * // With label
1433
+ * <ProgressBar percent={75} label="Upload Progress" />
1434
+ *
1435
+ * // Completed state
1436
+ * <ProgressBar percent={100} status="success" label="Complete" />
1437
+ * ```
1438
+ *
1439
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-progressbar--docs Storybook}
1440
+ */
539
1441
  export declare const ProgressBar: FC<ProgressBarProps>;
540
1442
 
1443
+ /**
1444
+ * Props for the ProgressBar component.
1445
+ *
1446
+ * @example
1447
+ * ```tsx
1448
+ * <ProgressBar percent={75} label="Progress" />
1449
+ * <ProgressBar percent={100} status="success" />
1450
+ * ```
1451
+ */
541
1452
  declare interface ProgressBarProps extends VariantProps<typeof progressBarVariants> {
1453
+ /** CSS classes for the background bar */
542
1454
  backgroundBarClassName?: string;
1455
+ /** Additional CSS classes */
543
1456
  className?: string;
1457
+ /** Label text displayed above the progress bar */
544
1458
  label?: string;
1459
+ /** CSS classes for the label */
545
1460
  labelClassName?: string;
1461
+ /** CSS classes for the label wrapper */
546
1462
  labelWrapperClassName?: string;
1463
+ /** Progress percentage (0-100) */
547
1464
  percent: number;
1465
+ /** CSS classes for the percent text */
548
1466
  percentClassName?: string;
1467
+ /** CSS classes for the progress bar fill */
549
1468
  progressBarClassName?: string;
1469
+ /** Visual status of the progress bar */
550
1470
  status?: 'success' | 'progress';
1471
+ /** Theme override for this component */
551
1472
  theme?: Theme;
1473
+ /** CSS classes for the outer wrapper */
552
1474
  wrapperClassName?: string;
553
1475
  }
554
1476
 
555
1477
  declare const progressBarVariants: (props?: ClassProp | undefined) => string;
556
1478
 
1479
+ /**
1480
+ * Props for the DropdownButton component.
1481
+ *
1482
+ * @example
1483
+ * ```tsx
1484
+ * <DropdownButton
1485
+ * options={[
1486
+ * { label: 'PDF', onClick: () => downloadPdf() },
1487
+ * { label: 'CSV', onClick: () => downloadCsv() },
1488
+ * { label: 'Excel', onClick: () => downloadExcel() },
1489
+ * ]}
1490
+ * />
1491
+ * ```
1492
+ */
557
1493
  declare type Props = {
1494
+ /** Additional CSS classes for the trigger button */
558
1495
  buttonClassName?: string;
1496
+ /** Additional CSS classes for the wrapper container */
559
1497
  className?: string;
1498
+ /** Additional CSS classes for each dropdown item */
560
1499
  itemClassName?: string;
1500
+ /** Additional CSS classes for the dropdown list */
561
1501
  listClassName?: string;
1502
+ /** Array of options to display in the dropdown */
562
1503
  options: Option_4[];
563
1504
  };
564
1505
 
1506
+ /**
1507
+ * Props for the PhoneNumberInput component.
1508
+ * An input with country code selector and phone number formatting.
1509
+ *
1510
+ * @example
1511
+ * ```tsx
1512
+ * <PhoneNumberInput
1513
+ * label="Phone Number"
1514
+ * name="phone"
1515
+ * defaultCountryCode="US"
1516
+ * placeholder="Enter phone number"
1517
+ * showFlagOnSearch
1518
+ * />
1519
+ * ```
1520
+ */
565
1521
  declare type Props_2 = InputHTMLAttributes<HTMLInputElement> & {
1522
+ /** Default country code for the selector (e.g., 'US', 'GB') */
566
1523
  defaultCountryCode?: RegionCode;
1524
+ /** Whether the input is disabled */
567
1525
  disabled?: boolean;
1526
+ /** Error message to display */
568
1527
  error?: string;
1528
+ /** Helper text displayed below the input */
569
1529
  helperText?: string;
1530
+ /** Additional CSS classes for the helper text */
570
1531
  helperTextClassName?: string;
1532
+ /** Whether the field is required */
571
1533
  isRequired?: boolean;
1534
+ /** Label displayed above the input */
572
1535
  label?: string;
1536
+ /** Additional CSS classes for the label */
573
1537
  labelClassName?: string;
1538
+ /** Form field name */
574
1539
  name?: string;
1540
+ /** Placeholder text for the input */
575
1541
  placeholder?: string;
1542
+ /** Whether to show country flags in the search dropdown */
576
1543
  showFlagOnSearch?: boolean;
1544
+ /** Whether to show the country filter input */
577
1545
  showInputFilter?: boolean;
1546
+ /** Whether to show country names in the search dropdown */
578
1547
  showNameOnSearch?: boolean;
1548
+ /** Whether to show the placeholder text */
579
1549
  showPlaceHolder?: boolean;
1550
+ /** Additional CSS classes for the wrapper */
580
1551
  wrapperClassName?: string;
581
1552
  };
582
1553
 
583
1554
  /**
584
- * Props for the PieChart component
1555
+ * Props for the PieChart component.
1556
+ * A doughnut/pie chart built on Chart.js for data visualization.
1557
+ *
1558
+ * @example
1559
+ * ```tsx
1560
+ * <PieChart
1561
+ * values={[30, 70]}
1562
+ * colors={['#ef4444', '#22c55e']}
1563
+ * title="70%"
1564
+ * subtitle="Complete"
1565
+ * cutoutPercentage={75}
1566
+ * />
1567
+ * ```
585
1568
  */
586
1569
  declare type Props_3 = {
587
1570
  /**
@@ -660,6 +1643,28 @@ declare type Props_4<TData extends RowData> = CellContext<TData, string> & {
660
1643
  value?: string;
661
1644
  };
662
1645
 
1646
+ /**
1647
+ * Props for the VirtualizedTable component.
1648
+ * A feature-rich data table with filtering, pagination, and sorting.
1649
+ *
1650
+ * @example
1651
+ * ```tsx
1652
+ * <VirtualizedTable
1653
+ * id="users-table"
1654
+ * ariaLabel="Users list"
1655
+ * columns={[
1656
+ * { accessorKey: 'name', header: 'Name' },
1657
+ * { accessorKey: 'email', header: 'Email' },
1658
+ * ]}
1659
+ * data={users}
1660
+ * totalItems={totalUsers}
1661
+ * showPagination
1662
+ * showFilter
1663
+ * showFilterInput
1664
+ * filterSearchPlaceholder="Search users..."
1665
+ * />
1666
+ * ```
1667
+ */
663
1668
  declare type Props_5<TData extends RowData_2> = VariantProps<typeof virtualizeTableVariants> & {
664
1669
  id: string | string[];
665
1670
  ariaLabel?: string;
@@ -720,12 +1725,85 @@ declare type Props_6<TData extends RowData> = CellContext<TData, unknown> & {
720
1725
  wrapperContentActionsClassName?: string;
721
1726
  };
722
1727
 
1728
+ /**
1729
+ * A radio button component with label and optional description.
1730
+ * Use RadioGroup to manage a group of radio buttons.
1731
+ *
1732
+ * @example
1733
+ * ```tsx
1734
+ * <Radio
1735
+ * name="plan"
1736
+ * value="basic"
1737
+ * label="Basic Plan"
1738
+ * description="Free forever"
1739
+ * checked={plan === 'basic'}
1740
+ * onChange={(value) => setPlan(value)}
1741
+ * />
1742
+ * ```
1743
+ *
1744
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-radio--docs Storybook}
1745
+ */
723
1746
  export declare const Radio: FC<RadioProps>;
724
1747
 
1748
+ /**
1749
+ * A card-style radio button for visually prominent selection options.
1750
+ * Use RadioCardGroup to manage a group of radio cards.
1751
+ *
1752
+ * @example
1753
+ * ```tsx
1754
+ * <RadioCard
1755
+ * name="tier"
1756
+ * value="enterprise"
1757
+ * label="Enterprise"
1758
+ * description="Custom pricing"
1759
+ * checked={tier === 'enterprise'}
1760
+ * onChange={(value) => setTier(value)}
1761
+ * />
1762
+ * ```
1763
+ *
1764
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-radiocard--docs Storybook}
1765
+ */
725
1766
  export declare const RadioCard: FC<RadioCardProps>;
726
1767
 
1768
+ /**
1769
+ * A group of card-style radio buttons with shared state management.
1770
+ *
1771
+ * @example
1772
+ * ```tsx
1773
+ * <RadioCardGroup
1774
+ * name="plan"
1775
+ * direction="row"
1776
+ * options={[
1777
+ * { value: 'starter', label: 'Starter', description: 'For individuals' },
1778
+ * { value: 'team', label: 'Team', description: 'For small teams' },
1779
+ * { value: 'business', label: 'Business', description: 'For organizations' },
1780
+ * ]}
1781
+ * defaultChecked="team"
1782
+ * onValueChange={(value) => console.log(value)}
1783
+ * />
1784
+ * ```
1785
+ *
1786
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-radiocardgroup--docs Storybook}
1787
+ */
727
1788
  export declare const RadioCardGroup: FC<RadioCardGroupProps>;
728
1789
 
1790
+ /**
1791
+ * Props for the RadioCardGroup component.
1792
+ *
1793
+ * @example
1794
+ * ```tsx
1795
+ * <RadioCardGroup
1796
+ * name="pricing"
1797
+ * options={[
1798
+ * { value: 'basic', label: 'Basic', description: '$9/mo' },
1799
+ * { value: 'pro', label: 'Pro', description: '$29/mo' },
1800
+ * { value: 'enterprise', label: 'Enterprise', description: 'Custom' },
1801
+ * ]}
1802
+ * defaultChecked="pro"
1803
+ * onValueChange={(value) => setTier(value)}
1804
+ * />
1805
+ * ```
1806
+ */
729
1807
  declare type RadioCardGroupProps = {
730
1808
  asChild?: boolean;
731
1809
  className?: string;
@@ -738,38 +1816,138 @@ declare type RadioCardGroupProps = {
738
1816
  onValueChange?: (value: string) => void;
739
1817
  };
740
1818
 
1819
+ /**
1820
+ * Props for the RadioCard component.
1821
+ * Combines Card styling with Radio functionality.
1822
+ *
1823
+ * @example
1824
+ * ```tsx
1825
+ * <RadioCard
1826
+ * name="plan"
1827
+ * value="pro"
1828
+ * label="Pro Plan"
1829
+ * description="$29/month"
1830
+ * checked={selected === 'pro'}
1831
+ * onChange={(value) => setSelected(value)}
1832
+ * />
1833
+ * ```
1834
+ */
741
1835
  declare type RadioCardProps = Omit<CardProps, 'canHover' | 'isActive'> & Pick<RadioProps, 'name' | 'value' | 'checked' | 'onChange' | 'label' | 'disabled' | 'defaultChecked' | 'labelTextClassName' | 'description' | 'descriptionClassName'> & {
742
1836
  labelWrapperClassName?: string;
743
1837
  theme?: Theme;
744
1838
  };
745
1839
 
1840
+ /**
1841
+ * A group of radio buttons with shared state management.
1842
+ *
1843
+ * @example
1844
+ * ```tsx
1845
+ * // Vertical layout (default)
1846
+ * <RadioGroup
1847
+ * name="subscription"
1848
+ * options={[
1849
+ * { value: 'monthly', label: 'Monthly', description: '$10/mo' },
1850
+ * { value: 'yearly', label: 'Yearly', description: '$100/yr' },
1851
+ * ]}
1852
+ * defaultChecked="monthly"
1853
+ * onValueChange={(value) => setSubscription(value)}
1854
+ * />
1855
+ *
1856
+ * // Horizontal layout
1857
+ * <RadioGroup
1858
+ * name="size"
1859
+ * direction="row"
1860
+ * options={[
1861
+ * { value: 'sm', label: 'Small' },
1862
+ * { value: 'md', label: 'Medium' },
1863
+ * { value: 'lg', label: 'Large' },
1864
+ * ]}
1865
+ * onValueChange={setSize}
1866
+ * />
1867
+ * ```
1868
+ *
1869
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-radiogroup--docs Storybook}
1870
+ */
746
1871
  export declare const RadioGroup: FC<RadioGroupProps>;
747
1872
 
1873
+ /**
1874
+ * Props for the RadioGroup component.
1875
+ *
1876
+ * @example
1877
+ * ```tsx
1878
+ * <RadioGroup
1879
+ * name="plan"
1880
+ * options={[
1881
+ * { value: 'basic', label: 'Basic' },
1882
+ * { value: 'pro', label: 'Pro' },
1883
+ * { value: 'enterprise', label: 'Enterprise' },
1884
+ * ]}
1885
+ * defaultChecked="basic"
1886
+ * onValueChange={(value) => setPlan(value)}
1887
+ * />
1888
+ * ```
1889
+ */
748
1890
  declare interface RadioGroupProps {
1891
+ /** Merge props onto child element */
749
1892
  asChild?: boolean;
1893
+ /** CSS classes for each radio option */
750
1894
  className?: RadioProps['className'];
1895
+ /** Initially selected value */
751
1896
  defaultChecked?: string;
1897
+ /** Layout direction (row or col) */
752
1898
  direction?: 'row' | 'col';
1899
+ /** Label for the group */
753
1900
  label?: string | ReactNode;
1901
+ /** Form field name (shared by all radios) */
754
1902
  name: string;
1903
+ /** Array of radio options */
755
1904
  options: Omit<RadioProps, 'name' | 'checked' | 'defaultChecked'>[];
1905
+ /** Theme override for this component */
756
1906
  theme?: Theme;
1907
+ /** CSS classes for the wrapper */
757
1908
  wrapperClassName?: string;
1909
+ /** Callback when selection changes */
758
1910
  onValueChange?: (value: string) => void;
759
1911
  }
760
1912
 
1913
+ /**
1914
+ * Props for the Radio component.
1915
+ *
1916
+ * @example
1917
+ * ```tsx
1918
+ * <Radio
1919
+ * name="plan"
1920
+ * value="basic"
1921
+ * label="Basic Plan"
1922
+ * checked={selected === 'basic'}
1923
+ * onChange={(value) => setSelected(value)}
1924
+ * />
1925
+ * ```
1926
+ */
761
1927
  declare interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'disabled'>, VariantProps<typeof radioVariants> {
1928
+ /** Whether the radio is checked */
762
1929
  checked?: boolean;
1930
+ /** Initial checked state (uncontrolled) */
763
1931
  defaultChecked?: boolean;
1932
+ /** Whether the radio is disabled */
764
1933
  disabled?: boolean;
1934
+ /** Label text or element */
765
1935
  label?: string | ReactNode;
1936
+ /** CSS classes for the label text */
766
1937
  labelTextClassName?: string;
1938
+ /** Form field name (groups radios together) */
767
1939
  name: string;
1940
+ /** Description text below the label */
768
1941
  description?: string | ReactNode;
1942
+ /** CSS classes for the description */
769
1943
  descriptionClassName?: string;
1944
+ /** Value submitted when selected */
770
1945
  value: string;
1946
+ /** CSS classes for the wrapper */
771
1947
  wrapperClassName?: string;
1948
+ /** Theme override for this component */
772
1949
  theme?: Theme;
1950
+ /** Callback when selected */
773
1951
  onChange?: (value: string) => void;
774
1952
  }
775
1953
 
@@ -778,18 +1956,61 @@ declare const radioVariants: (props?: ({
778
1956
  checked?: boolean | null | undefined;
779
1957
  } & ClassProp) | undefined) => string;
780
1958
 
1959
+ /**
1960
+ * A dual-thumb slider component for selecting a value range.
1961
+ * Built on Radix UI Slider for accessibility.
1962
+ *
1963
+ * @example
1964
+ * ```tsx
1965
+ * <Range
1966
+ * label="Budget"
1967
+ * min={0}
1968
+ * max={10000}
1969
+ * defaultValue={[2000, 8000]}
1970
+ * showValue
1971
+ * name="budget"
1972
+ * />
1973
+ * ```
1974
+ *
1975
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-range--docs Storybook}
1976
+ */
781
1977
  declare const Range_2: FC<RangeProps>;
782
1978
  export { Range_2 as Range }
783
1979
 
1980
+ /**
1981
+ * Props for the Range component.
1982
+ * A dual-thumb slider for selecting a value range.
1983
+ *
1984
+ * @example
1985
+ * ```tsx
1986
+ * <Range
1987
+ * label="Price Range"
1988
+ * min={0}
1989
+ * max={1000}
1990
+ * defaultValue={[100, 500]}
1991
+ * showValue
1992
+ * size="md"
1993
+ * />
1994
+ * ```
1995
+ */
784
1996
  declare interface RangeProps extends VariantProps<typeof rangeVariants> {
1997
+ /** Additional CSS classes */
785
1998
  className?: string;
1999
+ /** Initial range values [min, max] */
786
2000
  defaultValue?: SliderProps['defaultValue'];
2001
+ /** Label displayed above the range slider */
787
2002
  label?: string;
2003
+ /** Maximum value for the range */
788
2004
  max?: SliderProps['max'];
2005
+ /** Minimum value for the range */
789
2006
  min?: SliderProps['min'];
2007
+ /** Form field name for the hidden input */
790
2008
  name?: string;
2009
+ /** Whether to display the current range values */
791
2010
  showValue?: boolean;
2011
+ /** Size of the slider track and thumbs */
792
2012
  size?: 'sm' | 'md' | 'lg';
2013
+ /** Theme override for this component */
793
2014
  theme?: Theme;
794
2015
  }
795
2016
 
@@ -800,11 +2021,18 @@ declare type ResetButtonProps = ButtonProps & {
800
2021
  onClick?: VoidFunction;
801
2022
  };
802
2023
 
2024
+ /** Base row data type from TanStack Table */
803
2025
  export declare type RowData = RowData_2;
804
2026
 
2027
+ /**
2028
+ * Props for Table.Row component.
2029
+ */
805
2030
  declare interface RowProps extends React.HTMLAttributes<HTMLTableRowElement>, PropsWithChildren, VariantProps<typeof rowVariants> {
2031
+ /** Width of the row */
806
2032
  width?: string;
2033
+ /** Whether the row is selected */
807
2034
  isSelected?: boolean;
2035
+ /** Callback when row is selected */
808
2036
  onSelect?: () => void;
809
2037
  }
810
2038
 
@@ -812,10 +2040,77 @@ declare const rowVariants: (props?: ({
812
2040
  isSelected?: boolean | null | undefined;
813
2041
  } & ClassProp) | undefined) => string;
814
2042
 
2043
+ /**
2044
+ * A dropdown select component with search, icons, and infinite scroll support.
2045
+ * Also exported as `Dropdown` for convenience.
2046
+ *
2047
+ * @example
2048
+ * ```tsx
2049
+ * // Basic usage
2050
+ * <Select
2051
+ * label="Country"
2052
+ * options={[
2053
+ * { value: 'us', label: 'United States' },
2054
+ * { value: 'uk', label: 'United Kingdom' },
2055
+ * ]}
2056
+ * value={selected}
2057
+ * onChange={(e) => setSelected(e.target.value)}
2058
+ * />
2059
+ *
2060
+ * // Searchable with custom icons
2061
+ * <Select
2062
+ * label="Select region"
2063
+ * options={regions.map(r => ({
2064
+ * value: r.id,
2065
+ * label: r.name,
2066
+ * leftIcon: <RegionIcon />,
2067
+ * subLabel: r.description,
2068
+ * }))}
2069
+ * searchable
2070
+ * highlightSearch
2071
+ * />
2072
+ * ```
2073
+ *
2074
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-select--docs Storybook}
2075
+ */
815
2076
  declare const Select: FC<SelectProps>;
816
2077
  export { Select as Dropdown }
817
2078
  export { Select }
818
2079
 
2080
+ /**
2081
+ * Props for the Select (Dropdown) component.
2082
+ *
2083
+ * @example
2084
+ * ```tsx
2085
+ * // Basic select
2086
+ * <Select
2087
+ * label="Country"
2088
+ * options={[
2089
+ * { value: 'us', label: 'United States' },
2090
+ * { value: 'uk', label: 'United Kingdom' },
2091
+ * ]}
2092
+ * value={country}
2093
+ * onChange={(e) => setCountry(e.target.value)}
2094
+ * />
2095
+ *
2096
+ * // Searchable select
2097
+ * <Select
2098
+ * label="Search countries"
2099
+ * options={countries}
2100
+ * searchable
2101
+ * highlightSearch
2102
+ * />
2103
+ *
2104
+ * // With infinite scroll
2105
+ * <Select
2106
+ * options={options}
2107
+ * isInfiniteScrollEnabled
2108
+ * onFetchMoreOptions={async ({ page }) => fetchMore(page)}
2109
+ * />
2110
+ * ```
2111
+ *
2112
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-select--docs Storybook}
2113
+ */
819
2114
  declare type SelectProps = VariantProps<typeof selectVariants> & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> & {
820
2115
  additionalOptions?: ReactNode[] | string[];
821
2116
  className?: string;
@@ -865,8 +2160,34 @@ declare const selectVariants: (props?: ({
865
2160
  disabled?: boolean | null | undefined;
866
2161
  } & ClassProp) | undefined) => string;
867
2162
 
2163
+ /**
2164
+ * A compound component for building application sidebars.
2165
+ * Includes sub-components for logo, navigation, groups, options, and footer.
2166
+ *
2167
+ * @example
2168
+ * ```tsx
2169
+ * <Sidebar canResize minWith={200} maxWith={400} theme="dark">
2170
+ * <Sidebar.Logo>
2171
+ * <img src="/logo.svg" alt="Logo" />
2172
+ * </Sidebar.Logo>
2173
+ * <Sidebar.Navigation>
2174
+ * <Sidebar.NavigationGroup label="Menu">
2175
+ * <Sidebar.NavigationOption href="/" icon={<Home />}>
2176
+ * Home
2177
+ * </Sidebar.NavigationOption>
2178
+ * </Sidebar.NavigationGroup>
2179
+ * </Sidebar.Navigation>
2180
+ * <Sidebar.Footer>Version 1.0</Sidebar.Footer>
2181
+ * </Sidebar>
2182
+ * ```
2183
+ *
2184
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-sidebar--docs Storybook}
2185
+ */
868
2186
  export declare const Sidebar: FC<SidebarProps> & SidebarChildrenProps;
869
2187
 
2188
+ /**
2189
+ * Sidebar compound component type with sub-components.
2190
+ */
870
2191
  declare type SidebarChildrenProps = {
871
2192
  Footer: FC<FooterProps>;
872
2193
  Logo: FC<LogoProps>;
@@ -876,59 +2197,218 @@ declare type SidebarChildrenProps = {
876
2197
  NavigationSeparator: FC<NavigationSeparatorProps>;
877
2198
  };
878
2199
 
2200
+ /**
2201
+ * Props for the Sidebar component.
2202
+ * A compound component for building application sidebars with navigation.
2203
+ *
2204
+ * @example
2205
+ * ```tsx
2206
+ * <Sidebar canResize minWith={200} maxWith={400}>
2207
+ * <Sidebar.Logo>
2208
+ * <img src="/logo.svg" alt="Logo" />
2209
+ * </Sidebar.Logo>
2210
+ * <Sidebar.Navigation>
2211
+ * <Sidebar.NavigationGroup label="Main">
2212
+ * <Sidebar.NavigationOption href="/dashboard" icon={<Home />}>
2213
+ * Dashboard
2214
+ * </Sidebar.NavigationOption>
2215
+ * <Sidebar.NavigationOption href="/settings" icon={<Settings />}>
2216
+ * Settings
2217
+ * </Sidebar.NavigationOption>
2218
+ * </Sidebar.NavigationGroup>
2219
+ * </Sidebar.Navigation>
2220
+ * <Sidebar.Footer>v1.0.0</Sidebar.Footer>
2221
+ * </Sidebar>
2222
+ * ```
2223
+ */
879
2224
  declare interface SidebarProps extends VariantProps<typeof wrapperSiderbarVariants>, PropsWithChildren {
2225
+ /** Whether the sidebar can be resized by dragging */
880
2226
  canResize?: boolean;
2227
+ /** Additional CSS classes for the divider */
881
2228
  dividerClassName?: string;
2229
+ /** Maximum width when resizing (in pixels) */
882
2230
  maxWith?: number;
2231
+ /** Minimum width when resizing (in pixels) */
883
2232
  minWith?: number;
2233
+ /** Theme override for this component */
884
2234
  theme?: Theme;
2235
+ /** Additional CSS classes for the wrapper */
885
2236
  wrapperClassName?: string;
886
2237
  }
887
2238
 
2239
+ /**
2240
+ * A single-thumb slider component for selecting a value.
2241
+ * Built on Radix UI Slider for accessibility.
2242
+ *
2243
+ * @example
2244
+ * ```tsx
2245
+ * <Slider
2246
+ * label="Brightness"
2247
+ * min={0}
2248
+ * max={100}
2249
+ * defaultValue={[75]}
2250
+ * showValue
2251
+ * name="brightness"
2252
+ * />
2253
+ * ```
2254
+ *
2255
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-slider--docs Storybook}
2256
+ */
888
2257
  export declare const Slider: FC<SliderProps_2>;
889
2258
 
2259
+ /**
2260
+ * Props for the Slider component.
2261
+ * A single-thumb slider for selecting a single value.
2262
+ *
2263
+ * @example
2264
+ * ```tsx
2265
+ * <Slider
2266
+ * label="Volume"
2267
+ * min={0}
2268
+ * max={100}
2269
+ * defaultValue={[50]}
2270
+ * showValue
2271
+ * size="md"
2272
+ * />
2273
+ * ```
2274
+ */
890
2275
  declare interface SliderProps_2 extends VariantProps<typeof sliderVariants> {
2276
+ /** Additional CSS classes */
891
2277
  className?: string;
2278
+ /** Initial value as single-element array */
892
2279
  defaultValue?: SliderProps['defaultValue'];
2280
+ /** Label displayed above the slider */
893
2281
  label?: string;
2282
+ /** Maximum value for the slider */
894
2283
  max?: SliderProps['max'];
2284
+ /** Minimum value for the slider */
895
2285
  min?: SliderProps['min'];
2286
+ /** Form field name for the hidden input */
896
2287
  name?: string;
2288
+ /** Whether to display the current value */
897
2289
  showValue?: boolean;
2290
+ /** Size of the slider track and thumb */
898
2291
  size?: 'sm' | 'md' | 'lg';
2292
+ /** Theme override for this component */
899
2293
  theme?: Theme;
900
2294
  }
901
2295
 
902
2296
  declare const sliderVariants: (props?: ClassProp | undefined) => string;
903
2297
 
2298
+ /**
2299
+ * A single step in the breadcrumb navigation.
2300
+ */
904
2301
  declare type Step = {
2302
+ /** Display text for the breadcrumb item */
905
2303
  label: string;
2304
+ /** URL to navigate to when clicked */
906
2305
  to?: string;
2306
+ /** Link target (_self or _blank) */
907
2307
  target?: '_self' | '_blank';
2308
+ /** Whether this step is the current/active page */
908
2309
  isActive?: boolean;
2310
+ /** Custom component to render (e.g., Link from react-router) */
909
2311
  component?: FC<any>;
910
2312
  };
911
2313
 
2314
+ /**
2315
+ * A toggle switch component built on Radix UI primitives.
2316
+ * Supports horizontal and vertical layouts with label and helper text.
2317
+ *
2318
+ * @example
2319
+ * ```tsx
2320
+ * // Basic switch
2321
+ * <Switch label="Enable feature" />
2322
+ *
2323
+ * // Controlled switch
2324
+ * <Switch
2325
+ * label="Dark mode"
2326
+ * value={isDarkMode}
2327
+ * onChange={(enabled) => setIsDarkMode(enabled)}
2328
+ * />
2329
+ *
2330
+ * // Vertical layout with helper text
2331
+ * <Switch
2332
+ * label="Notifications"
2333
+ * helperText="Receive email notifications"
2334
+ * alignment="vertical"
2335
+ * />
2336
+ * ```
2337
+ *
2338
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-switch--docs Storybook}
2339
+ */
912
2340
  export declare const Switch: FC<SwitchProps>;
913
2341
 
2342
+ /**
2343
+ * Props for the Switch component.
2344
+ *
2345
+ * @example
2346
+ * ```tsx
2347
+ * <Switch label="Enable notifications" onChange={(enabled) => setEnabled(enabled)} />
2348
+ * <Switch label="Dark mode" value={isDark} onChange={setIsDark} />
2349
+ * <Switch label="Feature" helperText="Enable experimental features" alignment="vertical" />
2350
+ * ```
2351
+ */
914
2352
  declare interface SwitchProps extends VariantProps<typeof switchVariants> {
2353
+ /** Layout direction: horizontal (default) or vertical */
915
2354
  alignment?: 'horizontal' | 'vertical';
2355
+ /** Additional CSS classes */
916
2356
  className?: string;
2357
+ /** Initial checked state */
917
2358
  defaultChecked?: boolean;
2359
+ /** Whether the switch is disabled */
918
2360
  disabled?: boolean;
2361
+ /** Helper text displayed below the label */
919
2362
  helperText?: string;
2363
+ /** CSS classes for helper text */
920
2364
  helperTextClassName?: string;
2365
+ /** Label text displayed next to switch */
921
2366
  label?: string;
2367
+ /** CSS classes for the label */
922
2368
  labelClassName?: string;
2369
+ /** Form field name */
923
2370
  name?: string;
2371
+ /** Theme override for this component */
924
2372
  theme?: Theme;
2373
+ /** CSS classes for the thumb element */
925
2374
  thumbClassName?: string;
2375
+ /** Controlled checked state */
926
2376
  value?: boolean;
2377
+ /** Callback when checked state changes */
927
2378
  onChange?: (e: boolean) => void;
928
2379
  }
929
2380
 
930
2381
  declare const switchVariants: (props?: ClassProp | undefined) => string;
931
2382
 
2383
+ /**
2384
+ * A composable table component with Head, Body, Row, and Filter sub-components.
2385
+ * For large datasets, consider using VirtualizedTable instead.
2386
+ *
2387
+ * @example
2388
+ * ```tsx
2389
+ * <Table>
2390
+ * <Table.Filter placeholder="Search..." />
2391
+ * <Table.Head>
2392
+ * <Table.Row>
2393
+ * <th>Name</th>
2394
+ * <th>Email</th>
2395
+ * <th>Role</th>
2396
+ * </Table.Row>
2397
+ * </Table.Head>
2398
+ * <Table.Body>
2399
+ * {users.map((user) => (
2400
+ * <Table.Row key={user.id}>
2401
+ * <td>{user.name}</td>
2402
+ * <td>{user.email}</td>
2403
+ * <td>{user.role}</td>
2404
+ * </Table.Row>
2405
+ * ))}
2406
+ * </Table.Body>
2407
+ * </Table>
2408
+ * ```
2409
+ *
2410
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-table--docs Storybook}
2411
+ */
932
2412
  export declare const Table: FC<TableProps> & {
933
2413
  Head: FC<HeadProps>;
934
2414
  Row: FC<RowProps>;
@@ -936,56 +2416,237 @@ export declare const Table: FC<TableProps> & {
936
2416
  Body: FC<BodyProps>;
937
2417
  };
938
2418
 
2419
+ /**
2420
+ * Props for the Table component.
2421
+ *
2422
+ * @example
2423
+ * ```tsx
2424
+ * <Table>
2425
+ * <Table.Head>
2426
+ * <Table.Row>
2427
+ * <th>Name</th>
2428
+ * <th>Email</th>
2429
+ * </Table.Row>
2430
+ * </Table.Head>
2431
+ * <Table.Body>
2432
+ * <Table.Row>
2433
+ * <td>John Doe</td>
2434
+ * <td>john@example.com</td>
2435
+ * </Table.Row>
2436
+ * </Table.Body>
2437
+ * </Table>
2438
+ * ```
2439
+ */
939
2440
  declare interface TableProps extends React.HTMLAttributes<HTMLTableElement>, PropsWithChildren, VariantProps<typeof tableVariants> {
2441
+ /** Theme override for this component */
940
2442
  theme?: Theme;
941
2443
  }
942
2444
 
943
2445
  declare const tableVariants: (props?: ClassProp | undefined) => string;
944
2446
 
2447
+ /**
2448
+ * A tabs component built on Radix UI primitives.
2449
+ * Supports horizontal and vertical orientations with List, Trigger, and Content sub-components.
2450
+ *
2451
+ * @example
2452
+ * ```tsx
2453
+ * <Tabs defaultValue="overview">
2454
+ * <Tabs.List orientation="horizontal">
2455
+ * <Tabs.Trigger tab="overview" label="Overview" isActive />
2456
+ * <Tabs.Trigger tab="settings" label="Settings" isActive={false} />
2457
+ * <Tabs.Trigger tab="billing" label="Billing" isActive={false} />
2458
+ * </Tabs.List>
2459
+ *
2460
+ * <Tabs.Content value="overview">
2461
+ * Overview content here
2462
+ * </Tabs.Content>
2463
+ * <Tabs.Content value="settings">
2464
+ * Settings content here
2465
+ * </Tabs.Content>
2466
+ * <Tabs.Content value="billing">
2467
+ * Billing content here
2468
+ * </Tabs.Content>
2469
+ * </Tabs>
2470
+ * ```
2471
+ *
2472
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-tabs--docs Storybook}
2473
+ */
945
2474
  export declare const Tabs: FC<TabsProps> & {
946
2475
  List: FC<ListProps>;
947
2476
  Trigger: FC<TriggerProps>;
948
2477
  Content: FC<ReactTabs.TabsContentProps>;
949
2478
  };
950
2479
 
2480
+ /**
2481
+ * Props for the Tabs component.
2482
+ *
2483
+ * @example
2484
+ * ```tsx
2485
+ * <Tabs defaultValue="tab1">
2486
+ * <Tabs.List orientation="horizontal">
2487
+ * <Tabs.Trigger tab="tab1" label="Tab 1" isActive />
2488
+ * <Tabs.Trigger tab="tab2" label="Tab 2" isActive={false} />
2489
+ * </Tabs.List>
2490
+ * <Tabs.Content value="tab1">Content 1</Tabs.Content>
2491
+ * <Tabs.Content value="tab2">Content 2</Tabs.Content>
2492
+ * </Tabs>
2493
+ * ```
2494
+ */
951
2495
  declare interface TabsProps extends ReactTabs.TabsProps, PropsWithChildren {
2496
+ /** Theme override for this component */
952
2497
  theme?: Theme;
953
2498
  }
954
2499
 
2500
+ /**
2501
+ * A small label component for categorization, status display, or filtering.
2502
+ * Supports multiple color variants and optional icons.
2503
+ *
2504
+ * @example
2505
+ * ```tsx
2506
+ * <Tag id="1" label="New" color="green" />
2507
+ * <Tag id="2" label="Pending" color="gold" leftIcon={<Clock />} />
2508
+ * <Tag id="3" label="Error" color="pink" rightIcon={<X />} />
2509
+ * ```
2510
+ *
2511
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-tag--docs Storybook}
2512
+ */
955
2513
  export declare const Tag: FC<TagProps>;
956
2514
 
2515
+ /**
2516
+ * Props for the Tag component.
2517
+ * A small label component for categorization or status display.
2518
+ *
2519
+ * @example
2520
+ * ```tsx
2521
+ * <Tag
2522
+ * id="status-active"
2523
+ * label="Active"
2524
+ * color="green"
2525
+ * leftIcon={<CheckIcon />}
2526
+ * />
2527
+ * ```
2528
+ */
957
2529
  declare type TagProps = {
2530
+ /** Color variant for the tag */
958
2531
  color?: 'gray' | 'gray-800' | 'cyan' | 'gold' | 'green' | 'light blue' | 'lime' | 'pink' | 'purple' | 'emerald' | 'fuscia' | 'indigo' | 'light-orange' | 'dark-sky-blue' | 'mistery';
2532
+ /** Unique identifier for the tag */
959
2533
  id: string | number;
2534
+ /** Text displayed in the tag */
960
2535
  label: string;
2536
+ /** Icon displayed after the label */
961
2537
  rightIcon?: ReactNode;
2538
+ /** Icon displayed before the label */
962
2539
  leftIcon?: ReactNode;
2540
+ /** Additional CSS classes */
963
2541
  className?: string;
2542
+ /** Data attribute for the tag value */
964
2543
  'data-value'?: string;
2544
+ /** Whether the tag is in a selected state */
965
2545
  isSelected?: boolean;
966
2546
  };
967
2547
 
2548
+ /**
2549
+ * An input component for selecting from a list of tag options.
2550
+ * Supports single and multi-selection modes.
2551
+ *
2552
+ * @example
2553
+ * ```tsx
2554
+ * <TagSelect
2555
+ * label="Skills"
2556
+ * placeholder="Select skills..."
2557
+ * options={[
2558
+ * { label: 'React', color: 'blue' },
2559
+ * { label: 'TypeScript', color: 'purple' },
2560
+ * { label: 'Node.js', color: 'green' },
2561
+ * ]}
2562
+ * multiselect
2563
+ * />
2564
+ * ```
2565
+ *
2566
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-tagselect--docs Storybook}
2567
+ */
968
2568
  export declare const TagSelect: FC<TagSelectProps>;
969
2569
 
2570
+ /**
2571
+ * Props for the TagSelect component.
2572
+ * An input that allows selecting from a list of tags.
2573
+ *
2574
+ * @example
2575
+ * ```tsx
2576
+ * <TagSelect
2577
+ * label="Categories"
2578
+ * placeholder="Select categories..."
2579
+ * options={[
2580
+ * { label: 'Frontend', color: 'blue' },
2581
+ * { label: 'Backend', color: 'green' },
2582
+ * { label: 'DevOps', color: 'purple' },
2583
+ * ]}
2584
+ * multiselect
2585
+ * />
2586
+ * ```
2587
+ */
970
2588
  declare interface TagSelectProps extends VariantProps<typeof tagSelectVariants> {
2589
+ /** Label displayed above the input */
971
2590
  label?: string;
2591
+ /** Available tag options to select from */
972
2592
  options: TagProps[];
2593
+ /** Form field name for the input */
973
2594
  name?: string;
2595
+ /** Placeholder text when no selection */
974
2596
  placeholder?: string;
2597
+ /** Additional CSS classes for the label */
975
2598
  labelClassName?: string;
2599
+ /** Additional CSS classes for the wrapper */
976
2600
  wrapperClassName?: string;
2601
+ /** Whether multiple tags can be selected */
977
2602
  multiselect?: boolean;
978
2603
  }
979
2604
 
980
2605
  declare const tagSelectVariants: (props?: ClassProp | undefined) => string;
981
2606
 
2607
+ /**
2608
+ * A multiline text input component with optional label.
2609
+ *
2610
+ * @example
2611
+ * ```tsx
2612
+ * // Basic textarea
2613
+ * <TextArea label="Description" placeholder="Enter description..." />
2614
+ *
2615
+ * // Textarea with more rows
2616
+ * <TextArea label="Notes" rows={5} />
2617
+ *
2618
+ * // Controlled textarea
2619
+ * <TextArea
2620
+ * label="Comments"
2621
+ * value={comments}
2622
+ * onChange={(e) => setComments(e.target.value)}
2623
+ * />
2624
+ * ```
2625
+ *
2626
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-textarea--docs Storybook}
2627
+ */
982
2628
  export declare const TextArea: FC<TextAreaProps>;
983
2629
 
2630
+ /**
2631
+ * Props for the TextArea component.
2632
+ *
2633
+ * @example
2634
+ * ```tsx
2635
+ * <TextArea label="Description" placeholder="Enter description..." />
2636
+ * <TextArea label="Notes" rows={5} />
2637
+ * <TextArea name="bio" initialValue="Default text" />
2638
+ * ```
2639
+ */
984
2640
  declare interface TextAreaProps extends InputHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textAreaVariants> {
2641
+ /** Number of visible text rows (default: 3) */
985
2642
  rows?: number;
2643
+ /** Label displayed above the textarea */
986
2644
  label?: string | ReactNode;
2645
+ /** Form field name */
987
2646
  name?: string;
2647
+ /** Initial/default value */
988
2648
  initialValue?: string;
2649
+ /** Theme override for this component */
989
2650
  theme?: Theme;
990
2651
  }
991
2652
 
@@ -995,7 +2656,11 @@ declare type Theme = 'kubefirst' | 'light' | 'kubefirst-dark' | 'dark' | undefin
995
2656
 
996
2657
  export declare const ThemeContext: Context<ThemeContextType>;
997
2658
 
2659
+ /**
2660
+ * Props for the ThemeProvider component.
2661
+ */
998
2662
  export declare type ThemeContextProps = PropsWithChildren & {
2663
+ /** Initial theme to use */
999
2664
  theme?: ThemeContextType['theme'];
1000
2665
  };
1001
2666
 
@@ -1009,20 +2674,90 @@ declare type ThemeProps = {
1009
2674
  setTheme?: (theme: Theme) => void;
1010
2675
  };
1011
2676
 
2677
+ /**
2678
+ * Theme provider component that wraps your app to enable theming.
2679
+ * Sets the `data-theme` attribute on the body element and persists theme choice in cookies.
2680
+ *
2681
+ * @example
2682
+ * ```tsx
2683
+ * // Wrap your app with ThemeProvider
2684
+ * import { ThemeProvider } from '@konstructio/ui';
2685
+ *
2686
+ * function App() {
2687
+ * return (
2688
+ * <ThemeProvider theme="kubefirst">
2689
+ * <YourApp />
2690
+ * </ThemeProvider>
2691
+ * );
2692
+ * }
2693
+ *
2694
+ * // Access theme in components
2695
+ * import { useTheme } from '@konstructio/ui';
2696
+ *
2697
+ * function MyComponent() {
2698
+ * const { theme, setTheme } = useTheme();
2699
+ * return <button onClick={() => setTheme('dark')}>Dark Mode</button>;
2700
+ * }
2701
+ * ```
2702
+ *
2703
+ * Available themes: 'kubefirst' | 'light' | 'kubefirst-dark' | 'dark'
2704
+ */
1012
2705
  export declare const ThemeProvider: FC<ThemeContextProps>;
1013
2706
 
2707
+ /**
2708
+ * A scrollable time picker component with 12 or 24 hour format support.
2709
+ * Features smooth scroll navigation through hours, minutes, and AM/PM options.
2710
+ *
2711
+ * @example
2712
+ * ```tsx
2713
+ * <TimePicker
2714
+ * label="Start Time"
2715
+ * name="startTime"
2716
+ * format="12"
2717
+ * time={selectedTime}
2718
+ * scrollBehavior="smooth"
2719
+ * />
2720
+ * ```
2721
+ *
2722
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-timepicker--docs Storybook}
2723
+ */
1014
2724
  export declare const TimePicker: FC<TimePickerProps>;
1015
2725
 
2726
+ /**
2727
+ * Props for the TimePicker component.
2728
+ * A scrollable time picker with support for 12 and 24 hour formats.
2729
+ *
2730
+ * @example
2731
+ * ```tsx
2732
+ * <TimePicker
2733
+ * label="Meeting Time"
2734
+ * name="meetingTime"
2735
+ * format="12"
2736
+ * time={new Date()}
2737
+ * isRequired
2738
+ * />
2739
+ * ```
2740
+ */
1016
2741
  declare type TimePickerProps = VariantProps<typeof timePickerVariants> & {
2742
+ /** Time format: '12' for AM/PM or '24' for military time */
1017
2743
  format?: '12' | '24';
2744
+ /** Scroll behavior when navigating times */
1018
2745
  scrollBehavior?: 'smooth' | 'auto';
2746
+ /** Currently selected time */
1019
2747
  time?: Date;
2748
+ /** Form field name */
1020
2749
  name?: string;
2750
+ /** Label displayed above the picker */
1021
2751
  label?: string;
2752
+ /** Whether the field is required */
1022
2753
  isRequired?: boolean;
2754
+ /** Additional CSS classes for the wrapper */
1023
2755
  className?: string;
2756
+ /** Additional CSS classes for the scrollable list */
1024
2757
  listClassName?: string;
2758
+ /** Additional CSS classes for list items */
1025
2759
  listItemClassName?: string;
2760
+ /** Additional CSS classes for list item buttons */
1026
2761
  listItemButtonClassName?: string;
1027
2762
  };
1028
2763
 
@@ -1030,19 +2765,70 @@ declare const timePickerVariants: (props?: ClassProp | undefined) => string;
1030
2765
 
1031
2766
  declare type TimeZone = keyof ReturnType<typeof getAllTimezones>;
1032
2767
 
2768
+ /**
2769
+ * A toast notification component built on Radix UI primitives.
2770
+ * Wraps a trigger element and shows a toast when clicked.
2771
+ *
2772
+ * @example
2773
+ * ```tsx
2774
+ * const [open, setOpen] = useState(false);
2775
+ *
2776
+ * <Toast
2777
+ * open={open}
2778
+ * setOpen={setOpen}
2779
+ * title="Saved"
2780
+ * description="Your changes have been saved successfully"
2781
+ * variant="success"
2782
+ * duration={3000}
2783
+ * >
2784
+ * <Button>Save Changes</Button>
2785
+ * </Toast>
2786
+ * ```
2787
+ *
2788
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-toast--docs Storybook}
2789
+ */
1033
2790
  export declare const Toast: FC<ToastProps>;
1034
2791
 
2792
+ /**
2793
+ * Props for the Toast component.
2794
+ *
2795
+ * @example
2796
+ * ```tsx
2797
+ * const [open, setOpen] = useState(false);
2798
+ *
2799
+ * <Toast
2800
+ * open={open}
2801
+ * setOpen={setOpen}
2802
+ * title="Success"
2803
+ * description="Your changes have been saved"
2804
+ * variant="success"
2805
+ * >
2806
+ * <Button onClick={() => setOpen(true)}>Show Toast</Button>
2807
+ * </Toast>
2808
+ * ```
2809
+ */
1035
2810
  declare interface ToastProps extends PropsWithChildren, VariantProps<typeof toastVariants> {
2811
+ /** Additional CSS classes for the toast */
1036
2812
  className?: string;
2813
+ /** CSS classes for the close button */
1037
2814
  closeButtonClassName?: string;
2815
+ /** Description text or element */
1038
2816
  description: string | ReactNode;
2817
+ /** CSS classes for the description */
1039
2818
  descriptionClassName?: string;
2819
+ /** Auto-dismiss duration in ms (default: 5000) */
1040
2820
  duration?: number;
2821
+ /** Controlled open state */
1041
2822
  open: boolean;
2823
+ /** Show close button (default: true) */
1042
2824
  showCloseButton?: boolean;
2825
+ /** Theme override for this component */
1043
2826
  theme?: Theme;
2827
+ /** Title text or element */
1044
2828
  title: string | ReactNode;
2829
+ /** CSS classes for the title */
1045
2830
  titleClassName?: string;
2831
+ /** Callback to update open state */
1046
2832
  setOpen: (open: boolean) => void;
1047
2833
  }
1048
2834
 
@@ -1050,12 +2836,54 @@ declare const toastVariants: (props?: ({
1050
2836
  variant?: "warning" | "error" | "success" | null | undefined;
1051
2837
  } & ClassProp) | undefined) => string;
1052
2838
 
2839
+ /**
2840
+ * A tooltip component that shows on hover.
2841
+ * Wraps any element and displays content on mouse enter.
2842
+ *
2843
+ * @example
2844
+ * ```tsx
2845
+ * // Basic tooltip
2846
+ * <Tooltip content="Click to save">
2847
+ * <Button>Save</Button>
2848
+ * </Tooltip>
2849
+ *
2850
+ * // Tooltip with position
2851
+ * <Tooltip content="More information" position="bottom">
2852
+ * <InfoIcon />
2853
+ * </Tooltip>
2854
+ *
2855
+ * // Tooltip on text
2856
+ * <Tooltip content="This is a helpful tip">
2857
+ * <span>Hover me</span>
2858
+ * </Tooltip>
2859
+ * ```
2860
+ *
2861
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-tooltip--docs Storybook}
2862
+ */
1053
2863
  export declare const Tooltip: FC<TooltipProps>;
1054
2864
 
2865
+ /**
2866
+ * Props for the Tooltip component.
2867
+ *
2868
+ * @example
2869
+ * ```tsx
2870
+ * <Tooltip content="Click to edit">
2871
+ * <Button>Edit</Button>
2872
+ * </Tooltip>
2873
+ *
2874
+ * <Tooltip content="More info here" position="bottom">
2875
+ * <InfoIcon />
2876
+ * </Tooltip>
2877
+ * ```
2878
+ */
1055
2879
  declare interface TooltipProps extends PropsWithChildren, VariantProps<typeof tooltipVariants> {
2880
+ /** Tooltip text or content */
1056
2881
  content: ReactNode | string;
2882
+ /** CSS classes for the trigger element */
1057
2883
  className?: string;
2884
+ /** CSS classes for the tooltip wrapper */
1058
2885
  wrapperClassName?: string;
2886
+ /** Theme override for this component */
1059
2887
  theme?: Theme;
1060
2888
  }
1061
2889
 
@@ -1065,9 +2893,15 @@ declare const tooltipVariants: (props?: ({
1065
2893
 
1066
2894
  export declare const Trigger: FC<TriggerProps>;
1067
2895
 
2896
+ /**
2897
+ * Props for Tabs.Trigger component.
2898
+ */
1068
2899
  declare interface TriggerProps extends VariantProps<typeof triggerVariants>, React.HTMLAttributes<HTMLDivElement> {
2900
+ /** Tab value identifier */
1069
2901
  tab: string;
2902
+ /** Display label for the tab */
1070
2903
  label: string;
2904
+ /** Whether this tab is active */
1071
2905
  isActive: boolean;
1072
2906
  }
1073
2907
 
@@ -1077,13 +2911,43 @@ declare const triggerVariants: (props?: ({
1077
2911
 
1078
2912
  export declare const TruncateText: <TData>({ getValue, value }: Props_4<TData>) => JSX.Element;
1079
2913
 
2914
+ /**
2915
+ * A flexible typography component for consistent text styling.
2916
+ * Automatically selects semantic HTML elements based on variant.
2917
+ *
2918
+ * @example
2919
+ * ```tsx
2920
+ * <Typography variant="h1">Main Heading</Typography>
2921
+ * <Typography variant="body1">Paragraph text</Typography>
2922
+ * <Typography variant="subtitle1" component="span">Inline text</Typography>
2923
+ * <Typography variant="h3" component="label" htmlFor="input">Label</Typography>
2924
+ * ```
2925
+ *
2926
+ * @see {@link https://konstructio.github.io/konstruct-ui/?path=/docs/components-typography--docs Storybook}
2927
+ */
1080
2928
  export declare const Typography: ForwardRefExoticComponent<Omit<TypographyProps, 'ref'> & RefAttributes<HTMLParagraphElement & HTMLHeadingElement & HTMLLabelElement>>;
1081
2929
 
2930
+ /**
2931
+ * Props for the Typography component.
2932
+ * A flexible text component with semantic variants and theming.
2933
+ *
2934
+ * @example
2935
+ * ```tsx
2936
+ * <Typography variant="h1">Page Title</Typography>
2937
+ * <Typography variant="body1">Body text content</Typography>
2938
+ * <Typography variant="h2" component="p">Styled as h2 but renders as p</Typography>
2939
+ * ```
2940
+ */
1082
2941
  declare interface TypographyProps extends HTMLAttributes<ComponentRef<HeadingTag | 'p' | 'span'>>, VariantProps<typeof typographyVariants> {
2942
+ /** Ref to the underlying DOM element */
1083
2943
  ref?: Ref<HTMLHeadingElement | HTMLParagraphElement | HTMLSpanElement>;
2944
+ /** Text content to display */
1084
2945
  children: ReactNode;
2946
+ /** Override the rendered HTML element */
1085
2947
  component?: HeadingTag | 'p' | 'span' | 'label';
2948
+ /** Theme override for this component */
1086
2949
  theme?: Theme;
2950
+ /** For use with label component to associate with form input */
1087
2951
  htmlFor?: string;
1088
2952
  }
1089
2953