budgit/assets/js/collapsible.min.js
2026-01-18 22:23:21 +00:00

1 line
1.1 KiB
JavaScript

(()=>{(function(){"use strict";function l(t){let e=t.querySelectorAll('[data-tui-collapsible="content"]');for(let n of e)if(n.closest('[data-tui-collapsible="root"]')===t)return n;return null}function i(t){let e=t.closest('[data-tui-collapsible="root"]');if(!e)return;let n=l(e),o=e.getAttribute("data-tui-collapsible-state")==="open",s=o?"closed":"open";e.setAttribute("data-tui-collapsible-state",s),t.setAttribute("aria-expanded",!o),n&&n.classList.toggle("tui-collapsible-open",!o)}function a(){document.querySelectorAll('[data-tui-collapsible="root"]').forEach(t=>{let e=t.getAttribute("data-tui-collapsible-state")==="open",n=l(t);n&&n.classList.toggle("tui-collapsible-open",e)})}document.addEventListener("click",t=>{let e=t.target.closest('[data-tui-collapsible="trigger"]');e&&(t.preventDefault(),i(e))}),document.addEventListener("keydown",t=>{if(t.key!==" "&&t.key!=="Enter")return;let e=t.target.closest('[data-tui-collapsible="trigger"]');e&&(t.preventDefault(),i(e))}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a()})();})();