{"version":3,"sources":["file:///home/runner/work/ceda-div-hugo-hinode/ceda-div-hugo-hinode/_vendor/github.com/gethinode/hinode/v3/assets/js/modules/lightbox/lightbox.mjs"],"sourcesContent":["// Reusable lightbox: clone a trigger's source node into a shared \u003cdialog\u003e and showModal().\n// Trigger contract: [data-lightbox-trigger] + one of\n//   data-lightbox-source=\"\u003ccss selector\u003e\"          (document-wide), or\n//   data-lightbox-source-closest=\"\u003ccss selector\u003e\"  (via trigger.closest()).\n\nlet lastTrigger = null\n\nfunction dialogEl () {\n  return document.querySelector('dialog.lightbox')\n}\n\nfunction resolveSource (trigger) {\n  const closest = trigger.getAttribute('data-lightbox-source-closest')\n  if (closest) return trigger.closest(closest)\n  const sel = trigger.getAttribute('data-lightbox-source')\n  if (sel) return document.querySelector(sel)\n  return null\n}\n\nfunction open (trigger) {\n  const dialog = dialogEl()\n  const source = resolveSource(trigger)\n  if (!dialog || !source) return\n  const mount = dialog.querySelector('.lightbox-content')\n  if (!mount) return\n  const clone = source.cloneNode(true)\n  // Drop nested triggers so the fullscreen button doesn't recurse inside the dialog.\n  clone\n    .querySelectorAll('[data-lightbox-trigger]')\n    .forEach(el =\u003e el.remove())\n  // Clear observer-init markers so enhancements (e.g. mermaid pan/zoom) re-attach to the clone.\n  clone\n    .querySelectorAll('[data-panzoom-init]')\n    .forEach(el =\u003e el.removeAttribute('data-panzoom-init'))\n  mount.replaceChildren(clone)\n  lastTrigger = trigger\n  dialog.showModal()\n}\n\nfunction initDialog (dialog) {\n  if (dialog.dataset.lightboxInit) return\n  dialog.dataset.lightboxInit = 'true'\n  const closeBtn = dialog.querySelector('.lightbox-close')\n  if (closeBtn) closeBtn.addEventListener('click', () =\u003e dialog.close())\n  // A click on the backdrop targets the \u003cdialog\u003e element itself.\n  dialog.addEventListener('click', e =\u003e {\n    if (e.target === dialog) dialog.close()\n  })\n  dialog.addEventListener('close', () =\u003e {\n    const mount = dialog.querySelector('.lightbox-content')\n    if (mount) mount.replaceChildren()\n    if (lastTrigger) {\n      lastTrigger.focus()\n      lastTrigger = null\n    }\n  })\n}\n\nfunction initTrigger (trigger) {\n  if (trigger.dataset.lightboxInit) return\n  trigger.dataset.lightboxInit = 'true'\n  trigger.addEventListener('click', () =\u003e open(trigger))\n}\n\nfunction initAll () {\n  const dialog = dialogEl()\n  if (dialog) initDialog(dialog)\n  document.querySelectorAll('[data-lightbox-trigger]').forEach(initTrigger)\n}\n\ninitAll()\n\nnew MutationObserver(mutations =\u003e {\n  mutations.forEach(m =\u003e {\n    m.addedNodes.forEach(node =\u003e {\n      if (node.nodeType !== Node.ELEMENT_NODE) return\n      if (node.matches \u0026\u0026 node.matches('dialog.lightbox')) initDialog(node)\n      if (node.matches \u0026\u0026 node.matches('[data-lightbox-trigger]'))\n        initTrigger(node)\n      if (node.querySelectorAll)\n        node.querySelectorAll('[data-lightbox-trigger]').forEach(initTrigger)\n    })\n  })\n}).observe(document.body, { childList: true, subtree: true })\n"],"mappings":";AAKA,IAAI,cAAc;AAElB,SAAS,WAAY;AACnB,SAAO,SAAS,cAAc,iBAAiB;AACjD;AAEA,SAAS,cAAe,SAAS;AAC/B,QAAM,UAAU,QAAQ,aAAa,8BAA8B;AACnE,MAAI,QAAS,QAAO,QAAQ,QAAQ,OAAO;AAC3C,QAAM,MAAM,QAAQ,aAAa,sBAAsB;AACvD,MAAI,IAAK,QAAO,SAAS,cAAc,GAAG;AAC1C,SAAO;AACT;AAEA,SAAS,KAAM,SAAS;AACtB,QAAM,SAAS,SAAS;AACxB,QAAM,SAAS,cAAc,OAAO;AACpC,MAAI,CAAC,UAAU,CAAC,OAAQ;AACxB,QAAM,QAAQ,OAAO,cAAc,mBAAmB;AACtD,MAAI,CAAC,MAAO;AACZ,QAAM,QAAQ,OAAO,UAAU,IAAI;AAEnC,QACG,iBAAiB,yBAAyB,EAC1C,QAAQ,QAAM,GAAG,OAAO,CAAC;AAE5B,QACG,iBAAiB,qBAAqB,EACtC,QAAQ,QAAM,GAAG,gBAAgB,mBAAmB,CAAC;AACxD,QAAM,gBAAgB,KAAK;AAC3B,gBAAc;AACd,SAAO,UAAU;AACnB;AAEA,SAAS,WAAY,QAAQ;AAC3B,MAAI,OAAO,QAAQ,aAAc;AACjC,SAAO,QAAQ,eAAe;AAC9B,QAAM,WAAW,OAAO,cAAc,iBAAiB;AACvD,MAAI,SAAU,UAAS,iBAAiB,SAAS,MAAM,OAAO,MAAM,CAAC;AAErE,SAAO,iBAAiB,SAAS,OAAK;AACpC,QAAI,EAAE,WAAW,OAAQ,QAAO,MAAM;AAAA,EACxC,CAAC;AACD,SAAO,iBAAiB,SAAS,MAAM;AACrC,UAAM,QAAQ,OAAO,cAAc,mBAAmB;AACtD,QAAI,MAAO,OAAM,gBAAgB;AACjC,QAAI,aAAa;AACf,kBAAY,MAAM;AAClB,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AACH;AAEA,SAAS,YAAa,SAAS;AAC7B,MAAI,QAAQ,QAAQ,aAAc;AAClC,UAAQ,QAAQ,eAAe;AAC/B,UAAQ,iBAAiB,SAAS,MAAM,KAAK,OAAO,CAAC;AACvD;AAEA,SAAS,UAAW;AAClB,QAAM,SAAS,SAAS;AACxB,MAAI,OAAQ,YAAW,MAAM;AAC7B,WAAS,iBAAiB,yBAAyB,EAAE,QAAQ,WAAW;AAC1E;AAEA,QAAQ;AAER,IAAI,iBAAiB,eAAa;AAChC,YAAU,QAAQ,OAAK;AACrB,MAAE,WAAW,QAAQ,UAAQ;AAC3B,UAAI,KAAK,aAAa,KAAK,aAAc;AACzC,UAAI,KAAK,WAAW,KAAK,QAAQ,iBAAiB,EAAG,YAAW,IAAI;AACpE,UAAI,KAAK,WAAW,KAAK,QAAQ,yBAAyB;AACxD,oBAAY,IAAI;AAClB,UAAI,KAAK;AACP,aAAK,iBAAiB,yBAAyB,EAAE,QAAQ,WAAW;AAAA,IACxE,CAAC;AAAA,EACH,CAAC;AACH,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,WAAW,MAAM,SAAS,KAAK,CAAC;","names":[]}