@dogsbay/ssg 0.2.0-beta.153 → 0.2.0-beta.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
Third-party software in @dogsbay/ssg (dist/package/)
|
|
2
2
|
|
|
3
3
|
========================================================================
|
|
4
|
-
@dogsbay/elements@0.2.0-beta.
|
|
4
|
+
@dogsbay/elements@0.2.0-beta.156 (MIT)
|
|
5
5
|
https://github.com/dogsbay/dogsbay.git
|
|
6
6
|
|
|
7
7
|
Licensed under MIT; the package ships no licence file.
|
|
8
8
|
|
|
9
9
|
========================================================================
|
|
10
|
-
@dogsbay/icons@0.2.0-beta.
|
|
10
|
+
@dogsbay/icons@0.2.0-beta.156 (MIT)
|
|
11
11
|
https://github.com/dogsbay/dogsbay.git
|
|
12
12
|
|
|
13
13
|
Licensed under MIT; the package ships no licence file.
|
|
14
14
|
|
|
15
15
|
========================================================================
|
|
16
|
-
@dogsbay/primitives@0.2.0-beta.
|
|
16
|
+
@dogsbay/primitives@0.2.0-beta.156 (MIT)
|
|
17
17
|
https://github.com/dogsbay/dogsbay.git
|
|
18
18
|
|
|
19
19
|
Licensed under MIT; the package ships no licence file.
|
|
20
20
|
|
|
21
21
|
========================================================================
|
|
22
|
-
@dogsbay/render-html@0.2.0-beta.
|
|
22
|
+
@dogsbay/render-html@0.2.0-beta.156 (MIT)
|
|
23
23
|
https://github.com/dogsbay/dogsbay.git
|
|
24
24
|
|
|
25
25
|
Licensed under MIT; the package ships no licence file.
|
|
26
26
|
|
|
27
27
|
========================================================================
|
|
28
|
-
@dogsbay/search@0.2.0-beta.
|
|
28
|
+
@dogsbay/search@0.2.0-beta.156 (MIT)
|
|
29
29
|
https://github.com/dogsbay/dogsbay.git
|
|
30
30
|
|
|
31
31
|
Licensed under MIT; the package ships no licence file.
|
|
32
32
|
|
|
33
33
|
========================================================================
|
|
34
|
-
@dogsbay/ui@0.2.0-beta.
|
|
34
|
+
@dogsbay/ui@0.2.0-beta.156 (MIT)
|
|
35
35
|
https://github.com/dogsbay/dogsbay.git
|
|
36
36
|
|
|
37
37
|
Licensed under MIT; the package ships no licence file.
|
package/dist/package/browser.mjs
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
// src/core/build.ts
|
|
20
20
|
import { dogsbayMdToTree, splitFrontmatter as splitFrontmatter2, treeToDogsbayMd } from "@dogsbay/format-dogsbay-md/browser";
|
|
21
21
|
import { isPassiveStaticFile, limitVersionRows, mergeHeaders, staticFolderPlan, staticPathServed, staticRobotsWarnings, mergeRedirects, PASSIVE_SVG_MAX_BYTES, passiveSvgBytes, productRootRedirects, productSwitcher, siteFiles, siteRootTarget, toScript, unitOf } from "@dogsbay/site-files";
|
|
22
|
-
import { buildHreflangLinks, isMountRoot, missingTranslations, mountRefs, mountRootNote, namespaceNavGroup, namespacePrefixes, placeMountedNav, prefixSlug as prefixSlug2, rewriteContentRefs } from "@dogsbay/site-files";
|
|
22
|
+
import { buildHreflangLinks, isMountRoot, missingTranslations, mountRefs, mountRootNote, namespaceNavGroup, namespacePrefixes, placeMountedNav, prefixSlug as prefixSlug2, rewriteContentRefs, escAttr, rewriteTreeLinks } from "@dogsbay/site-files";
|
|
23
23
|
|
|
24
24
|
// src/core/canonical.ts
|
|
25
25
|
import { decideCanonical } from "@dogsbay/site-files";
|
|
@@ -28,6 +28,7 @@ import { declaresParams, splitFrontmatter } from "@dogsbay/format-dogsbay-md/bro
|
|
|
28
28
|
// src/core/config.ts
|
|
29
29
|
import { scriptUrl } from "@dogsbay/render-html";
|
|
30
30
|
import { readVersionBadge, readVersionMenu, siteChrome, assertLeafSitemap, checkVersionSeo, isNamespaceAxisActive, namespaceSegments, parseMount, ProductConfigError, productModel, productOf, sourceNamespace, sourceUnit, unitSegments } from "@dogsbay/site-files";
|
|
31
|
+
import { readMarkdownStyle } from "@dogsbay/format-dogsbay-md/browser";
|
|
31
32
|
|
|
32
33
|
// src/core/yaml.ts
|
|
33
34
|
import { load } from "js-yaml";
|
|
@@ -123,6 +124,7 @@ var FLAG_PATHS = [
|
|
|
123
124
|
"ssg.math",
|
|
124
125
|
"agent.mdMirror",
|
|
125
126
|
"agent.llmsTxt",
|
|
127
|
+
"agent.llmsFull",
|
|
126
128
|
"agent.llmsTxtDirective",
|
|
127
129
|
"agent.contentSignal.preamble",
|
|
128
130
|
"agent.pageActions.enabled",
|
|
@@ -250,7 +252,17 @@ function parseConfig(text, overrides = {}) {
|
|
|
250
252
|
poweredBy: raw.poweredBy !== false,
|
|
251
253
|
// Same defaults as the Astro pipeline: the mirror, llms.txt and page actions are on unless turned off.
|
|
252
254
|
mdMirror: agent.mdMirror !== false,
|
|
255
|
+
mdMirrorLinks: (() => {
|
|
256
|
+
const v = agent.mdMirrorLinks ?? "html";
|
|
257
|
+
if (v !== "html" && v !== "md") throw new ConfigError(`agent.mdMirrorLinks: expected html or md, not ${JSON.stringify(v)}`);
|
|
258
|
+
return v;
|
|
259
|
+
})(),
|
|
260
|
+
...(() => {
|
|
261
|
+
const { style, errors } = readMarkdownStyle(raw.style);
|
|
262
|
+
return { markdownStyle: style, styleWarnings: errors };
|
|
263
|
+
})(),
|
|
253
264
|
llmsTxt: agent.llmsTxt !== false,
|
|
265
|
+
llmsFull: agent.llmsFull !== false,
|
|
254
266
|
pageActions: {
|
|
255
267
|
enabled: agent.pageActions?.enabled ?? agent.mdMirror !== false,
|
|
256
268
|
providers: Array.isArray(agent.pageActions?.providers) ? agent.pageActions.providers.map(String) : ["claude", "chatgpt", "perplexity", "gemini"],
|
|
@@ -688,9 +700,12 @@ function outFileFor(slug, isIndex) {
|
|
|
688
700
|
if (slug === "") return "index.html";
|
|
689
701
|
return isIndex ? `${slug}/index.html` : `${slug}.html`;
|
|
690
702
|
}
|
|
691
|
-
function createResolver(table, page) {
|
|
703
|
+
function createResolver(table, page, opts = {}) {
|
|
692
704
|
const broken = [];
|
|
693
705
|
const srcDir = dirname(page.source);
|
|
706
|
+
const toMd = (out) => out.replace(/\.html$/, ".md");
|
|
707
|
+
const between = opts.memo === false ? (from, to, style) => computeHref(dirname(from), to, style) : hrefBetween;
|
|
708
|
+
const pageHref = (ref) => opts.markdown && !ref.generated ? computeHref(dirname(page.out), toMd(ref.out), "html") : between(page.out, ref.out, table.linkStyle);
|
|
694
709
|
const target = (path) => resolveLinkPath(path, srcDir, table.basePath);
|
|
695
710
|
const staticHref = (path, t) => {
|
|
696
711
|
if (!path.startsWith("/") || !table.staticFile) return void 0;
|
|
@@ -703,12 +718,14 @@ function createResolver(table, page) {
|
|
|
703
718
|
const prefix = table.unitPrefix ?? "";
|
|
704
719
|
if (prefix && (t === prefix || t.startsWith(prefix + "/"))) {
|
|
705
720
|
const hit = findPage(t.slice(prefix.length + 1));
|
|
706
|
-
if (hit) return hit.out === page.out && suffix.startsWith("#") ? suffix :
|
|
721
|
+
if (hit) return hit.out === page.out && suffix.startsWith("#") ? suffix : pageHref(hit) + suffix;
|
|
707
722
|
}
|
|
708
723
|
if (!table.siteFile) return void 0;
|
|
709
724
|
resolver.crossed = true;
|
|
710
725
|
const f = table.siteFile(t, prefix);
|
|
711
|
-
|
|
726
|
+
if (f === void 0) return void 0;
|
|
727
|
+
const from = dirname([prefix, page.out].filter(Boolean).join("/"));
|
|
728
|
+
return (opts.markdown && !table.siteFile.forwards?.has(f) ? computeHref(from, toMd(f), "html") : computeHref(from, f, table.linkStyle)) + suffix;
|
|
712
729
|
};
|
|
713
730
|
const findPage = (t) => {
|
|
714
731
|
for (const c of pageKeyCandidates(t)) {
|
|
@@ -728,9 +745,8 @@ function createResolver(table, page) {
|
|
|
728
745
|
const first = t.split("/")[0];
|
|
729
746
|
const hit = findPage(t) ?? (path.startsWith("/") && t.includes("/") && table.stripPrefixes?.includes(first) ? findPage(t.slice(first.length + 1)) : void 0);
|
|
730
747
|
if (hit) {
|
|
731
|
-
const url = hrefBetween(page.out, hit.out, table.linkStyle);
|
|
732
748
|
if (hit.out === page.out && suffix.startsWith("#")) return suffix;
|
|
733
|
-
return
|
|
749
|
+
return pageHref(hit) + suffix;
|
|
734
750
|
}
|
|
735
751
|
if (table.assets.has(t)) return encodePath(relative(dirname(page.out), t)) + suffix;
|
|
736
752
|
const other = sitePage(path, t, suffix);
|
|
@@ -763,6 +779,9 @@ function menuHref(href, siteRoot, style, basePath = "") {
|
|
|
763
779
|
else if (!MENU_FILE.test(path) && style !== "pretty") path = `${path}.html`;
|
|
764
780
|
return `${siteRoot || "./"}${path}${m[2]}`;
|
|
765
781
|
}
|
|
782
|
+
function hrefFrom(fromOut, targetOut, style) {
|
|
783
|
+
return computeHref(dirname(fromOut), targetOut, style);
|
|
784
|
+
}
|
|
766
785
|
|
|
767
786
|
// src/core/openapi-pages.ts
|
|
768
787
|
import { mountSlug, prefixSlug } from "@dogsbay/site-files";
|
|
@@ -1376,7 +1395,7 @@ import { directoryChildren, hasChildLinks, navKey, realizeChildLinks } from "@do
|
|
|
1376
1395
|
// src/generated/assets.ts
|
|
1377
1396
|
var CLIENT_JS = '/*! dogsbay-ssg site client (Apache-2.0). Third-party notices: THIRD-PARTY-NOTICES.txt */\n"use strict";(()=>{var Lo=Object.defineProperty;var ko=(n,t,e)=>t in n?Lo(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var f=(n,t,e)=>ko(n,typeof t!="symbol"?t+"":t,e);var Y=class extends HTMLElement{constructor(){super(...arguments);f(this,"_initialized",!1);f(this,"_deferred",!1)}connectedCallback(){if(!this._initialized&&!this.firstElementChild&&typeof document<"u"&&document.readyState==="loading"){this._deferred||(this._deferred=!0,document.addEventListener("DOMContentLoaded",()=>{this._deferred=!1,this.isConnected&&this.connectedCallback()},{once:!0}));return}this._initialized||(this.setup(),this._initialized=!0),this.connect()}disconnectedCallback(){this.disconnect()}setup(){}connect(){}disconnect(){}},To={"db-tabs":"block","db-accordion":"block","db-collapsible":"block","db-details-sheet":"block","db-card":"block","db-steps":"block","db-code-block":"block","db-link-button":"inline-block","db-dialog":"contents","db-popover":"inline-block","db-tooltip":"inline-block","db-select":"inline-block","db-combobox":"block","db-nav-tree":"block","db-toc":"block","db-announcement":"block"},En="dogsbay-elements-display";function G(){if(typeof document>"u"||document.getElementById(En))return;let n=Object.entries(To).map(([e,i])=>`:where(${e}){display:${i}}`).join(""),t=document.createElement("style");t.id=En,t.textContent=n,document.head.prepend(t)}function Oo(n){return n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"}function Ut(n,t,e){let i=t;do i+=e?-1:1;while(i>=0&&i<n.length&&Oo(n[i]));return i}var re=class{constructor(n,t,e={}){f(this,"container");f(this,"itemSelector");f(this,"opts");f(this,"keydownHandler",null);f(this,"active",!1);this.container=n,this.itemSelector=t,this.opts={orientation:e.orientation??"horizontal",loop:e.loop??!0,homeEnd:e.homeEnd??!0,onHighlightedIndexChange:e.onHighlightedIndexChange??(()=>{})}}getItems(){return Array.from(this.container.querySelectorAll(this.itemSelector))}isForwardKey(n,t){let{orientation:e}=this.opts;return(e==="horizontal"||e==="both")&&n===(t?"ArrowLeft":"ArrowRight")||(e==="vertical"||e==="both")&&n==="ArrowDown"}isBackwardKey(n,t){let{orientation:e}=this.opts;return(e==="horizontal"||e==="both")&&n===(t?"ArrowRight":"ArrowLeft")||(e==="vertical"||e==="both")&&n==="ArrowUp"}activate(){this.active||(this.active=!0,this.keydownHandler=n=>{let t=this.getItems();if(t.length===0||n.ctrlKey||n.altKey||n.metaKey)return;let e=getComputedStyle(this.container).direction==="rtl",i=t.indexOf(document.activeElement);if(i===-1)return;let o=null;this.isForwardKey(n.key,e)?(o=Ut(t,i,!1),o>=t.length&&(o=this.opts.loop?Ut(t,-1,!1):i)):this.isBackwardKey(n.key,e)?(o=Ut(t,i,!0),o<0&&(o=this.opts.loop?Ut(t,t.length,!0):i)):this.opts.homeEnd&&n.key==="Home"?o=Ut(t,-1,!1):this.opts.homeEnd&&n.key==="End"&&(o=Ut(t,t.length,!0)),o!==null&&(o<0||o>=t.length||o!==i&&(n.preventDefault(),t[i].setAttribute("tabindex","-1"),t[o].setAttribute("tabindex","0"),t[o].focus(),this.opts.onHighlightedIndexChange(o)))},this.container.addEventListener("keydown",this.keydownHandler))}deactivate(){this.active&&(this.active=!1,this.keydownHandler&&(this.container.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null))}setActiveIndex(n,t){n.forEach((e,i)=>{e.setAttribute("tabindex",i===t?"0":"-1")})}isActive(){return this.active}};var Do=0;function Sn(n){return`${n}-${++Do}`}var An=class extends Y{constructor(){super(...arguments);f(this,"list");f(this,"triggers",[]);f(this,"panels",[]);f(this,"nav",null);f(this,"value","");f(this,"syncKey",null);f(this,"orientation","horizontal");f(this,"handleClick",t=>{let e=t.target.closest("[data-part=\'trigger\']");if(!e||e.hasAttribute("disabled"))return;let i=e.dataset.value;i&&this.select(i)});f(this,"handleStorage",t=>{if(!this.syncKey||t.key!==`db-tabs-sync:${this.syncKey}`)return;let e=t.newValue;e&&this.value!==e&&this.has(e)&&this.select(e)});f(this,"handleSyncEvent",(t=>{let e=t.detail.value;e&&this.value!==e&&this.has(e)&&this.select(e)}))}has(t){return this.triggers.some(e=>e.dataset.value===t)}own(t){return Array.from(this.querySelectorAll(t)).filter(e=>e.closest("db-tabs")===this)}setup(){var s;let t=this.own("[data-part=\'list\']")[0]??null;if(!t)return;this.list=t,this.triggers=this.own("[data-part=\'trigger\']"),this.panels=this.own("[data-part=\'content\']"),this.orientation=this.getAttribute("orientation")||"horizontal",this.syncKey=this.getAttribute("sync-key")||null,t.setAttribute("role","tablist"),t.setAttribute("aria-orientation",this.orientation),this.triggers.forEach(r=>{let a=r.dataset.value;r.setAttribute("role","tab");let l=r.id||Sn("db-tab");r.id=l;let c=this.panels.find(d=>d.dataset.value===a);if(c){c.setAttribute("role","tabpanel");let d=c.id||Sn("db-tabpanel");c.id=d,r.setAttribute("aria-controls",d),c.setAttribute("aria-labelledby",l)}}),this.nav=new re(t,"[data-part=\'trigger\']",{orientation:this.orientation,loop:!0,homeEnd:!0,onHighlightedIndexChange:()=>{var l;let r=document.activeElement,a=(l=r==null?void 0:r.dataset)==null?void 0:l.value;a&&this.select(a)}}),this.nav.activate();let i=this.getAttribute("default-value")||((s=this.triggers[0])==null?void 0:s.dataset.value)||"";if(this.syncKey){let r=localStorage.getItem(`db-tabs-sync:${this.syncKey}`);r&&this.triggers.some(a=>a.dataset.value===r)&&(i=r)}let o=window.location.hash.slice(1);o&&this.triggers.some(r=>r.dataset.value===o)&&(i=o),this.select(i)}connect(){var t;(t=this.list)==null||t.addEventListener("click",this.handleClick),this.syncKey&&(window.addEventListener("storage",this.handleStorage),document.addEventListener(`db-tabs-sync:${this.syncKey}`,this.handleSyncEvent))}disconnect(){var t;(t=this.list)==null||t.removeEventListener("click",this.handleClick),this.syncKey&&(window.removeEventListener("storage",this.handleStorage),document.removeEventListener(`db-tabs-sync:${this.syncKey}`,this.handleSyncEvent))}select(t){this.value!==t&&(this.value=t,this.triggers.forEach(e=>{let i=e.dataset.value===t;e.setAttribute("aria-selected",String(i)),e.setAttribute("tabindex",i?"0":"-1"),i?e.setAttribute("data-state","active"):e.removeAttribute("data-state")}),this.panels.forEach(e=>{let i=e.dataset.value===t;e.hidden=!i,i?(e.setAttribute("data-state","active"),e.hasAttribute("tabindex")||e.setAttribute("tabindex","0")):e.removeAttribute("data-state")}),this.syncKey&&(localStorage.setItem(`db-tabs-sync:${this.syncKey}`,t),document.dispatchEvent(new CustomEvent(`db-tabs-sync:${this.syncKey}`,{detail:{value:t,source:this}}))),this.dispatchEvent(new CustomEvent("db-tabs:change",{detail:{value:t},bubbles:!0})))}};G();customElements.get("db-tabs")||customElements.define("db-tabs",An);var Ro=0;function Mo(n){return`${n}-${++Ro}`}var Cn=class{constructor(n,t,e={}){f(this,"trigger");f(this,"content");f(this,"_open",!1);f(this,"opts");this.trigger=n,this.content=t,this.opts=e;let i=Mo("base-collapsible");n.id||(n.id=`${i}-trigger`),t.id||(t.id=`${i}-content`),n.setAttribute("aria-controls",t.id),t.setAttribute("aria-labelledby",n.id),t.setAttribute("role","region"),n.setAttribute("aria-expanded","false"),n.addEventListener("click",()=>{n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"||this.toggle()})}get isOpen(){return this._open}toggle(){this._open?this.collapse():this.expand()}expand(){var n,t;this._open||(this._open=!0,this.trigger.setAttribute("aria-expanded","true"),this.content.hidden=!1,this.content.setAttribute("data-state","open"),(t=(n=this.opts).onToggle)==null||t.call(n,!0))}collapse(){var n,t;this._open&&(this._open=!1,this.trigger.setAttribute("aria-expanded","false"),this.content.hidden=!0,this.content.removeAttribute("data-state"),(t=(n=this.opts).onToggle)==null||t.call(n,!1))}};var Ln=class extends Y{constructor(){super(...arguments);f(this,"items",[]);f(this,"nav",null);f(this,"openValues",new Set);f(this,"type","single")}setup(){this.type=this.getAttribute("type")||"single";let t=this.getAttribute("default-value")||"",e=t?t.split(","):[],i=Array.from(this.querySelectorAll("[data-part=\'item\']"));this.items=i.map(o=>{let s=o.querySelector("[data-part=\'trigger\']"),r=o.querySelector("[data-part=\'content\']");if(!s||!r)return null;let a=o.dataset.value||"",l=o.hasAttribute("data-disabled");l&&(s.setAttribute("disabled",""),s.setAttribute("aria-disabled","true"));let c=new Cn(s,r,{onToggle:d=>{d?this.onItemExpanded(a):this.onItemCollapsed(a)}});return{el:o,value:a,collapsible:c,disabled:l}}).filter(Boolean),this.nav=new re(this,"[data-part=\'trigger\']",{orientation:"vertical",loop:!0,homeEnd:!0}),this.nav.activate(),this.items.forEach((o,s)=>{o.collapsible.trigger.setAttribute("tabindex",s===0?"0":"-1")}),e.forEach(o=>{let s=this.items.find(r=>r.value===o&&!r.disabled);s&&s.collapsible.expand()})}onItemExpanded(t){if(this.type==="single"){for(let i of this.openValues)if(i!==t){let o=this.items.find(s=>s.value===i);o&&o.collapsible.collapse()}}this.openValues.add(t);let e=this.items.find(i=>i.value===t);e&&e.el.setAttribute("data-state","open"),this.dispatchEvent(new CustomEvent("db-accordion:change",{detail:{value:t,open:!0,openValues:[...this.openValues]},bubbles:!0}))}onItemCollapsed(t){this.openValues.delete(t);let e=this.items.find(i=>i.value===t);e&&e.el.removeAttribute("data-state"),this.dispatchEvent(new CustomEvent("db-accordion:change",{detail:{value:t,open:!1,openValues:[...this.openValues]},bubbles:!0}))}};G();customElements.get("db-accordion")||customElements.define("db-accordion",Ln);var Io=0;function Z(n){return`${n}-${++Io}`}function At(n,t){let e=n.localName;return Array.from(n.querySelectorAll(t)).filter(i=>i.closest(e)===n)}function Q(n,t){return At(n,t)[0]??null}function Wt(n){if(!n||!n.hasAttribute("data-as-child"))return n;let t=n.firstElementChild;if(!t)return n;let e=n.getAttribute("data-part");return e&&t.setAttribute("data-part",e),t}function dt(n){return n.hasAttribute("disabled")||n.getAttribute("aria-disabled")==="true"||n.getAttribute("data-disabled")==="true"}function kn(){return typeof HTMLElement<"u"&&typeof HTMLElement.prototype.showPopover=="function"}function Yt(n){if(n.hidden=!1,!kn())return"inline";n.hasAttribute("popover")||n.setAttribute("popover","manual"),n.style.inset="auto",n.style.margin="0";try{n.matches(":popover-open")||n.showPopover()}catch{return"inline"}return"top-layer"}function Gt(n){if(kn())try{n.matches(":popover-open")&&n.hidePopover()}catch{}n.hidden=!0}var No=\'a[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]\';function Tn(n){return Array.from(n.querySelectorAll(No)).filter(t=>!t.closest("[hidden]")&&!dt(t))}function On(n,t){let e=typeof n.getAnimations=="function"?n.getAnimations():[];if(!e.length)return t();Promise.all(e.map(i=>i.finished)).then(t,t)}function Xt(n){try{return decodeURIComponent(n)}catch{return n}}var Rn=class extends Y{constructor(){super(...arguments);f(this,"details",null);f(this,"summary",null);f(this,"dialog",null);f(this,"body",null);f(this,"source",null);f(this,"moved",[]);f(this,"handledHash",null);f(this,"onSummaryClick",t=>{var i,o;let e=t.target;e&&e!==this.summary&&((o=(i=e.closest)==null?void 0:i.call(e,"a[href], button, input, select, textarea, label"))==null?void 0:o.closest("summary"))===this.summary||(t.preventDefault(),this.show())});f(this,"onDialogClick",t=>{let e=this.dialog;if(!e||t.target!==e)return;let i=e.getBoundingClientRect();!(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom)&&(t.clientX!==0||t.clientY!==0)&&e.close()});f(this,"onDialogClose",()=>this.restore());f(this,"onDocClick",t=>{var s,r;if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let e=(r=(s=t.target)==null?void 0:s.closest)==null?void 0:r.call(s,"a[href]");if(!e||!this.details||this.open||e.hasAttribute("download")||e.target&&e.target!=="_self")return;let i=new URL(e.href,location.href);if(!i.hash||i.hash!==location.hash||i.pathname!==location.pathname||i.search!==location.search)return;let o=document.getElementById(Xt(i.hash.slice(1)));if(!(!o||!this.details.contains(o))){for(let a of this.details.querySelectorAll("db-details-sheet"))a.handledHash=null;this.show(o)}});f(this,"onHash",()=>{this.handledHash=null,this.openForHash()})}get open(){var t;return!!((t=this.dialog)!=null&&t.open)}setup(){var d;let t=Array.from(this.children).find(u=>u.tagName==="DETAILS")??null,e=t?Array.from(t.children).find(u=>u.tagName==="SUMMARY")??null:null,i=typeof HTMLDialogElement<"u"&&typeof HTMLDialogElement.prototype.showModal=="function";if(!t||!e||!i)return;for(let u of Array.from(t.children))u.getAttribute("role")==="status"&&u.setAttribute("aria-live","off");this.details=t,this.summary=e,t.open=!1,Ho();let o=(((d=e.querySelector("[data-part=\'title\']"))==null?void 0:d.textContent)??e.textContent??"").trim(),s=document.createElement("dialog");s.className="db-sheet",s.id=Z("db-sheet");let r=document.createElement("h2");r.className="db-sheet-title",r.id=Z("db-sheet-title"),r.textContent=o,s.setAttribute("aria-labelledby",r.id);let a=document.createElement("button");a.type="button",a.className="db-sheet-close",a.setAttribute("aria-label",this.getAttribute("close-label")||"Close"),a.innerHTML=\'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>\',a.addEventListener("click",()=>s.close());let l=document.createElement("div");l.className="db-sheet-header",l.append(r,a);let c=document.createElement("div");c.className="db-sheet-body",s.append(l,c),this.append(s),this.dialog=s,this.body=c,e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-controls",s.id),e.setAttribute("aria-expanded","false"),this.setAttribute("data-state","closed")}connect(){this.dialog&&(this.summary.addEventListener("click",this.onSummaryClick),this.dialog.addEventListener("click",this.onDialogClick),this.dialog.addEventListener("close",this.onDialogClose),window.addEventListener("hashchange",this.onHash),document.addEventListener("click",this.onDocClick),queueMicrotask(()=>this.isConnected&&this.openForHash()))}disconnect(){this.dialog&&(this.dialog.open&&this.dialog.close(),this.restore(!1),this.summary.removeEventListener("click",this.onSummaryClick),this.dialog.removeEventListener("click",this.onDialogClick),this.dialog.removeEventListener("close",this.onDialogClose),window.removeEventListener("hashchange",this.onHash),document.removeEventListener("click",this.onDocClick))}show(t){var l;let{dialog:e,details:i,body:o}=this;if(!e||!i||!o||e.open)return;let s=Array.from(i.childNodes).filter(c=>c!==this.summary),r=s.filter(c=>c.nodeType===Node.ELEMENT_NODE),a=r.length===1&&s.every(c=>{var d;return c===r[0]||!((d=c.textContent)!=null&&d.trim())})?r[0]:null;this.source=a??i,this.moved=a?Array.from(a.childNodes):s,o.append(...this.moved),e.showModal(),this.summary.setAttribute("aria-expanded","true"),this.setAttribute("data-state","open"),t&&t!==i&&((l=t.scrollIntoView)==null||l.call(t,{block:"start"})),this.dispatchEvent(new CustomEvent("db-details-sheet:open",{bubbles:!0}))}close(){var t;(t=this.dialog)==null||t.close()}restore(t=!0){var e,i;this.source&&(this.source.append(...this.moved),this.source=null,this.moved=[],this.summary.setAttribute("aria-expanded","false"),this.setAttribute("data-state","closed"),t&&this.isConnected&&((i=(e=this.summary).checkVisibility)==null?void 0:i.call(e))!==!1&&this.summary.focus(),this.dispatchEvent(new CustomEvent("db-details-sheet:close",{bubbles:!0})))}openForHash(){let t=Xt(location.hash.slice(1));if(!t||!this.details||this.handledHash===location.hash||(this.handledHash=location.hash,this.open))return;let e=document.getElementById(t);e&&this.details.contains(e)&&this.show(e)}},Dn="dogsbay-details-sheet";function Ho(){if(document.getElementById(Dn))return;let n=document.createElement("style");n.id=Dn,n.textContent=["dialog.db-sheet{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:none;width:min(32rem,100vw);max-width:100vw;padding:0;border:0;border-left:1px solid var(--border);background:var(--background);color:var(--foreground);box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1);flex-direction:column}","dialog.db-sheet[open]{display:flex}","dialog.db-sheet::backdrop{background:rgb(0 0 0/.6)}",".db-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}","dialog.db-sheet h2.db-sheet-title{margin:0;padding:0;border:0;font-size:1.125rem;line-height:1.75rem;font-weight:600;scroll-margin:0}",".db-sheet-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:.375rem;background:transparent;color:var(--muted-foreground);cursor:pointer}",".db-sheet-close:hover{background:var(--accent,var(--muted));color:var(--foreground)}",".db-sheet-close:focus-visible{outline:2px solid var(--ring);outline-offset:2px}",".db-sheet-body{flex:1;overflow-y:auto;padding:1.5rem;font-size:.875rem;line-height:1.625}","dialog.db-sheet .db-sheet-body>:first-child{margin-top:0}","html:has(dialog.db-sheet[open]){overflow:hidden}","db-details-sheet>details>summary>span:last-child{transform:rotate(-90deg)}","@media (prefers-reduced-motion:no-preference){dialog.db-sheet[open]{animation:db-sheet-in .2s ease-out}dialog.db-sheet[open]::backdrop{animation:db-sheet-fade .2s ease-out}}","@keyframes db-sheet-in{from{transform:translateX(100%)}}","@keyframes db-sheet-fade{from{opacity:0}}"].join(""),document.head.append(n)}G();customElements.get("db-details-sheet")||customElements.define("db-details-sheet",Rn);var Mn=class extends Y{constructor(){super(...arguments);f(this,"copyBtn",null);f(this,"copyIcon",null);f(this,"checkIcon",null);f(this,"liveRegion",null);f(this,"resetTimeout",null);f(this,"handleCopy",async()=>{let t=this.getCopyText();if(t)try{await navigator.clipboard.writeText(t),this.showCopiedFeedback(),this.dispatchEvent(new CustomEvent("db-code-block:copied",{detail:{text:t},bubbles:!0}))}catch{}})}setup(){this.copyBtn=this.querySelector("[data-part=\'copy\']"),this.copyIcon=this.querySelector("[data-part=\'copy-icon\']"),this.checkIcon=this.querySelector("[data-part=\'check-icon\']"),this.copyBtn&&!this.copyBtn.hasAttribute("aria-label")&&this.copyBtn.setAttribute("aria-label","Copy code"),this.liveRegion=document.createElement("span"),this.liveRegion.setAttribute("aria-live","polite"),this.liveRegion.setAttribute("role","status"),this.liveRegion.className="sr-only",this.liveRegion.style.position="absolute",this.liveRegion.style.width="1px",this.liveRegion.style.height="1px",this.liveRegion.style.overflow="hidden",this.liveRegion.style.clip="rect(0, 0, 0, 0)",this.liveRegion.style.whiteSpace="nowrap",this.appendChild(this.liveRegion)}connect(){var t;(t=this.copyBtn)==null||t.addEventListener("click",this.handleCopy)}disconnect(){var t;(t=this.copyBtn)==null||t.removeEventListener("click",this.handleCopy),this.clearResetTimeout()}getCopyText(){let t=this.getAttribute("data-copy-text");if(t)return t;let e=this.querySelector("[data-part=\'code\'] code");if(e)return e.textContent??"";let i=this.querySelector("[data-part=\'code\']");return(i==null?void 0:i.textContent)??""}showCopiedFeedback(){this.clearResetTimeout(),this.copyIcon&&(this.copyIcon.hidden=!0),this.checkIcon&&(this.checkIcon.hidden=!1),this.setAttribute("data-state","copied"),this.liveRegion&&(this.liveRegion.textContent="Copied!"),this.resetTimeout=setTimeout(()=>{this.copyIcon&&(this.copyIcon.hidden=!1),this.checkIcon&&(this.checkIcon.hidden=!0),this.removeAttribute("data-state"),this.liveRegion&&(this.liveRegion.textContent=""),this.resetTimeout=null},2e3)}clearResetTimeout(){this.resetTimeout!==null&&(clearTimeout(this.resetTimeout),this.resetTimeout=null)}};G();customElements.get("db-code-block")||customElements.define("db-code-block",Mn);var In=class extends Y{constructor(){super(...arguments);f(this,"navData",null);f(this,"onClick",t=>{let e=t.target.closest("[data-part=\'toggle\']");if(!e||e.closest("db-nav-tree")!==this)return;let i=e.closest("[data-part=\'item\']");i&&this.toggle(i)});f(this,"onKey",t=>{var c,d;if(t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)return;let e=document.activeElement;if(!e||!this.contains(e))return;let i=this.visibleRows(),o=e.closest("[data-part=\'row\']"),s=o?i.indexOf(o):-1;if(s<0)return;let r=o.closest("[data-part=\'item\']"),a=!!this.groupOf(r),l=u=>{var h;u&&(t.preventDefault(),(h=this.primary(u))==null||h.focus())};switch(t.key){case"ArrowDown":return l(i[s+1]);case"ArrowUp":return l(i[s-1]);case"Home":return l(i[0]);case"End":return l(i[i.length-1]);case"ArrowRight":if(!a)return;t.preventDefault(),this.isOpen(r)?l(this.visibleRows()[s+1]):this.setOpen(r,!0);return;case"ArrowLeft":{if(t.preventDefault(),a&&this.isOpen(r))return this.setOpen(r,!1);let u=(c=r.parentElement)==null?void 0:c.closest("[data-part=\'item\']");if(u&&this.contains(u)){let h=u.querySelector(":scope > [data-part=\'row\']");h&&((d=this.primary(h))==null||d.focus())}return}}})}setup(){for(let t of At(this,"[data-part=\'item\']"))this.prepareItem(t)}connect(){this.addEventListener("click",this.onClick),this.addEventListener("keydown",this.onKey);for(let t of At(this,"[data-part=\'group\'][data-lazy]")){let e=t.closest("[data-part=\'item\']");e&&this.isOpen(e)&&this.fill(t)}this.hasAttribute("scroll-current")&&requestAnimationFrame(()=>this.revealCurrent())}disconnect(){this.removeEventListener("click",this.onClick),this.removeEventListener("keydown",this.onKey)}prepareItem(t){let e=this.groupOf(t),i=t.querySelector(":scope > [data-part=\'row\'] > [data-part=\'toggle\']");if(!e||!i)return;e.id||(e.id=Z("db-nav-group")),i.setAttribute("aria-controls",e.id),i instanceof HTMLButtonElement&&!i.hasAttribute("type")&&(i.type="button");let o=i.getAttribute("aria-expanded")==="true"||t.getAttribute("data-state")==="open";this.apply(t,o)}groupOf(t){return t.querySelector(":scope > [data-part=\'group\']")}toggleOf(t){return t.querySelector(":scope > [data-part=\'row\'] > [data-part=\'toggle\']")}primary(t){return t.querySelector(":scope > [data-part=\'link\']")??t.querySelector(":scope > [data-part=\'toggle\']")}visibleRows(){return At(this,"[data-part=\'row\']").filter(t=>!t.closest("[hidden]"))}isOpen(t){return t.getAttribute("data-state")==="open"}toggle(t){this.setOpen(t,!this.isOpen(t))}setOpen(t,e){let i=this.groupOf(t);!i||this.isOpen(t)===e||(e&&i.hasAttribute("data-lazy")&&this.fill(i),this.apply(t,e),this.dispatchEvent(new CustomEvent("db-nav-tree:toggle",{detail:{item:t,open:e},bubbles:!0})))}apply(t,e){let i=this.groupOf(t),o=this.toggleOf(t);i&&(i.hidden=!e),o==null||o.setAttribute("aria-expanded",String(e)),t.setAttribute("data-state",e?"open":"closed")}revealCurrent(){var s;let t=this.querySelector("[aria-current=\'page\']");if(!t)return;for(let r=t.closest("[data-part=\'item\']");r&&this.contains(r);r=((s=r.parentElement)==null?void 0:s.closest("[data-part=\'item\']"))??null)this.groupOf(r)&&!this.groupOf(r).contains(t)||this.groupOf(r)&&this.setOpen(r,!0);let e=_o(this);if(!e)return;let i=t.getBoundingClientRect(),o=e.getBoundingClientRect();(i.top<o.top||i.bottom>o.bottom)&&(e.scrollTop+=i.top-o.top-o.height/2+i.height/2)}data(){if(this.navData)return this.navData;let t=this.getAttribute("data-source"),e=t?globalThis[t]:void 0;return Array.isArray(e)?e:null}fill(t){let e=this.data(),i=t.dataset.path;if(!e||i==null)return;let o=e,s;for(let r of i.split(".").map(Number))s=o==null?void 0:o[r],o=s==null?void 0:s[2];s!=null&&s[2]&&(t.replaceChildren(...this.build(s[2],i)),t.removeAttribute("data-lazy"))}build(t,e){let i=this.getAttribute("base")??"",o=this.getAttribute("toggle-label")??"Toggle {label}",s=location.href.split("#")[0];return t.map(([r,a,l,c],d)=>{let u=`${e}.${d}`,h=document.createElement("li");h.setAttribute("data-part","item"),h.style.setProperty("--db-level",String(u.split(".").length-1));let p=document.createElement("div");p.setAttribute("data-part","row"),h.appendChild(p);let b=(a==null?void 0:a.replace(/[\\u0000-\\u0020]/g,""))??"";a!=null&&/^[a-z][a-z0-9+.-]*:/i.test(b)&&!/^(?:https?|mailto):/i.test(b)&&(a=null);let v=a!=null&&/^[a-z][a-z0-9+.-]*:|^\\/\\//i.test(b),w=null;if(l!=null&&l.length){if(w=document.createElement("button"),w.type="button",w.setAttribute("data-part","toggle"),w.setAttribute("aria-expanded","false"),a!=null)w.setAttribute("aria-label",o.replace("{label}",()=>r));else{let g=document.createElement("span");g.setAttribute("data-part","label"),g.textContent=r,w.appendChild(g)}w.insertAdjacentHTML("beforeend",Fo)}let m=this.getAttribute("toggle-position")==="end";if(w&&!m&&p.appendChild(w),a!=null){let g=document.createElement("a");g.setAttribute("data-part","link"),g.textContent=r,g.href=v?a:i+a,v&&(g.rel="noopener"),!c&&g.href.split("#")[0]===s&&g.setAttribute("aria-current","page"),p.appendChild(g)}if(a==null&&!(l!=null&&l.length)){let g=document.createElement("span");g.setAttribute("data-part","label"),g.textContent=r,p.appendChild(g)}if(w&&m&&p.appendChild(w),l!=null&&l.length){let g=document.createElement("ul");g.setAttribute("data-part","group"),g.dataset.lazy="",g.dataset.path=u,g.hidden=!0,h.setAttribute("data-state","closed"),h.appendChild(g),this.prepareItem(h)}return h})}},Fo=\'<svg data-part="chevron" viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" focusable="false"><path d="m9 18 6-6-6-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\';function _o(n){for(let t=n.parentElement;t;t=t.parentElement){let e=getComputedStyle(t).overflowY;if((e==="auto"||e==="scroll")&&t.scrollHeight>t.clientHeight)return t}return null}G();customElements.get("db-nav-tree")||customElements.define("db-nav-tree",In);var Nn=class extends Y{constructor(){super(...arguments);f(this,"links",[]);f(this,"headings",[]);f(this,"observer",null);f(this,"active",null);f(this,"onScroll",()=>{let t=document.documentElement;window.innerHeight+window.scrollY>=t.scrollHeight-2&&this.headings.length&&this.setActive(this.headings[this.headings.length-1].id)});f(this,"onHash",()=>{let t=Xt(location.hash.slice(1));t&&this.headings.some(e=>e.id===t)&&this.setActive(t)})}slugOf(t){return t.getAttribute("data-toc-slug")??Xt(t.getAttribute("href").slice(1))}setup(){this.links=Array.from(this.querySelectorAll("a[href^=\'#\'], a[data-toc-link]"))}connect(){var e;if(this.headings=this.links.map(i=>document.getElementById(this.slugOf(i))).filter(i=>!!i),!this.headings.length)return;let t=Number(this.getAttribute("offset")??80);typeof IntersectionObserver<"u"&&(this.observer=new IntersectionObserver(i=>{var s;let o=i.find(r=>r.isIntersecting);if(o)return this.setActive(o.target.id);this.setActive(((s=this.lastAbove(t))==null?void 0:s.id)??null)},{rootMargin:`-${t}px 0px -70% 0px`,threshold:0}),this.headings.forEach(i=>this.observer.observe(i))),window.addEventListener("hashchange",this.onHash),window.addEventListener("scroll",this.onScroll,{passive:!0}),this.setActive(((e=this.lastAbove(t))==null?void 0:e.id)??this.headings[0].id)}disconnect(){var t;(t=this.observer)==null||t.disconnect(),this.observer=null,window.removeEventListener("hashchange",this.onHash),window.removeEventListener("scroll",this.onScroll)}lastAbove(t){let e=null;for(let i of this.headings)i.getBoundingClientRect().top<=t+20&&(e=i);return e}setActive(t){if(!(!t||t===this.active)){this.active=t;for(let e of this.links)this.slugOf(e)===t?(e.setAttribute("aria-current","location"),e.setAttribute("data-active","")):(e.removeAttribute("aria-current"),e.removeAttribute("data-active"));this.dispatchEvent(new CustomEvent("db-toc:change",{detail:{id:t},bubbles:!0}))}}};G();customElements.get("db-toc")||customElements.define("db-toc",Nn);var Po=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",\'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)\',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Ve=Po.join(","),_n=typeof Element>"u",ae=_n?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,we=!_n&&Element.prototype.getRootNode?function(n){var t;return n==null||(t=n.getRootNode)===null||t===void 0?void 0:t.call(n)}:function(n){return n==null?void 0:n.ownerDocument},xe=function(t,e){var i;e===void 0&&(e=!0);var o=t==null||(i=t.getAttribute)===null||i===void 0?void 0:i.call(t,"inert"),s=o===""||o==="true",r=s||e&&t&&(typeof t.closest=="function"?t.closest("[inert]"):xe(t.parentNode));return r},zo=function(t){var e,i=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return i===""||i==="true"},$o=function(t,e,i){if(xe(t))return[];var o=Array.prototype.slice.apply(t.querySelectorAll(Ve));return e&&ae.call(t,Ve)&&o.unshift(t),o=o.filter(i),o},je=function(t,e,i){for(var o=[],s=Array.from(t);s.length;){var r=s.shift();if(!xe(r,!1))if(r.tagName==="SLOT"){var a=r.assignedElements(),l=a.length?a:r.children,c=je(l,!0,i);i.flatten?o.push.apply(o,c):o.push({scopeParent:r,candidates:c})}else{var d=ae.call(r,Ve);d&&i.filter(r)&&(e||!t.includes(r))&&o.push(r);var u=r.shadowRoot||typeof i.getShadowRoot=="function"&&i.getShadowRoot(r),h=!xe(u,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(r));if(u&&h){var p=je(u===!0?r.children:u.children,!0,i);i.flatten?o.push.apply(o,p):o.push({scopeParent:r,candidates:p})}else s.unshift.apply(s,r.children)}}return o},Pn=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},zn=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||zo(t))&&!Pn(t)?0:t.tabIndex},Bo=function(t,e){var i=zn(t);return i<0&&e&&!Pn(t)?0:i},qo=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},$n=function(t){return t.tagName==="INPUT"},Ko=function(t){return $n(t)&&t.type==="hidden"},Vo=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(i){return i.tagName==="SUMMARY"});return e},jo=function(t,e){for(var i=0;i<t.length;i++)if(t[i].checked&&t[i].form===e)return t[i]},Uo=function(t){if(!t.name)return!0;var e=t.form||we(t),i=function(a){return e.querySelectorAll(\'input[type="radio"][name="\'+a+\'"]\')},o;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")o=i(window.CSS.escape(t.name));else try{o=i(t.name)}catch(r){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",r.message),!1}var s=jo(o,t.form);return!s||s===t},Wo=function(t){return $n(t)&&t.type==="radio"},Yo=function(t){return Wo(t)&&!Uo(t)},Go=function(t){var e,i=t&&we(t),o=(e=i)===null||e===void 0?void 0:e.host,s=!1;if(i&&i!==t){var r,a,l;for(s=!!((r=o)!==null&&r!==void 0&&(a=r.ownerDocument)!==null&&a!==void 0&&a.contains(o)||t!=null&&(l=t.ownerDocument)!==null&&l!==void 0&&l.contains(t));!s&&o;){var c,d,u;i=we(o),o=(c=i)===null||c===void 0?void 0:c.host,s=!!((d=o)!==null&&d!==void 0&&(u=d.ownerDocument)!==null&&u!==void 0&&u.contains(o))}}return s},Hn=function(t){var e=t.getBoundingClientRect(),i=e.width,o=e.height;return i===0&&o===0},Xo=function(t,e){var i=e.displayCheck,o=e.getShadowRoot;if(i==="full-native"&&"checkVisibility"in t){var s=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!s}var r=getComputedStyle(t),a=r.visibility;if(a==="hidden"||a==="collapse")return!0;var l=ae.call(t,"details>summary:first-of-type"),c=l?t.parentElement:t;if(ae.call(c,"details:not([open]) *"))return!0;if(!i||i==="full"||i==="full-native"||i==="legacy-full"){if(typeof o=="function"){for(var d=t;t;){var u=t.parentElement,h=we(t);if(u&&!u.shadowRoot&&o(u)===!0)return Hn(t);t.assignedSlot?t=t.assignedSlot:!u&&h!==t.ownerDocument?t=h.host:t=u}t=d}if(Go(t))return!t.getClientRects().length;if(i!=="legacy-full")return!0}else if(i==="non-zero-area")return Hn(t);return!1},Zo=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var i=0;i<e.children.length;i++){var o=e.children.item(i);if(o.tagName==="LEGEND")return ae.call(e,"fieldset[disabled] *")?!0:!o.contains(t)}return!0}e=e.parentElement}return!1},Qo=function(t,e){return!(e.disabled||Ko(e)||Xo(e,t)||Vo(e)||Zo(e))},Fn=function(t,e){return!(Yo(e)||zn(e)<0||!Qo(t,e))},Jo=function(t){var e=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(e)||e>=0)},Bn=function(t){var e=[],i=[];return t.forEach(function(o,s){var r=!!o.scopeParent,a=r?o.scopeParent:o,l=Bo(a,r),c=r?Bn(o.candidates):a;l===0?r?e.push.apply(e,c):e.push(a):i.push({documentOrder:s,tabIndex:l,item:o,isScope:r,content:c})}),i.sort(qo).reduce(function(o,s){return s.isScope?o.push.apply(o,s.content):o.push(s.content),o},[]).concat(e)},Ue=function(t,e){e=e||{};var i;return e.getShadowRoot?i=je([t],e.includeContainer,{filter:Fn.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:Jo}):i=$o(t,e.includeContainer,Fn.bind(null,e)),Bn(i)};var We=class{constructor(n,t={}){f(this,"root");f(this,"opts");f(this,"previouslyFocused",null);f(this,"keydownHandler",null);f(this,"active",!1);this.root=n,this.opts={initialFocus:t.initialFocus??"first",returnFocus:t.returnFocus??!0}}activate(){this.active||(this.active=!0,this.previouslyFocused=document.activeElement,this.keydownHandler=n=>{if(n.key!=="Tab")return;let t=Ue(this.root);if(t.length===0){n.preventDefault();return}let e=t[0],i=t[t.length-1];n.shiftKey?document.activeElement===e&&(i.focus(),n.preventDefault()):document.activeElement===i&&(e.focus(),n.preventDefault())},document.addEventListener("keydown",this.keydownHandler),requestAnimationFrame(()=>{var t;if(!this.active)return;let n=Ue(this.root);this.opts.initialFocus instanceof HTMLElement&&this.root.contains(this.opts.initialFocus)?this.opts.initialFocus.focus():this.opts.initialFocus==="container"?(this.root.hasAttribute("tabindex")||this.root.setAttribute("tabindex","-1"),this.root.focus()):(t=n[0])==null||t.focus()}))}deactivate(){this.active&&(this.active=!1,this.keydownHandler&&(document.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null),this.opts.returnFocus&&this.previouslyFocused&&document.contains(this.previouslyFocused)&&this.previouslyFocused.focus(),this.previouslyFocused=null)}isActive(){return this.active}};var et,It=(et=class{static activate(){if(et.count++,et.count>1)return;let t=window.innerWidth-document.documentElement.clientWidth;et.originalStyles={overflow:document.body.style.overflow,paddingRight:document.body.style.paddingRight},document.body.style.overflow="hidden",t>0&&(document.body.style.paddingRight=`${t}px`)}static deactivate(){et.count=Math.max(0,et.count-1),!(et.count>0)&&et.originalStyles&&(document.body.style.overflow=et.originalStyles.overflow,document.body.style.paddingRight=et.originalStyles.paddingRight,et.originalStyles=null)}static reset(){et.count=0,et.originalStyles=null}},f(et,"count",0),f(et,"originalStyles",null),et);var vt=[];function ts(n){if(n.key!=="Escape"||vt.length===0)return;let t=vt[vt.length-1];t.escapePrevented||(n.preventDefault(),n.stopPropagation(),t.opts.onDismiss("escape-key"))}var qn=!1;function es(){qn||(qn=!0,document.addEventListener("keydown",ts))}var Nt=class{constructor(n,t){f(this,"root");f(this,"opts");f(this,"outsideHandler",null);f(this,"active",!1);f(this,"frameId",null);f(this,"escapePrevented",!1);this.root=n,this.opts={onDismiss:t.onDismiss,escapeKey:t.escapeKey??!0,outsidePress:t.outsidePress??!0}}activate(){this.active||(this.active=!0,this.opts.escapeKey&&(es(),vt.push(this)),this.opts.outsidePress&&(this.outsideHandler=n=>{if(vt.length>0&&vt[vt.length-1]!==this)return;let t=n.target;if(this.root.contains(t))return;let e=this.root.id;if(e){let o=document.querySelector(`[aria-controls="${e}"]`);if(o!=null&&o.contains(t))return}let i=this.root.getAttribute("aria-labelledby");if(i){let o=document.getElementById(i);if(o!=null&&o.contains(t))return}typeof this.opts.outsidePress=="function"&&!this.opts.outsidePress(n)||this.opts.onDismiss("outside-press")},this.frameId=requestAnimationFrame(()=>{this.frameId=null,this.outsideHandler&&document.addEventListener("pointerdown",this.outsideHandler)})))}deactivate(){if(!this.active)return;this.active=!1;let n=vt.indexOf(this);n!==-1&&vt.splice(n,1),this.frameId!==null&&(cancelAnimationFrame(this.frameId),this.frameId=null),this.outsideHandler&&(document.removeEventListener("pointerdown",this.outsideHandler),this.outsideHandler=null)}isActive(){return this.active}};function Ye(n){let t=[],e=n;for(;e&&e!==document.body;){let i=e.parentElement;if(!i)break;for(let o=0;o<i.children.length;o++){let s=i.children[o];if(s===e||s.contains(n))continue;let r=s.tagName;if(r==="SCRIPT"||r==="STYLE"||r==="LINK")continue;let a=s.getAttribute("aria-hidden");a!=="true"&&(t.push({el:s,prev:a}),s.setAttribute("aria-hidden","true"))}e=i}return()=>{for(let{el:i,prev:o}of t)o===null?i.removeAttribute("aria-hidden"):i.setAttribute("aria-hidden",o)}}var Kn=class extends Y{constructor(){super(...arguments);f(this,"content",null);f(this,"backdrop",null);f(this,"trigger",null);f(this,"native",!1);f(this,"_open",!1);f(this,"openedBy",null);f(this,"focusTrap",null);f(this,"dismiss",null);f(this,"cleanupInert",null);f(this,"onTriggerClick",t=>{t.preventDefault(),this.toggle(t.currentTarget)});f(this,"onHostClick",t=>{let e=t.target.closest("[data-part=\'close\']");e&&e.closest("db-dialog")===this&&this.close("close-press")});f(this,"onDocumentClick",t=>{var o,s,r;let e=(s=(o=t.target).closest)==null?void 0:s.call(o,"[data-dialog-for]");if(!e||e===this.trigger)return;let i=e.getAttribute("data-dialog-for");i&&(i===this.id||i===((r=this.content)==null?void 0:r.id))&&(t.preventDefault(),this.toggle(e))});f(this,"onCancel",t=>{t.preventDefault(),this.dismissible&&this.close("escape-key")});f(this,"onNativeClick",t=>{if(!this.dismissible||t.target!==this.content||!this.content)return;let e=this.content.getBoundingClientRect();!(t.clientX>=e.left&&t.clientX<=e.right&&t.clientY>=e.top&&t.clientY<=e.bottom)&&(t.clientX!==0||t.clientY!==0)&&this.close("outside-press")});f(this,"onNativeClose",()=>{this._open&&this.finishClose("close-press")})}get open(){return this._open}get dismissible(){return this.getAttribute("dismissible")!=="false"}setup(){if(this.content=Q(this,"[data-part=\'content\']"),!this.content)return;this.native=typeof HTMLDialogElement<"u"&&this.content instanceof HTMLDialogElement&&typeof this.content.showModal=="function",this.backdrop=Q(this,"[data-part=\'backdrop\']"),this.trigger=Wt(Q(this,"[data-part=\'trigger\']"));let t=this.content;t.id||(t.id=Z("db-dialog")),this.native||(t.setAttribute("role",t.getAttribute("role")||"dialog"),t.setAttribute("aria-modal","true"),t.hidden=!this.hasAttribute("open"),this.backdrop&&(this.backdrop.hidden=!0));let e=t.querySelector("[data-part=\'title\']");e&&!t.hasAttribute("aria-labelledby")&&!t.hasAttribute("aria-label")&&(e.id||(e.id=Z("db-dialog-title")),t.setAttribute("aria-labelledby",e.id));let i=t.querySelector("[data-part=\'description\']");i&&!t.hasAttribute("aria-describedby")&&(i.id||(i.id=Z("db-dialog-desc")),t.setAttribute("aria-describedby",i.id));for(let o of this.triggers())this.prepareTrigger(o);this.setState("closed"),this.native||(this.focusTrap=new We(t),this.dismiss=new Nt(t,{onDismiss:o=>this.dismissible&&this.close(o)}))}connect(){var t;this.content&&((t=this.trigger)==null||t.addEventListener("click",this.onTriggerClick),this.addEventListener("click",this.onHostClick),document.addEventListener("click",this.onDocumentClick),this.native&&(this.content.addEventListener("cancel",this.onCancel),this.content.addEventListener("click",this.onNativeClick),this.content.addEventListener("close",this.onNativeClose)),queueMicrotask(()=>{if(this.isConnected){for(let e of this.triggers())e.hasAttribute("aria-controls")||this.prepareTrigger(e);this.hasAttribute("open")&&!this._open&&this.show()}}))}disconnect(){var t;(t=this.trigger)==null||t.removeEventListener("click",this.onTriggerClick),this.removeEventListener("click",this.onHostClick),document.removeEventListener("click",this.onDocumentClick),this.content&&this.native&&(this.content.removeEventListener("cancel",this.onCancel),this.content.removeEventListener("click",this.onNativeClick),this.content.removeEventListener("close",this.onNativeClose)),this._open&&this.finishClose("api",!1)}triggers(){var i;let t=this.trigger?[this.trigger]:[],e=[this.id,(i=this.content)==null?void 0:i.id].filter(Boolean);for(let o of e)document.querySelectorAll(`[data-dialog-for="${CSS.escape(o)}"]`).forEach(s=>t.push(s));return t}prepareTrigger(t){t.hasAttribute("aria-haspopup")||t.setAttribute("aria-haspopup","dialog"),t.setAttribute("aria-controls",this.content.id),t.setAttribute("aria-expanded","false")}setState(t){var e,i;this.setAttribute("data-state",t),(e=this.content)==null||e.setAttribute("data-state",t),(i=this.backdrop)==null||i.setAttribute("data-state",t)}toggle(t){this._open?this.close("trigger-press"):this.show(t)}show(t){var i,o;let e=this.content;if(!(!e||this._open)){this._open=!0,this.openedBy=t??document.activeElement??this.trigger;for(let s of this.triggers())this.prepareTrigger(s),s.setAttribute("aria-expanded","true");if(It.activate(),this.native){let s=e;s.open||s.showModal()}else e.hidden=!1,this.backdrop&&(this.backdrop.hidden=!1),this.cleanupInert=Ye(e),(i=this.focusTrap)==null||i.activate(),(o=this.dismiss)==null||o.activate();this.setState("open"),this.dispatchEvent(new CustomEvent("db-dialog:open",{bubbles:!0}))}}close(t="api"){this._open&&this.finishClose(t)}finishClose(t,e=!0){var s,r,a;let i=this.content;this._open=!1,this.setState("closed");for(let l of this.triggers())l.setAttribute("aria-expanded","false");if(It.deactivate(),this.native){let l=i;l.open&&l.close()}else(s=this.dismiss)==null||s.deactivate(),(r=this.focusTrap)==null||r.deactivate(),(a=this.cleanupInert)==null||a.call(this),this.cleanupInert=null,On(i,()=>{this._open||(i.hidden=!0,this.backdrop&&(this.backdrop.hidden=!0))});let o=this.openedBy;this.openedBy=null,e&&o&&document.contains(o)&&o.focus(),this.dispatchEvent(new CustomEvent("db-dialog:close",{detail:{reason:t},bubbles:!0}))}};G();customElements.get("db-dialog")||customElements.define("db-dialog",Kn);var Vn=class extends Y{constructor(){super(...arguments);f(this,"input",null);f(this,"listbox",null);f(this,"empty",null);f(this,"_open",!1);f(this,"highlighted",null);f(this,"observer",null);f(this,"base",Z("db-combobox"));f(this,"optionSeq",0);f(this,"onInput",()=>{this.filtering?this.filter(this.input.value):this.show()});f(this,"onFocus",()=>{(this.hasAttribute("open-on-focus")||this.filtering&&this.input.value)&&(this.filtering?this.filter(this.input.value):this.show())});f(this,"onKey",t=>{let e=this.visible(),i=this.highlighted?e.indexOf(this.highlighted):-1;switch(t.key){case"ArrowDown":t.preventDefault(),this._open||this.show(),e.length&&this.highlight(e[i<0?0:Math.min(i+1,e.length-1)]);break;case"ArrowUp":t.preventDefault(),this._open||this.show(),e.length&&this.highlight(e[i<0?e.length-1:Math.max(i-1,0)]);break;case"Home":case"End":this._open&&this.highlighted&&e.length&&(t.preventDefault(),this.highlight(t.key==="Home"?e[0]:e[e.length-1]));break;case"Enter":this._open&&this.highlighted&&(t.preventDefault(),this.choose(this.highlighted));break;case"Escape":this._open&&!this.inline?(t.preventDefault(),t.stopPropagation(),this.hide()):this.input.value&&(t.preventDefault(),t.stopPropagation(),this.input.value="",this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.hide());break;case"Tab":this.inline||this.hide();break}});f(this,"onListClick",t=>{let e=t.target.closest("[data-part=\'option\']");if(!e||e.closest("db-combobox")!==this||dt(e))return;let i=t.target.closest("a[href]");!this.choose(e,!i)&&i&&t.preventDefault()});f(this,"onListPointer",t=>{let e=t.target.closest("[data-part=\'option\']");e&&e.closest("db-combobox")===this&&!dt(e)&&!e.hidden&&this.highlight(e)});f(this,"onListDown",t=>t.preventDefault());f(this,"onDocDown",t=>{this._open&&!this.inline&&!this.contains(t.target)&&this.hide()})}get open(){return this._open}get inline(){return this.hasAttribute("inline")}get filtering(){return(this.getAttribute("filter")??"contains")!=="none"}options(){return this.listbox?Array.from(this.listbox.querySelectorAll("[data-part=\'option\']")).filter(t=>t.closest("db-combobox")===this):[]}visible(){return this.options().filter(t=>!t.hidden&&!dt(t))}setup(){if(this.input=Q(this,"[data-part=\'input\']"),this.listbox=Q(this,"[data-part=\'listbox\']"),this.empty=Q(this,"[data-part=\'empty\']"),!this.input||!this.listbox)return;let{input:t,listbox:e}=this;e.id||(e.id=`${this.base}-listbox`),e.setAttribute("role","listbox"),t.setAttribute("role","combobox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-controls",e.id),t.setAttribute("autocomplete","off"),this.inline||(e.hidden=!0),this.prepareOptions(),this.syncExpanded()}prepareOptions(){this.options().forEach(t=>{t.id||(t.id=`${this.base}-option-${++this.optionSeq}`),t.setAttribute("role","option"),t.hasAttribute("aria-selected")||t.setAttribute("aria-selected","false"),t.matches("a[href], button")&&t.setAttribute("tabindex","-1"),t.querySelectorAll("a, button").forEach(e=>e.setAttribute("tabindex","-1")),t.parentElement&&t.parentElement!==this.listbox&&t.parentElement.localName==="li"&&!t.parentElement.hasAttribute("role")&&t.parentElement.setAttribute("role","none")})}connect(){let{input:t,listbox:e}=this;!t||!e||(t.addEventListener("input",this.onInput),t.addEventListener("focus",this.onFocus),t.addEventListener("keydown",this.onKey),e.addEventListener("click",this.onListClick),e.addEventListener("pointermove",this.onListPointer),e.addEventListener("mousedown",this.onListDown),document.addEventListener("pointerdown",this.onDocDown),typeof MutationObserver<"u"&&(this.observer=new MutationObserver(()=>this.onOptionsChanged()),this.observer.observe(e,{childList:!0,subtree:!0})))}disconnect(){var i;let{input:t,listbox:e}=this;t==null||t.removeEventListener("input",this.onInput),t==null||t.removeEventListener("focus",this.onFocus),t==null||t.removeEventListener("keydown",this.onKey),e==null||e.removeEventListener("click",this.onListClick),e==null||e.removeEventListener("pointermove",this.onListPointer),e==null||e.removeEventListener("mousedown",this.onListDown),document.removeEventListener("pointerdown",this.onDocDown),(i=this.observer)==null||i.disconnect(),this.observer=null}refresh(){this.onOptionsChanged()}onOptionsChanged(){this.prepareOptions(),this.highlighted&&!this.options().includes(this.highlighted)&&this.clearHighlight();let t=this.visible();this.filtering||(t.length||this.inline?this.show():this.hide(),t.length&&!this.highlighted&&!this.hasAttribute("no-autohighlight")&&this.highlight(t[0])),this.syncExpanded(),this.dispatchEvent(new CustomEvent("db-combobox:update",{detail:{count:t.length},bubbles:!0}))}filter(t){let e=t.toLowerCase().trim(),i=0;for(let s of this.options()){let r=!e||(s.textContent??"").toLowerCase().includes(e)||(s.dataset.value??"").toLowerCase().includes(e);s.hidden=!r,r&&i++}this.empty&&(this.empty.hidden=i>0||!e),this.clearHighlight(),i||e&&this.empty?this.show():this.hide();let o=this.visible();o.length&&!this.hasAttribute("no-autohighlight")&&this.highlight(o[0]),this.dispatchEvent(new CustomEvent("db-combobox:update",{detail:{count:i},bubbles:!0}))}syncExpanded(){if(!this.input)return;let t=this.inline?this.visible().length>0:this._open;this.input.setAttribute("aria-expanded",String(t)),this.setAttribute("data-state",t?"open":"closed")}show(){if(!this.listbox||this._open)return this.syncExpanded();this._open=!0,this.listbox.hidden=!1,this.syncExpanded()}hide(){if(this.listbox){if(this.clearHighlight(),!this._open)return this.syncExpanded();this._open=!1,this.inline||(this.listbox.hidden=!0),this.syncExpanded()}}highlight(t){var e,i,o;this.input&&((e=this.highlighted)==null||e.removeAttribute("data-highlighted"),(i=this.highlighted)==null||i.setAttribute("aria-selected","false"),this.highlighted=t,t.setAttribute("data-highlighted",""),t.setAttribute("aria-selected","true"),this.input.setAttribute("aria-activedescendant",t.id),(o=t.scrollIntoView)==null||o.call(t,{block:"nearest"}))}clearHighlight(){var t,e,i;(t=this.highlighted)==null||t.removeAttribute("data-highlighted"),(e=this.highlighted)==null||e.setAttribute("aria-selected","false"),this.highlighted=null,(i=this.input)==null||i.removeAttribute("aria-activedescendant")}choose(t,e=!0){var a;let i=t.dataset.value??"",o=((a=t.textContent)==null?void 0:a.trim())??i,s=new CustomEvent("db-combobox:select",{detail:{value:i,text:o,option:t},bubbles:!0,cancelable:!0});if(!this.dispatchEvent(s))return!1;let r=t.matches("a[href]")?t:t.querySelector("a[href]");return r?(e&&r.click(),!0):(this.input&&(this.input.value=t.getAttribute("data-label")??o),this.inline||this.hide(),this.dispatchEvent(new CustomEvent("db-combobox:change",{detail:{value:i,text:o},bubbles:!0})),!0)}};G();customElements.get("db-combobox")||customElements.define("db-combobox",Vn);var Ct=Math.min,ut=Math.max,ce=Math.round,de=Math.floor,mt=n=>({x:n,y:n}),ns={left:"right",right:"left",bottom:"top",top:"bottom"};function Wn(n,t,e){return ut(n,Ct(t,e))}function Zt(n,t){return typeof n=="function"?n(t):n}function Lt(n){return n.split("-")[0]}function Qt(n){return n.split("-")[1]}function Ge(n){return n==="x"?"y":"x"}function Xe(n){return n==="y"?"height":"width"}function pt(n){let t=n[0];return t==="t"||t==="b"?"y":"x"}function Ze(n){return Ge(pt(n))}function Yn(n,t,e){e===void 0&&(e=!1);let i=Qt(n),o=Ze(n),s=Xe(o),r=o==="x"?i===(e?"end":"start")?"right":"left":i==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(r=le(r)),[r,le(r)]}function Gn(n){let t=le(n);return[Ee(n),t,Ee(t)]}function Ee(n){return n.includes("start")?n.replace("start","end"):n.replace("end","start")}var jn=["left","right"],Un=["right","left"],is=["top","bottom"],os=["bottom","top"];function ss(n,t,e){switch(n){case"top":case"bottom":return e?t?Un:jn:t?jn:Un;case"left":case"right":return t?is:os;default:return[]}}function Xn(n,t,e,i){let o=Qt(n),s=ss(Lt(n),e==="start",i);return o&&(s=s.map(r=>r+"-"+o),t&&(s=s.concat(s.map(Ee)))),s}function le(n){let t=Lt(n);return ns[t]+n.slice(t.length)}function rs(n){var t,e,i,o;return{top:(t=n.top)!=null?t:0,right:(e=n.right)!=null?e:0,bottom:(i=n.bottom)!=null?i:0,left:(o=n.left)!=null?o:0}}function Zn(n){return typeof n!="number"?rs(n):{top:n,right:n,bottom:n,left:n}}function Ht(n){let{x:t,y:e,width:i,height:o}=n;return{width:i,height:o,top:e,left:t,right:t+i,bottom:e+o,x:t,y:e}}function Qn(n,t,e){let{reference:i,floating:o}=n,s=pt(t),r=Ze(t),a=Xe(r),l=Lt(t),c=s==="y",d=i.x+i.width/2-o.width/2,u=i.y+i.height/2-o.height/2,h=i[a]/2-o[a]/2,p;switch(l){case"top":p={x:d,y:i.y-o.height};break;case"bottom":p={x:d,y:i.y+i.height};break;case"right":p={x:i.x+i.width,y:u};break;case"left":p={x:i.x-o.width,y:u};break;default:p={x:i.x,y:i.y}}let b=Qt(t);return b&&(p[r]+=h*(b==="end"?1:-1)*(e&&c?-1:1)),p}async function Jn(n,t){var e;t===void 0&&(t={});let{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=n,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:h=!1,padding:p=0}=Zt(t,n),b=Zn(p),w=a[h?u==="floating"?"reference":"floating":u],m=Ht(await s.getClippingRect({element:(e=await(s.isElement==null?void 0:s.isElement(w)))==null||e?w:w.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:d,strategy:l})),g=u==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),C=await(s.isElement==null?void 0:s.isElement(x))&&await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1},I=Ht(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:g,offsetParent:x,strategy:l}):g);return{top:(m.top-I.top+b.top)/C.y,bottom:(I.bottom-m.bottom+b.bottom)/C.y,left:(m.left-I.left+b.left)/C.x,right:(I.right-m.right+b.right)/C.x}}var as=50,ti=async(n,t,e)=>{let{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=e,a=r.detectOverflow?r:{...r,detectOverflow:Jn},l=await(r.isRTL==null?void 0:r.isRTL(t)),c=await r.getElementRects({reference:n,floating:t,strategy:o}),{x:d,y:u}=Qn(c,i,l),h=i,p=0,b={};for(let v=0;v<s.length;v++){let w=s[v];if(!w)continue;let{name:m,fn:g}=w,{x,y:C,data:I,reset:L}=await g({x:d,y:u,initialPlacement:i,placement:h,strategy:o,middlewareData:b,rects:c,platform:a,elements:{reference:n,floating:t}});d=x??d,u=C??u,b[m]={...b[m],...I},L&&p<as&&(p++,typeof L=="object"&&(L.placement&&(h=L.placement),L.rects&&(c=L.rects===!0?await r.getElementRects({reference:n,floating:t,strategy:o}):L.rects),{x:d,y:u}=Qn(c,h,l)),v=-1)}return{x:d,y:u,placement:h,strategy:o,middlewareData:b}};var ei=function(n){return n===void 0&&(n={}),{name:"flip",options:n,async fn(t){var e,i;let{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:b="none",flipAlignment:v=!0,...w}=Zt(n,t);if((e=s.arrow)!=null&&e.alignmentOffset)return{};let m=Lt(o),g=pt(a),x=Lt(a)===a,C=await(l.isRTL==null?void 0:l.isRTL(c.floating)),I=h||(x||!v?[le(a)]:Gn(a)),L=b!=="none";!h&&L&&I.push(...Xn(a,v,b,C));let E=[a,...I],y=await l.detectOverflow(t,w),X=[],z=((i=s.flip)==null?void 0:i.overflows)||[];if(d&&X.push(y[m]),u){let P=Yn(o,r,C);X.push(y[P[0]],y[P[1]])}if(z=[...z,{placement:o,overflows:X}],!X.every(P=>P<=0)){var U,S;let P=(((U=s.flip)==null?void 0:U.index)||0)+1,B=E[P];if(B&&(!(u==="alignment"?g!==pt(B):!1)||z.every(K=>pt(K.placement)===g?K.overflows[0]>0:!0)))return{data:{index:P,overflows:z},reset:{placement:B}};let F=(S=z.filter($=>$.overflows[0]<=0).sort(($,K)=>$.overflows[1]-K.overflows[1])[0])==null?void 0:S.placement;if(!F)switch(p){case"bestFit":{var O;let $=(O=z.filter(K=>{if(L){let J=pt(K.placement);return J===g||J==="y"}return!0}).map(K=>[K.placement,K.overflows.filter(J=>J>0).reduce((J,nt)=>J+nt,0)]).sort((K,J)=>K[1]-J[1])[0])==null?void 0:O[0];$&&(F=$);break}case"initialPlacement":F=a;break}if(o!==F)return{reset:{placement:F}}}return{}}}};var ls=new Set(["left","top"]);async function cs(n,t){let{placement:e,platform:i,elements:o}=n,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=Lt(e),a=Qt(e),l=pt(e)==="y",c=ls.has(r)?-1:1,d=s&&l?-1:1,u=Zt(t,n),{mainAxis:h,crossAxis:p,alignmentAxis:b}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return a&&typeof b=="number"&&(p=a==="end"?b*-1:b),l?{x:p*d,y:h*c}:{x:h*c,y:p*d}}var ni=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(t){var e,i;let{x:o,y:s,placement:r,middlewareData:a}=t,l=await cs(t,n);return r===((e=a.offset)==null?void 0:e.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},ii=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(t){let{x:e,y:i,placement:o,platform:s}=t,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:g=>{let{x,y:C}=g;return{x,y:C}}},...c}=Zt(n,t),d={x:e,y:i},u=await s.detectOverflow(t,c),h=pt(o),p=Ge(h),b=d[p],v=d[h],w=(g,x)=>Wn(x+u[g==="y"?"top":"left"],x,x-u[g==="y"?"bottom":"right"]);r&&(b=w(p,b)),a&&(v=w(h,v));let m=l.fn({...t,[p]:b,[h]:v});return{...m,data:{x:m.x-e,y:m.y-i,enabled:{[p]:r,[h]:a}}}}}};var oi=function(n){return n===void 0&&(n={}),{name:"size",options:n,async fn(t){let{placement:e,rects:i,platform:o,elements:s}=t,{apply:r=()=>{},...a}=Zt(n,t),l=await o.detectOverflow(t,a),c=Lt(e),d=Qt(e),u=pt(e)==="y",{width:h,height:p}=i.floating,b,v;c==="top"||c==="bottom"?(b=c,v=d===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(v=c,b=d==="end"?"top":"bottom");let w=p-l.top-l.bottom,m=h-l.left-l.right,g=Ct(p-l[b],w),x=Ct(h-l[v],m),C=t.middlewareData.shift,I=!C,L=g,E=x;C!=null&&C.enabled.x&&(E=m),C!=null&&C.enabled.y&&(L=w),I&&!d&&(u?E=h-2*ut(l.left,l.right):L=p-2*ut(l.top,l.bottom)),await r({...t,availableWidth:E,availableHeight:L});let y=await o.getDimensions(s.floating);return h!==y.width||p!==y.height?{reset:{rects:!0}}:{}}}};function Se(){return typeof window<"u"}function _t(n){return ri(n)?(n.nodeName||"").toLowerCase():"#document"}function st(n){var t;return(n==null||(t=n.ownerDocument)==null?void 0:t.defaultView)||window}function gt(n){var t;return(t=(ri(n)?n.ownerDocument:n.document)||window.document)==null?void 0:t.documentElement}function ri(n){return Se()?n instanceof Node||n instanceof st(n).Node:!1}function ht(n){return Se()?n instanceof Element||n instanceof st(n).Element:!1}function yt(n){return Se()?n instanceof HTMLElement||n instanceof st(n).HTMLElement:!1}function si(n){return!Se()||typeof ShadowRoot>"u"?!1:n instanceof ShadowRoot||n instanceof st(n).ShadowRoot}function ue(n){let{overflow:t,overflowX:e,overflowY:i,display:o}=ft(n);return/auto|scroll|overlay|hidden|clip/.test(t+i+e)&&o!=="inline"&&o!=="contents"}function ai(n){return/^(table|td|th)$/.test(_t(n))}function he(n){try{if(n.matches(":popover-open"))return!0}catch{}try{return n.matches(":modal")}catch{return!1}}var ds=/transform|translate|scale|rotate|perspective|filter/,us=/paint|layout|strict|content/,Ft=n=>!!n&&n!=="none",Qe;function Ae(n){let t=ht(n)?ft(n):n;return Ft(t.transform)||Ft(t.translate)||Ft(t.scale)||Ft(t.rotate)||Ft(t.perspective)||!Ce()&&(Ft(t.backdropFilter)||Ft(t.filter))||ds.test(t.willChange||"")||us.test(t.contain||"")}function li(n){let t=kt(n);for(;yt(t)&&!te(t);){if(Ae(t))return t;if(he(t))return null;t=kt(t)}return null}function Ce(){return Qe==null&&(Qe=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Qe}function te(n){return/^(html|body|#document)$/.test(_t(n))}function ft(n){return st(n).getComputedStyle(n)}function fe(n){return ht(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function kt(n){if(_t(n)==="html")return n;let t=n.assignedSlot||n.parentNode||si(n)&&n.host||gt(n);return si(t)?t.host:t}function ci(n){let t=kt(n);return te(t)?(n.ownerDocument||n).body:yt(t)&&ue(t)?t:ci(t)}function Jt(n,t,e){var i;t===void 0&&(t=[]),e===void 0&&(e=!0);let o=ci(n),s=o===((i=n.ownerDocument)==null?void 0:i.body),r=st(o);if(s){let a=Le(r);return t.concat(r,r.visualViewport||[],ue(o)?o:[],a&&e?Jt(a):[])}else return t.concat(o,Jt(o,[],e))}function Le(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function hi(n){let t=ft(n),e=parseFloat(t.width)||0,i=parseFloat(t.height)||0,o=yt(n),s=o?n.offsetWidth:e,r=o?n.offsetHeight:i,a=ce(e)!==s||ce(i)!==r;return a&&(e=s,i=r),{width:e,height:i,$:a}}function tn(n){return ht(n)?n:n.contextElement}function ee(n){let t=tn(n);if(!yt(t))return mt(1);let e=t.getBoundingClientRect(),{width:i,height:o,$:s}=hi(t),r=(s?ce(e.width):e.width)/i,a=(s?ce(e.height):e.height)/o;return(!r||!Number.isFinite(r))&&(r=1),(!a||!Number.isFinite(a))&&(a=1),{x:r,y:a}}var hs=mt(0);function fi(n){let t=st(n);return!Ce()||!t.visualViewport?hs:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function fs(n,t,e){return t===void 0&&(t=!1),!!e&&t&&e===st(n)}function Pt(n,t,e,i){t===void 0&&(t=!1),e===void 0&&(e=!1);let o=n.getBoundingClientRect(),s=tn(n),r=mt(1);t&&(i?ht(i)&&(r=ee(i)):r=ee(n));let a=fs(s,e,i)?fi(s):mt(0),l=(o.left+a.x)/r.x,c=(o.top+a.y)/r.y,d=o.width/r.x,u=o.height/r.y;if(s&&i){let h=st(s),p=ht(i)?st(i):i,b=h,v=Le(b);for(;v&&p!==b;){let w=ee(v),m=v.getBoundingClientRect(),g=ft(v),x=m.left+(v.clientLeft+parseFloat(g.paddingLeft))*w.x,C=m.top+(v.clientTop+parseFloat(g.paddingTop))*w.y;l*=w.x,c*=w.y,d*=w.x,u*=w.y,l+=x,c+=C,b=st(v),v=Le(b)}}return Ht({width:d,height:u,x:l,y:c})}function ke(n,t){let e=fe(n).scrollLeft;return t?t.left+e:Pt(gt(n)).left+e}function mi(n,t){let e=n.getBoundingClientRect(),i=e.left+t.scrollLeft-ke(n,e),o=e.top+t.scrollTop;return{x:i,y:o}}function ms(n){let{elements:t,rect:e,offsetParent:i,strategy:o}=n,s=o==="fixed",r=gt(i),a=t?he(t.floating):!1;if(i===r||a&&s)return e;let l={scrollLeft:0,scrollTop:0},c=mt(1),d=mt(0),u=yt(i);if((u||!s)&&((_t(i)!=="body"||ue(r))&&(l=fe(i)),u)){let p=Pt(i);c=ee(i),d.x=p.x+i.clientLeft,d.y=p.y+i.clientTop}let h=r&&!u&&!s?mi(r,l):mt(0);return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+d.x+h.x,y:e.y*c.y-l.scrollTop*c.y+d.y+h.y}}function ps(n){return n.getClientRects?Array.from(n.getClientRects()):[]}function gs(n){let t=fe(n),e=n.ownerDocument.body,i=ut(n.scrollWidth,n.clientWidth,e.scrollWidth,e.clientWidth),o=ut(n.scrollHeight,n.clientHeight,e.scrollHeight,e.clientHeight),s=-t.scrollLeft+ke(n),r=-t.scrollTop;return ft(e).direction==="rtl"&&(s+=ut(n.clientWidth,e.clientWidth)-i),{width:i,height:o,x:s,y:r}}var bs=25;function vs(n,t,e){e===void 0&&(e="viewport");let i=e==="layoutViewport",o=st(n),s=gt(n),r=o.visualViewport,a=s.clientWidth,l=s.clientHeight,c=0,d=0;if(r){let h=!Ce()||t==="fixed";i?h||(c=-r.offsetLeft,d=-r.offsetTop):(a=r.width,l=r.height,h&&(c=r.offsetLeft,d=r.offsetTop))}if(ke(s)<=0){let h=s.ownerDocument,p=h.body,b=getComputedStyle(p),v=h.compatMode==="CSS1Compat"&&parseFloat(b.marginLeft)+parseFloat(b.marginRight)||0,w=Math.abs(s.clientWidth-p.clientWidth-v),m=getComputedStyle(s).scrollbarGutter==="stable both-edges"?w/2:w;m<=bs&&(a-=m)}return{width:a,height:l,x:c,y:d}}function ys(n,t){let e=Pt(n,!0,t==="fixed"),i=e.top+n.clientTop,o=e.left+n.clientLeft,s=ee(n),r=n.clientWidth*s.x,a=n.clientHeight*s.y,l=o*s.x,c=i*s.y;return{width:r,height:a,x:l,y:c}}function di(n,t,e){let i;if(t==="viewport"||t==="layoutViewport")i=vs(n,e,t);else if(t==="document")i=gs(gt(n));else if(ht(t))i=ys(t,e);else{let o=fi(n);i={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Ht(i)}function ws(n,t){let e=t.get(n);if(e)return e;let i=Jt(n,[],!1).filter(a=>ht(a)&&_t(a)!=="body"),o=null,s=ft(n).position==="fixed",r=s?kt(n):n;for(;ht(r)&&!te(r);){let a=ft(r),l=Ae(r),c=o?o.position:s?"fixed":"";!l&&(c==="fixed"||c==="absolute"&&a.position==="static")?i=i.filter(u=>u!==r):o=a,r=kt(r)}return t.set(n,i),i}function xs(n){let{element:t,boundary:e,rootBoundary:i,strategy:o}=n,r=[...e==="clippingAncestors"?he(t)?[]:ws(t,this._c):[].concat(e),i],a=di(t,r[0],o),l=a.top,c=a.right,d=a.bottom,u=a.left;for(let h=1;h<r.length;h++){let p=di(t,r[h],o);l=ut(p.top,l),c=Ct(p.right,c),d=Ct(p.bottom,d),u=ut(p.left,u)}return{width:c-u,height:d-l,x:u,y:l}}function Es(n){let{width:t,height:e}=hi(n);return{width:t,height:e}}function Ss(n,t,e){let i=yt(t),o=gt(t),s=e==="fixed",r=Pt(n,!0,s,t),a={scrollLeft:0,scrollTop:0},l=mt(0);if((i||!s)&&((_t(t)!=="body"||ue(o))&&(a=fe(t)),i)){let h=Pt(t,!0,s,t);l.x=h.x+t.clientLeft,l.y=h.y+t.clientTop}!i&&o&&(l.x=ke(o));let c=o&&!i&&!s?mi(o,a):mt(0),d=r.left+a.scrollLeft-l.x-c.x,u=r.top+a.scrollTop-l.y-c.y;return{x:d,y:u,width:r.width,height:r.height}}function Je(n){return ft(n).position==="static"}function ui(n,t){if(!yt(n)||ft(n).position==="fixed")return null;if(t)return t(n);let e=n.offsetParent;return gt(n)===e&&(e=e.ownerDocument.body),e}function pi(n,t){let e=st(n);if(he(n))return e;if(!yt(n)){let o=kt(n);for(;o&&!te(o);){if(ht(o)&&!Je(o))return o;o=kt(o)}return e}let i=ui(n,t);for(;i&&ai(i)&&Je(i);)i=ui(i,t);return i&&te(i)&&Je(i)&&!Ae(i)?e:i||li(n)||e}var As=async function(n){let t=this.getOffsetParent||pi,e=this.getDimensions,i=await e(n.floating);return{reference:Ss(n.reference,await t(n.floating),n.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function Cs(n){return ft(n).direction==="rtl"}var Ls={convertOffsetParentRelativeRectToViewportRelativeRect:ms,getDocumentElement:gt,getClippingRect:xs,getOffsetParent:pi,getElementRects:As,getClientRects:ps,getDimensions:Es,getScale:ee,isElement:ht,isRTL:Cs};function gi(n,t){return n.x===t.x&&n.y===t.y&&n.width===t.width&&n.height===t.height}function ks(n,t,e){let i=null,o,s=gt(n);function r(){var d;clearTimeout(o),(d=i)==null||d.disconnect(),i=null}function a(d,u){d===void 0&&(d=!1),u===void 0&&(u=1),r();let h=n.getBoundingClientRect(),{left:p,top:b,width:v,height:w}=h;if(d||t(),!v||!w)return;let m=de(b),g=de(s.clientWidth-(p+v)),x=de(s.clientHeight-(b+w)),C=de(p),L={rootMargin:-m+"px "+-g+"px "+-x+"px "+-C+"px",threshold:ut(0,Ct(1,u))||1},E=!0;function y(X){let z=X[0].intersectionRatio;if(!gi(h,n.getBoundingClientRect()))return a();if(z!==u){if(!E)return a();z?a(!1,z):o=setTimeout(()=>{a(!1,1e-7)},1e3)}E=!1}try{i=new IntersectionObserver(y,{...L,root:s.ownerDocument})}catch{i=new IntersectionObserver(y,L)}i.observe(n)}let l=st(n),c=()=>a(e);return l.addEventListener("resize",c),a(!0),()=>{l.removeEventListener("resize",c),r()}}function bi(n,t,e,i){i===void 0&&(i={});let{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=i,c=tn(n),d=o||s?[...c?Jt(c):[],...t?Jt(t):[]]:[];d.forEach(m=>{o&&m.addEventListener("scroll",e),s&&m.addEventListener("resize",e)});let u=c&&a?ks(c,e,s):null,h=-1,p=null;r&&(p=new ResizeObserver(m=>{let[g]=m;g&&g.target===c&&p&&t&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=p)==null||x.observe(t)})),e()}),c&&!l&&p.observe(c),t&&p.observe(t));let b,v=l?Pt(n):null;l&&w();function w(){let m=Pt(n);v&&!gi(v,m)&&e(),v=m,b=requestAnimationFrame(w)}return e(),()=>{var m;d.forEach(g=>{o&&g.removeEventListener("scroll",e),s&&g.removeEventListener("resize",e)}),u==null||u(),(m=p)==null||m.disconnect(),p=null,l&&cancelAnimationFrame(b)}}var vi=ni;var yi=ii,wi=ei,xi=oi;var Ei=(n,t,e)=>{let i=new Map,o=e??{},s={...Ls,...o.platform,_c:i};return ti(n,t,{...o,platform:s})};function zt(n,t,e={}){let{placement:i="bottom-start",strategy:o="absolute",offset:s=4,flip:r=!0,shift:a=!0,padding:l=8,matchWidth:c=!1}=e,d=[vi(s),...r?[wi({padding:l})]:[],...a?[yi({padding:l})]:[],...c?[xi({apply({rects:h}){Object.assign(t.style,{width:`${h.reference.width}px`})}})]:[]];return t.style.position=o,bi(n,t,async()=>{let h=await Ei(n,t,{placement:i,strategy:o,middleware:d});Object.assign(t.style,{left:`${h.x}px`,top:`${h.y}px`});let p=h.placement.split("-")[0];t.setAttribute("data-side",p)})}var en=class{constructor(n){f(this,"opts");f(this,"buffer","");f(this,"timerId",null);f(this,"timeout");this.opts=n,this.timeout=n.timeout??1e3}handle(n){if(n.length!==1)return!1;this.timerId!==null&&clearTimeout(this.timerId),this.buffer+=n.toLowerCase(),this.timerId=setTimeout(()=>{this.buffer="",this.timerId=null},this.timeout);let t=this.opts.getItemCount();for(let e=0;e<t;e++)if(this.opts.getItemText(e).toLowerCase().startsWith(this.buffer))return this.opts.onMatch(e),!0;return!0}reset(){this.buffer="",this.timerId!==null&&(clearTimeout(this.timerId),this.timerId=null)}};var Si=class extends Y{constructor(){super(...arguments);f(this,"trigger",null);f(this,"content",null);f(this,"valueEl",null);f(this,"items",[]);f(this,"nativeSelect",null);f(this,"hiddenInput",null);f(this,"labelEl",null);f(this,"onLabelClick",t=>{var e;t.target.closest("[data-part=\'trigger\']")||(t.preventDefault(),(e=this.trigger)==null||e.focus())});f(this,"dismiss",null);f(this,"typeahead",null);f(this,"cleanupFloating",null);f(this,"_open",!1);f(this,"_value","");f(this,"highlighted",-1);f(this,"syncing",!1);f(this,"onNativeChange",()=>{this.syncing||this.refresh()});f(this,"onFormReset",()=>setTimeout(()=>this.refresh()));f(this,"onTriggerClick",()=>{this.isDisabled||(this._open?this.close():this.show())});f(this,"onTriggerKeyUp",t=>{t.key===" "&&t.preventDefault()});f(this,"onTriggerKey",t=>{var s,r;if(this.isDisabled)return;let e=this.enabled();if(!this._open){if(t.key==="ArrowDown"||t.key==="ArrowUp"||t.key==="Enter"||t.key===" "||t.altKey&&t.key==="ArrowDown")t.preventDefault(),this.show(),t.key==="ArrowUp"&&e.length&&this.highlight(this.items.indexOf(e[e.length-1]));else if(t.key==="Home"||t.key==="End"){t.preventDefault(),this.show();let a=t.key==="Home"?e[0]:e[e.length-1];a&&this.highlight(this.items.indexOf(a))}else t.key.length===1&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&((s=this.typeahead)==null||s.handle(t.key));return}if(!e.length)return;let i=this.highlighted>=0?e.indexOf(this.items[this.highlighted]):-1,o=a=>{t.preventDefault(),this.highlight(this.items.indexOf(e[a]))};switch(t.key){case"ArrowDown":return o(Math.min(i+1,e.length-1));case"ArrowUp":return t.altKey?(t.preventDefault(),this.highlighted>=0&&this.select(this.items[this.highlighted]),this.close()):o(Math.max(i-1,0));case"Home":return o(0);case"End":return o(e.length-1);case"PageDown":return o(Math.min(i+10,e.length-1));case"PageUp":return o(Math.max(i-10,0));case"Enter":case" ":return t.preventDefault(),this.highlighted>=0&&this.select(this.items[this.highlighted]),this.close();case"Tab":return this.highlighted>=0&&this.select(this.items[this.highlighted]),this.close(!1);default:t.key.length===1&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&((r=this.typeahead)==null||r.handle(t.key))}});f(this,"onListClick",t=>{let e=t.target.closest("[data-part=\'item\']");!e||!this.items.includes(e)||dt(e)||(this.select(e),this.close())});f(this,"onListPointer",t=>{let e=t.target.closest("[data-part=\'item\']");e&&this.items.includes(e)&&!dt(e)&&this.highlight(this.items.indexOf(e))});f(this,"preventBlur",t=>t.preventDefault())}get open(){return this._open}get value(){return this._value}set value(t){let e=this.items.find(i=>i.dataset.value===t);e&&this.select(e,!1)}get isDisabled(){var t;return this.hasAttribute("disabled")||!!((t=this.nativeSelect)!=null&&t.disabled)}refresh(){var i;let t=this.nativeSelect;if(!t)return;let e=this.items.find(o=>o.dataset.value===t.value);e&&this.select(e,!1),(i=this.trigger)==null||i.setAttribute("aria-disabled",String(this.isDisabled))}enabled(){return this.items.filter(t=>!dt(t))}setup(){var a,l;if(this.nativeSelect=Q(this,"select"),this.nativeSelect&&!Q(this,"[data-part=\'trigger\']")&&this.buildFromNative(this.nativeSelect),this.trigger=Q(this,"[data-part=\'trigger\']"),this.content=Q(this,"[data-part=\'content\']"),this.valueEl=Q(this,"[data-part=\'value\']"),!this.trigger||!this.content)return;let{trigger:t,content:e}=this;this.items=At(this,"[data-part=\'item\']");let i=Z("db-select");e.id||(e.id=`${i}-listbox`),e.setAttribute("role","listbox"),e.hidden=!0,t.setAttribute("role","combobox"),t.setAttribute("aria-haspopup","listbox"),t.setAttribute("aria-expanded","false"),t.setAttribute("aria-controls",e.id),t instanceof HTMLButtonElement&&!t.hasAttribute("type")&&(t.type="button"),this.isDisabled&&t.setAttribute("aria-disabled","true"),this.items.forEach((c,d)=>{c.id||(c.id=`${i}-item-${d}`),c.setAttribute("role","option"),c.setAttribute("aria-selected","false")}),At(this,"[data-part=\'group\']").forEach(c=>{c.setAttribute("role","group");let d=c.querySelector("[data-part=\'label\']");d&&(d.id||(d.id=Z("db-select-label")),c.setAttribute("aria-labelledby",d.id))});let o=this.getAttribute("name");o&&!this.nativeSelect&&(this.hiddenInput=document.createElement("input"),this.hiddenInput.type="hidden",this.hiddenInput.name=o,this.hasAttribute("required")&&(this.hiddenInput.required=!0),this.appendChild(this.hiddenInput)),this.typeahead=new en({getItemCount:()=>this.enabled().length,getItemText:c=>{var d,u;return((u=(d=this.enabled()[c])==null?void 0:d.textContent)==null?void 0:u.trim())??""},onMatch:c=>{let d=this.enabled()[c];d&&(this._open?this.highlight(this.items.indexOf(d)):this.select(d))}}),this.dismiss=new Nt(e,{onDismiss:c=>this.close(c!=="outside-press")});let s=((a=this.nativeSelect)==null?void 0:a.value)??this.getAttribute("default-value")??"",r=this.items.find(c=>c.dataset.value===s);r&&dt(r)?this.valueEl&&(this.valueEl.textContent=((l=r.textContent)==null?void 0:l.trim())??"",this.valueEl.setAttribute("data-placeholder","")):r&&this.select(r,!1),this.setState("closed")}buildFromNative(t){let e=document.createElement("button");e.type="button",e.setAttribute("data-part","trigger"),e.className="db-select-trigger";let i=t.getAttribute("aria-label"),o=t.getAttribute("aria-labelledby"),s=!o&&t.id?document.querySelector(`label[for="${CSS.escape(t.id)}"]`):null;s&&(o=s.id||(s.id=Z("db-select-for"))),i&&e.setAttribute("aria-label",i),o&&e.setAttribute("aria-labelledby",o);let r=t.closest("label");if(r){if(this.labelEl=r,!i&&!o){let u=Array.from(r.childNodes).filter(h=>!(h instanceof Element&&(h===t||h.contains(t)||h.localName==="db-select"))).map(h=>h.textContent??"").join(" ").replace(/\\s+/g," ").trim();u&&e.setAttribute("aria-label",u)}}else s&&(this.labelEl=s);let a=document.createElement("span");a.setAttribute("data-part","value"),a.className="db-select-value";let l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("viewBox","0 0 24 24"),l.setAttribute("aria-hidden","true"),l.setAttribute("class","db-select-chevron"),l.innerHTML=\'<path d="m6 9 6 6 6-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\',e.append(a,l);let c=document.createElement("div");c.setAttribute("data-part","content"),c.className="db-select-content";let d=(u,h)=>{let p=document.createElement("div");p.setAttribute("data-part","item"),p.className="db-select-item",p.dataset.value=u.value;for(let[b,v]of Object.entries(u.dataset))v!=null&&(p.dataset[b]=v);u.disabled&&p.setAttribute("aria-disabled","true"),p.textContent=u.textContent??u.value,h.appendChild(p)};for(let u of Array.from(t.children))if(u instanceof HTMLOptGroupElement){let h=document.createElement("div");h.setAttribute("data-part","group");let p=document.createElement("div");p.setAttribute("data-part","label"),p.className="db-select-label",p.textContent=u.label,h.appendChild(p);for(let b of Array.from(u.children))b instanceof HTMLOptionElement&&d(b,h);c.appendChild(h)}else u instanceof HTMLOptionElement&&d(u,c);t.hidden=!0,t.tabIndex=-1,t.setAttribute("aria-hidden","true"),this.append(e,c)}connect(){var t,e,i,o,s,r,a,l,c,d;(t=this.trigger)==null||t.addEventListener("click",this.onTriggerClick),(e=this.trigger)==null||e.addEventListener("keydown",this.onTriggerKey),(i=this.trigger)==null||i.addEventListener("keyup",this.onTriggerKeyUp),(o=this.nativeSelect)==null||o.addEventListener("change",this.onNativeChange),(r=(s=this.nativeSelect)==null?void 0:s.form)==null||r.addEventListener("reset",this.onFormReset),(a=this.labelEl)==null||a.addEventListener("click",this.onLabelClick),(l=this.content)==null||l.addEventListener("click",this.onListClick),(c=this.content)==null||c.addEventListener("pointermove",this.onListPointer),(d=this.content)==null||d.addEventListener("mousedown",this.preventBlur)}disconnect(){var t,e,i,o,s,r,a,l,c,d;(t=this.trigger)==null||t.removeEventListener("click",this.onTriggerClick),(e=this.trigger)==null||e.removeEventListener("keydown",this.onTriggerKey),(i=this.trigger)==null||i.removeEventListener("keyup",this.onTriggerKeyUp),(o=this.nativeSelect)==null||o.removeEventListener("change",this.onNativeChange),(r=(s=this.nativeSelect)==null?void 0:s.form)==null||r.removeEventListener("reset",this.onFormReset),(a=this.labelEl)==null||a.removeEventListener("click",this.onLabelClick),(l=this.content)==null||l.removeEventListener("click",this.onListClick),(c=this.content)==null||c.removeEventListener("pointermove",this.onListPointer),(d=this.content)==null||d.removeEventListener("mousedown",this.preventBlur),this._open&&this.close(!1)}setState(t){var e;this.setAttribute("data-state",t),(e=this.content)==null||e.setAttribute("data-state",t)}show(){var r,a;let{trigger:t,content:e}=this;if(!t||!e||this._open)return;this._open=!0;let i=Yt(e);this.setState("open"),t.setAttribute("aria-expanded","true"),this.cleanupFloating=zt(t,e,{placement:"bottom-start",offset:4,matchWidth:!this.hasAttribute("auto-width"),strategy:i==="top-layer"?"fixed":"absolute"});let s=this.items.find(l=>l.dataset.value===this._value&&!dt(l))??this.enabled()[0];s&&this.highlight(this.items.indexOf(s)),(r=this.dismiss)==null||r.activate(),(a=this.typeahead)==null||a.reset(),t.focus()}close(t=!0){var o,s,r;let{trigger:e,content:i}=this;!e||!i||!this._open||(this._open=!1,(o=this.dismiss)==null||o.deactivate(),(s=this.cleanupFloating)==null||s.call(this),this.cleanupFloating=null,Gt(i),this.setState("closed"),e.setAttribute("aria-expanded","false"),e.removeAttribute("aria-activedescendant"),this.items.forEach(a=>a.removeAttribute("data-highlighted")),this.highlighted=-1,(r=this.typeahead)==null||r.reset(),t&&e.focus())}highlight(t){var r;let e=this.items[t],i=this.content;if(!e||!i||!this.trigger)return;this.highlighted>=0&&((r=this.items[this.highlighted])==null||r.removeAttribute("data-highlighted")),this.highlighted=t,e.setAttribute("data-highlighted",""),this.trigger.setAttribute("aria-activedescendant",e.id);let o=e.offsetTop,s=o+e.offsetHeight;o<i.scrollTop?i.scrollTop=o:s>i.scrollTop+i.clientHeight&&(i.scrollTop=s-i.clientHeight)}select(t,e=!0){var s;if(dt(t))return;let i=t.dataset.value??"",o=i!==this._value;this._value=i;for(let r of this.items){let a=r===t;r.setAttribute("aria-selected",String(a)),a?r.setAttribute("data-state","checked"):r.removeAttribute("data-state")}if(this.valueEl&&(this.valueEl.textContent=((s=t.textContent)==null?void 0:s.trim())??"",this.valueEl.removeAttribute("data-placeholder")),this.hiddenInput&&(this.hiddenInput.value=i),!e||!o){this.nativeSelect&&(this.nativeSelect.value=i);return}if(this.nativeSelect){this.nativeSelect.value=i,this.syncing=!0;try{this.nativeSelect.dispatchEvent(new Event("input",{bubbles:!0})),this.nativeSelect.dispatchEvent(new Event("change",{bubbles:!0}))}finally{this.syncing=!1}}this.dispatchEvent(new CustomEvent("db-select:change",{detail:{value:i},bubbles:!0}))}};G();customElements.get("db-select")||customElements.define("db-select",Si);var Ai=class extends Y{constructor(){super(...arguments);f(this,"trigger",null);f(this,"content",null);f(this,"dismiss",null);f(this,"cleanupFloating",null);f(this,"_open",!1);f(this,"onTriggerClick",()=>this.toggle());f(this,"onContentClick",t=>{let e=t.target.closest("[data-part=\'close\']");e&&e.closest("db-popover")===this&&this.close("close-press")})}get open(){return this._open}setup(){var e;if(this.trigger=Wt(Q(this,"[data-part=\'trigger\']")),this.content=Q(this,"[data-part=\'content\']"),!this.trigger||!this.content)return;let t=this.content;t.id||(t.id=Z("db-popover")),t.hasAttribute("role")||t.setAttribute("role","dialog"),!t.hasAttribute("aria-labelledby")&&!t.hasAttribute("aria-label")&&((e=this.trigger).id||(e.id=Z("db-popover-trigger")),t.setAttribute("aria-labelledby",this.trigger.id)),t.hidden=!0,this.trigger.setAttribute("aria-haspopup","dialog"),this.trigger.setAttribute("aria-controls",t.id),this.trigger.setAttribute("aria-expanded","false"),this.setState("closed"),this.dismiss=new Nt(t,{onDismiss:i=>this.close(i)})}connect(){var t,e;(t=this.trigger)==null||t.addEventListener("click",this.onTriggerClick),(e=this.content)==null||e.addEventListener("click",this.onContentClick)}disconnect(){var t,e;(t=this.trigger)==null||t.removeEventListener("click",this.onTriggerClick),(e=this.content)==null||e.removeEventListener("click",this.onContentClick),this._open&&this.close("api")}setState(t){var e;this.setAttribute("data-state",t),(e=this.content)==null||e.setAttribute("data-state",t)}placement(){var o,s;let t=this.getAttribute("placement");if(t)return t;let e=((o=this.content)==null?void 0:o.dataset.side)||"bottom",i=((s=this.content)==null?void 0:s.dataset.align)||"center";return`${e}${i!=="center"?`-${i}`:""}`}toggle(){this._open?this.close("trigger-press"):this.show()}show(){var o;let{trigger:t,content:e}=this;if(!t||!e||this._open)return;this._open=!0;let i=Yt(e);this.setState("open"),t.setAttribute("aria-expanded","true"),this.cleanupFloating=zt(t,e,{placement:this.placement(),offset:Number(this.getAttribute("offset")??8),strategy:i==="top-layer"?"fixed":"absolute"}),(o=this.dismiss)==null||o.activate(),this.hasAttribute("no-autofocus")||requestAnimationFrame(()=>{this._open&&(Tn(e)[0]??e).focus({preventScroll:!0})}),this.dispatchEvent(new CustomEvent("db-popover:open",{bubbles:!0}))}close(t="api"){var s,r;let{trigger:e,content:i}=this;if(!e||!i||!this._open)return;this._open=!1,(s=this.dismiss)==null||s.deactivate(),(r=this.cleanupFloating)==null||r.call(this),this.cleanupFloating=null;let o=i.contains(document.activeElement);Gt(i),this.setState("closed"),e.setAttribute("aria-expanded","false"),t!=="outside-press"&&(o||t==="escape-key"||t==="close-press")&&e.focus(),this.dispatchEvent(new CustomEvent("db-popover:close",{detail:{reason:t},bubbles:!0}))}};G();customElements.get("db-popover")||customElements.define("db-popover",Ai);var Ci="db-announcement-closed:";var Li=class extends Y{constructor(){super(...arguments);f(this,"closeButton",null);f(this,"onClose",()=>this.close())}setup(){var t;this.closeButton=[...this.querySelectorAll("[data-part=\'close\']")].find(e=>e.closest("db-announcement")===this)??null,this.closeButton&&!this.closeButton.hasAttribute("aria-label")&&!((t=this.closeButton.textContent)!=null&&t.trim())&&this.closeButton.setAttribute("aria-label","Close announcement")}connect(){var t;(t=this.closeButton)==null||t.addEventListener("click",this.onClose)}disconnect(){var t;(t=this.closeButton)==null||t.removeEventListener("click",this.onClose)}close(){var i;let t=this.getAttribute("announcement-id")??"";try{t&&localStorage.setItem(Ci+t,"1")}catch{}let e=this.contains(document.activeElement);if(document.documentElement.setAttribute("data-announcement-closed",""),this.hidden=!0,this.style.display="none",e){let o=document.querySelector("main, [role=\'main\']");o?(o.hasAttribute("tabindex")||o.setAttribute("tabindex","-1"),o.focus({preventScroll:!0})):(i=document.activeElement)==null||i.blur()}this.dispatchEvent(new CustomEvent("db-announcement:close",{bubbles:!0,detail:{id:t}}))}};G();customElements.get("db-announcement")||customElements.define("db-announcement",Li);var ki=class extends Y{constructor(){super(...arguments);f(this,"trigger",null);f(this,"content",null);f(this,"cleanupFloating",null);f(this,"showTimer",null);f(this,"hideTimer",null);f(this,"_open",!1);f(this,"onEnter",t=>{t.pointerType!=="touch"&&(this.clearTimers(),this._open||(this.showTimer=setTimeout(()=>this.show(),this.num("delay",200))))});f(this,"onLeave",t=>{t.pointerType!=="touch"&&(this.clearTimers(),this.hideTimer=setTimeout(()=>this.hide(),this.num("close-delay",100)))});f(this,"onContentEnter",()=>this.clearTimers());f(this,"onFocus",()=>{let t=!0;try{t=this.trigger.matches(":focus-visible")}catch{}t&&(this.clearTimers(),this.show())});f(this,"onBlur",()=>this.hide());f(this,"onPress",()=>this.hide());f(this,"onKey",t=>{t.key==="Escape"&&this._open&&(t.preventDefault(),t.stopImmediatePropagation(),this.hide())})}get open(){return this._open}num(t,e){let i=Number(this.getAttribute(t));return Number.isFinite(i)&&this.hasAttribute(t)?i:e}setup(){var e;if(this.trigger=Wt(Q(this,"[data-part=\'trigger\']")),this.content=Q(this,"[data-part=\'content\']"),!this.trigger||!this.content)return;(e=this.content).id||(e.id=Z("db-tooltip")),this.content.setAttribute("role","tooltip"),this.content.hidden=!0;let t=(this.trigger.getAttribute("aria-describedby")??"").split(/\\s+/).filter(Boolean);t.includes(this.content.id)||this.trigger.setAttribute("aria-describedby",[...t,this.content.id].join(" ")),this.setState("closed")}connect(){let{trigger:t,content:e}=this;!t||!e||(t.addEventListener("pointerenter",this.onEnter),t.addEventListener("pointerleave",this.onLeave),t.addEventListener("focus",this.onFocus),t.addEventListener("blur",this.onBlur),t.addEventListener("pointerdown",this.onPress),e.addEventListener("pointerenter",this.onContentEnter),e.addEventListener("pointerleave",this.onLeave))}disconnect(){let{trigger:t,content:e}=this;t==null||t.removeEventListener("pointerenter",this.onEnter),t==null||t.removeEventListener("pointerleave",this.onLeave),t==null||t.removeEventListener("focus",this.onFocus),t==null||t.removeEventListener("blur",this.onBlur),t==null||t.removeEventListener("pointerdown",this.onPress),e==null||e.removeEventListener("pointerenter",this.onContentEnter),e==null||e.removeEventListener("pointerleave",this.onLeave),this.hide()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.showTimer=this.hideTimer=null}setState(t){var e;this.setAttribute("data-state",t),(e=this.content)==null||e.setAttribute("data-state",t)}show(){let{trigger:t,content:e}=this;if(!t||!e||this._open)return;this._open=!0,this.clearTimers();let i=Yt(e);this.setState("open"),this.cleanupFloating=zt(t,e,{placement:this.getAttribute("placement")||e.dataset.side||"top",offset:8,strategy:i==="top-layer"?"fixed":"absolute"}),document.addEventListener("keydown",this.onKey,!0),this.dispatchEvent(new CustomEvent("db-tooltip:open",{bubbles:!0}))}hide(){var t;this.clearTimers(),!(!this._open||!this.content)&&(this._open=!1,document.removeEventListener("keydown",this.onKey,!0),(t=this.cleanupFloating)==null||t.call(this),this.cleanupFloating=null,Gt(this.content),this.setState("closed"),this.dispatchEvent(new CustomEvent("db-tooltip:close",{bubbles:!0})))}};G();customElements.get("db-tooltip")||customElements.define("db-tooltip",ki);var Ti="sidebar_state",Ts="b",Os=768,me=new WeakMap;function Ds(n){try{return localStorage.getItem(n)}catch{return null}}function Rs(n,t){try{localStorage.setItem(n,t)}catch{}}function sn(n){if(me.has(n))return;let t=n.querySelector("[data-component=\'sidebar\']");if(!t)return;let e=t.dataset.collapsible||"offcanvas",i=t.dataset.side||"left",o=t.dataset.defaultOpen!=="false",s=Ds(Ti),r=s!==null?s==="true":o,a=t.querySelector("[data-sidebar-desktop]"),l=t.querySelector("[data-sidebar-mobile]"),c=t.querySelector("[data-sidebar-mobile-backdrop]"),d=window.matchMedia(`(max-width: ${Os-1}px)`),u={provider:n,sidebar:t,desktopSidebar:a,mobileSidebar:l,mobileBackdrop:c,collapsible:e,side:i,open:r,openMobile:!1,isMobile:d.matches,mediaQuery:d};me.set(n,u),Oi(u);let h=v=>{u.isMobile=v.matches,!v.matches&&u.openMobile&&Tt(n)};d.addEventListener("change",h);let p=v=>{v.key===Ts&&(v.metaKey||v.ctrlKey)?(v.preventDefault(),nn(n)):v.key==="Escape"&&u.openMobile&&(v.preventDefault(),Tt(n))};document.addEventListener("keydown",p),Ms(n,u),c&&c.addEventListener("click",()=>{Tt(n)});let b=t.querySelector("[data-part=\'rail\']");b&&b.addEventListener("click",()=>{nn(n)})}function Ms(n,t){n.querySelectorAll("[data-part=\'sidebar-trigger\']").forEach(e=>{e.addEventListener("click",()=>{nn(n)})})}function nn(n){let t=me.get(n);t&&(t.isMobile?t.openMobile?Tt(n):Is(n):(t.open=!t.open,Oi(t),Rs(Ti,String(t.open))))}function Oi(n){let t=n.open?"expanded":"collapsed";n.provider.setAttribute("data-state",t),n.sidebar.setAttribute("data-state",t),n.desktopSidebar&&(n.desktopSidebar.setAttribute("data-state",t),n.open?n.desktopSidebar.setAttribute("data-collapsible",""):n.desktopSidebar.setAttribute("data-collapsible",n.collapsible))}function Is(n){var i;let t=me.get(n);if(!t||t.openMobile||!t.mobileSidebar)return;t.openMobile=!0;let e=(i=t.desktopSidebar)==null?void 0:i.querySelector("[data-sidebar=\'sidebar-inner\']");if(e)for(;e.firstChild;)t.mobileSidebar.appendChild(e.firstChild);t.mobileSidebar.hidden=!1,t.mobileSidebar.setAttribute("data-state","open"),t.mobileBackdrop&&(t.mobileBackdrop.hidden=!1),It.activate(),requestAnimationFrame(()=>{var s;let o=(s=t.mobileSidebar)==null?void 0:s.querySelector(\'a, button, [tabindex]:not([tabindex="-1"])\');o==null||o.focus()})}function Tt(n){var o;let t=me.get(n);if(!t||!t.openMobile||!t.mobileSidebar)return;t.openMobile=!1;let e=(o=t.desktopSidebar)==null?void 0:o.querySelector("[data-sidebar=\'sidebar-inner\']");if(e&&t.mobileSidebar)for(;t.mobileSidebar.firstChild;)e.appendChild(t.mobileSidebar.firstChild);t.mobileSidebar.setAttribute("data-state","closed"),t.mobileSidebar.hidden=!0,t.mobileBackdrop&&(t.mobileBackdrop.hidden=!0),It.deactivate();let i=t.provider.querySelector("[data-part=\'sidebar-trigger\']");i==null||i.focus()}function on(){document.querySelectorAll("[data-component=\'sidebar-provider\']").forEach(n=>{sn(n)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",on):on();document.addEventListener("astro:page-load",on);var Di=/^[a-z][a-z0-9_-]{0,63}$/,Te={docs:"docs.js",shard:n=>`t-${n}.js`,fragment:n=>`f-${n}.js`},Oe={docs:"docs",shard:n=>n,fragment:n=>`frag:${n}`};var Ns={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},Hs={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},Fs="[^aeiou]",an="[aeiouy]",Ot="("+Fs+"[^aeiouy]*)",Re="("+an+"[aeiou]*)",rn=new RegExp("^"+Ot+"?"+Re+Ot),_s=new RegExp("^"+Ot+"?"+Re+Ot+Re+"?$"),De=new RegExp("^"+Ot+"?("+Re+Ot+"){2,}"),Ri=new RegExp("^"+Ot+"?"+an),Mi=new RegExp("^"+Ot+an+"[^aeiouwxy]$"),Ps=/ll$/,zs=/^(.+?)e$/,$s=/^(.+?)y$/,Bs=/^(.+?(s|t))(ion)$/,qs=/^(.+?)(ed|ing)$/,Ks=/(at|bl|iz)$/,Vs=/^(.+?)eed$/,js=/^.+?[^s]s$/,Us=/^.+?(ss|i)es$/,Ws=/([^aeiouylsz])\\1$/,Ys=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,Gs=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,Xs=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;function Ii(n){let t=String(n).toLowerCase();if(t.length<3)return t;let e=!1;t.codePointAt(0)===121&&(e=!0,t="Y"+t.slice(1)),Us.test(t)?t=t.slice(0,-2):js.test(t)&&(t=t.slice(0,-1));let i;return(i=Vs.exec(t))?rn.test(i[1])&&(t=t.slice(0,-1)):(i=qs.exec(t))&&Ri.test(i[1])&&(t=i[1],Ks.test(t)?t+="e":Ws.test(t)?t=t.slice(0,-1):Mi.test(t)&&(t+="e")),(i=$s.exec(t))&&Ri.test(i[1])&&(t=i[1]+"i"),(i=Ys.exec(t))&&rn.test(i[1])&&(t=i[1]+Ns[i[2]]),(i=Gs.exec(t))&&rn.test(i[1])&&(t=i[1]+Hs[i[2]]),(i=Xs.exec(t))?De.test(i[1])&&(t=i[1]):(i=Bs.exec(t))&&De.test(i[1])&&(t=i[1]),(i=zs.exec(t))&&(De.test(i[1])||_s.test(i[1])&&!Mi.test(i[1]))&&(t=i[1]),Ps.test(t)&&De.test(t)&&(t=t.slice(0,-1)),e&&(t="y"+t.slice(1)),t}var Ni=new Set("a an and are as at be by for from has have in is it its of on or that the this to was were will with you your can not".split(" ")),Zs=/[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}]/u,pe;function Qs(n){if(pe===void 0)try{pe=typeof Intl<"u"&&"Segmenter"in Intl?new Intl.Segmenter(void 0,{granularity:"word"}):null}catch{pe=null}if(pe)return[...pe.segment(n)].filter(i=>i.isWordLike).map(i=>i.segment);let t=[...n];if(t.length<2)return t;let e=[];for(let i=0;i<t.length-1;i++)e.push(t[i]+t[i+1]);return e}function $t(n){let t=[];for(let e of n.toLowerCase().normalize("NFKD").replace(/[\u0300-\u036F]/g,"").normalize("NFC").matchAll(/[\\p{L}\\p{N}][\\p{L}\\p{N}_.-]*[\\p{L}\\p{N}]|[\\p{L}\\p{N}]/gu)){let i=e[0],o=i.split(/[._-]+/).filter(Boolean);if(o.length>1&&t.push(i),o.length>1&&!/[._]/.test(i)){let s=o.join("");s.length>=3&&!Ni.has(s)&&t.push(s)}for(let s of o)Zs.test(s)?t.push(...Qs(s)):s.length>=2&&!Ni.has(s)&&t.push(s)}return t}function ln(n,t){let e="";for(let i of n.slice(0,t))e+=/[a-z0-9]/.test(i)?i:`_${i.codePointAt(0).toString(16)}_`;return e}function ge(n){if(!(!n||!/^en(-|$)/i.test(n)))return t=>/^[a-z]{3,}$/.test(t)?Ii(t):t}function Bt(n,t={}){var w,m;let e=[],i=[],o=[],s=!1,r={tag:[],section:[]},a={tag:[],section:[]},l=Object.create(null),c=Object.create(null),d=["tag","section",...new Set((t.facets??[]).filter(g=>Di.test(g)&&g!=="tag"&&g!=="section"))],u=new RegExp(`(?<!\\\\S)(-?)(${d.join("|")}):(?:"([^"]*)"?|(?!\\\\/\\\\/)(\\\\S*))|(-?)"([^"]*)"?|(\\\\S+)`,"gi"),h=[...n.matchAll(u)].map(g=>{var x;return{facetNeg:g[1]==="-",facet:(x=g[2])==null?void 0:x.toLowerCase(),value:g[3]??g[4],neg:g[5],phrase:g[6],word:g[7]}}),p=!1,b=!1;for(let[g,x]of h.entries()){if(x.facet){let O=hn(x.value??"");if(!O)continue;x.facet==="tag"||x.facet==="section"?(x.facetNeg?a:r)[x.facet].push(O):((w=x.facetNeg?c:l)[m=x.facet]??(w[m]=[])).push(O);continue}let C=x.word;if(C==="OR"){b=e.length>0,s=!0;continue}if(C==="NOT"){p=!0,s=!0;continue}if(C==="AND"){s=!0;continue}let I=x.phrase!==void 0,L=p||x.neg==="-"||(C==null?void 0:C.startsWith("-"))&&C.length>1;p=!1;let E=I?x.phrase:L&&(C!=null&&C.startsWith("-"))?C.slice(1):C,y=[...new Set($t(E))];if(!y.length){b=!1;continue}if(L){i.push(I?y:[y[0]]),s=!0,b=!1;continue}if(I){b=!1,s=!0,y.length>1&&o.push($t(E).join(" "));for(let O of y)e.push({terms:[O],prefix:!1,exact:!0});continue}let X=g===h.length-1&&!/\\s$/.test(n);if(b){e[e.length-1].terms.push(y[0]);for(let O of y.slice(1))e.push({terms:[O],prefix:!1});b=!1;continue}let z=y[0],U=/[._-]/.test(z),S=z.replace(/-/g,"");for(let[O,P]of y.entries())e.push({terms:[P],prefix:X&&P.length>=2&&(O===y.length-1||U&&(P===z||P===S))})}let v=[...new Set(e.flatMap(g=>g.terms))];return{groups:e,not:i,phrases:o,strict:s,highlight:v,filters:r,notFilters:a,...Object.keys(l).length?{facets:l}:{},...Object.keys(c).length?{notFacets:c}:{}}}async function Js(n,t){let e=await t.meta(),i=typeof n=="string"?Bt(n,{facets:fn([e])}):n,o=await zi(i,e,t),s=qi(i,e);if(!i.groups.length)return $i(e,o,s);let r=[];for(let l of i.groups)r.push(await nr(l,e,t));let a=dn(r,e,o,s,"and").sort(Me);return a.length||i.strict?a:dn(r,e,o,s,"or").sort(Me)}var Me=(n,t)=>t.score-n.score;async function zi(n,t,e){let i=new Set;for(let o of n.not){let s;for(let r of o){let[a]=Bi(r,t),l=a?await e.shard(a):void 0,c=l&&Object.hasOwn(l,r)?l[r]:[],d=new Set;for(let u=0;u<c.length;u+=2)(!s||s.has(c[u]))&&d.add(c[u]);s=d}for(let r of s??[])i.add(r)}return i}function $i(n,t,e){if(!e)return[];let i=[];return n.docs.forEach(([o,s,r],a)=>e(a)&&!t.has(a)&&i.push({id:a,title:o,url:s,section:n.sections[r]??"",score:1})),i}function dn(n,t,e,i,o){let s=new Map,r=new Map;for(let l of n)for(let[c,d]of l)s.set(c,(s.get(c)??0)+d),r.set(c,(r.get(c)??0)+1);let a=[];for(let[l,c]of s){if(e.has(l)||i&&!i(l)||o==="and"&&r.get(l)!==n.length)continue;let[d,u,h]=t.docs[l];a.push({id:l,title:d,url:u,section:t.sections[h]??"",score:c*(r.get(l)/n.length)})}return a}var wt={prefix:.6,stem:.4,titleAll:1.5,titleExact:2,headingAll:1.4,headingExact:1.8,phrase:1.5,typo:.3};function tr(n,t){if(n===t)return!1;if(n.length===t.length){let s=[];for(let r=0;r<n.length&&s.length<=2;r++)n[r]!==t[r]&&s.push(r);return s.length===1?!0:s.length===2&&s[1]===s[0]+1&&n[s[0]]===t[s[1]]&&n[s[1]]===t[s[0]]}let[e,i]=n.length<t.length?[n,t]:[t,n];if(i.length-e.length!==1)return!1;let o=0;for(;o<e.length&&e[o]===i[o];)o++;return e.slice(o)===i.slice(o+1)}function Bi(n,t,e=!1){let i=er(t);for(let s=Math.min(n.length,Hi);s>=1;s--){let r=ln(n,s);if(i.has(r))return!e||s<n.length?[r]:[r,...t.shards.filter(a=>a.length>r.length&&a.startsWith(r)).slice(0,10)]}let o=ln(n,Math.min(n.length,Hi));return e?t.shards.filter(s=>s.startsWith(o)).slice(0,10):[]}var Hi=3,Fi=new WeakMap;function er(n){let t=Fi.get(n);return t||Fi.set(n,t=new Set(n.shards)),t}function hn(n){return n.replace(/"/g,"").trim().toLowerCase()}function qi(n,t){let{tag:e,section:i}=n.filters,o=n.notFilters??{tag:[],section:[]},s=Object.entries(n.facets??{}).filter(([,m])=>m.length),r=Object.entries(n.notFacets??{}).filter(([,m])=>m.length);if(!e.length&&!i.length&&!o.tag.length&&!o.section.length&&!s.length&&!r.length)return;let a=(m,g)=>new Set(m.flatMap((x,C)=>g.includes(hn(x))?[C]:[])),l=a(t.sections,i),c=a(t.tags??[],e),d=a(t.sections,o.section),u=a(t.tags??[],o.tag),h=m=>(t.facets??[]).findIndex(g=>g.name===m),p=m=>m.map(([g,x])=>{let C=h(g);return[C,C<0?new Set:a(t.facets[C].values,x)]}),b=p(s),v=p(r).filter(([m])=>m>=0),w=(m,[g,x])=>{var C;return g>=0&&(((C=m[4])==null?void 0:C[g])??[]).some(I=>x.has(I))};return m=>{let g=t.docs[m],x=g[3]??[];if(i.length&&!l.has(g[2])||e.length&&!x.some(C=>c.has(C))||d.has(g[2])||x.some(C=>u.has(C)))return!1;for(let C of b)if(!w(g,C))return!1;for(let C of v)if(w(g,C))return!1;return!0}}function fn(n){return[...new Set(n.flatMap(t=>((t==null?void 0:t.facets)??[]).map(e=>e.name)))]}function Ki(n,t){let e=Object.create(null),i=new Map,o=(s,r)=>{let a=`${s}\\0${hn(r)}`,l=i.get(a);l===void 0&&i.set(a,l=r);let c=e[s]??(e[s]=Object.create(null));c[l]=(c[l]??0)+1};for(let s of n){let r=typeof t=="function"?t(s):t,a=r==null?void 0:r.docs[s.id];if(a){r.sections[a[2]]&&o("section",r.sections[a[2]]);for(let l of new Set(a[3]??[]))r.tags[l]!==void 0&&o("tag",r.tags[l]);(a[4]??[]).forEach((l,c)=>{var u;let d=(u=r.facets)==null?void 0:u[c];if(d)for(let h of new Set(l))d.values[h]!==void 0&&o(d.name,d.values[h])})}}return e}async function nr(n,t,e){let i=await ji(n,t,e,!0);return n.corrected=i.corrected.length?i.corrected:void 0,Vi(i,un(t.count,i.docs.size))}function un(n,t){return Math.log(1+(n-t+.5)/(t+.5))}function Vi(n,t){let e=new Map;for(let[i,o]of n.lists)for(let s=0;s<i.length;s+=2)e.set(i[s],Math.max(e.get(i[s])??0,i[s+1]*o*t));return e}async function ji(n,t,e,i){let o=ge(t.lang),s=new Map,r=new Map;for(let d of n.terms)for(let u of Bi(d,t,n.prefix)){let h=await e.shard(u);if(!h)continue;let p=(m,g)=>{g>(s.get(m)??0)&&(s.set(m,g),r.set(m,h))};Object.hasOwn(h,d)&&p(d,1);let b=o==null?void 0:o(d),v=b?b.slice(0,Math.max(3,b.length-1)):void 0,w=0;for(let m in h)m!==d&&(n.prefix&&m.startsWith(d)&&w++<200&&p(m,wt.prefix),b&&v&&m.startsWith(v)&&o(m)===b&&p(m,wt.stem));if(i&&!s.size&&!n.exact&&d.length>=4&&!/[._-]/.test(d))for(let m in h)Math.abs(m.length-d.length)<=1&&tr(d,m)&&p(m,wt.typo)}let a=[...s].filter(([,d])=>d===wt.typo).map(([d])=>d),l=[...s].map(([d,u])=>[r.get(d)[d],u]),c=new Set;for(let[d]of l)for(let u=0;u<d.length;u+=2)c.add(d[u]);return{lists:l,docs:c,corrected:a}}var Ui=n=>typeof n=="function"?n:()=>n;async function Wi(n,t){let e=Ui(t),i=new Map;for(let o of n){let s=e(o),r=i.get(s);r||i.set(s,r=[]),r.push(o)}await Promise.all([...i].map(async([o,s])=>{var c;let r=await o.meta(),a=[...new Set(s.map(d=>Math.floor(d.id/r.block)))],l=new Map;await Promise.all(a.map(async d=>{try{l.set(d,await o.fragment(d))}catch{l.set(d,void 0)}}));for(let d of s)d.fragment??(d.fragment=(c=l.get(Math.floor(d.id/r.block)))==null?void 0:c[d.id%r.block])}))}async function Yi(n){let t=Ui(n),e=new Map;return async i=>{let o=t(i),s=e.get(o);if(!s){let r=ge((await o.meta()).lang);s=(a,l)=>l.terms.some(c=>a===c||l.prefix&&a.startsWith(c)||r!==void 0&&r(a)===r(c))||(l.corrected??[]).includes(a),e.set(o,s)}return s}}async function Gi(n,t,e,i=10){let o=t.slice(0,i);await Wi(o,e);let s=n.groups,r=await Yi(e);for(let a of o){let l=await r(a),[c,d]=a.fragment??["",[]],u=$t(a.title),h=1;s.length&&s.every(b=>u.some(v=>l(v,b)))&&(h=_i(u,s,l)?wt.titleExact:wt.titleAll);let p=[];for(let[b,v]of d){let w=$t(b);!s.length||!s.every(m=>w.some(g=>l(g,m)))||(p.push([b,v]),h=Math.max(h,_i(w,s,l)?wt.headingExact:wt.headingAll))}if(a.sections=p.slice(0,3),n.phrases.length){let b=[a.title,c,...d.map(([v])=>v)].map(v=>$t(v).join(" ")).join(" \\0 ");n.phrases.every(v=>b.includes(v))&&(h*=wt.phrase)}a.score*=h}return o.sort((a,l)=>l.score-a.score),[...o,...t.slice(i)]}async function Xi(n,t,e){await Wi(t,e);let i=await Yi(e);for(let o of t){if(!o.fragment||o.sections)continue;let s=await i(o);o.sections=o.fragment[1].filter(([r])=>{let a=$t(r);return n.groups.length>0&&n.groups.every(l=>a.some(c=>s(c,l)))}).slice(0,3)}}function _i(n,t,e){return n.every(i=>t.some(o=>e(i,o)))&&t.every(i=>n.some(o=>e(o,i)))}async function Zi(n,t,e=10){let i=await t.meta(),o=Bt(n,{facets:fn([i])}),s=ge(i.lang);s&&(o.highlight=[...new Set([...o.highlight,...o.highlight.map(s).filter(a=>a.length>=3)])]);let r=await Js(o,t);return o.highlight=[...new Set([...o.highlight,...o.groups.flatMap(a=>a.corrected??[])])],{parsed:o,results:await Gi(o,r,t,e),facets:Ki(r,i)}}async function ir(n){return Promise.all(n.map(t=>t.data.meta().then(e=>e&&e.format===5?e:void 0,()=>{})))}async function or(n,t,e,i){let o=e,s=new Set,r=[],a=async(L,E)=>{if(!s.has(L))try{return await E()}catch(y){s.add(L),r.push({source:L,error:y});return}},l=t.flatMap((L,E)=>e[E]?[E]:[]),c=[];await Promise.all(l.map(async L=>c[L]=await a(L,()=>zi(n,o[L],t[L].data))??new Set));let d=[],u=[],h=(L,E)=>Promise.all(l.map(y=>a(y,()=>ji(L,o[y],t[y].data,E)))),p=L=>L.every((E,y)=>!(E!=null&&E.docs.size)||s.has(l[y]));for(let L of n.groups){let E=await h(L,!1);u.push(p(E)),u[u.length-1]&&(E=await h(L,!0)),d.push(E)}for(let[L,E]of n.groups.entries())u[L]||!p(d[L])||(E.corrected=void 0,d[L]=await h(E,!0));if(l.length&&l.every(L=>s.has(L)))throw r[0].error;let b=l.filter(L=>!s.has(L)),v=[];for(let L of b)v[L]=qi(n,o[L]);let w=(L,E)=>L.map(y=>({...y,source:E,score:y.score*sr(t[E])})),m=L=>({results:rr(L,t),failed:[...s].sort((E,y)=>E-y),errors:r});if(!n.groups.length)return m(b.flatMap(L=>w($i(o[L],c[L],v[L]),L)).sort(Me));let g=t.map(()=>[]),x=b.reduce((L,E)=>L+o[E].count,0);n.groups.forEach((L,E)=>{let y=d[E],X=l.flatMap((S,O)=>s.has(S)?[]:[[S,y[O]]]),z=[...new Set(X.flatMap(([,S])=>S.corrected))];L.corrected=z.length?z:void 0;let U=X.reduce((S,[,O])=>S+O.docs.size,0);for(let[S,O]of X)g[S].push(Vi(O,i.stats==="own"?un(o[S].count,O.docs.size):un(x,U)))});let C=L=>b.flatMap(E=>w(dn(g[E],o[E],c[E],v[E],L),E)).sort(Me),I=C("and");return m(I.length||n.strict?I:C("or"))}function sr(n){return typeof n.boost=="number"&&Number.isFinite(n.boost)&&n.boost>=0?n.boost:1}function rr(n,t){let e=new Map,i=[];for(let o of n){let s=t[o.source].collapse;if(s===void 0){i.push(o);continue}let r=`${s}\\0${o.url}`,a=e.get(r);a?(a.others??(a.others=[])).push({source:o.source,id:o.id,url:o.url,score:o.score}):(e.set(r,o),i.push(o))}return i}async function Qi(n,t,e=10,i={}){let o=await ir(t),s=Bt(n,{facets:fn(o)}),r=t.flatMap((u,h)=>o[h]?[]:[h]);for(let u of new Set(o.flatMap(h=>h?[h.lang]:[]))){let h=ge(u);h&&(s.highlight=[...new Set([...s.highlight,...s.highlight.map(h).filter(p=>p.length>=3)])])}let{results:a,failed:l,errors:c}=await or(s,t,o,i);for(let u of l)r.includes(u)||r.push(u);r.sort((u,h)=>u-h),s.highlight=[...new Set([...s.highlight,...s.groups.flatMap(u=>u.corrected??[])])];let d=Ki(a,u=>o[u.source]);return{parsed:s,results:await Gi(s,a,u=>t[u.source].data,e),missing:r,facets:d,errors:c}}function mn(n,t,e=globalThis){var p,b;let i=((p=e.document)==null?void 0:p.baseURI)??((b=e.location)==null?void 0:b.href),o=Pi(n,i),s=e.__DOGSBAY_SEARCH__??{q:[],load(){}},r=s.stores??(s.stores=new Map),a=r.get(o)??new Map;r.set(o,a);let l=(v,w,m)=>{let g;if(m){let x="",C=Pi(m,i);for(let I of r.keys())C.startsWith(I)&&I.length>x.length&&(x=I);g=x?r.get(x):void 0}!g&&r.size===1&&(g=a),g?g.set(v,w):s.q.push([v,w,m])},c=s.q;s.q=[],s.load=l;for(let[v,w,m]of c)l(v,w,m);e.__DOGSBAY_SEARCH__=s;let d=async(v,w)=>(a.has(v)||await t(n+w),a.get(v)),u,h={meta:()=>u??(u=d(Oe.docs,Te.docs).then(v=>{if(!v||v.format!==5)throw new Error(`search index format ${(v==null?void 0:v.format)??"missing"}, expected ${5}: rebuild the site`);return v}).catch(v=>{throw u=void 0,v})),shard:async v=>(await h.meta()).shards.includes(v)?d(Oe.shard(v),Te.shard(v)):void 0,fragment:v=>d(Oe.fragment(v),Te.fragment(v))};return h}function Pi(n,t){try{return new URL(n,t).href}catch{return n}}function Ji(n){let t,e=new URL(n||"./",location.href).pathname;return async i=>{t??(t=import(new URL(`${n}pagefind/pagefind.js`,location.href).href).catch(u=>{throw t=void 0,u}));let o=i.replace(new RegExp(\'(?<!\\\\S)-?(tag|section):("[^"]*"?|\\\\S*)\',"gi")," ").trim(),s=o?await(await t).search(o):null,r=(s==null?void 0:s.results)??[],a=async(u,h)=>{let p=await u.data(),b=p.url.startsWith(e)?p.url.slice(e.length):p.url.replace(/^\\/+/,""),v=(p.sub_results??[]).map(w=>[w.title,w.url.split("#")[1]??""]).filter(([,w])=>w);return{id:h,title:p.meta.title??b,url:b,section:"",score:r.length-h,fragment:[ar(p.excerpt),v],sections:v.slice(0,3)}},l=await Promise.all(r.slice(0,10).map(a)),c=Promise.all(r.slice(10,30).map((u,h)=>a(u,h+10)));return c.catch(()=>{}),{results:l,more:c,later:(u,h)=>Promise.all(r.slice(u,u+h).map((p,b)=>a(p,u+b))),total:r.length,highlight:Bt(i).highlight}}}function ar(n){return new DOMParser().parseFromString(n,"text/html").body.textContent??""}function to(n,t){let e=(n==null?void 0:n.units)??[],i=e.find(m=>m.prefix===t);if(!i)return{};let o=m=>m.product??"",s=m=>{var g;return((g=n==null?void 0:n.products)==null?void 0:g[m])??{versions:n==null?void 0:n.versions,defaultVersion:n==null?void 0:n.defaultVersion}},r=m=>{var g;return(g=s(o(m)).versions)==null?void 0:g.find(x=>x.id===m.version)},a=m=>{var g,x;return((x=(g=n==null?void 0:n.products)==null?void 0:g[m])==null?void 0:x.label)??(m||(n==null?void 0:n.name)||"")},l=m=>{var g;return[o(m)!==o(i)?a(o(m)):"",m.version!==void 0?((g=r(m))==null?void 0:g.label)??m.version:""].filter(Boolean).join(" \\xB7 ")},c=m=>({prefix:m.prefix,product:o(m),label:l(m),own:m===i,versioned:m.version!==void 0}),d=e.filter(m=>m.locale===i.locale),u=s(o(i)),h=(u.versions??[]).map(m=>m.id),p=m=>{var g;return m===i?-2:m.version===u.defaultVersion?-1:(g=r(m))!=null&&g.prerelease?h.length+h.indexOf(m.version):h.indexOf(m.version)},b=d.filter(m=>{var g;return o(m)===o(i)&&m.version!==void 0&&(m===i||!((g=r(m))!=null&&g.hidden))}).sort((m,g)=>p(m)-p(g)),v=[];for(let m of d){let g=o(m);if(v.some(I=>o(I)===g))continue;if(g===o(i)){v.push(i);continue}let x=d.filter(I=>o(I)===g),C=s(g).defaultVersion;v.push(x.find(I=>I.version===C)??x.find(I=>{var L;return!((L=r(I))!=null&&L.hidden)})??x[0])}let w={};return b.length>1&&(w.versions=b.map(c)),v.length>1&&(w.products=v.map(c)),(w.versions||w.products)&&(w.version=[c(i)]),w}var eo=1.5;function no(n,t){var s,r;let e={},i=(s=n.docs[t])==null?void 0:s[3];i!=null&&i.length&&(e.tag=i.map(a=>n.tags[a]).filter(a=>typeof a=="string"));let o=(r=n.docs[t])==null?void 0:r[4];return!o||!n.facets||n.facets.forEach((a,l)=>{let c=o[l];c!=null&&c.length&&(e[a.name]=c.map(d=>a.values[d]).filter(d=>typeof d=="string"))}),e}var xt=n=>n.trim().toLowerCase();function io(n,t,e){for(let[i,o]of Object.entries(t)){if(i===e||!o.length)continue;let s=new Set((n[i]??[]).map(xt));if(!o.some(r=>s.has(xt(r))))return!1}return!0}function oo(n,t,e){return n.filter(i=>io(t(i),e))}function so(n,t,e,i){var s;let o={};for(let r of i){let a={},l=new Map;for(let c of n){let d=t(c);if(!((s=d[r])!=null&&s.length)||!io(d,e,r))continue;let u=new Set;for(let h of d[r]){if(u.has(xt(h)))continue;u.add(xt(h));let p=l.get(xt(h))??(l.set(xt(h),h),h);a[p]=(a[p]??0)+1}}for(let c of e[r]??[])l.has(xt(c))||(a[c]=0);Object.keys(a).length&&(o[r]=a)}return o}function ro(n,t){let e={};for(let i of n.getAll("filter")){let o=i.indexOf(":");if(o<=0)continue;let s=i.slice(0,o),r=i.slice(o+1);!t.includes(s)||!r||(e[s]??(e[s]=[])).some(a=>xt(a)===xt(r))||e[s].push(r)}return e}function lr(n,t,e){var s;if(n.length===0)return"";let i=n.join("/"),o=e==null?void 0:e[i];if(o&&o.length>0)return o;if(n.length===1){let r=(s=t==null?void 0:t[n[0]])==null?void 0:s.label;if(r&&r.length>0)return r}return n[n.length-1]}function ao(n){if(!n)return{};let t={};for(let[e,i]of Object.entries(n)){let o=cr(Object.entries(i).map(([s,r])=>({value:s,count:r})));o.length>0&&(t[e]=o)}return t}function cr(n){return[...n].sort((t,e)=>t.count!==e.count?e.count-t.count:t.value.localeCompare(e.value))}function ne(n,t,e){let i=e==null?void 0:e[n],o=t.split("/").filter(s=>s.length>0);return lr(o,i==null?void 0:i.prefixes,i==null?void 0:i.labels)}function lo(n,t){let e=i=>{var s;let o=(s=t==null?void 0:t[i])==null?void 0:s.order;return typeof o=="number"?o:void 0};return[...n].sort((i,o)=>{let s=e(i),r=e(o);return s!==void 0&&r!==void 0?s!==r?s-r:i.localeCompare(o):s!==void 0?-1:r!==void 0?1:i.localeCompare(o)})}function co(n,t,e){let i={...n},o=i[t]??[];if(o.includes(e)){let s=o.filter(r=>r!==e);s.length===0?delete i[t]:i[t]=s}else i[t]=[...o,e];return i}function uo(n){let t=0;for(let e of Object.values(n))t+=e.length;return t}function ho(n,t,e={}){if(t.length===0)return[];if(t.some(o=>o.value.includes("/"))){let o=e.nav?ur(e.nav,new Set(t.map(s=>s.value))):void 0;return dr(n,t,e.display,o)}return hr(n,t,e.nav,e.display)}function dr(n,t,e,i){let o=new Map,s=[];for(let c of t){let d=c.value.split("/").filter(p=>p.length>0);if(d.length===0)continue;let u="",h=null;for(let p=0;p<d.length;p++){u=u?`${u}/${d[p]}`:d[p];let b=o.get(u);b||(b={value:u,label:ne(n,u,e),count:0,depth:p,hasValue:!1,children:[]},o.set(u,b),h?h.children.push(b):s.push(u)),p===d.length-1&&(b.count=c.count,b.hasValue=!0),h=b}}let r=(c,d)=>{if(i){let u=i.get(c.value),h=i.get(d.value);if(u!==void 0&&h!==void 0&&u!==h)return u-h;if(u!==void 0&&h===void 0)return-1;if(u===void 0&&h!==void 0)return 1}return c.count!==d.count?d.count-c.count:c.value.localeCompare(d.value)},a=c=>{if(c.children.length!==0){c.children.sort(r);for(let d of c.children)a(d)}},l=s.map(c=>o.get(c));l.sort(r);for(let c of l)a(c);return l}function ur(n,t){let e=new Map,i=0,o=s=>{for(let r of s){if(r.href){let a=fo(r.href);for(let l=0;l<a.length;l++){let c=a[l];if(!t.has(c))continue;let d="";for(let u=l;u<a.length;u++)d=d?`${d}/${a[u]}`:a[u],t.has(d)&&!e.has(d)&&e.set(d,i++);break}}r.children&&r.children.length>0&&o(r.children)}};return o(n),e}function hr(n,t,e,i){let o=new Map;for(let h of t)o.set(h.value,h);if(!e||e.length===0)return t.map(h=>({value:h.value,label:ne(n,h.value,i),count:h.count,depth:0,hasValue:!0,children:[]}));let s=new Set,r=[],a=new Map,l=h=>{if(h.length===0)return;let p=r,b=a;for(let v=0;v<h.length;v++){let w=h[v],m=b.get(w);if(!m){let x=o.get(w);m={value:w,label:ne(n,w,i),count:x?x.count:0,depth:v,hasValue:x!==void 0,children:[]},p.push(m),b.set(w,m),x&&s.add(w)}let g=c.get(m);g||(g=new Map,c.set(m,g)),p=m.children,b=g}},c=new Map,d=h=>{for(let p of h){if(p.href){let b=fo(p.href);l(b)}p.children&&p.children.length>0&&d(p.children)}};d(e);let u=[];for(let h of t)s.has(h.value)||u.push({value:h.value,label:ne(n,h.value,i),count:h.count,depth:0,hasValue:!0,children:[]});return u.sort((h,p)=>h.value.localeCompare(p.value)),[...r,...u]}function fo(n){let t=n;try{/^[a-z]+:\\/\\//i.test(n)&&(t=new URL(n).pathname)}catch{}t=t.split("#")[0].split("?")[0];let e=t.split("/").filter(i=>i.length>0);return e.length<2?[]:e.slice(0,-1)}var fr=6e4,mr=30,Ie=20,pr=["version","versions","products"];function po(n){let{signal:t}=n,e=document.getElementById("db-search");if(!e)return;let i=e.querySelector("[data-db-search-input]"),o=e.querySelector("[data-part=\'listbox\']"),s=e.querySelector("[data-db-search-status]"),r=bo(n,{input:i,list:o,status:s,page:!1});e.addEventListener("db-dialog:open",()=>{i.focus(),i.select(),r.activate()},{signal:t}),document.addEventListener("keydown",a=>{let l=a.target.closest("input, textarea, select, [contenteditable]");if(a.key==="/"&&!l||a.key.toLowerCase()==="k"&&(a.metaKey||a.ctrlKey)){a.preventDefault();let c=document.querySelector("[data-db-search-page] [data-db-search-input]");c&&!e.open?c.focus():e.open?i.focus():e.show()}},{signal:t}),e.addEventListener("click",a=>{a.target.closest("a")&&e.close("api")},{signal:t})}function go(n){var d;let t=document.querySelector("[data-db-search-page]");if(!t)return;let e=t.querySelector("[data-db-search-input]"),i=t.querySelector("[data-db-search-list]"),o=t.querySelector("[data-db-search-status]"),s=gr(),r=s.get("p")||void 0,a=s.get("v")||void 0,l=s.get("scope")??(s.get("q")?"version":void 0),c=bo(n,{input:e,list:i,status:o,page:!0,params:s,scope:l,forward:r!==void 0||a!==void 0?{product:r,version:a}:void 0});(d=t.querySelector("form"))==null||d.addEventListener("submit",u=>u.preventDefault(),{signal:n.signal}),e.value=s.get("q")??"",c.activate(),e.value.trim()&&c.run()}function gr(){let n=new URLSearchParams(location.search);if(location.hash.includes("="))for(let[t,e]of new URLSearchParams(location.hash.slice(1)))n.has(t)||n.set(t,e);return n}var mo=()=>!location.search&&location.hash.includes("=");function bo(n,{input:t,list:e,status:i,page:o,scope:s,forward:r,params:a}){var xn;let{signal:l}=n,c=i.textContent??"",d=mn(`${n.unitRoot}_dogsbay/search/`,n.loadScript,window),u=document.body.dataset.search??"builtin",h=location.protocol!=="file:",p=u==="pagefind"||u==="both"&&h?Ji(n.unitRoot):void 0,b=u==="pagefind"&&!h,v=n.siteRoot??"",w=n.prefix??"",m={},g="version",x,C=`db-search-scope:${new URL(v||"./",location.href).pathname}`,I=()=>{let A=window.__DOGSBAY_SITE__;if(r&&A&&L(A)||(r=void 0,p))return;m=to(A,w);let T=s??pn(()=>sessionStorage.getItem(C)),k=g;T&&Object.prototype.hasOwnProperty.call(m,T)&&(g=T),Dt(),g!==k&&t.value.trim()&&Vt(++$)},L=A=>{var V,W;let T=A.units??[],k=T.find(q=>q.prefix===w);if(!k)return!1;let N=r.product??k.product??"",M=T.filter(q=>q.locale===k.locale&&(q.product??"")===N),D=((W=(V=A.products)==null?void 0:V[N])==null?void 0:W.defaultVersion)??A.defaultVersion,H=r.version!==void 0?M.find(q=>q.version===r.version||q.prefix&&q.prefix.split("/").pop()===r.version):M.find(q=>q===k)??M.find(q=>q.version===D)??M[0];if(!H||H.prefix===w||!H.search)return!1;let _=new URLSearchParams(a);_.delete("p"),_.delete("v");let R=_.toString();return location.replace(`${y(H.prefix)}${H.search}${R?mo()?`#${R}`:`?${R}`:""}`),!0},E=()=>x??(x=n.loadScript(`${v}_dogsbay/site.js`).then(I,I)),y=A=>`${v}${A?`${A}/`:""}`,X=new Map([[w,d]]),z=A=>{let T=X.get(A);return T||X.set(A,T=mn(`${y(A)}_dogsbay/search/`,n.loadScript,window)),T},U=new Map,S=((xn=o?e.closest("[data-db-search-page]"):e.closest("dialog"))==null?void 0:xn.querySelector("[data-db-search-facets]"))??void 0,O=(()=>{try{return JSON.parse(e.dataset.facets??"{}")}catch{return{}}})(),P=S?Object.keys(O):[],B=o&&a?ro(a,P):{},F=()=>{r&&E(),b?i.textContent=e.dataset.needsServer??"":p||(d.meta().catch(()=>i.textContent="Search index could not be loaded."),E())},$=0,K,J;t.addEventListener("input",()=>{clearTimeout(J),J=setTimeout(()=>void Vt(++$),80)},{signal:l});let nt=new Map,it=typeof IntersectionObserver=="function"?new IntersectionObserver(A=>{var T;for(let k of A)k.isIntersecting&&((T=nt.get(k.target))==null||T(),nt.delete(k.target),it.unobserve(k.target))}):void 0,Kt=A=>{if(!o||r)return;let T=new URLSearchParams;A&&T.set("q",A),g!=="version"&&T.set("scope",g);for(let[M,D]of Object.entries(B))for(let H of D)T.append("filter",`${M}:${H}`);let k=T.toString(),N=mo();pn(()=>history.replaceState(history.state,"",`${location.pathname}${k?N?`${location.search}#${k}`:`?${k}`:""}`))},Vt=async A=>{let T=t.value.trim();if(Kt(T),!T){it==null||it.disconnect(),nt.clear(),rt.hidden=!0,S&&(S.hidden=!0),Rt=void 0,e.replaceChildren(),lt.hidden=at.hidden=!0,i.textContent=c;return}if(!b){Rt=void 0;try{if(p){let k=await p(T);if(A!==$)return;if(o){let N=await k.more;if(A!==$)return;ye(T,[...k.results,...N].slice(0,Ie),k.highlight,k.total,k.later)}else{ye(T,k.results,k.highlight,k.total);let N=await k.more;A===$&&N.length&&Ao(T,N,k.highlight)}}else if(g!=="version"&&m[g]){let k=Date.now(),N=m[g],M=N.filter(R=>R.own||k-(U.get(R.prefix)??-1/0)>fr),D=await Qi(T,M.map(R=>({data:z(R.prefix),boost:R.own?eo:1,collapse:R.product})));for(let R of D.missing)U.set(M[R].prefix,Date.now());if(A!==$)return;K=D.parsed;let H=D.results.map(R=>{var W;let V=M[R.source];return Object.assign(R,{base:y(V.prefix),from:V.own?void 0:V.label,also:(W=R.others)==null?void 0:W.map(q=>M[q.source].label).filter(Boolean),data:z(V.prefix)})}),_=D.missing.length+N.length-M.length;await ve(A,T,H,D.parsed.highlight,_?` \\xB7 ${(e.dataset.unavailable??"{n}").replace("{n}",String(_))}`:"")}else{let k=await Zi(T,d);if(A!==$)return;K=k.parsed,await ve(A,T,k.results,k.parsed.highlight,"")}}catch{if(A!==$)return;i.textContent="Search index could not be loaded.",S&&(S.hidden=!0)}}},rt=document.createElement("div");rt.setAttribute("role","group"),rt.setAttribute("aria-label",e.dataset.filterSection??"Filter by section"),rt.className=o?"flex flex-wrap gap-1 pb-3":"flex flex-wrap gap-1 px-3 pb-2",rt.hidden=!0,e.before(rt);let ot=document.createElement("div");ot.setAttribute("role","group"),ot.setAttribute("aria-label",e.dataset.scope??"Search in"),ot.className=o?"flex flex-wrap items-center gap-1 pb-3":"flex flex-wrap items-center gap-1 px-3 pb-2",ot.hidden=!0,rt.before(ot);let at=document.createElement("a");at.className="mx-3 mb-2 mt-1 block rounded-md px-3 py-2 text-center text-sm font-medium hover:bg-accent",at.dataset.dbSearchSeeAll="",at.hidden=!0;let lt=document.createElement("button");lt.type="button",lt.className="mt-4 rounded-md border px-3 py-1.5 text-sm hover:bg-accent",lt.textContent=e.dataset.more??"More results",lt.hidden=!0,e.after(o?lt:at);let Dt=()=>{var k,N;let A=pr.filter(M=>m[M]),T={version:((N=(k=m.version)==null?void 0:k[0])==null?void 0:N.versioned)===!1?e.dataset.scopeProduct:e.dataset.scopeVersion,versions:e.dataset.scopeVersions,products:e.dataset.scopeProducts};ot.replaceChildren(...A.map(M=>{let D=document.createElement("button");return D.type="button",D.dataset.scope=M,D.setAttribute("aria-pressed",String(M===g)),D.className="rounded-md border px-2.5 py-0.5 text-xs hover:bg-accent aria-pressed:bg-primary aria-pressed:text-primary-foreground",D.textContent=T[M]??M,D.addEventListener("click",()=>{var H;g!==M&&(g=M,pn(()=>sessionStorage.setItem(C,M)),Dt(),(H=ot.querySelector(`[data-scope="${M}"]`))==null||H.focus(),t.value.trim()?Vt(++$):Kt(""))},{signal:l}),D})),ot.hidden=A.length<2};l==null||l.addEventListener("abort",()=>{clearTimeout(J),$++,it==null||it.disconnect(),nt.clear(),rt.remove(),ot.remove(),at.remove(),lt.remove()});let jt=A=>A.replace(/"/g,""),$e=A=>`section:"${jt(A)}"`,Et,se=(A,T)=>{let k=new Map;for(let H of T)H.section&&k.set(H.section,(k.get(H.section)??0)+1);let N=[...A.matchAll(/section:"([^"]*)"/gi)].map(H=>H[1].toLowerCase()),M=H=>N.includes(jt(H).toLowerCase()),D=[...k].sort((H,_)=>_[1]-H[1]).slice(0,6).map(([H])=>H);for(let H of N)D.some(_=>jt(_).toLowerCase()===H)||D.push(H);rt.replaceChildren(...D.length>1||N.length?D.map(H=>{let _=document.createElement("button");_.type="button";let R=M(H);return _.setAttribute("aria-pressed",String(R)),_.className="rounded-full border px-2.5 py-0.5 text-xs hover:bg-accent aria-pressed:bg-primary aria-pressed:text-primary-foreground",_.textContent=H,_.addEventListener("click",()=>{let V=$e(H),W=t.value.replace(new RegExp(`\\\\s*section:"${jt(H).replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}"`,"i"),"").trim();t.value=R?W:`${W} ${V}`.trim(),Et=H,t.dispatchEvent(new Event("input",{bubbles:!0}))},{signal:l}),_}):[]),rt.hidden=!rt.childElementCount,Et!==void 0&&(([...rt.querySelectorAll("button")].find(_=>_.textContent===Et)??t).focus(),Et=void 0)},Rt,ve=async(A,T,k,N,M)=>{if(!P.length){ye(T,k,N,k.length),i.textContent+=M;return}let D=new Map;for(let _ of k){let R=_.data??d;D.has(R)||D.set(R,await R.meta())}if(A!==$)return;let H=new Map(k.map(_=>[_,no(D.get(_.data??d),_.id)]));Rt={q:T,results:k,terms:N,note:M,valuesOf:_=>H.get(_)??{}},Mt()},Mt=()=>{if(!Rt)return;let{q:A,results:T,terms:k,note:N,valuesOf:M}=Rt,D=oo(T,M,B);Be(so(T,M,B,P)),ye(A,D,k,D.length),i.textContent+=N},St,Be=A=>{var H,_;if(!S)return;let T=lo(Object.keys(A),O);if(S.hidden=!T.length,!T.length)return S.replaceChildren();let k=(R,V,W,q)=>{let j=document.createElement("label");j.className="flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 hover:bg-accent";let tt=document.createElement("input");tt.type="checkbox",tt.dataset.facetName=R,tt.dataset.facetValue=V,tt.checked=(B[R]??[]).some(Co=>Co.toLowerCase()===V.toLowerCase()),tt.className="size-3.5 rounded border-border accent-primary";let bt=document.createElement("span");bt.className="flex-1 truncate",bt.textContent=W;let Ke=document.createElement("span");return Ke.className="text-xs text-muted-foreground",Ke.textContent=String(q),j.append(tt,bt,Ke),j},N=(R,V)=>{let W=document.createElement("ul");W.className="space-y-0.5";for(let q of V){let j=document.createElement("li");if(q.hasValue)j.append(k(R,q.value,q.label,q.count));else{let tt=document.createElement("span");tt.className="block px-2 py-1 text-muted-foreground",tt.textContent=q.label,j.append(tt)}if(q.children.length){let tt=N(R,q.children);tt.classList.add("ml-4"),j.append(tt)}W.append(j)}return W},M=[],D=uo(B);if(D){let R=document.createElement("button");R.type="button",R.dataset.clearFilters="",R.className="mb-3 w-full rounded-md border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",R.textContent=(e.dataset.facetsClear??"Clear all ({n})").replace("{n}",String(D)),M.push(R)}for(let R of T){let V=ao({[R]:A[R]})[R]??[],W=document.createElement("fieldset");W.className="mb-3";let q=document.createElement("legend");if(q.className="mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",q.textContent=((H=O[R])==null?void 0:H.title)??R,W.append(q),(_=O[R])!=null&&_.hierarchical||V.some(j=>j.value.includes("/")))W.append(N(R,ho(R,V,{display:O})));else{let j=document.createElement("ul");j.className="space-y-0.5";for(let tt of V){let bt=document.createElement("li");bt.append(k(R,tt.value,ne(R,tt.value,O),tt.count)),j.append(bt)}W.append(j)}M.push(W)}S.replaceChildren(...M),St!==void 0&&(((St?[...S.querySelectorAll("input[data-facet-name]")].find(V=>`${V.dataset.facetName}\\0${V.dataset.facetValue}`===St):S.querySelector("[data-clear-filters]"))??t).focus(),St=void 0)};S==null||S.addEventListener("change",A=>{let T=A.target;if(!T.dataset.facetName)return;let k=T.dataset.facetName,N=T.dataset.facetValue,M=(B[k]??[]).find(D=>D.toLowerCase()===N.toLowerCase());B=co(B,k,M??N),St=`${k}\\0${N}`,Kt(t.value.trim()),Mt()},{signal:l}),S==null||S.addEventListener("click",A=>{A.target.closest("[data-clear-filters]")&&(B={},St="",Kt(t.value.trim()),Mt())},{signal:l});let ct,ye=(A,T,k,N,M)=>{it==null||it.disconnect(),nt.clear(),se(A,T);let D=T.slice(0,o?Ie:mr);if(ct={q:A,results:T,terms:k,shown:D.length,total:N,later:M},e.replaceChildren(...qe(A,D,k)),i.textContent=N?`${N} result${N===1?"":"s"}`:`${e.dataset.noResults} \\u201C${A}\\u201D`,lt.hidden=!o||!yn(),at.hidden=o||!N||!e.dataset.searchPage,!at.hidden){let H=new URLSearchParams({q:A});g!=="version"&&H.set("scope",g);for(let[_,R]of Object.entries(B))for(let V of R)H.append("filter",`${_}:${V}`);at.href=`${e.dataset.searchPage}?${H}`,at.textContent=(e.dataset.seeAll??"See all {n} results").replace("{n}",String(N))}},Ao=(A,T,k)=>e.append(...qe(A,T,k)),yn=()=>!!ct&&(ct.results.length>ct.shown||!!ct.later&&ct.shown<ct.total);lt.addEventListener("click",async()=>{var N,M;let A=ct;if(!A)return;let T=A.results.slice(A.shown,A.shown+Ie);if(!T.length&&A.later){if(T=await A.later(A.shown,Ie).catch(()=>[]),A!==ct)return;A.results.push(...T)}let k=qe(A.q,T,A.terms);e.append(...k),A.shown+=T.length,lt.hidden=!T.length||!yn(),(M=(N=k[0])==null?void 0:N.querySelector("a"))==null||M.focus()},{signal:l});let qe=(A,T,k)=>{var M;let N=[];for(let D of T){let H=D.base??n.unitRoot,_=wn(H,D.url,k,"block rounded-md p-3 hover:bg-accent"),R=document.createElement("div");R.className="font-medium",R.append(...gn(D.title,k)),_.a.appendChild(R);let V=[D.from,D.section].filter(Boolean).join(" \\xB7 ");if(V){let j=document.createElement("div");j.className="text-xs text-muted-foreground",j.textContent=V,_.a.appendChild(j)}let W=document.createElement("div");if(W.className="mt-1 line-clamp-2 text-xs text-muted-foreground",_.a.appendChild(W),(M=D.also)!=null&&M.length){let j=document.createElement("div");j.className="mt-1 text-xs text-muted-foreground",j.textContent=`${e.dataset.alsoIn??"Also in"} ${D.also.join(", ")}`,_.a.appendChild(j)}N.push(_.li);let q=()=>D.fragment?(D.fragment[0]&&W.replaceChildren(...gn(D.fragment[0],k)),(D.sections??[]).map(([j,tt])=>{let bt=wn(H,`${D.url}#${tt}`,k,"ml-4 block rounded-md border-l px-3 py-1.5 text-sm hover:bg-accent");return bt.a.append(...gn(j,k)),bt.li})):[];if(D.fragment)N.push(...q());else if(it){let j=K??Bt(A);nt.set(_.li,()=>void Xi(j,[D],D.data??d).then(()=>_.li.after(...q()),()=>{})),it.observe(_.li)}}return N},wn=(A,T,k,N)=>{let M=document.createElement("li");o||M.setAttribute("role","none"),M.className="mb-1";let D=document.createElement("a");return o||(D.setAttribute("data-part","option"),D.dataset.value=T,D.tabIndex=-1),D.href=br(A+T,k),D.className=N,M.appendChild(D),{li:M,a:D}};return{activate:F,run:()=>void Vt(++$)}}function pn(n){try{return n()}catch{return}}function br(n,t){if(!t.length)return n;let e=n.indexOf("#"),[i,o]=e<0?[n,""]:[n.slice(0,e),n.slice(e)];return`${i}${i.includes("?")?"&":"?"}h=${encodeURIComponent(t.join(" "))}${o}`}function gn(n,t){if(!t.length)return[document.createTextNode(n)];let e=new RegExp(`(${t.map(i=>i.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")).join("|")})`,"gi");return n.split(e).map((i,o)=>{if(o%2===0)return document.createTextNode(i);let s=document.createElement("mark");return s.textContent=i,s})}var vo=/[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}]/u;function yo(n){var v;let t;try{t=(new URLSearchParams(location.search).get("h")??"").split(/\\s+/).filter(w=>w.length>0)}catch{return}let e=document.querySelector("#db-content article")??document.querySelector("#db-content");if(!t.length||!e)return;let i=w=>w.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&"),o=[...t].sort((w,m)=>m.length-w.length),s=o.filter(w=>vo.test(w)).map(i),r=o.filter(w=>!vo.test(w)).map(i),a=[r.length?`(?<![\\\\p{L}\\\\p{N}])(?:${r.join("|")})`:"",s.length?`(?:${s.join("|")})`:""].filter(Boolean),l=new RegExp(`(${a.join("|")})`,"giu"),c=[],d=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:w=>{var m;return(m=w.parentElement)!=null&&m.closest("script, style, mark, button, [aria-hidden=\'true\']")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),u=[];for(let w=d.nextNode();w;w=d.nextNode())u.push(w);for(let w of u){if(c.length>=500)break;let m=w.data;if(l.lastIndex=0,!l.test(m))continue;l.lastIndex=0;let g=document.createDocumentFragment(),x=0;for(let C of m.matchAll(l)){g.append(m.slice(x,C.index));let I=document.createElement("mark");I.className="db-search-hl",I.textContent=C[0],g.append(I),c.push(I),x=C.index+C[0].length}g.append(m.slice(x)),w.replaceWith(g)}if(vr(),!c.length)return;let h=((v=document.querySelector("[data-clear-highlights]"))==null?void 0:v.dataset.clearHighlights)??"Clear highlights",p=document.createElement("div");p.className="not-prose mb-4";let b=document.createElement("button");b.type="button",b.className="inline-flex h-8 items-center rounded-md border px-3 text-sm hover:bg-accent",b.textContent=h,b.addEventListener("click",()=>{var w;for(let m of c)m.replaceWith(document.createTextNode(m.textContent??""));e.normalize(),p.remove(),(w=document.getElementById("db-content"))==null||w.focus({preventScroll:!0})},{signal:n}),p.append(b),e.prepend(p),location.hash||c[0].scrollIntoView({block:"center"})}function vr(){try{let n=new URL(location.href);n.searchParams.delete("h"),history.replaceState(history.state,"",n.toString())}catch{}}var qt=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},Ne=function(t){return t.tagName==="IMG"},yr=function(t){return NodeList.prototype.isPrototypeOf(t)},He=function(t){return t&&t.nodeType===1},wo=function(t){var e=t.currentSrc||t.src;return e.substr(-4).toLowerCase()===".svg"},xo=function(t){try{return Array.isArray(t)?t.filter(Ne):yr(t)?[].slice.call(t).filter(Ne):He(t)?[t].filter(Ne):typeof t=="string"?[].slice.call(document.querySelectorAll(t)).filter(Ne):[]}catch{throw new TypeError(`The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList or an array.\nSee: https://github.com/francoischalifour/medium-zoom`)}},wr=function(t){var e=document.createElement("div");return e.classList.add("medium-zoom-overlay"),e.style.background=t,e},xr=function(t){var e=t.getBoundingClientRect(),i=e.top,o=e.left,s=e.width,r=e.height,a=t.cloneNode(),l=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,c=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return a.removeAttribute("id"),a.style.position="absolute",a.style.top=i+l+"px",a.style.left=o+c+"px",a.style.width=s+"px",a.style.height=r+"px",a.style.transform="",a},ie=function(t,e){var i=qt({bubbles:!1,cancelable:!1,detail:void 0},e);if(typeof window.CustomEvent=="function")return new CustomEvent(t,i);var o=document.createEvent("CustomEvent");return o.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),o},Er=function n(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=window.Promise||function(S){function O(){}S(O,O)},o=function(S){var O=S.target;if(O===X){b();return}x.indexOf(O)!==-1&&v({target:O})},s=function(){if(!(I||!y.original)){var S=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(L-S)>E.scrollOffset&&setTimeout(b,150)}},r=function(S){var O=S.key||S.keyCode;(O==="Escape"||O==="Esc"||O===27)&&b()},a=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=S;if(S.background&&(X.style.background=S.background),S.container&&S.container instanceof Object&&(O.container=qt({},E.container,S.container)),S.template){var P=He(S.template)?S.template:document.querySelector(S.template);O.template=P}return E=qt({},E,O),x.forEach(function(B){B.dispatchEvent(ie("medium-zoom:update",{detail:{zoom:z}}))}),z},l=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return n(qt({},E,S))},c=function(){for(var S=arguments.length,O=Array(S),P=0;P<S;P++)O[P]=arguments[P];var B=O.reduce(function(F,$){return[].concat(F,xo($))},[]);return B.filter(function(F){return x.indexOf(F)===-1}).forEach(function(F){x.push(F),F.classList.add("medium-zoom-image")}),C.forEach(function(F){var $=F.type,K=F.listener,J=F.options;B.forEach(function(nt){nt.addEventListener($,K,J)})}),z},d=function(){for(var S=arguments.length,O=Array(S),P=0;P<S;P++)O[P]=arguments[P];y.zoomed&&b();var B=O.length>0?O.reduce(function(F,$){return[].concat(F,xo($))},[]):x;return B.forEach(function(F){F.classList.remove("medium-zoom-image"),F.dispatchEvent(ie("medium-zoom:detach",{detail:{zoom:z}}))}),x=x.filter(function(F){return B.indexOf(F)===-1}),z},u=function(S,O){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return x.forEach(function(B){B.addEventListener("medium-zoom:"+S,O,P)}),C.push({type:"medium-zoom:"+S,listener:O,options:P}),z},h=function(S,O){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return x.forEach(function(B){B.removeEventListener("medium-zoom:"+S,O,P)}),C=C.filter(function(B){return!(B.type==="medium-zoom:"+S&&B.listener.toString()===O.toString())}),z},p=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=S.target,P=function(){var F={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},$=void 0,K=void 0;if(E.container)if(E.container instanceof Object)F=qt({},F,E.container),$=F.width-F.left-F.right-E.margin*2,K=F.height-F.top-F.bottom-E.margin*2;else{var J=He(E.container)?E.container:document.querySelector(E.container),nt=J.getBoundingClientRect(),it=nt.width,Kt=nt.height,Vt=nt.left,rt=nt.top;F=qt({},F,{width:it,height:Kt,left:Vt,top:rt})}$=$||F.width-E.margin*2,K=K||F.height-E.margin*2;var ot=y.zoomedHd||y.original,at=wo(ot)?$:ot.naturalWidth||$,lt=wo(ot)?K:ot.naturalHeight||K,Dt=ot.getBoundingClientRect(),jt=Dt.top,$e=Dt.left,Et=Dt.width,se=Dt.height,Rt=Math.min(Math.max(Et,at),$)/Et,ve=Math.min(Math.max(se,lt),K)/se,Mt=Math.min(Rt,ve),St=(-$e+($-Et)/2+E.margin+F.left)/Mt,Be=(-jt+(K-se)/2+E.margin+F.top)/Mt,ct="scale("+Mt+") translate3d("+St+"px, "+Be+"px, 0)";y.zoomed.style.transform=ct,y.zoomedHd&&(y.zoomedHd.style.transform=ct)};return new i(function(B){if(O&&x.indexOf(O)===-1){B(z);return}var F=function it(){I=!1,y.zoomed.removeEventListener("transitionend",it),y.original.dispatchEvent(ie("medium-zoom:opened",{detail:{zoom:z}})),B(z)};if(y.zoomed){B(z);return}if(O)y.original=O;else if(x.length>0){var $=x;y.original=$[0]}else{B(z);return}if(y.original.dispatchEvent(ie("medium-zoom:open",{detail:{zoom:z}})),L=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,I=!0,y.zoomed=xr(y.original),document.body.appendChild(X),E.template){var K=He(E.template)?E.template:document.querySelector(E.template);y.template=document.createElement("div"),y.template.appendChild(K.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&y.original.parentElement.tagName==="PICTURE"&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",b),y.zoomed.addEventListener("transitionend",F),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(J),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,P()};var J=setInterval(function(){y.zoomedHd.complete&&(clearInterval(J),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",b),document.body.appendChild(y.zoomedHd),P())},10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var nt=y.zoomedHd.addEventListener("load",function(){y.zoomedHd.removeEventListener("load",nt),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",b),document.body.appendChild(y.zoomedHd),P()})}else P()})},b=function(){return new i(function(S){if(I||!y.original){S(z);return}var O=function P(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(X),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),I=!1,y.zoomed.removeEventListener("transitionend",P),y.original.dispatchEvent(ie("medium-zoom:closed",{detail:{zoom:z}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,S(z)};I=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(ie("medium-zoom:close",{detail:{zoom:z}})),y.zoomed.addEventListener("transitionend",O)})},v=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=S.target;return y.original?b():p({target:O})},w=function(){return E},m=function(){return x},g=function(){return y.original},x=[],C=[],I=!1,L=0,E=e,y={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?E=t:(t||typeof t=="string")&&c(t),E=qt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},E);var X=wr(E.background);document.addEventListener("click",o),document.addEventListener("keyup",r),document.addEventListener("scroll",s),window.addEventListener("resize",b);var z={open:p,close:b,toggle:v,update:a,clone:l,attach:c,detach:d,on:u,off:h,getOptions:w,getImages:m,getZoomedImage:g};return z};function Sr(n,t){t===void 0&&(t={});var e=t.insertAt;if(!(!n||typeof document>"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",e==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}var Ar=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Sr(Ar);var Eo=Er;var Cr;function So(n){let t=document.body.dataset.imageZoom;if(!t)return;let e;try{e=JSON.parse(t)}catch{return}let i=[...document.querySelectorAll(\'img[data-zoomable="true"]\')];if(!i.length)return;let o=Cr??(Cr=Eo());o.update(e),o.attach(...i),n==null||n.addEventListener("abort",()=>{o.close(),o.detach(...i)});let s={signal:n},r=!1,a=l=>l.key==="Enter"||l.key===" ";for(let l of i)l.alt&&(l.tabIndex=0,l.addEventListener("keydown",c=>{a(c)&&(c.preventDefault(),r=!0,o.open({target:l}))},s),l.addEventListener("medium-zoom:opened",()=>{let c=document.querySelector(".medium-zoom-image--opened");!r||!c||(c.tabIndex=-1,c.addEventListener("keydown",d=>{a(d)&&(d.preventDefault(),o.close())}),c.focus())},s),l.addEventListener("medium-zoom:closed",()=>{r&&l.focus(),r=!1},s))}function Fe(n){return!/^[\\x00-\\x20]*([a-z][a-z0-9+.-]*:|[\\\\/])/i.test(n.replace(/[\\t\\n\\r]/g,""))}var _e=new Map,Lr=15e3;function bn(n){let t=_e.get(n);if(!t){let e=new Promise((i,o)=>{let s=document.createElement("script");s.src=n;let r=setTimeout(()=>a(),Lr),a=()=>{clearTimeout(r),s.onload=s.onerror=null,_e.get(n)===e&&_e.delete(n),o(new Error(`could not load ${n}`))};s.onload=()=>{clearTimeout(r),i()},s.onerror=a,document.head.appendChild(s)});_e.set(n,t=e)}return t}function kr(n){document.querySelectorAll("[data-component=\'theme-toggle\']").forEach(t=>{let e=()=>t.setAttribute("aria-pressed",String(document.documentElement.classList.contains("dark")));e(),t.addEventListener("click",()=>{let i=!document.documentElement.classList.contains("dark");document.documentElement.classList.toggle("dark",i);try{localStorage.setItem("theme",i?"dark":"light")}catch{}e()},{signal:n})})}function Tr(n){document.addEventListener("click",async t=>{var o,s,r,a;let e=t.target.closest("[data-copy-markdown]");if(!e)return;let i=(((o=document.getElementById("db-page-markdown"))==null?void 0:o.textContent)??"").replace(/<\\\\\\/(script)/gi,"</$1").replace(/<\\\\!--/g,"<!--");try{await navigator.clipboard.writeText(i);let l=(s=e.dataset).label??(s.label=e.textContent??"");e.textContent="Copied",clearTimeout(Number(e.dataset.timer)),e.dataset.timer=String(setTimeout(()=>e.textContent=l,1500))}catch{}(a=(r=e.closest("db-popover"))==null?void 0:r.close)==null||a.call(r,"close-press")},{signal:n})}function Or(n,t){let e=document.body.dataset.page??"index.html";document.querySelectorAll("select[data-db-switch]").forEach(i=>{i.addEventListener("change",async()=>{var a;let o=i.selectedOptions[0];if(!o||o.disabled||!o.hasAttribute("value"))return;let s=o.dataset.prefix??"",r=i.value;if(o.hasAttribute("data-link")){(Fe(r)||/^https?:\\/\\//i.test(r))&&(location.href=r);return}if(!(!Fe(r)||!Fe(s))){if(i.dataset.dbSwitch==="product"){location.href=r;return}try{let l=s?`${n}${s}/`:n;await bn(`${l}_dogsbay/pages.js`);let c=(a=window.__DOGSBAY_PAGES__)==null?void 0:a[s];location.href=c&&!c.includes(e)?`${l}index.html`:r}catch{location.href=r}}},{signal:t})})}function Dr(n){document.addEventListener("click",t=>{var i;let e=t.target.closest("a.db-anchor");!e||location.protocol==="file:"||(i=navigator.clipboard)==null||i.writeText(e.href).catch(()=>{})},{signal:n})}var be=new Map,ze=new Set;function Pe(){for(let[n,t]of be)n.isConnected||(Tt(n),t.abort(),be.delete(n));for(let n of ze)n.isConnected||Tt(n)}function Rr(n,t){let e=EventTarget.prototype,i=e.addEventListener,o=0;e.addEventListener=function(s,r,a){o++;let l=typeof a=="object"?a.signal:void 0;i.call(this,s,r,typeof a=="object"?{...a,signal:l?AbortSignal.any([l,n]):n}:{capture:a===!0,signal:n})};try{t()}finally{e.addEventListener=i}return o}function Mr(){Pe(),document.querySelectorAll("[data-component=\'sidebar-provider\']").forEach(n=>{if(be.has(n)||ze.has(n))return;let t=new AbortController;Rr(t.signal,()=>sn(n))?be.set(n,t):n.querySelector("[data-component=\'sidebar\']")&&ze.add(n)}),document.removeEventListener("keydown",Pe),document.addEventListener("keydown",Pe)}var oe;function vn(n={}){oe==null||oe.unmount();let t=new AbortController,{signal:e}=t,i=document.body,o=i.dataset.unitRoot??"",s=i.dataset.siteRoot??"";n.nav!==void 0&&(window.__DOGSBAY_NAV__=n.nav),Mr(),n.theme!==!1&&kr(e),Tr(e),n.switchers!==!1&&Or(s,e),Dr(e),n.search!==!1&&(po({unitRoot:o,siteRoot:s,prefix:i.dataset.prefix??"",loadScript:bn,signal:e}),go({unitRoot:o,siteRoot:s,prefix:i.dataset.prefix??"",loadScript:bn,signal:e})),yo(e),So(e);let r={unmount(){if(!e.aborted){t.abort();for(let a of[...be.keys(),...ze])Tt(a);Pe(),oe===r&&(oe=void 0)}}};return oe=r}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>vn()):vn();})();\n';
|
|
1378
1397
|
var CLIENT_FILE = "dogsbay-7ffe1e5f0e.js";
|
|
1379
|
-
var SSG_VERSION = "0.2.0-beta.
|
|
1398
|
+
var SSG_VERSION = "0.2.0-beta.156";
|
|
1380
1399
|
var THEME_TEMPLATES = { "layouts/blank.html": '{# A page without the sidebar or table of contents: landing pages, splash pages, 404. -#}\n<!doctype html>\n<html lang="{{ page.lang }}" dir="{{ page.dir }}"{% if site.colorMode == "dark" %} class="dark"{% endif %}{% if has.crowdedHeader %} data-header="crowded"{% endif %}>\n<head>\n{% include "partials/head.html" %}\n</head>\n<body class="bg-background text-foreground antialiased" data-unit-root="{{ paths.unit }}" data-site-root="{{ paths.site }}" data-prefix="{{ page.prefix }}" data-page="{{ page.out }}"{{ bodyAttrs }}>\n{{ skipLink }}\n<div class="relative flex min-h-svh w-full flex-col bg-background">\n{{ announcementBar }}\n{% include "partials/header.html" %}\n<main id="db-content" class="min-w-0 flex-1 px-6 py-8 outline-none lg:px-12" tabindex="-1">\n<div class="mx-auto {{ widthClass }}">\n{{ banner }}{{ versionBadge }}{{ h1 }}{{ byline }}{{ lede }}{{ hero }}{{ metaStrip }}\n<article class="docs-prose">\n{{ content }}\n</article>\n{% include "partials/footer.html" %}\n</div>\n</main>\n</div>\n{{ searchDialog }}\n{{ scripts }}\n</body>\n</html>\n', "layouts/docs.html": '{# The docs layout: a port of @dogsbay/docs-layout DocsLayout.astro. -#}\n<!doctype html>\n<html lang="{{ page.lang }}" dir="{{ page.dir }}"{% if site.colorMode == "dark" %} class="dark"{% endif %}{% if has.crowdedHeader %} data-header="crowded"{% endif %}>\n<head>\n{% include "partials/head.html" %}\n</head>\n<body class="bg-background text-foreground antialiased" data-unit-root="{{ paths.unit }}" data-site-root="{{ paths.site }}" data-prefix="{{ page.prefix }}" data-page="{{ page.out }}"{{ bodyAttrs }}>\n{{ skipLink }}\n<div class="group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar" data-component="sidebar-provider" style="--sidebar-width: 16rem; --sidebar-width-icon: 3rem;">\n{{ sidebar }}\n<div class="relative flex w-full min-w-0 flex-1 flex-col bg-background">\n{{ announcementBar }}\n{% include "partials/header.html" %}\n<div class="flex min-w-0">\n<main id="db-content" class="min-w-0 flex-1 px-6 py-8 outline-none lg:px-12" tabindex="-1">\n<div class="mx-auto {{ widthClass }}">\n{{ banner }}{{ breadcrumb }}{{ pageActionsInline }}{{ versionBadge }}{{ h1 }}{{ byline }}{{ lede }}{{ hero }}{{ metaStrip }}{{ tocTop }}\n<article class="docs-prose">\n{{ content }}\n</article>\n{% include "partials/footer.html" %}\n</div>\n</main>\n{{ tocRail }}\n</div>\n</div>\n</div>\n{{ searchDialog }}\n{{ scripts }}\n</body>\n</html>\n', "partials/announcement.html": `{#- The site's announcement bar (site.announcement), as DocsLayout's AnnouncementBar.astro: a band above the
|
|
1381
1400
|
header in the callout colours of its tone. A closeable one is closed and remembered by <db-announcement>,
|
|
1382
1401
|
and the head script hides a closed one before first paint. Context: announcement = {id, key (what a close is
|
|
@@ -1607,31 +1626,31 @@ var CLIENT_CANDIDATES = ['""', '""}', '"&"', '")}', '"./",', '"Also', '"\\\\$&")
|
|
|
1607
1626
|
var SITE_NOTICES = `Third-party software in this site's _dogsbay/ files (dogsbay.js, site.css) and pages
|
|
1608
1627
|
|
|
1609
1628
|
========================================================================
|
|
1610
|
-
@dogsbay/elements@0.2.0-beta.
|
|
1629
|
+
@dogsbay/elements@0.2.0-beta.156 (MIT)
|
|
1611
1630
|
https://github.com/dogsbay/dogsbay.git
|
|
1612
1631
|
|
|
1613
1632
|
Licensed under MIT; the package ships no licence file.
|
|
1614
1633
|
|
|
1615
1634
|
========================================================================
|
|
1616
|
-
@dogsbay/primitives@0.2.0-beta.
|
|
1635
|
+
@dogsbay/primitives@0.2.0-beta.156 (MIT)
|
|
1617
1636
|
https://github.com/dogsbay/dogsbay.git
|
|
1618
1637
|
|
|
1619
1638
|
Licensed under MIT; the package ships no licence file.
|
|
1620
1639
|
|
|
1621
1640
|
========================================================================
|
|
1622
|
-
@dogsbay/render-html@0.2.0-beta.
|
|
1641
|
+
@dogsbay/render-html@0.2.0-beta.156 (MIT)
|
|
1623
1642
|
https://github.com/dogsbay/dogsbay.git
|
|
1624
1643
|
|
|
1625
1644
|
Licensed under MIT; the package ships no licence file.
|
|
1626
1645
|
|
|
1627
1646
|
========================================================================
|
|
1628
|
-
@dogsbay/search@0.2.0-beta.
|
|
1647
|
+
@dogsbay/search@0.2.0-beta.156 (MIT)
|
|
1629
1648
|
https://github.com/dogsbay/dogsbay.git
|
|
1630
1649
|
|
|
1631
1650
|
Licensed under MIT; the package ships no licence file.
|
|
1632
1651
|
|
|
1633
1652
|
========================================================================
|
|
1634
|
-
@dogsbay/ui@0.2.0-beta.
|
|
1653
|
+
@dogsbay/ui@0.2.0-beta.156 (MIT)
|
|
1635
1654
|
https://github.com/dogsbay/dogsbay.git
|
|
1636
1655
|
|
|
1637
1656
|
Licensed under MIT; the package ships no licence file.
|
|
@@ -2321,7 +2340,7 @@ function pageActions(o) {
|
|
|
2321
2340
|
const providers = o.providers.map((p) => `<li><a class="${item}" href="${esc(p.href)}" target="_blank" rel="noopener">${esc(p.label)}${arrow}</a></li>`).join("");
|
|
2322
2341
|
return `<div class="flex items-center" data-component="page-actions"><db-popover placement="bottom-end" class="relative inline-block">
|
|
2323
2342
|
<button type="button" data-part="trigger"${o.compact ? ` aria-label="${esc(o.label)}"` : ""} class="inline-flex h-8 shrink-0 items-center justify-center gap-1 whitespace-nowrap rounded-md border border-border bg-background ${o.compact ? ACTIONS_PAD_COMPACT : "px-3"} text-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">${o.compact ? `${svg('<rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>', ACTIONS_ICON_COMPACT, 14)}<span class="${ACTIONS_LABEL_COMPACT}">${esc(o.label)}</span>` : esc(o.label)}${svg('<path d="m6 9 6 6 6-6"/>', "", 14)}</button>
|
|
2324
|
-
<div data-part="content" class="z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md" aria-label="${esc(o.label)}">
|
|
2343
|
+
<div data-part="content" hidden class="z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md" aria-label="${esc(o.label)}">
|
|
2325
2344
|
<ul class="m-0 list-none p-0">
|
|
2326
2345
|
${o.copy ? `<li><button type="button" class="${item}" data-copy-markdown>${esc(o.copyLabel)}</button></li>` : ""}
|
|
2327
2346
|
<li><a class="${item}" href="${esc(o.mdHref)}">${esc(o.openLabel)}</a></li>
|
|
@@ -4178,6 +4197,7 @@ async function build(input, hooks = {}) {
|
|
|
4178
4197
|
let assets = 0;
|
|
4179
4198
|
const state = { redirects: [], notes: /* @__PURE__ */ new Map(), navCache: navCache(), written: /* @__PURE__ */ new Set(), stubs: [], pageOut: /* @__PURE__ */ new Map(), sitemaps: /* @__PURE__ */ new Map(), supplied: /* @__PURE__ */ new Set(), hostFiles: /* @__PURE__ */ new Map(), homeForward: /* @__PURE__ */ new Map(), searchPages: /* @__PURE__ */ new Map(), crossLinked: /* @__PURE__ */ new Set(), usedMath: false, mathUnits: /* @__PURE__ */ new Set(), diagrams: diagramStore(input, cfg), scan: hooks.keep || hooks.lazy ? new ScanCache() : void 0, parseCache: input.parseCacheBytes === 0 ? false : new ParseCache(input.parseCacheBytes ?? DEFAULT_PARSE_CACHE_BYTES), templateBudget: templateBudget(input.untrusted === true, input.templateMs), dataCache: new DataCache(input.dataCacheBytes ?? DEFAULT_DATA_CACHE_BYTES) };
|
|
4180
4199
|
for (const w of cfg.chrome.warnings) report("config", `[config] ${w}`);
|
|
4200
|
+
for (const w of cfg.styleWarnings) report("config", `[config] ${w}; the default applies`);
|
|
4181
4201
|
state.logo = await emitLogo(cfg, input, emit, report);
|
|
4182
4202
|
for (const r of cfg.redirects) {
|
|
4183
4203
|
const from = sitePath(r.from, cfg.basePath);
|
|
@@ -4415,14 +4435,21 @@ function siteFileLookup(cfg, allUnits, tables, stored, pageOut) {
|
|
|
4415
4435
|
}
|
|
4416
4436
|
const storedRedirects = /* @__PURE__ */ new Map();
|
|
4417
4437
|
for (const m of stored.values()) for (const r of m.redirectInputs) if (!/^[a-z][a-z0-9+.-]*:/i.test(r.to) && !storedRedirects.has(r.from)) storedRedirects.set(r.from.replace(/\/+$/, ""), r.to);
|
|
4418
|
-
const
|
|
4438
|
+
const defaultLanguage = /* @__PURE__ */ new Map();
|
|
4439
|
+
if (cfg.defaultLocale)
|
|
4440
|
+
for (const u of allUnits) {
|
|
4441
|
+
if (!u.locale || u.locale === cfg.defaultLocale || u.product) continue;
|
|
4442
|
+
const home = allUnits.find((h) => h.locale === cfg.defaultLocale && h.version === u.version && !h.product);
|
|
4443
|
+
if (home) defaultLanguage.set(u.prefix, home);
|
|
4444
|
+
}
|
|
4445
|
+
const lookup = (t, from, depth, into) => {
|
|
4419
4446
|
const bare = t.replace(/\/+$/, "");
|
|
4420
4447
|
const forward = forwards.get(bare);
|
|
4421
4448
|
if (forward !== void 0) return forward;
|
|
4422
|
-
const u = unitOfPath(allUnits, bare);
|
|
4423
|
-
if (!u || u.prefix === from || u.prefix === "") return void 0;
|
|
4424
|
-
const local = bare === u.prefix ? "" : bare.slice(u.prefix.length + 1);
|
|
4425
|
-
const at = (out) => `${u.prefix}/${out}
|
|
4449
|
+
const u = into ?? unitOfPath(allUnits, bare);
|
|
4450
|
+
if (!u || !into && (u.prefix === from || u.prefix === "")) return void 0;
|
|
4451
|
+
const local = into ? bare : bare === u.prefix ? "" : bare.slice(u.prefix.length + 1);
|
|
4452
|
+
const at = (out) => u.prefix ? `${u.prefix}/${out}` : out;
|
|
4426
4453
|
const follow = (to) => depth < 4 ? lookup(to, from, depth + 1) : void 0;
|
|
4427
4454
|
if (stored.has(u.prefix)) {
|
|
4428
4455
|
for (const c of pageKeyCandidates2(local)) {
|
|
@@ -4447,7 +4474,18 @@ function siteFileLookup(cfg, allUnits, tables, stored, pageOut) {
|
|
|
4447
4474
|
}
|
|
4448
4475
|
return void 0;
|
|
4449
4476
|
};
|
|
4450
|
-
|
|
4477
|
+
const find = (t, from) => {
|
|
4478
|
+
const hit = lookup(t, from, 0);
|
|
4479
|
+
if (hit !== void 0) return hit;
|
|
4480
|
+
const home = defaultLanguage.get(from);
|
|
4481
|
+
const bare = t.replace(/\/+$/, "");
|
|
4482
|
+
const named = unitOfPath(allUnits, bare);
|
|
4483
|
+
if (!home || named && named.prefix !== "" && named.prefix !== from) return void 0;
|
|
4484
|
+
const inside = named && from && named.prefix === from ? bare.slice(from.length + 1) : bare;
|
|
4485
|
+
return lookup(inside, from, 0, home);
|
|
4486
|
+
};
|
|
4487
|
+
find.forwards = new Set(forwards.values());
|
|
4488
|
+
return find;
|
|
4451
4489
|
}
|
|
4452
4490
|
function staticFolder2(dir, files, untrusted) {
|
|
4453
4491
|
const staticFiles = /* @__PURE__ */ new Map();
|
|
@@ -5159,7 +5197,8 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5159
5197
|
state.searchPages.set(unit.prefix, searchPageOut);
|
|
5160
5198
|
const linkTargets = (refs) => {
|
|
5161
5199
|
const all = new Map(refs);
|
|
5162
|
-
const add = (slug, out) => all.has(slug) || all.set(slug, { slug, out });
|
|
5200
|
+
const add = (slug, out) => all.has(slug) || all.set(slug, { slug, out, generated: true });
|
|
5201
|
+
if (replaced != null && all.has(replaced)) all.set(replaced, { ...all.get(replaced), generated: true });
|
|
5163
5202
|
for (const def of cfg.taxonomies) {
|
|
5164
5203
|
add(def.path, `${def.path}/index.html`);
|
|
5165
5204
|
for (const term of taxonomies.terms(def.name, (s) => infos.has(s) && s !== replaced)) add(`${def.path}/${term.fullPath.join("/")}`, `${def.path}/${term.fullPath.join("/")}/index.html`);
|
|
@@ -5167,7 +5206,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5167
5206
|
if (cfg.blog?.path) add(cfg.blog.path, `${cfg.blog.path}/index.html`);
|
|
5168
5207
|
return all;
|
|
5169
5208
|
};
|
|
5170
|
-
const table = { pages: linkTargets(pageRefs), assets: assetPaths, basePath: cfg.basePath, linkStyle: cfg.linkStyle, stripPrefixes: cfg.linkPrefixes, staticFile: state.staticFile, unitPrefix: unit.prefix, siteFile: state.siteFile && ((t2, from) => state.siteFile(t2, from)) };
|
|
5209
|
+
const table = { pages: linkTargets(pageRefs), assets: assetPaths, basePath: cfg.basePath, linkStyle: cfg.linkStyle, stripPrefixes: cfg.linkPrefixes, staticFile: state.staticFile, unitPrefix: unit.prefix, siteFile: state.siteFile && Object.defineProperty((t2, from) => state.siteFile(t2, from), "forwards", { get: () => state.siteFile?.forwards }) };
|
|
5171
5210
|
const readingOrder = order.filter((s) => infos.has(s));
|
|
5172
5211
|
const fullNav = cfg.navMode === "ssr-full" ? true : cfg.navMode === "client" ? false : navSize(nav) <= (input.fullNavLimit ?? cfg.fullNavLimit);
|
|
5173
5212
|
const locale = unit.locale ?? cfg.defaultLocale;
|
|
@@ -5191,7 +5230,53 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5191
5230
|
const records = /* @__PURE__ */ new Map();
|
|
5192
5231
|
const sitemapExtra = [];
|
|
5193
5232
|
const mdStore = /* @__PURE__ */ new Map();
|
|
5194
|
-
|
|
5233
|
+
const llmsFull = cfg.llmsTxt && cfg.llmsFull && cfg.mdMirror;
|
|
5234
|
+
let mdBudget = llmsFull ? input.llmsFullChars ?? 2e6 : 0;
|
|
5235
|
+
let zipBudget = llmsFull ? input.llmsFullZipBytes ?? 6e6 : 0;
|
|
5236
|
+
const linkToken = `dblnk${Math.random().toString(36).slice(2, 10)}`;
|
|
5237
|
+
const copyMarkdowns = (tree, info, outs) => {
|
|
5238
|
+
const md = cfg.mdMirrorLinks === "md";
|
|
5239
|
+
const own = md ? info.out.replace(/\.html$/, ".md") : info.out;
|
|
5240
|
+
const views = outs.map((out) => {
|
|
5241
|
+
const r = createResolver(table, { source: info.source, out }, { markdown: md, memo: false });
|
|
5242
|
+
const base = absoluteUrl(cfg, unit.prefix, out);
|
|
5243
|
+
const self = base ? absoluteUrl(cfg, unit.prefix, md ? own : servedPath(own, cfg.linkStyle)) : out === info.out ? "" : hrefFrom(out, own, md ? "html" : cfg.linkStyle);
|
|
5244
|
+
const fix = (resolve) => (u) => {
|
|
5245
|
+
if (u.startsWith("#")) return self + u;
|
|
5246
|
+
const n = r.broken.length;
|
|
5247
|
+
const v = resolve(u);
|
|
5248
|
+
if (r.broken.length > n || !base || isExternal(v) || v.startsWith("#")) return v.startsWith("#") && v !== u ? self + v : v;
|
|
5249
|
+
return new URL(v, base).href;
|
|
5250
|
+
};
|
|
5251
|
+
return { link: fix(r.link), asset: fix(r.asset) };
|
|
5252
|
+
});
|
|
5253
|
+
const values = [];
|
|
5254
|
+
const via = (kind) => (u, inHtml) => {
|
|
5255
|
+
const vs = views.map((v) => v[kind](u));
|
|
5256
|
+
if (vs.every((v) => v === vs[0])) return vs[0];
|
|
5257
|
+
values.push(inHtml ? vs.map(escAttr) : vs);
|
|
5258
|
+
return `${linkToken}${values.length - 1}z`;
|
|
5259
|
+
};
|
|
5260
|
+
const restore = rewriteTreeLinks(tree, { link: via("link"), asset: via("asset") });
|
|
5261
|
+
let text;
|
|
5262
|
+
try {
|
|
5263
|
+
text = treeToDogsbayMd(tree, cfg.markdownStyle);
|
|
5264
|
+
} finally {
|
|
5265
|
+
restore();
|
|
5266
|
+
}
|
|
5267
|
+
if (!values.length) return outs.map(() => text);
|
|
5268
|
+
const token = new RegExp(`${linkToken}(\\d+)z`, "g");
|
|
5269
|
+
return outs.map((_, i) => text.replace(token, (_m, n) => values[Number(n)][i]));
|
|
5270
|
+
};
|
|
5271
|
+
const pageMarkdowns = (tree, info, full) => {
|
|
5272
|
+
if (!full) return { markdown: copyMarkdowns(tree, info, [info.out])[0] };
|
|
5273
|
+
if (siteBase(cfg)) {
|
|
5274
|
+
const [markdown2] = copyMarkdowns(tree, info, [info.out]);
|
|
5275
|
+
return { markdown: markdown2, full: markdown2 };
|
|
5276
|
+
}
|
|
5277
|
+
const [markdown, f] = copyMarkdowns(tree, info, [info.out, "llms-full.txt"]);
|
|
5278
|
+
return { markdown, full: f };
|
|
5279
|
+
};
|
|
5195
5280
|
const brokenCounts = /* @__PURE__ */ new Map();
|
|
5196
5281
|
const prepare = async (info) => {
|
|
5197
5282
|
const warned = [];
|
|
@@ -5200,8 +5285,8 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5200
5285
|
let t2 = now();
|
|
5201
5286
|
if (info.virtual) {
|
|
5202
5287
|
const tree2 = structuredClone(info.virtual.tree);
|
|
5203
|
-
const markdown2 = cfg.mdMirror ?
|
|
5204
|
-
return { raw: markdown2, fm: { title: info.title }, bodySrc: markdown2, pre: { text: markdown2 }, tree: tree2, warned, markdown: markdown2, diagnostics };
|
|
5288
|
+
const { markdown: markdown2, full: full2 } = cfg.mdMirror ? pageMarkdowns(tree2, info, mdBudget > 0 || zipBudget > 0) : { markdown: "", full: void 0 };
|
|
5289
|
+
return { raw: markdown2, fm: { title: info.title }, bodySrc: markdown2, pre: { text: markdown2 }, tree: tree2, warned, markdown: markdown2, full: full2, diagnostics };
|
|
5205
5290
|
}
|
|
5206
5291
|
const raw = await read(info.source);
|
|
5207
5292
|
let fm = {};
|
|
@@ -5261,6 +5346,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5261
5346
|
phase.template = (phase.template ?? 0) + now() - t2;
|
|
5262
5347
|
t2 = now();
|
|
5263
5348
|
let tree;
|
|
5349
|
+
let parsedOk = true;
|
|
5264
5350
|
try {
|
|
5265
5351
|
const parsed = dogsbayMdToTree(pre.text, mode.diagnostics || mode.dataLines ? { ...mode.diagnostics ? { diagnostics: true } : {}, ...mode.dataLines ? { sourceLines: true } : {} } : void 0);
|
|
5266
5352
|
tree = parsed.tree;
|
|
@@ -5270,6 +5356,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5270
5356
|
warn2("parse", `parse error: ${e.message}`);
|
|
5271
5357
|
if (mode.diagnostics) (diagnostics ??= []).push({ code: "parse", message: detach(`parse error: ${e.message}`) });
|
|
5272
5358
|
tree = [{ type: "html", html: `<pre>${esc3(pre.text)}</pre>` }];
|
|
5359
|
+
parsedOk = false;
|
|
5273
5360
|
}
|
|
5274
5361
|
phase.parse = (phase.parse ?? 0) + now() - t2;
|
|
5275
5362
|
const ns = named.length ? namespaceOf(info.source) : "";
|
|
@@ -5280,9 +5367,11 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5280
5367
|
for (const m of unresolved) warn2("placeholder", m);
|
|
5281
5368
|
phase.resolve = (phase.resolve ?? 0) + now() - t2;
|
|
5282
5369
|
}
|
|
5283
|
-
const
|
|
5284
|
-
|
|
5370
|
+
const keep = mdBudget > 0 || zipBudget > 0;
|
|
5371
|
+
const { markdown, full } = !cfg.mdMirror ? { markdown: "", full: void 0 } : parsedOk ? pageMarkdowns(tree, info, keep) : { markdown: pre.text, full: keep ? pre.text : void 0 };
|
|
5372
|
+
return { raw, fm, bodySrc, pre, tree, warned, markdown, full, diagnostics };
|
|
5285
5373
|
};
|
|
5374
|
+
const heldBy = (p) => p.raw.length + (p.markdown !== p.raw && p.markdown !== p.pre.text ? p.markdown.length : 0) + (p.full !== void 0 && p.full !== p.markdown ? p.full.length : 0);
|
|
5286
5375
|
const pagesOpt = Math.floor(input.highlightAhead?.pages ?? 24);
|
|
5287
5376
|
const aheadPages = Number.isNaN(pagesOpt) ? 24 : Math.max(1, pagesOpt);
|
|
5288
5377
|
const aheadChars = input.highlightAhead?.chars ?? Infinity;
|
|
@@ -5314,7 +5403,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5314
5403
|
preparing++;
|
|
5315
5404
|
const prepared = prepare(list[i]).finally(() => preparing--);
|
|
5316
5405
|
const job = prepared.then(async (p) => {
|
|
5317
|
-
held += p
|
|
5406
|
+
held += heldBy(p);
|
|
5318
5407
|
const waits = [];
|
|
5319
5408
|
const send = [];
|
|
5320
5409
|
const keys = /* @__PURE__ */ new Map();
|
|
@@ -5366,7 +5455,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5366
5455
|
const { p, keys } = await ahead.get(cur);
|
|
5367
5456
|
ahead.delete(cur);
|
|
5368
5457
|
await renderPage(list[cur], p);
|
|
5369
|
-
held -= p
|
|
5458
|
+
held -= heldBy(p);
|
|
5370
5459
|
for (const k of keys.keys()) {
|
|
5371
5460
|
const w = wanted.get(k);
|
|
5372
5461
|
if (--w.n) continue;
|
|
@@ -5389,7 +5478,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5389
5478
|
const got = prepared ?? await prepare(info);
|
|
5390
5479
|
for (const [code, m, line, more] of got.warned) warnPage(info, code, m, line, more);
|
|
5391
5480
|
mode.diagnostics?.(srcOf(info), got.diagnostics ?? []);
|
|
5392
|
-
const { raw, fm, bodySrc, pre, markdown } = got;
|
|
5481
|
+
const { raw, fm, bodySrc, pre, markdown, full } = got;
|
|
5393
5482
|
let tree = got.tree;
|
|
5394
5483
|
if (hasChildLinks(tree)) {
|
|
5395
5484
|
childLinkDirs ??= directoryChildren([...infos.values()], (slug) => `/${slug}`);
|
|
@@ -5582,9 +5671,15 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5582
5671
|
...canon.sitemap ? {} : { sitemap: false }
|
|
5583
5672
|
});
|
|
5584
5673
|
state.pageOut.set([unit.prefix, info.slug].filter(Boolean).join("/"), prefix + info.out);
|
|
5585
|
-
if (mdBudget > 0 &&
|
|
5586
|
-
mdStore.set(info.slug, detach(
|
|
5587
|
-
mdBudget -=
|
|
5674
|
+
if (full !== void 0 && mdBudget > 0 && full.length <= mdBudget) {
|
|
5675
|
+
mdStore.set(info.slug, detach(full));
|
|
5676
|
+
mdBudget -= full.length;
|
|
5677
|
+
} else if (full !== void 0 && zipBudget > 0) {
|
|
5678
|
+
const z = await gzip(full);
|
|
5679
|
+
if (z.length <= zipBudget) {
|
|
5680
|
+
mdStore.set(info.slug, z);
|
|
5681
|
+
zipBudget -= z.length;
|
|
5682
|
+
}
|
|
5588
5683
|
}
|
|
5589
5684
|
const unsearched = fm.excludeFromSearch === true || fm.pagefindExclude === true;
|
|
5590
5685
|
await emit(prefix + info.out, cfg.search && cfg.searchEngine !== "builtin" ? pagefindMarkup(html, { exclude: unsearched }) : html);
|
|
@@ -5655,12 +5750,12 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5655
5750
|
const dir2 = group.children.length ? sectionDir(group) : void 0;
|
|
5656
5751
|
if (dir2) await emit(`${prefix}${dir2}/llms.txt`, buildSectionLlmsTxt(cfg.name, group, records, { file: `${dir2}/llms.txt`, urls }));
|
|
5657
5752
|
}
|
|
5658
|
-
if (
|
|
5753
|
+
if (llmsFull) {
|
|
5659
5754
|
const markdown = async (slug) => {
|
|
5660
5755
|
const kept = mdStore.get(slug);
|
|
5661
|
-
if (kept !== void 0) return kept;
|
|
5756
|
+
if (kept !== void 0) return typeof kept === "string" ? kept : gunzip(kept);
|
|
5662
5757
|
const info = infos.get(slug);
|
|
5663
|
-
if (info.virtual) return
|
|
5758
|
+
if (info.virtual) return copyMarkdowns(info.virtual.tree, info, [siteBase(cfg) ? info.out : "llms-full.txt"])[0];
|
|
5664
5759
|
let body = await read(info.source);
|
|
5665
5760
|
let pageFm = {};
|
|
5666
5761
|
try {
|
|
@@ -5672,10 +5767,15 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5672
5767
|
const templated = templatesOf(info.source).isTemplatePage(pageFm) ? await templatesOf(info.source).render(body, info.source, pageFm) : (await preprocess(body, info.source, attributesOf(info.source), includesFor(info.source), cfg.undefinedRefs, { ...templateRun, kind: "copy" })).text;
|
|
5673
5768
|
const text = hasDataDirectives(templated) ? (await resolveDataDirectives(templated, pageDataOf(info.source))).text : templated;
|
|
5674
5769
|
const ns = named.length ? namespaceOf(info.source) : "";
|
|
5675
|
-
|
|
5676
|
-
|
|
5770
|
+
let tree;
|
|
5771
|
+
try {
|
|
5772
|
+
tree = dogsbayMdToTree(text).tree;
|
|
5773
|
+
} catch {
|
|
5774
|
+
return text;
|
|
5775
|
+
}
|
|
5677
5776
|
if (ns) rewriteContentRefs(dropMount(tree, mounts), [ns], globalPrefixes);
|
|
5678
|
-
|
|
5777
|
+
if (PLACEHOLDER_DIRECTIVE.test(text)) await resolvePlaceholders(tree, resolvers, { source: info.source, read, has: hasContent, scope: scoped(info.source) });
|
|
5778
|
+
return copyMarkdowns(tree, info, [siteBase(cfg) ? info.out : "llms-full.txt"])[0];
|
|
5679
5779
|
};
|
|
5680
5780
|
const order2 = fullOrder(nav, records);
|
|
5681
5781
|
await emit(prefix + "llms-full.txt", {
|
|
@@ -5685,6 +5785,7 @@ ${marker}${title}${marker}`, path, attributesOf(path), includesFor(path, read2),
|
|
|
5685
5785
|
yield* llmsFullChunks(cfg.name, cfg.description, order2, records, urls, markdown);
|
|
5686
5786
|
} finally {
|
|
5687
5787
|
mdStore.clear();
|
|
5788
|
+
mdBudget = zipBudget = 0;
|
|
5688
5789
|
}
|
|
5689
5790
|
}
|
|
5690
5791
|
});
|
|
@@ -6032,6 +6133,12 @@ function prefixNav(nodes, ns) {
|
|
|
6032
6133
|
if (!ns) return nodes;
|
|
6033
6134
|
return nodes.map((n) => ({ ...n, ...n.slug != null ? { slug: n.slug ? `${ns}/${n.slug}` : ns } : {}, children: prefixNav(n.children, ns) }));
|
|
6034
6135
|
}
|
|
6136
|
+
async function gzip(text) {
|
|
6137
|
+
return new Uint8Array(await new Response(new Response(text).body.pipeThrough(new CompressionStream("gzip"))).arrayBuffer());
|
|
6138
|
+
}
|
|
6139
|
+
async function gunzip(bytes) {
|
|
6140
|
+
return new Response(new Response(bytes).body.pipeThrough(new DecompressionStream("gzip"))).text();
|
|
6141
|
+
}
|
|
6035
6142
|
function dropMount(tree, mounts) {
|
|
6036
6143
|
if (!mounts.length) return tree;
|
|
6037
6144
|
const strip = (u) => {
|
|
@@ -19,7 +19,7 @@ import { type BuildUnit, type SiteConfig } from "./config.js";
|
|
|
19
19
|
import { type NavCache } from "../theme/regions.js";
|
|
20
20
|
import { ThemeTemplates } from "../theme/page.js";
|
|
21
21
|
import type { CssOptions } from "../theme/css-build.js";
|
|
22
|
-
import { menuHref } from "./links.js";
|
|
22
|
+
import { menuHref, type SiteFileLookup } from "./links.js";
|
|
23
23
|
export { menuHref };
|
|
24
24
|
import { type FileRef, type TextRef, type TextStream } from "./detach.js";
|
|
25
25
|
import { type TemplateBudget } from "./preprocess.js";
|
|
@@ -137,9 +137,14 @@ export interface BuildInput {
|
|
|
137
137
|
diagramPinChars?: number;
|
|
138
138
|
/**
|
|
139
139
|
* Characters of page Markdown to keep for llms-full.txt (default 2M).
|
|
140
|
-
* Pages beyond it are
|
|
140
|
+
* Pages beyond it are kept compressed, up to `llmsFullZipBytes`.
|
|
141
141
|
*/
|
|
142
142
|
llmsFullChars?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Bytes of compressed page Markdown to keep for llms-full.txt past `llmsFullChars` (default 6M,
|
|
145
|
+
* some 25M characters). Pages beyond both are templated and parsed again when the file is written.
|
|
146
|
+
*/
|
|
147
|
+
llmsFullZipBytes?: number;
|
|
143
148
|
/**
|
|
144
149
|
* Called with each page once it is templated and parsed, before it is
|
|
145
150
|
* rendered (`check` runs the source rules on it). The values are the
|
|
@@ -249,7 +254,7 @@ export interface SiteState {
|
|
|
249
254
|
/** The static file a site path names, as a host serves it (`x/` → `x/index.html`, `x` → `x.html`). */
|
|
250
255
|
staticFile?: (sitePath: string) => string | undefined;
|
|
251
256
|
/** The file a root-absolute site path names in another unit, or a forward page (plans/cross-unit-links.md). */
|
|
252
|
-
siteFile?:
|
|
257
|
+
siteFile?: SiteFileLookup;
|
|
253
258
|
/** Pages (from the site root) with a link looked up in another unit, so a dev session renders them again when that changes. */
|
|
254
259
|
crossLinked: Set<string>;
|
|
255
260
|
/** `site.logo`'s files as written, from the site root (`_dogsbay/site/logo-light.svg`); none without one or when it was left out. */
|
|
@@ -483,7 +488,7 @@ export declare function selectUnits(allUnits: BuildUnit[], names: string[] | und
|
|
|
483
488
|
* each product's root, a version group's root and the site root (their index.html).
|
|
484
489
|
*/
|
|
485
490
|
/** `state.siteFile` for a site of several units: every unit's pages read now, a stored one's from its manifest. */
|
|
486
|
-
export declare function siteFileFor(cfg: SiteConfig, allUnits: BuildUnit[], files: Map<string, FileContent>, includeDrafts: boolean, stored?: Map<string, StoredUnit>, pageOut?: Map<string, string>, frontMatterOf?: import("./canonical.js").FrontMatterOf): Promise<
|
|
491
|
+
export declare function siteFileFor(cfg: SiteConfig, allUnits: BuildUnit[], files: Map<string, FileContent>, includeDrafts: boolean, stored?: Map<string, StoredUnit>, pageOut?: Map<string, string>, frontMatterOf?: import("./canonical.js").FrontMatterOf): Promise<SiteFileLookup>;
|
|
487
492
|
/**
|
|
488
493
|
* Whether a page may render a formula: a math node, or `$` or `:math[` in a
|
|
489
494
|
* prop the renderer parses as markdown (a caption, a callout or card title). A false
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type SiteChrome, type ProductModel } from "@dogsbay/site-files";
|
|
2
|
+
import { type MarkdownStyle } from "@dogsbay/format-dogsbay-md/browser";
|
|
2
3
|
export type LinkStyle = "html" | "pretty";
|
|
3
4
|
export type TocMode = "top" | "popover" | "rail" | "off";
|
|
4
5
|
export interface VersionDef {
|
|
@@ -108,6 +109,14 @@ export interface SiteConfig {
|
|
|
108
109
|
* `warnings` are reported by the build. plans/site-chrome.md.
|
|
109
110
|
*/
|
|
110
111
|
chrome: SiteChrome;
|
|
112
|
+
/**
|
|
113
|
+
* How the build writes Dogsbay MD (`style:`, read by format-dogsbay-md's `readMarkdownStyle`, as
|
|
114
|
+
* the Dogsbay CLI's convert and migrate read it): the `.md` copies and llms-full.txt of pages it
|
|
115
|
+
* serializes (templated, with placeholders resolved, generated). `styleWarnings`: values it
|
|
116
|
+
* cannot use, reported by the build; the default applies to them. plans/markdown-style.md.
|
|
117
|
+
*/
|
|
118
|
+
markdownStyle: MarkdownStyle;
|
|
119
|
+
styleWarnings: string[];
|
|
111
120
|
linkStyle: LinkStyle;
|
|
112
121
|
attributes: Record<string, unknown>;
|
|
113
122
|
sources: SourceDef[];
|
|
@@ -173,8 +182,15 @@ export interface SiteConfig {
|
|
|
173
182
|
poweredBy: boolean;
|
|
174
183
|
/** Write a .md copy of each page (agent.mdMirror, default on as in Astro). */
|
|
175
184
|
mdMirror: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Where the links in the .md copies and llms-full.txt go (agent.mdMirrorLinks): `html`, the pages
|
|
187
|
+
* as the site serves them (default), or `md`, the pages' Markdown copies. Absolute with `site.url`.
|
|
188
|
+
*/
|
|
189
|
+
mdMirrorLinks: "html" | "md";
|
|
176
190
|
/** Write llms.txt (agent.llmsTxt). */
|
|
177
191
|
llmsTxt: boolean;
|
|
192
|
+
/** Write llms-full.txt (agent.llmsFull, default on; needs llmsTxt and mdMirror). */
|
|
193
|
+
llmsFull: boolean;
|
|
178
194
|
/**
|
|
179
195
|
* The "Copy or open" menu (agent.pageActions); on when mdMirror is. As in the
|
|
180
196
|
* Astro pipeline: all four providers, in the header, with a Copy item and a
|
|
@@ -11,6 +11,8 @@ export interface PageRef {
|
|
|
11
11
|
slug: string;
|
|
12
12
|
/** Output file relative to the unit root: "index.html", "a/b.html", "a/index.html". */
|
|
13
13
|
out: string;
|
|
14
|
+
/** A page the build generates (a taxonomy's, the blog index): no Markdown copy. */
|
|
15
|
+
generated?: boolean;
|
|
14
16
|
}
|
|
15
17
|
export interface LinkTable {
|
|
16
18
|
pages: Map<string, PageRef>;
|
|
@@ -37,8 +39,15 @@ export interface LinkTable {
|
|
|
37
39
|
* `from` is the reader's unit prefix: a path in that unit, or in the unit at the site root (where a
|
|
38
40
|
* unit-relative `/x` that missed lands), is not looked up, so a broken link stays reported.
|
|
39
41
|
*/
|
|
40
|
-
siteFile?:
|
|
42
|
+
siteFile?: SiteFileLookup;
|
|
41
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* `LinkTable.siteFile`; `forwards` holds the files it can return that are forward pages (a product's
|
|
46
|
+
* root), not pages: they have no Markdown copy.
|
|
47
|
+
*/
|
|
48
|
+
export type SiteFileLookup = ((sitePath: string, from: string) => string | undefined) & {
|
|
49
|
+
forwards?: ReadonlySet<string>;
|
|
50
|
+
};
|
|
42
51
|
/** URL for `targetOut` as seen from the page at `fromOut`, both unit-relative files. */
|
|
43
52
|
export declare function hrefBetween(fromOut: string, targetOut: string, style: LinkStyle): string;
|
|
44
53
|
export declare function outFileFor(slug: string, isIndex: boolean): string;
|
|
@@ -49,9 +58,16 @@ export interface LinkResolver {
|
|
|
49
58
|
/** A link was looked up in another unit (found or not): the page depends on that unit's pages. */
|
|
50
59
|
crossed: boolean;
|
|
51
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* `markdown`: links to pages go to their Markdown copies (`x.md` beside `x.html`), for the `.md`
|
|
63
|
+
* copies with `agent.mdMirrorLinks: md`; files, assets and forward pages are linked as on the page.
|
|
64
|
+
*/
|
|
52
65
|
export declare function createResolver(table: LinkTable, page: {
|
|
53
66
|
source: string;
|
|
54
67
|
out: string;
|
|
68
|
+
}, opts?: {
|
|
69
|
+
markdown?: boolean;
|
|
70
|
+
memo?: boolean;
|
|
55
71
|
}): LinkResolver;
|
|
56
72
|
/**
|
|
57
73
|
* A versionMenu or site chrome link as a page writes it: an http(s) address as is; a site path from the page's
|
|
@@ -61,3 +77,5 @@ export declare function createResolver(table: LinkTable, page: {
|
|
|
61
77
|
* nothing in the path can read as a scheme.
|
|
62
78
|
*/
|
|
63
79
|
export declare function menuHref(href: string, siteRoot: string, style: LinkStyle, basePath?: string): string;
|
|
80
|
+
/** `hrefBetween` without its memo. */
|
|
81
|
+
export declare function hrefFrom(fromOut: string, targetOut: string, style: LinkStyle): string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dogsbay/ssg",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.156",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Documentation static site generator for Dogsbay-MD that builds inside Cloudflare Workers and publishes sites that work offline",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -49,38 +49,38 @@
|
|
|
49
49
|
"tailwindcss": "^4.3.2"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@dogsbay/elements": "0.2.0-beta.
|
|
53
|
-
"@dogsbay/format-dogsbay-md": "0.2.0-beta.
|
|
54
|
-
"@dogsbay/format-openapi": "0.2.0-beta.
|
|
55
|
-
"@dogsbay/format-topicmap": "0.2.0-beta.
|
|
56
|
-
"@dogsbay/highlight": "0.2.0-beta.
|
|
57
|
-
"@dogsbay/minja": "0.2.0-beta.
|
|
58
|
-
"@dogsbay/primitives": "0.2.0-beta.
|
|
59
|
-
"@dogsbay/render-html": "0.2.0-beta.
|
|
60
|
-
"@dogsbay/search": "0.2.0-beta.
|
|
61
|
-
"@dogsbay/serialize-core": "0.2.0-beta.
|
|
62
|
-
"@dogsbay/site-check": "0.2.0-beta.
|
|
63
|
-
"@dogsbay/site-files": "0.2.0-beta.
|
|
64
|
-
"@dogsbay/types": "0.2.0-beta.
|
|
52
|
+
"@dogsbay/elements": "0.2.0-beta.156",
|
|
53
|
+
"@dogsbay/format-dogsbay-md": "0.2.0-beta.156",
|
|
54
|
+
"@dogsbay/format-openapi": "0.2.0-beta.156",
|
|
55
|
+
"@dogsbay/format-topicmap": "0.2.0-beta.156",
|
|
56
|
+
"@dogsbay/highlight": "0.2.0-beta.156",
|
|
57
|
+
"@dogsbay/minja": "0.2.0-beta.156",
|
|
58
|
+
"@dogsbay/primitives": "0.2.0-beta.156",
|
|
59
|
+
"@dogsbay/render-html": "0.2.0-beta.156",
|
|
60
|
+
"@dogsbay/search": "0.2.0-beta.156",
|
|
61
|
+
"@dogsbay/serialize-core": "0.2.0-beta.156",
|
|
62
|
+
"@dogsbay/site-check": "0.2.0-beta.156",
|
|
63
|
+
"@dogsbay/site-files": "0.2.0-beta.156",
|
|
64
|
+
"@dogsbay/types": "0.2.0-beta.156"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@axe-core/playwright": "^4.12.1",
|
|
68
68
|
"@cloudflare/workers-types": "^5.20260921.1",
|
|
69
|
-
"@dogsbay/elements": "0.2.0-beta.
|
|
70
|
-
"@dogsbay/format-dogsbay-md": "0.2.0-beta.
|
|
71
|
-
"@dogsbay/format-openapi": "0.2.0-beta.
|
|
72
|
-
"@dogsbay/format-topicmap": "0.2.0-beta.
|
|
73
|
-
"@dogsbay/highlight": "0.2.0-beta.
|
|
74
|
-
"@dogsbay/icons": "0.2.0-beta.
|
|
75
|
-
"@dogsbay/minja": "0.2.0-beta.
|
|
76
|
-
"@dogsbay/primitives": "0.2.0-beta.
|
|
77
|
-
"@dogsbay/render-html": "0.2.0-beta.
|
|
78
|
-
"@dogsbay/search": "0.2.0-beta.
|
|
79
|
-
"@dogsbay/serialize-core": "0.2.0-beta.
|
|
80
|
-
"@dogsbay/site-check": "0.2.0-beta.
|
|
81
|
-
"@dogsbay/site-files": "0.2.0-beta.
|
|
82
|
-
"@dogsbay/types": "0.2.0-beta.
|
|
83
|
-
"@dogsbay/ui": "0.2.0-beta.
|
|
69
|
+
"@dogsbay/elements": "0.2.0-beta.156",
|
|
70
|
+
"@dogsbay/format-dogsbay-md": "0.2.0-beta.156",
|
|
71
|
+
"@dogsbay/format-openapi": "0.2.0-beta.156",
|
|
72
|
+
"@dogsbay/format-topicmap": "0.2.0-beta.156",
|
|
73
|
+
"@dogsbay/highlight": "0.2.0-beta.156",
|
|
74
|
+
"@dogsbay/icons": "0.2.0-beta.156",
|
|
75
|
+
"@dogsbay/minja": "0.2.0-beta.156",
|
|
76
|
+
"@dogsbay/primitives": "0.2.0-beta.156",
|
|
77
|
+
"@dogsbay/render-html": "0.2.0-beta.156",
|
|
78
|
+
"@dogsbay/search": "0.2.0-beta.156",
|
|
79
|
+
"@dogsbay/serialize-core": "0.2.0-beta.156",
|
|
80
|
+
"@dogsbay/site-check": "0.2.0-beta.156",
|
|
81
|
+
"@dogsbay/site-files": "0.2.0-beta.156",
|
|
82
|
+
"@dogsbay/types": "0.2.0-beta.156",
|
|
83
|
+
"@dogsbay/ui": "0.2.0-beta.156",
|
|
84
84
|
"@mermanjs/web": "0.7.0",
|
|
85
85
|
"@playwright/test": "1.61.1",
|
|
86
86
|
"@types/node": "^22.10.0",
|