@scbt-ecom/ui 0.22.8 → 0.24.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 (70) hide show
  1. package/dist/{CustomLink-BHI03NwX.js → CustomLink-BuvHLRaW.js} +676 -677
  2. package/dist/CustomLink-BuvHLRaW.js.map +1 -0
  3. package/dist/config.js +1 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/hooks.js +2 -2
  6. package/dist/hooks.js.map +1 -1
  7. package/dist/isClient-D-a29gNu.js +5 -0
  8. package/dist/{isClient-C9aZtt2Q.js.map → isClient-D-a29gNu.js.map} +1 -1
  9. package/dist/{parse-Bv7rNn_R.js → parse-DTNzQgVi.js} +152 -105
  10. package/dist/{parse-Bv7rNn_R.js.map → parse-DTNzQgVi.js.map} +1 -1
  11. package/dist/shared/ui/formElements/controlled/autocomplete/Autocomplete.d.ts +15 -0
  12. package/dist/shared/ui/formElements/controlled/autocomplete/index.d.ts +1 -0
  13. package/dist/shared/ui/formElements/controlled/dadata/address/DadataAddress.d.ts +11 -0
  14. package/dist/shared/ui/formElements/controlled/dadata/address/index.d.ts +1 -0
  15. package/dist/shared/ui/formElements/controlled/dadata/address/query.d.ts +3 -0
  16. package/dist/shared/ui/formElements/controlled/dadata/auto/DadataAuto.d.ts +11 -0
  17. package/dist/shared/ui/formElements/controlled/dadata/auto/index.d.ts +1 -0
  18. package/dist/shared/ui/formElements/controlled/dadata/auto/query.d.ts +3 -0
  19. package/dist/shared/ui/formElements/controlled/dadata/country/DadataCountry.d.ts +11 -0
  20. package/dist/shared/ui/formElements/controlled/dadata/country/index.d.ts +1 -0
  21. package/dist/shared/ui/formElements/controlled/dadata/country/query.d.ts +3 -0
  22. package/dist/shared/ui/formElements/controlled/dadata/fio/DadataFio.d.ts +11 -0
  23. package/dist/shared/ui/formElements/controlled/dadata/fio/index.d.ts +1 -0
  24. package/dist/shared/ui/formElements/controlled/dadata/fio/query.d.ts +3 -0
  25. package/dist/shared/ui/formElements/controlled/dadata/helpers.d.ts +2 -0
  26. package/dist/shared/ui/formElements/controlled/dadata/index.d.ts +5 -0
  27. package/dist/shared/ui/formElements/controlled/dadata/party/DadataOrganization.d.ts +11 -0
  28. package/dist/shared/ui/formElements/controlled/dadata/party/index.d.ts +1 -0
  29. package/dist/shared/ui/formElements/controlled/dadata/party/query.d.ts +3 -0
  30. package/dist/shared/ui/formElements/controlled/dadata/types.d.ts +35 -0
  31. package/dist/shared/ui/formElements/controlled/index.d.ts +38 -14
  32. package/dist/shared/ui/formElements/controlled/select/SelectControl.d.ts +7 -3
  33. package/dist/shared/ui/formElements/dadataControl/DadataAddress.d.ts +3 -0
  34. package/dist/shared/ui/formElements/dadataControl/DadataAuto.d.ts +3 -0
  35. package/dist/shared/ui/formElements/dadataControl/DadataCountry.d.ts +3 -0
  36. package/dist/shared/ui/formElements/dadataControl/DadataFio.d.ts +3 -0
  37. package/dist/shared/ui/formElements/dadataControl/DadataOrganization.d.ts +3 -0
  38. package/dist/shared/ui/formElements/dadataControl/autocompleteDadata/AutocompleteDadata.d.ts +3 -0
  39. package/dist/shared/ui/formElements/dadataControl/autocompleteDadata/model/helpers.d.ts +1 -0
  40. package/dist/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.d.ts +25 -0
  41. package/dist/shared/ui/formElements/uncontrolled/autocomplete/index.d.ts +1 -0
  42. package/dist/shared/ui/formElements/uncontrolled/index.d.ts +14 -11
  43. package/dist/shared/ui/formElements/uncontrolled/select/Select.d.ts +76 -27
  44. package/dist/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.d.ts +20 -0
  45. package/dist/shared/ui/formElements/uncontrolled/select/index.d.ts +1 -1
  46. package/dist/shared/ui/formElements/uncontrolled/select/model/index.d.ts +1 -0
  47. package/dist/shared/ui/formElements/uncontrolled/select/model/types.d.ts +14 -0
  48. package/dist/shared/ui/formElements/uncontrolled/select/ui/{control/ui/Chip.d.ts → Chip.d.ts} +1 -1
  49. package/dist/shared/ui/formElements/uncontrolled/select/ui/ChipList.d.ts +11 -0
  50. package/dist/shared/ui/formElements/uncontrolled/select/ui/SelectItem.d.ts +12 -20
  51. package/dist/shared/ui/formElements/uncontrolled/select/ui/index.d.ts +2 -3
  52. package/dist/ui.js +12493 -12137
  53. package/dist/ui.js.map +1 -1
  54. package/dist/useDebounce-DSBzpBLy.js +1106 -0
  55. package/dist/useDebounce-DSBzpBLy.js.map +1 -0
  56. package/dist/utils.js +1 -1
  57. package/dist/validation.js +1 -1
  58. package/dist/widget.js +1 -1
  59. package/package.json +1 -1
  60. package/dist/CustomLink-BHI03NwX.js.map +0 -1
  61. package/dist/isClient-C9aZtt2Q.js +0 -5
  62. package/dist/shared/ui/formElements/uncontrolled/select/ui/SelectList.d.ts +0 -10
  63. package/dist/shared/ui/formElements/uncontrolled/select/ui/control/Control.d.ts +0 -16
  64. package/dist/shared/ui/formElements/uncontrolled/select/ui/control/hooks/useSelectController.d.ts +0 -52
  65. package/dist/shared/ui/formElements/uncontrolled/select/ui/control/index.d.ts +0 -1
  66. package/dist/shared/ui/formElements/uncontrolled/select/ui/control/ui/ChipList.d.ts +0 -11
  67. package/dist/shared/ui/formElements/uncontrolled/select/ui/control/ui/index.d.ts +0 -1
  68. package/dist/useDebounce-m2rLy7nL.js +0 -1110
  69. package/dist/useDebounce-m2rLy7nL.js.map +0 -1
  70. /package/dist/shared/ui/formElements/uncontrolled/select/{ui/control/hooks → hooks}/index.d.ts +0 -0
@@ -0,0 +1,15 @@
1
+ import { Control, FieldValues, Path, UseControllerProps } from 'react-hook-form';
2
+ import { TFieldContainerConfig } from '../../ui';
3
+ import { AutocompleteBaseProps } from '../../uncontrolled';
4
+ import { SelectClasses } from '../../uncontrolled/select/Select';
5
+ export type AutocompleteControlProps<TFieldValues extends FieldValues, T, TName extends Path<TFieldValues> = Path<TFieldValues>> = UseControllerProps<TFieldValues, TName> & Omit<AutocompleteBaseProps<T>, 'classes'> & {
6
+ control: Control<TFieldValues>;
7
+ helperText?: string;
8
+ size?: TFieldContainerConfig['size'];
9
+ classes?: SelectClasses & {
10
+ container?: string;
11
+ message?: string;
12
+ };
13
+ };
14
+ export declare const InnerComponent: <TFieldValues extends FieldValues, T>({ control, name, defaultValue, disabled, helperText, rules, shouldUnregister, size, classes, ...props }: AutocompleteControlProps<TFieldValues, T>) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const AutocompleteControl: typeof InnerComponent;
@@ -0,0 +1 @@
1
+ export { AutocompleteControl, type AutocompleteControlProps } from './Autocomplete';
@@ -0,0 +1,11 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AutocompleteControlProps } from '../../autocomplete';
3
+ import { IDadataCacheOption } from '../types';
4
+ import { SelectItemOption } from '../../../..';
5
+ /**
6
+ * DADATA_BASE_CACHE_URL - нужно использовать этот url
7
+ */
8
+ export declare const DadataAddress: <TFieldValues extends FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>, "query" | "formatter"> & {
9
+ dadataBaseUrl: string;
10
+ formatter?: (item: IDadataCacheOption<unknown>) => SelectItemOption;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DadataAddress } from './DadataAddress';
@@ -0,0 +1,3 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { IDadataCacheOption } from '../types';
3
+ export declare const useDadataQueryAddress: (query: string, dadataBaseUrl: string, options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>) => import('@tanstack/react-query').UseQueryResult<IDadataCacheOption<unknown>[], Error>;
@@ -0,0 +1,11 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AutocompleteControlProps } from '../../autocomplete';
3
+ import { IDadataAutoOption } from '../types';
4
+ import { SelectItemOption } from '../../../..';
5
+ /**
6
+ * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url
7
+ */
8
+ export declare const DadataAuto: <TFieldValues extends FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<AutocompleteControlProps<TFieldValues, IDadataAutoOption>, "query" | "formatter"> & {
9
+ dadataBaseUrl: string;
10
+ formatter?: (item: IDadataAutoOption) => SelectItemOption;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DadataAuto } from './DadataAuto';
@@ -0,0 +1,3 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { IDadataAutoOption } from '../types';
3
+ export declare const useDadataQueryAuto: (query: string, dadataBaseUrl: string, options?: Partial<UseQueryOptions<IDadataAutoOption[]>>) => import('@tanstack/react-query').UseQueryResult<IDadataAutoOption[], Error>;
@@ -0,0 +1,11 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AutocompleteControlProps } from '../../autocomplete';
3
+ import { IDadataCountryOption } from '../types';
4
+ import { SelectItemOption } from '../../../..';
5
+ /**
6
+ * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url
7
+ */
8
+ export declare const DadataCountry: <TFieldValues extends FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<AutocompleteControlProps<TFieldValues, IDadataCountryOption>, "query" | "formatter"> & {
9
+ dadataBaseUrl: string;
10
+ formatter?: (item: IDadataCountryOption) => SelectItemOption;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DadataCountry } from './DadataCountry';
@@ -0,0 +1,3 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { IDadataCountryOption } from '../types';
3
+ export declare const useDadataQueryCountry: (query: string, dadataBaseUrl: string, options?: Partial<UseQueryOptions<IDadataCountryOption[]>>) => import('@tanstack/react-query').UseQueryResult<IDadataCountryOption[], Error>;
@@ -0,0 +1,11 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AutocompleteControlProps } from '../../autocomplete';
3
+ import { IDadataCacheOption } from '../types';
4
+ import { SelectItemOption } from '../../../..';
5
+ /**
6
+ * DADATA_BASE_CACHE_URL - нужно использовать этот url
7
+ */
8
+ export declare const DadataFio: <TFieldValues extends FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>, "query" | "formatter"> & {
9
+ dadataBaseUrl: string;
10
+ formatter?: (item: IDadataCacheOption<unknown>) => SelectItemOption;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DadataFio } from './DadataFio';
@@ -0,0 +1,3 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { IDadataCacheOption } from '../types';
3
+ export declare const useDadataQueryFio: (query: string, dadataBaseUrl: string, options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>) => import('@tanstack/react-query').UseQueryResult<IDadataCacheOption<unknown>[], Error>;
@@ -0,0 +1,2 @@
1
+ import { TDadataReturn, TDadataType } from './types';
2
+ export declare const getDataByDadataType: <T>(dadataType: TDadataType, data: TDadataReturn<T>) => import('./types').IDadataCountryOption[] | import('./types').IDadataAutoOption[] | import('./types').IDadataCacheOption<T>[];
@@ -0,0 +1,5 @@
1
+ export { DadataOrganization } from './party';
2
+ export { DadataAddress } from './address';
3
+ export { DadataAuto } from './auto';
4
+ export { DadataCountry } from './country';
5
+ export { DadataFio } from './fio';
@@ -0,0 +1,11 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AutocompleteControlProps } from '../../autocomplete';
3
+ import { IDadataOrganizationOption } from '../types';
4
+ import { SelectItemOption } from '../../../..';
5
+ /**
6
+ * DADATA_BASE_CACHE_URL - нужно использовать этот url
7
+ */
8
+ export declare const DadataOrganization: <TFieldValues extends FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<AutocompleteControlProps<TFieldValues, IDadataOrganizationOption>, "query" | "formatter"> & {
9
+ dadataBaseUrl: string;
10
+ formatter?: (item: IDadataOrganizationOption) => SelectItemOption;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DadataOrganization } from './DadataOrganization';
@@ -0,0 +1,3 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { IDadataOrganizationOption } from '../types';
3
+ export declare const useDadataQueryParty: (query: string, dadataBaseUrl: string, options?: Partial<UseQueryOptions<IDadataOrganizationOption[]>>) => import('@tanstack/react-query').UseQueryResult<IDadataOrganizationOption[], Error>;
@@ -0,0 +1,35 @@
1
+ export type TDadataType = 'address' | 'fio' | 'country' | 'auto' | 'party';
2
+ export interface IDadataCountryOption {
3
+ id: number;
4
+ country_name: string;
5
+ }
6
+ export interface IDadataConstantsCountrySuggestion {
7
+ matches: IDadataCountryOption[];
8
+ }
9
+ export interface IDadataAutoOption {
10
+ id: number;
11
+ mark: string;
12
+ model: string;
13
+ model_mark: string;
14
+ year_max: string;
15
+ year_min: string;
16
+ }
17
+ export interface IDadataConstantsAutoSuggestion {
18
+ matches: IDadataAutoOption[];
19
+ }
20
+ export interface IDadataCacheOption<T> {
21
+ value: string;
22
+ unrestricted_value: string;
23
+ data: T;
24
+ }
25
+ export interface IDadataCacheSuggestion<T> {
26
+ suggestions: IDadataCacheOption<T>[];
27
+ }
28
+ export interface IDadataOrganizationOption {
29
+ value: string;
30
+ unrestricted_value: string;
31
+ data: {
32
+ inn: 'string';
33
+ };
34
+ }
35
+ export type TDadataReturn<T> = IDadataConstantsCountrySuggestion | IDadataCacheSuggestion<T> | IDadataConstantsAutoSuggestion;
@@ -37,31 +37,34 @@ export declare const Controlled: {
37
37
  };
38
38
  helperText?: string;
39
39
  }) => import("react/jsx-runtime").JSX.Element;
40
- SelectControl: <TFieldValues extends import('react-hook-form').FieldValues = import('react-hook-form').FieldValues>({ control, classes, name, rules, shouldUnregister, disabled, defaultValue, returnValue, options, helperText, size, ...props }: import('react-hook-form').UseControllerProps<TFieldValues, import('react-hook-form').Path<TFieldValues>> & Omit<import('react-select').Props<import('..').SelectItemOption, boolean>, "options" | "defaultValue" | "placeholder" | "isSearchable"> & Pick<import('..').InputBaseProps, "invalid" | "label" | "attachmentProps"> & {
40
+ SelectControl: <TFieldValues extends import('react-hook-form').FieldValues = import('react-hook-form').FieldValues>({ control, classes, name, rules, shouldUnregister, disabled, defaultValue, returnValue, options, helperText, size, ...props }: import('react-hook-form').UseControllerProps<TFieldValues, import('react-hook-form').Path<TFieldValues>> & Omit<import('@headlessui/react').ComboboxProps<import('..').SelectItemOption, boolean, "li">, "onChange" | "className" | "multiple" | "by" | "virtual"> & {
41
+ label: string;
42
+ isMulti: boolean;
43
+ invalid?: boolean;
41
44
  isSearchable?: boolean;
42
- returnValue?: (option: import('..').SelectItemOption) => string;
43
- displayValue?: (option: import('..').SelectItemOption) => string;
44
- classes?: {
45
- container?: string;
46
- control?: import('../uncontrolled/select/ui').ControlClasses;
47
- option?: import('../uncontrolled/select/ui').SelectItemClasses;
48
- list?: import('../uncontrolled/select/ui').SelectListClasses;
49
- };
50
45
  options: import('..').SelectItemOption[];
51
- filterOptionDisabled?: boolean;
46
+ classes?: import('../uncontrolled/select/Select').SelectClasses;
47
+ displayValue?: (option: import('..').SelectItemOption) => string;
48
+ onChange?: ((value: import('..').SelectItemOption | import('..').SelectItemOption[] | undefined) => void) | undefined;
49
+ onInputChange?: (value: string) => void;
50
+ inputValue?: string;
51
+ attachmentProps?: import('../../../types').DeepPartial<import('../ui').IFieldAttachmentProps>;
52
+ filterDisabled?: boolean;
52
53
  } & {
53
54
  control: import('react-hook-form').Control<TFieldValues>;
54
55
  classes?: {
55
- container?: string;
56
- control?: import('../uncontrolled/select/ui').ControlClasses;
57
- option?: import('../uncontrolled/select/ui').SelectItemClasses;
58
- list?: import('../uncontrolled/select/ui').SelectListClasses;
56
+ item?: string;
57
+ helperText?: string;
58
+ } & {
59
+ root?: string;
60
+ list?: string;
59
61
  } & {
60
62
  container?: string;
61
63
  message?: string;
62
64
  };
63
65
  helperText?: string;
64
66
  size?: import('../ui').TFieldContainerConfig["size"];
67
+ returnValue?: (option: import('..').SelectItemOption) => string;
65
68
  }) => import("react/jsx-runtime").JSX.Element;
66
69
  SwitchControl: <TFieldValues extends import('react-hook-form').FieldValues = import('react-hook-form').FieldValues>({ classes, className, control, name, rules, defaultValue, disabled, shouldUnregister, children, helperText, tooltip, popoverProps, ...props }: import('./switch/SwitchControl').SwitchControlProps<TFieldValues>) => import("react/jsx-runtime").JSX.Element;
67
70
  RadioGroupControl: <TFieldValues extends import('react-hook-form').FieldValues = import('react-hook-form').FieldValues>({ classes, className, control, name, rules, shouldUnregister, disabled, defaultValue, helperText, label, ...props }: import('react-hook-form').UseControllerProps<TFieldValues, import('react-hook-form').Path<TFieldValues>> & Omit<import('..').RadioGroupBaseProps, "classes"> & {
@@ -82,4 +85,25 @@ export declare const Controlled: {
82
85
  helperText?: string;
83
86
  }) => import("react/jsx-runtime").JSX.Element;
84
87
  ComboboxControl: <T extends import('react-hook-form').FieldValues, ValueType>({ options, control, defaultValue, isClearable, label, disabled, placeholder, helperText, noOptionsMessage, size, classes, isMulti, isSearchable, customChange, ...props }: import('./combobox').IComboboxControlProps<T, ValueType>) => import("react/jsx-runtime").JSX.Element;
88
+ AutocompleteControl: <TFieldValues extends import('react-hook-form').FieldValues, T>({ control, name, defaultValue, disabled, helperText, rules, shouldUnregister, size, classes, ...props }: import('./autocomplete').AutocompleteControlProps<TFieldValues, T>) => import("react/jsx-runtime").JSX.Element;
89
+ DadataFio: <TFieldValues extends import('react-hook-form').FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<import('./autocomplete').AutocompleteControlProps<TFieldValues, import('./dadata/types').IDadataCacheOption<unknown>>, "query" | "formatter"> & {
90
+ dadataBaseUrl: string;
91
+ formatter?: (item: import('./dadata/types').IDadataCacheOption<unknown>) => import('..').SelectItemOption;
92
+ }) => import("react/jsx-runtime").JSX.Element;
93
+ DadataAddress: <TFieldValues extends import('react-hook-form').FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<import('./autocomplete').AutocompleteControlProps<TFieldValues, import('./dadata/types').IDadataCacheOption<unknown>>, "query" | "formatter"> & {
94
+ dadataBaseUrl: string;
95
+ formatter?: (item: import('./dadata/types').IDadataCacheOption<unknown>) => import('..').SelectItemOption;
96
+ }) => import("react/jsx-runtime").JSX.Element;
97
+ DadataCountry: <TFieldValues extends import('react-hook-form').FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<import('./autocomplete').AutocompleteControlProps<TFieldValues, import('./dadata/types').IDadataCountryOption>, "query" | "formatter"> & {
98
+ dadataBaseUrl: string;
99
+ formatter?: (item: import('./dadata/types').IDadataCountryOption) => import('..').SelectItemOption;
100
+ }) => import("react/jsx-runtime").JSX.Element;
101
+ DadataAuto: <TFieldValues extends import('react-hook-form').FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<import('./autocomplete').AutocompleteControlProps<TFieldValues, import('./dadata/types').IDadataAutoOption>, "query" | "formatter"> & {
102
+ dadataBaseUrl: string;
103
+ formatter?: (item: import('./dadata/types').IDadataAutoOption) => import('..').SelectItemOption;
104
+ }) => import("react/jsx-runtime").JSX.Element;
105
+ DadataOrganization: <TFieldValues extends import('react-hook-form').FieldValues>({ formatter, dadataBaseUrl, ...props }: Omit<import('./autocomplete').AutocompleteControlProps<TFieldValues, import('./dadata/types').IDadataOrganizationOption>, "query" | "formatter"> & {
106
+ dadataBaseUrl: string;
107
+ formatter?: (item: import('./dadata/types').IDadataOrganizationOption) => import('..').SelectItemOption;
108
+ }) => import("react/jsx-runtime").JSX.Element;
85
109
  };
@@ -1,11 +1,11 @@
1
1
  import { Control, FieldPath, FieldValues, UseControllerProps } from 'react-hook-form';
2
- import { SelectBaseProps } from '../../..';
2
+ import { SelectBaseProps, SelectItemOption } from '../../..';
3
3
  import { TFieldContainerConfig } from '../../ui';
4
- type SelectControlClasses = SelectBaseProps['classes'] & {
4
+ type SelectControlClasses = SelectBaseProps<boolean>['classes'] & {
5
5
  container?: string;
6
6
  message?: string;
7
7
  };
8
- type SelectControlProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = UseControllerProps<TFieldValues, TName> & SelectBaseProps & {
8
+ type SelectControlProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = UseControllerProps<TFieldValues, TName> & SelectBaseProps<boolean> & {
9
9
  /**
10
10
  * Контрол объект для управления полем
11
11
  */
@@ -22,6 +22,10 @@ type SelectControlProps<TFieldValues extends FieldValues = FieldValues, TName ex
22
22
  * Размер контейнера для поля
23
23
  */
24
24
  size?: TFieldContainerConfig['size'];
25
+ /**
26
+ * Функция для управления возвращаемым значением
27
+ */
28
+ returnValue?: (option: SelectItemOption) => string;
25
29
  };
26
30
  declare const InnerComponent: <TFieldValues extends FieldValues = FieldValues>({ control, classes, name, rules, shouldUnregister, disabled, defaultValue, returnValue, options, helperText, size, ...props }: SelectControlProps<TFieldValues>) => import("react/jsx-runtime").JSX.Element;
27
31
  export declare const SelectControl: typeof InnerComponent;
@@ -1,3 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { IDadataProps } from './types';
3
+ /**
4
+ * @deprecated For better performance use `Controlled.DadataAddress` instead.
5
+ */
3
6
  export declare const DadataAddress: <T extends FieldValues>({ ...props }: IDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { IDadataProps } from './types';
3
+ /**
4
+ * @deprecated For better performance use `Controlled.DadataAuto` instead.
5
+ */
3
6
  export declare const DadataAuto: <T extends FieldValues>({ ...props }: IDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { IDadataProps } from './types';
3
+ /**
4
+ * @deprecated For better performance use `Controlled.DadataCountry` instead.
5
+ */
3
6
  export declare const DadataCountry: <T extends FieldValues>({ ...props }: IDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { IDadataProps } from './types';
3
+ /**
4
+ * @deprecated For better performance use `Controlled.DadataFio` instead.
5
+ */
3
6
  export declare const DadataFio: <T extends FieldValues>({ ...props }: IDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { IDadataProps } from './types';
3
+ /**
4
+ * @deprecated For better performance use `Controlled.DadataOrganization` instead.
5
+ */
3
6
  export declare const DadataOrganization: <T extends FieldValues>({ ...props }: IDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -23,4 +23,7 @@ export interface IAutocompleteDadataProps<T extends FieldValues> extends TCommon
23
23
  customChangeInput?: (...args: unknown[]) => void;
24
24
  customChangeOption?: (...args: unknown[]) => void;
25
25
  }
26
+ /**
27
+ * @deprecated For better performance use `Controlled.AutocompleteControl` instead.
28
+ */
26
29
  export declare const AutocompleteDadata: <T extends FieldValues>({ dadataType, dadataBaseUrl, label, helperText, control, disabled, size, classes, badge, withValidateIcons, icon, onClickIcon, onKeyDownIcon, customChangeInput, customChangeOption, ...props }: IAutocompleteDadataProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { IDadataAutoOption, IDadataCacheOption, IDadataCountryOption, TDadataReturn, TDadataSuggestionType, TDadataType } from './types';
2
+ export type IDadataOptions<T> = IDadataCountryOption[] | IDadataAutoOption[] | IDadataCacheOption<T>[];
2
3
  export declare const getDataByDadataType: <T>(dadataType: TDadataType, data: TDadataReturn<T>) => IDadataCountryOption[] | IDadataAutoOption[] | IDadataCacheOption<T>[];
3
4
  export declare const getOptionsByDadataType: <T>(dadataType: TDadataType, suggestions: TDadataSuggestionType<T>) => {
4
5
  value: string;
@@ -0,0 +1,25 @@
1
+ import { SelectBaseProps, SelectItemOption } from '..';
2
+ import { UseQueryResult } from '@tanstack/react-query';
3
+ export interface AutocompleteBaseProps<TData> extends Omit<SelectBaseProps<boolean>, 'options' | 'inputValue' | 'onInputChange' | 'isSearchable' | 'isMulti' | 'value' | 'onChange'> {
4
+ /**
5
+ * Запрос который должен получать options (пишем на tanstack/query)
6
+ */
7
+ query: (query: string) => UseQueryResult<TData[]>;
8
+ /**
9
+ * Позволяет форматировать данные
10
+ */
11
+ formatter: (item: TData, index: number, array: TData[]) => SelectItemOption;
12
+ /**
13
+ * Позволяет управлять выходным значением
14
+ */
15
+ returnValue?: (value: SelectItemOption) => string;
16
+ /**
17
+ * Значение инпута
18
+ */
19
+ value?: string;
20
+ /**
21
+ * Handler инпута
22
+ */
23
+ onChange?: (value: string) => void;
24
+ }
25
+ export declare const AutocompleteBase: <TData>({ formatter, query, value, returnValue, onChange, ...props }: AutocompleteBaseProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { AutocompleteBase, type AutocompleteBaseProps } from './Autocomplete';
@@ -3,6 +3,7 @@ export type { MaskInputProps } from './maskInput';
3
3
  export type { SelectBaseProps, SelectItemOption } from './select';
4
4
  export type { CheckboxBaseProps, CheckedState } from './checkbox';
5
5
  export type { SwitchBaseProps } from './switch';
6
+ export type { AutocompleteBaseProps } from './autocomplete';
6
7
  export type { RadioGroupBaseProps, RadioOption } from './radio';
7
8
  export declare const Uncontrolled: {
8
9
  InputBase: import('react').ForwardRefExoticComponent<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "size" | "placeholder"> & {
@@ -16,6 +17,7 @@ export declare const Uncontrolled: {
16
17
  attachmentProps?: import('../../../types').DeepPartial<import('../ui').IFieldAttachmentProps>;
17
18
  renderValues?: () => React.JSX.Element | null;
18
19
  } & import('react').RefAttributes<HTMLInputElement>>;
20
+ AutocompleteBase: <TData>({ formatter, query, value, returnValue, onChange, ...props }: import('./autocomplete').AutocompleteBaseProps<TData>) => import("react/jsx-runtime").JSX.Element;
19
21
  MaskInput: import('react').ForwardRefExoticComponent<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "size" | "placeholder"> & {
20
22
  classes?: {
21
23
  container?: string;
@@ -30,19 +32,20 @@ export declare const Uncontrolled: {
30
32
  mask: "datetime" | "email" | "numeric" | "currency" | "decimal" | "integer" | "percentage" | "url" | "ip" | "mac" | "ssn" | "brl-currency" | "cpf" | "cnpj" | (string & {}) | (string[] & {}) | null;
31
33
  externalMaskDefinitions?: Record<string, import('./maskInput/MaskInput').Definition>;
32
34
  } & import('react').RefAttributes<HTMLInputElement>>;
33
- SelectBase: import('react').ForwardRefExoticComponent<Omit<import('react-select').Props<import('./select').SelectItemOption, boolean>, "options" | "defaultValue" | "placeholder" | "isSearchable"> & Pick<import('./input').InputBaseProps, "invalid" | "label" | "attachmentProps"> & {
35
+ SelectBase: import('react').ForwardRefExoticComponent<Omit<import('@headlessui/react').ComboboxProps<import('./select').SelectItemOption, boolean, "li">, "onChange" | "className" | "multiple" | "by" | "virtual"> & {
36
+ label: string;
37
+ isMulti: boolean;
38
+ invalid?: boolean;
34
39
  isSearchable?: boolean;
35
- returnValue?: (option: import('./select').SelectItemOption) => string;
36
- displayValue?: (option: import('./select').SelectItemOption) => string;
37
- classes?: {
38
- container?: string;
39
- control?: import('./select/ui').ControlClasses;
40
- option?: import('./select/ui').SelectItemClasses;
41
- list?: import('./select/ui').SelectListClasses;
42
- };
43
40
  options: import('./select').SelectItemOption[];
44
- filterOptionDisabled?: boolean;
45
- } & import('react').RefAttributes<import('node_modules/react-select/dist/declarations/src/Select').default<import('./select').SelectItemOption, boolean, import('react-select').GroupBase<import('./select').SelectItemOption>>>>;
41
+ classes?: import('./select/Select').SelectClasses;
42
+ displayValue?: (option: import('./select').SelectItemOption) => string;
43
+ onChange?: ((value: import('./select').SelectItemOption | import('./select').SelectItemOption[] | undefined) => void) | undefined;
44
+ onInputChange?: (value: string) => void;
45
+ inputValue?: string;
46
+ attachmentProps?: import('../../../types').DeepPartial<import('../ui').IFieldAttachmentProps>;
47
+ filterDisabled?: boolean;
48
+ } & import('react').RefAttributes<HTMLElement>>;
46
49
  CheckboxBase: import('react').ForwardRefExoticComponent<import('@radix-ui/react-checkbox').CheckboxProps & {
47
50
  classes?: {
48
51
  root?: string;
@@ -1,62 +1,111 @@
1
- import { Props } from 'react-select';
2
- import { ControlClasses, SelectItemClasses, SelectItemOption, SelectListClasses } from './ui';
3
- import { InputBaseProps } from '../../..';
4
- type SelectClasses = {
5
- container?: string;
6
- control?: ControlClasses;
7
- option?: SelectItemClasses;
8
- list?: SelectListClasses;
1
+ import { ComboboxProps } from '@headlessui/react';
2
+ import { SelectItemOption } from './model';
3
+ import { SelectItemProps } from './ui';
4
+ import { DeepPartial } from '../../../../types';
5
+ import { FieldAttachment } from '../../ui';
6
+ type FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>;
7
+ export type SelectClasses = SelectItemProps['classes'] & {
8
+ root?: string;
9
+ list?: string;
9
10
  };
10
- export type SelectBaseProps<IsMulti extends boolean = boolean> = Omit<Props<SelectItemOption, IsMulti>, 'placeholder' | 'options' | 'defaultValue' | 'isSearchable'> & Pick<InputBaseProps, 'attachmentProps' | 'label' | 'invalid'> & {
11
+ export type SelectBaseProps<Multi extends boolean> = Omit<ComboboxProps<SelectItemOption, Multi, 'li'>, 'multiple' | 'onChange' | 'by' | 'virtual' | 'className'> & {
12
+ /**
13
+ * Отображаемый лейбл
14
+ */
15
+ label: string;
16
+ /**
17
+ * Поддержка множественного выбора
18
+ */
19
+ isMulti: Multi;
20
+ /**
21
+ * Пометить поле как не валидное
22
+ */
23
+ invalid?: boolean;
11
24
  /**
12
25
  * Свойство управляющее поиском
13
26
  */
14
27
  isSearchable?: boolean;
15
28
  /**
16
- * Функция для управления возвращаемым значением
29
+ * Список отображаемых значений
30
+ */
31
+ options: SelectItemOption[];
32
+ /**
33
+ * Дополнительные стили каждого внутреннего элемента
17
34
  */
18
- returnValue?: (option: SelectItemOption) => string;
35
+ classes?: SelectClasses;
19
36
  /**
20
37
  * Функция для управления отображаемым значением
21
38
  */
22
39
  displayValue?: (option: SelectItemOption) => string;
23
40
  /**
24
- * Дополнительные стили каждого внутреннего элемента
41
+ * Функция для изменения значения
25
42
  */
26
- classes?: SelectClasses;
43
+ onChange?: (value: (Multi extends true ? SelectItemOption[] : SelectItemOption) | undefined) => void;
27
44
  /**
28
- * Список отображаемых значений
45
+ * Функция для изменения значения поиска
29
46
  */
30
- options: SelectItemOption[];
47
+ onInputChange?: (value: string) => void;
48
+ /**
49
+ * Значение инпута
50
+ */
51
+ inputValue?: string;
52
+ /**
53
+ * Свойства дополнительной иконки
54
+ */
55
+ attachmentProps?: DeepPartial<FieldAttachmentProps>;
31
56
  /**
32
- * Свойство для выключения фильтрации элементов по поиску
57
+ * Свойство для выключении фильтрации по поиску
33
58
  */
34
- filterOptionDisabled?: boolean;
59
+ filterDisabled?: boolean;
35
60
  };
36
- export declare const SelectBase: import('react').ForwardRefExoticComponent<Omit<Props<SelectItemOption, boolean>, "options" | "defaultValue" | "placeholder" | "isSearchable"> & Pick<InputBaseProps, "invalid" | "label" | "attachmentProps"> & {
61
+ export declare const SelectBase: import('react').ForwardRefExoticComponent<Omit<ComboboxProps<SelectItemOption, boolean, "li">, "onChange" | "className" | "multiple" | "by" | "virtual"> & {
62
+ /**
63
+ * Отображаемый лейбл
64
+ */
65
+ label: string;
66
+ /**
67
+ * Поддержка множественного выбора
68
+ */
69
+ isMulti: boolean;
70
+ /**
71
+ * Пометить поле как не валидное
72
+ */
73
+ invalid?: boolean;
37
74
  /**
38
75
  * Свойство управляющее поиском
39
76
  */
40
77
  isSearchable?: boolean;
41
78
  /**
42
- * Функция для управления возвращаемым значением
79
+ * Список отображаемых значений
80
+ */
81
+ options: SelectItemOption[];
82
+ /**
83
+ * Дополнительные стили каждого внутреннего элемента
43
84
  */
44
- returnValue?: (option: SelectItemOption) => string;
85
+ classes?: SelectClasses;
45
86
  /**
46
87
  * Функция для управления отображаемым значением
47
88
  */
48
89
  displayValue?: (option: SelectItemOption) => string;
49
90
  /**
50
- * Дополнительные стили каждого внутреннего элемента
91
+ * Функция для изменения значения
51
92
  */
52
- classes?: SelectClasses;
93
+ onChange?: ((value: SelectItemOption | SelectItemOption[] | undefined) => void) | undefined;
53
94
  /**
54
- * Список отображаемых значений
95
+ * Функция для изменения значения поиска
55
96
  */
56
- options: SelectItemOption[];
97
+ onInputChange?: (value: string) => void;
98
+ /**
99
+ * Значение инпута
100
+ */
101
+ inputValue?: string;
102
+ /**
103
+ * Свойства дополнительной иконки
104
+ */
105
+ attachmentProps?: DeepPartial<FieldAttachmentProps>;
57
106
  /**
58
- * Свойство для выключения фильтрации элементов по поиску
107
+ * Свойство для выключении фильтрации по поиску
59
108
  */
60
- filterOptionDisabled?: boolean;
61
- } & import('react').RefAttributes<import('node_modules/react-select/dist/declarations/src/Select').default<SelectItemOption, boolean, import('react-select').GroupBase<SelectItemOption>>>>;
109
+ filterDisabled?: boolean;
110
+ } & import('react').RefAttributes<HTMLElement>>;
62
111
  export {};
@@ -0,0 +1,20 @@
1
+ import { SelectItemOption } from '../model';
2
+ type UseSelectControllerProps = {
3
+ options: SelectItemOption[];
4
+ isMulti?: boolean;
5
+ isSearchable?: boolean;
6
+ displayValue?: (option: SelectItemOption) => string;
7
+ onChange?: (value: SelectItemOption | SelectItemOption[] | undefined) => void;
8
+ filterDisabled: boolean;
9
+ externalInputValue?: string;
10
+ externalOnInputChange?: (value: string) => void;
11
+ };
12
+ export declare const useSelectController: ({ options: initialOptions, displayValue, isSearchable, onChange, filterDisabled, externalInputValue, externalOnInputChange }: UseSelectControllerProps) => {
13
+ options: SelectItemOption[];
14
+ inputValue: string;
15
+ onInputValueChange: import('react').ChangeEventHandler<HTMLInputElement>;
16
+ onValueChange: (value: SelectItemOption | SelectItemOption[] | null) => void;
17
+ onDeleteItem: (values: SelectItemOption | SelectItemOption[], option: SelectItemOption) => void;
18
+ selectDisplayValue: (value: SelectItemOption | SelectItemOption[] | null) => string | undefined;
19
+ };
20
+ export {};
@@ -1,2 +1,2 @@
1
1
  export { SelectBase, type SelectBaseProps } from './Select';
2
- export type { SelectItemOption } from './ui';
2
+ export type { SelectItemOption } from './model';
@@ -0,0 +1 @@
1
+ export type * from './types';
@@ -0,0 +1,14 @@
1
+ import { DeepPartial } from '../../../../../types';
2
+ import { FieldAttachment } from '../../../ui';
3
+ type FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>;
4
+ export type SelectItemOption = {
5
+ value: string;
6
+ label: string;
7
+ helperText?: string;
8
+ disabled?: boolean;
9
+ attachment?: {
10
+ left?: DeepPartial<FieldAttachmentProps>;
11
+ right?: DeepPartial<FieldAttachmentProps>;
12
+ };
13
+ };
14
+ export {};
@@ -1,4 +1,4 @@
1
- import { SelectItemOption } from '../../../../../..';
1
+ import { SelectItemOption } from '../model';
2
2
  type ControlChipClasses = {
3
3
  chip?: string;
4
4
  };