// Module folding survives live refresh and full-page navigation. (() => { const KEY='tracker-usecase-collapsed-modules'; const read=()=>{try{const a=JSON.parse(localStorage.getItem(KEY)||'[]');return new Set(Array.isArray(a)?a.filter(x=>typeof x==='string'):[])}catch{return new Set()}}; const state=read(); function apply(){const collapsed=state;document.querySelectorAll('[data-uc-module]').forEach(group=>{const open=!collapsed.has(group.dataset.ucModule),button=group.querySelector('[data-uc-toggle]');button.setAttribute('aria-expanded',String(open));button.querySelector('[data-uc-chevron]').textContent=open?'▾':'▸';group.querySelectorAll('.uc-row').forEach(row=>row.hidden=!open)});} document.addEventListener('click',e=>{ const toggle=e.target.closest('[data-uc-toggle]'),expand=e.target.closest('[data-uc-expand-all]'),collapse=e.target.closest('[data-uc-collapse-all]');if(!toggle&&!expand&&!collapse)return; const set=state;if(toggle){const key=toggle.dataset.ucToggle;set.has(key)?set.delete(key):set.add(key)}else document.querySelectorAll('[data-uc-module]').forEach(g=>{collapse?set.add(g.dataset.ucModule):set.delete(g.dataset.ucModule)}); try{localStorage.setItem(KEY,JSON.stringify([...set]))}catch{} apply(); }); apply();document.addEventListener('tracker:updated',apply); })();