{
  "version": 3,
  "sources": ["/cdn/shop/t/6/assets/accordion-custom.js?cb=20260407-7"],
  "sourcesContent": ["import { mediaQueryLarge, isMobileBreakpoint } from '@theme/utilities';\n\n// Accordion\nclass AccordionCustom extends HTMLElement {\n  /** @type {HTMLDetailsElement} */\n  get details() {\n    const details = this.querySelector('details');\n\n    if (!(details instanceof HTMLDetailsElement)) throw new Error('Details element not found');\n\n    return details;\n  }\n\n  /** @type {HTMLElement} */\n  get summary() {\n    const summary = this.details.querySelector('summary');\n\n    if (!(summary instanceof HTMLElement)) throw new Error('Summary element not found');\n\n    return summary;\n  }\n\n  get #disableOnMobile() {\n    return this.dataset.disableOnMobile === 'true';\n  }\n\n  get #disableOnDesktop() {\n    return this.dataset.disableOnDesktop === 'true';\n  }\n\n  get #closeWithEscape() {\n    return this.dataset.closeWithEscape === 'true';\n  }\n\n  #controller = new AbortController();\n\n  connectedCallback() {\n    const { signal } = this.#controller;\n\n    this.#setDefaultOpenState();\n\n    this.addEventListener('keydown', this.#handleKeyDown, { signal });\n    this.summary.addEventListener('click', this.handleClick, { signal });\n    mediaQueryLarge.addEventListener('change', this.#handleMediaQueryChange, { signal });\n  }\n\n  /**\n   * Handles the disconnect event.\n   */\n  disconnectedCallback() {\n    // Disconnect all the event listeners\n    this.#controller.abort();\n  }\n\n  /**\n   * Handles the click event.\n   * @param {Event} event - The event.\n   */\n  handleClick = (event) => {\n    const isMobile = isMobileBreakpoint();\n    const isDesktop = !isMobile;\n\n    // Stop default behaviour from the browser\n    if ((isMobile && this.#disableOnMobile) || (isDesktop && this.#disableOnDesktop)) {\n      event.preventDefault();\n      return;\n    }\n  };\n\n  /**\n   * Handles the media query change event.\n   */\n  #handleMediaQueryChange = () => {\n    this.#setDefaultOpenState();\n  };\n\n  /**\n   * Sets the default open state of the accordion based on the `open-by-default-on-mobile` and `open-by-default-on-desktop` attributes.\n   */\n  #setDefaultOpenState() {\n    const isMobile = isMobileBreakpoint();\n\n    this.details.open =\n      (isMobile && this.hasAttribute('open-by-default-on-mobile')) ||\n      (!isMobile && this.hasAttribute('open-by-default-on-desktop'));\n  }\n\n  /**\n   * Handles keydown events for the accordion\n   *\n   * @param {KeyboardEvent} event - The keyboard event.\n   */\n  #handleKeyDown(event) {\n    // Close the accordion when used as a menu\n    if (event.key === 'Escape' && this.#closeWithEscape) {\n      event.preventDefault();\n\n      this.details.open = false;\n      this.summary.focus();\n    }\n  }\n}\n\nif (!customElements.get('accordion-custom')) {\n  customElements.define('accordion-custom', AccordionCustom);\n}\n"],
  "mappings": "AAAA,OAAS,gBAAiB,uBAA0B,mBAGpD,MAAM,wBAAwB,WAAY,CAExC,IAAI,SAAU,CACZ,MAAM,QAAU,KAAK,cAAc,SAAS,EAE5C,GAAI,EAAE,mBAAmB,oBAAqB,MAAM,IAAI,MAAM,2BAA2B,EAEzF,OAAO,OACT,CAGA,IAAI,SAAU,CACZ,MAAM,QAAU,KAAK,QAAQ,cAAc,SAAS,EAEpD,GAAI,EAAE,mBAAmB,aAAc,MAAM,IAAI,MAAM,2BAA2B,EAElF,OAAO,OACT,CAEA,GAAI,kBAAmB,CACrB,OAAO,KAAK,QAAQ,kBAAoB,MAC1C,CAEA,GAAI,mBAAoB,CACtB,OAAO,KAAK,QAAQ,mBAAqB,MAC3C,CAEA,GAAI,kBAAmB,CACrB,OAAO,KAAK,QAAQ,kBAAoB,MAC1C,CAEA,YAAc,IAAI,gBAElB,mBAAoB,CAClB,KAAM,CAAE,MAAO,EAAI,KAAK,YAExB,KAAK,qBAAqB,EAE1B,KAAK,iBAAiB,UAAW,KAAK,eAAgB,CAAE,MAAO,CAAC,EAChE,KAAK,QAAQ,iBAAiB,QAAS,KAAK,YAAa,CAAE,MAAO,CAAC,EACnE,gBAAgB,iBAAiB,SAAU,KAAK,wBAAyB,CAAE,MAAO,CAAC,CACrF,CAKA,sBAAuB,CAErB,KAAK,YAAY,MAAM,CACzB,CAMA,YAAe,OAAU,CACvB,MAAM,SAAW,mBAAmB,EAC9B,UAAY,CAAC,SAGnB,GAAK,UAAY,KAAK,kBAAsB,WAAa,KAAK,kBAAoB,CAChF,MAAM,eAAe,EACrB,MACF,CACF,EAKA,wBAA0B,IAAM,CAC9B,KAAK,qBAAqB,CAC5B,EAKA,sBAAuB,CACrB,MAAM,SAAW,mBAAmB,EAEpC,KAAK,QAAQ,KACV,UAAY,KAAK,aAAa,2BAA2B,GACzD,CAAC,UAAY,KAAK,aAAa,4BAA4B,CAChE,CAOA,eAAe,MAAO,CAEhB,MAAM,MAAQ,UAAY,KAAK,mBACjC,MAAM,eAAe,EAErB,KAAK,QAAQ,KAAO,GACpB,KAAK,QAAQ,MAAM,EAEvB,CACF,CAEK,eAAe,IAAI,kBAAkB,GACxC,eAAe,OAAO,mBAAoB,eAAe",
  "names": []
}
