"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// packages/block-library/src/accordion-heading/edit.js
var edit_exports = {};
__export(edit_exports, {
  default: () => Edit
});
module.exports = __toCommonJS(edit_exports);
var import_i18n = require("@wordpress/i18n");
var import_element = require("@wordpress/element");
var import_block_editor = require("@wordpress/block-editor");
var import_jsx_runtime = require("react/jsx-runtime");
function Edit({ attributes, setAttributes, context }) {
  const { title } = attributes;
  const {
    "core/accordion-icon-position": iconPosition,
    "core/accordion-show-icon": showIcon,
    "core/accordion-heading-level": headingLevel
  } = context;
  const TagName = "h" + headingLevel;
  (0, import_element.useEffect)(() => {
    if (iconPosition !== void 0 && showIcon !== void 0) {
      setAttributes({
        iconPosition,
        showIcon
      });
    }
  }, [iconPosition, showIcon, setAttributes]);
  const [fluidTypographySettings, layout] = (0, import_block_editor.useSettings)(
    "typography.fluid",
    "layout"
  );
  const typographyProps = (0, import_block_editor.getTypographyClassesAndStyles)(attributes, {
    typography: {
      fluid: fluidTypographySettings
    },
    layout: {
      wideSize: layout?.wideSize
    }
  });
  const blockProps = (0, import_block_editor.useBlockProps)();
  const spacingProps = (0, import_block_editor.__experimentalGetSpacingClassesAndStyles)(attributes);
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TagName, { ...blockProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
    "button",
    {
      className: "wp-block-accordion-heading__toggle",
      style: spacingProps.style,
      tabIndex: "-1",
      children: [
        showIcon && iconPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
          "span",
          {
            className: "wp-block-accordion-heading__toggle-icon",
            "aria-hidden": "true",
            children: "+"
          }
        ),
        /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
          import_block_editor.RichText,
          {
            withoutInteractiveFormatting: true,
            disableLineBreaks: true,
            tagName: "span",
            value: title,
            onChange: (newTitle) => setAttributes({ title: newTitle }),
            placeholder: (0, import_i18n.__)("Accordion title"),
            className: "wp-block-accordion-heading__toggle-title",
            style: {
              letterSpacing: typographyProps.style.letterSpacing,
              textDecoration: typographyProps.style.textDecoration
            }
          }
        ),
        showIcon && iconPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
          "span",
          {
            className: "wp-block-accordion-heading__toggle-icon",
            "aria-hidden": "true",
            children: "+"
          }
        )
      ]
    }
  ) });
}
//# sourceMappingURL=edit.js.map
