@lets-events/react 12.2.14 → 12.3.1

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @lets-events/react@12.2.14 build
2
+ > @lets-events/react@12.3.1 build
3
3
  > tsup src/index.tsx --format esm,cjs --dts --external react
4
4
 
5
5
  CLI Building entry: src/index.tsx
@@ -9,11 +9,11 @@
9
9
  CLI Target: es6
10
10
  ESM Build start
11
11
  CJS Build start
12
- CJS dist\index.js 394.71 KB
13
- CJS ⚡️ Build success in 1146ms
14
- ESM dist\index.mjs 380.74 KB
15
- ESM ⚡️ Build success in 1147ms
12
+ ESM dist\index.mjs 381.68 KB
13
+ ESM ⚡️ Build success in 235ms
14
+ CJS dist\index.js 395.71 KB
15
+ CJS ⚡️ Build success in 236ms
16
16
  DTS Build start
17
- DTS ⚡️ Build success in 4863ms
18
- DTS dist\index.d.mts 398.62 KB
19
- DTS dist\index.d.ts 398.62 KB
17
+ DTS ⚡️ Build success in 4578ms
18
+ DTS dist\index.d.mts 398.68 KB
19
+ DTS dist\index.d.ts 398.68 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @lets-events/react
2
2
 
3
+ ## 12.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fix button loading state
8
+
9
+ ## 12.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - button loadding state
14
+
3
15
  ## 12.2.14
4
16
 
5
17
  ### Patch Changes
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;
@@ -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;
@@ -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
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ButtonStyled, __spreadValues({ as: Component }, props));
1865
+ const { size, disabled } = 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 "md";
1878
+ }
1879
+ }, [size]);
1880
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ButtonStyled, __spreadProps(__spreadValues({ as: Component, disabled: disabled || loading }, 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 import_react2 = __toESM(require("react"));
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 = import_react2.default.forwardRef(
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 = import_react2.default.useRef(null);
2714
- const badgeRef = import_react2.default.useRef(null);
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 import_react3 = __toESM(require("react"));
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, import_react3.useState)(defaultOpen);
3439
- const dropdownRef = (0, import_react3.useRef)(null);
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, import_react3.useEffect)(() => {
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 = import_react3.default.createContext(null);
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 = import_react3.default.useContext(DropdownMenuContext);
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 import_react4 = __toESM(require("react"));
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: import_react4.default.Children.map(children, (child) => {
3673
- if (import_react4.default.isValidElement(child)) {
3674
- return import_react4.default.cloneElement(child, { size: props.size });
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 import_react6 = require("react");
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 import_react5 = require("react");
3841
+ var import_react6 = require("react");
3813
3842
  function useOnClickOutside(ref, handler) {
3814
- (0, import_react5.useEffect)(() => {
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, import_react6.useRef)(null);
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 import_react7 = require("react");
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, import_react7.useState)("");
8029
- const [showContainer, setShowCalendar] = (0, import_react7.useState)(false);
8030
- const dropdownRef = (0, import_react7.useRef)(null);
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, import_react7.useEffect)(() => {
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 import_react8 = require("react");
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, import_react8.useRef)(null);
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 import_react9 = require("react");
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, import_react9.useState)("00");
8375
- const [minutes, setMinutes] = (0, import_react9.useState)("00");
8376
- const [rawHours, setRawHours] = (0, import_react9.useState)("00");
8377
- const [rawMinutes, setRawMinutes] = (0, import_react9.useState)("00");
8378
- const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
8379
- const dropdownRef = (0, import_react9.useRef)(null);
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, import_react9.useCallback)(
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, import_react9.useCallback)(
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 import_react10 = __toESM(require("react"));
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: import_react10.default.Children.map(children, (child) => {
9036
- if (import_react10.default.isValidElement(child) && child.type === StepTrigger) {
9037
- return import_react10.default.cloneElement(child, { currentStep });
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
  }) }));
@@ -9095,7 +9124,7 @@ function Card(_a) {
9095
9124
 
9096
9125
  // src/components/TextareaField.tsx
9097
9126
  var import_themes17 = require("@radix-ui/themes");
9098
- var import_react11 = __toESM(require("react"));
9127
+ var import_react12 = __toESM(require("react"));
9099
9128
  var import_jsx_runtime22 = require("react/jsx-runtime");
9100
9129
  var TextareaFieldStyle = styled(import_themes17.TextArea, {
9101
9130
  display: "flex",
@@ -9160,11 +9189,11 @@ var TextareaLimitIndicator = styled("div", {
9160
9189
  padding: "$4"
9161
9190
  }
9162
9191
  });
9163
- var TextareaField = import_react11.default.forwardRef((_a, forwardedRef) => {
9192
+ var TextareaField = import_react12.default.forwardRef((_a, forwardedRef) => {
9164
9193
  var _b = _a, { maxLength, color } = _b, props = __objRest(_b, ["maxLength", "color"]);
9165
- const inputRef = (0, import_react11.useRef)(null);
9166
- const [remaining, setRemaining] = (0, import_react11.useState)(maxLength);
9167
- (0, import_react11.useEffect)(() => {
9194
+ const inputRef = (0, import_react12.useRef)(null);
9195
+ const [remaining, setRemaining] = (0, import_react12.useState)(maxLength);
9196
+ (0, import_react12.useEffect)(() => {
9168
9197
  var _a2;
9169
9198
  if (maxLength && inputRef.current) {
9170
9199
  setRemaining(maxLength - ((_a2 = inputRef.current.value.length) != null ? _a2 : 0));
@@ -9199,12 +9228,12 @@ var TextareaField = import_react11.default.forwardRef((_a, forwardedRef) => {
9199
9228
  });
9200
9229
 
9201
9230
  // src/components/Toast/components/ToastItem.tsx
9202
- var import_react13 = require("react");
9231
+ var import_react14 = require("react");
9203
9232
 
9204
9233
  // src/components/Toast/styles/index.ts
9205
- var import_react12 = require("@stitches/react");
9234
+ var import_react13 = require("@stitches/react");
9206
9235
  var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
9207
- var slideIn = (0, import_react12.keyframes)({
9236
+ var slideIn = (0, import_react13.keyframes)({
9208
9237
  from: {
9209
9238
  transform: "translateX(calc(100% + 25px))",
9210
9239
  opacity: 0
@@ -9214,7 +9243,7 @@ var slideIn = (0, import_react12.keyframes)({
9214
9243
  opacity: 1
9215
9244
  }
9216
9245
  });
9217
- var slideOut = (0, import_react12.keyframes)({
9246
+ var slideOut = (0, import_react13.keyframes)({
9218
9247
  from: {
9219
9248
  transform: "translateX(0)",
9220
9249
  opacity: 1
@@ -9224,7 +9253,7 @@ var slideOut = (0, import_react12.keyframes)({
9224
9253
  opacity: 0
9225
9254
  }
9226
9255
  });
9227
- var swipeOut = (0, import_react12.keyframes)({
9256
+ var swipeOut = (0, import_react13.keyframes)({
9228
9257
  from: {
9229
9258
  transform: "translateX(var(--radix-toast-swipe-end-x))",
9230
9259
  opacity: 1
@@ -9330,7 +9359,7 @@ function ToastItem({
9330
9359
  toast,
9331
9360
  onRemove
9332
9361
  }) {
9333
- const [open, setOpen] = (0, import_react13.useState)(true);
9362
+ const [open, setOpen] = (0, import_react14.useState)(true);
9334
9363
  const handleOpenChange = (open2) => {
9335
9364
  setOpen(open2);
9336
9365
  if (!open2) {
@@ -9354,17 +9383,17 @@ function ToastItem({
9354
9383
  }
9355
9384
 
9356
9385
  // src/components/Toast/components/ToastProvider.tsx
9357
- var import_react14 = require("react");
9386
+ var import_react15 = require("react");
9358
9387
  var ToastPrimitive2 = __toESM(require("@radix-ui/react-toast"));
9359
9388
  var import_jsx_runtime24 = require("react/jsx-runtime");
9360
- var ToastContext = (0, import_react14.createContext)(null);
9389
+ var ToastContext = (0, import_react15.createContext)(null);
9361
9390
  function ToastProvider({
9362
9391
  children,
9363
9392
  defaultDuration = 5e3,
9364
9393
  maxToasts = 5,
9365
9394
  swipeDirection = "right"
9366
9395
  }) {
9367
- const [toasts, setToasts] = (0, import_react14.useState)([]);
9396
+ const [toasts, setToasts] = (0, import_react15.useState)([]);
9368
9397
  const addToast = (toastData) => {
9369
9398
  const id = Math.random().toString(36).substr(2, 9);
9370
9399
  const newToast = __spreadProps(__spreadValues({
@@ -9400,9 +9429,9 @@ function ToastProvider({
9400
9429
  }
9401
9430
 
9402
9431
  // src/components/Toast/hooks/useToast.ts
9403
- var import_react15 = require("react");
9432
+ var import_react16 = require("react");
9404
9433
  var useToast = () => {
9405
- const context = (0, import_react15.useContext)(ToastContext);
9434
+ const context = (0, import_react16.useContext)(ToastContext);
9406
9435
  if (!context) {
9407
9436
  throw new Error("useToast deve ser usado dentro de um ToastProvider");
9408
9437
  }
@@ -9460,11 +9489,11 @@ function Tooltip({
9460
9489
  }
9461
9490
 
9462
9491
  // src/components/MultiSelect/index.tsx
9463
- var import_react16 = __toESM(require("react"));
9492
+ var import_react17 = __toESM(require("react"));
9464
9493
  var import_themes19 = require("@radix-ui/themes");
9465
9494
  var import_react_fontawesome3 = require("@fortawesome/react-fontawesome");
9466
9495
  var import_free_solid_svg_icons3 = require("@fortawesome/free-solid-svg-icons");
9467
- var import_react17 = require("react");
9496
+ var import_react18 = require("react");
9468
9497
 
9469
9498
  // src/components/MultiSelect/styledComponents.ts
9470
9499
  var import_themes18 = require("@radix-ui/themes");
@@ -9614,7 +9643,7 @@ var ButtonSelectAllStyled = styled("button", {
9614
9643
 
9615
9644
  // src/components/MultiSelect/index.tsx
9616
9645
  var import_jsx_runtime26 = require("react/jsx-runtime");
9617
- var MultiSelect = import_react16.default.forwardRef(
9646
+ var MultiSelect = import_react17.default.forwardRef(
9618
9647
  ({
9619
9648
  placeholder,
9620
9649
  value: selectedValues = [],
@@ -9632,24 +9661,24 @@ var MultiSelect = import_react16.default.forwardRef(
9632
9661
  selectedAllText,
9633
9662
  selectedScroll = false
9634
9663
  }, fowardedRef) => {
9635
- const [isOpen, setIsOpen] = (0, import_react16.useState)(false);
9636
- const triggerRef = (0, import_react16.useRef)(null);
9637
- const [allOptionsSelected, setAllOptionsSelected] = (0, import_react16.useState)(false);
9638
- const labelByValue = (0, import_react17.useMemo)(() => {
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)(() => {
9639
9668
  return options.reduce((prev, curr) => {
9640
9669
  return __spreadProps(__spreadValues({}, prev), {
9641
9670
  [curr.value]: curr.label
9642
9671
  });
9643
9672
  }, {});
9644
9673
  }, [options]);
9645
- const handleRemove = (0, import_react16.useCallback)(
9674
+ const handleRemove = (0, import_react17.useCallback)(
9646
9675
  (value) => {
9647
9676
  const newValue = selectedValues.filter((v) => v !== value);
9648
9677
  onValueChange == null ? void 0 : onValueChange(newValue);
9649
9678
  },
9650
9679
  [selectedValues, onValueChange]
9651
9680
  );
9652
- const handleSelectAll = (0, import_react16.useCallback)(
9681
+ const handleSelectAll = (0, import_react17.useCallback)(
9653
9682
  (e) => {
9654
9683
  e.preventDefault();
9655
9684
  e.stopPropagation();
@@ -9664,7 +9693,7 @@ var MultiSelect = import_react16.default.forwardRef(
9664
9693
  },
9665
9694
  [selectedValues, options, onValueChange]
9666
9695
  );
9667
- const text = (0, import_react17.useMemo)(() => {
9696
+ const text = (0, import_react18.useMemo)(() => {
9668
9697
  if (selectedValues.length > 0 && singleSelect) {
9669
9698
  const value = selectedValues[0];
9670
9699
  return labelByValue[value];
@@ -9675,7 +9704,7 @@ var MultiSelect = import_react16.default.forwardRef(
9675
9704
  onValueChange == null ? void 0 : onValueChange([v]);
9676
9705
  setIsOpen(false);
9677
9706
  };
9678
- const handleToggle = (0, import_react16.useCallback)(
9707
+ const handleToggle = (0, import_react17.useCallback)(
9679
9708
  (e) => {
9680
9709
  e.preventDefault();
9681
9710
  e.stopPropagation();
@@ -10114,7 +10143,7 @@ var TextAreaFormField = (_a) => {
10114
10143
 
10115
10144
  // src/components/FormFields/TextFormField.tsx
10116
10145
  var import_react_hook_form2 = require("react-hook-form");
10117
- var import_react18 = require("react");
10146
+ var import_react19 = require("react");
10118
10147
  var import_mask2 = require("@react-input/mask");
10119
10148
  var import_jsx_runtime33 = require("react/jsx-runtime");
10120
10149
  var TextFormField = (_a) => {
@@ -10137,7 +10166,7 @@ var TextFormField = (_a) => {
10137
10166
  "onChange",
10138
10167
  "valueFormatter"
10139
10168
  ]);
10140
- const handleValidate = (0, import_react18.useCallback)(
10169
+ const handleValidate = (0, import_react19.useCallback)(
10141
10170
  (value) => {
10142
10171
  var _a2;
10143
10172
  if (value === void 0 || value === null || !required && value.trim() === "")
@@ -10159,7 +10188,7 @@ var TextFormField = (_a) => {
10159
10188
  const haveError = !!fieldError;
10160
10189
  const errorMsg = fieldError == null ? void 0 : fieldError.message;
10161
10190
  const { value: formValue, onChange: formChange } = field;
10162
- const formattedValue = (0, import_react18.useMemo)(() => {
10191
+ const formattedValue = (0, import_react19.useMemo)(() => {
10163
10192
  let value = formValue;
10164
10193
  if (valueFormatter) value = valueFormatter.format(value);
10165
10194
  if (mask) value = (0, import_mask2.format)(value != null ? value : "", mask);
@@ -10754,7 +10783,7 @@ function StateFormField({
10754
10783
  }
10755
10784
 
10756
10785
  // src/components/FormFields/AddressFormFields/CityFormField.tsx
10757
- var import_react19 = require("react");
10786
+ var import_react20 = require("react");
10758
10787
  var import_react_hook_form7 = require("react-hook-form");
10759
10788
  var import_jsx_runtime45 = require("react/jsx-runtime");
10760
10789
  function CityFormField({
@@ -10767,9 +10796,9 @@ function CityFormField({
10767
10796
  }) {
10768
10797
  const { control, watch } = (0, import_react_hook_form7.useFormContext)();
10769
10798
  const selectedState = watch(stateName);
10770
- const [cities, setCities] = (0, import_react19.useState)([]);
10771
- const [loading, setLoading] = (0, import_react19.useState)(false);
10772
- (0, import_react19.useEffect)(() => {
10799
+ const [cities, setCities] = (0, import_react20.useState)([]);
10800
+ const [loading, setLoading] = (0, import_react20.useState)(false);
10801
+ (0, import_react20.useEffect)(() => {
10773
10802
  if (!isBrazil) {
10774
10803
  setCities([]);
10775
10804
  return;
@@ -11157,10 +11186,10 @@ var EmailFormField = ({
11157
11186
  var import_react_hook_form12 = require("react-hook-form");
11158
11187
 
11159
11188
  // src/components/RichEditor/RichEditor.tsx
11160
- var import_react21 = require("react");
11189
+ var import_react22 = require("react");
11161
11190
 
11162
11191
  // src/components/RichEditor/QuillComponent.tsx
11163
- var import_react20 = require("react");
11192
+ var import_react21 = require("react");
11164
11193
  var import_react_quilljs = require("react-quilljs");
11165
11194
 
11166
11195
  // src/utils/uploadService.ts
@@ -12229,12 +12258,12 @@ var QuillComponent = ({
12229
12258
  onCharacterCountChange,
12230
12259
  maxLength
12231
12260
  }) => {
12232
- const [showVideoModal, setShowVideoModal] = (0, import_react20.useState)(false);
12233
- const [videoUrl, setVideoUrl] = (0, import_react20.useState)("");
12234
- const [showLinkModal, setShowLinkModal] = (0, import_react20.useState)(false);
12235
- const [linkUrl, setLinkUrl] = (0, import_react20.useState)("");
12236
- const videoModalRef = (0, import_react20.useRef)(null);
12237
- const linkModalRef = (0, import_react20.useRef)(null);
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);
12238
12267
  const { addToast, removeToast } = useToast();
12239
12268
  const formatHTML = (html) => {
12240
12269
  const parser = new DOMParser();
@@ -12298,7 +12327,7 @@ var QuillComponent = ({
12298
12327
  placeholder,
12299
12328
  readOnly: disabled
12300
12329
  });
12301
- const handleImageUpload = (0, import_react20.useCallback)(
12330
+ const handleImageUpload = (0, import_react21.useCallback)(
12302
12331
  (file) => __async(null, null, function* () {
12303
12332
  if (disabled || !quill || !uploadConfig) return;
12304
12333
  try {
@@ -12330,7 +12359,7 @@ var QuillComponent = ({
12330
12359
  }),
12331
12360
  [disabled, quill, addToast, removeToast, uploadConfig, onChange]
12332
12361
  );
12333
- (0, import_react20.useEffect)(() => {
12362
+ (0, import_react21.useEffect)(() => {
12334
12363
  if (quill && value) {
12335
12364
  const currentContent = quill.root.innerHTML;
12336
12365
  if (currentContent !== value) {
@@ -12344,7 +12373,7 @@ var QuillComponent = ({
12344
12373
  }
12345
12374
  }
12346
12375
  }, [quill, value]);
12347
- (0, import_react20.useEffect)(() => {
12376
+ (0, import_react21.useEffect)(() => {
12348
12377
  if (quill) {
12349
12378
  quill.on("text-change", (delta, oldDelta, source) => {
12350
12379
  if (source === "user") {
@@ -12399,7 +12428,7 @@ var QuillComponent = ({
12399
12428
  }, 2e3);
12400
12429
  }
12401
12430
  }, [quill, onChange, handleImageUpload, onCharacterCountChange]);
12402
- (0, import_react20.useEffect)(() => {
12431
+ (0, import_react21.useEffect)(() => {
12403
12432
  if (quill) {
12404
12433
  quill.enable(!disabled);
12405
12434
  if (!disabled) {
@@ -12410,11 +12439,11 @@ var QuillComponent = ({
12410
12439
  }
12411
12440
  }
12412
12441
  }, [quill, disabled]);
12413
- const handleLinkCancel = (0, import_react20.useCallback)(() => {
12442
+ const handleLinkCancel = (0, import_react21.useCallback)(() => {
12414
12443
  setLinkUrl("");
12415
12444
  setShowLinkModal(false);
12416
12445
  }, []);
12417
- const handleLinkSubmit = (0, import_react20.useCallback)(() => {
12446
+ const handleLinkSubmit = (0, import_react21.useCallback)(() => {
12418
12447
  if (!linkUrl.trim() || !quill) return;
12419
12448
  const url = linkUrl.trim();
12420
12449
  const selection = quill.getSelection();
@@ -12429,11 +12458,11 @@ var QuillComponent = ({
12429
12458
  setLinkUrl("");
12430
12459
  setShowLinkModal(false);
12431
12460
  }, [linkUrl, quill]);
12432
- const handleVideoCancel = (0, import_react20.useCallback)(() => {
12461
+ const handleVideoCancel = (0, import_react21.useCallback)(() => {
12433
12462
  setVideoUrl("");
12434
12463
  setShowVideoModal(false);
12435
12464
  }, []);
12436
- const handleVideoSubmit = (0, import_react20.useCallback)(() => {
12465
+ const handleVideoSubmit = (0, import_react21.useCallback)(() => {
12437
12466
  var _a, _b;
12438
12467
  if (!videoUrl.trim() || !quill) return;
12439
12468
  let processedUrl = videoUrl.trim();
@@ -12466,7 +12495,7 @@ var QuillComponent = ({
12466
12495
  setVideoUrl("");
12467
12496
  setShowVideoModal(false);
12468
12497
  }, [videoUrl, quill]);
12469
- (0, import_react20.useEffect)(() => {
12498
+ (0, import_react21.useEffect)(() => {
12470
12499
  const handleClickOutside = (event) => {
12471
12500
  if (showVideoModal && videoModalRef.current && !videoModalRef.current.contains(event.target)) {
12472
12501
  handleVideoCancel();
@@ -12628,8 +12657,8 @@ var QuillComponent_default = QuillComponent;
12628
12657
  // src/components/RichEditor/RichEditor.tsx
12629
12658
  var import_jsx_runtime52 = require("react/jsx-runtime");
12630
12659
  var RichEditor = (props) => {
12631
- const [isClient, setIsClient] = (0, import_react21.useState)(false);
12632
- (0, import_react21.useEffect)(() => {
12660
+ const [isClient, setIsClient] = (0, import_react22.useState)(false);
12661
+ (0, import_react22.useEffect)(() => {
12633
12662
  setIsClient(typeof window !== "undefined");
12634
12663
  }, []);
12635
12664
  if (!isClient) return null;
@@ -12638,7 +12667,7 @@ var RichEditor = (props) => {
12638
12667
  var RichEditor_default = RichEditor;
12639
12668
 
12640
12669
  // src/components/FormFields/RichEditorFormField.tsx
12641
- var import_react22 = require("react");
12670
+ var import_react23 = require("react");
12642
12671
  var import_jsx_runtime53 = require("react/jsx-runtime");
12643
12672
  var RichEditorFormField = (_a) => {
12644
12673
  var _b = _a, {
@@ -12673,7 +12702,7 @@ var RichEditorFormField = (_a) => {
12673
12702
  },
12674
12703
  defaultValue: ""
12675
12704
  });
12676
- const [caracterQuantity, setCaracterQuantity] = (0, import_react22.useState)(maxLength);
12705
+ const [caracterQuantity, setCaracterQuantity] = (0, import_react23.useState)(maxLength);
12677
12706
  const handleCharacterCountChange = (count) => {
12678
12707
  if (maxLength !== void 0) {
12679
12708
  setCaracterQuantity(Math.max(0, maxLength - count));
@@ -12721,7 +12750,7 @@ var RichEditorFormField = (_a) => {
12721
12750
 
12722
12751
  // src/components/FormFields/CalendarFormField.tsx
12723
12752
  var import_react_hook_form13 = require("react-hook-form");
12724
- var import_react23 = require("react");
12753
+ var import_react24 = require("react");
12725
12754
  var import_jsx_runtime54 = require("react/jsx-runtime");
12726
12755
  var CalendarFormField = (_a) => {
12727
12756
  var _b = _a, {
@@ -12745,7 +12774,7 @@ var CalendarFormField = (_a) => {
12745
12774
  "allowPastDates",
12746
12775
  "maxYearsFromNow"
12747
12776
  ]);
12748
- const handleValidate = (0, import_react23.useCallback)(
12777
+ const handleValidate = (0, import_react24.useCallback)(
12749
12778
  (value) => {
12750
12779
  var _a2;
12751
12780
  if (value === void 0 || value === null) {
@@ -12800,7 +12829,7 @@ var CalendarFormField = (_a) => {
12800
12829
 
12801
12830
  // src/components/FormFields/TimePickerFormField.tsx
12802
12831
  var import_react_hook_form14 = require("react-hook-form");
12803
- var import_react24 = require("react");
12832
+ var import_react25 = require("react");
12804
12833
  var import_jsx_runtime55 = require("react/jsx-runtime");
12805
12834
  var TimePickerFormField = (_a) => {
12806
12835
  var _b = _a, {
@@ -12818,7 +12847,7 @@ var TimePickerFormField = (_a) => {
12818
12847
  "validationErrorMessage",
12819
12848
  "rules"
12820
12849
  ]);
12821
- const handleValidate = (0, import_react24.useCallback)(
12850
+ const handleValidate = (0, import_react25.useCallback)(
12822
12851
  (value) => {
12823
12852
  var _a2;
12824
12853
  if (value === void 0 || value === null || value === "") {
@@ -12870,11 +12899,11 @@ var TimePickerFormField = (_a) => {
12870
12899
  };
12871
12900
 
12872
12901
  // src/hooks/useImageUpload.ts
12873
- var import_react25 = require("react");
12902
+ var import_react26 = require("react");
12874
12903
  var useImageUpload = (options) => {
12875
- const [isUploading, setIsUploading] = (0, import_react25.useState)(false);
12876
- const [progress, setProgress] = (0, import_react25.useState)(null);
12877
- const [error, setError] = (0, import_react25.useState)(null);
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);
12878
12907
  const {
12879
12908
  onSuccess,
12880
12909
  onError,
@@ -12884,7 +12913,7 @@ var useImageUpload = (options) => {
12884
12913
  allowedTypes = ["image/jpeg", "image/png", "image/gif", "image/webp"],
12885
12914
  uploadConfig
12886
12915
  } = options;
12887
- const validateFile = (0, import_react25.useCallback)(
12916
+ const validateFile = (0, import_react26.useCallback)(
12888
12917
  (file) => {
12889
12918
  if (!allowedTypes.includes(file.type)) {
12890
12919
  const errorMsg = "Tipo de arquivo n\xE3o suportado";
@@ -12902,7 +12931,7 @@ var useImageUpload = (options) => {
12902
12931
  },
12903
12932
  [allowedTypes, maxFileSize, onError]
12904
12933
  );
12905
- const uploadFile = (0, import_react25.useCallback)(
12934
+ const uploadFile = (0, import_react26.useCallback)(
12906
12935
  (file) => __async(null, null, function* () {
12907
12936
  if (!validateFile(file)) {
12908
12937
  return null;
@@ -12955,7 +12984,7 @@ var useImageUpload = (options) => {
12955
12984
  }),
12956
12985
  [validateFile, onSuccess, onError, onProgress]
12957
12986
  );
12958
- const reset = (0, import_react25.useCallback)(() => {
12987
+ const reset = (0, import_react26.useCallback)(() => {
12959
12988
  setIsUploading(false);
12960
12989
  setProgress(null);
12961
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
- return /* @__PURE__ */ jsx3(ButtonStyled, __spreadValues({ as: Component }, props));
1749
+ const { size, disabled } = 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 "md";
1762
+ }
1763
+ }, [size]);
1764
+ return /* @__PURE__ */ jsx3(ButtonStyled, __spreadProps(__spreadValues({ as: Component, disabled: disabled || loading }, 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
@@ -9356,7 +9385,7 @@ import {
9356
9385
  faChevronUp as faChevronUp2,
9357
9386
  faSquareXmark
9358
9387
  } from "@fortawesome/free-solid-svg-icons";
9359
- import { useMemo } from "react";
9388
+ import { useMemo as useMemo2 } from "react";
9360
9389
 
9361
9390
  // src/components/MultiSelect/styledComponents.ts
9362
9391
  import { DropdownMenu as DropdownMenu3 } from "@radix-ui/themes";
@@ -9527,7 +9556,7 @@ var MultiSelect = React9.forwardRef(
9527
9556
  const [isOpen, setIsOpen] = useState7(false);
9528
9557
  const triggerRef = useRef7(null);
9529
9558
  const [allOptionsSelected, setAllOptionsSelected] = useState7(false);
9530
- const labelByValue = useMemo(() => {
9559
+ const labelByValue = useMemo2(() => {
9531
9560
  return options.reduce((prev, curr) => {
9532
9561
  return __spreadProps(__spreadValues({}, prev), {
9533
9562
  [curr.value]: curr.label
@@ -9556,7 +9585,7 @@ var MultiSelect = React9.forwardRef(
9556
9585
  },
9557
9586
  [selectedValues, options, onValueChange]
9558
9587
  );
9559
- const text = useMemo(() => {
9588
+ const text = useMemo2(() => {
9560
9589
  if (selectedValues.length > 0 && singleSelect) {
9561
9590
  const value = selectedValues[0];
9562
9591
  return labelByValue[value];
@@ -10008,7 +10037,7 @@ var TextAreaFormField = (_a) => {
10008
10037
  import {
10009
10038
  useController
10010
10039
  } from "react-hook-form";
10011
- import { useCallback as useCallback3, useMemo as useMemo2 } from "react";
10040
+ import { useCallback as useCallback3, useMemo as useMemo3 } from "react";
10012
10041
  import { format as format3, unformat as unformat2 } from "@react-input/mask";
10013
10042
  import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
10014
10043
  var TextFormField = (_a) => {
@@ -10053,7 +10082,7 @@ var TextFormField = (_a) => {
10053
10082
  const haveError = !!fieldError;
10054
10083
  const errorMsg = fieldError == null ? void 0 : fieldError.message;
10055
10084
  const { value: formValue, onChange: formChange } = field;
10056
- const formattedValue = useMemo2(() => {
10085
+ const formattedValue = useMemo3(() => {
10057
10086
  let value = formValue;
10058
10087
  if (valueFormatter) value = valueFormatter.format(value);
10059
10088
  if (mask) value = format3(value != null ? value : "", mask);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lets-events/react",
3
- "version": "12.2.14",
3
+ "version": "12.3.1",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -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
- return <ButtonStyled as={Component} {...props} />;
17
+ const { size, disabled } = 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 "md";
31
+ }
32
+ }, [size]);
33
+
34
+ return (
35
+ <ButtonStyled as={Component} disabled={disabled || loading} {...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
+ });
@@ -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;