1var e=`text-[13px] font-medium px-4 py-1.5 rounded-full border cursor-pointer transition-colors whitespace-nowrap`,t=`${e} bg-[#678BC7] text-white border-[#678BC7]`,n=`${e} bg-white text-[#555] border-black/15 hover:border-black/30 hover:text-black`,r=class extends HTMLElement{searchInput=null;filterBtns=[];terms=[];emptyState=null;controls=null;activeCategory=`all`;searchQuery=``;resizeObserver=null;isHeaderHidden=!1;scrollLastY=0;siteHeader=null;onScroll=()=>{let e=window.pageYOffset||document.documentElement.scrollTop,t=e-this.scrollLastY,n=e<=0,r=t<0;(n||r)&&this.isHeaderHidden?(this.isHeaderHidden=!1,this.syncStickyTop()):!r&&!this.isHeaderHidden&&Math.abs(t)>10&&(this.isHeaderHidden=!0,this.syncStickyTop()),this.scrollLastY=e};onWindowResize=()=>this.render();connectedCallback(){this.searchInput=this.querySelector(`[data-slot="search"]`),this.filterBtns=Array.from(this.querySelectorAll(`[data-slot="filter"]`)),this.terms=Array.from(this.querySelectorAll(`[data-slot="term"]`)),this.emptyState=this.querySelector(`[data-slot="empty"]`),this.controls=this.querySelector(`[data-slot="controls"]`),this.controls&&(this.controls.style.transition=`top 0.3s ease`),this.siteHeader=document.querySelector(`.site-header`),this.syncStickyTop(),this.resizeObserver=new ResizeObserver(()=>{this.syncStickyTop(),this.render()}),this.siteHeader&&this.resizeObserver.observe(this.siteHeader),window.addEventListener(`resize`,this.onWindowResize),this.scrollLastY=window.pageYOffset||document.documentElement.scrollTop,window.addEventListener(`scroll`,this.onScroll,{passive:!0}),this.searchInput?.addEventListener(`input`,()=>{this.searchQuery=(this.searchInput?.value??``).trim().toLowerCase(),this.render()}),this.filterBtns.forEach(e=>{e.addEventListener(`click`,()=>{this.activeCategory=e.getAttribute(`data-cat`)??`all`,this.updateFilterPills(),this.render(),this.scrollToListTop()})}),this.render()}disconnectedCallback(){this.resizeObserver?.disconnect(),window.removeEventListener(`resize`,this.onWindowResize),window.removeEventListener(`scroll`,this.onScroll)}syncStickyTop(){if(!this.controls)return;let e=this.siteHeader?this.siteHeader.getBoundingClientRect().height:0;this.controls.style.top=this.isHeaderHidden?`0px`:`${e}px`}scrollToListTop(){let e=this.isHeaderHidden?0:this.siteHeader?this.siteHeader.getBoundingClientRect().height:0,t=this.controls?this.controls.getBoundingClientRect().height:0,n=this.querySelector(`[data-slot="terms-list"]`);if(!n)return;let r=n.getBoundingClientRect().top+window.scrollY-e-t;window.scrollTo({top:r,behavior:`smooth`})}updateFilterPills(){this.filterBtns.forEach(e=>{e.className=e.getAttribute(`data-cat`)===this.activeCategory?t:n})}render(){let e=0;if(this.terms.forEach(t=>{let n=(t.getAttribute(`data-cats`)??``).split(`|`).filter(Boolean),r=t.getAttribute(`data-search`)??``,i=this.activeCategory===`all`||n.includes(this.activeCategory),a=this.searchQuery===``||r.includes(this.searchQuery),o=i&&a;t.classList.toggle(`hidden`,!o),o&&e++}),this.emptyState&&this.emptyState.classList.toggle(`hidden`,e>0),this.controls){let e=this.querySelector(`[data-slot="terms-list"]`),t=(e?e.getBoundingClientRect().height:0)+this.controls.getBoundingClientRect().height>window.innerHeight;this.controls.style.position=t?`sticky`:`static`}}};typeof window<`u`&&!customElements.get(`root-glossary`)&&customElements.define(`root-glossary`,r);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.