@s_mart/form 11.0.2 → 16.1.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 (47) hide show
  1. package/dist/checkbox/checkbox.d.ts +3 -0
  2. package/dist/checkbox/checkbox.types.d.ts +28 -0
  3. package/dist/components/fieldError/fieldError.d.ts +4 -0
  4. package/dist/components/fieldError/fieldError.types.d.ts +6 -0
  5. package/dist/components/fieldError/index.d.ts +2 -0
  6. package/dist/components/fieldInfo/fieldInfo.d.ts +3 -0
  7. package/dist/components/fieldInfo/fieldInfo.types.d.ts +3 -0
  8. package/dist/components/fieldInfo/index.d.ts +2 -0
  9. package/dist/components/fieldLabel/fieldLabel.d.ts +3 -0
  10. package/dist/components/fieldLabel/fieldLabel.types.d.ts +5 -0
  11. package/dist/components/fieldLabel/index.d.ts +2 -0
  12. package/dist/creatable/creatable.d.ts +4 -0
  13. package/dist/creatable/creatable.styles.d.ts +1 -0
  14. package/dist/creatable/creatable.types.d.ts +71 -0
  15. package/dist/datePicker/datePicker.d.ts +3 -0
  16. package/dist/datePicker/datePicker.styles.d.ts +1 -0
  17. package/dist/datePicker/datePicker.types.d.ts +33 -0
  18. package/dist/form/form.d.ts +22 -0
  19. package/dist/form/form.types.d.ts +20 -0
  20. package/dist/form/formProvider.d.ts +4 -0
  21. package/dist/form/useForm.d.ts +6 -0
  22. package/dist/formComponentPrecisaDeControl.d.ts +3 -0
  23. package/dist/index.d.ts +32 -0
  24. package/dist/index.mjs +828 -15
  25. package/dist/index.mjs.map +1 -0
  26. package/dist/radio/radioButton/radioButton.d.ts +3 -0
  27. package/dist/radio/radioButton/radioButton.types.d.ts +19 -0
  28. package/dist/radio/radioGroup/radioGroup.d.ts +3 -0
  29. package/dist/radio/radioGroup/radioGroup.types.d.ts +44 -0
  30. package/dist/searchable/searchable.d.ts +3 -0
  31. package/dist/searchable/searchable.types.d.ts +51 -0
  32. package/dist/select/select.d.ts +4 -0
  33. package/dist/select/select.types.d.ts +68 -0
  34. package/dist/select/selectRenderValue.d.ts +3 -0
  35. package/dist/slider/slider.d.ts +3 -0
  36. package/dist/slider/slider.types.d.ts +20 -0
  37. package/dist/switch/switch.d.ts +3 -0
  38. package/dist/switch/switch.types.d.ts +28 -0
  39. package/dist/textField/textField.d.ts +3 -0
  40. package/dist/textField/textField.types.d.ts +43 -0
  41. package/dist/timePicker/timePicker.d.ts +3 -0
  42. package/dist/timePicker/timePicker.styles.d.ts +1 -0
  43. package/dist/timePicker/timePicker.types.d.ts +33 -0
  44. package/dist/utils/erroFieldFormatado.d.ts +2 -0
  45. package/dist/utils/typedMemo.d.ts +1 -0
  46. package/package.json +48 -48
  47. 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,2 @@
1
+ export { default as FieldError } from './fieldError';
2
+ export type { FieldErrorProps } from './fieldError.types';
@@ -0,0 +1,3 @@
1
+ import { FieldInfoProps } from './fieldInfo.types';
2
+ declare const FieldInfo: ({ title }: FieldInfoProps) => import("react").JSX.Element;
3
+ export default FieldInfo;
@@ -0,0 +1,3 @@
1
+ export type FieldInfoProps = {
2
+ title: React.ReactNode;
3
+ };
@@ -0,0 +1,2 @@
1
+ export { default as FieldInfo } from './fieldInfo';
2
+ export type { FieldInfoProps } from './fieldInfo.types';
@@ -0,0 +1,3 @@
1
+ import { FieldLabelProps } from './fieldLabel.types';
2
+ declare const FieldLabel: ({ label, required, regular }: FieldLabelProps) => import("react").JSX.Element;
3
+ export default FieldLabel;
@@ -0,0 +1,5 @@
1
+ export type FieldLabelProps = {
2
+ label: React.ReactNode;
3
+ required?: boolean;
4
+ regular?: boolean;
5
+ };
@@ -0,0 +1,2 @@
1
+ export { default as FieldLabel } from './fieldLabel';
2
+ export type { FieldLabelProps } from './fieldLabel.types';
@@ -0,0 +1,4 @@
1
+ import { CreatableProps } from './creatable.types';
2
+ declare function Creatable<FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined>(props: CreatableProps<FieldValue, Multiple, DisableClearable, FreeSolo>): import("react").JSX.Element;
3
+ declare const _default: typeof Creatable;
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 CreatableProps<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 CreatableProps
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 CreatableProps
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 CreatableProps
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 CreatableProps
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;
@@ -0,0 +1,3 @@
1
+ export declare class FormComponentPrecisaDeControl extends Error {
2
+ constructor(componentName: string);
3
+ }
@@ -0,0 +1,32 @@
1
+ export { default as Checkbox } from './checkbox/checkbox';
2
+ export type { CheckboxProps } from './checkbox/checkbox.types';
3
+ export { default as FieldError } from './components/fieldError/fieldError';
4
+ export type { FieldErrorProps } from './components/fieldError/fieldError.types';
5
+ export { default as FieldInfo } from './components/fieldInfo/fieldInfo';
6
+ export type { FieldInfoProps } from './components/fieldInfo/fieldInfo.types';
7
+ export { default as FieldLabel } from './components/fieldLabel/fieldLabel';
8
+ export type { FieldLabelProps } from './components/fieldLabel/fieldLabel.types';
9
+ export { default as Creatable } from './creatable/creatable';
10
+ export type { CreatableProps } from './creatable/creatable.types';
11
+ export { default as DatePicker } from './datePicker/datePicker';
12
+ export type { DatePickerProps } from './datePicker/datePicker.types';
13
+ export { default as Form } from './form/form';
14
+ export type { IFormProps, IFormProviderProps, IUseFormProps } from './form/form.types';
15
+ export { default as FormProvider } from './form/formProvider';
16
+ export { default as useForm } from './form/useForm';
17
+ export { default as RadioButton } from './radio/radioButton/radioButton';
18
+ export type { RadioProps } from './radio/radioButton/radioButton.types';
19
+ export { default as RadioGroup } from './radio/radioGroup/radioGroup';
20
+ export type { RadioGroupProps } from './radio/radioGroup/radioGroup.types';
21
+ export { default as Searchable } from './searchable/searchable';
22
+ export type { SearchableProps } from './searchable/searchable.types';
23
+ export { default as Select } from './select/select';
24
+ export type { FooterProps, SelectProps, SelectReturnValueProps } from './select/select.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 { Masks, TextFieldProps } from './textField/textField.types';
31
+ export { default as TimePicker } from './timePicker/timePicker';
32
+ export type { TimePickerProps } from './timePicker/timePicker.types';