1const visualmodoSiteSearchConfig=window.visualmodoSiteSearchConfig??{},VISUALMODO_SITE_SEARCH_MODAL_DURATION=380;function visualmodoEscapeSiteSearchText(t){return String(t??"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function visualmodoGetSiteSearchModal(){return document.querySelector("[data-site-search-modal]")}function visualmodoRenderSiteSearchItemThumbnail(t,e=!1){return e&&t?.thumbnail?`\n\t\t<span class="visualmodo-site-search-modal__item-thumbnail" aria-hidden="true">\n\t\t\t<img src="${visualmodoEscapeSiteSearchText(t.thumbnail)}" alt="">\n\t\t</span>\n\t`:""}function visualmodoSetSiteSearchTab(t,e){const a=t.querySelectorAll("[data-site-search-tab]"),s=t.querySelectorAll("[data-site-search-panel]");a.forEach(t=>{const a=t.dataset.siteSearchTab===e;t.setAttribute("aria-selected",a?"true":"false"),t.setAttribute("tabindex",a?"0":"-1"),t.dataset.active=a?"true":"false"}),s.forEach(t=>{t.hidden=t.dataset.siteSearchPanel!==e})}function visualmodoRenderSiteSearchBrowseGroup(t){if(!t||!Array.isArray(t.items)||0===t.items.length)return`<p class="visualmodo-site-search-modal__status">${visualmodoEscapeSiteSearchText(t?.empty??"No items found.")}</p>`;return`${t.items.map(e=>{const a="theme"===t.key||"post"===t.key,s=visualmodoRenderSiteSearchItemThumbnail(e,a),o=a&&e.thumbnail?"visualmodo-site-search-modal__item visualmodo-site-search-modal__item--with-thumbnail":"visualmodo-site-search-modal__item",i=e.excerpt?`<p class="visualmodo-site-search-modal__item-excerpt">${visualmodoEscapeSiteSearchText(e.excerpt)}</p>`:"";return`\n\t\t\t<a class="${o}" href="${visualmodoEscapeSiteSearchText(e.url)}">\n\t\t\t\t${s}\n\t\t\t\t<span class="visualmodo-site-search-modal__item-content">\n\t\t\t\t\t<span class="visualmodo-site-search-modal__item-title">${visualmodoEscapeSiteSearchText(e.title)}</span>\n\t\t\t\t\t${i}\n\t\t\t\t</span>\n\t\t\t</a>\n\t\t`}).join("")}${t.archiveUrl?`\n\t\t\t<div class="visualmodo-site-search-modal__list-footer">\n\t\t\t\t<a class="visualmodo-site-search-modal__archive-link" href="${visualmodoEscapeSiteSearchText(t.archiveUrl)}">\n\t\t\t\t\t${visualmodoEscapeSiteSearchText(t.viewAllText??`View all ${t.label??""}`)}\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t`:""}`}function visualmodoRenderSiteSearchResults(t,e){if(!t||"object"!=typeof t)return`<p class="visualmodo-site-search-modal__status">No results found for â${visualmodoEscapeSiteSearchText(e)}â.</p>`;const a=Object.values(t).filter(t=>t&&Array.isArray(t.items)&&t.items.length>0).map(t=>{const e=t.items.map(e=>{const a="theme"===t.key||"post"===t.key,s=visualmodoRenderSiteSearchItemThumbnail(e,a),o=a&&e.thumbnail?"visualmodo-site-search-modal__item visualmodo-site-search-modal__item--with-thumbnail":"visualmodo-site-search-modal__item",i=e.excerpt?`<p class="visualmodo-site-search-modal__item-excerpt">${visualmodoEscapeSiteSearchText(e.excerpt)}</p>`:"";return`\n\t\t\t\t\t<a class="${o}" href="${visualmodoEscapeSiteSearchText(e.url)}">\n\t\t\t\t\t\t${s}\n\t\t\t\t\t\t<span class="visualmodo-site-search-modal__item-content">\n\t\t\t\t\t\t\t<span class="visualmodo-site-search-modal__item-title">${visualmodoEscapeSiteSearchText(e.title)}</span>\n\t\t\t\t\t\t\t${i}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t`}).join(""),a=t.archiveUrl?`\n\t\t\t\t\t<a class="visualmodo-site-search-modal__archive-link" href="${visualmodoEscapeSiteSearchText(t.archiveUrl)}">\n\t\t\t\t\t\t${visualmodoEscapeSiteSearchText(t.viewAllText??`View all ${t.label??""}`)}\n\t\t\t\t\t</a>\n\t\t\t\t`:"";return`\n\t\t\t\t<section class="visualmodo-site-search-modal__results-group">\n\t\t\t\t\t<div class="visualmodo-site-search-modal__results-header">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<p class="visualmodo-site-search-modal__eyebrow">Results</p>\n\t\t\t\t\t\t\t<h3 class="visualmodo-site-search-modal__results-title">${visualmodoEscapeSiteSearchText(t.label??"")}</h3>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${a}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="visualmodo-site-search-modal__list">\n\t\t\t\t\t\t${e}\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t`}).join("");return""!==a?a:`<p class="visualmodo-site-search-modal__status">No results found for â${visualmodoEscapeSiteSearchText(e)}â.</p>`}async function visualmodoFetchSiteSearch(t=""){const e=visualmodoSiteSearchConfig.endpoint;if(!e)throw new Error("Missing site search endpoint.");const a=new URL(e,window.location.origin);""!==t.trim()&&a.searchParams.set("query",t.trim());const s=await window.fetch(a.toString(),{method:"GET",headers:{Accept:"application/json"}});if(!s.ok)throw new Error(`Search request failed with status ${s.status}.`);return s.json()}function visualmodoSetSiteSearchMode(t,e){const a=t.querySelector("[data-site-search-browse]"),s=t.querySelector("[data-site-search-results]");if(!a||!s)return;const o="results"===e;a.hidden=o,s.hidden=!o,t.dataset.mode=o?"results":"browse"}
1function visualmodoOpenSiteSearchModal(t){const e=t.querySelector("[data-site-search-input]");"true"!==t.dataset.open?(t.closeTimer&&(window.clearTimeout(t.closeTimer),delete t.closeTimer),t.hidden=!1,delete t.dataset.closing,document.body.classList.add("visualmodo-site-search-open"),window.requestAnimationFrame(()=>{t.dataset.open="true",e?.focus({preventScroll:!0})})):e?.focus({preventScroll:!0})}function visualmodoCloseSiteSearchModal(t){const e=t.querySelector("[data-site-search-input]"),a=null!==e&&"INPUT"===e.tagName&&"text"===e.type;delete t.dataset.open,t.dataset.closing="true",document.body.classList.remove("visualmodo-site-search-open"),a&&(e.value=""),visualmodoSetSiteSearchMode(t,"browse"),t.closeTimer&&window.clearTimeout(t.closeTimer),t.closeTimer=window.setTimeout(()=>{t.hidden=!0,delete t.dataset.closing,delete t.closeTimer},380)}function visualmodoInitializeSiteSearchModal(){const t=visualmodoGetSiteSearchModal(),e=t?.querySelector("[data-site-search-input]"),a=t?.querySelectorAll("[data-site-search-browse-list]"),s=t?.querySelector("[data-site-search-results-list]");if(!(t&&e&&a&&s))return;let o=!1,i="theme",r=null;visualmodoSetSiteSearchMode(t,"browse"),visualmodoSetSiteSearchTab(t,i);const l=async()=>{if(!o)try{const e=await visualmodoFetchSiteSearch(""),s=e?.browse??{};a.forEach(t=>{const e=t.dataset.siteSearchBrowseList;t.innerHTML=visualmodoRenderSiteSearchBrowseGroup(s[e])}),o=!0,visualmodoSetSiteSearchTab(t,i)}catch{a.forEach(t=>{t.innerHTML='<p class="visualmodo-site-search-modal__status">Unable to load browse content right now.</p>'})}},c=async()=>{const a=e.value.trim();if(""!==a){visualmodoSetSiteSearchMode(t,"results"),s.innerHTML='<p class="visualmodo-site-search-modal__status">Searchingâ¦</p>';try{const t=await visualmodoFetchSiteSearch(a);s.innerHTML=visualmodoRenderSiteSearchResults(t?.results,a)}catch{s.innerHTML='<p class="visualmodo-site-search-modal__status">Unable to search right now.</p>'}}else visualmodoSetSiteSearchMode(t,"browse")};document.querySelectorAll("[data-site-search-open]").forEach(e=>{e.addEventListener("click",async e=>{e.preventDefault(),visualmodoOpenSiteSearchModal(t),await l()})}),t.querySelectorAll("[data-site-search-close]").forEach(e=>{e.addEventListener("click",()=>{visualmodoCloseSiteSearchModal(t)})}),t.querySelectorAll("[data-site-search-tab]").forEach(e=>{e.addEventListener("click",()=>{i=e.dataset.siteSearchTab??"theme",visualmodoSetSiteSearchTab(t,i)})}),e.addEventListener("input",()=>{r&&window.clearTimeout(r),r=window.setTimeout(c,140)}),document.addEventListener("keydown",async e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase())return e.preventDefault(),visualmodoOpenSiteSearchModal(t),void await l();"Escape"===e.key&&!1===t.hidden&&(e.preventDefault(),visualmodoCloseSiteSearchModal(t))})}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",visualmodoInitializeSiteSearchModal,{once:!0}):visualmodoInitializeSiteSearchModal();
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.