@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 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/utils/erroFieldFormatado.ts","../src/components/fieldError/fieldError.tsx","../src/components/fieldLabel/fieldLabel.tsx","../src/formComponentPrecisaDeControl.ts","../src/utils/typedMemo.ts","../src/checkbox/checkbox.tsx","../src/components/fieldInfo/fieldInfo.tsx","../src/creatable/creatable.styles.ts","../src/creatable/creatable.tsx","../src/datePicker/datePicker.styles.ts","../src/datePicker/datePicker.tsx","../src/form/formProvider.tsx","../src/form/useForm.ts","../src/form/form.tsx","../src/radio/radioButton/radioButton.tsx","../src/radio/radioGroup/radioGroup.tsx","../src/searchable/searchable.tsx","../src/select/selectRenderValue.tsx","../src/select/select.tsx","../src/slider/slider.tsx","../src/switch/switch.tsx","../src/textField/textField.tsx","../src/timePicker/timePicker.styles.ts","../src/timePicker/timePicker.tsx"],"sourcesContent":["import type { FieldErrors, FieldValues } from 'react-hook-form';\n\nexport const erroFieldFormatado = (errors: FieldErrors<FieldValues>, name: string) => {\n const path = name.replace(/[[\\]]/g, '').split('.');\n\n return path.reduce((obj: Record<string, any>, key) => obj?.[key], errors);\n};\n","import { Indicator } from '@s_mart/core';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\nimport { useFormState } from 'react-hook-form';\nimport { erroFieldFormatado } from '../../utils/erroFieldFormatado';\nimport type { FieldErrorProps } from './fieldError.types';\n\nconst FieldError = <\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n disableIcon,\n control,\n}: FieldErrorProps<TFieldValues, TFieldNames>) => {\n const formState = useFormState<TFieldValues>({ control, name });\n\n const erro = erroFieldFormatado(formState?.errors, name);\n\n if (!erro) {\n return null;\n }\n\n return (\n <Indicator severity='error' icon={disableIcon ? false : undefined}>\n {erro?.message}\n </Indicator>\n );\n};\n\nexport default FieldError;\n","import { Typography } from '@mui/material';\nimport { toRem } from '@s_mart/utils';\nimport type { FieldLabelProps } from './fieldLabel.types';\n\nconst FieldLabel = ({ label, required, regular }: FieldLabelProps) => {\n return (\n <span style={{ display: 'flex', alignItems: 'center', gap: toRem(2) }}>\n <Typography\n variant='caption'\n style={{ display: 'flex', alignItems: 'center' }}\n sx={{\n fontWeight: regular ? 400 : 700,\n }}\n >\n {label}\n </Typography>\n {required && (\n <Typography\n variant='caption'\n color='error'\n sx={{\n fontWeight: 900,\n }}\n >\n *\n </Typography>\n )}\n </span>\n );\n};\n\nexport default FieldLabel;\n","export class FormComponentPrecisaDeControl extends Error {\n constructor(componentName: string) {\n super(\n `O componente ${componentName} precisa de um control para funcionar. Passe o control como prop ou coloque o componente dentro de um <Form />`,\n );\n this.name = 'FormComponentPrecisaDeControl';\n }\n}\n","import { memo } from 'react';\n\nexport const typedMemo: <T>(c: T) => T = memo;\n","import { type FieldPath, type FieldValues, useController, useFormContext } from 'react-hook-form';\nimport type { CheckboxProps } from './checkbox.types';\nimport { Checkbox as CheckboxMui, FormControlLabel } from '@mui/material';\nimport { FieldError } from '../components/fieldError';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { typedMemo } from '../utils/typedMemo';\n\nconst Checkbox = ({\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n labelPlacement,\n required,\n disableIconError,\n onChange: onChangeProp,\n ...rest\n}: CheckboxProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Checkbox');\n }\n\n const { field } = useController({\n control,\n name,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <span>\n <FormControlLabel\n control={\n <CheckboxMui\n key={name}\n checked={Boolean(field.value)}\n value={field.value ?? ''}\n defaultValue={field.value}\n onChange={(event, checked) => {\n field.onChange(event, checked);\n onChangeProp?.(event, checked);\n }}\n {...rest}\n />\n }\n label={<FieldLabel label={label} required={required} regular />}\n labelPlacement={labelPlacement || 'end'}\n />\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </span>\n );\n};\n\nexport default typedMemo(Checkbox);\n","import { Tooltip } from '@mui/material';\nimport { LIcon } from '@s_mart/core';\nimport { lineInfoCircle } from '@s_mart/solid-icons';\nimport type { FieldInfoProps } from './fieldInfo.types';\n\nconst FieldInfo = ({ title }: FieldInfoProps) => {\n return (\n <Tooltip title={title} placement='top'>\n <div style={{ width: 'fit-content' }}>\n <LIcon icon={lineInfoCircle} color='#757575' />\n </div>\n </Tooltip>\n );\n};\n\nexport default FieldInfo;\n","import { toRem } from '@s_mart/utils';\n\nimport { css, styled } from '@mui/material';\n\nconst flexCenter = css`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const SDivAutoComplete = styled('div')`\n display: flex;\n\n div.endAdornments {\n position: absolute;\n right: 0;\n\n ${flexCenter}\n }\n\n .MuiAutocomplete-endAdornment {\n position: relative;\n right: 0;\n }\n\n .endAdornments > .MuiAutocomplete-endAdornment {\n transform: translate(0, 0);\n }\n\n .creatable,\n .editable {\n ${flexCenter}\n\n .divider {\n width: 1px;\n height: ${toRem(20)};\n background-color: ${({ theme }) => theme.palette.grey[400]};\n }\n }\n`;\n","import {\n forwardRef,\n type KeyboardEventHandler,\n type LegacyRef,\n type MouseEventHandler,\n useCallback,\n useState,\n} from 'react';\n\nimport { LIcon } from '@s_mart/core';\nimport { linePen, linePlus } from '@s_mart/solid-icons';\nimport { colorPalette } from '@s_mart/tokens';\nimport { toRem } from '@s_mart/utils';\n\nimport {\n Autocomplete,\n type AutocompleteChangeDetails,\n type AutocompleteChangeReason,\n type AutocompleteInputChangeReason,\n type AutocompleteValue,\n Button,\n Divider,\n IconButton,\n TextField,\n} from '@mui/material';\nimport isEmpty from 'lodash-es/isEmpty';\nimport isEqual from 'lodash-es/isEqual';\nimport isObject from 'lodash-es/isObject';\nimport {\n type FieldPath,\n type FieldPathValue,\n type FieldValues,\n useController,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { FieldError } from '../components/fieldError';\nimport { FieldInfo } from '../components/fieldInfo';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport { typedMemo } from '../utils/typedMemo';\nimport { SDivAutoComplete } from './creatable.styles';\nimport type { CreatableProps } from './creatable.types';\n\nfunction Creatable<\n FieldValue,\n Multiple extends boolean | undefined = undefined,\n DisableClearable extends boolean | undefined = undefined,\n FreeSolo extends boolean | undefined = undefined,\n>(props: CreatableProps<FieldValue, Multiple, DisableClearable, FreeSolo>) {\n const {\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n options,\n footer,\n showCreatableButton = true,\n showEditableButton,\n onEditOption,\n onCreateOption,\n getOptionKey,\n getOptionLabel,\n getOptionAfterLabel,\n getInputValueLabel,\n multiple,\n info,\n noOptionsText = 'Nenhuma opção encontrada',\n onChange: onChangeProp,\n onInputChange,\n placeholder,\n ...rest\n } = props;\n\n const [curText, setCurText] = useState('');\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Creatable');\n }\n\n const formState = useFormState({ control, name });\n\n const formattedError = erroFieldFormatado(formState.errors, name);\n const hideAddButton = !showCreatableButton || rest.disabled;\n\n const { field } = useController({\n name,\n control,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n const getRootRightPadding = (\n value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>,\n ) => {\n let padding = 0;\n\n if (!props.slotProps?.textField?.slotProps?.input) padding += 2.5;\n\n if (!hideAddButton) {\n padding += 2.56;\n\n if (showEditButton(value)) padding += 2.56;\n }\n\n if (!rest.disableClearable && !rest.disabled) padding += 1.3;\n\n return `${padding}rem`;\n };\n\n const showEditButton = (\n value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>,\n ) => {\n if (rest.disabled) return false;\n\n return showEditableButton && isObject(value) && !isEmpty(value);\n };\n\n const showCreateButton = () => {\n if (rest.disabled) return false;\n\n return showCreatableButton;\n };\n\n const handleCreateOption: MouseEventHandler<HTMLButtonElement> = useCallback(() => {\n if (typeof onCreateOption !== 'undefined') {\n onCreateOption(curText);\n setCurText('');\n }\n }, [curText, onCreateOption]);\n\n const handleEditOption: MouseEventHandler<HTMLButtonElement> = useCallback(() => {\n onEditOption?.(field.value);\n }, [field.value, onEditOption]);\n\n const handleInputChange = useCallback(\n (event: React.SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => {\n if (reason === 'input') {\n setCurText(value);\n onInputChange?.(value);\n }\n },\n [onInputChange],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>,\n ) => {\n setCurText('');\n field.onChange(value);\n onChangeProp?.(value);\n },\n [field.onChange, onChangeProp],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement, Element>) => {\n rest?.onBlur?.(event);\n setCurText('');\n },\n [rest?.onBlur],\n );\n\n const fieldValue = !field.value ? (multiple ? [] : null) : field.value;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <div style={{ display: 'flex' }}>\n {label && <FieldLabel label={label} required={required} />}\n {info && <FieldInfo title={info} />}\n </div>\n <SDivAutoComplete>\n <Autocomplete<FieldValue, Multiple, DisableClearable, FreeSolo>\n key={name}\n fullWidth\n onChange={handleChange}\n onInputChange={handleInputChange}\n onBlur={handleBlur}\n slotProps={{\n ...rest.slotProps,\n\n listbox: {\n component: forwardRef(function Ul(props, ref: LegacyRef<HTMLUListElement>) {\n return (\n <>\n <ul {...props} ref={ref} />\n\n {typeof footer !== 'undefined' ? (\n <div key='creatable-footer' {...props}>\n <div style={{ paddingTop: '0.5rem', paddingBottom: '0.5rem' }}>\n <Divider />\n </div>\n {footer()}\n </div>\n ) : null}\n </>\n );\n }),\n },\n }}\n value={fieldValue}\n options={options}\n multiple={multiple}\n readOnly={rest.disabled}\n noOptionsText={\n <>\n {noOptionsText}\n {!hideAddButton && (\n <Button\n sx={{\n justifyContent: 'flex-start',\n padding: `${toRem(6)} ${toRem(-16)}`,\n margin: 0,\n }}\n fullWidth\n onClick={handleCreateOption}\n variant='text'\n startIcon={<LIcon icon={linePlus} />}\n >\n Adicionar {`\"${curText}\"`}\n </Button>\n )}\n\n {typeof footer !== 'undefined' && (\n <>\n <div style={{ paddingTop: '0.5rem', paddingBottom: '0.5rem' }}>\n <Divider />\n </div>\n {footer()}\n </>\n )}\n </>\n }\n isOptionEqualToValue={(option, value) => isEqual(option, value)}\n getOptionLabel={\n getOptionAfterLabel ? getInputValueLabel || getOptionLabel : getOptionLabel\n }\n getOptionKey={getOptionKey}\n renderOption={\n typeof getOptionAfterLabel === 'function'\n ? (props, option) => {\n const afterlabel = getOptionAfterLabel(option);\n const key = getOptionKey(option);\n return (\n <li {...props} key={key}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <span>{getOptionLabel(option)}</span>\n {typeof afterlabel === 'string' ? <span>{afterlabel}</span> : afterlabel}\n </div>\n </li>\n );\n }\n : undefined\n }\n {...rest}\n sx={{\n '& div.MuiInputBase-root': {\n paddingRight: `${getRootRightPadding(field.value)} !important`,\n },\n ...rest.sx,\n }}\n renderInput={(params) => (\n <TextField\n placeholder={placeholder}\n {...params}\n error={Boolean(formattedError)}\n {...props.slotProps?.textField}\n slotProps={{\n ...params.slotProps,\n\n input: {\n ...params.slotProps.input,\n ...props.slotProps?.textField?.slotProps?.input,\n inputRef: field.ref,\n\n endAdornment: (\n <div className='endAdornments'>\n {params.slotProps.input.endAdornment}\n\n {/* biome-ignore lint/suspicious/noExplicitAny: A tipagem do MUI não funciona com props, porém ao usar o componente, a tipagem é inferida corretamente */}\n {(props.slotProps?.textField?.slotProps?.input as Record<string, any>)\n ?.endAdornment ?? null}\n {showEditButton(field.value) ? (\n <div className='editable'>\n <div className='divider' />\n <IconButton\n size='small'\n onClick={handleEditOption}\n sx={{ mx: '3px' }}\n tabIndex={-1}\n >\n <LIcon icon={linePen} size='24px' removeMargin />\n </IconButton>\n </div>\n ) : null}\n {showCreateButton() && (\n <div className='creatable'>\n <div className='divider' />\n <IconButton\n size='small'\n onClick={handleCreateOption}\n sx={{ mx: '3px' }}\n tabIndex={-1}\n >\n <LIcon icon={linePlus} size='24px' removeMargin />\n </IconButton>\n </div>\n )}\n </div>\n ),\n },\n }}\n />\n )}\n />\n </SDivAutoComplete>\n <FieldError name={name} control={control} />\n </div>\n );\n}\n\nexport default typedMemo(Creatable);\n","import { type IconButtonProps, IconButton, styled } from '@mui/material';\nimport { toRem } from '@s_mart/utils';\n\nconst _svgSize = (size: IconButtonProps['size']) => {\n switch (size) {\n case 'small':\n return toRem(16);\n case 'large':\n return toRem(24);\n default:\n return toRem(20);\n }\n};\n\nconst _padding = (size: IconButtonProps['size']) => {\n switch (size) {\n case 'small':\n return `${toRem(2)} ${toRem(8)}`;\n case 'large':\n return `${toRem(10)}`;\n default:\n return `${toRem(6)} ${toRem(8)}`;\n }\n};\n\nexport const SIconButton = styled(IconButton)`\n margin: 0px;\n\n padding: ${({ size }) => _padding(size)};\n border-radius: 0 ${toRem(4)} ${toRem(4)} 0;\n\n svg {\n width: ${({ size }) => _svgSize(size)} !important;\n }\n`;\n","import { composeValidators, date } from '@s_mart/rules';\n\nimport { Stack } from '@mui/material';\nimport { DatePicker as DatePickerMui } from '@mui/x-date-pickers';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { ptBR } from '@mui/x-date-pickers/locales';\nimport { useController, useFormContext, useFormState } from 'react-hook-form';\n\nimport { FieldError } from '../components/fieldError';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport { typedMemo } from '../utils/typedMemo';\nimport { SIconButton } from './datePicker.styles';\nimport type { DatePickerProps } from './datePicker.types';\n\nimport 'dayjs/locale/pt-br';\n\nconst DatePicker = ({\n // RHF\n rules,\n name,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n disabled,\n disableIconError,\n size,\n ...rest\n}: DatePickerProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('DatePicker');\n }\n\n const formState = useFormState({ control, name });\n const formattedError = erroFieldFormatado(formState.errors, name);\n const dateFormat = rest?.format || 'DD/MM/YYYY';\n const newRules = rules ? composeValidators([date(dateFormat), rules as any]) : date(dateFormat);\n\n const { field } = useController({\n control,\n name,\n rules: newRules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterDayjs}\n localeText={ptBR.components.MuiLocalizationProvider.defaultProps.localeText}\n >\n <Stack>\n {label && <FieldLabel label={label} required={required} />}\n <DatePickerMui\n {...rest}\n key={name}\n value={field.value ?? null}\n format={dateFormat}\n onChange={(value, context) => {\n field.onChange(value, context);\n rest?.onChange?.(value, context);\n }}\n disabled={disabled}\n slots={{\n openPickerButton: SIconButton,\n }}\n slotProps={{\n ...rest?.slotProps,\n textField: {\n error: Boolean(formattedError),\n size,\n ...rest.slotProps?.textField,\n slotProps: {\n ...(rest.slotProps?.textField as any)?.slotProps,\n input: {\n ...(rest.slotProps?.textField as any)?.slotProps?.input,\n inputRef: field.ref,\n },\n },\n },\n }}\n />\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </Stack>\n </LocalizationProvider>\n );\n};\n\nexport default typedMemo(DatePicker);\n","import { type FieldValues, FormProvider as HookFormProvider } from 'react-hook-form';\n\nimport type { IFormProviderProps } from './form.types';\n\nfunction FormProvider<TFieldValues extends FieldValues>({\n children,\n style,\n onSubmit,\n ...methods\n}: IFormProviderProps<TFieldValues>) {\n return (\n <HookFormProvider<TFieldValues> {...methods}>\n <form\n onSubmit={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onSubmit(e);\n }}\n style={style}\n >\n {children}\n </form>\n </HookFormProvider>\n );\n}\n\nexport default FormProvider;\n","import { useEffect } from 'react';\n\nimport { type FieldValues, type Resolver, type UseFormReturn, useForm as useHookForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\n\nimport type { IUseFormProps } from './form.types';\n\nconst useForm = <TValues extends FieldValues>({\n disableDefaultValuesUpdate,\n onSubmit,\n ...rest\n}: IUseFormProps<TValues>): UseFormReturn<TValues> & { onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void> } => {\n const methods = useHookForm<TValues>({\n ...rest,\n resolver: rest.schema && (zodResolver(rest.schema) as unknown as Resolver<TValues>),\n });\n\n useEffect(() => {\n if (!disableDefaultValuesUpdate) methods.reset(rest.defaultValues as TValues);\n }, [rest.defaultValues, methods.reset]);\n\n return { ...methods, onSubmit: methods.handleSubmit((data) => onSubmit(data, methods)) };\n};\n\nexport default useForm;\n","import type { JSX } from 'react';\n\nimport type { FieldValues } from 'react-hook-form';\n\nimport type { IFormProps } from './form.types';\nimport FormProvider from './formProvider';\nimport useForm from './useForm';\n\n/**\n * Utilizado overloading para poder passar uma tipagem para o Componente\n * @example\n * // Não passar uma tipagem, todas as props terão o funcionamento normal, sem tipagem\n * <Form onSubmit={({email}) => {}}>\n * ...\n * </Form>\n * @example\n * // Passar uma tipagem, todas as props derivadas do react-hook-form terão a tipagem passada no generic\n * type Cadastro = {\n * email: string;\n * }\n * <Form<Cadastro> onSubmit={({email}) => {}}>\n * ...\n * </Form>\n */\nfunction Form(props: IFormProps<any>): JSX.Element;\nfunction Form<T extends FieldValues>(props: IFormProps<T>): JSX.Element;\n\nfunction Form<T extends FieldValues>({ children, style, ...useFormProps }: IFormProps<T>) {\n const methods = useForm<T>(useFormProps);\n\n return (\n <FormProvider {...methods} style={style}>\n {typeof children === 'function' ? children(methods) : children}\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { FormControlLabel, Grid, Radio as RadioMui } from '@mui/material';\nimport type { RadioProps } from './radioButton.types';\nimport { FieldLabel } from '../../components/fieldLabel';\n\nconst RadioButton = ({ label, labelPlacement, ...rest }: RadioProps) => {\n return (\n <Grid\n sx={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <FormControlLabel\n control={<RadioMui {...rest} />}\n label={<FieldLabel label={label} />}\n labelPlacement={labelPlacement || 'end'}\n />\n </Grid>\n );\n};\n\nexport default RadioButton;\n","import { RadioGroup as RadioGroupMui, Stack } from '@mui/material';\nimport { type FieldPath, type FieldValues, useController, useFormContext } from 'react-hook-form';\nimport { FieldError } from '../../components/fieldError';\nimport { FieldLabel } from '../../components/fieldLabel';\nimport type { RadioGroupProps } from './radioGroup.types';\nimport { FormComponentPrecisaDeControl } from '../../formComponentPrecisaDeControl';\n\nconst RadioGroup = ({\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n children,\n orientation = 'row',\n disableIconError,\n ...rest\n}: RadioGroupProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('RadioGroup');\n }\n\n const { field } = useController({\n control,\n name,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <Stack>\n {label && <FieldLabel label={label} required={required} />}\n <RadioGroupMui\n key={name}\n value={field.value || ''}\n name={name}\n {...rest}\n onChange={(e) => {\n rest?.onChange?.(e, e.target?.value);\n field.onChange(e);\n }}\n style={{\n display: 'flex',\n flexDirection: orientation,\n }}\n >\n {children}\n </RadioGroupMui>\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </Stack>\n );\n};\n\nexport default RadioGroup;\n","import { forwardRef, type LegacyRef } from 'react';\n\nimport { colorPalette } from '@s_mart/tokens';\n\nimport type { AutocompleteValue } from '@mui/material';\nimport { Autocomplete, Divider, TextField } from '@mui/material';\nimport isEqual from 'lodash-es/isEqual';\nimport {\n type FieldPath,\n type FieldPathValue,\n type FieldValues,\n useController,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { FieldError } from '../components/fieldError';\nimport { FieldInfo } from '../components/fieldInfo';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport { typedMemo } from '../utils/typedMemo';\nimport type { SearchableProps } from './searchable.types';\n\nconst Searchable = <\n FieldValue,\n Multiple extends boolean | undefined = undefined,\n DisableClearable extends boolean | undefined = undefined,\n FreeSolo extends boolean | undefined = undefined,\n>(\n props: SearchableProps<FieldValue, Multiple, DisableClearable, FreeSolo>,\n) => {\n const {\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n options,\n textFieldProps,\n noOptionsText,\n footer,\n multiple,\n info,\n placeholder,\n onChange: onChangeProp,\n onInputChange,\n getOptionAfterLabel,\n getOptionLabel,\n getInputValueLabel,\n getOptionKey,\n ...rest\n } = props;\n\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Searchable');\n }\n\n const formState = useFormState({ control, name });\n\n const formattedError = erroFieldFormatado(formState.errors, name);\n\n const { field } = useController({\n name,\n control,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n const fieldValue = !field.value ? (multiple ? [] : null) : field.value;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <div style={{ display: 'flex' }}>\n {label && <FieldLabel label={label} required={required} />}\n {info && <FieldInfo title={info} />}\n </div>\n <Autocomplete<FieldValue, Multiple, DisableClearable, FreeSolo>\n key={name}\n onChange={(_, value) => {\n field.onChange(value);\n onChangeProp?.(value);\n }}\n onInputChange={(_, value, reason) => {\n if (reason === 'input') {\n onInputChange?.(value);\n }\n }}\n value={fieldValue}\n options={options}\n multiple={multiple}\n readOnly={rest.disabled}\n slotProps={{\n ...rest.slotProps,\n\n listbox: {\n component: forwardRef(function Ul(props, ref: LegacyRef<HTMLUListElement>) {\n return (\n <>\n <ul {...props} ref={ref} />\n\n {typeof footer !== 'undefined' ? (\n <div key='searchable-footer' {...props}>\n <div style={{ paddingTop: '0.5rem', paddingBottom: '0.5rem' }}>\n <Divider />\n </div>\n {footer()}\n </div>\n ) : null}\n </>\n );\n }),\n },\n }}\n noOptionsText={\n <>\n {noOptionsText || 'Nenhuma opção encontrada'}\n {typeof footer !== 'undefined' ? (\n <>\n <div style={{ paddingTop: '0.5rem', paddingBottom: '0.5rem' }}>\n <Divider />\n </div>\n {footer()}\n </>\n ) : null}\n </>\n }\n isOptionEqualToValue={(option, value) => isEqual(option, value)}\n getOptionLabel={getOptionAfterLabel ? getInputValueLabel || getOptionLabel : getOptionLabel}\n getOptionKey={getOptionKey}\n renderOption={\n typeof getOptionAfterLabel === 'function'\n ? (props, option) => {\n const afterlabel = getOptionAfterLabel(option);\n const key = getOptionKey(option);\n return (\n <li {...props} key={key}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <span>{getOptionLabel(option)}</span>\n {typeof afterlabel === 'string' ? <span>{afterlabel}</span> : afterlabel}\n </div>\n </li>\n );\n }\n : undefined\n }\n {...rest}\n renderInput={(params) => {\n return (\n <TextField\n error={Boolean(formattedError)}\n placeholder={placeholder}\n {...params}\n {...textFieldProps}\n inputRef={field.ref}\n />\n );\n }}\n />\n <FieldError name={name} control={control} />\n </div>\n );\n};\n\nexport default typedMemo(Searchable);\n","import { colorPalette } from '@s_mart/tokens';\n\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\nimport type { SelectReturnValueProps } from './select.types';\n\nexport const SelectRenderValue = <\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n value,\n placeholder,\n getOptionLabel,\n}: SelectReturnValueProps<TFieldValues, TFieldName>) => {\n if (value === null || value?.length === 0) {\n return <p style={{ color: colorPalette.neutral[100] }}>{placeholder}</p>;\n }\n\n return getOptionLabel(value);\n};\n","import { useState } from 'react';\n\nimport { IconButton, LIcon } from '@s_mart/core';\nimport { lineTimes } from '@s_mart/regular-icons';\nimport { colorPalette } from '@s_mart/tokens';\n\nimport { Divider, MenuItem, Select as SelectMui } from '@mui/material';\nimport {\n type FieldPath,\n type FieldPathValue,\n type FieldValues,\n useController,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { FieldError } from '../components/fieldError';\nimport { FieldInfo } from '../components/fieldInfo';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport { typedMemo } from '../utils/typedMemo';\nimport type { SelectProps } from './select.types';\nimport { SelectRenderValue } from './selectRenderValue';\n\nconst Select = <FieldValue extends FieldValues | string | number>(\n props: SelectProps<FieldValue>,\n) => {\n const {\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n options,\n placeholder,\n clearable,\n info,\n footer,\n onChange: onChangeProp,\n variant = 'outlined',\n getOptionKey,\n getOptionLabel,\n getOptionAfterLabel,\n getInputValueLabel,\n getOptionIcon,\n ...rest\n } = props;\n\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n const [showSelect, setShowSelect] = useState(false);\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Select');\n }\n\n const formState = useFormState({ control, name });\n\n const formattedError = erroFieldFormatado(formState.errors, name);\n\n const { field } = useController({\n control,\n name,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <div style={{ display: 'flex' }}>\n {label && <FieldLabel label={label} required={required} />}\n {info && <FieldInfo title={info} />}\n </div>\n <SelectMui<FieldValue>\n key={name}\n open={showSelect}\n onOpen={() => setShowSelect(true)}\n onClose={() => setShowSelect(false)}\n displayEmpty={Boolean(placeholder)}\n variant={variant}\n autoComplete='off'\n value={field.value || null}\n renderValue={(value) => {\n return (\n <SelectRenderValue\n getOptionLabel={\n getOptionAfterLabel ? getInputValueLabel || getOptionLabel : getOptionLabel\n }\n placeholder={placeholder}\n value={value}\n />\n );\n }}\n onChange={(e) => {\n field.onChange(e.target.value);\n onChangeProp?.(e.target.value as FieldValue);\n }}\n error={Boolean(formattedError)}\n size={rest.size || 'medium'}\n inputRef={field.ref}\n {...rest}\n endAdornment={\n <>\n {rest.endAdornment}\n\n {Boolean(clearable && field.value) && (\n <IconButton\n variant='text'\n color='neutral'\n size='small'\n sx={{ borderRadius: '50%', position: 'absolute', right: '2rem' }}\n style={{ padding: 0 }}\n aria-label='Limpar'\n title='Limpar'\n onClick={() => {\n field.onChange(null);\n onChangeProp?.(null);\n }}\n >\n <LIcon\n icon={lineTimes}\n color={colorPalette.neutral[100]}\n size='25px'\n removeMargin\n />\n </IconButton>\n )}\n </>\n }\n >\n {options.map((option) => {\n const key = getOptionKey(option);\n const label = getOptionLabel(option);\n const icon = getOptionIcon?.(option);\n return (\n <MenuItem key={key} value={option as any}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n {icon !== undefined ? (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {icon}\n {label}\n </div>\n ) : (\n label\n )}\n <span>{getOptionAfterLabel?.(option) ?? null}</span>\n </div>\n </MenuItem>\n );\n })}\n {footer !== undefined && (\n <div key='footer'>\n <div key='footer-divider' style={{ padding: '8px 16px' }}>\n <Divider />\n </div>\n <div key='footer-content'>{footer({ closeSelect: () => setShowSelect(false) })}</div>\n </div>\n )}\n </SelectMui>\n <FieldError name={name} control={control} />\n </div>\n );\n};\n\nexport default typedMemo(Select);\n","import { type FieldPath, type FieldValues, useController, useFormContext } from 'react-hook-form';\nimport type { SliderProps } from './slider.types';\nimport { Slider as SliderMui } from '@mui/material';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\n\nconst Slider = ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, ...rest }: SliderProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Slider');\n }\n\n const { field } = useController({\n control,\n name,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <SliderMui\n key={name}\n value={field.value || rest?.min || 0}\n onChange={field.onChange}\n valueLabelDisplay='auto'\n {...rest}\n />\n );\n};\n\nexport default Slider;\n","import { FormControlLabel, Stack, Switch as SwitchMui } from '@mui/material';\nimport { useController, useFormContext } from 'react-hook-form';\nimport { FieldError } from '../components/fieldError';\nimport { FieldLabel } from '../components/fieldLabel';\nimport type { SwitchProps } from './switch.types';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { typedMemo } from '../utils/typedMemo';\nimport { useCallback } from 'react';\n\nconst Switch = ({\n // RHF\n name,\n rules,\n defaultValue,\n defaultChecked,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n labelPlacement = 'end',\n disableIconError,\n onChange: onChangeProp,\n ...rest\n}: SwitchProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('Switch');\n }\n\n const { field } = useController<Record<string, boolean>>({\n control,\n name,\n rules,\n defaultValue: defaultChecked ?? defaultValue ?? false,\n shouldUnregister,\n });\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>, checked: boolean) => {\n field.onChange(checked);\n onChangeProp?.(event, checked);\n },\n [field, onChangeProp],\n );\n\n return (\n <Stack>\n <FormControlLabel\n control={<SwitchMui {...rest} {...field} checked={Boolean(field.value)} onChange={handleChange} />}\n label={<FieldLabel label={label} />}\n labelPlacement={labelPlacement}\n />\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </Stack>\n );\n};\n\nexport default Switch;\n","import { Grid, InputAdornment, Stack, TextField as TextFieldMui, Tooltip } from '@mui/material';\nimport { LIcon } from '@s_mart/core';\nimport * as masks from '@s_mart/masks';\nimport { lineEye, lineEyeSlash, lineInfoCircle } from '@s_mart/solid-icons';\nimport { useRef, useState } from 'react';\nimport { type FieldPath, type FieldValues, useController, useFormContext, useFormState } from 'react-hook-form';\nimport { FieldError } from '../components/fieldError';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport type { TextFieldProps } from './textField.types';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { typedMemo } from '../utils/typedMemo';\n\nconst TextField = ({\n // RHF\n name,\n rules,\n defaultValue,\n shouldUnregister,\n control: controlFromProps,\n // Component Props\n label,\n required,\n mask,\n variant = 'outlined',\n info,\n parse,\n format,\n onInputChange,\n disableIconError,\n ...rest\n}: TextFieldProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n const previousValue = useRef<string | undefined>(defaultValue || undefined);\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('TextField');\n }\n\n const [showPassword, setShowPassword] = useState(false);\n\n const _handleFormat = (value: string) => {\n let _value = value;\n\n _value = format?.(value) ?? value;\n\n if (mask) {\n return masks?.[mask]?.format(_value);\n }\n\n return _value;\n };\n\n const handleParse = (value: string) => {\n let _value = value;\n\n _value = parse?.(value) ?? _value;\n\n if (mask) {\n return masks?.[mask]?.parse(_value, previousValue.current);\n }\n return _value;\n };\n\n const onKeyDown = (event?: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>): void => {\n if (!event) return;\n\n if (mask !== 'porcentagem' && mask !== 'porcentagem0') {\n return;\n }\n\n event?.stopPropagation();\n\n const value = (event?.target as HTMLInputElement).value;\n\n if (value) {\n const str = String(value);\n\n if (str.length > 0) {\n const percentIndex = str.indexOf('%');\n\n if (percentIndex > -1) {\n event.currentTarget.selectionEnd = percentIndex;\n }\n }\n }\n };\n\n const { field } = useController({\n control,\n name,\n rules,\n defaultValue,\n shouldUnregister,\n });\n\n const formState = useFormState({ control, name });\n\n const formattedError = erroFieldFormatado(formState.errors, name);\n\n return (\n <Stack>\n <div style={{ display: 'flex' }}>\n {label && (\n <div>\n <FieldLabel label={label} required={required} />\n </div>\n )}\n {info && (\n <div>\n <Tooltip title={info} placement='top'>\n <div style={{ width: 'fit-content' }}>\n <LIcon icon={lineInfoCircle} color='#757575' />\n </div>\n </Tooltip>\n </div>\n )}\n </div>\n <TextFieldMui\n key={name}\n variant={variant}\n defaultValue={defaultValue}\n // biome-ignore lint/suspicious/noDoubleEquals: Comparamos com != pois pode ser que o valor seja '0' ou 0\n value={_handleFormat(field.value || (field.value != 0 ? '' : field.value))}\n onChange={(e) => {\n const parsedValue = handleParse(e?.target?.value);\n field.onChange(parsedValue);\n onInputChange?.(parsedValue);\n\n previousValue.current = e.target.value;\n }}\n error={Boolean(formattedError)}\n {...rest}\n type={rest.type === 'password' ? (showPassword ? 'text' : 'password') : rest.type}\n autoComplete={rest.autoComplete || 'off'}\n slotProps={{\n ...rest.slotProps,\n input: {\n onKeyDown,\n inputRef: field.ref,\n endAdornment: rest.type === 'password' && (\n <InputAdornment\n position='start'\n onClick={() => setShowPassword(!showPassword)}\n style={{ cursor: 'pointer' }}\n >\n <LIcon icon={showPassword ? lineEye : lineEyeSlash} size='24px' removeMargin />\n </InputAdornment>\n ),\n ...rest.slotProps?.input,\n },\n }}\n />\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </Stack>\n );\n};\n\nexport default typedMemo(TextField);\n","import { type BaseTextFieldProps, type IconButtonProps, styled } from '@mui/material';\nimport { IconButton } from '@mui/material';\n\nimport { toRem } from '@s_mart/utils';\n\nconst _svgSize = (size: IconButtonProps['size']) => {\n switch (size) {\n case 'small':\n return toRem(16);\n case 'large':\n return toRem(24);\n default:\n return toRem(20);\n }\n};\n\nconst _padding = (size: IconButtonProps['size']) => {\n switch (size) {\n case 'small':\n return `${toRem(2)} ${toRem(8)}`;\n case 'large':\n return toRem(10);\n default:\n return `${toRem(6)} ${toRem(8)}`;\n }\n};\n\nexport const SIconButton = styled(IconButton)`\n margin: 0px;\n\n padding: ${({ size }) => _padding(size)};\n border-radius: 0 ${toRem(4)} ${toRem(4)} 0;\n\n svg {\n width: ${({ size }) => _svgSize(size)} !important;\n }\n`;\n","import { composeValidators, time } from '@s_mart/rules';\n\nimport { Stack } from '@mui/material';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { TimePicker as TimePickerMui } from '@mui/x-date-pickers/TimePicker';\nimport { useController, useFormContext, useFormState } from 'react-hook-form';\n\nimport { FieldError } from '../components/fieldError';\nimport { FieldLabel } from '../components/fieldLabel';\nimport { FormComponentPrecisaDeControl } from '../formComponentPrecisaDeControl';\nimport { erroFieldFormatado } from '../utils/erroFieldFormatado';\nimport { typedMemo } from '../utils/typedMemo';\nimport { SIconButton } from './timePicker.styles';\nimport type { TimePickerProps } from './timePicker.types';\n\nimport 'dayjs/locale/pt-br';\n\nconst TimePicker = ({\n // RHF\n rules,\n defaultValue,\n shouldUnregister,\n name,\n control: controlFromProps,\n // Component Props\n required,\n label,\n disabled,\n disableIconError,\n size,\n ...rest\n}: TimePickerProps) => {\n const controlFromContext = useFormContext()?.control;\n\n const control = controlFromProps ?? controlFromContext;\n\n if (!control) {\n throw new FormComponentPrecisaDeControl('TimePicker');\n }\n\n const formState = useFormState({ control, name });\n\n const formattedError = erroFieldFormatado(formState.errors, name);\n\n const timeFormat = rest.format || 'HH:mm';\n const newRules = rules ? composeValidators([time(timeFormat), rules as any]) : time(timeFormat);\n\n const { field } = useController({\n control,\n name,\n rules: newRules,\n defaultValue,\n shouldUnregister,\n });\n\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <Stack>\n {label && <FieldLabel label={label} required={required} />}\n <TimePickerMui\n key={name}\n ampm={false}\n format={timeFormat}\n value={field.value ?? null}\n disabled={disabled}\n {...rest}\n onChange={(value, context) => {\n field.onChange(value, context);\n rest?.onChange?.(value, context);\n }}\n slots={{\n openPickerButton: SIconButton,\n }}\n slotProps={{\n ...rest.slotProps,\n textField: {\n error: Boolean(formattedError),\n size,\n ...rest.slotProps?.textField,\n slotProps: {\n ...(rest.slotProps?.textField as any)?.slotProps,\n input: {\n ...(rest.slotProps?.textField as any)?.slotProps?.input,\n inputRef: field.ref,\n },\n },\n },\n actionBar: {\n actions: [],\n ...rest.slotProps?.actionBar,\n },\n }}\n />\n <FieldError name={name} disableIcon={disableIconError} control={control} />\n </Stack>\n </LocalizationProvider>\n );\n};\n\nexport default typedMemo(TimePicker);\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { RadioProps } from './radioButton.types';
2
+ declare const RadioButton: ({ label, labelPlacement, ...rest }: RadioProps) => import("react").JSX.Element;
3
+ export default RadioButton;
@@ -0,0 +1,19 @@
1
+ import { RadioProps as RadioPropsMui } from '@mui/material';
2
+ export type RadioProps = RadioPropsMui & {
3
+ /**
4
+ * O nome do checkbox que será renderizado na tela
5
+ * @default ''
6
+ * @example 'Nome do checkbox'
7
+ * @type React.ReactNode
8
+ * @memberof RadioProps
9
+ */
10
+ label?: React.ReactNode;
11
+ /**
12
+ * Posição do label em relação ao checkbox
13
+ * @default 'end'
14
+ * @type 'start' | 'end' | 'top' | 'bottom'
15
+ * @example
16
+ * <Radio label="Radio" labelPlacement="start" />
17
+ */
18
+ labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
19
+ };
@@ -0,0 +1,3 @@
1
+ import { RadioGroupProps } from './radioGroup.types';
2
+ declare const RadioGroup: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, children, orientation, disableIconError, ...rest }: RadioGroupProps) => import("react").JSX.Element;
3
+ export default RadioGroup;
@@ -0,0 +1,44 @@
1
+ import { RadioGroupProps as RadioGroupPropsMui } from '@mui/material';
2
+ import { UseControllerProps } from 'react-hook-form';
3
+ export type RadioGroupProps = RadioGroupPropsMui & UseControllerProps & {
4
+ /**
5
+ * O nome do checkbox que será renderizado na tela
6
+ * @default ''
7
+ * @example 'Nome do checkbox'
8
+ * @type React.ReactNode
9
+ * @memberof RadioGroupProps
10
+ */
11
+ label?: React.ReactNode;
12
+ /**
13
+ * Adiciona um asterisco ao label do radioGroup
14
+ * @default false
15
+ * @type boolean
16
+ * @memberof RadioGroupProps
17
+ */
18
+ required?: boolean;
19
+ /**
20
+ * Parte interna do componente para renderizar os RadiosButtons
21
+ * @default []
22
+ * @type ReactNode
23
+ * @memberof RadioGroupProps
24
+ * @example
25
+ * <Radio value="1" label="Radio 1" />
26
+ * <Radio value="2" label="Radio 2" />
27
+ */
28
+ children: React.ReactNode;
29
+ /**
30
+ * Define a orientação dos radios buttons dentro do radioGroup
31
+ * @default 'row'
32
+ * @type 'row' | 'column'
33
+ * @memberof RadioGroupProps
34
+ */
35
+ orientation?: 'row' | 'column';
36
+ /**
37
+ * Desabilita o ícone de erro da validação do campo.
38
+ * @default false
39
+ *
40
+ * @example
41
+ * <TextField disableIconError />
42
+ */
43
+ disableIconError?: boolean;
44
+ };
@@ -0,0 +1,3 @@
1
+ import { SearchableProps } from './searchable.types';
2
+ declare const _default: <FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined>(props: SearchableProps<FieldValue, Multiple, DisableClearable, FreeSolo>) => import("react").JSX.Element;
3
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import { AutocompleteFreeSoloValueMapping, AutocompleteProps, AutocompleteValue, AutocompleteValueOrFreeSoloValueMapping, TextFieldProps } from '@mui/material';
2
+ import { UseControllerProps } from 'react-hook-form';
3
+ export type SearchableProps<FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined, AutocompleteFieldValue extends AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> = AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>> = Omit<AutocompleteProps<FieldValue, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'size' | 'options' | 'onInputChange' | 'onChange' | 'getOptionLabel' | 'getOptionKey' | 'defaultValue' | 'value'> & UseControllerProps & {
4
+ options: FieldValue[];
5
+ textFieldProps?: TextFieldProps;
6
+ label?: React.ReactNode;
7
+ required?: boolean;
8
+ /**
9
+ * Texto que será exibido quando não houver opções para serem exibidas
10
+ * @default 'Nenhuma opção encontrada'
11
+ */
12
+ noOptionsText?: string;
13
+ /**
14
+ * Componente que renderiza no footer do searchable (opcional)
15
+ * @example
16
+ * footer: (
17
+ * <Button onClick={handleClick}>Mostrar mais...</Button>
18
+ * )
19
+ */
20
+ footer?: () => React.ReactNode;
21
+ /**
22
+ * É o conteúdo passado para a tooltip que renderizará ao lado da label do campo,
23
+ * montada à tela como um ícone de informação.
24
+ */
25
+ info?: React.ReactNode;
26
+ defaultValue?: AutocompleteFieldValue;
27
+ value?: AutocompleteFieldValue;
28
+ placeholder?: string;
29
+ onInputChange?: (value: string) => void;
30
+ onChange?: (value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> | (DisableClearable extends true ? never : null)) => void;
31
+ /**
32
+ * Define a key unica da option
33
+ */
34
+ getOptionKey: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number;
35
+ /**
36
+ * Define a label da option
37
+ */
38
+ getOptionLabel: (option: AutocompleteValueOrFreeSoloValueMapping<FieldValue, FreeSolo>) => string;
39
+ /**
40
+ * Componente renderizado embaixo da option da listagem
41
+ */
42
+ getOptionAfterLabel?: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | React.ReactNode;
43
+ /**
44
+ * Usado para montar a label do valor selecionado no campo
45
+ *
46
+ * Funciona apenas junto com `getOptionAfterLabel`
47
+ *
48
+ * Quando não informado é usado o `getOptionLabel`
49
+ */
50
+ getInputValueLabel?: (option: AutocompleteValueOrFreeSoloValueMapping<FieldValue, FreeSolo>) => string;
51
+ };
@@ -0,0 +1,4 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { SelectProps } from './select.types';
3
+ declare const _default: <FieldValue extends FieldValues | string | number>(props: SelectProps<FieldValue>) => import("react").JSX.Element;
4
+ export default _default;
@@ -0,0 +1,68 @@
1
+ import { SelectProps as SelectPropsMui } from '@mui/material';
2
+ import { FieldPath, FieldPathValue, FieldValues, UseControllerProps } from 'react-hook-form';
3
+ export type FooterProps = {
4
+ closeSelect: () => void;
5
+ };
6
+ export type SelectProps<FieldValue extends FieldValues | string | number> = Omit<SelectPropsMui<FieldValue>, 'onChange' | 'multiple' | 'defaultValue' | 'variant'> & UseControllerProps & {
7
+ variant?: 'filled' | 'outlined' | 'standard';
8
+ /**
9
+ * As opções que serão renderizadas no select
10
+ */
11
+ options: FieldValue[];
12
+ onChange?: (value: FieldValue | null) => void;
13
+ /**
14
+ * Função que renderiza o footer do select (opcional) - recebe como parâmetro a função closeSelect que fecha o select
15
+ * @param {FooterProps} props
16
+ *
17
+ * @example
18
+ * footer: ({ closeSelect }) => (
19
+ * <Button onClick={closeSelect}>Fechar</Button>
20
+ * )
21
+ *
22
+ */
23
+ footer?: (props: FooterProps) => React.ReactNode;
24
+ /**
25
+ * É o conteúdo passado para a tooltip que renderizará ao lado da label do campo,
26
+ * montada à tela como um ícone de informação.
27
+ */
28
+ info?: React.ReactNode;
29
+ /**
30
+ * Habilita ícone no endAdornment para limpar o valor do campo.
31
+ * @default false
32
+ *
33
+ * @example
34
+ * <Select clearable />
35
+ */
36
+ clearable?: boolean;
37
+ placeholder?: string;
38
+ defaultValue?: FieldValue;
39
+ /**
40
+ * Define a key unica da option
41
+ */
42
+ getOptionKey: (option: FieldValue) => string | number;
43
+ /**
44
+ * Define a label da option
45
+ */
46
+ getOptionLabel: (option: FieldValue) => string;
47
+ /**
48
+ * Componente renderizado embaixo da option da listagem
49
+ */
50
+ getOptionAfterLabel?: (option: FieldValue) => string | React.ReactNode;
51
+ /**
52
+ * Usado para montar a label do valor selecionado no campo
53
+ *
54
+ * Funciona apenas junto com `getOptionAfterLabel`
55
+ *
56
+ * Quando não informado é usado o `getOptionLabel`
57
+ */
58
+ getInputValueLabel?: (option: FieldValue) => string;
59
+ /**
60
+ * Ícone renderizado ao lado da label
61
+ */
62
+ getOptionIcon?: (option: FieldValue) => React.ReactNode;
63
+ };
64
+ export type SelectReturnValueProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
65
+ value: FieldPathValue<TFieldValues, TFieldName> | null;
66
+ placeholder: string | undefined;
67
+ getOptionLabel: (option: FieldPathValue<TFieldValues, TFieldName>) => string;
68
+ };
@@ -0,0 +1,3 @@
1
+ import { FieldPath, FieldValues } from 'react-hook-form';
2
+ import { SelectReturnValueProps } from './select.types';
3
+ export declare const SelectRenderValue: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ value, placeholder, getOptionLabel, }: SelectReturnValueProps<TFieldValues, TFieldName>) => string | import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { SliderProps } from './slider.types';
2
+ declare const Slider: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, ...rest }: SliderProps) => import("react").JSX.Element;
3
+ export default Slider;
@@ -0,0 +1,20 @@
1
+ import { SliderProps as SliderPropsMui } from '@mui/material';
2
+ import { UseControllerProps } from 'react-hook-form';
3
+ export type SliderProps = SliderPropsMui & UseControllerProps & {
4
+ /**
5
+ * O nome do switch que será renderizado na tela
6
+ * @default ''
7
+ * @example 'Nome do switch'
8
+ * @type string
9
+ * @memberof SliderProps
10
+ */
11
+ label?: string;
12
+ /**
13
+ * Posição do label em relação ao switch
14
+ * @default 'end'
15
+ * @type 'start' | 'end' | 'top' | 'bottom'
16
+ * @example
17
+ * <Slider label="Slider" labelPlacement="start" />
18
+ */
19
+ labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
20
+ };
@@ -0,0 +1,3 @@
1
+ import { SwitchProps } from './switch.types';
2
+ declare const Switch: ({ name, rules, defaultValue, defaultChecked, shouldUnregister, control: controlFromProps, label, labelPlacement, disableIconError, onChange: onChangeProp, ...rest }: SwitchProps) => import("react").JSX.Element;
3
+ export default Switch;
@@ -0,0 +1,28 @@
1
+ import { SwitchProps as SwitchPropsMui } from '@mui/material';
2
+ import { UseControllerProps } from 'react-hook-form';
3
+ export type SwitchProps = SwitchPropsMui & UseControllerProps & {
4
+ /**
5
+ * O nome do switch que será renderizado na tela
6
+ * @default ''
7
+ * @example 'Nome do switch'
8
+ * @type React.ReactNode
9
+ * @memberof SwitchProps
10
+ */
11
+ label?: React.ReactNode;
12
+ /**
13
+ * Posição do label em relação ao switch
14
+ * @default 'end'
15
+ * @type 'start' | 'end' | 'top' | 'bottom'
16
+ * @example
17
+ * <Switch label="Switch" 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,3 @@
1
+ import { TextFieldProps } from './textField.types';
2
+ declare const _default: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, mask, variant, info, parse, format, onInputChange, disableIconError, ...rest }: TextFieldProps) => import("react").JSX.Element;
3
+ export default _default;
@@ -0,0 +1,43 @@
1
+ import { TextFieldProps as TextFieldPropsMui } from '@mui/material';
2
+ import { UseControllerProps } from 'react-hook-form';
3
+ export type Masks = 'cpf' | 'cnpj' | 'cpfCnpj' | 'cep' | 'telefone' | 'decimal' | 'decimal3' | 'decimal4' | 'decimal5' | 'porcentagem' | 'porcentagem0' | 'nome' | 'numero' | 'numeroPontuacao' | 'placa' | 'placaSefaz' | 'valor' | 'valor3' | 'valor4';
4
+ export type TextFieldProps = TextFieldPropsMui & UseControllerProps & {
5
+ mask?: Masks;
6
+ /**
7
+ * @description Função que será executada quando o valor do input for alterado
8
+ * @param value valor atual do Field
9
+ * @param values valores atuais do Form
10
+ *
11
+ * @example onInputChange={(values,values) => console.log({value, values})}
12
+ */
13
+ onInputChange?: (value: string) => void;
14
+ /**
15
+ * @param value Valor do input
16
+ * @returns Valor formatado para o input
17
+ *
18
+ * @example
19
+ * <TextField mask="cpf" parse={(value) => value.replace(/\D/g, '')} />
20
+ */
21
+ parse?: (value: string) => string;
22
+ /**
23
+ * @param value Valor do input formatado
24
+ * @returns Valor sem formatação para o input
25
+ *
26
+ * @example
27
+ * <TextField mask="cpf" format={(value) => value.replace(/\D/g, '')} />
28
+ */
29
+ format?: (value: string) => string;
30
+ /**
31
+ * É o conteúdo passado para a tooltip que renderizará ao lado da label do campo,
32
+ * montada à tela como um ícone de informação.
33
+ */
34
+ info?: React.ReactNode;
35
+ /**
36
+ * Desabilita o ícone de erro da validação do campo.
37
+ * @default false
38
+ *
39
+ * @example
40
+ * <TextField disableIconError />
41
+ */
42
+ disableIconError?: boolean;
43
+ };
@@ -0,0 +1,3 @@
1
+ import { TimePickerProps } from './timePicker.types';
2
+ declare const _default: ({ rules, defaultValue, shouldUnregister, name, control: controlFromProps, required, label, disabled, disableIconError, size, ...rest }: TimePickerProps) => 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 { TimePickerProps as TimePickerPropsMui } from '@mui/x-date-pickers';
3
+ import { UseControllerProps } from 'react-hook-form';
4
+ export type TimePickerProps = TimePickerPropsMui & 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
+ * <TimePicker size='small' />
31
+ */
32
+ size?: TextFieldProps['size'];
33
+ };
@@ -0,0 +1,2 @@
1
+ import { FieldErrors, FieldValues } from 'react-hook-form';
2
+ export declare const erroFieldFormatado: (errors: FieldErrors<FieldValues>, name: string) => Record<string, any>;
@@ -0,0 +1 @@
1
+ export declare const typedMemo: <T>(c: T) => T;