@s_mart/form 11.0.1 → 16.0.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.
- package/dist/checkbox/checkbox.d.ts +3 -0
- package/dist/checkbox/checkbox.types.d.ts +28 -0
- package/dist/components/fieldError/fieldError.d.ts +4 -0
- package/dist/components/fieldError/fieldError.types.d.ts +6 -0
- package/dist/components/fieldError/index.d.ts +2 -0
- package/dist/components/fieldInfo/fieldInfo.d.ts +3 -0
- package/dist/components/fieldInfo/fieldInfo.types.d.ts +3 -0
- package/dist/components/fieldInfo/index.d.ts +2 -0
- package/dist/components/fieldLabel/fieldLabel.d.ts +3 -0
- package/dist/components/fieldLabel/fieldLabel.types.d.ts +5 -0
- package/dist/components/fieldLabel/index.d.ts +2 -0
- package/dist/creatableV2/creatableV2.d.ts +4 -0
- package/dist/creatableV2/creatableV2.styles.d.ts +1 -0
- package/dist/creatableV2/creatableV2.types.d.ts +71 -0
- package/dist/datePicker/datePicker.d.ts +3 -0
- package/dist/datePicker/datePicker.styles.d.ts +1 -0
- package/dist/datePicker/datePicker.types.d.ts +33 -0
- package/dist/form/form.d.ts +22 -0
- package/dist/form/form.types.d.ts +20 -0
- package/dist/form/formProvider.d.ts +4 -0
- package/dist/form/useForm.d.ts +6 -0
- package/dist/formComponentPrecisaDeControl.d.ts +3 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.mjs +828 -15
- package/dist/index.mjs.map +1 -0
- package/dist/radio/radioButton/radioButton.d.ts +3 -0
- package/dist/radio/radioButton/radioButton.types.d.ts +19 -0
- package/dist/radio/radioGroup/radioGroup.d.ts +3 -0
- package/dist/radio/radioGroup/radioGroup.types.d.ts +44 -0
- package/dist/searchableV2/searchableV2.d.ts +3 -0
- package/dist/searchableV2/searchableV2.types.d.ts +51 -0
- package/dist/selectV2/selectV2.d.ts +4 -0
- package/dist/selectV2/selectV2.types.d.ts +68 -0
- package/dist/selectV2/selectV2RenderValue.d.ts +3 -0
- package/dist/slider/slider.d.ts +3 -0
- package/dist/slider/slider.types.d.ts +20 -0
- package/dist/switch/switch.d.ts +3 -0
- package/dist/switch/switch.types.d.ts +28 -0
- package/dist/textField/textField.d.ts +3 -0
- package/dist/textField/textField.types.d.ts +43 -0
- package/dist/timePicker/timePicker.d.ts +3 -0
- package/dist/timePicker/timePicker.styles.d.ts +1 -0
- package/dist/timePicker/timePicker.types.d.ts +33 -0
- package/dist/utils/erroFieldFormatado.d.ts +2 -0
- package/dist/utils/typedMemo.d.ts +1 -0
- package/package.json +48 -48
- package/dist/index.d.mts +0 -523
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { CheckboxProps } from './checkbox.types';
|
|
2
|
+
declare const _default: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, labelPlacement, required, disableIconError, onChange: onChangeProp, ...rest }: CheckboxProps) => import("react").JSX.Element;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CheckboxProps as CheckboxPropsMui } from '@mui/material';
|
|
2
|
+
import { UseControllerProps } from 'react-hook-form';
|
|
3
|
+
export type CheckboxProps = CheckboxPropsMui & UseControllerProps & {
|
|
4
|
+
/**
|
|
5
|
+
* O nome do checkbox que será renderizado na tela
|
|
6
|
+
* @default ''
|
|
7
|
+
* @example 'Nome do checkbox'
|
|
8
|
+
* @type string
|
|
9
|
+
* @memberof CheckboxProps
|
|
10
|
+
*/
|
|
11
|
+
label?: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Posição do label em relação ao checkbox
|
|
14
|
+
* @default 'end'
|
|
15
|
+
* @type 'start' | 'end' | 'top' | 'bottom'
|
|
16
|
+
* @example
|
|
17
|
+
* <Checkbox label="Checkbox" labelPlacement="start" />
|
|
18
|
+
*/
|
|
19
|
+
labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
|
|
20
|
+
/**
|
|
21
|
+
* Desabilita o ícone de erro da validação do campo.
|
|
22
|
+
* @default false
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <TextField disableIconError />
|
|
26
|
+
*/
|
|
27
|
+
disableIconError?: boolean;
|
|
28
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FieldPath, FieldValues } from 'react-hook-form';
|
|
2
|
+
import { FieldErrorProps } from './fieldError.types';
|
|
3
|
+
declare const FieldError: <TFieldValues extends FieldValues = FieldValues, TFieldNames extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, disableIcon, control, }: FieldErrorProps<TFieldValues, TFieldNames>) => import("react").JSX.Element | null;
|
|
4
|
+
export default FieldError;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Control, FieldPath, FieldValues } from 'react-hook-form';
|
|
2
|
+
export type FieldErrorProps<TFieldValues extends FieldValues = FieldValues, TFieldNames extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
|
3
|
+
name: TFieldNames;
|
|
4
|
+
disableIcon?: boolean;
|
|
5
|
+
control: Control<TFieldValues>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreatableV2Props } from './creatableV2.types';
|
|
2
|
+
declare function CreatableV2<FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined>(props: CreatableV2Props<FieldValue, Multiple, DisableClearable, FreeSolo>): import("react").JSX.Element;
|
|
3
|
+
declare const _default: typeof CreatableV2;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SDivAutoComplete: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { WithRequired } from '@s_mart/typed';
|
|
2
|
+
import { AutocompleteProps, AutocompleteValue, AutocompleteValueOrFreeSoloValueMapping, TextFieldProps } from '@mui/material';
|
|
3
|
+
import { UseControllerProps } from 'react-hook-form';
|
|
4
|
+
export type CreatableV2Props<FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> = WithRequired<Omit<AutocompleteProps<FieldValue, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'options' | 'size' | 'onInputChange' | 'onChange' | 'defaultValue' | 'value'>, 'getOptionKey' | 'getOptionLabel'> & UseControllerProps & {
|
|
5
|
+
options: FieldValue[];
|
|
6
|
+
slotProps?: AutocompleteProps<FieldValue, Multiple, DisableClearable, FreeSolo>['slotProps'] & Partial<{
|
|
7
|
+
textField: Omit<TextFieldProps<'outlined'>, 'variant'>;
|
|
8
|
+
}>;
|
|
9
|
+
label?: React.ReactNode;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Define se mostra o botão para criar uma nova opção
|
|
13
|
+
* @default true
|
|
14
|
+
* @type {boolean}
|
|
15
|
+
* @memberof CreatableV2Props
|
|
16
|
+
*/
|
|
17
|
+
showCreatableButton?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Define se mostra o botão para editar uma opção existente
|
|
20
|
+
* Só é possível utilizar se a prop `multiple` for `false | undefined`
|
|
21
|
+
* @default false
|
|
22
|
+
* @type {boolean}
|
|
23
|
+
* @memberof CreatableV2Props
|
|
24
|
+
*/
|
|
25
|
+
showEditableButton?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Função que será executada quando o usuário clicar no botão de criar uma nova opção
|
|
28
|
+
* @default undefined
|
|
29
|
+
* @type {(value: string) => void}
|
|
30
|
+
* @memberof CreatableV2Props
|
|
31
|
+
*/
|
|
32
|
+
onCreateOption?: (value: string) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Função que será executada quando o usuário clicar no botão de editar uma opção
|
|
35
|
+
* Só é possível utilizar se a prop `multiple` for `false | undefined`
|
|
36
|
+
* Só é possível editar se o valor for um Objeto
|
|
37
|
+
*
|
|
38
|
+
* @default undefined
|
|
39
|
+
* @type {(value: FieldValue) => Promise<void> | void}
|
|
40
|
+
* @memberof CreatableV2Props
|
|
41
|
+
*/
|
|
42
|
+
onEditOption?: (value: NonNullable<AutocompleteValue<FieldValue, Multiple, false, false>>) => Promise<void> | void;
|
|
43
|
+
/**
|
|
44
|
+
* Componente que renderiza no footer do searchable (opcional)
|
|
45
|
+
* @example
|
|
46
|
+
* footer: (
|
|
47
|
+
* <Button onClick={handleClick}>Mostrar mais...</Button>
|
|
48
|
+
* )
|
|
49
|
+
*/
|
|
50
|
+
footer?: () => React.ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* É o conteúdo passado para a tooltip que renderizará ao lado da label do campo,
|
|
53
|
+
* montada à tela como um ícone de informação.
|
|
54
|
+
*/
|
|
55
|
+
info?: React.ReactNode;
|
|
56
|
+
onInputChange?: (value: string) => void;
|
|
57
|
+
onChange?: (value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> | (DisableClearable extends true ? never : null)) => void;
|
|
58
|
+
placeholder?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Componente renderizado embaixo da option da listagem
|
|
61
|
+
*/
|
|
62
|
+
getOptionAfterLabel?: (option: FieldValue) => string | React.ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* Usado para montar a label do valor selecionado no campo
|
|
65
|
+
*
|
|
66
|
+
* Funciona apenas junto com `getOptionAfterLabel`
|
|
67
|
+
*
|
|
68
|
+
* Quando não informado é usado o `getOptionLabel`
|
|
69
|
+
*/
|
|
70
|
+
getInputValueLabel?: (option: AutocompleteValueOrFreeSoloValueMapping<FieldValue, FreeSolo>) => string;
|
|
71
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { DatePickerProps } from './datePicker.types';
|
|
2
|
+
declare const _default: ({ rules, name, defaultValue, shouldUnregister, control: controlFromProps, label, required, disabled, disableIconError, size, ...rest }: DatePickerProps) => import("react").JSX.Element;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SIconButton: import('@emotion/styled').StyledComponent<import('@mui/material').IconButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, keyof import('@mui/material').IconButtonOwnProps> & Omit<import('@mui/material').ButtonBaseOwnProps, "type" | "tabIndex" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "nativeButton" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | keyof import('@mui/material').IconButtonOwnProps> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "type" | "disabled" | "size" | "classes" | "className" | "style" | "children" | "sx" | "tabIndex" | "color" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "nativeButton" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { TextFieldProps } from '@mui/material';
|
|
2
|
+
import { DatePickerProps as DatePickerPropsMui } from '@mui/x-date-pickers';
|
|
3
|
+
import { UseControllerProps } from 'react-hook-form';
|
|
4
|
+
export type DatePickerProps = DatePickerPropsMui & UseControllerProps & {
|
|
5
|
+
/**
|
|
6
|
+
* Se `true` irá adicionar um asterisco ao label do campo
|
|
7
|
+
*
|
|
8
|
+
* @default false
|
|
9
|
+
*/
|
|
10
|
+
required?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Se `true` irá desabilitar o campo e não será possível interagir com ele
|
|
13
|
+
*
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Desabilita o ícone de erro da validação do campo.
|
|
19
|
+
* @default false
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <TextField disableIconError />
|
|
23
|
+
*/
|
|
24
|
+
disableIconError?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Define o tamanho do campo.
|
|
27
|
+
* @default 'medium'
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* <DatePicker size='small' />
|
|
31
|
+
*/
|
|
32
|
+
size?: TextFieldProps['size'];
|
|
33
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JSX } from 'react';
|
|
2
|
+
import { FieldValues } from 'react-hook-form';
|
|
3
|
+
import { IFormProps } from './form.types';
|
|
4
|
+
/**
|
|
5
|
+
* Utilizado overloading para poder passar uma tipagem para o Componente
|
|
6
|
+
* @example
|
|
7
|
+
* // Não passar uma tipagem, todas as props terão o funcionamento normal, sem tipagem
|
|
8
|
+
* <Form onSubmit={({email}) => {}}>
|
|
9
|
+
* ...
|
|
10
|
+
* </Form>
|
|
11
|
+
* @example
|
|
12
|
+
* // Passar uma tipagem, todas as props derivadas do react-hook-form terão a tipagem passada no generic
|
|
13
|
+
* type Cadastro = {
|
|
14
|
+
* email: string;
|
|
15
|
+
* }
|
|
16
|
+
* <Form<Cadastro> onSubmit={({email}) => {}}>
|
|
17
|
+
* ...
|
|
18
|
+
* </Form>
|
|
19
|
+
*/
|
|
20
|
+
declare function Form(props: IFormProps<any>): JSX.Element;
|
|
21
|
+
declare function Form<T extends FieldValues>(props: IFormProps<T>): JSX.Element;
|
|
22
|
+
export default Form;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FieldValues, FormProviderProps, UseFormProps, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export interface IFormProps<T extends FieldValues> extends IUseFormProps<T> {
|
|
4
|
+
children: ((methods: UseFormReturn<T> & {
|
|
5
|
+
onSubmit: (e?: React.FormEvent | undefined) => Promise<void>;
|
|
6
|
+
}) => React.ReactNode) | React.ReactNode;
|
|
7
|
+
style?: React.HTMLAttributes<HTMLFormElement>['style'];
|
|
8
|
+
}
|
|
9
|
+
export interface IFormProviderProps<TFieldValues extends FieldValues> extends FormProviderProps<TFieldValues> {
|
|
10
|
+
style?: React.HTMLAttributes<HTMLFormElement>['style'];
|
|
11
|
+
onSubmit: (e?: React.BaseSyntheticEvent) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface IUseFormProps<TValues extends FieldValues> extends Omit<UseFormProps<TValues>, 'resolver'> {
|
|
14
|
+
onSubmit: (data: TValues, methods: UseFormReturn<TValues>) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Prop que faz com que o formulário não atualize ao mudar o defaultValue
|
|
17
|
+
*/
|
|
18
|
+
disableDefaultValuesUpdate?: boolean;
|
|
19
|
+
schema?: z.ZodObject<any> | z.ZodEffects<z.ZodObject<any>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FieldValues } from 'react-hook-form';
|
|
2
|
+
import { IFormProviderProps } from './form.types';
|
|
3
|
+
declare function FormProvider<TFieldValues extends FieldValues>({ children, style, onSubmit, ...methods }: IFormProviderProps<TFieldValues>): import("react").JSX.Element;
|
|
4
|
+
export default FormProvider;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FieldValues, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
import { IUseFormProps } from './form.types';
|
|
3
|
+
declare const useForm: <TValues extends FieldValues>({ disableDefaultValuesUpdate, onSubmit, ...rest }: IUseFormProps<TValues>) => UseFormReturn<TValues> & {
|
|
4
|
+
onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export default useForm;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { default as Checkbox } from './checkbox/checkbox';
|
|
2
|
+
export type { CheckboxProps } from './checkbox/checkbox.types';
|
|
3
|
+
export { default as CreatableV2 } from './creatableV2/creatableV2';
|
|
4
|
+
export type { CreatableV2Props } from './creatableV2/creatableV2.types';
|
|
5
|
+
export { default as DatePicker } from './datePicker/datePicker';
|
|
6
|
+
export type { DatePickerProps } from './datePicker/datePicker.types';
|
|
7
|
+
export { default as FieldLabel } from './components/fieldLabel/fieldLabel';
|
|
8
|
+
export type { FieldLabelProps } from './components/fieldLabel/fieldLabel.types';
|
|
9
|
+
export { default as FieldError } from './components/fieldError/fieldError';
|
|
10
|
+
export type { FieldErrorProps } from './components/fieldError/fieldError.types';
|
|
11
|
+
export { default as FieldInfo } from './components/fieldInfo/fieldInfo';
|
|
12
|
+
export type { FieldInfoProps } from './components/fieldInfo/fieldInfo.types';
|
|
13
|
+
export { default as Form } from './form/form';
|
|
14
|
+
export { default as useForm } from './form/useForm';
|
|
15
|
+
export { default as FormProvider } from './form/formProvider';
|
|
16
|
+
export type { IFormProps, IFormProviderProps, IUseFormProps } from './form/form.types';
|
|
17
|
+
export { default as RadioGroup } from './radio/radioGroup/radioGroup';
|
|
18
|
+
export type { RadioGroupProps } from './radio/radioGroup/radioGroup.types';
|
|
19
|
+
export { default as RadioButton } from './radio/radioButton/radioButton';
|
|
20
|
+
export type { RadioProps } from './radio/radioButton/radioButton.types';
|
|
21
|
+
export { default as SearchableV2 } from './searchableV2/searchableV2';
|
|
22
|
+
export type { SearchableV2Props } from './searchableV2/searchableV2.types';
|
|
23
|
+
export { default as SelectV2 } from './selectV2/selectV2';
|
|
24
|
+
export type { SelectV2Props, FooterPropsV2, SelectV2ReturnValueProps } from './selectV2/selectV2.types';
|
|
25
|
+
export { default as Slider } from './slider/slider';
|
|
26
|
+
export type { SliderProps } from './slider/slider.types';
|
|
27
|
+
export { default as Switch } from './switch/switch';
|
|
28
|
+
export type { SwitchProps } from './switch/switch.types';
|
|
29
|
+
export { default as TextField } from './textField/textField';
|
|
30
|
+
export type { TextFieldProps, Masks } from './textField/textField.types';
|
|
31
|
+
export { default as TimePicker } from './timePicker/timePicker';
|
|
32
|
+
export type { TimePickerProps } from './timePicker/timePicker.types';
|