@kroo-web/design-system 1.1.106 → 1.2.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.
Files changed (101) hide show
  1. package/README.MD +1 -4
  2. package/dist/cjs/examples/form/index.d.ts +16 -49
  3. package/dist/cjs/index.js +15 -15
  4. package/dist/cjs/src/__tests__/setup.d.ts +5 -0
  5. package/dist/cjs/src/components/Accordion/config.d.ts +1 -1
  6. package/dist/cjs/src/components/Accordion/index.d.ts +12 -12
  7. package/dist/cjs/src/components/Button/index.d.ts +6 -6
  8. package/dist/cjs/src/components/Callout/index.d.ts +2 -2
  9. package/dist/cjs/src/components/Card/index.d.ts +7 -7
  10. package/dist/cjs/src/components/Cards/index.d.ts +2 -2
  11. package/dist/cjs/src/components/Checkbox/index.d.ts +8 -9
  12. package/dist/cjs/src/components/Columns/index.d.ts +2 -2
  13. package/dist/cjs/src/components/ComboBox/index.d.ts +8 -9
  14. package/dist/cjs/src/components/DatePicker/index.d.ts +8 -17
  15. package/dist/cjs/src/components/Disclosure/index.d.ts +2 -2
  16. package/dist/cjs/src/components/Form/index.d.ts +7 -3
  17. package/dist/cjs/src/components/Icon/index.d.ts +2 -2
  18. package/dist/cjs/src/components/Link/index.d.ts +3 -3
  19. package/dist/cjs/src/components/Loading/index.d.ts +3 -3
  20. package/dist/cjs/src/components/Modal/index.d.ts +8 -8
  21. package/dist/cjs/src/components/NumberField/index.d.ts +10 -20
  22. package/dist/cjs/src/components/PhoneField/index.d.ts +6 -26
  23. package/dist/cjs/src/components/PinInput/index.d.ts +8 -7
  24. package/dist/cjs/src/components/Popover/index.d.ts +2 -2
  25. package/dist/cjs/src/components/ProgressIndicator/index.d.ts +3 -3
  26. package/dist/cjs/src/components/RadioGroup/index.d.ts +10 -18
  27. package/dist/cjs/src/components/Range/index.d.ts +9 -19
  28. package/dist/cjs/src/components/Select/index.d.ts +13 -14
  29. package/dist/cjs/src/components/Skeleton/index.d.ts +2 -2
  30. package/dist/cjs/src/components/Table/index.d.ts +4 -4
  31. package/dist/cjs/src/components/Tabs/index.d.ts +3 -3
  32. package/dist/cjs/src/components/Tag/index.d.ts +4 -4
  33. package/dist/cjs/src/components/TextField/index.d.ts +12 -13
  34. package/dist/cjs/src/components/Toast/index.d.ts +3 -3
  35. package/dist/cjs/src/components/Tooltip/index.d.ts +7 -7
  36. package/dist/cjs/src/components/Typography/index.d.ts +6 -7
  37. package/dist/cjs/src/components/Wrapper/index.d.ts +7 -7
  38. package/dist/cjs/src/components/shared/FormField/index.d.ts +4 -4
  39. package/dist/cjs/src/hooks/useWindowSize.d.ts +1 -1
  40. package/dist/cjs/src/types/PolymorphicWithoutRef.d.ts +2 -2
  41. package/dist/cjs/src/utils/decorators/Grid/index.d.ts +1 -1
  42. package/dist/esm/examples/form/index.d.ts +16 -49
  43. package/dist/esm/index.js +16 -16
  44. package/dist/esm/src/__tests__/setup.d.ts +5 -0
  45. package/dist/esm/src/components/Accordion/config.d.ts +1 -1
  46. package/dist/esm/src/components/Accordion/index.d.ts +12 -12
  47. package/dist/esm/src/components/Button/index.d.ts +6 -6
  48. package/dist/esm/src/components/Callout/index.d.ts +2 -2
  49. package/dist/esm/src/components/Card/index.d.ts +7 -7
  50. package/dist/esm/src/components/Cards/index.d.ts +2 -2
  51. package/dist/esm/src/components/Checkbox/index.d.ts +8 -9
  52. package/dist/esm/src/components/Columns/index.d.ts +2 -2
  53. package/dist/esm/src/components/ComboBox/index.d.ts +8 -9
  54. package/dist/esm/src/components/DatePicker/index.d.ts +8 -17
  55. package/dist/esm/src/components/Disclosure/index.d.ts +2 -2
  56. package/dist/esm/src/components/Form/index.d.ts +7 -3
  57. package/dist/esm/src/components/Icon/index.d.ts +2 -2
  58. package/dist/esm/src/components/Link/index.d.ts +3 -3
  59. package/dist/esm/src/components/Loading/index.d.ts +3 -3
  60. package/dist/esm/src/components/Modal/index.d.ts +8 -8
  61. package/dist/esm/src/components/NumberField/index.d.ts +10 -20
  62. package/dist/esm/src/components/PhoneField/index.d.ts +6 -26
  63. package/dist/esm/src/components/PinInput/index.d.ts +8 -7
  64. package/dist/esm/src/components/Popover/index.d.ts +2 -2
  65. package/dist/esm/src/components/ProgressIndicator/index.d.ts +3 -3
  66. package/dist/esm/src/components/RadioGroup/index.d.ts +10 -18
  67. package/dist/esm/src/components/Range/index.d.ts +9 -19
  68. package/dist/esm/src/components/Select/index.d.ts +13 -14
  69. package/dist/esm/src/components/Skeleton/index.d.ts +2 -2
  70. package/dist/esm/src/components/Table/index.d.ts +4 -4
  71. package/dist/esm/src/components/Tabs/index.d.ts +3 -3
  72. package/dist/esm/src/components/Tag/index.d.ts +4 -4
  73. package/dist/esm/src/components/TextField/index.d.ts +12 -13
  74. package/dist/esm/src/components/Toast/index.d.ts +3 -3
  75. package/dist/esm/src/components/Tooltip/index.d.ts +7 -7
  76. package/dist/esm/src/components/Typography/index.d.ts +6 -7
  77. package/dist/esm/src/components/Wrapper/index.d.ts +7 -7
  78. package/dist/esm/src/components/shared/FormField/index.d.ts +4 -4
  79. package/dist/esm/src/hooks/useWindowSize.d.ts +1 -1
  80. package/dist/esm/src/types/PolymorphicWithoutRef.d.ts +2 -2
  81. package/dist/esm/src/utils/decorators/Grid/index.d.ts +1 -1
  82. package/dist/types.d.ts +175 -242
  83. package/package.json +20 -11
  84. package/dist/cjs/examples/CheckboxWithController/index.d.ts +0 -6
  85. package/dist/cjs/examples/ComboBoxWithController/index.d.ts +0 -6
  86. package/dist/cjs/examples/MagicForm/index.d.ts +0 -7
  87. package/dist/cjs/examples/NumberFieldWithController/index.d.ts +0 -6
  88. package/dist/cjs/examples/PhoneFieldWithController/index.d.ts +0 -6
  89. package/dist/cjs/examples/PinInputWithController/index.d.ts +0 -6
  90. package/dist/cjs/examples/RadioGroupWithController/index.d.ts +0 -8
  91. package/dist/cjs/src/utils/composeRefs.d.ts +0 -2
  92. package/dist/cjs/src/utils/parseInt.d.ts +0 -1
  93. package/dist/esm/examples/CheckboxWithController/index.d.ts +0 -6
  94. package/dist/esm/examples/ComboBoxWithController/index.d.ts +0 -6
  95. package/dist/esm/examples/MagicForm/index.d.ts +0 -7
  96. package/dist/esm/examples/NumberFieldWithController/index.d.ts +0 -6
  97. package/dist/esm/examples/PhoneFieldWithController/index.d.ts +0 -6
  98. package/dist/esm/examples/PinInputWithController/index.d.ts +0 -6
  99. package/dist/esm/examples/RadioGroupWithController/index.d.ts +0 -8
  100. package/dist/esm/src/utils/composeRefs.d.ts +0 -2
  101. package/dist/esm/src/utils/parseInt.d.ts +0 -1
@@ -0,0 +1,5 @@
1
+ import { render, RenderOptions } from '@testing-library/react';
2
+ import { ReactElement } from 'react';
3
+ declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions, "wrapper">) => ReturnType<typeof render>;
4
+ export * from '@testing-library/react';
5
+ export { customRender as render };
@@ -5,7 +5,7 @@ export declare const AccordionContext: React.Context<{
5
5
  }>;
6
6
  export declare const AccordionContextProvider: ({ children }: PropsWithChildren) => React.JSX.Element;
7
7
  export declare const AccordionItemContext: React.Context<{
8
- value: string;
9
8
  setValue: (value: string) => void;
9
+ value: string;
10
10
  }>;
11
11
  export declare const AccordionItemContextProvider: ({ children }: PropsWithChildren) => React.JSX.Element;
@@ -1,21 +1,21 @@
1
- import React from 'react';
2
1
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
- export type TAccordionRootProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {
4
- grouping?: 'attached' | 'detached';
2
+ import React from 'react';
3
+ export type TAccordionRootProps = {
5
4
  children: React.ReactNode;
6
- };
7
- export type TAccordionTriggerProps<C extends React.ElementType = 'p'> = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & {
5
+ grouping?: 'attached' | 'detached';
6
+ } & React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;
7
+ export type TAccordionTriggerProps<C extends React.ElementType = 'p'> = {
8
8
  as?: C;
9
- size?: 'regular' | 'large';
10
9
  controls?: React.ReactNode;
11
- };
10
+ size?: 'large' | 'regular';
11
+ } & React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;
12
12
  export declare const Accordion: {
13
- Root: (props: TAccordionRootProps) => React.JSX.Element;
13
+ Content: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
14
  Item: (props: React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>) => React.JSX.Element;
15
- Trigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
15
+ Root: (props: TAccordionRootProps) => React.JSX.Element;
16
+ Trigger: React.ForwardRefExoticComponent<{
16
17
  as?: "p" | undefined;
17
- size?: "regular" | "large";
18
18
  controls?: React.ReactNode;
19
- } & React.RefAttributes<HTMLButtonElement>>;
20
- Content: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ size?: "large" | "regular";
20
+ } & Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
21
21
  };
@@ -2,23 +2,23 @@ import React, { PropsWithChildren } from 'react';
2
2
  import { PolymorphicPropsWithoutRef } from '../../types/PolymorphicWithoutRef';
3
3
  declare const defaultElement = "button";
4
4
  type TButtonVisualTypes = {
5
+ variant?: 'danger' | 'ghost' | 'primary' | 'secondary' | 'tertiary';
5
6
  visualType?: 'button';
6
- variant?: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'danger';
7
7
  } | {
8
+ variant?: 'danger' | 'ghost' | 'standard';
8
9
  visualType?: 'action';
9
- variant?: 'standard' | 'ghost' | 'danger';
10
10
  } | {
11
+ variant?: 'outline' | 'primary' | 'secondary';
11
12
  visualType?: 'nav';
12
- variant?: 'primary' | 'outline' | 'secondary';
13
13
  } | {
14
- visualType?: 'text';
15
14
  variant?: 'primary' | 'secondary';
15
+ visualType?: 'text';
16
16
  };
17
17
  type TButtonOwnProps = {
18
18
  as?: 'button' | 'span';
19
19
  className?: string;
20
20
  onlyIcon?: boolean;
21
- } & React.ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren & TButtonVisualTypes;
21
+ } & PropsWithChildren & React.ButtonHTMLAttributes<HTMLButtonElement> & TButtonVisualTypes;
22
22
  export type TButtonProps<T extends React.ElementType = typeof defaultElement> = PolymorphicPropsWithoutRef<TButtonOwnProps, T>;
23
- export declare function Button<T extends React.ElementType = typeof defaultElement>({ as, children, variant, className, visualType, onlyIcon, ...rest }: TButtonProps<T>): React.JSX.Element;
23
+ export declare function Button<T extends React.ElementType = typeof defaultElement>({ as, children, className, onlyIcon, variant, visualType, ...rest }: TButtonProps<T>): React.JSX.Element;
24
24
  export {};
@@ -1,11 +1,11 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
2
  import { TTypographyProps } from '../Typography';
3
3
  export type TCalloutRootProps = {
4
- type?: 'primary' | 'secondary' | 'warning' | 'error' | 'positive';
4
+ type?: 'error' | 'positive' | 'primary' | 'secondary' | 'warning';
5
5
  };
6
6
  export type TCalloutTextProps = TTypographyProps<'p'>;
7
7
  export declare const Callout: {
8
- Root: ({ type, children }: PropsWithChildren<TCalloutRootProps>) => React.JSX.Element;
9
8
  Icon: ({ size, weight, ...rest }: import("../Icon").TIconProps) => React.JSX.Element;
9
+ Root: ({ children, type }: PropsWithChildren<TCalloutRootProps>) => React.JSX.Element;
10
10
  Text: ({ children, ...props }: PropsWithChildren<TCalloutTextProps>) => React.JSX.Element;
11
11
  };
@@ -2,20 +2,20 @@ import React, { PropsWithChildren } from 'react';
2
2
  import { PolymorphicPropsWithoutRef } from '../../types/PolymorphicWithoutRef';
3
3
  declare const defaultElement = "div";
4
4
  export type TCardVariants = {
5
- visual?: 'primary' | 'secondary' | 'tertiary';
5
+ elementType?: 'div';
6
+ radius?: 'large' | 'medium' | 'none' | 'small';
6
7
  size?: {
7
- vertical: 'none' | 'extra-small' | 'small' | 'medium' | 'large';
8
- horizontal: 'none' | 'extra-small' | 'small' | 'medium' | 'large';
8
+ horizontal: 'extra-small' | 'large' | 'medium' | 'none' | 'small';
9
+ vertical: 'extra-small' | 'large' | 'medium' | 'none' | 'small';
9
10
  };
10
- radius?: 'none' | 'small' | 'medium' | 'large';
11
- elementType?: 'div';
11
+ visual?: 'primary' | 'secondary' | 'tertiary';
12
12
  };
13
13
  export interface ICardOwnProps extends React.HTMLAttributes<HTMLDivElement>, PropsWithChildren {
14
14
  as?: 'div';
15
- variants?: TCardVariants;
16
15
  className?: string;
17
16
  isSquare?: boolean;
17
+ variants?: TCardVariants;
18
18
  }
19
19
  export type ICardProps<T extends React.ElementType = typeof defaultElement> = PolymorphicPropsWithoutRef<ICardOwnProps, T>;
20
- export declare function Card<T extends React.ElementType = typeof defaultElement>({ as, children, variants, className, isSquare, ...rest }: ICardProps<T>): React.JSX.Element;
20
+ export declare function Card<T extends React.ElementType = typeof defaultElement>({ as, children, className, isSquare, variants, ...rest }: ICardProps<T>): React.JSX.Element;
21
21
  export {};
@@ -1,9 +1,9 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
2
  export type CardsVariants = {
3
- layout?: 'bento-three' | 'bento-four' | 'bento-five';
3
+ layout?: 'bento-five' | 'bento-four' | 'bento-three';
4
4
  };
5
5
  export interface ICardsProps extends PropsWithChildren {
6
- as: 'div' | 'ol' | 'ul' | 'section';
6
+ as: 'div' | 'ol' | 'section' | 'ul';
7
7
  variants: CardsVariants;
8
8
  }
9
9
  export declare const Cards: ({ as, children, variants }: ICardsProps) => React.JSX.Element;
@@ -1,12 +1,11 @@
1
1
  import React, { ReactNode } from 'react';
2
- export type TCheckboxProps = {
3
- id: string;
4
- label: string | ReactNode;
5
- disabled?: boolean;
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export type TCheckboxProps<T extends FieldValues> = {
6
4
  className?: string;
7
- variant?: 'radio' | 'checkbox';
8
- onChange?: (value: boolean) => void;
9
- onBlur?: () => void;
10
- value?: boolean;
5
+ disabled?: boolean;
6
+ id: string;
7
+ label: ReactNode | string;
8
+ name: Path<T>;
9
+ variant?: 'checkbox' | 'radio';
11
10
  };
12
- export declare const Checkbox: ({ id, label, variant, value, onChange, onBlur }: TCheckboxProps) => React.JSX.Element;
11
+ export declare const Checkbox: <T extends FieldValues>(props: TCheckboxProps<T>) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export type TColumnsProps = {
3
- cols: number;
4
3
  children: React.ReactNode;
4
+ cols: number;
5
5
  };
6
- export declare const Columns: ({ cols, children }: TColumnsProps) => React.JSX.Element;
6
+ export declare const Columns: ({ children, cols }: TColumnsProps) => React.JSX.Element;
@@ -1,18 +1,17 @@
1
1
  import React, { ReactNode } from 'react';
2
+ import { ControllerRenderProps, FieldValues } from 'react-hook-form';
2
3
  export type TComboBoxItem = {
3
- text: string;
4
4
  img?: string;
5
5
  render?: ReactNode;
6
+ text: string;
6
7
  };
7
8
  export type TComboBoxProps = {
9
+ alwaysOpen?: boolean;
10
+ field: ControllerRenderProps<FieldValues>;
8
11
  label: string;
9
- options: TComboBoxItem[];
12
+ name: string;
10
13
  onSelect?: (item: TComboBoxItem) => void;
11
- alwaysOpen?: boolean;
12
- field: {
13
- value: string;
14
- onChange: (value: string) => void;
15
- onBlur: () => void;
16
- };
14
+ options: TComboBoxItem[];
17
15
  };
18
- export declare const ComboBox: (props: TComboBoxProps) => React.JSX.Element;
16
+ export declare const ComboBox: (props: Omit<TComboBoxProps, "field">) => React.JSX.Element;
17
+ export declare const Field: ({ alwaysOpen, field: { onBlur, ...restField }, label, onSelect, options }: TComboBoxProps) => React.JSX.Element;
@@ -1,23 +1,14 @@
1
1
  import React from 'react';
2
- export type TDatePickerProps = {
3
- id: string;
4
- label: string;
5
- helper?: {
6
- message: string;
7
- };
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export type TDatePicker<T extends FieldValues> = {
8
4
  disabled?: boolean;
9
- error?: {
5
+ helper?: {
10
6
  message: string;
11
7
  };
12
- } & React.InputHTMLAttributes<HTMLInputElement>;
13
- export declare const DatePicker: React.ForwardRefExoticComponent<{
14
8
  id: string;
15
9
  label: string;
16
- helper?: {
17
- message: string;
18
- };
19
- disabled?: boolean;
20
- error?: {
21
- message: string;
22
- };
23
- } & React.InputHTMLAttributes<HTMLInputElement> & React.RefAttributes<HTMLInputElement>>;
10
+ max?: string;
11
+ min?: string;
12
+ name: Path<T>;
13
+ };
14
+ export declare const DatePicker: <T extends FieldValues>(props: TDatePicker<T>) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export type TDisclosureProps = {
3
- condition: boolean;
4
3
  children: React.ReactNode;
4
+ condition: boolean;
5
5
  };
6
- export declare const Disclosure: ({ condition, children }: TDisclosureProps) => React.JSX.Element;
6
+ export declare const Disclosure: ({ children, condition }: TDisclosureProps) => React.JSX.Element;
@@ -1,4 +1,8 @@
1
- import React, { PropsWithChildren, DetailedHTMLProps, InputHTMLAttributes } from 'react';
2
- type TFormProps = PropsWithChildren<DetailedHTMLProps<InputHTMLAttributes<HTMLFormElement>, HTMLFormElement>>;
3
- export declare const Form: ({ children, ...rest }: TFormProps) => React.JSX.Element;
1
+ import React, { HTMLProps, PropsWithChildren } from 'react';
2
+ import { FieldValues, UseFormReturn } from 'react-hook-form';
3
+ type TFormProps<T extends FieldValues> = {
4
+ methods: UseFormReturn<T>;
5
+ onSubmit: (values: T) => void;
6
+ } & PropsWithChildren<HTMLProps<HTMLFormElement>>;
7
+ export declare const Form: <T extends FieldValues>({ children, methods, onSubmit, ...rest }: TFormProps<T>) => React.JSX.Element;
4
8
  export {};
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { MaterialSymbolProps } from 'react-material-symbols';
3
3
  export type TIconProps = {
4
- size?: 'regular' | 'large' | 'xlarge';
5
- weight?: 'light' | 'normal' | 'medium';
4
+ size?: 'large' | 'regular' | 'xlarge';
5
+ weight?: 'light' | 'medium' | 'normal';
6
6
  } & Omit<MaterialSymbolProps, 'size' | 'weight'>;
7
7
  export declare const Icon: ({ size, weight, ...rest }: TIconProps) => React.JSX.Element;
@@ -3,9 +3,9 @@ type PolymorphicLink<T extends ElementType> = {
3
3
  as?: T;
4
4
  className?: string;
5
5
  } & PropsWithChildren;
6
- type AnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {
6
+ type AnchorProps = {
7
7
  as?: undefined;
8
- };
9
- export type TLink<T extends ElementType> = PolymorphicLink<T> | AnchorProps;
8
+ } & React.AnchorHTMLAttributes<HTMLAnchorElement>;
9
+ export type TLink<T extends ElementType> = AnchorProps | PolymorphicLink<T>;
10
10
  export declare const Link: <T extends ElementType = "a">({ as, children, className, ...rest }: TLink<T>) => React.JSX.Element;
11
11
  export {};
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  declare const sizes: {
3
- small: string;
4
- medium: string;
5
- large: string;
6
3
  full: string;
4
+ large: string;
5
+ medium: string;
6
+ small: string;
7
7
  };
8
8
  export type TLoadingProps = {
9
9
  size?: keyof typeof sizes;
@@ -2,32 +2,32 @@ import React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';
2
2
  import { TButtonProps } from '../Button';
3
3
  export type TUseModalProps = {
4
4
  activeModal: string;
5
+ close: () => void;
5
6
  isOpen: boolean;
6
7
  open: (value: string) => void;
7
- close: () => void;
8
8
  };
9
9
  export declare const useModal: import("zustand").UseBoundStore<import("zustand").StoreApi<TUseModalProps>>;
10
10
  export type TModalContentProps = {
11
11
  children: React.ReactNode;
12
- value: string;
13
- focusTrap?: boolean;
14
12
  closeOnBackdropClick?: boolean;
13
+ focusTrap?: boolean;
14
+ value: string;
15
15
  };
16
16
  export type TModalControlProps = {
17
17
  children: React.ReactNode;
18
18
  value: string;
19
19
  } & TButtonProps;
20
20
  export type TModalHeaderProps = {
21
+ actionButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
22
+ onClick?: () => void;
21
23
  title: string;
22
24
  variant?: 'action';
23
- onClick?: () => void;
24
- actionButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
25
25
  };
26
26
  export type TModalButtonProps = PropsWithChildren;
27
27
  export declare const Buttons: ({ children }: TModalButtonProps) => React.JSX.Element;
28
28
  export declare const Modal: {
29
- Content: ({ value, children, focusTrap, closeOnBackdropClick }: TModalContentProps) => React.JSX.Element;
30
- Control: ({ value, children, ...rest }: TModalControlProps) => React.JSX.Element;
31
- Header: ({ title, variant, onClick, actionButtonProps }: TModalHeaderProps) => React.JSX.Element;
32
29
  Buttons: ({ children }: TModalButtonProps) => React.JSX.Element;
30
+ Content: ({ children, closeOnBackdropClick, focusTrap, value }: TModalContentProps) => React.JSX.Element;
31
+ Control: ({ children, value, ...rest }: TModalControlProps) => React.JSX.Element;
32
+ Header: ({ actionButtonProps, onClick, title, variant }: TModalHeaderProps) => React.JSX.Element;
33
33
  };
@@ -1,23 +1,13 @@
1
- import React, { DetailedHTMLProps, InputHTMLAttributes } from 'react';
2
- export type TNumberFieldProps = {
3
- id: string;
4
- label: string;
5
- width?: number;
1
+ import React from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export type TNumberFieldProps<T extends FieldValues> = {
6
4
  helper?: {
7
5
  message: string;
8
6
  };
9
- error?: {
10
- message: string;
11
- };
12
- onChange?: (value: number) => void;
13
- onBlur?: () => void;
14
- } & DetailedHTMLProps<InputHTMLAttributes<HTMLDivElement>, HTMLDivElement>;
15
- /**
16
- * NumberField - A component for rendering a number input field.
17
- *
18
- * @param {TNumberFieldProps} props - The properties for the number field component.
19
- * @returns {JSX.Element} The rendered number field component.
20
- *
21
- * !!! If using this component with react-hook-form, you will need to wrap this component in a Controller component.
22
- */
23
- export declare const NumberField: (props: TNumberFieldProps) => React.JSX.Element;
7
+ label: string;
8
+ max?: number;
9
+ min?: number;
10
+ name: Path<T>;
11
+ width?: number;
12
+ };
13
+ export declare const NumberField: <T extends FieldValues>(props: TNumberFieldProps<T>) => React.JSX.Element;
@@ -1,33 +1,13 @@
1
1
  import React, { ReactNode } from 'react';
2
- export type TPhoneFieldProps = {
3
- id: string;
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export type TPhoneFieldProps<T extends FieldValues> = {
4
+ className?: string;
4
5
  disabled?: boolean;
5
- error?: {
6
- message: string;
7
- };
8
6
  helper?: {
9
7
  message: ReactNode | string;
10
8
  };
11
- className?: string;
9
+ id: string;
10
+ name: Path<T>;
12
11
  placeholder?: string;
13
- onChange?: (value: {
14
- code: string;
15
- number: string;
16
- formatted: string;
17
- }) => void;
18
- onBlur?: () => void;
19
- value?: {
20
- code: string;
21
- number: string;
22
- formatted: string;
23
- };
24
12
  };
25
- /**
26
- * PhoneField - A component for rendering a number input field.
27
- *
28
- * @param {TPhoneFieldProps} props - The properties for the phone field component.
29
- * @returns {JSX.Element} The rendered number field component.
30
- *
31
- * !!! If using this component with react-hook-form, you will need to wrap this component in a Controller component.
32
- */
33
- export declare const PhoneField: (props: TPhoneFieldProps) => React.JSX.Element;
13
+ export declare const PhoneField: <T extends FieldValues>(props: TPhoneFieldProps<T>) => React.JSX.Element;
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- export interface TPinInputProps {
3
- length: number;
4
- label: string;
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export interface TPinInputProps<T extends FieldValues> {
4
+ isNumeric?: boolean;
5
5
  isOTP?: boolean;
6
6
  isPassword?: boolean;
7
- isNumeric?: boolean;
8
- onChange: (value: string) => void;
9
- onBlur?: () => void;
7
+ label: string;
8
+ length: number;
9
+ name: Path<T>;
10
10
  }
11
- export declare const PinInput: ({ length, label, isOTP, isPassword, isNumeric, onChange, onBlur }: TPinInputProps) => React.JSX.Element;
11
+ export declare const PinInput: <T extends FieldValues>(props: TPinInputProps<T>) => React.JSX.Element;
12
+ export declare const OTPInput: () => React.JSX.Element;
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
1
  import * as RadixPopover from '@radix-ui/react-popover';
2
+ import React from 'react';
3
3
  export type TPopoverRootProps = React.ComponentPropsWithoutRef<typeof RadixPopover.Root>;
4
4
  export type TPopoverTriggerProps = React.ComponentPropsWithoutRef<typeof RadixPopover.Trigger>;
5
5
  export type TPopoverContentProps = React.ComponentPropsWithoutRef<typeof RadixPopover.Content>;
6
6
  export declare const Popover: {
7
+ Content: ({ children, ...rest }: TPopoverContentProps) => React.JSX.Element;
7
8
  Root: (props: TPopoverRootProps) => React.JSX.Element;
8
9
  Trigger: ({ children, ...rest }: TPopoverTriggerProps) => React.JSX.Element;
9
- Content: ({ children, ...rest }: TPopoverContentProps) => React.JSX.Element;
10
10
  };
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  export type TProgressIndicatorProps = {
3
- label?: string;
4
- size?: 'small' | 'medium' | 'full-width';
5
3
  current?: number;
4
+ label?: string;
6
5
  max?: number;
6
+ size?: 'full-width' | 'medium' | 'small';
7
7
  };
8
- export declare const ProgressIndicator: ({ label, size, current, max }: TProgressIndicatorProps) => React.JSX.Element;
8
+ export declare const ProgressIndicator: ({ current, label, max, size }: TProgressIndicatorProps) => React.JSX.Element;
@@ -1,24 +1,16 @@
1
- import React from 'react';
2
1
  import * as RadixRadioGroup from '@radix-ui/react-radio-group';
3
- export type TRadioGroupProps = {
4
- className?: string;
5
- name?: string;
2
+ import React from 'react';
3
+ import { FieldError, FieldValues, Path } from 'react-hook-form';
4
+ export type TRadioGroupProps<T extends FieldValues> = {
5
+ error?: FieldError;
6
6
  label: string;
7
+ name: Path<T>;
7
8
  variant?: 'cards' | 'circle';
8
- error?: {
9
- message: string;
10
- };
11
- onChange?: (value: string) => void;
12
- onBlur?: () => void;
13
- disabled?: boolean;
14
- value?: string;
15
- };
9
+ } & Omit<RadixRadioGroup.RadioGroupProps, 'name'>;
16
10
  export declare const RadioGroup: {
17
- Root: React.ForwardRefExoticComponent<TRadioGroupProps & {
18
- children?: React.ReactNode | undefined;
19
- } & React.RefAttributes<HTMLDivElement>>;
20
- Item: ({ children, className, variant, ...props }: RadixRadioGroup.RadioGroupItemProps & {
21
- variant?: "circle" | "cards";
22
- }) => React.JSX.Element;
23
11
  Indicator: ({ className, ...props }: RadixRadioGroup.RadioGroupIndicatorProps) => React.JSX.Element;
12
+ Item: ({ children, className, variant, ...props }: {
13
+ variant?: "cards" | "circle";
14
+ } & RadixRadioGroup.RadioGroupItemProps) => React.JSX.Element;
15
+ Root: <T extends FieldValues>({ children, className, disabled, label, name, variant, ...props }: TRadioGroupProps<T>) => React.JSX.Element;
24
16
  };
@@ -1,25 +1,15 @@
1
- import React, { ChangeEvent } from 'react';
2
- export type TRangeProps = {
3
- id: string;
4
- label: string;
5
- step?: number;
1
+ import React from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ export type TRangeProps<T extends FieldValues> = {
6
4
  helper?: {
7
5
  message: string;
8
6
  };
9
- error?: {
10
- message: string;
11
- };
12
- onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
13
- } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;
14
- export declare const Range: React.ForwardRefExoticComponent<{
15
7
  id: string;
16
8
  label: string;
9
+ max?: number;
10
+ min?: number;
11
+ name: Path<T>;
12
+ showValue?: boolean;
17
13
  step?: number;
18
- helper?: {
19
- message: string;
20
- };
21
- error?: {
22
- message: string;
23
- };
24
- onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
25
- } & Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> & React.RefAttributes<HTMLInputElement>>;
14
+ };
15
+ export declare const Range: <T extends FieldValues>(props: TRangeProps<T>) => React.JSX.Element;
@@ -1,26 +1,25 @@
1
- import React, { DetailedHTMLProps, OptionHTMLAttributes, ReactNode } from 'react';
1
+ import React, { OptionHTMLAttributes, ReactNode } from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
2
3
  export type TItem = {
3
4
  id: string;
4
5
  title: string;
5
6
  };
6
- export type TSelectProps = {
7
- id: string;
8
- label: string;
7
+ export type TSelectProps<T extends FieldValues> = {
8
+ children?: ReactNode;
9
+ defaultValue?: string;
10
+ disabled?: boolean;
9
11
  helper?: {
10
12
  message: string;
11
13
  };
14
+ id: string;
12
15
  items?: {
13
16
  id: string;
14
- title: string;
15
17
  props?: OptionHTMLAttributes<HTMLOptionElement>;
18
+ title: string;
16
19
  }[];
17
- placeholder?: string;
18
- disabled?: boolean;
19
- defaultValue?: string;
20
+ label: string;
20
21
  missing?: boolean;
21
- children?: ReactNode;
22
- error?: {
23
- message: string;
24
- };
25
- } & DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>;
26
- export declare const Select: React.ForwardRefExoticComponent<Omit<TSelectProps, "ref"> & React.RefAttributes<HTMLSelectElement>>;
22
+ name: Path<T>;
23
+ placeholder?: string;
24
+ };
25
+ export declare const Select: <T extends FieldValues>(props: TSelectProps<T>) => React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  export type TSkeletonProps = {
3
- width?: string;
4
3
  height?: string;
5
4
  rounded?: boolean;
5
+ width?: string;
6
6
  };
7
- export declare const Skeleton: ({ width, height, rounded }: TSkeletonProps) => React.JSX.Element;
7
+ export declare const Skeleton: ({ height, rounded, width }: TSkeletonProps) => React.JSX.Element;
@@ -7,11 +7,11 @@ export declare const TableRow: ({ children }: PropsWithChildren) => React.JSX.El
7
7
  export declare const TableData: ({ children }: PropsWithChildren) => React.JSX.Element;
8
8
  export declare const TableFooter: ({ children }: PropsWithChildren) => React.JSX.Element;
9
9
  export declare const Table: {
10
- Root: ({ children }: PropsWithChildren) => React.JSX.Element;
11
- Head: ({ children }: PropsWithChildren) => React.JSX.Element;
12
- Header: ({ children }: PropsWithChildren) => React.JSX.Element;
13
10
  Body: ({ children }: PropsWithChildren) => React.JSX.Element;
14
- Row: ({ children }: PropsWithChildren) => React.JSX.Element;
15
11
  Data: ({ children }: PropsWithChildren) => React.JSX.Element;
16
12
  Footer: ({ children }: PropsWithChildren) => React.JSX.Element;
13
+ Head: ({ children }: PropsWithChildren) => React.JSX.Element;
14
+ Header: ({ children }: PropsWithChildren) => React.JSX.Element;
15
+ Root: ({ children }: PropsWithChildren) => React.JSX.Element;
16
+ Row: ({ children }: PropsWithChildren) => React.JSX.Element;
17
17
  };
@@ -1,12 +1,12 @@
1
- import React from 'react';
2
1
  import * as RadixTabs from '@radix-ui/react-tabs';
2
+ import React from 'react';
3
3
  export type TTabsRoot = React.ComponentProps<typeof RadixTabs.Root>;
4
4
  export type TTabsList = React.ComponentProps<typeof RadixTabs.List>;
5
5
  export type TTabsTrigger = React.ComponentProps<typeof RadixTabs.Trigger>;
6
6
  export type TTabsContent = React.ComponentProps<typeof RadixTabs.Content>;
7
7
  export declare const Tabs: {
8
- Root: ({ children, ...rest }: TTabsRoot) => React.JSX.Element;
8
+ Content: ({ children, ...rest }: TTabsContent) => React.JSX.Element;
9
9
  List: ({ children, ...rest }: TTabsList) => React.JSX.Element;
10
+ Root: ({ children, ...rest }: TTabsRoot) => React.JSX.Element;
10
11
  Trigger: ({ children, ...rest }: TTabsTrigger) => React.JSX.Element;
11
- Content: ({ children, ...rest }: TTabsContent) => React.JSX.Element;
12
12
  };