@lets-events/react 12.2.13 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +8 -8
- package/CHANGELOG.md +12 -0
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +139 -106
- package/dist/index.mjs +40 -7
- package/package.json +1 -1
- package/src/components/Button/index.tsx +33 -4
- package/src/components/Button/styledComponents.ts +14 -1
- package/src/components/Card.tsx +4 -0
- package/src/components/Icon.tsx +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @lets-events/react@12.
|
|
2
|
+
> @lets-events/react@12.3.0 build
|
|
3
3
|
> tsup src/index.tsx --format esm,cjs --dts --external react
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.tsx
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
[34mCLI[39m Target: es6
|
|
10
10
|
[34mESM[39m Build start
|
|
11
11
|
[34mCJS[39m Build start
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
12
|
+
[32mCJS[39m [1mdist\index.js [22m[32m395.67 KB[39m
|
|
13
|
+
[32mCJS[39m ⚡️ Build success in 226ms
|
|
14
|
+
[32mESM[39m [1mdist\index.mjs [22m[32m381.64 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 227ms
|
|
16
16
|
[34mDTS[39m Build start
|
|
17
|
-
[32mDTS[39m ⚡️ Build success in
|
|
18
|
-
[32mDTS[39m [1mdist\index.d.mts [22m[32m398.
|
|
19
|
-
[32mDTS[39m [1mdist\index.d.ts [22m[32m398.
|
|
17
|
+
[32mDTS[39m ⚡️ Build success in 4571ms
|
|
18
|
+
[32mDTS[39m [1mdist\index.d.mts [22m[32m398.68 KB[39m
|
|
19
|
+
[32mDTS[39m [1mdist\index.d.ts [22m[32m398.68 KB[39m
|
package/CHANGELOG.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -792,8 +792,9 @@ declare const ButtonStyled: _stitches_react_types_styled_component.StyledCompone
|
|
|
792
792
|
type ButtonVariantProps = VariantProps<typeof ButtonStyled>;
|
|
793
793
|
interface ButtonProps extends ComponentProps<typeof ButtonStyled>, ButtonVariantProps {
|
|
794
794
|
asChild?: boolean;
|
|
795
|
+
loading?: boolean;
|
|
795
796
|
}
|
|
796
|
-
declare function Button({ asChild, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
797
|
+
declare function Button({ asChild, children, loading, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
797
798
|
|
|
798
799
|
declare const ButtonItemStyled: _stitches_react_types_styled_component.StyledComponent<React$1.ForwardRefExoticComponent<_radix_ui_themes.ButtonProps & React$1.RefAttributes<HTMLButtonElement>>, {
|
|
799
800
|
active?: boolean | "true" | undefined;
|
|
@@ -11052,7 +11053,7 @@ declare function StepWrapper({ children, ...props }: {
|
|
|
11052
11053
|
}): react_jsx_runtime.JSX.Element;
|
|
11053
11054
|
|
|
11054
11055
|
declare const CardStyled: _stitches_react_types_styled_component.StyledComponent<React__default.ForwardRefExoticComponent<_radix_ui_themes.CardProps & React__default.RefAttributes<HTMLDivElement>>, {
|
|
11055
|
-
color?: "error" | "primary" | "disable" | undefined;
|
|
11056
|
+
color?: "warning" | "error" | "primary" | "disable" | undefined;
|
|
11056
11057
|
boxShadow?: boolean | "false" | "true" | undefined;
|
|
11057
11058
|
}, {}, _stitches_react_types_css_util.CSS<{}, {
|
|
11058
11059
|
colors: {
|
|
@@ -15202,4 +15203,4 @@ declare const useImageUpload: (options: UseImageUploadOptions) => {
|
|
|
15202
15203
|
reset: () => void;
|
|
15203
15204
|
};
|
|
15204
15205
|
|
|
15205
|
-
export { AddressFormFields, Alert, AlertDialogCompleteStyled, AlertDialogDescriptionStyled, AlertDialogRowStyled, AlertDialogSimpleStyled, AlertDialogSubtitleStyled, AlertDialogTitleStyled, AlertDialoghrStyled, type AlertProps, Avatar, type AvatarProps, AvatarStyled, Badge, type BadgeProps, BadgeStyled, BirthDateFormField, Box, Button, ButtonGroup, type ButtonGroupProps, ButtonGroupStyled, ButtonItem, type ButtonItemProps, ButtonItemStyled, type ButtonProps, CNPJFormField, CPFFormField, Calendar, CalendarFormField, type CalendarFormFieldProps, type CalendarProps, Card, type CardProps, CardStyled, CheckboxGroup, CheckboxGroupFormField, type CheckboxGroupFormFieldProps, type CheckboxGroupProps, CheckboxGroupStyled, CheckboxItem, type CheckboxItemProps, Container, type ContainerProps, ContainerStyled, CountryFormField, Divider, Drawer, type DrawerProps, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuProps, EmailFormField, type EmailFormFieldProps, ErrorFormMessage, type ErrorFormMessageProps, Filter, FilterItem, type FilterItemProps, type FilterProps, Flex, type FlexProps, FlexStyled, Form, FormLabel, type FormLabelProps, type FormProps, Grid, type GridProps, GridStyled, Icon, IdentityDocumentNumberFormField, InputStyled, MenuDropdown, type MenuDropdownProps, Modal, type ModalProps, MultiSelect, MultiSelectFormField, type MultiSelectFormFieldProps, type MultiSelectProps, PhoneFormField, type PhoneFormFieldProps, RadioGroup, RadioGroupFormField, type RadioGroupFormFieldProps, type RadioGroupProps, RadioGroupStyled, RadioItem, type RadioItemProps, RichEditor, RichEditorFormField, type RichEditorFormFieldProps, type RichEditorProps, Section, type SectionProps, SectionStyled, SelectFormField, type SelectFormFieldProps, Step, StepContent, StepList, type StepProps, StepStyled, StepTrigger, StepWrapper, Switch, SwitchFormField, type SwitchFormFieldProps, type SwitchProps, SwitchStyled, Text, TextAreaFormField, type TextAreaFormFieldProps, TextField, type TextFieldProps, TextFieldSlot, type TextFieldSlotProps, TextFieldSlotStyled, TextFieldStyled, TextFormField, type TextFormFieldProps, type TextProps, TextStyle, TextareaField, type TextareaFieldProps, TextareaFieldStyle, TimePicker, TimePickerButtonStyled, TimePickerDropdownStyled, TimePickerFooterStyled, TimePickerFormField, type TimePickerFormFieldProps, TimePickerIconButton, type TimePickerProps, TimePickerStyled, TimerPickerContentStyled, type Toast, type ToastComponentProps, type ToastConfig, type ToastContextType, ToastItem, type ToastOptions, ToastProvider, type ToastProviderProps, type ToastType, type ToasterShowOptions, Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, type UploadConfig, UploadService, isValidCNPJ, maskFormat, maskUnformat, useImageUpload, useToast };
|
|
15206
|
+
export { AddressFormFields, Alert, AlertDialogCompleteStyled, AlertDialogDescriptionStyled, AlertDialogRowStyled, AlertDialogSimpleStyled, AlertDialogSubtitleStyled, AlertDialogTitleStyled, AlertDialoghrStyled, type AlertProps, Avatar, type AvatarProps, AvatarStyled, Badge, type BadgeProps, BadgeStyled, BirthDateFormField, Box, Button, ButtonGroup, type ButtonGroupProps, ButtonGroupStyled, ButtonItem, type ButtonItemProps, ButtonItemStyled, type ButtonProps, CNPJFormField, CPFFormField, Calendar, CalendarFormField, type CalendarFormFieldProps, type CalendarProps, Card, type CardProps, CardStyled, CheckboxGroup, CheckboxGroupFormField, type CheckboxGroupFormFieldProps, type CheckboxGroupProps, CheckboxGroupStyled, CheckboxItem, type CheckboxItemProps, Container, type ContainerProps, ContainerStyled, CountryFormField, Divider, Drawer, type DrawerProps, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuProps, EmailFormField, type EmailFormFieldProps, ErrorFormMessage, type ErrorFormMessageProps, Filter, FilterItem, type FilterItemProps, type FilterProps, Flex, type FlexProps, FlexStyled, Form, FormLabel, type FormLabelProps, type FormProps, Grid, type GridProps, GridStyled, Icon, type IconProps, IdentityDocumentNumberFormField, InputStyled, MenuDropdown, type MenuDropdownProps, Modal, type ModalProps, MultiSelect, MultiSelectFormField, type MultiSelectFormFieldProps, type MultiSelectProps, PhoneFormField, type PhoneFormFieldProps, RadioGroup, RadioGroupFormField, type RadioGroupFormFieldProps, type RadioGroupProps, RadioGroupStyled, RadioItem, type RadioItemProps, RichEditor, RichEditorFormField, type RichEditorFormFieldProps, type RichEditorProps, Section, type SectionProps, SectionStyled, SelectFormField, type SelectFormFieldProps, Step, StepContent, StepList, type StepProps, StepStyled, StepTrigger, StepWrapper, Switch, SwitchFormField, type SwitchFormFieldProps, type SwitchProps, SwitchStyled, Text, TextAreaFormField, type TextAreaFormFieldProps, TextField, type TextFieldProps, TextFieldSlot, type TextFieldSlotProps, TextFieldSlotStyled, TextFieldStyled, TextFormField, type TextFormFieldProps, type TextProps, TextStyle, TextareaField, type TextareaFieldProps, TextareaFieldStyle, TimePicker, TimePickerButtonStyled, TimePickerDropdownStyled, TimePickerFooterStyled, TimePickerFormField, type TimePickerFormFieldProps, TimePickerIconButton, type TimePickerProps, TimePickerStyled, TimerPickerContentStyled, type Toast, type ToastComponentProps, type ToastConfig, type ToastContextType, ToastItem, type ToastOptions, ToastProvider, type ToastProviderProps, type ToastType, type ToasterShowOptions, Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, type UploadConfig, UploadService, isValidCNPJ, maskFormat, maskUnformat, useImageUpload, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -792,8 +792,9 @@ declare const ButtonStyled: _stitches_react_types_styled_component.StyledCompone
|
|
|
792
792
|
type ButtonVariantProps = VariantProps<typeof ButtonStyled>;
|
|
793
793
|
interface ButtonProps extends ComponentProps<typeof ButtonStyled>, ButtonVariantProps {
|
|
794
794
|
asChild?: boolean;
|
|
795
|
+
loading?: boolean;
|
|
795
796
|
}
|
|
796
|
-
declare function Button({ asChild, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
797
|
+
declare function Button({ asChild, children, loading, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
797
798
|
|
|
798
799
|
declare const ButtonItemStyled: _stitches_react_types_styled_component.StyledComponent<React$1.ForwardRefExoticComponent<_radix_ui_themes.ButtonProps & React$1.RefAttributes<HTMLButtonElement>>, {
|
|
799
800
|
active?: boolean | "true" | undefined;
|
|
@@ -11052,7 +11053,7 @@ declare function StepWrapper({ children, ...props }: {
|
|
|
11052
11053
|
}): react_jsx_runtime.JSX.Element;
|
|
11053
11054
|
|
|
11054
11055
|
declare const CardStyled: _stitches_react_types_styled_component.StyledComponent<React__default.ForwardRefExoticComponent<_radix_ui_themes.CardProps & React__default.RefAttributes<HTMLDivElement>>, {
|
|
11055
|
-
color?: "error" | "primary" | "disable" | undefined;
|
|
11056
|
+
color?: "warning" | "error" | "primary" | "disable" | undefined;
|
|
11056
11057
|
boxShadow?: boolean | "false" | "true" | undefined;
|
|
11057
11058
|
}, {}, _stitches_react_types_css_util.CSS<{}, {
|
|
11058
11059
|
colors: {
|
|
@@ -15202,4 +15203,4 @@ declare const useImageUpload: (options: UseImageUploadOptions) => {
|
|
|
15202
15203
|
reset: () => void;
|
|
15203
15204
|
};
|
|
15204
15205
|
|
|
15205
|
-
export { AddressFormFields, Alert, AlertDialogCompleteStyled, AlertDialogDescriptionStyled, AlertDialogRowStyled, AlertDialogSimpleStyled, AlertDialogSubtitleStyled, AlertDialogTitleStyled, AlertDialoghrStyled, type AlertProps, Avatar, type AvatarProps, AvatarStyled, Badge, type BadgeProps, BadgeStyled, BirthDateFormField, Box, Button, ButtonGroup, type ButtonGroupProps, ButtonGroupStyled, ButtonItem, type ButtonItemProps, ButtonItemStyled, type ButtonProps, CNPJFormField, CPFFormField, Calendar, CalendarFormField, type CalendarFormFieldProps, type CalendarProps, Card, type CardProps, CardStyled, CheckboxGroup, CheckboxGroupFormField, type CheckboxGroupFormFieldProps, type CheckboxGroupProps, CheckboxGroupStyled, CheckboxItem, type CheckboxItemProps, Container, type ContainerProps, ContainerStyled, CountryFormField, Divider, Drawer, type DrawerProps, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuProps, EmailFormField, type EmailFormFieldProps, ErrorFormMessage, type ErrorFormMessageProps, Filter, FilterItem, type FilterItemProps, type FilterProps, Flex, type FlexProps, FlexStyled, Form, FormLabel, type FormLabelProps, type FormProps, Grid, type GridProps, GridStyled, Icon, IdentityDocumentNumberFormField, InputStyled, MenuDropdown, type MenuDropdownProps, Modal, type ModalProps, MultiSelect, MultiSelectFormField, type MultiSelectFormFieldProps, type MultiSelectProps, PhoneFormField, type PhoneFormFieldProps, RadioGroup, RadioGroupFormField, type RadioGroupFormFieldProps, type RadioGroupProps, RadioGroupStyled, RadioItem, type RadioItemProps, RichEditor, RichEditorFormField, type RichEditorFormFieldProps, type RichEditorProps, Section, type SectionProps, SectionStyled, SelectFormField, type SelectFormFieldProps, Step, StepContent, StepList, type StepProps, StepStyled, StepTrigger, StepWrapper, Switch, SwitchFormField, type SwitchFormFieldProps, type SwitchProps, SwitchStyled, Text, TextAreaFormField, type TextAreaFormFieldProps, TextField, type TextFieldProps, TextFieldSlot, type TextFieldSlotProps, TextFieldSlotStyled, TextFieldStyled, TextFormField, type TextFormFieldProps, type TextProps, TextStyle, TextareaField, type TextareaFieldProps, TextareaFieldStyle, TimePicker, TimePickerButtonStyled, TimePickerDropdownStyled, TimePickerFooterStyled, TimePickerFormField, type TimePickerFormFieldProps, TimePickerIconButton, type TimePickerProps, TimePickerStyled, TimerPickerContentStyled, type Toast, type ToastComponentProps, type ToastConfig, type ToastContextType, ToastItem, type ToastOptions, ToastProvider, type ToastProviderProps, type ToastType, type ToasterShowOptions, Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, type UploadConfig, UploadService, isValidCNPJ, maskFormat, maskUnformat, useImageUpload, useToast };
|
|
15206
|
+
export { AddressFormFields, Alert, AlertDialogCompleteStyled, AlertDialogDescriptionStyled, AlertDialogRowStyled, AlertDialogSimpleStyled, AlertDialogSubtitleStyled, AlertDialogTitleStyled, AlertDialoghrStyled, type AlertProps, Avatar, type AvatarProps, AvatarStyled, Badge, type BadgeProps, BadgeStyled, BirthDateFormField, Box, Button, ButtonGroup, type ButtonGroupProps, ButtonGroupStyled, ButtonItem, type ButtonItemProps, ButtonItemStyled, type ButtonProps, CNPJFormField, CPFFormField, Calendar, CalendarFormField, type CalendarFormFieldProps, type CalendarProps, Card, type CardProps, CardStyled, CheckboxGroup, CheckboxGroupFormField, type CheckboxGroupFormFieldProps, type CheckboxGroupProps, CheckboxGroupStyled, CheckboxItem, type CheckboxItemProps, Container, type ContainerProps, ContainerStyled, CountryFormField, Divider, Drawer, type DrawerProps, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuProps, EmailFormField, type EmailFormFieldProps, ErrorFormMessage, type ErrorFormMessageProps, Filter, FilterItem, type FilterItemProps, type FilterProps, Flex, type FlexProps, FlexStyled, Form, FormLabel, type FormLabelProps, type FormProps, Grid, type GridProps, GridStyled, Icon, type IconProps, IdentityDocumentNumberFormField, InputStyled, MenuDropdown, type MenuDropdownProps, Modal, type ModalProps, MultiSelect, MultiSelectFormField, type MultiSelectFormFieldProps, type MultiSelectProps, PhoneFormField, type PhoneFormFieldProps, RadioGroup, RadioGroupFormField, type RadioGroupFormFieldProps, type RadioGroupProps, RadioGroupStyled, RadioItem, type RadioItemProps, RichEditor, RichEditorFormField, type RichEditorFormFieldProps, type RichEditorProps, Section, type SectionProps, SectionStyled, SelectFormField, type SelectFormFieldProps, Step, StepContent, StepList, type StepProps, StepStyled, StepTrigger, StepWrapper, Switch, SwitchFormField, type SwitchFormFieldProps, type SwitchProps, SwitchStyled, Text, TextAreaFormField, type TextAreaFormFieldProps, TextField, type TextFieldProps, TextFieldSlot, type TextFieldSlotProps, TextFieldSlotStyled, TextFieldStyled, TextFormField, type TextFormFieldProps, type TextProps, TextStyle, TextareaField, type TextareaFieldProps, TextareaFieldStyle, TimePicker, TimePickerButtonStyled, TimePickerDropdownStyled, TimePickerFooterStyled, TimePickerFormField, type TimePickerFormFieldProps, TimePickerIconButton, type TimePickerProps, TimePickerStyled, TimerPickerContentStyled, type Toast, type ToastComponentProps, type ToastConfig, type ToastContextType, ToastItem, type ToastOptions, ToastProvider, type ToastProviderProps, type ToastType, type ToasterShowOptions, Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, type UploadConfig, UploadService, isValidCNPJ, maskFormat, maskUnformat, useImageUpload, useToast };
|
package/dist/index.js
CHANGED
|
@@ -1546,6 +1546,9 @@ function Text(_a) {
|
|
|
1546
1546
|
);
|
|
1547
1547
|
}
|
|
1548
1548
|
|
|
1549
|
+
// src/components/Button/index.tsx
|
|
1550
|
+
var import_react2 = require("react");
|
|
1551
|
+
|
|
1549
1552
|
// src/components/Button/styledComponents.ts
|
|
1550
1553
|
var import_themes2 = require("@radix-ui/themes");
|
|
1551
1554
|
var ButtonStyled = styled(import_themes2.Button, {
|
|
@@ -1841,14 +1844,40 @@ var ButtonStyled = styled(import_themes2.Button, {
|
|
|
1841
1844
|
outlinedBgColor: "transparent"
|
|
1842
1845
|
}
|
|
1843
1846
|
});
|
|
1847
|
+
var spin = keyframes({
|
|
1848
|
+
"0%": { transform: "rotate(0deg)" },
|
|
1849
|
+
"100%": { transform: "rotate(360deg)" }
|
|
1850
|
+
});
|
|
1851
|
+
var SpinningDiv = styled("div", {
|
|
1852
|
+
display: "inline-flex",
|
|
1853
|
+
alignItems: "center",
|
|
1854
|
+
justifyContent: "center",
|
|
1855
|
+
animation: `${spin} 1s linear infinite`,
|
|
1856
|
+
transformOrigin: "center center"
|
|
1857
|
+
});
|
|
1844
1858
|
|
|
1845
1859
|
// src/components/Button/index.tsx
|
|
1846
1860
|
var import_themes3 = require("@radix-ui/themes");
|
|
1847
1861
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
1848
1862
|
function Button(_a) {
|
|
1849
|
-
var _b = _a, { asChild } = _b, props = __objRest(_b, ["asChild"]);
|
|
1863
|
+
var _b = _a, { asChild, children, loading } = _b, props = __objRest(_b, ["asChild", "children", "loading"]);
|
|
1850
1864
|
const Component = asChild ? import_themes3.Button : "button";
|
|
1851
|
-
|
|
1865
|
+
const { size } = props;
|
|
1866
|
+
const spinnerSize = (0, import_react2.useMemo)(() => {
|
|
1867
|
+
switch (size) {
|
|
1868
|
+
case "small":
|
|
1869
|
+
return "sm";
|
|
1870
|
+
case "extraSmall":
|
|
1871
|
+
return "xs";
|
|
1872
|
+
case "medium":
|
|
1873
|
+
return "md";
|
|
1874
|
+
case "large":
|
|
1875
|
+
return "xl";
|
|
1876
|
+
default:
|
|
1877
|
+
return "sm";
|
|
1878
|
+
}
|
|
1879
|
+
}, [size]);
|
|
1880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ButtonStyled, __spreadProps(__spreadValues({ as: Component }, props), { children: loading ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SpinningDiv, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Icon_default, { name: "circle-notch", size: spinnerSize }) }) : children }));
|
|
1852
1881
|
}
|
|
1853
1882
|
|
|
1854
1883
|
// src/components/ButtonGroup.tsx
|
|
@@ -2377,7 +2406,7 @@ function Avatar(_a) {
|
|
|
2377
2406
|
}
|
|
2378
2407
|
|
|
2379
2408
|
// src/components/TextField.tsx
|
|
2380
|
-
var
|
|
2409
|
+
var import_react3 = __toESM(require("react"));
|
|
2381
2410
|
var import_themes7 = require("@radix-ui/themes");
|
|
2382
2411
|
|
|
2383
2412
|
// src/components/Flex.tsx
|
|
@@ -2682,7 +2711,7 @@ var TextFieldLimitIndicator = styled("div", {
|
|
|
2682
2711
|
});
|
|
2683
2712
|
var maskFormat = import_mask.format;
|
|
2684
2713
|
var maskUnformat = import_mask.unformat;
|
|
2685
|
-
var TextField =
|
|
2714
|
+
var TextField = import_react3.default.forwardRef(
|
|
2686
2715
|
(_a, fowardedRef) => {
|
|
2687
2716
|
var _b = _a, {
|
|
2688
2717
|
children,
|
|
@@ -2710,8 +2739,8 @@ var TextField = import_react2.default.forwardRef(
|
|
|
2710
2739
|
"hasError"
|
|
2711
2740
|
]);
|
|
2712
2741
|
const maskRef = mask ? (0, import_mask.useMask)(mask) : void 0;
|
|
2713
|
-
const inputRef =
|
|
2714
|
-
const badgeRef =
|
|
2742
|
+
const inputRef = import_react3.default.useRef(null);
|
|
2743
|
+
const badgeRef = import_react3.default.useRef(null);
|
|
2715
2744
|
const updateCharCountBadge = () => {
|
|
2716
2745
|
var _a2, _b2;
|
|
2717
2746
|
if (!maxLength || !badgeRef.current) return;
|
|
@@ -3304,7 +3333,7 @@ function FilterItem(_a) {
|
|
|
3304
3333
|
}
|
|
3305
3334
|
|
|
3306
3335
|
// src/components/Dropdown.tsx
|
|
3307
|
-
var
|
|
3336
|
+
var import_react4 = __toESM(require("react"));
|
|
3308
3337
|
var import_free_solid_svg_icons2 = require("@fortawesome/free-solid-svg-icons");
|
|
3309
3338
|
var import_react_fontawesome2 = require("@fortawesome/react-fontawesome");
|
|
3310
3339
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
@@ -3435,8 +3464,8 @@ function DropdownMenu2(_a) {
|
|
|
3435
3464
|
"onOpenChange",
|
|
3436
3465
|
"defaultOpen"
|
|
3437
3466
|
]);
|
|
3438
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
3439
|
-
const dropdownRef = (0,
|
|
3467
|
+
const [internalOpen, setInternalOpen] = (0, import_react4.useState)(defaultOpen);
|
|
3468
|
+
const dropdownRef = (0, import_react4.useRef)(null);
|
|
3440
3469
|
const isControlled = controlledOpen !== void 0;
|
|
3441
3470
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
3442
3471
|
const handleToggle = () => {
|
|
@@ -3452,7 +3481,7 @@ function DropdownMenu2(_a) {
|
|
|
3452
3481
|
}
|
|
3453
3482
|
onOpenChange == null ? void 0 : onOpenChange(false);
|
|
3454
3483
|
};
|
|
3455
|
-
(0,
|
|
3484
|
+
(0, import_react4.useEffect)(() => {
|
|
3456
3485
|
const handleClickOutside = (event) => {
|
|
3457
3486
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
3458
3487
|
handleClose();
|
|
@@ -3513,7 +3542,7 @@ function DropdownMenu2(_a) {
|
|
|
3513
3542
|
})
|
|
3514
3543
|
);
|
|
3515
3544
|
}
|
|
3516
|
-
var DropdownMenuContext =
|
|
3545
|
+
var DropdownMenuContext = import_react4.default.createContext(null);
|
|
3517
3546
|
function DropdownMenuProvider({
|
|
3518
3547
|
children,
|
|
3519
3548
|
onItemSelect
|
|
@@ -3536,7 +3565,7 @@ function DropdownMenuItem(_a) {
|
|
|
3536
3565
|
"onSelect",
|
|
3537
3566
|
"onClick"
|
|
3538
3567
|
]);
|
|
3539
|
-
const context =
|
|
3568
|
+
const context = import_react4.default.useContext(DropdownMenuContext);
|
|
3540
3569
|
const handleClick = (event) => {
|
|
3541
3570
|
onClick == null ? void 0 : onClick(event);
|
|
3542
3571
|
onSelect == null ? void 0 : onSelect(value);
|
|
@@ -3565,7 +3594,7 @@ function DropdownMenuItem(_a) {
|
|
|
3565
3594
|
}
|
|
3566
3595
|
|
|
3567
3596
|
// src/components/Badge.tsx
|
|
3568
|
-
var
|
|
3597
|
+
var import_react5 = __toESM(require("react"));
|
|
3569
3598
|
var import_themes11 = require("@radix-ui/themes");
|
|
3570
3599
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
3571
3600
|
var BadgeStyled = styled(import_themes11.Badge, {
|
|
@@ -3669,9 +3698,9 @@ var BadgeStyled = styled(import_themes11.Badge, {
|
|
|
3669
3698
|
});
|
|
3670
3699
|
function Badge(_a) {
|
|
3671
3700
|
var _b = _a, { asChild, children } = _b, props = __objRest(_b, ["asChild", "children"]);
|
|
3672
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BadgeStyled, __spreadProps(__spreadValues({}, props), { children:
|
|
3673
|
-
if (
|
|
3674
|
-
return
|
|
3701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BadgeStyled, __spreadProps(__spreadValues({}, props), { children: import_react5.default.Children.map(children, (child) => {
|
|
3702
|
+
if (import_react5.default.isValidElement(child)) {
|
|
3703
|
+
return import_react5.default.cloneElement(child, { size: props.size });
|
|
3675
3704
|
}
|
|
3676
3705
|
return child;
|
|
3677
3706
|
}) }));
|
|
@@ -3775,7 +3804,7 @@ function Modal(_a) {
|
|
|
3775
3804
|
}
|
|
3776
3805
|
|
|
3777
3806
|
// src/components/MenuDropdown/index.tsx
|
|
3778
|
-
var
|
|
3807
|
+
var import_react7 = require("react");
|
|
3779
3808
|
|
|
3780
3809
|
// src/components/MenuDropdown/styledComponents.ts
|
|
3781
3810
|
var MenuDropdownContainerStyled = styled("div", {
|
|
@@ -3809,9 +3838,9 @@ var MenuItemsContainerStyled = styled("div", {
|
|
|
3809
3838
|
});
|
|
3810
3839
|
|
|
3811
3840
|
// src/hooks/useOnClickOutside.tsx
|
|
3812
|
-
var
|
|
3841
|
+
var import_react6 = require("react");
|
|
3813
3842
|
function useOnClickOutside(ref, handler) {
|
|
3814
|
-
(0,
|
|
3843
|
+
(0, import_react6.useEffect)(() => {
|
|
3815
3844
|
const listener = (event) => {
|
|
3816
3845
|
if (!(ref == null ? void 0 : ref.current) || !event.target) {
|
|
3817
3846
|
return;
|
|
@@ -3848,7 +3877,7 @@ function MenuDropdown({
|
|
|
3848
3877
|
isOpen,
|
|
3849
3878
|
setIsOpen
|
|
3850
3879
|
}) {
|
|
3851
|
-
const dropdownItemsContainerRef = (0,
|
|
3880
|
+
const dropdownItemsContainerRef = (0, import_react7.useRef)(null);
|
|
3852
3881
|
useOnClickOutside(dropdownItemsContainerRef, () => {
|
|
3853
3882
|
setIsOpen(false);
|
|
3854
3883
|
});
|
|
@@ -3859,7 +3888,7 @@ function MenuDropdown({
|
|
|
3859
3888
|
}
|
|
3860
3889
|
|
|
3861
3890
|
// src/components/Calendar/index.tsx
|
|
3862
|
-
var
|
|
3891
|
+
var import_react8 = require("react");
|
|
3863
3892
|
var import_react_day_picker = require("react-day-picker");
|
|
3864
3893
|
|
|
3865
3894
|
// ../../node_modules/date-fns/locale/_lib/buildFormatLongFn.js
|
|
@@ -8025,15 +8054,15 @@ function Calendar(_a) {
|
|
|
8025
8054
|
"allowPastDates",
|
|
8026
8055
|
"maxYearsFromNow"
|
|
8027
8056
|
]);
|
|
8028
|
-
const [inputValue, setInputValue] = (0,
|
|
8029
|
-
const [showContainer, setShowCalendar] = (0,
|
|
8030
|
-
const dropdownRef = (0,
|
|
8057
|
+
const [inputValue, setInputValue] = (0, import_react8.useState)("");
|
|
8058
|
+
const [showContainer, setShowCalendar] = (0, import_react8.useState)(false);
|
|
8059
|
+
const dropdownRef = (0, import_react8.useRef)(null);
|
|
8031
8060
|
useOnClickOutside(dropdownRef, () => {
|
|
8032
8061
|
setShowCalendar(false);
|
|
8033
8062
|
});
|
|
8034
8063
|
const today = /* @__PURE__ */ new Date();
|
|
8035
8064
|
const maxDate = addYears(today, maxYearsFromNow);
|
|
8036
|
-
(0,
|
|
8065
|
+
(0, import_react8.useEffect)(() => {
|
|
8037
8066
|
if (selected) {
|
|
8038
8067
|
setInputValue(format2(selected, "dd/MM/yyyy"));
|
|
8039
8068
|
} else {
|
|
@@ -8110,7 +8139,7 @@ function Calendar(_a) {
|
|
|
8110
8139
|
}
|
|
8111
8140
|
|
|
8112
8141
|
// src/components/Drawer/index.tsx
|
|
8113
|
-
var
|
|
8142
|
+
var import_react9 = require("react");
|
|
8114
8143
|
|
|
8115
8144
|
// src/components/Drawer/styledComponents.ts
|
|
8116
8145
|
var DrawerOverlayStyled = styled("div", {
|
|
@@ -8176,7 +8205,7 @@ function Drawer({
|
|
|
8176
8205
|
zIndex
|
|
8177
8206
|
}) {
|
|
8178
8207
|
if (!isOpen) return null;
|
|
8179
|
-
const drawerContainerRef = (0,
|
|
8208
|
+
const drawerContainerRef = (0, import_react9.useRef)(null);
|
|
8180
8209
|
useOnClickOutside(drawerContainerRef, (event) => {
|
|
8181
8210
|
var _a;
|
|
8182
8211
|
if (!event || !drawerContainerRef.current) {
|
|
@@ -8248,7 +8277,7 @@ function Drawer({
|
|
|
8248
8277
|
}
|
|
8249
8278
|
|
|
8250
8279
|
// src/components/TimePicker.tsx
|
|
8251
|
-
var
|
|
8280
|
+
var import_react10 = require("react");
|
|
8252
8281
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
8253
8282
|
var TimePickerStyled = styled("div", {
|
|
8254
8283
|
position: "relative",
|
|
@@ -8371,14 +8400,14 @@ function TimePicker({
|
|
|
8371
8400
|
hasError,
|
|
8372
8401
|
expand = false
|
|
8373
8402
|
}) {
|
|
8374
|
-
const [hours, setHours] = (0,
|
|
8375
|
-
const [minutes, setMinutes] = (0,
|
|
8376
|
-
const [rawHours, setRawHours] = (0,
|
|
8377
|
-
const [rawMinutes, setRawMinutes] = (0,
|
|
8378
|
-
const [isOpen, setIsOpen] = (0,
|
|
8379
|
-
const dropdownRef = (0,
|
|
8403
|
+
const [hours, setHours] = (0, import_react10.useState)("00");
|
|
8404
|
+
const [minutes, setMinutes] = (0, import_react10.useState)("00");
|
|
8405
|
+
const [rawHours, setRawHours] = (0, import_react10.useState)("00");
|
|
8406
|
+
const [rawMinutes, setRawMinutes] = (0, import_react10.useState)("00");
|
|
8407
|
+
const [isOpen, setIsOpen] = (0, import_react10.useState)(false);
|
|
8408
|
+
const dropdownRef = (0, import_react10.useRef)(null);
|
|
8380
8409
|
useOnClickOutside(dropdownRef, () => setIsOpen(false));
|
|
8381
|
-
const handleIncrement = (0,
|
|
8410
|
+
const handleIncrement = (0, import_react10.useCallback)(
|
|
8382
8411
|
(type) => {
|
|
8383
8412
|
if (type === "hours") {
|
|
8384
8413
|
const next = (parseInt(hours) + 1) % 24;
|
|
@@ -8392,7 +8421,7 @@ function TimePicker({
|
|
|
8392
8421
|
},
|
|
8393
8422
|
[hours, minutes]
|
|
8394
8423
|
);
|
|
8395
|
-
const handleDecrement = (0,
|
|
8424
|
+
const handleDecrement = (0, import_react10.useCallback)(
|
|
8396
8425
|
(type) => {
|
|
8397
8426
|
if (type === "hours") {
|
|
8398
8427
|
const prev = (parseInt(hours) - 1 + 24) % 24;
|
|
@@ -8916,7 +8945,7 @@ function Switch(props) {
|
|
|
8916
8945
|
}
|
|
8917
8946
|
|
|
8918
8947
|
// src/components/Step.tsx
|
|
8919
|
-
var
|
|
8948
|
+
var import_react11 = __toESM(require("react"));
|
|
8920
8949
|
var import_themes15 = require("@radix-ui/themes");
|
|
8921
8950
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
8922
8951
|
var StepStyled = styled("div", {
|
|
@@ -9032,9 +9061,9 @@ function StepList(_a) {
|
|
|
9032
9061
|
"children",
|
|
9033
9062
|
"currentStep"
|
|
9034
9063
|
]);
|
|
9035
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StepListStyled, __spreadProps(__spreadValues({}, props), { children:
|
|
9036
|
-
if (
|
|
9037
|
-
return
|
|
9064
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StepListStyled, __spreadProps(__spreadValues({}, props), { children: import_react11.default.Children.map(children, (child) => {
|
|
9065
|
+
if (import_react11.default.isValidElement(child) && child.type === StepTrigger) {
|
|
9066
|
+
return import_react11.default.cloneElement(child, { currentStep });
|
|
9038
9067
|
}
|
|
9039
9068
|
return child;
|
|
9040
9069
|
}) }));
|
|
@@ -9072,6 +9101,10 @@ var CardStyled = styled(import_themes16.Card, {
|
|
|
9072
9101
|
error: {
|
|
9073
9102
|
backgroundColor: "$error50",
|
|
9074
9103
|
border: "1px solid $error600"
|
|
9104
|
+
},
|
|
9105
|
+
warning: {
|
|
9106
|
+
backgroundColor: "$yellow50",
|
|
9107
|
+
border: "1px solid $yellow600"
|
|
9075
9108
|
}
|
|
9076
9109
|
},
|
|
9077
9110
|
boxShadow: {
|
|
@@ -9091,7 +9124,7 @@ function Card(_a) {
|
|
|
9091
9124
|
|
|
9092
9125
|
// src/components/TextareaField.tsx
|
|
9093
9126
|
var import_themes17 = require("@radix-ui/themes");
|
|
9094
|
-
var
|
|
9127
|
+
var import_react12 = __toESM(require("react"));
|
|
9095
9128
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
9096
9129
|
var TextareaFieldStyle = styled(import_themes17.TextArea, {
|
|
9097
9130
|
display: "flex",
|
|
@@ -9156,11 +9189,11 @@ var TextareaLimitIndicator = styled("div", {
|
|
|
9156
9189
|
padding: "$4"
|
|
9157
9190
|
}
|
|
9158
9191
|
});
|
|
9159
|
-
var TextareaField =
|
|
9192
|
+
var TextareaField = import_react12.default.forwardRef((_a, forwardedRef) => {
|
|
9160
9193
|
var _b = _a, { maxLength, color } = _b, props = __objRest(_b, ["maxLength", "color"]);
|
|
9161
|
-
const inputRef = (0,
|
|
9162
|
-
const [remaining, setRemaining] = (0,
|
|
9163
|
-
(0,
|
|
9194
|
+
const inputRef = (0, import_react12.useRef)(null);
|
|
9195
|
+
const [remaining, setRemaining] = (0, import_react12.useState)(maxLength);
|
|
9196
|
+
(0, import_react12.useEffect)(() => {
|
|
9164
9197
|
var _a2;
|
|
9165
9198
|
if (maxLength && inputRef.current) {
|
|
9166
9199
|
setRemaining(maxLength - ((_a2 = inputRef.current.value.length) != null ? _a2 : 0));
|
|
@@ -9195,12 +9228,12 @@ var TextareaField = import_react11.default.forwardRef((_a, forwardedRef) => {
|
|
|
9195
9228
|
});
|
|
9196
9229
|
|
|
9197
9230
|
// src/components/Toast/components/ToastItem.tsx
|
|
9198
|
-
var
|
|
9231
|
+
var import_react14 = require("react");
|
|
9199
9232
|
|
|
9200
9233
|
// src/components/Toast/styles/index.ts
|
|
9201
|
-
var
|
|
9234
|
+
var import_react13 = require("@stitches/react");
|
|
9202
9235
|
var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
|
|
9203
|
-
var slideIn = (0,
|
|
9236
|
+
var slideIn = (0, import_react13.keyframes)({
|
|
9204
9237
|
from: {
|
|
9205
9238
|
transform: "translateX(calc(100% + 25px))",
|
|
9206
9239
|
opacity: 0
|
|
@@ -9210,7 +9243,7 @@ var slideIn = (0, import_react12.keyframes)({
|
|
|
9210
9243
|
opacity: 1
|
|
9211
9244
|
}
|
|
9212
9245
|
});
|
|
9213
|
-
var slideOut = (0,
|
|
9246
|
+
var slideOut = (0, import_react13.keyframes)({
|
|
9214
9247
|
from: {
|
|
9215
9248
|
transform: "translateX(0)",
|
|
9216
9249
|
opacity: 1
|
|
@@ -9220,7 +9253,7 @@ var slideOut = (0, import_react12.keyframes)({
|
|
|
9220
9253
|
opacity: 0
|
|
9221
9254
|
}
|
|
9222
9255
|
});
|
|
9223
|
-
var swipeOut = (0,
|
|
9256
|
+
var swipeOut = (0, import_react13.keyframes)({
|
|
9224
9257
|
from: {
|
|
9225
9258
|
transform: "translateX(var(--radix-toast-swipe-end-x))",
|
|
9226
9259
|
opacity: 1
|
|
@@ -9326,7 +9359,7 @@ function ToastItem({
|
|
|
9326
9359
|
toast,
|
|
9327
9360
|
onRemove
|
|
9328
9361
|
}) {
|
|
9329
|
-
const [open, setOpen] = (0,
|
|
9362
|
+
const [open, setOpen] = (0, import_react14.useState)(true);
|
|
9330
9363
|
const handleOpenChange = (open2) => {
|
|
9331
9364
|
setOpen(open2);
|
|
9332
9365
|
if (!open2) {
|
|
@@ -9350,17 +9383,17 @@ function ToastItem({
|
|
|
9350
9383
|
}
|
|
9351
9384
|
|
|
9352
9385
|
// src/components/Toast/components/ToastProvider.tsx
|
|
9353
|
-
var
|
|
9386
|
+
var import_react15 = require("react");
|
|
9354
9387
|
var ToastPrimitive2 = __toESM(require("@radix-ui/react-toast"));
|
|
9355
9388
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
9356
|
-
var ToastContext = (0,
|
|
9389
|
+
var ToastContext = (0, import_react15.createContext)(null);
|
|
9357
9390
|
function ToastProvider({
|
|
9358
9391
|
children,
|
|
9359
9392
|
defaultDuration = 5e3,
|
|
9360
9393
|
maxToasts = 5,
|
|
9361
9394
|
swipeDirection = "right"
|
|
9362
9395
|
}) {
|
|
9363
|
-
const [toasts, setToasts] = (0,
|
|
9396
|
+
const [toasts, setToasts] = (0, import_react15.useState)([]);
|
|
9364
9397
|
const addToast = (toastData) => {
|
|
9365
9398
|
const id = Math.random().toString(36).substr(2, 9);
|
|
9366
9399
|
const newToast = __spreadProps(__spreadValues({
|
|
@@ -9396,9 +9429,9 @@ function ToastProvider({
|
|
|
9396
9429
|
}
|
|
9397
9430
|
|
|
9398
9431
|
// src/components/Toast/hooks/useToast.ts
|
|
9399
|
-
var
|
|
9432
|
+
var import_react16 = require("react");
|
|
9400
9433
|
var useToast = () => {
|
|
9401
|
-
const context = (0,
|
|
9434
|
+
const context = (0, import_react16.useContext)(ToastContext);
|
|
9402
9435
|
if (!context) {
|
|
9403
9436
|
throw new Error("useToast deve ser usado dentro de um ToastProvider");
|
|
9404
9437
|
}
|
|
@@ -9456,11 +9489,11 @@ function Tooltip({
|
|
|
9456
9489
|
}
|
|
9457
9490
|
|
|
9458
9491
|
// src/components/MultiSelect/index.tsx
|
|
9459
|
-
var
|
|
9492
|
+
var import_react17 = __toESM(require("react"));
|
|
9460
9493
|
var import_themes19 = require("@radix-ui/themes");
|
|
9461
9494
|
var import_react_fontawesome3 = require("@fortawesome/react-fontawesome");
|
|
9462
9495
|
var import_free_solid_svg_icons3 = require("@fortawesome/free-solid-svg-icons");
|
|
9463
|
-
var
|
|
9496
|
+
var import_react18 = require("react");
|
|
9464
9497
|
|
|
9465
9498
|
// src/components/MultiSelect/styledComponents.ts
|
|
9466
9499
|
var import_themes18 = require("@radix-ui/themes");
|
|
@@ -9610,7 +9643,7 @@ var ButtonSelectAllStyled = styled("button", {
|
|
|
9610
9643
|
|
|
9611
9644
|
// src/components/MultiSelect/index.tsx
|
|
9612
9645
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
9613
|
-
var MultiSelect =
|
|
9646
|
+
var MultiSelect = import_react17.default.forwardRef(
|
|
9614
9647
|
({
|
|
9615
9648
|
placeholder,
|
|
9616
9649
|
value: selectedValues = [],
|
|
@@ -9628,24 +9661,24 @@ var MultiSelect = import_react16.default.forwardRef(
|
|
|
9628
9661
|
selectedAllText,
|
|
9629
9662
|
selectedScroll = false
|
|
9630
9663
|
}, fowardedRef) => {
|
|
9631
|
-
const [isOpen, setIsOpen] = (0,
|
|
9632
|
-
const triggerRef = (0,
|
|
9633
|
-
const [allOptionsSelected, setAllOptionsSelected] = (0,
|
|
9634
|
-
const labelByValue = (0,
|
|
9664
|
+
const [isOpen, setIsOpen] = (0, import_react17.useState)(false);
|
|
9665
|
+
const triggerRef = (0, import_react17.useRef)(null);
|
|
9666
|
+
const [allOptionsSelected, setAllOptionsSelected] = (0, import_react17.useState)(false);
|
|
9667
|
+
const labelByValue = (0, import_react18.useMemo)(() => {
|
|
9635
9668
|
return options.reduce((prev, curr) => {
|
|
9636
9669
|
return __spreadProps(__spreadValues({}, prev), {
|
|
9637
9670
|
[curr.value]: curr.label
|
|
9638
9671
|
});
|
|
9639
9672
|
}, {});
|
|
9640
9673
|
}, [options]);
|
|
9641
|
-
const handleRemove = (0,
|
|
9674
|
+
const handleRemove = (0, import_react17.useCallback)(
|
|
9642
9675
|
(value) => {
|
|
9643
9676
|
const newValue = selectedValues.filter((v) => v !== value);
|
|
9644
9677
|
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
9645
9678
|
},
|
|
9646
9679
|
[selectedValues, onValueChange]
|
|
9647
9680
|
);
|
|
9648
|
-
const handleSelectAll = (0,
|
|
9681
|
+
const handleSelectAll = (0, import_react17.useCallback)(
|
|
9649
9682
|
(e) => {
|
|
9650
9683
|
e.preventDefault();
|
|
9651
9684
|
e.stopPropagation();
|
|
@@ -9660,7 +9693,7 @@ var MultiSelect = import_react16.default.forwardRef(
|
|
|
9660
9693
|
},
|
|
9661
9694
|
[selectedValues, options, onValueChange]
|
|
9662
9695
|
);
|
|
9663
|
-
const text = (0,
|
|
9696
|
+
const text = (0, import_react18.useMemo)(() => {
|
|
9664
9697
|
if (selectedValues.length > 0 && singleSelect) {
|
|
9665
9698
|
const value = selectedValues[0];
|
|
9666
9699
|
return labelByValue[value];
|
|
@@ -9671,7 +9704,7 @@ var MultiSelect = import_react16.default.forwardRef(
|
|
|
9671
9704
|
onValueChange == null ? void 0 : onValueChange([v]);
|
|
9672
9705
|
setIsOpen(false);
|
|
9673
9706
|
};
|
|
9674
|
-
const handleToggle = (0,
|
|
9707
|
+
const handleToggle = (0, import_react17.useCallback)(
|
|
9675
9708
|
(e) => {
|
|
9676
9709
|
e.preventDefault();
|
|
9677
9710
|
e.stopPropagation();
|
|
@@ -10110,7 +10143,7 @@ var TextAreaFormField = (_a) => {
|
|
|
10110
10143
|
|
|
10111
10144
|
// src/components/FormFields/TextFormField.tsx
|
|
10112
10145
|
var import_react_hook_form2 = require("react-hook-form");
|
|
10113
|
-
var
|
|
10146
|
+
var import_react19 = require("react");
|
|
10114
10147
|
var import_mask2 = require("@react-input/mask");
|
|
10115
10148
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
10116
10149
|
var TextFormField = (_a) => {
|
|
@@ -10133,7 +10166,7 @@ var TextFormField = (_a) => {
|
|
|
10133
10166
|
"onChange",
|
|
10134
10167
|
"valueFormatter"
|
|
10135
10168
|
]);
|
|
10136
|
-
const handleValidate = (0,
|
|
10169
|
+
const handleValidate = (0, import_react19.useCallback)(
|
|
10137
10170
|
(value) => {
|
|
10138
10171
|
var _a2;
|
|
10139
10172
|
if (value === void 0 || value === null || !required && value.trim() === "")
|
|
@@ -10155,7 +10188,7 @@ var TextFormField = (_a) => {
|
|
|
10155
10188
|
const haveError = !!fieldError;
|
|
10156
10189
|
const errorMsg = fieldError == null ? void 0 : fieldError.message;
|
|
10157
10190
|
const { value: formValue, onChange: formChange } = field;
|
|
10158
|
-
const formattedValue = (0,
|
|
10191
|
+
const formattedValue = (0, import_react19.useMemo)(() => {
|
|
10159
10192
|
let value = formValue;
|
|
10160
10193
|
if (valueFormatter) value = valueFormatter.format(value);
|
|
10161
10194
|
if (mask) value = (0, import_mask2.format)(value != null ? value : "", mask);
|
|
@@ -10750,7 +10783,7 @@ function StateFormField({
|
|
|
10750
10783
|
}
|
|
10751
10784
|
|
|
10752
10785
|
// src/components/FormFields/AddressFormFields/CityFormField.tsx
|
|
10753
|
-
var
|
|
10786
|
+
var import_react20 = require("react");
|
|
10754
10787
|
var import_react_hook_form7 = require("react-hook-form");
|
|
10755
10788
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
10756
10789
|
function CityFormField({
|
|
@@ -10763,9 +10796,9 @@ function CityFormField({
|
|
|
10763
10796
|
}) {
|
|
10764
10797
|
const { control, watch } = (0, import_react_hook_form7.useFormContext)();
|
|
10765
10798
|
const selectedState = watch(stateName);
|
|
10766
|
-
const [cities, setCities] = (0,
|
|
10767
|
-
const [loading, setLoading] = (0,
|
|
10768
|
-
(0,
|
|
10799
|
+
const [cities, setCities] = (0, import_react20.useState)([]);
|
|
10800
|
+
const [loading, setLoading] = (0, import_react20.useState)(false);
|
|
10801
|
+
(0, import_react20.useEffect)(() => {
|
|
10769
10802
|
if (!isBrazil) {
|
|
10770
10803
|
setCities([]);
|
|
10771
10804
|
return;
|
|
@@ -11153,10 +11186,10 @@ var EmailFormField = ({
|
|
|
11153
11186
|
var import_react_hook_form12 = require("react-hook-form");
|
|
11154
11187
|
|
|
11155
11188
|
// src/components/RichEditor/RichEditor.tsx
|
|
11156
|
-
var
|
|
11189
|
+
var import_react22 = require("react");
|
|
11157
11190
|
|
|
11158
11191
|
// src/components/RichEditor/QuillComponent.tsx
|
|
11159
|
-
var
|
|
11192
|
+
var import_react21 = require("react");
|
|
11160
11193
|
var import_react_quilljs = require("react-quilljs");
|
|
11161
11194
|
|
|
11162
11195
|
// src/utils/uploadService.ts
|
|
@@ -12225,12 +12258,12 @@ var QuillComponent = ({
|
|
|
12225
12258
|
onCharacterCountChange,
|
|
12226
12259
|
maxLength
|
|
12227
12260
|
}) => {
|
|
12228
|
-
const [showVideoModal, setShowVideoModal] = (0,
|
|
12229
|
-
const [videoUrl, setVideoUrl] = (0,
|
|
12230
|
-
const [showLinkModal, setShowLinkModal] = (0,
|
|
12231
|
-
const [linkUrl, setLinkUrl] = (0,
|
|
12232
|
-
const videoModalRef = (0,
|
|
12233
|
-
const linkModalRef = (0,
|
|
12261
|
+
const [showVideoModal, setShowVideoModal] = (0, import_react21.useState)(false);
|
|
12262
|
+
const [videoUrl, setVideoUrl] = (0, import_react21.useState)("");
|
|
12263
|
+
const [showLinkModal, setShowLinkModal] = (0, import_react21.useState)(false);
|
|
12264
|
+
const [linkUrl, setLinkUrl] = (0, import_react21.useState)("");
|
|
12265
|
+
const videoModalRef = (0, import_react21.useRef)(null);
|
|
12266
|
+
const linkModalRef = (0, import_react21.useRef)(null);
|
|
12234
12267
|
const { addToast, removeToast } = useToast();
|
|
12235
12268
|
const formatHTML = (html) => {
|
|
12236
12269
|
const parser = new DOMParser();
|
|
@@ -12294,7 +12327,7 @@ var QuillComponent = ({
|
|
|
12294
12327
|
placeholder,
|
|
12295
12328
|
readOnly: disabled
|
|
12296
12329
|
});
|
|
12297
|
-
const handleImageUpload = (0,
|
|
12330
|
+
const handleImageUpload = (0, import_react21.useCallback)(
|
|
12298
12331
|
(file) => __async(null, null, function* () {
|
|
12299
12332
|
if (disabled || !quill || !uploadConfig) return;
|
|
12300
12333
|
try {
|
|
@@ -12326,7 +12359,7 @@ var QuillComponent = ({
|
|
|
12326
12359
|
}),
|
|
12327
12360
|
[disabled, quill, addToast, removeToast, uploadConfig, onChange]
|
|
12328
12361
|
);
|
|
12329
|
-
(0,
|
|
12362
|
+
(0, import_react21.useEffect)(() => {
|
|
12330
12363
|
if (quill && value) {
|
|
12331
12364
|
const currentContent = quill.root.innerHTML;
|
|
12332
12365
|
if (currentContent !== value) {
|
|
@@ -12340,7 +12373,7 @@ var QuillComponent = ({
|
|
|
12340
12373
|
}
|
|
12341
12374
|
}
|
|
12342
12375
|
}, [quill, value]);
|
|
12343
|
-
(0,
|
|
12376
|
+
(0, import_react21.useEffect)(() => {
|
|
12344
12377
|
if (quill) {
|
|
12345
12378
|
quill.on("text-change", (delta, oldDelta, source) => {
|
|
12346
12379
|
if (source === "user") {
|
|
@@ -12395,7 +12428,7 @@ var QuillComponent = ({
|
|
|
12395
12428
|
}, 2e3);
|
|
12396
12429
|
}
|
|
12397
12430
|
}, [quill, onChange, handleImageUpload, onCharacterCountChange]);
|
|
12398
|
-
(0,
|
|
12431
|
+
(0, import_react21.useEffect)(() => {
|
|
12399
12432
|
if (quill) {
|
|
12400
12433
|
quill.enable(!disabled);
|
|
12401
12434
|
if (!disabled) {
|
|
@@ -12406,11 +12439,11 @@ var QuillComponent = ({
|
|
|
12406
12439
|
}
|
|
12407
12440
|
}
|
|
12408
12441
|
}, [quill, disabled]);
|
|
12409
|
-
const handleLinkCancel = (0,
|
|
12442
|
+
const handleLinkCancel = (0, import_react21.useCallback)(() => {
|
|
12410
12443
|
setLinkUrl("");
|
|
12411
12444
|
setShowLinkModal(false);
|
|
12412
12445
|
}, []);
|
|
12413
|
-
const handleLinkSubmit = (0,
|
|
12446
|
+
const handleLinkSubmit = (0, import_react21.useCallback)(() => {
|
|
12414
12447
|
if (!linkUrl.trim() || !quill) return;
|
|
12415
12448
|
const url = linkUrl.trim();
|
|
12416
12449
|
const selection = quill.getSelection();
|
|
@@ -12425,11 +12458,11 @@ var QuillComponent = ({
|
|
|
12425
12458
|
setLinkUrl("");
|
|
12426
12459
|
setShowLinkModal(false);
|
|
12427
12460
|
}, [linkUrl, quill]);
|
|
12428
|
-
const handleVideoCancel = (0,
|
|
12461
|
+
const handleVideoCancel = (0, import_react21.useCallback)(() => {
|
|
12429
12462
|
setVideoUrl("");
|
|
12430
12463
|
setShowVideoModal(false);
|
|
12431
12464
|
}, []);
|
|
12432
|
-
const handleVideoSubmit = (0,
|
|
12465
|
+
const handleVideoSubmit = (0, import_react21.useCallback)(() => {
|
|
12433
12466
|
var _a, _b;
|
|
12434
12467
|
if (!videoUrl.trim() || !quill) return;
|
|
12435
12468
|
let processedUrl = videoUrl.trim();
|
|
@@ -12462,7 +12495,7 @@ var QuillComponent = ({
|
|
|
12462
12495
|
setVideoUrl("");
|
|
12463
12496
|
setShowVideoModal(false);
|
|
12464
12497
|
}, [videoUrl, quill]);
|
|
12465
|
-
(0,
|
|
12498
|
+
(0, import_react21.useEffect)(() => {
|
|
12466
12499
|
const handleClickOutside = (event) => {
|
|
12467
12500
|
if (showVideoModal && videoModalRef.current && !videoModalRef.current.contains(event.target)) {
|
|
12468
12501
|
handleVideoCancel();
|
|
@@ -12624,8 +12657,8 @@ var QuillComponent_default = QuillComponent;
|
|
|
12624
12657
|
// src/components/RichEditor/RichEditor.tsx
|
|
12625
12658
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
12626
12659
|
var RichEditor = (props) => {
|
|
12627
|
-
const [isClient, setIsClient] = (0,
|
|
12628
|
-
(0,
|
|
12660
|
+
const [isClient, setIsClient] = (0, import_react22.useState)(false);
|
|
12661
|
+
(0, import_react22.useEffect)(() => {
|
|
12629
12662
|
setIsClient(typeof window !== "undefined");
|
|
12630
12663
|
}, []);
|
|
12631
12664
|
if (!isClient) return null;
|
|
@@ -12634,7 +12667,7 @@ var RichEditor = (props) => {
|
|
|
12634
12667
|
var RichEditor_default = RichEditor;
|
|
12635
12668
|
|
|
12636
12669
|
// src/components/FormFields/RichEditorFormField.tsx
|
|
12637
|
-
var
|
|
12670
|
+
var import_react23 = require("react");
|
|
12638
12671
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
12639
12672
|
var RichEditorFormField = (_a) => {
|
|
12640
12673
|
var _b = _a, {
|
|
@@ -12669,7 +12702,7 @@ var RichEditorFormField = (_a) => {
|
|
|
12669
12702
|
},
|
|
12670
12703
|
defaultValue: ""
|
|
12671
12704
|
});
|
|
12672
|
-
const [caracterQuantity, setCaracterQuantity] = (0,
|
|
12705
|
+
const [caracterQuantity, setCaracterQuantity] = (0, import_react23.useState)(maxLength);
|
|
12673
12706
|
const handleCharacterCountChange = (count) => {
|
|
12674
12707
|
if (maxLength !== void 0) {
|
|
12675
12708
|
setCaracterQuantity(Math.max(0, maxLength - count));
|
|
@@ -12717,7 +12750,7 @@ var RichEditorFormField = (_a) => {
|
|
|
12717
12750
|
|
|
12718
12751
|
// src/components/FormFields/CalendarFormField.tsx
|
|
12719
12752
|
var import_react_hook_form13 = require("react-hook-form");
|
|
12720
|
-
var
|
|
12753
|
+
var import_react24 = require("react");
|
|
12721
12754
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
12722
12755
|
var CalendarFormField = (_a) => {
|
|
12723
12756
|
var _b = _a, {
|
|
@@ -12741,7 +12774,7 @@ var CalendarFormField = (_a) => {
|
|
|
12741
12774
|
"allowPastDates",
|
|
12742
12775
|
"maxYearsFromNow"
|
|
12743
12776
|
]);
|
|
12744
|
-
const handleValidate = (0,
|
|
12777
|
+
const handleValidate = (0, import_react24.useCallback)(
|
|
12745
12778
|
(value) => {
|
|
12746
12779
|
var _a2;
|
|
12747
12780
|
if (value === void 0 || value === null) {
|
|
@@ -12796,7 +12829,7 @@ var CalendarFormField = (_a) => {
|
|
|
12796
12829
|
|
|
12797
12830
|
// src/components/FormFields/TimePickerFormField.tsx
|
|
12798
12831
|
var import_react_hook_form14 = require("react-hook-form");
|
|
12799
|
-
var
|
|
12832
|
+
var import_react25 = require("react");
|
|
12800
12833
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
12801
12834
|
var TimePickerFormField = (_a) => {
|
|
12802
12835
|
var _b = _a, {
|
|
@@ -12814,7 +12847,7 @@ var TimePickerFormField = (_a) => {
|
|
|
12814
12847
|
"validationErrorMessage",
|
|
12815
12848
|
"rules"
|
|
12816
12849
|
]);
|
|
12817
|
-
const handleValidate = (0,
|
|
12850
|
+
const handleValidate = (0, import_react25.useCallback)(
|
|
12818
12851
|
(value) => {
|
|
12819
12852
|
var _a2;
|
|
12820
12853
|
if (value === void 0 || value === null || value === "") {
|
|
@@ -12866,11 +12899,11 @@ var TimePickerFormField = (_a) => {
|
|
|
12866
12899
|
};
|
|
12867
12900
|
|
|
12868
12901
|
// src/hooks/useImageUpload.ts
|
|
12869
|
-
var
|
|
12902
|
+
var import_react26 = require("react");
|
|
12870
12903
|
var useImageUpload = (options) => {
|
|
12871
|
-
const [isUploading, setIsUploading] = (0,
|
|
12872
|
-
const [progress, setProgress] = (0,
|
|
12873
|
-
const [error, setError] = (0,
|
|
12904
|
+
const [isUploading, setIsUploading] = (0, import_react26.useState)(false);
|
|
12905
|
+
const [progress, setProgress] = (0, import_react26.useState)(null);
|
|
12906
|
+
const [error, setError] = (0, import_react26.useState)(null);
|
|
12874
12907
|
const {
|
|
12875
12908
|
onSuccess,
|
|
12876
12909
|
onError,
|
|
@@ -12880,7 +12913,7 @@ var useImageUpload = (options) => {
|
|
|
12880
12913
|
allowedTypes = ["image/jpeg", "image/png", "image/gif", "image/webp"],
|
|
12881
12914
|
uploadConfig
|
|
12882
12915
|
} = options;
|
|
12883
|
-
const validateFile = (0,
|
|
12916
|
+
const validateFile = (0, import_react26.useCallback)(
|
|
12884
12917
|
(file) => {
|
|
12885
12918
|
if (!allowedTypes.includes(file.type)) {
|
|
12886
12919
|
const errorMsg = "Tipo de arquivo n\xE3o suportado";
|
|
@@ -12898,7 +12931,7 @@ var useImageUpload = (options) => {
|
|
|
12898
12931
|
},
|
|
12899
12932
|
[allowedTypes, maxFileSize, onError]
|
|
12900
12933
|
);
|
|
12901
|
-
const uploadFile = (0,
|
|
12934
|
+
const uploadFile = (0, import_react26.useCallback)(
|
|
12902
12935
|
(file) => __async(null, null, function* () {
|
|
12903
12936
|
if (!validateFile(file)) {
|
|
12904
12937
|
return null;
|
|
@@ -12951,7 +12984,7 @@ var useImageUpload = (options) => {
|
|
|
12951
12984
|
}),
|
|
12952
12985
|
[validateFile, onSuccess, onError, onProgress]
|
|
12953
12986
|
);
|
|
12954
|
-
const reset = (0,
|
|
12987
|
+
const reset = (0, import_react26.useCallback)(() => {
|
|
12955
12988
|
setIsUploading(false);
|
|
12956
12989
|
setProgress(null);
|
|
12957
12990
|
setError(null);
|
package/dist/index.mjs
CHANGED
|
@@ -1430,6 +1430,9 @@ function Text(_a) {
|
|
|
1430
1430
|
);
|
|
1431
1431
|
}
|
|
1432
1432
|
|
|
1433
|
+
// src/components/Button/index.tsx
|
|
1434
|
+
import { useMemo } from "react";
|
|
1435
|
+
|
|
1433
1436
|
// src/components/Button/styledComponents.ts
|
|
1434
1437
|
import { Button as ButtonRadix } from "@radix-ui/themes";
|
|
1435
1438
|
var ButtonStyled = styled(ButtonRadix, {
|
|
@@ -1725,14 +1728,40 @@ var ButtonStyled = styled(ButtonRadix, {
|
|
|
1725
1728
|
outlinedBgColor: "transparent"
|
|
1726
1729
|
}
|
|
1727
1730
|
});
|
|
1731
|
+
var spin = keyframes({
|
|
1732
|
+
"0%": { transform: "rotate(0deg)" },
|
|
1733
|
+
"100%": { transform: "rotate(360deg)" }
|
|
1734
|
+
});
|
|
1735
|
+
var SpinningDiv = styled("div", {
|
|
1736
|
+
display: "inline-flex",
|
|
1737
|
+
alignItems: "center",
|
|
1738
|
+
justifyContent: "center",
|
|
1739
|
+
animation: `${spin} 1s linear infinite`,
|
|
1740
|
+
transformOrigin: "center center"
|
|
1741
|
+
});
|
|
1728
1742
|
|
|
1729
1743
|
// src/components/Button/index.tsx
|
|
1730
1744
|
import { Button as ButtonRadix2 } from "@radix-ui/themes";
|
|
1731
1745
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
1732
1746
|
function Button(_a) {
|
|
1733
|
-
var _b = _a, { asChild } = _b, props = __objRest(_b, ["asChild"]);
|
|
1747
|
+
var _b = _a, { asChild, children, loading } = _b, props = __objRest(_b, ["asChild", "children", "loading"]);
|
|
1734
1748
|
const Component = asChild ? ButtonRadix2 : "button";
|
|
1735
|
-
|
|
1749
|
+
const { size } = props;
|
|
1750
|
+
const spinnerSize = useMemo(() => {
|
|
1751
|
+
switch (size) {
|
|
1752
|
+
case "small":
|
|
1753
|
+
return "sm";
|
|
1754
|
+
case "extraSmall":
|
|
1755
|
+
return "xs";
|
|
1756
|
+
case "medium":
|
|
1757
|
+
return "md";
|
|
1758
|
+
case "large":
|
|
1759
|
+
return "xl";
|
|
1760
|
+
default:
|
|
1761
|
+
return "sm";
|
|
1762
|
+
}
|
|
1763
|
+
}, [size]);
|
|
1764
|
+
return /* @__PURE__ */ jsx3(ButtonStyled, __spreadProps(__spreadValues({ as: Component }, props), { children: loading ? /* @__PURE__ */ jsx3(SpinningDiv, { children: /* @__PURE__ */ jsx3(Icon_default, { name: "circle-notch", size: spinnerSize }) }) : children }));
|
|
1736
1765
|
}
|
|
1737
1766
|
|
|
1738
1767
|
// src/components/ButtonGroup.tsx
|
|
@@ -8960,6 +8989,10 @@ var CardStyled = styled(CardRadix, {
|
|
|
8960
8989
|
error: {
|
|
8961
8990
|
backgroundColor: "$error50",
|
|
8962
8991
|
border: "1px solid $error600"
|
|
8992
|
+
},
|
|
8993
|
+
warning: {
|
|
8994
|
+
backgroundColor: "$yellow50",
|
|
8995
|
+
border: "1px solid $yellow600"
|
|
8963
8996
|
}
|
|
8964
8997
|
},
|
|
8965
8998
|
boxShadow: {
|
|
@@ -9352,7 +9385,7 @@ import {
|
|
|
9352
9385
|
faChevronUp as faChevronUp2,
|
|
9353
9386
|
faSquareXmark
|
|
9354
9387
|
} from "@fortawesome/free-solid-svg-icons";
|
|
9355
|
-
import { useMemo } from "react";
|
|
9388
|
+
import { useMemo as useMemo2 } from "react";
|
|
9356
9389
|
|
|
9357
9390
|
// src/components/MultiSelect/styledComponents.ts
|
|
9358
9391
|
import { DropdownMenu as DropdownMenu3 } from "@radix-ui/themes";
|
|
@@ -9523,7 +9556,7 @@ var MultiSelect = React9.forwardRef(
|
|
|
9523
9556
|
const [isOpen, setIsOpen] = useState7(false);
|
|
9524
9557
|
const triggerRef = useRef7(null);
|
|
9525
9558
|
const [allOptionsSelected, setAllOptionsSelected] = useState7(false);
|
|
9526
|
-
const labelByValue =
|
|
9559
|
+
const labelByValue = useMemo2(() => {
|
|
9527
9560
|
return options.reduce((prev, curr) => {
|
|
9528
9561
|
return __spreadProps(__spreadValues({}, prev), {
|
|
9529
9562
|
[curr.value]: curr.label
|
|
@@ -9552,7 +9585,7 @@ var MultiSelect = React9.forwardRef(
|
|
|
9552
9585
|
},
|
|
9553
9586
|
[selectedValues, options, onValueChange]
|
|
9554
9587
|
);
|
|
9555
|
-
const text =
|
|
9588
|
+
const text = useMemo2(() => {
|
|
9556
9589
|
if (selectedValues.length > 0 && singleSelect) {
|
|
9557
9590
|
const value = selectedValues[0];
|
|
9558
9591
|
return labelByValue[value];
|
|
@@ -10004,7 +10037,7 @@ var TextAreaFormField = (_a) => {
|
|
|
10004
10037
|
import {
|
|
10005
10038
|
useController
|
|
10006
10039
|
} from "react-hook-form";
|
|
10007
|
-
import { useCallback as useCallback3, useMemo as
|
|
10040
|
+
import { useCallback as useCallback3, useMemo as useMemo3 } from "react";
|
|
10008
10041
|
import { format as format3, unformat as unformat2 } from "@react-input/mask";
|
|
10009
10042
|
import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
10010
10043
|
var TextFormField = (_a) => {
|
|
@@ -10049,7 +10082,7 @@ var TextFormField = (_a) => {
|
|
|
10049
10082
|
const haveError = !!fieldError;
|
|
10050
10083
|
const errorMsg = fieldError == null ? void 0 : fieldError.message;
|
|
10051
10084
|
const { value: formValue, onChange: formChange } = field;
|
|
10052
|
-
const formattedValue =
|
|
10085
|
+
const formattedValue = useMemo3(() => {
|
|
10053
10086
|
let value = formValue;
|
|
10054
10087
|
if (valueFormatter) value = valueFormatter.format(value);
|
|
10055
10088
|
if (mask) value = format3(value != null ? value : "", mask);
|
package/package.json
CHANGED
|
@@ -1,16 +1,45 @@
|
|
|
1
|
-
import { ComponentProps } from "react";
|
|
2
|
-
import { ButtonStyled } from "./styledComponents";
|
|
1
|
+
import { ComponentProps, useMemo } from "react";
|
|
2
|
+
import { ButtonStyled, SpinningDiv } from "./styledComponents";
|
|
3
3
|
import { Button as ButtonRadix } from "@radix-ui/themes";
|
|
4
4
|
import type { VariantProps } from "@stitches/react";
|
|
5
|
+
import Icon, { IconProps } from "../Icon";
|
|
5
6
|
|
|
6
7
|
type ButtonVariantProps = VariantProps<typeof ButtonStyled>;
|
|
7
8
|
export interface ButtonProps
|
|
8
9
|
extends ComponentProps<typeof ButtonStyled>,
|
|
9
10
|
ButtonVariantProps {
|
|
10
11
|
asChild?: boolean;
|
|
12
|
+
loading?: boolean;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
export function Button({ asChild, ...props }: ButtonProps) {
|
|
15
|
+
export function Button({ asChild, children, loading, ...props }: ButtonProps) {
|
|
14
16
|
const Component = asChild ? ButtonRadix : "button";
|
|
15
|
-
|
|
17
|
+
const { size } = props;
|
|
18
|
+
|
|
19
|
+
const spinnerSize = useMemo((): IconProps["size"] => {
|
|
20
|
+
switch (size) {
|
|
21
|
+
case "small":
|
|
22
|
+
return "sm";
|
|
23
|
+
case "extraSmall":
|
|
24
|
+
return "xs";
|
|
25
|
+
case "medium":
|
|
26
|
+
return "md";
|
|
27
|
+
case "large":
|
|
28
|
+
return "xl";
|
|
29
|
+
default:
|
|
30
|
+
return "sm";
|
|
31
|
+
}
|
|
32
|
+
}, [size]);
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<ButtonStyled as={Component} {...props}>
|
|
36
|
+
{loading ? (
|
|
37
|
+
<SpinningDiv>
|
|
38
|
+
<Icon name="circle-notch" size={spinnerSize} />
|
|
39
|
+
</SpinningDiv>
|
|
40
|
+
) : (
|
|
41
|
+
children
|
|
42
|
+
)}
|
|
43
|
+
</ButtonStyled>
|
|
44
|
+
);
|
|
16
45
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button as ButtonRadix } from "@radix-ui/themes";
|
|
2
2
|
|
|
3
|
-
import { styled } from "../../styles";
|
|
3
|
+
import { styled, keyframes } from "../../styles";
|
|
4
4
|
|
|
5
5
|
export const ButtonStyled = styled(ButtonRadix, {
|
|
6
6
|
$$buttonColor: "inherit",
|
|
@@ -298,3 +298,16 @@ export const ButtonStyled = styled(ButtonRadix, {
|
|
|
298
298
|
outlinedBgColor: "transparent",
|
|
299
299
|
},
|
|
300
300
|
});
|
|
301
|
+
|
|
302
|
+
const spin = keyframes({
|
|
303
|
+
"0%": { transform: "rotate(0deg)" },
|
|
304
|
+
"100%": { transform: "rotate(360deg)" },
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
export const SpinningDiv = styled("div", {
|
|
308
|
+
display: "inline-flex",
|
|
309
|
+
alignItems: "center",
|
|
310
|
+
justifyContent: "center",
|
|
311
|
+
animation: `${spin} 1s linear infinite`,
|
|
312
|
+
transformOrigin: "center center",
|
|
313
|
+
});
|
package/src/components/Card.tsx
CHANGED
package/src/components/Icon.tsx
CHANGED
|
@@ -9,7 +9,7 @@ import PropTypes from "prop-types";
|
|
|
9
9
|
|
|
10
10
|
library.add(fas, far, fab);
|
|
11
11
|
|
|
12
|
-
interface IconProps extends Omit<FontAwesomeIconProps, "icon" | "size"> {
|
|
12
|
+
export interface IconProps extends Omit<FontAwesomeIconProps, "icon" | "size"> {
|
|
13
13
|
name: IconName;
|
|
14
14
|
size?: 'xs' | 'sm' | 'md' | 'xl';
|
|
15
15
|
prefix?: IconPrefix;
|