pge-front-common 14.1.2 → 14.1.4

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,4 +1,3 @@
1
1
  import React from "react";
2
2
  import { ModalProps } from "./index.type";
3
- declare const Modal: ({ isOpen, onClose, children, className }: ModalProps) => React.JSX.Element | null;
4
- export default Modal;
3
+ export default function Modal({ isOpen, onClose, children, className, }: ModalProps): React.JSX.Element | null;
package/lib/index.d.ts CHANGED
@@ -717,7 +717,7 @@ type ModalFooterProps = HTMLAttributes<HTMLDivElement> & {
717
717
  className?: string;
718
718
  };
719
719
 
720
- declare const Modal: ({ isOpen, onClose, children, className }: ModalProps) => React__default.JSX.Element | null;
720
+ declare function Modal({ isOpen, onClose, children, className, }: ModalProps): React__default.JSX.Element | null;
721
721
 
722
722
  declare const ModalFooter: ({ children, className }: ModalFooterProps) => React__default.JSX.Element;
723
723
 
package/lib/index.esm.js CHANGED
@@ -105,14 +105,14 @@ styleInject(css_248z$B);
105
105
 
106
106
  var InputBase = function (_a) {
107
107
  var _b;
108
- var customClass = _a.customClass, restrictionMessage = _a.restrictionMessage, label = _a.label, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, onRightIconClick = _a.onRightIconClick, style = _a.style, required = _a.required; _a.error; _a.helperText; var disabled = _a.disabled; _a.readOnly; _a.className; var showCounter = _a.showCounter, value = _a.value, props = __rest(_a, ["customClass", "restrictionMessage", "label", "leftIcon", "rightIcon", "onRightIconClick", "style", "required", "error", "helperText", "disabled", "readOnly", "className", "showCounter", "value"]);
108
+ var customClass = _a.customClass, restrictionMessage = _a.restrictionMessage, label = _a.label, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, onRightIconClick = _a.onRightIconClick, style = _a.style, required = _a.required, error = _a.error; _a.helperText; var disabled = _a.disabled; _a.readOnly; _a.className; var showCounter = _a.showCounter, value = _a.value, props = __rest(_a, ["customClass", "restrictionMessage", "label", "leftIcon", "rightIcon", "onRightIconClick", "style", "required", "error", "helperText", "disabled", "readOnly", "className", "showCounter", "value"]);
109
109
  var characterCount = (value === null || value === void 0 ? void 0 : value.toString().length) || 0;
110
110
  return (React__default.createElement("div", { className: styles$y.inputContainer },
111
111
  label && (React__default.createElement("label", { tabIndex: disabled ? -1 : 0, htmlFor: props.name, className: "".concat(styles$y.labelInput, " ").concat(required ? styles$y.labelRequired : "") }, label)),
112
112
  React__default.createElement("div", { className: styles$y.inputContent },
113
113
  leftIcon && React__default.createElement("div", { className: styles$y.iconWrapperLeft }, leftIcon),
114
114
  React__default.createElement("input", __assign({ className: clsx(styles$y.textInput, customClass, (_b = {},
115
- _b[styles$y.textInputDanger] = restrictionMessage,
115
+ _b[styles$y.textInputDanger] = restrictionMessage || error,
116
116
  _b)), style: __assign({ paddingLeft: leftIcon ? "36px" : "8px", paddingRight: rightIcon ? "36px" : "8px" }, style), id: props.name, value: value }, props, { disabled: disabled })),
117
117
  rightIcon && (React__default.createElement("button", { tabIndex: -1, type: "button", className: styles$y.iconWrapperRight, onClick: function () { return onRightIconClick === null || onRightIconClick === void 0 ? void 0 : onRightIconClick(); }, "aria-label": "A\u00E7\u00E3o ao clicar no \u00EDcone ao lado direito" }, rightIcon))),
118
118
  (restrictionMessage || showCounter) && (React__default.createElement("div", { className: styles$y.messageContainer },
@@ -23758,26 +23758,39 @@ var css_248z$6 = "@keyframes styles-module__fadeIn___09YGY {\r\n from {\r\n
23758
23758
  var style = {"modalOverlay":"styles-module__modalOverlay___zIq-T","fadeIn":"styles-module__fadeIn___09YGY","modal":"styles-module__modal___4vuMK","modalHeader":"styles-module__modalHeader___P-TK7","modalHeaderContent":"styles-module__modalHeaderContent___i6CzG","closeButton":"styles-module__closeButton___F4c5B","modalBody":"styles-module__modalBody___jzSq1","modalFooter":"styles-module__modalFooter___keSWl"};
23759
23759
  styleInject(css_248z$6);
23760
23760
 
23761
- var Modal = function (_a) {
23761
+ var ELEMENTOS_COM_FOCO = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex="0"]';
23762
+ function Modal(_a) {
23762
23763
  var isOpen = _a.isOpen, onClose = _a.onClose, children = _a.children, _b = _a.className, className = _b === void 0 ? "" : _b;
23763
- var _c = useState(isOpen), isVisible = _c[0], setIsVisible = _c[1];
23764
+ var contentRef = useRef(null);
23765
+ var openerRef = useRef(null);
23764
23766
  useEffect(function () {
23767
+ var _a, _b;
23765
23768
  if (isOpen) {
23766
- setIsVisible(true);
23769
+ openerRef.current = document.activeElement;
23770
+ (_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.focus();
23771
+ }
23772
+ else {
23773
+ (_b = openerRef.current) === null || _b === void 0 ? void 0 : _b.focus();
23767
23774
  }
23768
23775
  }, [isOpen]);
23769
- if (!isOpen) {
23776
+ if (!isOpen)
23770
23777
  return null;
23771
- }
23772
- var handleClose = function () {
23773
- setIsVisible(false);
23774
- onClose();
23778
+ var moveToFirst = function () {
23779
+ var els = contentRef.current.querySelectorAll(ELEMENTOS_COM_FOCO);
23780
+ els.length && els[0].focus();
23775
23781
  };
23776
- if (!isVisible && !isOpen)
23777
- return null;
23778
- return (React__default.createElement("div", { className: "".concat(style.modalOverlay), onClick: handleClose },
23779
- React__default.createElement("div", { className: "".concat(style.modal, " ").concat(className || ""), onClick: function (e) { return e.stopPropagation(); } }, children)));
23780
- };
23782
+ var moveToLast = function () {
23783
+ var els = contentRef.current.querySelectorAll(ELEMENTOS_COM_FOCO);
23784
+ els.length && els[els.length - 1].focus();
23785
+ };
23786
+ return (React__default.createElement("div", { className: style.modalOverlay, onClick: onClose, role: "presentation" },
23787
+ React__default.createElement("div", { tabIndex: 0, onFocus: moveToLast, "aria-hidden": "true" }),
23788
+ React__default.createElement("div", { ref: contentRef, className: "".concat(style.modal, " ").concat(className), role: "dialog", "aria-modal": "true", tabIndex: -1, onClick: function (e) { return e.stopPropagation(); }, onKeyDown: function (e) {
23789
+ if (e.key === "Escape")
23790
+ onClose();
23791
+ } }, children),
23792
+ React__default.createElement("div", { tabIndex: 0, onFocus: moveToFirst, "aria-hidden": "true" })));
23793
+ }
23781
23794
 
23782
23795
  var ModalFooter = function (_a) {
23783
23796
  var children = _a.children, className = _a.className;
@@ -23788,7 +23801,10 @@ var ModalHeader = function (_a) {
23788
23801
  var children = _a.children, onClose = _a.onClose, className = _a.className;
23789
23802
  return (React__default.createElement("header", { className: "".concat(style.modalHeader, " ").concat(className || "") },
23790
23803
  React__default.createElement("div", { className: style.modalHeaderContent }, children),
23791
- React__default.createElement(IconCLose, { className: style.closeButton, onClick: onClose })));
23804
+ React__default.createElement(IconCLose, { role: "button", tabIndex: 0, className: style.closeButton, onClick: onClose, "aria-label": "Fechar modal", onKeyDown: function (e) {
23805
+ if (e.key === "Enter" || e.key === " ")
23806
+ onClose();
23807
+ } })));
23792
23808
  };
23793
23809
 
23794
23810
  var ModalBody = function (_a) {