"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.Accordion = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var _jsxRuntime = require("preact/compat/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const handleKeyDown = e => {
  const target = e.target;
  const accordionElement = e.currentTarget;
  if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
    const triggers = Array.prototype.slice.call(accordionElement.querySelectorAll('.ds-c-accordion__button'));
    const direction = e.key === 'ArrowDown' ? 1 : -1;
    const index = triggers.indexOf(target);
    const length = triggers.length;
    const newIndex = (index + length + direction) % length;
    triggers[newIndex].focus();
    e.preventDefault();
  }
};

/**
 * For information about how and when to use this component,
 * [refer to its full documentation page](https://design.cms.gov/components/accordion/).
 */
const Accordion = _ref => {
  let {
    bordered,
    children,
    className
  } = _ref;
  const classes = (0, _classnames.default)('ds-c-accordion', bordered && 'ds-c-accordion--bordered', className);
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
    onKeyDown: handleKeyDown,
    className: classes,
    children: children
  });
};
exports.Accordion = Accordion;
var _default = Accordion;
exports.default = _default;