git / moonbite-network / static/moonbite-ds.js · raw

/* MoonBite design system behaviour. External file (CSP: script-src 'self'),   no inline handlers. Only what static markup cannot do. */(function () {  "use strict";  /* copy buttons: <button class="ds-copy" data-copy="#target-id"> or inside a     .ds-code block (copies its <pre>) */  document.addEventListener("click", function (e) {    var btn = e.target.closest && e.target.closest(".ds-copy");    if (!btn) return;    var sel = btn.getAttribute("data-copy"), src = sel ? document.querySelector(sel) : null;    if (!src) { var box = btn.closest(".ds-code"); src = box && box.querySelector("pre"); }    if (!src || !navigator.clipboard) return;    navigator.clipboard.writeText(src.innerText.trim()).then(function () {      var was = btn.textContent; btn.textContent = "Copied";      setTimeout(function () { btn.textContent = was; }, 1600);    }).catch(function () {});  });})();