"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 dropdown_menu_exports = {};
__export(dropdown_menu_exports, {
  DropdownMenu: () => DropdownMenu
});
module.exports = __toCommonJS(dropdown_menu_exports);
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_audio_scss = __toESM(require("../statics/styles/audio-scss.js"));
const optionElement = (option) => {
  const selected = option?.selected;
  const content = option.icon ? /* @__PURE__ */ import_react.default.createElement("span", { className: import_audio_scss.default.dropdownContentWithIcon }, option.icon(), option.text) : /* @__PURE__ */ import_react.default.createElement("span", { className: import_audio_scss.default.dropdownContent }, option.text);
  const onKeyDown = (e) => {
    if (e.key === "Enter") {
      option.onClick();
    }
  };
  return /* @__PURE__ */ import_react.default.createElement(
    "button",
    {
      key: option.text,
      className: selected ? import_audio_scss.default.dropdownSelectedButton : "",
      onKeyDown,
      onClick: option.onClick,
      "data-hook": option?.dataHook,
      type: "button"
    },
    content
  );
};
const DropdownMenu = ({ options, onClose, dataHook }) => {
  const { jsdomMode } = import_react.default.useContext(import_ricos_context.RicosContext);
  const onKeyDown = (e) => {
    if (e.key === "Escape") {
      onClose();
    }
  };
  return /* @__PURE__ */ import_react.default.createElement(import_focus_manager.FocusManager, { onKeyDown, jsdomMode }, /* @__PURE__ */ import_react.default.createElement("div", { className: import_audio_scss.default.dropdownMenuWrapper, role: "menu", "data-hook": dataHook }, options.map((option) => optionElement(option))));
};
//# sourceMappingURL=dropdown-menu.js.map
