banhaten-ui 0.0.12 → 0.0.14

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
@@ -1,4 +1,5 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
+ import { ClassValue } from 'clsx';
2
3
  import { default as default_2 } from 'react';
3
4
  import { ForwardRefExoticComponent } from 'react';
4
5
  import { HTMLAttributes } from 'react';
@@ -59,7 +60,7 @@ export declare interface AccordionProps extends Omit<HTMLAttributes<HTMLDivEleme
59
60
  rtlDescription?: string;
60
61
  }
61
62
 
62
- export declare type AccordionState = "Default" | "Hover";
63
+ export declare type AccordionState = "Default" | "Hover" | "NoHover";
63
64
 
64
65
  export declare type AccordionStyle = "Default" | "Boxed";
65
66
 
@@ -100,6 +101,91 @@ export declare interface AlertProps extends Omit<default_2.HTMLAttributes<HTMLDi
100
101
  rtlSecondaryAction?: string;
101
102
  }
102
103
 
104
+ export declare const Avatar: ForwardRefExoticComponent<AvatarProps & RefAttributes<HTMLDivElement>>;
105
+
106
+ export declare const AvatarCallToAction: ForwardRefExoticComponent<AvatarCallToActionProps & RefAttributes<HTMLButtonElement>>;
107
+
108
+ export declare interface AvatarCallToActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
109
+ /** Size of the avatar */
110
+ size?: AvatarSize;
111
+ /** Shape of the avatar */
112
+ shape?: AvatarShape;
113
+ /** RTL mode */
114
+ rtl?: boolean;
115
+ }
116
+
117
+ export declare const AvatarGroup: ForwardRefExoticComponent<AvatarGroupProps & RefAttributes<HTMLDivElement>>;
118
+
119
+ export declare interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {
120
+ /** Size of avatars */
121
+ size?: AvatarSize;
122
+ /** Shape of avatars */
123
+ shape?: AvatarShape;
124
+ /** Maximum number of avatars to show */
125
+ max?: number;
126
+ /** Array of avatar sources or initials */
127
+ avatars: Array<{
128
+ src?: string;
129
+ alt?: string;
130
+ initials?: string;
131
+ showIcon?: boolean;
132
+ }>;
133
+ /** RTL mode */
134
+ rtl?: boolean;
135
+ }
136
+
137
+ export declare const AvatarProfile: ForwardRefExoticComponent<AvatarProfileProps & RefAttributes<HTMLDivElement>>;
138
+
139
+ export declare interface AvatarProfileProps extends React.HTMLAttributes<HTMLDivElement> {
140
+ /** Size of avatar */
141
+ size?: AvatarSize;
142
+ /** Shape of avatar */
143
+ shape?: AvatarShape;
144
+ /** Avatar image source */
145
+ src?: string;
146
+ /** Alt text for image */
147
+ alt?: string;
148
+ /** Initials to display (if no image) */
149
+ initials?: string;
150
+ /** Show icon if no image or initials */
151
+ showIcon?: boolean;
152
+ /** Status indicator */
153
+ status?: AvatarStatus;
154
+ /** Primary text (name) */
155
+ name: string;
156
+ /** Secondary text (description/subtitle) */
157
+ description?: string;
158
+ /** RTL mode */
159
+ rtl?: boolean;
160
+ }
161
+
162
+ export declare interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
163
+ /** Size of the avatar */
164
+ size?: AvatarSize;
165
+ /** Avatar image source */
166
+ src?: string;
167
+ /** Alt text for image */
168
+ alt?: string;
169
+ /** Initials to display (if no image) */
170
+ initials?: string;
171
+ /** Show icon if no image or initials */
172
+ showIcon?: boolean;
173
+ /** Status indicator */
174
+ status?: AvatarStatus;
175
+ /** Shape of the avatar */
176
+ shape?: AvatarShape;
177
+ /** RTL mode */
178
+ rtl?: boolean;
179
+ /** Show border */
180
+ showBorder?: boolean;
181
+ }
182
+
183
+ export declare type AvatarShape = 'circle' | 'square';
184
+
185
+ export declare type AvatarSize = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
186
+
187
+ export declare type AvatarStatus = 'online' | 'offline' | 'away' | 'busy' | 'blocked' | 'none';
188
+
103
189
  /**
104
190
  * Badge component for displaying labels, statuses, and notifications.
105
191
  * Supports multiple types, styles, sizes, and colors with RTL support.
@@ -131,12 +217,16 @@ export declare interface BadgeProps extends Omit<HTMLAttributes<HTMLDivElement>,
131
217
  number?: number;
132
218
  /** The badge text content */
133
219
  children?: ReactNode;
134
- /** Icon to display on the left (for LeadingIcon type) */
135
- leadingIcon?: ReactNode;
136
- /** Icon to display on the right (for TrailingIcon type) */
137
- trailingIcon?: ReactNode;
220
+ /** Icon or image to display on the left (for LeadingIcon type) - accepts icon component or image URL */
221
+ leadingIcon?: ReactNode | string;
222
+ /** Icon or image to display on the right (for TrailingIcon type) - accepts icon component or image URL */
223
+ trailingIcon?: ReactNode | string;
138
224
  /** Flag icon (for Flag type) */
139
225
  flagIcon?: ReactNode;
226
+ /** Image source URL (deprecated, use leadingIcon or trailingIcon instead) */
227
+ imgSrc?: string;
228
+ /** Image alt text */
229
+ imgAlt?: string;
140
230
  /** Enable RTL (Right-to-Left) mode */
141
231
  rtl?: boolean;
142
232
  }
@@ -145,7 +235,47 @@ export declare type BadgeSize = "sm" | "lg";
145
235
 
146
236
  export declare type BadgeStyle = "Light" | "Outline" | "Solid";
147
237
 
148
- export declare type BadgeType = "Default" | "LeadingIcon" | "TrailingIcon" | "Dot" | "Flag";
238
+ export declare type BadgeType = "Default" | "LeadingIcon" | "TrailingIcon" | "Dot" | "Flag" | "LeadingImg";
239
+
240
+ export declare interface BreadcrumbItem {
241
+ /** Label for the breadcrumb item */
242
+ label: string;
243
+ /** Optional href for navigation */
244
+ href?: string;
245
+ /** Optional icon */
246
+ icon?: ReactNode;
247
+ /** Whether this is the current page (last item) */
248
+ isCurrent?: boolean;
249
+ /** Click handler */
250
+ onClick?: () => void;
251
+ }
252
+
253
+ export declare const Breadcrumbs: ForwardRefExoticComponent<BreadcrumbsProps & RefAttributes<HTMLElement>>;
254
+
255
+ export declare type BreadcrumbSeparator = 'chevron' | 'slash' | 'dot';
256
+
257
+ export declare type BreadcrumbSize = 'sm' | 'md' | 'lg';
258
+
259
+ export declare interface BreadcrumbsProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
260
+ /** Array of breadcrumb items */
261
+ items: BreadcrumbItem[];
262
+ /** Size variant */
263
+ size?: BreadcrumbSize;
264
+ /** Visual variant */
265
+ variant?: BreadcrumbVariant;
266
+ /** Separator style */
267
+ separator?: BreadcrumbSeparator;
268
+ /** Show home icon for first item */
269
+ showHomeIcon?: boolean;
270
+ /** Maximum items to show before collapsing */
271
+ maxItems?: number;
272
+ /** Show border around breadcrumbs */
273
+ bordered?: boolean;
274
+ /** RTL mode */
275
+ rtl?: boolean;
276
+ }
277
+
278
+ export declare type BreadcrumbVariant = 'default' | 'boxed';
149
279
 
150
280
  /**
151
281
  * Primary UI component for user interaction.
@@ -167,11 +297,11 @@ export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttribut
167
297
 
168
298
  export declare const ButtonGroup: default_2.ForwardRefExoticComponent<ButtonGroupProps & default_2.RefAttributes<HTMLDivElement>>;
169
299
 
170
- declare interface ButtonGroupItem {
300
+ export declare interface ButtonGroupItem {
171
301
  /** Button text label */
172
302
  label?: string;
173
- /** Icon component from lucide-react */
174
- icon?: LucideIcon;
303
+ /** Icon component (ReactNode) */
304
+ icon?: ReactNode;
175
305
  /** Click handler for this button */
176
306
  onClick?: () => void;
177
307
  /** Whether this button is disabled */
@@ -183,21 +313,31 @@ declare interface ButtonGroupItem {
183
313
  export declare interface ButtonGroupProps extends Omit<default_2.HTMLAttributes<HTMLDivElement>, 'style'> {
184
314
  /** Array of button items */
185
315
  items: ButtonGroupItem[];
316
+ /** Button group variant/style */
317
+ variant?: ButtonGroupVariant;
186
318
  /** Button group size */
187
- size?: 'xs' | 'sm' | 'md';
188
- /** Button group type */
189
- type?: 'Default' | 'IconOnly';
319
+ size?: ButtonGroupSize;
320
+ /** Button group shape */
321
+ shape?: ButtonGroupShape;
322
+ /** Icon-only mode (no labels) */
323
+ iconOnly?: boolean;
190
324
  /** RTL mode */
191
325
  rtl?: boolean;
192
- /** RTL button labels (array matching items) */
193
- rtlLabels?: string[];
194
326
  }
195
327
 
328
+ export declare type ButtonGroupShape = 'rounded' | 'pill' | 'square';
329
+
330
+ export declare type ButtonGroupSize = 'xs' | 'sm' | 'md' | 'lg';
331
+
332
+ export declare type ButtonGroupVariant = 'primary' | 'soft' | 'outline' | 'ghost';
333
+
196
334
  export declare interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
197
335
  /** The visual style variant of the button */
198
336
  variant?: ButtonVariant;
199
337
  /** The size of the button */
200
338
  size?: ButtonSize;
339
+ /** The shape/border-radius of the button */
340
+ shape?: ButtonShape;
201
341
  /** Whether the button is in a loading state */
202
342
  loading?: boolean;
203
343
  /** Whether the button is disabled */
@@ -214,18 +354,41 @@ export declare interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButto
214
354
  endIcon?: ReactNode;
215
355
  /** Icon for icon-only buttons */
216
356
  icon?: ReactNode;
357
+ /** Show chevron icon for link buttons */
358
+ showChevron?: boolean;
359
+ /** Underline the link button text */
360
+ underline?: boolean;
217
361
  /** Enable RTL (Right-to-Left) mode for Arabic, Hebrew, and other RTL languages */
218
362
  rtl?: boolean;
219
363
  /** Button content */
220
364
  children?: ReactNode;
221
365
  }
222
366
 
367
+ export declare type ButtonShape = "rounded" | "pill" | "square" | "circle";
368
+
223
369
  export declare type ButtonSize = "xs" | "sm" | "md" | "lg";
224
370
 
225
- export declare type ButtonVariant = "primary" | "soft" | "secondary" | "dashed" | "white" | "outline" | "ghost" | "ghost-primary" | "danger" | "soft-danger";
371
+ export declare type ButtonVariant = "primary" | "soft" | "secondary" | "dashed" | "white" | "outline" | "ghost" | "ghost-primary" | "danger" | "soft-danger" | "link" | "link-danger" | "link-neutral";
226
372
 
227
373
  export declare const Checkbox: ForwardRefExoticComponent<CheckboxProps & RefAttributes<HTMLInputElement>>;
228
374
 
375
+ export declare const CheckboxCard: ForwardRefExoticComponent<CheckboxCardProps & RefAttributes<HTMLInputElement>>;
376
+
377
+ export declare interface CheckboxCardProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
378
+ /** Card label/title */
379
+ label?: string;
380
+ /** Card description */
381
+ description?: string;
382
+ /** Optional icon or image */
383
+ icon?: ReactNode;
384
+ /** Indeterminate state */
385
+ indeterminate?: boolean;
386
+ /** RTL mode */
387
+ rtl?: boolean;
388
+ /** Checkbox position */
389
+ checkboxPosition?: 'left' | 'right';
390
+ }
391
+
229
392
  export declare interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
230
393
  /** Checkbox label */
231
394
  label?: string;
@@ -272,7 +435,7 @@ export declare interface CheckmarkCardProps extends Omit<HTMLAttributes<HTMLElem
272
435
  onChange?: (selected: boolean) => void;
273
436
  }
274
437
 
275
- export declare function cn(...inputs: (string | undefined | null | false)[]): string;
438
+ export declare function cn(...inputs: ClassValue[]): string;
276
439
 
277
440
  export declare const CodeBlock: ({ code, language, className }: CodeBlockProps) => JSX_2.Element;
278
441
 
@@ -295,66 +458,314 @@ export declare interface DividerProps extends HTMLAttributes<HTMLDivElement> {
295
458
  spacing?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
296
459
  }
297
460
 
298
- export declare const Menu: ForwardRefExoticComponent<MenuProps & RefAttributes<HTMLDivElement>>;
461
+ export declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
299
462
 
300
- declare interface MenuItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'type'> {
301
- /** Type of menu item */
302
- type?: 'default' | 'multiline' | 'cta' | 'progress' | 'button' | 'divider' | 'label' | 'caption';
303
- /** Item state */
304
- state?: 'default' | 'hover' | 'disabled';
305
- /** Main label text */
463
+ export declare interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
464
+ /** Input label */
306
465
  label?: string;
307
- /** Supporting text (for multiline items) */
308
- supportText?: string;
466
+ /** RTL label */
467
+ rtlLabel?: string;
468
+ /** Hint text below input */
469
+ hintText?: string;
470
+ /** RTL hint text */
471
+ rtlHintText?: string;
472
+ /** Error message */
473
+ error?: string;
474
+ /** RTL error message */
475
+ rtlError?: string;
476
+ /** Success message */
477
+ success?: string;
478
+ /** RTL success message */
479
+ rtlSuccess?: string;
480
+ /** Leading icon or element */
481
+ leadingIcon?: ReactNode;
482
+ /** Trailing icon or element */
483
+ trailingIcon?: ReactNode;
484
+ /** Prefix text (e.g., "https://") */
485
+ prefix?: string;
486
+ /** Suffix text (e.g., ".com") */
487
+ suffix?: string;
488
+ /** Action button text (e.g., "Send") */
489
+ actionButton?: string;
490
+ /** Action button click handler */
491
+ onActionClick?: () => void;
492
+ /** Shortcut text (e.g., "⌘K") */
493
+ shortcut?: string;
494
+ /** RTL mode */
495
+ rtl?: boolean;
496
+ /** Optional indicator */
497
+ optional?: boolean;
498
+ /** Required indicator */
499
+ required?: boolean;
500
+ /** Allow clearing the input */
501
+ clearable?: boolean;
502
+ /** Clear handler */
503
+ onClear?: () => void;
504
+ /** Input size */
505
+ inputSize?: 'sm' | 'md' | 'lg';
506
+ /** Full width */
507
+ fullWidth?: boolean;
508
+ /** Custom class for container */
509
+ containerClassName?: string;
510
+ }
511
+
512
+ export declare const Menu: ForwardRefExoticComponent<MenuProps & RefAttributes<HTMLDivElement>>;
513
+
514
+ export declare const MenuItem: ForwardRefExoticComponent<MenuItemProps & RefAttributes<HTMLDivElement>>;
515
+
516
+ export declare interface MenuItemProps {
517
+ /** Main label */
518
+ label: string;
519
+ /** RTL label */
520
+ rtlLabel?: string;
521
+ /** Supporting text */
522
+ supportingText?: string;
523
+ /** RTL supporting text */
524
+ rtlSupportingText?: string;
309
525
  /** Leading icon */
310
- leadingIcon?: LucideIcon;
311
- /** Trailing icon */
312
- trailingIcon?: LucideIcon;
313
- /** Avatar image URL */
314
- avatarSrc?: string;
315
- /** Avatar initials */
316
- avatarInitials?: string;
317
- /** Badge text */
318
- badgeText?: string;
319
- /** Badge variant */
320
- badgeVariant?: 'neutral' | 'green' | 'blue' | 'red' | 'yellow';
321
- /** Right-aligned text */
322
- rightText?: string;
323
- /** Show toggle switch */
324
- hasSwitch?: boolean;
325
- /** Toggle switch active state */
326
- switchActive?: boolean;
327
- /** Switch change handler */
328
- onSwitchChange?: (active: boolean) => void;
329
- /** Button text (for CTA items) */
330
- buttonText?: string;
331
- /** Button click handler */
332
- onButtonClick?: () => void;
333
- /** Progress percentage (for progress items) */
334
- progress?: number;
335
- /** Progress label */
336
- progressLabel?: string;
337
- /** Progress optional text */
338
- progressOptional?: string;
339
- /** Caption text (for label/caption items) */
340
- caption?: string;
526
+ leadingIcon?: ReactNode;
527
+ /** Avatar component or image URL */
528
+ avatar?: ReactNode | string;
529
+ /** Avatar size */
530
+ avatarSize?: 'sm' | 'md' | 'lg';
531
+ /** Badge component */
532
+ badge?: ReactNode;
533
+ /** Toggle switch */
534
+ toggle?: ReactNode;
535
+ /** Trailing icon (chevron or custom) */
536
+ trailingIcon?: 'chevron' | 'none' | ReactNode;
537
+ /** Show trailing text */
538
+ trailingText?: string;
539
+ /** RTL trailing text */
540
+ rtlTrailingText?: string;
541
+ /** Show add button */
542
+ showAddButton?: boolean;
341
543
  /** RTL mode */
342
544
  rtl?: boolean;
545
+ /** Disabled state */
546
+ disabled?: boolean;
343
547
  /** Click handler */
344
548
  onClick?: () => void;
549
+ /** Custom class */
550
+ className?: string;
345
551
  }
346
552
 
347
- export declare const MenuItemType: ForwardRefExoticComponent<MenuItemProps & RefAttributes<HTMLDivElement>>;
348
-
349
- export declare interface MenuProps extends HTMLAttributes<HTMLDivElement> {
553
+ export declare interface MenuProps {
350
554
  /** Menu items */
351
- children?: ReactNode;
352
- /** Menu width */
353
- width?: number | string;
555
+ children: ReactNode;
556
+ /** RTL mode */
557
+ rtl?: boolean;
558
+ /** Custom class */
559
+ className?: string;
560
+ }
561
+
562
+ export declare const NumberInput: ForwardRefExoticComponent<NumberInputProps & RefAttributes<HTMLInputElement>>;
563
+
564
+ export declare interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {
565
+ /** Input label */
566
+ label?: string;
567
+ /** RTL label */
568
+ rtlLabel?: string;
569
+ /** Hint text below input */
570
+ hintText?: string;
571
+ /** RTL hint text */
572
+ rtlHintText?: string;
573
+ /** Error message */
574
+ error?: string;
575
+ /** RTL error message */
576
+ rtlError?: string;
577
+ /** Value */
578
+ value?: number;
579
+ /** Change handler */
580
+ onChange?: (value: number) => void;
581
+ /** Minimum value */
582
+ min?: number;
583
+ /** Maximum value */
584
+ max?: number;
585
+ /** Step */
586
+ step?: number;
587
+ /** RTL mode */
588
+ rtl?: boolean;
589
+ /** Show spinner buttons */
590
+ showSpinner?: boolean;
591
+ /** Full width */
592
+ fullWidth?: boolean;
593
+ /** Custom class for container */
594
+ containerClassName?: string;
595
+ }
596
+
597
+ /**
598
+ * Pagination component for navigating through pages of content.
599
+ * Supports multiple sizes, RTL mode, and configurable display options.
600
+ *
601
+ * Features:
602
+ * - Page number buttons with intelligent ellipsis
603
+ * - Previous/Next navigation
604
+ * - First/Last page buttons (optional)
605
+ * - Simple variant (text-based)
606
+ * - RTL support
607
+ * - Accessible keyboard navigation
608
+ */
609
+ export declare const Pagination: ForwardRefExoticComponent<PaginationProps & RefAttributes<HTMLDivElement>>;
610
+
611
+ export declare interface PaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
612
+ /** Current active page (1-indexed) */
613
+ currentPage: number;
614
+ /** Total number of pages */
615
+ totalPages: number;
616
+ /** Callback when page changes */
617
+ onPageChange?: (page: number) => void;
618
+ /** Size variant */
619
+ size?: PaginationSize;
620
+ /** Visual variant */
621
+ variant?: PaginationVariant;
622
+ /** Show first/last page buttons */
623
+ showFirstLast?: boolean;
624
+ /** Show previous/next buttons */
625
+ showPrevNext?: boolean;
626
+ /** Number of page buttons to show on each side of current page */
627
+ siblingCount?: number;
628
+ /** Enable RTL (Right-to-Left) mode */
629
+ rtl?: boolean;
630
+ /** Disable all pagination controls */
631
+ disabled?: boolean;
632
+ }
633
+
634
+ export declare type PaginationSize = "sm" | "md" | "lg";
635
+
636
+ export declare type PaginationVariant = "default" | "simple";
637
+
638
+ /**
639
+ * ProgressBar component for displaying progress visually.
640
+ * Supports multiple sizes, colors, labels, helper text, and inline indicators.
641
+ * Includes RTL (Right-to-Left) support for Arabic, Hebrew, and other RTL languages.
642
+ *
643
+ * Size Specifications:
644
+ * - sm: 4px height
645
+ * - lg: 8px height
646
+ */
647
+ export declare const ProgressBar: ForwardRefExoticComponent<ProgressBarProps & RefAttributes<HTMLDivElement>>;
648
+
649
+ export declare type ProgressBarColor = "default" | "green" | "golden" | "amber" | "red" | "purple" | "sky" | "neutral";
650
+
651
+ export declare type ProgressBarLabelType = "top" | "bottom" | "none";
652
+
653
+ export declare interface ProgressBarProps extends Omit<HTMLAttributes<HTMLDivElement>, "color"> {
654
+ /** Progress value from 0 to 100 */
655
+ value?: number;
656
+ /** The size of the progress bar */
657
+ size?: ProgressBarSize;
658
+ /** The color of the progress bar fill */
659
+ color?: ProgressBarColor;
660
+ /** Label text */
661
+ label?: string;
662
+ /** Label position (top, bottom, or none) */
663
+ labelType?: ProgressBarLabelType;
664
+ /** Helper text below the progress bar */
665
+ helperText?: string;
666
+ /** Whether helper text indicates danger/error */
667
+ helperDanger?: boolean;
668
+ /** Show inline progress indicator */
669
+ showInlineIndicator?: boolean;
670
+ /** Type of progress indicator */
671
+ indicatorType?: ProgressIndicatorType;
672
+ /** Custom icon for indicator */
673
+ customIcon?: ReactNode;
674
+ /** Enable RTL (Right-to-Left) mode */
675
+ rtl?: boolean;
676
+ /** RTL label text */
677
+ rtlLabel?: string;
678
+ /** RTL helper text */
679
+ rtlHelperText?: string;
680
+ }
681
+
682
+ export declare type ProgressBarSize = "sm" | "lg";
683
+
684
+ export declare type ProgressIndicatorType = "loading" | "completed" | "error" | "custom" | "none";
685
+
686
+ export declare const Radio: ForwardRefExoticComponent<RadioProps & RefAttributes<HTMLInputElement>>;
687
+
688
+ export declare const RadioCard: ForwardRefExoticComponent<RadioCardProps & RefAttributes<HTMLInputElement>>;
689
+
690
+ export declare interface RadioCardProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
691
+ /** Card label/title */
692
+ label: string;
693
+ /** Description text below label */
694
+ description?: string;
695
+ /** RTL label (Arabic) */
696
+ rtlLabel?: string;
697
+ /** RTL description (Arabic) */
698
+ rtlDescription?: string;
699
+ /** Icon or image to display */
700
+ leadingIcon?: ReactNode;
701
+ /** Support text on the right side */
702
+ supportText?: string;
703
+ /** RTL support text */
704
+ rtlSupportText?: string;
705
+ /** Radio position */
706
+ radioLocation?: 'leading' | 'trailing';
707
+ /** RTL mode */
708
+ rtl?: boolean;
709
+ /** Error state */
710
+ error?: boolean;
711
+ }
712
+
713
+ export declare interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
714
+ /** Radio label */
715
+ label?: string;
716
+ /** Support text below label */
717
+ supportText?: string;
718
+ /** RTL label (Arabic) */
719
+ rtlLabel?: string;
720
+ /** RTL support text (Arabic) */
721
+ rtlSupportText?: string;
722
+ /** Radio position relative to label */
723
+ radioLocation?: 'leading' | 'trailing';
354
724
  /** RTL mode */
355
725
  rtl?: boolean;
726
+ /** Error state */
727
+ error?: boolean;
356
728
  }
357
729
 
730
+ export declare const Slider: ForwardRefExoticComponent<SliderProps & RefAttributes<HTMLInputElement>>;
731
+
732
+ export declare interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
733
+ /** Slider size */
734
+ size?: SliderSize;
735
+ /** Minimum value */
736
+ min?: number;
737
+ /** Maximum value */
738
+ max?: number;
739
+ /** Step increment */
740
+ step?: number;
741
+ /** Current value */
742
+ value?: number;
743
+ /** Default value */
744
+ defaultValue?: number;
745
+ /** Show value label above thumb */
746
+ showValue?: boolean;
747
+ /** Show min/max labels */
748
+ showMinMax?: boolean;
749
+ /** Label text */
750
+ label?: string;
751
+ /** RTL label (Arabic) */
752
+ rtlLabel?: string;
753
+ /** Helper text below slider */
754
+ helperText?: string;
755
+ /** RTL helper text */
756
+ rtlHelperText?: string;
757
+ /** RTL mode */
758
+ rtl?: boolean;
759
+ /** Error state */
760
+ error?: boolean;
761
+ /** Custom value formatter */
762
+ formatValue?: (value: number) => string;
763
+ /** Callback when value changes */
764
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
765
+ }
766
+
767
+ export declare type SliderSize = 'sm' | 'md' | 'lg';
768
+
358
769
  /**
359
770
  * SocialButton component for social media authentication buttons.
360
771
  * Supports multiple platforms (Facebook, LinkedIn, Apple, WhatsApp, Google, X),
@@ -414,4 +825,100 @@ export declare interface SwitcherProps extends Omit<InputHTMLAttributes<HTMLInpu
414
825
 
415
826
  export declare type SwitcherSize = 'sm' | 'md' | 'lg';
416
827
 
828
+ export declare const Tab: {
829
+ ({ value, children, disabled, icon, badge, className, onClick, ...props }: TabProps): JSX_2.Element;
830
+ displayName: string;
831
+ };
832
+
833
+ export declare interface TabProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'value'> {
834
+ /** Tab value (must be unique) */
835
+ value: string;
836
+ /** Tab label */
837
+ children: ReactNode;
838
+ /** Disabled state */
839
+ disabled?: boolean;
840
+ /** Optional icon */
841
+ icon?: ReactNode;
842
+ /** Badge/count to display */
843
+ badge?: number | string;
844
+ }
845
+
846
+ export declare const Tabs: {
847
+ ({ defaultValue, value: controlledValue, onChange, variant, size, fullWidth, children, className, ...props }: TabsProps): JSX_2.Element;
848
+ displayName: string;
849
+ };
850
+
851
+ export declare const TabsContent: {
852
+ ({ value, children, className, ...props }: TabsContentProps): JSX_2.Element | null;
853
+ displayName: string;
854
+ };
855
+
856
+ export declare interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {
857
+ /** Value matching the tab */
858
+ value: string;
859
+ /** Content to display */
860
+ children: ReactNode;
861
+ }
862
+
863
+ export declare const TabsList: {
864
+ ({ children, className, ...props }: TabsListProps): JSX_2.Element;
865
+ displayName: string;
866
+ };
867
+
868
+ export declare interface TabsListProps extends HTMLAttributes<HTMLDivElement> {
869
+ children: ReactNode;
870
+ }
871
+
872
+ export declare interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
873
+ /** Default active tab value */
874
+ defaultValue?: string;
875
+ /** Controlled active tab value */
876
+ value?: string;
877
+ /** Callback when tab changes */
878
+ onChange?: (value: string) => void;
879
+ /** Tabs variant */
880
+ variant?: TabsVariant;
881
+ /** Tabs size */
882
+ size?: TabsSize;
883
+ /** Make tabs full width */
884
+ fullWidth?: boolean;
885
+ /** Children (TabsList and TabsContent) */
886
+ children: ReactNode;
887
+ }
888
+
889
+ export declare type TabsSize = 'sm' | 'md' | 'lg';
890
+
891
+ export declare type TabsVariant = 'line' | 'contained' | 'pills';
892
+
893
+ export declare const Toggle: ForwardRefExoticComponent<ToggleProps & RefAttributes<HTMLInputElement>>;
894
+
895
+ export declare interface ToggleProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
896
+ /** Toggle size */
897
+ size?: ToggleSize;
898
+ /** Label text */
899
+ label?: string;
900
+ /** RTL label (Arabic) */
901
+ rtlLabel?: string;
902
+ /** Support text below label */
903
+ supportText?: string;
904
+ /** RTL support text */
905
+ rtlSupportText?: string;
906
+ /** Label position relative to toggle */
907
+ labelPosition?: 'leading' | 'trailing';
908
+ /** Show icon inside toggle when checked */
909
+ showIcon?: boolean;
910
+ /** Custom icon to show when toggle is ON (checked) */
911
+ iconOn?: ReactNode;
912
+ /** Custom icon to show when toggle is OFF (unchecked) */
913
+ iconOff?: ReactNode;
914
+ /** RTL mode */
915
+ rtl?: boolean;
916
+ /** Error state */
917
+ error?: boolean;
918
+ /** Callback when toggle changes */
919
+ onCheckedChange?: (checked: boolean) => void;
920
+ }
921
+
922
+ export declare type ToggleSize = 'sm' | 'md' | 'lg';
923
+
417
924
  export { }