@uxuissk/design-system 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -405,9 +405,11 @@ export declare type DropdownState = "default" | "error" | "success" | "warning";
405
405
 
406
406
  export declare type DropdownVariant = "default" | "outlined" | "filled" | "ghost";
407
407
 
408
- export declare const DSButton: default_2.ForwardRefExoticComponent<DSButtonProps & default_2.RefAttributes<HTMLButtonElement>>;
408
+ declare const DSButton: default_2.ForwardRefExoticComponent<DSButtonProps & default_2.RefAttributes<HTMLButtonElement>>;
409
+ export { DSButton as Button }
410
+ export { DSButton }
409
411
 
410
- export declare interface DSButtonProps extends default_2.ButtonHTMLAttributes<HTMLButtonElement> {
412
+ declare interface DSButtonProps extends default_2.ButtonHTMLAttributes<HTMLButtonElement> {
411
413
  variant?: ButtonVariant;
412
414
  size?: ButtonSize;
413
415
  loading?: boolean;
@@ -417,12 +419,18 @@ export declare interface DSButtonProps extends default_2.ButtonHTMLAttributes<HT
417
419
  fullWidth?: boolean;
418
420
  active?: boolean;
419
421
  }
422
+ export { DSButtonProps as ButtonProps }
423
+ export { DSButtonProps }
420
424
 
421
- export declare function DSCheckbox({ checked: controlledChecked, indeterminate, defaultChecked, onChange, label, description, size, disabled, error, className, id: propId, }: CheckboxProps): JSX.Element;
425
+ declare function DSCheckbox({ checked: controlledChecked, indeterminate, defaultChecked, onChange, label, description, size, disabled, error, className, id: propId, }: CheckboxProps): JSX.Element;
426
+ export { DSCheckbox as Checkbox }
427
+ export { DSCheckbox }
422
428
 
423
- export declare const DSInput: default_2.ForwardRefExoticComponent<DSInputProps & default_2.RefAttributes<HTMLInputElement>>;
429
+ declare const DSInput: default_2.ForwardRefExoticComponent<DSInputProps & default_2.RefAttributes<HTMLInputElement>>;
430
+ export { DSInput }
431
+ export { DSInput as Input }
424
432
 
425
- export declare interface DSInputProps extends Omit<default_2.InputHTMLAttributes<HTMLInputElement>, "size"> {
433
+ declare interface DSInputProps extends Omit<default_2.InputHTMLAttributes<HTMLInputElement>, "size"> {
426
434
  label?: string;
427
435
  helperText?: string;
428
436
  errorMessage?: string;
@@ -441,14 +449,22 @@ export declare interface DSInputProps extends Omit<default_2.InputHTMLAttributes
441
449
  required?: boolean;
442
450
  onClear?: () => void;
443
451
  }
452
+ export { DSInputProps }
453
+ export { DSInputProps as InputProps }
444
454
 
445
- export declare function DSRadio({ value, label, description, disabled: localDisabled, size: localSize, className }: RadioProps): JSX.Element;
455
+ declare function DSRadio({ value, label, description, disabled: localDisabled, size: localSize, className }: RadioProps): JSX.Element;
456
+ export { DSRadio }
457
+ export { DSRadio as Radio }
446
458
 
447
- export declare function DSTable<T extends Record<string, any>>({ columns, data, size, striped, hoverable, bordered, selectable, selectedRows: controlledSelected, onSelectionChange, loading, emptyMessage, stickyHeader, className, }: TableProps<T>): JSX.Element;
459
+ declare function DSTable<T extends Record<string, any>>({ columns, data, size, striped, hoverable, bordered, selectable, selectedRows: controlledSelected, onSelectionChange, loading, emptyMessage, stickyHeader, className, }: TableProps<T>): JSX.Element;
460
+ export { DSTable }
461
+ export { DSTable as Table }
448
462
 
449
- export declare const DSTextarea: default_2.ForwardRefExoticComponent<DSTextareaProps & default_2.RefAttributes<HTMLTextAreaElement>>;
463
+ declare const DSTextarea: default_2.ForwardRefExoticComponent<DSTextareaProps & default_2.RefAttributes<HTMLTextAreaElement>>;
464
+ export { DSTextarea }
465
+ export { DSTextarea as Textarea }
450
466
 
451
- export declare interface DSTextareaProps extends Omit<default_2.TextareaHTMLAttributes<HTMLTextAreaElement>, ""> {
467
+ declare interface DSTextareaProps extends Omit<default_2.TextareaHTMLAttributes<HTMLTextAreaElement>, ""> {
452
468
  label?: string;
453
469
  helperText?: string;
454
470
  errorMessage?: string;
@@ -460,6 +476,8 @@ export declare interface DSTextareaProps extends Omit<default_2.TextareaHTMLAttr
460
476
  maxLength?: number;
461
477
  required?: boolean;
462
478
  }
479
+ export { DSTextareaProps }
480
+ export { DSTextareaProps as TextareaProps }
463
481
 
464
482
  export declare function EmptyState({ icon, title, description, action, secondaryAction, size, }: EmptyStateProps): JSX.Element;
465
483
 
@@ -505,6 +523,108 @@ export declare interface FileUploadProps {
505
523
 
506
524
  export declare type FileUploadVariant = "dropzone" | "button" | "avatar";
507
525
 
526
+ export declare function FilterBar({ filters, searchPlaceholder, showSearch, value, onFilterChange, className, }: FilterBarProps): JSX.Element;
527
+
528
+ export declare interface FilterBarProps {
529
+ /** Filter definitions */
530
+ filters?: FilterConfig[];
531
+ /** Search placeholder */
532
+ searchPlaceholder?: string;
533
+ /** Show search field */
534
+ showSearch?: boolean;
535
+ /** Controlled value */
536
+ value?: FilterBarValue;
537
+ /** Callback when any filter/search changes */
538
+ onFilterChange?: (value: FilterBarValue) => void;
539
+ /** Additional className */
540
+ className?: string;
541
+ }
542
+
543
+ export declare interface FilterBarValue {
544
+ search?: string;
545
+ filters: Record<string, FilterValue>;
546
+ }
547
+
548
+ export declare interface FilterConfig {
549
+ /** Unique key for this filter */
550
+ key: string;
551
+ /** Display label for the filter button */
552
+ label: string;
553
+ /** single = one value at a time, multi = multiple values */
554
+ type: "single" | "multi";
555
+ /** Available options */
556
+ options: FilterOption[];
557
+ }
558
+
559
+ export declare interface FilterOption {
560
+ label: string;
561
+ value: string;
562
+ }
563
+
564
+ export declare type FilterValue = string | string[] | [Date | null, Date | null] | null;
565
+
566
+ export declare function FormError({ message, className }: FormErrorProps): JSX.Element | null;
567
+
568
+ export declare interface FormErrorProps {
569
+ message?: string;
570
+ className?: string;
571
+ }
572
+
573
+ export declare function FormField({ name, label, required, error, successMessage, helperText, layout, labelWidth, children, className, }: FormFieldProps): JSX.Element;
574
+
575
+ declare interface FormFieldContextValue {
576
+ name: string;
577
+ error?: string;
578
+ }
579
+
580
+ export declare type FormFieldLayout = "vertical" | "horizontal";
581
+
582
+ export declare interface FormFieldProps {
583
+ /** Field name — used for htmlFor on label */
584
+ name: string;
585
+ /** Label text */
586
+ label?: string;
587
+ /** Whether the field is required */
588
+ required?: boolean;
589
+ /** Error message to display */
590
+ error?: string;
591
+ /** Success message to display (overrides helperText when present) */
592
+ successMessage?: string;
593
+ /** Helper/description text below the field */
594
+ helperText?: string;
595
+ /** Layout direction: vertical (default) or horizontal (label left, input right) */
596
+ layout?: FormFieldLayout;
597
+ /** Label width when layout="horizontal" (default: "160px") */
598
+ labelWidth?: string;
599
+ /** Field content (input, select, etc.) */
600
+ children: default_2.ReactNode;
601
+ /** Additional className */
602
+ className?: string;
603
+ }
604
+
605
+ export declare function FormHelperText({ children, className }: FormHelperTextProps): JSX.Element;
606
+
607
+ export declare interface FormHelperTextProps {
608
+ children: default_2.ReactNode;
609
+ className?: string;
610
+ }
611
+
612
+ export declare function FormLabel({ htmlFor, required, children, className, }: FormLabelProps): JSX.Element;
613
+
614
+ export declare interface FormLabelProps {
615
+ htmlFor?: string;
616
+ required?: boolean;
617
+ children: default_2.ReactNode;
618
+ className?: string;
619
+ }
620
+
621
+ export declare function FormSuccess({ message, className }: FormSuccessProps): JSX.Element | null;
622
+
623
+ export declare interface FormSuccessProps {
624
+ message?: string;
625
+ className?: string;
626
+ }
627
+
508
628
  export declare const IconButton: default_2.ForwardRefExoticComponent<IconButtonProps & default_2.RefAttributes<HTMLButtonElement>>;
509
629
 
510
630
  export declare interface IconButtonProps extends default_2.ButtonHTMLAttributes<HTMLButtonElement> {
@@ -634,6 +754,66 @@ export declare interface NotificationProps {
634
754
 
635
755
  export declare type NotificationType = "info" | "success" | "warning" | "error";
636
756
 
757
+ export declare function NumberInput({ value, defaultValue, onChange, min, max, step, disabled, size, label, placeholder, error, className, }: NumberInputProps): JSX.Element;
758
+
759
+ export declare interface NumberInputProps {
760
+ value?: number;
761
+ defaultValue?: number;
762
+ onChange?: (value: number) => void;
763
+ min?: number;
764
+ max?: number;
765
+ step?: number;
766
+ disabled?: boolean;
767
+ size?: NumberInputSize;
768
+ label?: string;
769
+ placeholder?: string;
770
+ error?: string;
771
+ className?: string;
772
+ }
773
+
774
+ export declare type NumberInputSize = "sm" | "md" | "lg";
775
+
776
+ export declare function OTPInput({ length, value, onChange, onComplete, disabled, error, size, label, masked, className, }: OTPInputProps): JSX.Element;
777
+
778
+ export declare interface OTPInputProps {
779
+ /** Number of OTP digits */
780
+ length?: number;
781
+ /** Controlled value */
782
+ value?: string;
783
+ /** Called when the OTP value changes */
784
+ onChange?: (value: string) => void;
785
+ /** Called when all digits are filled */
786
+ onComplete?: (value: string) => void;
787
+ disabled?: boolean;
788
+ error?: string;
789
+ size?: OTPInputSize;
790
+ label?: string;
791
+ /** Mask input (show dots instead of digits) */
792
+ masked?: boolean;
793
+ className?: string;
794
+ }
795
+
796
+ export declare type OTPInputSize = "sm" | "md" | "lg";
797
+
798
+ export declare function PageHeader({ title, subtitle, breadcrumb, actions, tabs, sticky, className, }: PageHeaderProps): JSX.Element;
799
+
800
+ export declare interface PageHeaderProps {
801
+ /** Main page title (required) */
802
+ title: string;
803
+ /** Optional subtitle below the title */
804
+ subtitle?: string;
805
+ /** Breadcrumb content — pass a <Breadcrumb /> component */
806
+ breadcrumb?: default_2.ReactNode;
807
+ /** Action buttons — right-aligned (pass DSButton components) */
808
+ actions?: default_2.ReactNode;
809
+ /** Tab navigation below the header — pass a <Tabs /> component */
810
+ tabs?: default_2.ReactNode;
811
+ /** Stick to top of viewport while scrolling */
812
+ sticky?: boolean;
813
+ /** Additional className */
814
+ className?: string;
815
+ }
816
+
637
817
  export declare function Pagination({ currentPage, totalPages, onPageChange, siblingCount, showFirstLast, showPrevNext, showPageSize, pageSizeOptions, pageSize, onPageSizeChange, totalItems, size, variant, disabled, showPageInfo, showItemsInfo, prevLabel, nextLabel, }: PaginationProps): JSX.Element;
638
818
 
639
819
  export declare interface PaginationProps {
@@ -1217,4 +1397,6 @@ export declare interface UploadedFile {
1217
1397
  status: "uploading" | "done" | "error";
1218
1398
  }
1219
1399
 
1400
+ export declare function useFormField(): FormFieldContextValue;
1401
+
1220
1402
  export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxuissk/design-system",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/sellsuki-ds.umd.cjs",