"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var drawer_exports = {};
__export(drawer_exports, {
  Drawer: () => Drawer
});
module.exports = __toCommonJS(drawer_exports);
var import_classnames = __toESM(require("classnames"));
var import_react = __toESM(require("react"));
var import_ricos_context = require("./../../ricos-context/index.js");
var import_focus_manager = require("./../../_shared/focus-manager/focus-manager.js");
var import_ui_components = require("./../../ui-components/index.js");
var import_drawer_scss = __toESM(require("../statics/styles/drawer-scss.js"));
const Drawer = ({
  children,
  closeModal,
  modalConfig: { positioning },
  zIndex
}) => {
  const { jsdomMode, isMobile } = (0, import_react.useContext)(import_ricos_context.RicosContext);
  const [ref, setRef] = (0, import_react.useState)(null);
  const onModalClick = (e) => e.stopPropagation();
  const onOverlayClick = () => closeModal();
  const { placement } = positioning || {};
  return /* @__PURE__ */ import_react.default.createElement("div", { onClick: onOverlayClick, className: import_drawer_scss.default.overlay, style: { zIndex } }, /* @__PURE__ */ import_react.default.createElement(
    import_focus_manager.FocusManager,
    {
      focusTrapOptions: {
        returnFocusOnDeactivate: false
      },
      jsdomMode
    },
    /* @__PURE__ */ import_react.default.createElement(
      "div",
      {
        tabIndex: 0,
        onClick: onModalClick,
        className: (0, import_classnames.default)(
          import_drawer_scss.default.content,
          import_drawer_scss.default.contentBox,
          placement && import_drawer_scss.default[placementClassNameMapper[placement]],
          {
            [import_drawer_scss.default.mobile]: isMobile
          }
        ),
        ref: setRef,
        role: "dialog"
      },
      ref && /* @__PURE__ */ import_react.default.createElement(import_ui_components.UiComponentsProvider, { containerEl: ref }, children)
    )
  ));
};
const placementClassNameMapper = {
  right: "drawerR",
  left: "drawerL",
  top: "drawerT",
  bottom: "drawerB"
};
//# sourceMappingURL=drawer.js.map
