@lets-events/react 12.4.1 → 12.5.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 (91) hide show
  1. package/.eslintrc.json +2 -2
  2. package/CHANGELOG.md +6 -0
  3. package/package.json +1 -1
  4. package/src/components/Alert.tsx +303 -303
  5. package/src/components/Avatar.tsx +55 -55
  6. package/src/components/Badge.tsx +125 -125
  7. package/src/components/Box.tsx +3 -3
  8. package/src/components/Button/index.tsx +45 -45
  9. package/src/components/Button/styledComponents.ts +313 -313
  10. package/src/components/ButtonGroup.tsx +484 -484
  11. package/src/components/Calendar/index.tsx +148 -148
  12. package/src/components/Calendar/styledComponents.ts +259 -259
  13. package/src/components/Card.tsx +67 -67
  14. package/src/components/CheckboxGroup.tsx +176 -176
  15. package/src/components/Container.tsx +39 -39
  16. package/src/components/Divider.tsx +7 -7
  17. package/src/components/DoubleCalendar/index.tsx +170 -166
  18. package/src/components/Drawer/index.tsx +100 -98
  19. package/src/components/Drawer/styledComponents.ts +103 -103
  20. package/src/components/Dropdown.tsx +302 -302
  21. package/src/components/Filter.tsx +164 -164
  22. package/src/components/Flex.tsx +118 -118
  23. package/src/components/FormFields/AddressFormFields/CityFormField.tsx +111 -111
  24. package/src/components/FormFields/AddressFormFields/CountryFormField.tsx +33 -33
  25. package/src/components/FormFields/AddressFormFields/PostalCodeFormField.tsx +39 -39
  26. package/src/components/FormFields/AddressFormFields/StateFormField.tsx +32 -32
  27. package/src/components/FormFields/AddressFormFields/index.tsx +141 -141
  28. package/src/components/FormFields/BirthDateFormField.tsx +84 -84
  29. package/src/components/FormFields/CNPJFormField.tsx +87 -87
  30. package/src/components/FormFields/CPFFormField.tsx +78 -78
  31. package/src/components/FormFields/CalendarFormField.tsx +95 -95
  32. package/src/components/FormFields/CheckboxGroupFormField.tsx +91 -91
  33. package/src/components/FormFields/DoubleCalendarFormField.tsx +93 -90
  34. package/src/components/FormFields/EmailFormField.tsx +27 -27
  35. package/src/components/FormFields/Form.tsx +39 -39
  36. package/src/components/FormFields/IdentityDocumentNumberFormField.tsx +32 -32
  37. package/src/components/FormFields/MultiSelectFormField.tsx +64 -64
  38. package/src/components/FormFields/PhoneFormField.tsx +40 -40
  39. package/src/components/FormFields/RadioGroupFormField.tsx +84 -84
  40. package/src/components/FormFields/RichEditorFormField.tsx +103 -103
  41. package/src/components/FormFields/SelectFormField.tsx +93 -93
  42. package/src/components/FormFields/SwitchFormField.tsx +46 -46
  43. package/src/components/FormFields/TextAreaFormField.tsx +59 -59
  44. package/src/components/FormFields/TextFormField.tsx +112 -112
  45. package/src/components/FormFields/TimePickerFormField.tsx +88 -88
  46. package/src/components/FormFields/subComponents/ErrorFormMessage.tsx +36 -36
  47. package/src/components/FormFields/subComponents/FormLabel.tsx +29 -29
  48. package/src/components/FormFields/utils/validation.ts +23 -23
  49. package/src/components/Grid.tsx +137 -137
  50. package/src/components/Icon.tsx +47 -47
  51. package/src/components/MenuDropdown/index.tsx +38 -38
  52. package/src/components/MenuDropdown/styledComponents.ts +31 -31
  53. package/src/components/Modal.tsx +110 -110
  54. package/src/components/MultiSelect/index.tsx +243 -243
  55. package/src/components/MultiSelect/styledComponents.ts +160 -160
  56. package/src/components/RadioGroup.tsx +210 -210
  57. package/src/components/RichEditor/QuillComponent.tsx +457 -457
  58. package/src/components/RichEditor/RichEditor.tsx +49 -49
  59. package/src/components/RichEditor/index.ts +2 -2
  60. package/src/components/RichEditor/styledComponents.ts +1151 -1151
  61. package/src/components/Section.tsx +33 -33
  62. package/src/components/Step.tsx +164 -164
  63. package/src/components/Switch.tsx +108 -108
  64. package/src/components/Text.tsx +38 -38
  65. package/src/components/TextField.tsx +372 -372
  66. package/src/components/TextareaField.tsx +138 -138
  67. package/src/components/TimePicker.tsx +328 -328
  68. package/src/components/Toast/components/ToastItem.tsx +41 -41
  69. package/src/components/Toast/components/ToastProvider.tsx +63 -63
  70. package/src/components/Toast/hooks/useToast.ts +12 -12
  71. package/src/components/Toast/index.tsx +5 -5
  72. package/src/components/Toast/styles/index.ts +135 -135
  73. package/src/components/Toast/types/index.ts +46 -46
  74. package/src/components/Tooltip/index.tsx +66 -66
  75. package/src/components/Tooltip/styles.ts +77 -77
  76. package/src/hooks/useCountries.ts +41 -41
  77. package/src/hooks/useImageUpload.ts +139 -139
  78. package/src/hooks/useOnClickOutside.tsx +42 -42
  79. package/src/index.tsx +71 -71
  80. package/src/styles/index.ts +41 -41
  81. package/src/types/typographyValues.ts +178 -178
  82. package/src/utils/getNestedValue.ts +3 -3
  83. package/src/utils/states.ts +29 -29
  84. package/src/utils/uploadService.ts +180 -180
  85. package/tsconfig.json +3 -3
  86. package/tsup.config.ts +38 -38
  87. package/.turbo/turbo-build.log +0 -19
  88. package/dist/index.d.mts +0 -15398
  89. package/dist/index.d.ts +0 -15398
  90. package/dist/index.js +0 -13390
  91. package/dist/index.mjs +0 -13284
@@ -1,138 +1,138 @@
1
- import { TextArea as TextAreaRadix } from "@radix-ui/themes";
2
- import { styled } from "../styles";
3
- import React, { ComponentProps, useRef, useState, useEffect } from "react";
4
- import { typographyValues } from "../types/typographyValues";
5
- import { Text } from "./Text";
6
- import { Badge } from "./Badge";
7
- import { Flex } from "./Flex";
8
-
9
- export const TextareaFieldStyle = styled(TextAreaRadix, {
10
- display: "flex",
11
- flex: 1,
12
- textarea: {
13
- width: "100%",
14
- border: "none",
15
- padding: "$12 $14",
16
- fontFamily: "$default",
17
- outline: "none",
18
- resize: "vertical",
19
- height: "auto",
20
- },
21
- variants: {
22
- typography: typographyValues,
23
- },
24
- defaultVariants: {
25
- typography: "labelSmall",
26
- },
27
- });
28
-
29
- const TextareaContainer = styled("div", {
30
- display: "flex",
31
- flexDirection: "column",
32
- overflow: "hidden",
33
- width: "100%",
34
- border: "1px solid",
35
- borderRadius: "$sm",
36
-
37
- "&:has(textarea:focus)": {
38
- border: "1px solid $brand300",
39
- },
40
- "&:has(textarea:disabled)": {
41
- backgroundColor: "$dark100",
42
- color: "$dark400",
43
- border: "1px solid $dark200",
44
- cursor: "not-allowed",
45
- },
46
-
47
- variants: {
48
- color: {
49
- default: {
50
- borderColor: "$dark300",
51
- },
52
- error: {
53
- borderColor: "$error400",
54
- },
55
- },
56
- },
57
-
58
- defaultVariants: {
59
- color: "default",
60
- },
61
- });
62
-
63
- const TextareaLimitIndicator = styled("div", {
64
- padding: "$12 $16",
65
- borderTop: "1px solid $neutral300",
66
- width: "100%",
67
- flex: 1,
68
- display: "flex",
69
- backgroundColor: "$dark50",
70
- span: {
71
- backgroundColor: "$neutral200",
72
- color: "$neutral700",
73
- borderRadius: "$2xs",
74
- padding: "$4",
75
- },
76
- });
77
-
78
- export type TextareaFieldProps = Omit<
79
- ComponentProps<typeof TextareaFieldStyle>,
80
- "color"
81
- > &
82
- ComponentProps<typeof TextareaContainer> & {
83
- simpleLayout?: boolean;
84
- };
85
-
86
- export const TextareaField = React.forwardRef<
87
- HTMLTextAreaElement,
88
- TextareaFieldProps
89
- >(({ maxLength, color, simpleLayout = false, ...props }, forwardedRef) => {
90
- const inputRef = useRef<HTMLTextAreaElement>(null);
91
- const [remaining, setRemaining] = useState(maxLength);
92
-
93
- useEffect(() => {
94
- if (maxLength && inputRef.current) {
95
- setRemaining(maxLength - (inputRef.current.value.length ?? 0));
96
- }
97
- }, [maxLength]);
98
-
99
- const handleInput = (e: React.FormEvent<HTMLTextAreaElement>) => {
100
- if (maxLength) {
101
- setRemaining(maxLength - e.currentTarget.value.length);
102
- }
103
- props.onInput?.(e);
104
- };
105
-
106
- return (
107
- <Flex direction="column" align="end" style={{ position: 'relative' }}>
108
- {maxLength && simpleLayout && (
109
- <Badge size="sm" color="grey" style={{ position: 'absolute', right: 0, top: '-1.75rem' }}>
110
- {remaining}
111
- </Badge>
112
- )}
113
- <TextareaContainer color={color}>
114
- <TextareaFieldStyle
115
- rows={4}
116
- ref={(r) => {
117
- if (!r) return;
118
- inputRef.current = r;
119
- if (forwardedRef) {
120
- if (typeof forwardedRef === "function") forwardedRef(r);
121
- else forwardedRef.current = r;
122
- }
123
- }}
124
- onInput={handleInput}
125
- maxLength={maxLength}
126
- {...props}
127
- />
128
- {maxLength && !simpleLayout && (
129
- <TextareaLimitIndicator>
130
- <Text typography="badgeMedium">
131
- {remaining}
132
- </Text>
133
- </TextareaLimitIndicator>
134
- )}
135
- </TextareaContainer>
136
- </Flex>
137
- );
138
- });
1
+ import { TextArea as TextAreaRadix } from "@radix-ui/themes";
2
+ import { styled } from "../styles";
3
+ import React, { ComponentProps, useRef, useState, useEffect } from "react";
4
+ import { typographyValues } from "../types/typographyValues";
5
+ import { Text } from "./Text";
6
+ import { Badge } from "./Badge";
7
+ import { Flex } from "./Flex";
8
+
9
+ export const TextareaFieldStyle = styled(TextAreaRadix, {
10
+ display: "flex",
11
+ flex: 1,
12
+ textarea: {
13
+ width: "100%",
14
+ border: "none",
15
+ padding: "$12 $14",
16
+ fontFamily: "$default",
17
+ outline: "none",
18
+ resize: "vertical",
19
+ height: "auto",
20
+ },
21
+ variants: {
22
+ typography: typographyValues,
23
+ },
24
+ defaultVariants: {
25
+ typography: "labelSmall",
26
+ },
27
+ });
28
+
29
+ const TextareaContainer = styled("div", {
30
+ display: "flex",
31
+ flexDirection: "column",
32
+ overflow: "hidden",
33
+ width: "100%",
34
+ border: "1px solid",
35
+ borderRadius: "$sm",
36
+
37
+ "&:has(textarea:focus)": {
38
+ border: "1px solid $brand300",
39
+ },
40
+ "&:has(textarea:disabled)": {
41
+ backgroundColor: "$dark100",
42
+ color: "$dark400",
43
+ border: "1px solid $dark200",
44
+ cursor: "not-allowed",
45
+ },
46
+
47
+ variants: {
48
+ color: {
49
+ default: {
50
+ borderColor: "$dark300",
51
+ },
52
+ error: {
53
+ borderColor: "$error400",
54
+ },
55
+ },
56
+ },
57
+
58
+ defaultVariants: {
59
+ color: "default",
60
+ },
61
+ });
62
+
63
+ const TextareaLimitIndicator = styled("div", {
64
+ padding: "$12 $16",
65
+ borderTop: "1px solid $neutral300",
66
+ width: "100%",
67
+ flex: 1,
68
+ display: "flex",
69
+ backgroundColor: "$dark50",
70
+ span: {
71
+ backgroundColor: "$neutral200",
72
+ color: "$neutral700",
73
+ borderRadius: "$2xs",
74
+ padding: "$4",
75
+ },
76
+ });
77
+
78
+ export type TextareaFieldProps = Omit<
79
+ ComponentProps<typeof TextareaFieldStyle>,
80
+ "color"
81
+ > &
82
+ ComponentProps<typeof TextareaContainer> & {
83
+ simpleLayout?: boolean;
84
+ };
85
+
86
+ export const TextareaField = React.forwardRef<
87
+ HTMLTextAreaElement,
88
+ TextareaFieldProps
89
+ >(({ maxLength, color, simpleLayout = false, ...props }, forwardedRef) => {
90
+ const inputRef = useRef<HTMLTextAreaElement>(null);
91
+ const [remaining, setRemaining] = useState(maxLength);
92
+
93
+ useEffect(() => {
94
+ if (maxLength && inputRef.current) {
95
+ setRemaining(maxLength - (inputRef.current.value.length ?? 0));
96
+ }
97
+ }, [maxLength]);
98
+
99
+ const handleInput = (e: React.FormEvent<HTMLTextAreaElement>) => {
100
+ if (maxLength) {
101
+ setRemaining(maxLength - e.currentTarget.value.length);
102
+ }
103
+ props.onInput?.(e);
104
+ };
105
+
106
+ return (
107
+ <Flex direction="column" align="end" style={{ position: 'relative' }}>
108
+ {maxLength && simpleLayout && (
109
+ <Badge size="sm" color="grey" style={{ position: 'absolute', right: 0, top: '-1.75rem' }}>
110
+ {remaining}
111
+ </Badge>
112
+ )}
113
+ <TextareaContainer color={color}>
114
+ <TextareaFieldStyle
115
+ rows={4}
116
+ ref={(r) => {
117
+ if (!r) return;
118
+ inputRef.current = r;
119
+ if (forwardedRef) {
120
+ if (typeof forwardedRef === "function") forwardedRef(r);
121
+ else forwardedRef.current = r;
122
+ }
123
+ }}
124
+ onInput={handleInput}
125
+ maxLength={maxLength}
126
+ {...props}
127
+ />
128
+ {maxLength && !simpleLayout && (
129
+ <TextareaLimitIndicator>
130
+ <Text typography="badgeMedium">
131
+ {remaining}
132
+ </Text>
133
+ </TextareaLimitIndicator>
134
+ )}
135
+ </TextareaContainer>
136
+ </Flex>
137
+ );
138
+ });