pge-front-common 14.2.12 → 14.2.13

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,6 +1,4 @@
1
1
  import React from "react";
2
- interface Props {
3
- itens: React.ReactNode[];
4
- }
5
- declare const MenuAction: ({ itens }: Props) => React.JSX.Element;
2
+ import { MenuActionProps } from "./index.types";
3
+ export declare const MenuAction: ({ itens }: MenuActionProps) => React.JSX.Element;
6
4
  export default MenuAction;
@@ -0,0 +1,3 @@
1
+ export interface MenuActionProps {
2
+ itens: React.ReactNode[];
3
+ }
@@ -4,3 +4,5 @@ declare const meta: Meta<typeof MenuAction>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const Default: Story;
7
+ export declare const ManyItems: Story;
8
+ export declare const Empty: Story;
@@ -0,0 +1,6 @@
1
+ import React, { SVGProps } from "react";
2
+ export interface IconAccordionChevronProps extends SVGProps<SVGSVGElement> {
3
+ containerClassName?: string;
4
+ arrowClassName?: string;
5
+ }
6
+ export declare const IconAccordionChevron: ({ className, containerClassName, arrowClassName, ...props }: IconAccordionChevronProps) => React.JSX.Element;
package/lib/index.d.ts CHANGED
@@ -521,19 +521,19 @@ type BoxSuccessProps = {
521
521
  };
522
522
  declare const BoxSuccess: ({ message, handleClose }: BoxSuccessProps) => React__default.JSX.Element;
523
523
 
524
- interface Props$3 {
524
+ interface Props$2 {
525
525
  isOpen: boolean;
526
526
  text?: string;
527
527
  }
528
- declare function LoadingSpinner(props: Readonly<Props$3>): React$1.JSX.Element;
528
+ declare function LoadingSpinner(props: Readonly<Props$2>): React$1.JSX.Element;
529
529
 
530
- interface Props$2 {
530
+ interface Props$1 {
531
531
  currentPage: number;
532
532
  countPage: number;
533
533
  itemsVisiblePage?: number;
534
534
  handleClickPage?: (page: any) => void;
535
535
  }
536
- declare const PaginationTable: ({ currentPage, countPage, itemsVisiblePage, handleClickPage, }: Omit<Props$2, "header" | "body" | "footer">) => React__default.JSX.Element;
536
+ declare const PaginationTable: ({ currentPage, countPage, itemsVisiblePage, handleClickPage, }: Omit<Props$1, "header" | "body" | "footer">) => React__default.JSX.Element;
537
537
 
538
538
  interface PaginationProps {
539
539
  countPage: number;
@@ -604,12 +604,12 @@ type OptionsProps$1 = {
604
604
 
605
605
  declare const BasicSelect: ({ name, optionsSelect, placeholder, isDisabled, label, hasError, handleChange, isRequired, value, isClearable, }: SelectDefaultProps$1) => React$1.JSX.Element;
606
606
 
607
- interface Props$1 {
607
+ interface Props {
608
608
  isOpen: boolean;
609
609
  text?: string;
610
610
  mini?: boolean;
611
611
  }
612
- declare function OverlayLoadingSpinner({ isOpen, text, mini, }: Readonly<Props$1>): React$1.JSX.Element;
612
+ declare function OverlayLoadingSpinner({ isOpen, text, mini, }: Readonly<Props>): React$1.JSX.Element;
613
613
 
614
614
  declare const Option: (props: any) => JSX.Element;
615
615
  declare const MenuList: (props: any) => JSX.Element;
@@ -787,10 +787,11 @@ declare const ModalHeader: ({ children, onClose, className }: ModalHeaderProps)
787
787
 
788
788
  declare const ModalBody: ({ children, className }: ModalBodyProps) => React__default.JSX.Element;
789
789
 
790
- interface Props {
791
- itens: React__default.ReactNode[];
790
+ interface MenuActionProps {
791
+ itens: React.ReactNode[];
792
792
  }
793
- declare const MenuAction: ({ itens }: Props) => React__default.JSX.Element;
793
+
794
+ declare const MenuAction: ({ itens }: MenuActionProps) => React__default.JSX.Element;
794
795
 
795
796
  interface SkeletonProps {
796
797
  className?: string;
package/lib/index.esm.js CHANGED
@@ -1187,10 +1187,17 @@ function FooterPge(_a) {
1187
1187
  React__default.createElement("span", { className: styles$q.copyrightText }, "2025 \u00A9 Copyright - Todos os direitos reservados."))));
1188
1188
  }
1189
1189
 
1190
- var css_248z$t = ".styles-module__accordion___BdbSg {\r\n border-radius: 15px;\r\n width: 100%;\r\n}\r\n\r\n.styles-module__accordionItem___AcHG1 {\r\n background-color: var(--background-color);\r\n border-radius: 15px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.styles-module__header___0zXFp {\r\n border-radius: 15px;\r\n margin: 0;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F {\r\n width: 100%;\r\n background-color: var(--background-color);\r\n box-shadow: none;\r\n border: 1px solid var(--light-grey-color);\r\n font-size: var(--font-size-20);\r\n font-weight: var(--input-font-weight);\r\n line-height: 30px;\r\n text-align: left;\r\n color: var(--primary-color);\r\n padding: 12px 16px;\r\n position: relative;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.styles-module__collapsed___7DjAi {\r\n border-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:focus {\r\n border: 2px solid var(--color-weaker-blue);\r\n outline: none;\r\n box-shadow: none;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F.styles-module__collapsed___7DjAi:focus {\r\n border-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:not(.styles-module__collapsed___7DjAi):focus {\r\n border: 1px solid var();\r\n outline: none;\r\n box-shadow: none;\r\n border-top-left-radius: 15px;\r\n border-top-right-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionIcon___s2ytc {\r\n display: inline-block;\r\n width: 24px;\r\n height: 24px;\r\n background-image: url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"24\" height=\"24\" rx=\"12\" fill=\"%23005A92\" fill-opacity=\"0.2\"/><path d=\"M12.5 17L6 10.5135L7.51667 9L12.5 13.973L17.4833 9L19 10.5135L12.5 17Z\" fill=\"white\"/></svg>');\r\n transition: transform 0.3s ease-in-out;\r\n transform: rotate(180deg);\r\n flex-shrink: 0;\r\n}\r\n\r\n.styles-module__collapsed___7DjAi .styles-module__accordionIcon___s2ytc {\r\n transform: rotate(0deg);\r\n}\r\n\r\n.styles-module__accordionCollapse___g1CA6 {\r\n max-height: 0;\r\n overflow: hidden;\r\n transition: max-height 0.2s ease-out;\r\n}\r\n\r\n.styles-module__accordionCollapse___g1CA6.styles-module__show___xeyUH {\r\n max-height: fit-content;\r\n}\r\n\r\n.styles-module__accordionBody___goPRU {\r\n background-color: var(--background-color);\r\n border: 1px solid var(--light-grey-color);\r\n border-top: none;\r\n border-bottom-left-radius: 15px;\r\n border-bottom-right-radius: 15px;\r\n padding: 16px;\r\n}\r\n";
1191
- var styles$p = {"accordion":"styles-module__accordion___BdbSg","accordionItem":"styles-module__accordionItem___AcHG1","header":"styles-module__header___0zXFp","accordionButton":"styles-module__accordionButton___5W70F","collapsed":"styles-module__collapsed___7DjAi","accordionIcon":"styles-module__accordionIcon___s2ytc","accordionCollapse":"styles-module__accordionCollapse___g1CA6","show":"styles-module__show___xeyUH","accordionBody":"styles-module__accordionBody___goPRU"};
1190
+ var css_248z$t = ".styles-module__accordion___BdbSg {\r\n border-radius: 15px;\r\n width: 100%;\r\n}\r\n\r\n.styles-module__accordionItem___AcHG1 {\r\n background-color: var(--background-color);\r\n border-radius: 15px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.styles-module__header___0zXFp {\r\n border-radius: 15px;\r\n margin: 0;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F {\r\n width: 100%;\r\n background-color: var(--background-color);\r\n box-shadow: none;\r\n border: 1px solid var(--light-grey-color);\r\n font-size: var(--font-size-20);\r\n font-weight: var(--input-font-weight);\r\n line-height: 30px;\r\n text-align: left;\r\n color: var(--primary-color);\r\n padding: 12px 16px;\r\n position: relative;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.styles-module__collapsed___7DjAi {\r\n border-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:focus {\r\n border: 2px solid var(--color-weaker-blue);\r\n outline: none;\r\n box-shadow: none;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F.styles-module__collapsed___7DjAi:focus {\r\n border-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:not(.styles-module__collapsed___7DjAi):focus {\r\n border: 1px solid var(--light-grey-color);\r\n outline: none;\r\n box-shadow: none;\r\n border-top-left-radius: 15px;\r\n border-top-right-radius: 15px;\r\n}\r\n\r\n.styles-module__accordionIcon___s2ytc {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 24px;\r\n height: 24px;\r\n transition: transform 0.3s ease-in-out;\r\n transform: rotate(180deg);\r\n flex-shrink: 0;\r\n}\r\n\r\n.styles-module__accordionIconContainer___FUceu {\r\n fill: #005a924d;\r\n transition: fill 0.2s ease;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:hover .styles-module__accordionIconContainer___FUceu {\r\n fill: #00436d80;\r\n}\r\n\r\n.styles-module__accordionButton___5W70F:focus .styles-module__accordionIconContainer___FUceu {\r\n fill: #00436d80;\r\n}\r\n\r\n.styles-module__accordionIconArrow___PEwuM {\r\n fill: #ffffff;\r\n}\r\n\r\n.styles-module__dark-mode___XMLvW .styles-module__accordionIconContainer___FUceu {\r\n fill: #ffffff;\r\n}\r\n\r\n.styles-module__dark-mode___XMLvW .styles-module__accordionIconArrow___PEwuM {\r\n fill: #4a4a4a;\r\n}\r\n\r\n.styles-module__collapsed___7DjAi .styles-module__accordionIcon___s2ytc {\r\n transform: rotate(0deg);\r\n}\r\n\r\n.styles-module__accordionCollapse___g1CA6 {\r\n max-height: 0;\r\n overflow: hidden;\r\n transition: max-height 0.2s ease-out;\r\n}\r\n\r\n.styles-module__accordionCollapse___g1CA6.styles-module__show___xeyUH {\r\n max-height: fit-content;\r\n}\r\n\r\n.styles-module__accordionBody___goPRU {\r\n background-color: var(--background-color);\r\n border: 1px solid var(--light-grey-color);\r\n border-top: none;\r\n border-bottom-left-radius: 15px;\r\n border-bottom-right-radius: 15px;\r\n padding: 16px;\r\n}\r\n";
1191
+ var styles$p = {"accordion":"styles-module__accordion___BdbSg","accordionItem":"styles-module__accordionItem___AcHG1","header":"styles-module__header___0zXFp","accordionButton":"styles-module__accordionButton___5W70F","collapsed":"styles-module__collapsed___7DjAi","accordionIcon":"styles-module__accordionIcon___s2ytc","accordionIconContainer":"styles-module__accordionIconContainer___FUceu","accordionIconArrow":"styles-module__accordionIconArrow___PEwuM","accordionCollapse":"styles-module__accordionCollapse___g1CA6","show":"styles-module__show___xeyUH","accordionBody":"styles-module__accordionBody___goPRU"};
1192
1192
  styleInject(css_248z$t);
1193
1193
 
1194
+ var IconAccordionChevron = function (_a) {
1195
+ var className = _a.className, containerClassName = _a.containerClassName, arrowClassName = _a.arrowClassName, props = __rest(_a, ["className", "containerClassName", "arrowClassName"]);
1196
+ return (React__default.createElement("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className }, props),
1197
+ React__default.createElement("rect", { width: "24", height: "24", rx: "12", className: containerClassName }),
1198
+ React__default.createElement("path", { d: "M12.5 17L6 10.5135L7.51667 9L12.5 13.973L17.4833 9L19 10.5135L12.5 17Z", className: arrowClassName })));
1199
+ };
1200
+
1194
1201
  function AccordionItem(_a) {
1195
1202
  var title = _a.title, content = _a.content, providedId = _a.id, _b = _a.defaultOpen, defaultOpen = _b === void 0 ? false : _b;
1196
1203
  var generatedId = useId$1();
@@ -1203,7 +1210,8 @@ function AccordionItem(_a) {
1203
1210
  React__default.createElement("h2", { className: styles$p.header },
1204
1211
  React__default.createElement("button", { className: "".concat(styles$p.accordionButton, " ").concat(isOpen ? "" : styles$p.collapsed), type: "button", onClick: toggleAccordion, "aria-expanded": isOpen, "aria-controls": id },
1205
1212
  title,
1206
- React__default.createElement("span", { className: styles$p.accordionIcon }))),
1213
+ React__default.createElement("span", { className: styles$p.accordionIcon },
1214
+ React__default.createElement(IconAccordionChevron, { containerClassName: styles$p.accordionIconContainer, arrowClassName: styles$p.accordionIconArrow })))),
1207
1215
  React__default.createElement("div", { id: id, className: "".concat(styles$p.accordionCollapse, " ").concat(isOpen ? styles$p.show : "") },
1208
1216
  React__default.createElement("div", { className: styles$p.accordionBody }, content))));
1209
1217
  }
@@ -24154,31 +24162,137 @@ var ModalBody = function (_a) {
24154
24162
  return (React__default.createElement("div", { className: "".concat(style.modalBody, " ").concat(className || "") }, children));
24155
24163
  };
24156
24164
 
24157
- var css_248z$b = ".styles-module__relativeDiv___4G0-P {\r\n position: relative;\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n\r\n.styles-module__buttonDropdownTrigger___EZxPN {\r\n border: none;\r\n cursor: pointer;\r\n outline: none;\r\n background-color: transparent;\r\n}\r\n\r\n.styles-module__buttonDropdownTrigger___EZxPN svg {\r\n color: var(--color-secondary);\r\n width: 24px;\r\n height: 18px;\r\n}\r\n\r\n.styles-module__dropdownMenu___s4viz {\r\n position: absolute;\r\n top: 100%;\r\n right: 10px;\r\n min-width: 200px;\r\n background-color: white;\r\n border-radius: 10px;\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n z-index: 1000;\r\n padding: 5px;\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: opacity 0.3s ease, visibility 0.3s ease;\r\n}\r\n\r\n.styles-module__dropdownMenu___s4viz.styles-module__active___ieadq {\r\n opacity: 1;\r\n visibility: visible;\r\n transition: opacity 0.3s ease, visibility 0.3s ease;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy {\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n padding: 0.2rem 0.4rem;\r\n color: var(--color-secondary);\r\n background-color: white;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy label {\r\n vertical-align: middle;\r\n border: none;\r\n cursor: pointer;\r\n font-family: Open Sans;\r\n font-weight: 400;\r\n font-size: 13px;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy svg {\r\n vertical-align: middle;\r\n height: 16px;\r\n width: 16px;\r\n margin-right: 0.2rem;\r\n color: var(--foreground);\r\n cursor: pointer;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy:hover {\r\n background-color: #e5f1f9;\r\n cursor: pointer;\r\n}\r\n\r\n.styles-module__iconeInDots___qmaFm {\r\n border: none !important;\r\n background-color: transparent;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n height: 1rem;\r\n padding: 0;\r\n margin: 0;\r\n outline: none;\r\n cursor: pointer;\r\n}\r\n";
24158
- var styles$a = {"relativeDiv":"styles-module__relativeDiv___4G0-P","buttonDropdownTrigger":"styles-module__buttonDropdownTrigger___EZxPN","dropdownMenu":"styles-module__dropdownMenu___s4viz","active":"styles-module__active___ieadq","dropdownItem":"styles-module__dropdownItem___5HFiy"};
24165
+ var css_248z$b = ".styles-module__relativeDiv___4G0-P {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: 8px;\r\n margin-right: 4px;\r\n position: relative;\r\n}\r\n\r\n.styles-module__buttonDropdownTrigger___EZxPN {\r\n cursor: pointer;\r\n padding: 8px;\r\n border: none;\r\n background: transparent;\r\n border-radius: 8px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.styles-module__dropdownMenu___s4viz {\r\n position: absolute;\r\n right: 0;\r\n top: calc(100% + 6px);\r\n background-color: white;\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n border-radius: 8px;\r\n min-width: 120px;\r\n width: fit-content;\r\n max-width: calc(100vw - 32px);\r\n white-space: nowrap;\r\n z-index: 9999;\r\n padding: 4px;\r\n outline: none;\r\n opacity: 0;\r\n transition: opacity 280ms ease;\r\n}\r\n\r\n.styles-module__openUp___NKJFe {\r\n top: auto;\r\n bottom: calc(100% + 6px);\r\n}\r\n\r\n.styles-module__alignLeft___Z8wcg {\r\n right: auto;\r\n left: 0;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy {\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n font-size: 14px;\r\n color: var(--color-secondary);\r\n background-color: white;\r\n padding: 6px 10px;\r\n border: none;\r\n cursor: pointer;\r\n outline: none;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy:focus,\r\n.styles-module__dropdownItem___5HFiy:hover {\r\n background-color: var(--background-color-table-hover);\r\n}\r\n\r\n.styles-module__dropdownItemEmpty___1jeUQ:hover {\r\n background-color: transparent;\r\n cursor: default;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy > span {\r\n width: 100%;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy svg {\r\n vertical-align: middle;\r\n margin-right: 4px;\r\n color: var(--color-pge-base);\r\n flex: 0 0 auto;\r\n width: 12px;\r\n height: 12px;\r\n}\r\n\r\n.styles-module__dropdownItem___5HFiy label {\r\n vertical-align: middle;\r\n border: none;\r\n cursor: pointer;\r\n font-family: var(--font-open-sans-regular);\r\n font-weight: 400;\r\n font-size: 13px;\r\n line-height: 1;\r\n}\r\n\r\n.styles-module__menuVisible___8lvfd {\r\n opacity: 1 !important;\r\n pointer-events: auto;\r\n}\r\n\r\n.styles-module__menuHidden___fTSVx {\r\n opacity: 0;\r\n pointer-events: none;\r\n}\r\n\r\n/* mobile adjustments */\r\n@media (max-width: 480px) {\r\n .styles-module__dropdownMenu___s4viz {\r\n position: fixed;\r\n right: 8px;\r\n left: 8px;\r\n top: auto;\r\n border-radius: 12px;\r\n padding: 4px;\r\n max-height: calc(100vh - 32px);\r\n overflow-y: auto;\r\n box-sizing: border-box;\r\n white-space: normal;\r\n }\r\n .styles-module__openUp___NKJFe {\r\n bottom: 8px;\r\n }\r\n}\r\n";
24166
+ var styles$a = {"relativeDiv":"styles-module__relativeDiv___4G0-P","buttonDropdownTrigger":"styles-module__buttonDropdownTrigger___EZxPN","dropdownMenu":"styles-module__dropdownMenu___s4viz","openUp":"styles-module__openUp___NKJFe","alignLeft":"styles-module__alignLeft___Z8wcg","dropdownItem":"styles-module__dropdownItem___5HFiy","dropdownItemEmpty":"styles-module__dropdownItemEmpty___1jeUQ","menuVisible":"styles-module__menuVisible___8lvfd","menuHidden":"styles-module__menuHidden___fTSVx"};
24159
24167
  styleInject(css_248z$b);
24160
24168
 
24161
24169
  var MenuAction = function (_a) {
24162
24170
  var itens = _a.itens;
24163
- var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
24164
- var dropdownRef = useRef(null);
24165
24171
  var filteredItems = itens.filter(Boolean);
24172
+ var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
24173
+ var containerRef = useRef(null);
24174
+ var triggerRef = useRef(null);
24175
+ var _c = useState(false), openUp = _c[0], setOpenUp = _c[1];
24176
+ var _d = useState(false), alignLeft = _d[0], setAlignLeft = _d[1];
24177
+ var _e = useState(null), menuCoords = _e[0], setMenuCoords = _e[1];
24178
+ var menuRef = useRef(null);
24179
+ var _f = useState(false), renderMenu = _f[0], setRenderMenu = _f[1];
24180
+ var _g = useState(false), isClosing = _g[0], setIsClosing = _g[1];
24181
+ var closeTimeoutRef = useRef(null);
24166
24182
  useEffect(function () {
24167
- var handleClickOutside = function (event) {
24168
- if (dropdownRef.current &&
24169
- !dropdownRef.current.contains(event.target)) {
24170
- setTimeout(function () {
24171
- setIsOpen(false);
24172
- }, 300);
24183
+ function handleOutside(e) {
24184
+ var target = e.target;
24185
+ if (containerRef.current &&
24186
+ target &&
24187
+ containerRef.current.contains(target))
24188
+ return;
24189
+ if (menuRef.current && target && menuRef.current.contains(target))
24190
+ return;
24191
+ setIsOpen(false);
24192
+ }
24193
+ function handleKey(e) {
24194
+ if (e.key === "Escape")
24195
+ setIsOpen(false);
24196
+ }
24197
+ if (isOpen) {
24198
+ document.addEventListener("mousedown", handleOutside);
24199
+ document.addEventListener("touchstart", handleOutside);
24200
+ document.addEventListener("keydown", handleKey);
24201
+ }
24202
+ return function () {
24203
+ document.removeEventListener("mousedown", handleOutside);
24204
+ document.removeEventListener("touchstart", handleOutside);
24205
+ document.removeEventListener("keydown", handleKey);
24206
+ };
24207
+ }, [isOpen]);
24208
+ useEffect(function () {
24209
+ if (!isOpen || !triggerRef.current)
24210
+ return;
24211
+ var updateCoords = function () {
24212
+ if (!triggerRef.current)
24213
+ return;
24214
+ var rect = triggerRef.current.getBoundingClientRect();
24215
+ var topPos = rect.top + 20;
24216
+ var leftPos = rect.left + 12;
24217
+ setOpenUp(false);
24218
+ setAlignLeft(true);
24219
+ setMenuCoords({
24220
+ top: topPos,
24221
+ left: leftPos,
24222
+ useTransform: true,
24223
+ });
24224
+ };
24225
+ updateCoords();
24226
+ window.addEventListener("scroll", toggle, true);
24227
+ window.addEventListener("resize", updateCoords);
24228
+ return function () {
24229
+ window.removeEventListener("scroll", toggle, true);
24230
+ window.removeEventListener("resize", updateCoords);
24231
+ };
24232
+ }, [isOpen]);
24233
+ useEffect(function () {
24234
+ if (isOpen) {
24235
+ if (closeTimeoutRef.current) {
24236
+ window.clearTimeout(closeTimeoutRef.current);
24237
+ closeTimeoutRef.current = null;
24238
+ }
24239
+ setRenderMenu(true);
24240
+ setIsClosing(false);
24241
+ return;
24242
+ }
24243
+ if (!isOpen && renderMenu) {
24244
+ setIsClosing(true);
24245
+ closeTimeoutRef.current = window.setTimeout(function () {
24246
+ setRenderMenu(false);
24247
+ setIsClosing(false);
24248
+ closeTimeoutRef.current = null;
24249
+ }, 180);
24250
+ }
24251
+ return function () {
24252
+ if (closeTimeoutRef.current) {
24253
+ window.clearTimeout(closeTimeoutRef.current);
24254
+ closeTimeoutRef.current = null;
24173
24255
  }
24174
24256
  };
24175
- document.addEventListener("mousedown", handleClickOutside);
24176
- return function () { return document.removeEventListener("mousedown", handleClickOutside); };
24177
- }, []);
24178
- return (React__default.createElement("div", { className: styles$a.relativeDiv, ref: dropdownRef },
24179
- React__default.createElement("div", { className: styles$a.buttonDropdownTrigger, onClick: function () { return setIsOpen(!isOpen); } },
24180
- React__default.createElement(IconDotsVertical, null)),
24181
- React__default.createElement("div", { className: "".concat(styles$a.dropdownMenu, " ").concat(isOpen ? styles$a.active : "") }, filteredItems.length === 0 ? (React__default.createElement("div", { className: styles$a.dropdownItem }, "Nenhum item dispon\u00EDvel")) : (filteredItems.map(function (item, index) { return (React__default.createElement("div", { key: index, className: styles$a.dropdownItem, onClick: function () { return setIsOpen(false); } }, item)); })))));
24257
+ }, [isOpen, renderMenu]);
24258
+ var toggle = function () { return setIsOpen(function (s) { return !s; }); };
24259
+ var handleTriggerKeyDown = function (e) {
24260
+ var _a;
24261
+ if (e.key === "Enter" || e.key === " ") {
24262
+ e.preventDefault();
24263
+ setIsOpen(function (s) { return !s; });
24264
+ }
24265
+ else if (e.key === "ArrowDown") {
24266
+ e.preventDefault();
24267
+ setIsOpen(true);
24268
+ var first = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("[role='menuitem']");
24269
+ first === null || first === void 0 ? void 0 : first.focus();
24270
+ }
24271
+ };
24272
+ var handleItemClick = function () {
24273
+ setIsOpen(false);
24274
+ };
24275
+ return (React__default.createElement("div", { className: styles$a.relativeDiv, ref: containerRef },
24276
+ React__default.createElement("button", { ref: triggerRef, className: styles$a.buttonDropdownTrigger, onClick: toggle, onKeyDown: handleTriggerKeyDown, "aria-haspopup": "menu", "aria-expanded": isOpen, title: "Menu", type: "button" },
24277
+ React__default.createElement(CommonDotIcon, null)),
24278
+ renderMenu &&
24279
+ (typeof document !== "undefined" && menuCoords ? (createPortal(React__default.createElement("div", { ref: menuRef, className: "".concat(styles$a.dropdownMenu, " ").concat(openUp ? styles$a.openUp : "", " ").concat(alignLeft ? styles$a.alignLeft : "", " ").concat(isOpen && !isClosing ? styles$a.menuVisible : "", " ").concat(isClosing ? styles$a.menuHidden : ""), role: "menu", style: {
24280
+ position: "fixed",
24281
+ top: menuCoords.top,
24282
+ left: typeof menuCoords.left !== "undefined"
24283
+ ? menuCoords.left
24284
+ : undefined,
24285
+ right: typeof menuCoords.right !== "undefined"
24286
+ ? menuCoords.right
24287
+ : undefined,
24288
+ bottom: menuCoords.bottom,
24289
+ transform: menuCoords.useTransform
24290
+ ? "translateX(-100%)"
24291
+ : undefined,
24292
+ transformOrigin: menuCoords.useTransform
24293
+ ? "right top"
24294
+ : undefined,
24295
+ } }, filteredItems.length === 0 ? (React__default.createElement("div", { className: "".concat(styles$a.dropdownItem, " ").concat(styles$a.dropdownItemEmpty), role: "menuitem", tabIndex: 0 }, "Nenhum item dispon\u00EDvel")) : (filteredItems.map(function (item, index) { return (React__default.createElement("div", { key: index, className: styles$a.dropdownItem, role: "menuitem", tabIndex: 0, onClick: handleItemClick }, item)); }))), document.body)) : (React__default.createElement("div", { className: "".concat(styles$a.dropdownMenu, " ").concat(openUp ? styles$a.openUp : "", " ").concat(alignLeft ? styles$a.alignLeft : "", " ").concat(isOpen && !isClosing ? styles$a.menuVisible : "", " ").concat(isClosing ? styles$a.menuHidden : ""), role: "menu" }, filteredItems.length === 0 ? (React__default.createElement("div", { className: styles$a.dropdownItem, role: "menuitem", tabIndex: 0 }, "Nenhum item dispon\u00EDvel")) : (filteredItems.map(function (item, index) { return (React__default.createElement("div", { key: index, className: styles$a.dropdownItem, role: "menuitem", tabIndex: 0, onClick: handleItemClick }, item)); })))))));
24182
24296
  };
24183
24297
 
24184
24298
  var css_248z$a = ".styles-module__skeletonContainer___0VNvK {\r\n background: #e5e7eb;\r\n border-radius: inherit;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.styles-module__skeletonCell___EOlCz {\r\n animation: styles-module__skeletonLoading___n8C-o 1.5s infinite;\r\n background: linear-gradient(\r\n 90deg,\r\n rgba(255, 255, 255, 0) 0,\r\n rgba(255, 255, 255, 0.6) 50%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n background-size: 200px 100%;\r\n background-repeat: no-repeat;\r\n border-radius: inherit;\r\n height: 100%;\r\n min-height: 24px;\r\n overflow: hidden;\r\n position: relative;\r\n width: 100%;\r\n}\r\n\r\n@keyframes styles-module__skeletonLoading___n8C-o {\r\n 0% {\r\n background-position: -200px 0;\r\n }\r\n 100% {\r\n background-position: calc(200px + 100%) 0;\r\n }\r\n}\r\n";