{"version":3,"sources":["jsdelivr-header.js","/npm/handy-scroll@2.0.4/dist/handy-scroll.mjs"],"names":[],"mappings":"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","file":"/npm/handy-scroll@2.0.4/dist/handy-scroll.mjs","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/handy-scroll@2.0.4/dist/handy-scroll.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\nhandy-scroll v2.0.4\nhttps://amphiluke.github.io/handy-scroll/\n(c) 2025 Amphiluke\n*/\nconst o = ':host{bottom:0;min-height:17px;overflow:auto;position:fixed}.strut{height:1px;overflow:hidden;pointer-events:none;&:before{content:\" \"}}:host,.strut{font-size:1px;line-height:0;margin:0;padding:0}:host(:state(latent)){bottom:110vh;.strut:before{content:\"  \"}}:host([viewport]:not([hidden])){display:block}:host([viewport]){position:sticky}:host([viewport]:state(latent)){position:fixed}', h = new CSSStyleSheet();\nh.replaceSync(o);\nlet n = (s) => `Attribute ‘${s}’ must reference a valid container ‘id’`;\nclass r extends HTMLElement {\n  static get observedAttributes() {\n    return [\"owner\", \"viewport\", \"hidden\"];\n  }\n  #o = null;\n  #t = null;\n  #e = null;\n  #s = null;\n  #i = null;\n  #n = null;\n  #r = !0;\n  #l = !0;\n  get owner() {\n    return this.getAttribute(\"owner\");\n  }\n  set owner(t) {\n    this.setAttribute(\"owner\", t);\n  }\n  get viewport() {\n    return this.getAttribute(\"viewport\");\n  }\n  set viewport(t) {\n    this.setAttribute(\"viewport\", t);\n  }\n  get #h() {\n    return this.#o.states.has(\"latent\");\n  }\n  set #h(t) {\n    this.#o.states[t ? \"add\" : \"delete\"](\"latent\");\n  }\n  constructor() {\n    super();\n    let t = this.attachShadow({ mode: \"open\" });\n    t.adoptedStyleSheets = [h], this.#s = document.createElement(\"div\"), this.#s.classList.add(\"strut\"), t.appendChild(this.#s), this.#o = this.attachInternals();\n  }\n  connectedCallback() {\n    this.#a(), this.#c(), this.#u(), this.#p(), this.update();\n  }\n  disconnectedCallback() {\n    this.#w(), this.#f(), this.#e = this.#t = null;\n  }\n  attributeChangedCallback(t) {\n    if (this.#i) {\n      if (t === \"hidden\") {\n        this.hasAttribute(\"hidden\") || this.update();\n        return;\n      }\n      t === \"owner\" ? this.#a() : t === \"viewport\" && this.#c(), this.#w(), this.#f(), this.#u(), this.#p(), this.update();\n    }\n  }\n  #a() {\n    let t = this.getAttribute(\"owner\");\n    if (this.#e = document.getElementById(t), !this.#e)\n      throw new DOMException(n(\"owner\"));\n  }\n  #c() {\n    if (!this.hasAttribute(\"viewport\")) {\n      this.#t = window;\n      return;\n    }\n    let t = this.getAttribute(\"viewport\");\n    if (this.#t = document.getElementById(t), !this.#t)\n      throw new DOMException(n(\"viewport\"));\n  }\n  #u() {\n    this.#i = new AbortController();\n    let t = { signal: this.#i.signal };\n    this.#t.addEventListener(\"scroll\", () => this.#v(), t), this.#t === window && this.#t.addEventListener(\"resize\", () => this.update(), t), this.addEventListener(\"scroll\", () => {\n      this.#r && !this.#h && this.#b(), this.#r = !0;\n    }, t), this.#e.addEventListener(\"scroll\", () => {\n      this.#l && this.#d(), this.#l = !0;\n    }, t), this.#e.addEventListener(\"focusin\", () => {\n      setTimeout(() => {\n        this.isConnected && this.#d();\n      }, 0);\n    }, t);\n  }\n  #w() {\n    this.#i?.abort(), this.#i = null;\n  }\n  #p() {\n    this.#t !== window && (this.#n = new ResizeObserver(([t]) => {\n      t.contentBoxSize?.[0]?.inlineSize && this.update();\n    }), this.#n.observe(this.#t));\n  }\n  #f() {\n    this.#n?.disconnect(), this.#n = null;\n  }\n  #b() {\n    let { scrollLeft: t } = this;\n    this.#e.scrollLeft !== t && (this.#l = !1, this.#e.scrollLeft = t);\n  }\n  #d() {\n    let { scrollLeft: t } = this.#e;\n    this.scrollLeft !== t && (this.#r = !1, this.scrollLeft = t);\n  }\n  #v() {\n    let t = this.scrollWidth <= this.offsetWidth;\n    if (!t) {\n      let i = this.#e.getBoundingClientRect(), e = this.#t === window ? window.innerHeight || document.documentElement.clientHeight : this.#t.getBoundingClientRect().bottom;\n      t = i.bottom <= e || i.top > e;\n    }\n    this.#h !== t && (this.#h = t);\n  }\n  update() {\n    let { clientWidth: t, scrollWidth: i } = this.#e, { style: e } = this;\n    e.width = `${t}px`, this.#t === window && (e.left = `${this.#e.getBoundingClientRect().left}px`), this.#s.style.width = `${i}px`, i > t && (e.height = `${this.offsetHeight - this.clientHeight + 1}px`), this.#d(), this.#v();\n  }\n}\ncustomElements.define(\"handy-scroll\", r);\nexport {\n  r as default\n};\n"]}