@availity/mui-controlled-form 1.2.10 → 1.3.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.3.1](https://github.com/Availity/element/compare/@availity/mui-controlled-form@1.3.0...@availity/mui-controlled-form@1.3.1) (2025-04-30)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `mui-button` updated to version `1.3.0`
10
+ * `mui-menu` updated to version `1.3.0`
11
+ * `mui-autocomplete` updated to version `1.3.0`
12
+ * `mui-checkbox` updated to version `1.3.0`
13
+ * `mui-datepicker` updated to version `1.3.0`
14
+ * `mui-form-utils` updated to version `1.3.0`
15
+ * `mui-textfield` updated to version `1.3.0`
16
+ * `theme-provider` updated to version `1.3.0`
17
+ ## [1.3.0](https://github.com/Availity/element/compare/@availity/mui-controlled-form@1.2.10...@availity/mui-controlled-form@1.3.0) (2025-04-28)
18
+
19
+ ### Dependency Updates
20
+
21
+ * `mui-autocomplete` updated to version `1.2.10`
22
+ * `mui-datepicker` updated to version `1.2.10`
23
+ * `mui-form-utils` updated to version `1.2.10`
24
+ * `mui-textfield` updated to version `1.2.10`
25
+
26
+ ### Features
27
+
28
+ * **mui-controlled-form:** add transform prop to parse and format values ([2485a93](https://github.com/Availity/element/commit/2485a93e6b97fc4a492baa2786ae16e9a8b81eea))
29
+
5
30
  ## [1.2.10](https://github.com/Availity/element/compare/@availity/mui-controlled-form@1.2.9...@availity/mui-controlled-form@1.2.10) (2025-04-24)
6
31
 
7
32
  ### Dependency Updates
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as _mui_material from '@mui/material';
2
3
  import { AutocompleteProps, AsyncAutocompleteProps, Code, Organization, Provider } from '@availity/mui-autocomplete';
3
4
  import { RegisterOptions, FieldValues, ControllerProps as ControllerProps$1 } from 'react-hook-form';
4
5
  export { FormProvider, SubmitHandler, UseFormProps, UseFormReturn, useForm, useFormContext } from 'react-hook-form';
@@ -6,11 +7,12 @@ import { ChipTypeMap } from '@mui/material/Chip';
6
7
  import { CheckboxProps } from '@availity/mui-checkbox';
7
8
  import { ApiConfig } from '@availity/api-axios';
8
9
  import { DatepickerProps } from '@availity/mui-datepicker';
10
+ import { Dayjs } from 'dayjs';
9
11
  import { InputProps, RadioGroupProps, FormControlProps, SelectProps } from '@availity/mui-form-utils';
10
12
  import { TextFieldProps } from '@availity/mui-textfield';
11
13
 
12
- type ControlledAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
13
- declare const ControlledAutocomplete: <T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div">({ name, FieldProps, defaultValue, rules, onBlur, onChange, shouldUnregister, value, ...rest }: ControlledAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>) => react_jsx_runtime.JSX.Element;
14
+ type ControlledAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> = Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null, Output>;
15
+ declare const ControlledAutocomplete: <T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<T, Multiple, DisableClearable, FreeSolo> | null | undefined>({ name, FieldProps, defaultValue, rules, onBlur, onChange, shouldUnregister, value, transform, ...rest }: ControlledAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
14
16
 
15
17
  type ControllerProps = {
16
18
  /** Unique name of your input */
@@ -30,57 +32,70 @@ type ControllerProps = {
30
32
  /** Input will be unregistered after unmount and defaultValues will be removed as well. */
31
33
  shouldUnregister?: ControllerProps$1['shouldUnregister'];
32
34
  };
35
+ type TransformProp<Input = string, Output = string> = {
36
+ /** Object containing functions to parse the input value and format the output value. Useful for converting values from API responses to display values and back.
37
+ * - `input`: Function to transform the value from the underlying data to the input value.
38
+ * - `output`: Function to transform the value from the input to the underlying data.
39
+ *
40
+ * Example: The input always expects a dayjs object, but your endpoint expects and returns a string:
41
+ * `{ input: (value) => value ? dayjs(value) : null, output: (value) => value.format('YYYY-MM-DD') }`
42
+ */
43
+ transform?: {
44
+ input?: (value: Output) => Input;
45
+ output?: (value: Input) => Output;
46
+ };
47
+ };
33
48
 
34
- type ControlledAsyncAutocompleteProps<Option, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = {
49
+ type ControlledAsyncAutocompleteProps<Option, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> = {
35
50
  defaultToFirstOption?: boolean;
36
51
  defaultToOnlyOption?: boolean;
37
- } & Omit<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
38
- declare const ControlledAsyncAutocomplete: <Option, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div">({ name, onBlur, onChange, rules, shouldUnregister, value, FieldProps, defaultToFirstOption, defaultToOnlyOption, ...rest }: ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>) => react_jsx_runtime.JSX.Element;
52
+ } & Omit<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null, Output>;
53
+ declare const ControlledAsyncAutocomplete: <Option, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ name, onBlur, onChange, rules, shouldUnregister, value, FieldProps, defaultToFirstOption, defaultToOnlyOption, transform, ...rest }: ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
39
54
 
40
- type ControlledCheckboxProps = Omit<CheckboxProps, 'disabled' | 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'disabled' | 'onBlur' | 'onChange' | 'value'> & ControllerProps;
41
- declare const ControlledCheckbox: ({ name, disabled, onChange, onBlur, value, defaultValue, rules, shouldUnregister, ...rest }: ControlledCheckboxProps) => react_jsx_runtime.JSX.Element;
55
+ type ControlledCheckboxProps<Output = boolean> = Omit<CheckboxProps, 'disabled' | 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'disabled' | 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<boolean, Output>;
56
+ declare const ControlledCheckbox: <Output = boolean>({ name, disabled, onChange, onBlur, value, defaultValue, rules, shouldUnregister, transform, ...rest }: ControlledCheckboxProps<Output>) => react_jsx_runtime.JSX.Element;
42
57
 
43
58
  type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
44
59
 
45
- interface ControlledCodesAutocompleteProps<Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
60
+ interface ControlledCodesAutocompleteProps<Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
46
61
  /** The code list id. */
47
62
  list: string;
48
63
  /** Config passed to the AvCodesApi.query function */
49
64
  apiConfig?: ApiConfig;
50
65
  }
51
- declare const ControlledCodesAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, apiConfig, queryOptions, queryKey, list, watchParams, ...rest }: ControlledCodesAutocompleteProps) => react_jsx_runtime.JSX.Element;
66
+ declare const ControlledCodesAutocomplete: <Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ apiConfig, queryOptions, queryKey, list, watchParams, ...rest }: ControlledCodesAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
52
67
 
53
- type ControlledDatepickerProps = Omit<DatepickerProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
54
- declare const ControlledDatepicker: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, ...rest }: ControlledDatepickerProps) => react_jsx_runtime.JSX.Element;
68
+ type ControlledDatepickerProps<Output = Dayjs | null> = Omit<DatepickerProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<Dayjs | null, Output>;
69
+ declare const ControlledDatepicker: <Output = Dayjs | null>({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, transform, ...rest }: ControlledDatepickerProps<Output>) => react_jsx_runtime.JSX.Element;
55
70
 
56
- type ControlledInputProps = Omit<InputProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
57
- declare const ControlledInput: ({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledInputProps) => react_jsx_runtime.JSX.Element;
71
+ type ControlledInputProps<Output = string> = Omit<InputProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output>;
72
+ declare const ControlledInput: <Output = string>({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledInputProps<Output>) => react_jsx_runtime.JSX.Element;
58
73
 
59
- interface ControlledOrgAutocompleteProps<Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
74
+ interface ControlledOrgAutocompleteProps<Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
60
75
  /** Axios ApiConfig */
61
76
  apiConfig?: ApiConfig;
62
77
  }
63
- declare const ControlledOrganizationAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, queryKey, apiConfig, ...rest }: ControlledOrgAutocompleteProps) => react_jsx_runtime.JSX.Element;
78
+ declare const ControlledOrganizationAutocomplete: <Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ queryKey, apiConfig, ...rest }: ControlledOrgAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
64
79
 
65
- interface ControlledProviderAutocompleteProps<Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
80
+ interface ControlledProviderAutocompleteProps<Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
66
81
  /** Customer ID of the Organization you are requesting the providers for */
67
82
  customerId: string;
68
83
  /** Config passed to the AvProvidersApi.getProviders function */
69
84
  apiConfig?: ApiConfig;
70
85
  }
71
- declare const ControlledProviderAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, apiConfig, customerId, queryKey, ...rest }: ControlledProviderAutocompleteProps) => react_jsx_runtime.JSX.Element;
86
+ declare const ControlledProviderAutocomplete: <Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ apiConfig, customerId, queryKey, ...rest }: ControlledProviderAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
72
87
 
73
- type ControlledRadioGroupProps = {
88
+ type ControlledRadioGroupProps<Output = string> = {
74
89
  name: string;
75
90
  label: string;
76
91
  helperText?: string;
77
- } & Omit<RadioGroupProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & Pick<FormControlProps, 'required'>;
78
- declare const ControlledRadioGroup: ({ name, helperText, label, defaultValue, onBlur, onChange, required, rules, shouldUnregister, value, ...rest }: ControlledRadioGroupProps) => react_jsx_runtime.JSX.Element;
92
+ } & Omit<RadioGroupProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output> & Pick<FormControlProps, 'required'>;
93
+ declare const ControlledRadioGroup: <Output = string>({ name, helperText, label, defaultValue, onBlur, onChange, required, rules, shouldUnregister, value, transform, ...rest }: ControlledRadioGroupProps<Output>) => react_jsx_runtime.JSX.Element;
79
94
 
80
- type ControlledSelectProps = Omit<SelectProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
81
- declare const ControlledSelect: ({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledSelectProps) => react_jsx_runtime.JSX.Element;
95
+ type ControlledSelectProps<Output = string, Input = unknown> = Omit<SelectProps<Input>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<Input, Output>;
96
+ declare const ControlledSelect: <Output = string, Input = unknown>({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledSelectProps<Output, Input>) => react_jsx_runtime.JSX.Element;
82
97
 
83
- type ControlledTextFieldProps = Omit<TextFieldProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
84
- declare const ControlledTextField: ({ name, defaultValue, disabled, helperText, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledTextFieldProps) => react_jsx_runtime.JSX.Element;
98
+ type ControlledTextFieldProps<Output = string> = Omit<TextFieldProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output>;
99
+ declare const ControlledTextField: <Output = string>({ name, defaultValue, disabled, helperText, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledTextFieldProps<Output>) => react_jsx_runtime.JSX.Element;
85
100
 
86
101
  export { ControlledAsyncAutocomplete, type ControlledAsyncAutocompleteProps, ControlledAutocomplete, type ControlledAutocompleteProps, ControlledCheckbox, type ControlledCheckboxProps, ControlledCodesAutocomplete, type ControlledCodesAutocompleteProps, ControlledDatepicker, type ControlledDatepickerProps, ControlledInput, type ControlledInputProps, type ControlledOrgAutocompleteProps, ControlledOrganizationAutocomplete, ControlledProviderAutocomplete, type ControlledProviderAutocompleteProps, ControlledRadioGroup, type ControlledRadioGroupProps, ControlledSelect, type ControlledSelectProps, ControlledTextField, type ControlledTextFieldProps };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as _mui_material from '@mui/material';
2
3
  import { AutocompleteProps, AsyncAutocompleteProps, Code, Organization, Provider } from '@availity/mui-autocomplete';
3
4
  import { RegisterOptions, FieldValues, ControllerProps as ControllerProps$1 } from 'react-hook-form';
4
5
  export { FormProvider, SubmitHandler, UseFormProps, UseFormReturn, useForm, useFormContext } from 'react-hook-form';
@@ -6,11 +7,12 @@ import { ChipTypeMap } from '@mui/material/Chip';
6
7
  import { CheckboxProps } from '@availity/mui-checkbox';
7
8
  import { ApiConfig } from '@availity/api-axios';
8
9
  import { DatepickerProps } from '@availity/mui-datepicker';
10
+ import { Dayjs } from 'dayjs';
9
11
  import { InputProps, RadioGroupProps, FormControlProps, SelectProps } from '@availity/mui-form-utils';
10
12
  import { TextFieldProps } from '@availity/mui-textfield';
11
13
 
12
- type ControlledAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
13
- declare const ControlledAutocomplete: <T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div">({ name, FieldProps, defaultValue, rules, onBlur, onChange, shouldUnregister, value, ...rest }: ControlledAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>) => react_jsx_runtime.JSX.Element;
14
+ type ControlledAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> = Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null, Output>;
15
+ declare const ControlledAutocomplete: <T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<T, Multiple, DisableClearable, FreeSolo> | null | undefined>({ name, FieldProps, defaultValue, rules, onBlur, onChange, shouldUnregister, value, transform, ...rest }: ControlledAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
14
16
 
15
17
  type ControllerProps = {
16
18
  /** Unique name of your input */
@@ -30,57 +32,70 @@ type ControllerProps = {
30
32
  /** Input will be unregistered after unmount and defaultValues will be removed as well. */
31
33
  shouldUnregister?: ControllerProps$1['shouldUnregister'];
32
34
  };
35
+ type TransformProp<Input = string, Output = string> = {
36
+ /** Object containing functions to parse the input value and format the output value. Useful for converting values from API responses to display values and back.
37
+ * - `input`: Function to transform the value from the underlying data to the input value.
38
+ * - `output`: Function to transform the value from the input to the underlying data.
39
+ *
40
+ * Example: The input always expects a dayjs object, but your endpoint expects and returns a string:
41
+ * `{ input: (value) => value ? dayjs(value) : null, output: (value) => value.format('YYYY-MM-DD') }`
42
+ */
43
+ transform?: {
44
+ input?: (value: Output) => Input;
45
+ output?: (value: Input) => Output;
46
+ };
47
+ };
33
48
 
34
- type ControlledAsyncAutocompleteProps<Option, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = {
49
+ type ControlledAsyncAutocompleteProps<Option, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> = {
35
50
  defaultToFirstOption?: boolean;
36
51
  defaultToOnlyOption?: boolean;
37
- } & Omit<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
38
- declare const ControlledAsyncAutocomplete: <Option, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div">({ name, onBlur, onChange, rules, shouldUnregister, value, FieldProps, defaultToFirstOption, defaultToOnlyOption, ...rest }: ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>) => react_jsx_runtime.JSX.Element;
52
+ } & Omit<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null, Output>;
53
+ declare const ControlledAsyncAutocomplete: <Option, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ name, onBlur, onChange, rules, shouldUnregister, value, FieldProps, defaultToFirstOption, defaultToOnlyOption, transform, ...rest }: ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
39
54
 
40
- type ControlledCheckboxProps = Omit<CheckboxProps, 'disabled' | 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'disabled' | 'onBlur' | 'onChange' | 'value'> & ControllerProps;
41
- declare const ControlledCheckbox: ({ name, disabled, onChange, onBlur, value, defaultValue, rules, shouldUnregister, ...rest }: ControlledCheckboxProps) => react_jsx_runtime.JSX.Element;
55
+ type ControlledCheckboxProps<Output = boolean> = Omit<CheckboxProps, 'disabled' | 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'disabled' | 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<boolean, Output>;
56
+ declare const ControlledCheckbox: <Output = boolean>({ name, disabled, onChange, onBlur, value, defaultValue, rules, shouldUnregister, transform, ...rest }: ControlledCheckboxProps<Output>) => react_jsx_runtime.JSX.Element;
42
57
 
43
58
  type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
44
59
 
45
- interface ControlledCodesAutocompleteProps<Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
60
+ interface ControlledCodesAutocompleteProps<Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
46
61
  /** The code list id. */
47
62
  list: string;
48
63
  /** Config passed to the AvCodesApi.query function */
49
64
  apiConfig?: ApiConfig;
50
65
  }
51
- declare const ControlledCodesAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, apiConfig, queryOptions, queryKey, list, watchParams, ...rest }: ControlledCodesAutocompleteProps) => react_jsx_runtime.JSX.Element;
66
+ declare const ControlledCodesAutocomplete: <Option = Code, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ apiConfig, queryOptions, queryKey, list, watchParams, ...rest }: ControlledCodesAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
52
67
 
53
- type ControlledDatepickerProps = Omit<DatepickerProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
54
- declare const ControlledDatepicker: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, ...rest }: ControlledDatepickerProps) => react_jsx_runtime.JSX.Element;
68
+ type ControlledDatepickerProps<Output = Dayjs | null> = Omit<DatepickerProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<Dayjs | null, Output>;
69
+ declare const ControlledDatepicker: <Output = Dayjs | null>({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, transform, ...rest }: ControlledDatepickerProps<Output>) => react_jsx_runtime.JSX.Element;
55
70
 
56
- type ControlledInputProps = Omit<InputProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
57
- declare const ControlledInput: ({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledInputProps) => react_jsx_runtime.JSX.Element;
71
+ type ControlledInputProps<Output = string> = Omit<InputProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output>;
72
+ declare const ControlledInput: <Output = string>({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledInputProps<Output>) => react_jsx_runtime.JSX.Element;
58
73
 
59
- interface ControlledOrgAutocompleteProps<Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
74
+ interface ControlledOrgAutocompleteProps<Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
60
75
  /** Axios ApiConfig */
61
76
  apiConfig?: ApiConfig;
62
77
  }
63
- declare const ControlledOrganizationAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, queryKey, apiConfig, ...rest }: ControlledOrgAutocompleteProps) => react_jsx_runtime.JSX.Element;
78
+ declare const ControlledOrganizationAutocomplete: <Option = Organization, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ queryKey, apiConfig, ...rest }: ControlledOrgAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
64
79
 
65
- interface ControlledProviderAutocompleteProps<Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>, 'queryKey'>, 'loadOptions'> {
80
+ interface ControlledProviderAutocompleteProps<Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], Output = AsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent>['value'] | null> extends Omit<Optional<ControlledAsyncAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>, 'queryKey'>, 'loadOptions'> {
66
81
  /** Customer ID of the Organization you are requesting the providers for */
67
82
  customerId: string;
68
83
  /** Config passed to the AvProvidersApi.getProviders function */
69
84
  apiConfig?: ApiConfig;
70
85
  }
71
- declare const ControlledProviderAutocomplete: ({ name, defaultValue, onBlur, onChange, rules, shouldUnregister, value, FieldProps, apiConfig, customerId, queryKey, ...rest }: ControlledProviderAutocompleteProps) => react_jsx_runtime.JSX.Element;
86
+ declare const ControlledProviderAutocomplete: <Option = Provider, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false, ChipComponent extends React.ElementType = "div", Output = _mui_material.AutocompleteValue<Option, Multiple, DisableClearable, FreeSolo> | null | undefined>({ apiConfig, customerId, queryKey, ...rest }: ControlledProviderAutocompleteProps<Option, Multiple, DisableClearable, FreeSolo, ChipComponent, Output>) => react_jsx_runtime.JSX.Element;
72
87
 
73
- type ControlledRadioGroupProps = {
88
+ type ControlledRadioGroupProps<Output = string> = {
74
89
  name: string;
75
90
  label: string;
76
91
  helperText?: string;
77
- } & Omit<RadioGroupProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & Pick<FormControlProps, 'required'>;
78
- declare const ControlledRadioGroup: ({ name, helperText, label, defaultValue, onBlur, onChange, required, rules, shouldUnregister, value, ...rest }: ControlledRadioGroupProps) => react_jsx_runtime.JSX.Element;
92
+ } & Omit<RadioGroupProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output> & Pick<FormControlProps, 'required'>;
93
+ declare const ControlledRadioGroup: <Output = string>({ name, helperText, label, defaultValue, onBlur, onChange, required, rules, shouldUnregister, value, transform, ...rest }: ControlledRadioGroupProps<Output>) => react_jsx_runtime.JSX.Element;
79
94
 
80
- type ControlledSelectProps = Omit<SelectProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
81
- declare const ControlledSelect: ({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledSelectProps) => react_jsx_runtime.JSX.Element;
95
+ type ControlledSelectProps<Output = string, Input = unknown> = Omit<SelectProps<Input>, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<Input, Output>;
96
+ declare const ControlledSelect: <Output = string, Input = unknown>({ name, defaultValue, disabled, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledSelectProps<Output, Input>) => react_jsx_runtime.JSX.Element;
82
97
 
83
- type ControlledTextFieldProps = Omit<TextFieldProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps;
84
- declare const ControlledTextField: ({ name, defaultValue, disabled, helperText, onBlur, onChange, rules, shouldUnregister, value, ...rest }: ControlledTextFieldProps) => react_jsx_runtime.JSX.Element;
98
+ type ControlledTextFieldProps<Output = string> = Omit<TextFieldProps, 'onBlur' | 'onChange' | 'value' | 'name'> & Pick<RegisterOptions<FieldValues, string>, 'onBlur' | 'onChange' | 'value'> & ControllerProps & TransformProp<string, Output>;
99
+ declare const ControlledTextField: <Output = string>({ name, defaultValue, disabled, helperText, onBlur, onChange, rules, shouldUnregister, value, transform, ...rest }: ControlledTextFieldProps<Output>) => react_jsx_runtime.JSX.Element;
85
100
 
86
101
  export { ControlledAsyncAutocomplete, type ControlledAsyncAutocompleteProps, ControlledAutocomplete, type ControlledAutocompleteProps, ControlledCheckbox, type ControlledCheckboxProps, ControlledCodesAutocomplete, type ControlledCodesAutocompleteProps, ControlledDatepicker, type ControlledDatepickerProps, ControlledInput, type ControlledInputProps, type ControlledOrgAutocompleteProps, ControlledOrganizationAutocomplete, ControlledProviderAutocomplete, type ControlledProviderAutocompleteProps, ControlledRadioGroup, type ControlledRadioGroupProps, ControlledSelect, type ControlledSelectProps, ControlledTextField, type ControlledTextFieldProps };