@lets-events/react 12.10.16 → 12.11.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 (97) hide show
  1. package/.eslintrc.json +2 -2
  2. package/.turbo/turbo-build.log +21 -19
  3. package/CHANGELOG.md +12 -0
  4. package/dist/index.d.mts +70 -52
  5. package/dist/index.d.ts +70 -52
  6. package/dist/index.js +358 -263
  7. package/dist/index.mjs +335 -240
  8. package/package.json +1 -1
  9. package/src/components/Alert.tsx +303 -303
  10. package/src/components/Avatar.tsx +55 -55
  11. package/src/components/Badge.tsx +132 -132
  12. package/src/components/Box.tsx +3 -3
  13. package/src/components/Button/index.tsx +85 -85
  14. package/src/components/Button/styledComponents.ts +361 -361
  15. package/src/components/ButtonGroup.tsx +484 -484
  16. package/src/components/Calendar/index.tsx +168 -168
  17. package/src/components/Calendar/styledComponents.ts +480 -480
  18. package/src/components/Card.tsx +74 -67
  19. package/src/components/CheckboxGroup.tsx +176 -176
  20. package/src/components/Container.tsx +39 -39
  21. package/src/components/Divider.tsx +7 -7
  22. package/src/components/DoubleCalendar/index.tsx +204 -204
  23. package/src/components/Drawer/index.tsx +113 -113
  24. package/src/components/Drawer/styledComponents.ts +97 -97
  25. package/src/components/Dropdown.tsx +302 -302
  26. package/src/components/Filter.tsx +164 -164
  27. package/src/components/Flex.tsx +130 -130
  28. package/src/components/FormFields/AddressFormFields/CityFormField.tsx +111 -111
  29. package/src/components/FormFields/AddressFormFields/CountryFormField.tsx +33 -33
  30. package/src/components/FormFields/AddressFormFields/PostalCodeFormField.tsx +39 -39
  31. package/src/components/FormFields/AddressFormFields/StateFormField.tsx +32 -32
  32. package/src/components/FormFields/AddressFormFields/index.tsx +141 -141
  33. package/src/components/FormFields/BirthDateFormField.tsx +84 -84
  34. package/src/components/FormFields/CNPJFormField.tsx +87 -87
  35. package/src/components/FormFields/CPFFormField.tsx +78 -78
  36. package/src/components/FormFields/CalendarFormField.tsx +98 -98
  37. package/src/components/FormFields/CheckboxGroupFormField.tsx +91 -91
  38. package/src/components/FormFields/DateAndTimeFormField.tsx +217 -217
  39. package/src/components/FormFields/DoubleCalendarFormField.tsx +96 -96
  40. package/src/components/FormFields/EmailFormField.tsx +27 -27
  41. package/src/components/FormFields/Form.tsx +39 -39
  42. package/src/components/FormFields/IdentityDocumentNumberFormField.tsx +32 -32
  43. package/src/components/FormFields/MultiSelectFormField.tsx +64 -64
  44. package/src/components/FormFields/PhoneFormField.tsx +40 -40
  45. package/src/components/FormFields/RadioGroupFormField.tsx +88 -88
  46. package/src/components/FormFields/RichEditorFormField.tsx +128 -128
  47. package/src/components/FormFields/SelectFormField.tsx +113 -113
  48. package/src/components/FormFields/SwitchFormField.tsx +46 -46
  49. package/src/components/FormFields/TextAreaFormField.tsx +61 -61
  50. package/src/components/FormFields/TextFormField.tsx +112 -112
  51. package/src/components/FormFields/TimePickerFormField.tsx +88 -88
  52. package/src/components/FormFields/subComponents/ErrorFormMessage.tsx +36 -36
  53. package/src/components/FormFields/subComponents/FormLabel.tsx +36 -36
  54. package/src/components/FormFields/utils/validation.ts +23 -23
  55. package/src/components/Grid.tsx +137 -137
  56. package/src/components/Icon.tsx +47 -47
  57. package/src/components/MenuDropdown/index.tsx +38 -38
  58. package/src/components/MenuDropdown/styledComponents.ts +31 -31
  59. package/src/components/Modal.tsx +130 -114
  60. package/src/components/MultiSelect/index.tsx +417 -305
  61. package/src/components/MultiSelect/styledComponents.ts +176 -160
  62. package/src/components/RadioGroup.tsx +210 -210
  63. package/src/components/RichEditor/QuillComponent.tsx +419 -419
  64. package/src/components/RichEditor/RichEditor.tsx +53 -53
  65. package/src/components/RichEditor/RichTextPresenter.tsx +18 -18
  66. package/src/components/RichEditor/editorConfig.ts +149 -149
  67. package/src/components/RichEditor/index.ts +3 -3
  68. package/src/components/RichEditor/styledComponents.ts +1175 -1175
  69. package/src/components/RichEditor/types.ts +12 -12
  70. package/src/components/Section.tsx +33 -33
  71. package/src/components/Step.tsx +164 -164
  72. package/src/components/Switch.tsx +108 -108
  73. package/src/components/Text.tsx +54 -54
  74. package/src/components/TextField.tsx +423 -423
  75. package/src/components/TextareaField.tsx +116 -116
  76. package/src/components/TimePicker.tsx +357 -357
  77. package/src/components/Toast/components/ToastItem.tsx +41 -41
  78. package/src/components/Toast/components/ToastProvider.tsx +63 -63
  79. package/src/components/Toast/hooks/useToast.ts +12 -12
  80. package/src/components/Toast/index.tsx +5 -5
  81. package/src/components/Toast/styles/index.ts +135 -135
  82. package/src/components/Toast/types/index.ts +46 -46
  83. package/src/components/ToggleElement/index.tsx +58 -58
  84. package/src/components/Tooltip/index.tsx +73 -73
  85. package/src/components/Tooltip/styles.ts +77 -77
  86. package/src/hooks/useCountries.ts +41 -41
  87. package/src/hooks/useImageUpload.ts +139 -139
  88. package/src/hooks/useMediaQuery.ts +19 -0
  89. package/src/hooks/useOnClickOutside.tsx +42 -42
  90. package/src/index.tsx +72 -72
  91. package/src/styles/index.ts +41 -41
  92. package/src/types/typographyValues.ts +178 -178
  93. package/src/utils/getNestedValue.ts +3 -3
  94. package/src/utils/states.ts +29 -29
  95. package/src/utils/uploadService.ts +180 -180
  96. package/tsconfig.json +3 -3
  97. package/tsup.config.ts +38 -38
@@ -1,27 +1,27 @@
1
- import { TextFormField } from "./TextFormField";
2
- import { validateEmail } from "./utils/validation";
3
-
4
- export type EmailFormFieldProps = {
5
- name: string;
6
- label?: string;
7
- required?: boolean;
8
- placeholder?: string;
9
- };
10
-
11
- export const EmailFormField = ({
12
- name,
13
- label,
14
- required,
15
- placeholder,
16
- }: EmailFormFieldProps) => {
17
- return (
18
- <TextFormField
19
- name={name}
20
- label={label}
21
- required={required}
22
- placeholder={placeholder}
23
- type="email"
24
- validate={validateEmail("E-mail inválido.")}
25
- />
26
- );
27
- };
1
+ import { TextFormField } from "./TextFormField";
2
+ import { validateEmail } from "./utils/validation";
3
+
4
+ export type EmailFormFieldProps = {
5
+ name: string;
6
+ label?: string;
7
+ required?: boolean;
8
+ placeholder?: string;
9
+ };
10
+
11
+ export const EmailFormField = ({
12
+ name,
13
+ label,
14
+ required,
15
+ placeholder,
16
+ }: EmailFormFieldProps) => {
17
+ return (
18
+ <TextFormField
19
+ name={name}
20
+ label={label}
21
+ required={required}
22
+ placeholder={placeholder}
23
+ type="email"
24
+ validate={validateEmail("E-mail inválido.")}
25
+ />
26
+ );
27
+ };
@@ -1,39 +1,39 @@
1
- import { JSX, useMemo } from "react";
2
- import {
3
- FormProvider,
4
- useForm,
5
- SubmitHandler,
6
- FieldValues,
7
- UseFormProps,
8
- UseFormReturn,
9
- } from "react-hook-form";
10
-
11
- export type FormProps<T extends FieldValues = FieldValues> = UseFormProps<T> & {
12
- onSubmit: SubmitHandler<T>;
13
- children: JSX.Element | ((p: UseFormReturn<T, any, T>) => JSX.Element);
14
- methods?: ReturnType<typeof useForm<T>>;
15
- };
16
-
17
- export const Form = <T extends FieldValues = FieldValues>({
18
- onSubmit,
19
- children,
20
- ...props
21
- }: FormProps<T>) => {
22
- const formMethods = useForm<T>({
23
- mode: "onTouched",
24
- ...props,
25
- });
26
-
27
- return (
28
- <FormProvider {...formMethods}>
29
- <form onSubmit={formMethods.handleSubmit(onSubmit)}>
30
- {(() => {
31
- if (typeof children === "function") {
32
- return children(formMethods);
33
- }
34
- return children;
35
- })()}
36
- </form>
37
- </FormProvider>
38
- );
39
- };
1
+ import { JSX, useMemo } from "react";
2
+ import {
3
+ FormProvider,
4
+ useForm,
5
+ SubmitHandler,
6
+ FieldValues,
7
+ UseFormProps,
8
+ UseFormReturn,
9
+ } from "react-hook-form";
10
+
11
+ export type FormProps<T extends FieldValues = FieldValues> = UseFormProps<T> & {
12
+ onSubmit: SubmitHandler<T>;
13
+ children: JSX.Element | ((p: UseFormReturn<T, any, T>) => JSX.Element);
14
+ methods?: ReturnType<typeof useForm<T>>;
15
+ };
16
+
17
+ export const Form = <T extends FieldValues = FieldValues>({
18
+ onSubmit,
19
+ children,
20
+ ...props
21
+ }: FormProps<T>) => {
22
+ const formMethods = useForm<T>({
23
+ mode: "onTouched",
24
+ ...props,
25
+ });
26
+
27
+ return (
28
+ <FormProvider {...formMethods}>
29
+ <form onSubmit={formMethods.handleSubmit(onSubmit)}>
30
+ {(() => {
31
+ if (typeof children === "function") {
32
+ return children(formMethods);
33
+ }
34
+ return children;
35
+ })()}
36
+ </form>
37
+ </FormProvider>
38
+ );
39
+ };
@@ -1,32 +1,32 @@
1
- import { TextFormField } from "./TextFormField";
2
-
3
- type IdentityDocumentNumberFormFieldProps = {
4
- name: string;
5
- label: string;
6
- required?: boolean;
7
- placeholder?: string;
8
- validationErrorMessage: string;
9
- };
10
-
11
- export const IdentityDocumentNumberFormField = ({
12
- name,
13
- label,
14
- required,
15
- placeholder,
16
- validationErrorMessage,
17
- }: IdentityDocumentNumberFormFieldProps) => {
18
- return (
19
- <TextFormField
20
- name={name}
21
- label={label}
22
- required={required}
23
- placeholder={placeholder || "__.___.___-_"}
24
- validate={(value: string) => {
25
- const isEmpty = value.length === 0;
26
- if (!required && isEmpty) return true;
27
- if (value.length >= 3) return true;
28
- return false || validationErrorMessage;
29
- }}
30
- />
31
- );
32
- };
1
+ import { TextFormField } from "./TextFormField";
2
+
3
+ type IdentityDocumentNumberFormFieldProps = {
4
+ name: string;
5
+ label: string;
6
+ required?: boolean;
7
+ placeholder?: string;
8
+ validationErrorMessage: string;
9
+ };
10
+
11
+ export const IdentityDocumentNumberFormField = ({
12
+ name,
13
+ label,
14
+ required,
15
+ placeholder,
16
+ validationErrorMessage,
17
+ }: IdentityDocumentNumberFormFieldProps) => {
18
+ return (
19
+ <TextFormField
20
+ name={name}
21
+ label={label}
22
+ required={required}
23
+ placeholder={placeholder || "__.___.___-_"}
24
+ validate={(value: string) => {
25
+ const isEmpty = value.length === 0;
26
+ if (!required && isEmpty) return true;
27
+ if (value.length >= 3) return true;
28
+ return false || validationErrorMessage;
29
+ }}
30
+ />
31
+ );
32
+ };
@@ -1,64 +1,64 @@
1
- import { useController } from "react-hook-form";
2
- import { Flex } from "../Flex";
3
- import { FormLabel } from "./subComponents/FormLabel";
4
- import { ErrorFormMessage } from "./subComponents/ErrorFormMessage";
5
- import { MultiSelect, MultiSelectProps } from "../MultiSelect";
6
-
7
- export type MultiSelectFormFieldProps = MultiSelectProps & {
8
- name: string;
9
- label?: string;
10
- required?: boolean;
11
- selectedOrientation?: "row" | "column";
12
- zIndex?: string;
13
- maxHeight?: string;
14
- };
15
-
16
- export const MultiSelectFormField = ({
17
- name,
18
- label,
19
- required,
20
- selectedOrientation = "column",
21
- zIndex,
22
- maxHeight,
23
- ...rest
24
- }: MultiSelectFormFieldProps) => {
25
- const { field, fieldState } = useController({
26
- name,
27
- rules: {
28
- required,
29
- },
30
- defaultValue: [],
31
- });
32
-
33
- const { value, onChange, ref, onBlur, disabled } = field;
34
-
35
- const haveError = !!fieldState.error;
36
-
37
- const errorMsg = fieldState.error?.message;
38
-
39
- const handleChange = (v: any) => {
40
- onChange(v);
41
- };
42
-
43
- return (
44
- <Flex direction={"column"}>
45
- <FormLabel
46
- name={name}
47
- label={label}
48
- required={required}
49
- haveError={haveError}
50
- />
51
- <MultiSelect
52
- value={value}
53
- onValueChange={handleChange}
54
- ref={ref}
55
- color={haveError ? "error" : "default"}
56
- selectedOrientation={selectedOrientation}
57
- zIndex={zIndex}
58
- maxHeight={maxHeight}
59
- {...rest}
60
- />
61
- <ErrorFormMessage message={errorMsg} />
62
- </Flex>
63
- );
64
- };
1
+ import { useController } from "react-hook-form";
2
+ import { Flex } from "../Flex";
3
+ import { FormLabel } from "./subComponents/FormLabel";
4
+ import { ErrorFormMessage } from "./subComponents/ErrorFormMessage";
5
+ import { MultiSelect, MultiSelectProps } from "../MultiSelect";
6
+
7
+ export type MultiSelectFormFieldProps = MultiSelectProps & {
8
+ name: string;
9
+ label?: string;
10
+ required?: boolean;
11
+ selectedOrientation?: "row" | "column";
12
+ zIndex?: string;
13
+ maxHeight?: string;
14
+ };
15
+
16
+ export const MultiSelectFormField = ({
17
+ name,
18
+ label,
19
+ required,
20
+ selectedOrientation = "column",
21
+ zIndex,
22
+ maxHeight,
23
+ ...rest
24
+ }: MultiSelectFormFieldProps) => {
25
+ const { field, fieldState } = useController({
26
+ name,
27
+ rules: {
28
+ required,
29
+ },
30
+ defaultValue: [],
31
+ });
32
+
33
+ const { value, onChange, ref, onBlur, disabled } = field;
34
+
35
+ const haveError = !!fieldState.error;
36
+
37
+ const errorMsg = fieldState.error?.message;
38
+
39
+ const handleChange = (v: any) => {
40
+ onChange(v);
41
+ };
42
+
43
+ return (
44
+ <Flex direction={"column"}>
45
+ <FormLabel
46
+ name={name}
47
+ label={label}
48
+ required={required}
49
+ haveError={haveError}
50
+ />
51
+ <MultiSelect
52
+ value={value}
53
+ onValueChange={handleChange}
54
+ ref={ref}
55
+ color={haveError ? "error" : "default"}
56
+ selectedOrientation={selectedOrientation}
57
+ zIndex={zIndex}
58
+ maxHeight={maxHeight}
59
+ {...rest}
60
+ />
61
+ <ErrorFormMessage message={errorMsg} />
62
+ </Flex>
63
+ );
64
+ };
@@ -1,40 +1,40 @@
1
- import { TextFormField } from "./TextFormField";
2
- import { minMaxLength } from "./utils/validation";
3
-
4
- export type PhoneFormFieldProps = {
5
- name: string;
6
- label?: string;
7
- required?: boolean;
8
- };
9
-
10
- export const PhoneFormField = ({
11
- name,
12
- label,
13
- required,
14
- }: PhoneFormFieldProps) => {
15
- return (
16
- <TextFormField
17
- name={name}
18
- label={label}
19
- required={required}
20
- addon={"+ 55"}
21
- mask={{
22
- mask: "(__) _____-____}",
23
- replacement: { _: /\d/ },
24
- }}
25
- placeholder="(00) 00000-0000"
26
- type="tel"
27
- validate={minMaxLength(13, 14, "Telefone inválido")}
28
- valueFormatter={{
29
- format(v) {
30
- if (!v || v === "") return v;
31
- return v.replace(/^\+55/, "");
32
- },
33
- unformat(v) {
34
- if (!v || v === "") return v;
35
- return "+55" + v;
36
- },
37
- }}
38
- />
39
- );
40
- };
1
+ import { TextFormField } from "./TextFormField";
2
+ import { minMaxLength } from "./utils/validation";
3
+
4
+ export type PhoneFormFieldProps = {
5
+ name: string;
6
+ label?: string;
7
+ required?: boolean;
8
+ };
9
+
10
+ export const PhoneFormField = ({
11
+ name,
12
+ label,
13
+ required,
14
+ }: PhoneFormFieldProps) => {
15
+ return (
16
+ <TextFormField
17
+ name={name}
18
+ label={label}
19
+ required={required}
20
+ addon={"+ 55"}
21
+ mask={{
22
+ mask: "(__) _____-____}",
23
+ replacement: { _: /\d/ },
24
+ }}
25
+ placeholder="(00) 00000-0000"
26
+ type="tel"
27
+ validate={minMaxLength(13, 14, "Telefone inválido")}
28
+ valueFormatter={{
29
+ format(v) {
30
+ if (!v || v === "") return v;
31
+ return v.replace(/^\+55/, "");
32
+ },
33
+ unformat(v) {
34
+ if (!v || v === "") return v;
35
+ return "+55" + v;
36
+ },
37
+ }}
38
+ />
39
+ );
40
+ };
@@ -1,88 +1,88 @@
1
- import { Controller, useFormContext } from "react-hook-form";
2
- import { Flex } from "../Flex";
3
- import { FormLabel } from "./subComponents/FormLabel";
4
- import { ErrorFormMessage } from "./subComponents/ErrorFormMessage";
5
- import { RadioGroup, RadioItem } from "../RadioGroup";
6
- import { getNestedValue } from "../../utils/getNestedValue";
7
- import { Text } from "../Text";
8
-
9
- type Option = {
10
- label: string;
11
- value: string;
12
- };
13
-
14
- export type RadioGroupFormFieldProps = {
15
- name: string;
16
- label: string;
17
- options: Option[];
18
- required?: boolean;
19
- defaultValue?: string;
20
- validationErrorMessage?: string;
21
- color?: "blue" | "success" | "error";
22
- fontWeight?: "regular" | "medium" | "semibold" | "bold";
23
- disabled?: boolean;
24
- orientation?: 'horizontal' | 'vertical';
25
- };
26
-
27
- export const RadioGroupFormField = ({
28
- name,
29
- label,
30
- options,
31
- required,
32
- defaultValue,
33
- validationErrorMessage = "Este campo é obrigatório.",
34
- color = "blue",
35
- fontWeight = "regular",
36
- disabled = false,
37
- orientation = 'vertical',
38
- }: RadioGroupFormFieldProps) => {
39
- const {
40
- control,
41
- formState: { errors },
42
- } = useFormContext();
43
-
44
- const fieldError = getNestedValue(errors, name);
45
- const haveError = !!fieldError;
46
- const errorMsg = fieldError?.message;
47
-
48
- const validationRules = {
49
- required: required ? validationErrorMessage : false,
50
- };
51
-
52
- return (
53
- <Flex direction="column">
54
- <FormLabel
55
- name={name}
56
- label={label}
57
- required={required}
58
- haveError={haveError}
59
- />
60
-
61
- <Controller
62
- name={name}
63
- control={control}
64
- defaultValue={defaultValue || ""}
65
- rules={validationRules}
66
- render={({ field: { value, onChange } }) => (
67
- <RadioGroup
68
- value={value}
69
- onValueChange={onChange}
70
- color={haveError ? "error" : color}
71
- fontWeight={fontWeight}
72
- disabled={disabled}
73
- >
74
- <Flex direction={orientation === 'horizontal' ? 'row' : 'column'}>
75
- {options.map((option) => (
76
- <RadioItem key={option.value} value={option.value}>
77
- <Text typography={"labelSmall"}>{option.label}</Text>
78
- </RadioItem>
79
- ))}
80
- </Flex>
81
- </RadioGroup>
82
- )}
83
- />
84
-
85
- <ErrorFormMessage message={errorMsg} />
86
- </Flex>
87
- );
88
- };
1
+ import { Controller, useFormContext } from "react-hook-form";
2
+ import { Flex } from "../Flex";
3
+ import { FormLabel } from "./subComponents/FormLabel";
4
+ import { ErrorFormMessage } from "./subComponents/ErrorFormMessage";
5
+ import { RadioGroup, RadioItem } from "../RadioGroup";
6
+ import { getNestedValue } from "../../utils/getNestedValue";
7
+ import { Text } from "../Text";
8
+
9
+ type Option = {
10
+ label: string;
11
+ value: string;
12
+ };
13
+
14
+ export type RadioGroupFormFieldProps = {
15
+ name: string;
16
+ label: string;
17
+ options: Option[];
18
+ required?: boolean;
19
+ defaultValue?: string;
20
+ validationErrorMessage?: string;
21
+ color?: "blue" | "success" | "error";
22
+ fontWeight?: "regular" | "medium" | "semibold" | "bold";
23
+ disabled?: boolean;
24
+ orientation?: 'horizontal' | 'vertical';
25
+ };
26
+
27
+ export const RadioGroupFormField = ({
28
+ name,
29
+ label,
30
+ options,
31
+ required,
32
+ defaultValue,
33
+ validationErrorMessage = "Este campo é obrigatório.",
34
+ color = "blue",
35
+ fontWeight = "regular",
36
+ disabled = false,
37
+ orientation = 'vertical',
38
+ }: RadioGroupFormFieldProps) => {
39
+ const {
40
+ control,
41
+ formState: { errors },
42
+ } = useFormContext();
43
+
44
+ const fieldError = getNestedValue(errors, name);
45
+ const haveError = !!fieldError;
46
+ const errorMsg = fieldError?.message;
47
+
48
+ const validationRules = {
49
+ required: required ? validationErrorMessage : false,
50
+ };
51
+
52
+ return (
53
+ <Flex direction="column">
54
+ <FormLabel
55
+ name={name}
56
+ label={label}
57
+ required={required}
58
+ haveError={haveError}
59
+ />
60
+
61
+ <Controller
62
+ name={name}
63
+ control={control}
64
+ defaultValue={defaultValue || ""}
65
+ rules={validationRules}
66
+ render={({ field: { value, onChange } }) => (
67
+ <RadioGroup
68
+ value={value}
69
+ onValueChange={onChange}
70
+ color={haveError ? "error" : color}
71
+ fontWeight={fontWeight}
72
+ disabled={disabled}
73
+ >
74
+ <Flex direction={orientation === 'horizontal' ? 'row' : 'column'}>
75
+ {options.map((option) => (
76
+ <RadioItem key={option.value} value={option.value}>
77
+ <Text typography={"labelSmall"}>{option.label}</Text>
78
+ </RadioItem>
79
+ ))}
80
+ </Flex>
81
+ </RadioGroup>
82
+ )}
83
+ />
84
+
85
+ <ErrorFormMessage message={errorMsg} />
86
+ </Flex>
87
+ );
88
+ };